From aadf3fd06ec00ad197f39b44152b39bab25153cb Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 17 Mar 2018 13:14:13 +0100 Subject: [PATCH 001/391] add user password reset, add series image switch, add image licences, redesign exclude filters --- install/create.sql | 13 +- install/migrate.sql | 19 ++ lib/calcms/auth.pm | 1 + lib/calcms/eventOps.pm | 4 +- lib/calcms/events.pm | 29 +- lib/calcms/images.pm | 254 +++++++++++++++++- lib/calcms/playout.pm | 2 +- lib/calcms/project.pm | 11 + lib/calcms/series_events.pm | 33 ++- lib/calcms/studios.pm | 11 + website/agenda/aggregate.cgi | 16 +- website/agenda/category.cgi | 4 +- website/agenda/css/calcms.css | 221 +++++++++++++-- website/agenda/events.cgi | 6 + website/agenda/js/calcms.js | 3 +- website/agenda/planung/assignments.cgi | 1 - website/agenda/planung/calendar.cgi | 6 +- website/agenda/planung/create_events.cgi | 177 ++++++++---- website/agenda/planung/css/admin.css | 10 +- website/agenda/planung/css/series.css | 2 +- website/agenda/planung/css/show-playout.css | 58 ++++ website/agenda/planung/event.cgi | 201 +++----------- website/agenda/planung/image.cgi | 111 ++++---- website/agenda/planung/imageUpload.cgi | 25 +- website/agenda/planung/js/edit_event.js | 1 + website/agenda/planung/js/edit_image.js | 1 + website/agenda/planung/js/image.js | 76 +++++- website/agenda/planung/js/show-playout.js | 14 + website/agenda/planung/pot/de/image.po | 11 + website/agenda/planung/pot/de/menu.po | 3 + website/agenda/planung/pot/en/image.po | 12 + website/agenda/planung/pot/en/menu.po | 3 + website/agenda/planung/series.cgi | 103 +++++-- website/agenda/planung/showImage.cgi | 146 ++++++++++ website/agenda/planung/templates/default.html | 4 + .../agenda/planung/templates/edit_event.html | 6 +- .../agenda/planung/templates/edit_series.html | 4 +- website/agenda/planung/templates/image.html | 4 +- .../agenda/planung/templates/image_edit.html | 59 +++- .../planung/templates/image_single.html | 2 - .../planung/templates/notify_event.html | 163 ----------- website/agenda/planung/templates/series.html | 5 +- website/agenda/planung/users.cgi | 86 ++---- website/agenda/series_names.cgi | 12 +- website/agenda/templates/event_details.html | 26 +- website/agenda/templates/event_list.html | 31 ++- website/agenda/templates/event_menu.html | 2 +- website/agenda_files/.htaccess | 4 +- 48 files changed, 1329 insertions(+), 667 deletions(-) create mode 100644 website/agenda/planung/css/show-playout.css create mode 100644 website/agenda/planung/js/show-playout.js create mode 100644 website/agenda/planung/showImage.cgi delete mode 100644 website/agenda/planung/templates/notify_event.html diff --git a/install/create.sql b/install/create.sql index 4404da0..fbbb206 100644 --- a/install/create.sql +++ b/install/create.sql @@ -178,7 +178,11 @@ CREATE TABLE `calcms_event_history` ( `series_id` int(10) unsigned DEFAULT NULL, `deleted` tinyint(1) unsigned DEFAULT '0', `project_id` int(10) unsigned NOT NULL, - `draft` tinyint(3) unsigned NOT NULL DEFAULT '0', + `recurrence_count` int(10) unsigned NOT NULL DEFAULT '0', + `draft` tinyint(1) unsigned NOT NULL DEFAULT '0', + `series_image` VARCHAR(200) DEFAULT NULL, + `image_label` VARCHAR(200) DEFAULT NULL, + `series_image_label` VARCHAR(200) DEFAULT NULL, PRIMARY KEY (`id`), KEY `end` (`end`), KEY `start` (`start`), @@ -264,6 +268,9 @@ CREATE TABLE `calcms_events` ( `archive_url` varchar(300) DEFAULT NULL, `recurrence_count` int(10) unsigned NOT NULL DEFAULT '0', `draft` tinyint(1) unsigned NOT NULL DEFAULT '0', + `series_image` VARCHAR(200) DEFAULT NULL, + `image_label` VARCHAR(200) DEFAULT NULL, + `series_image_label` VARCHAR(200) DEFAULT NULL, PRIMARY KEY (`id`), KEY `end` (`end`), KEY `start` (`start`), @@ -315,6 +322,8 @@ CREATE TABLE `calcms_images` ( `modified_by` varchar(64) DEFAULT NULL, `modified_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `project_id` int(10) unsigned NOT NULL, + `public` tinyint(1) unsigned NULL DEFAULT '0', + `licence` varchar(300) NULL, PRIMARY KEY (`id`), KEY `created_at` (`created_at`), KEY `filename` (`filename`), @@ -395,7 +404,7 @@ CREATE TABLE `calcms_playout` ( `rms_image` varchar(300) DEFAULT NULL, `replay_gain` float DEFAULT NULL, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` datetime NOT NULL, + `modified_at` datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`project_id`,`studio_id`,`start`), KEY `project_id` (`project_id`), KEY `studio_id` (`studio_id`), diff --git a/install/migrate.sql b/install/migrate.sql index a03e086..d093177 100644 --- a/install/migrate.sql +++ b/install/migrate.sql @@ -94,4 +94,23 @@ ALTER TABLE `calcms_events` ALTER TABLE `calcms_users` CHANGE COLUMN email email varchar(300) NOT NULL; + +ALTER TABLE `calcms_events` ADD COLUMN `series_image` VARCHAR(200) DEFAULT NULL AFTER `draft`; +ALTER TABLE `calcms_events` ADD COLUMN `image_label` VARCHAR(200) DEFAULT NULL AFTER `series_image`, + ADD COLUMN `series_image_label` VARCHAR(200) DEFAULT NULL AFTER `image_label`; + +ALTER TABLE `calcms_playout` + CHANGE COLUMN `modified_at` `modified_at` datetime DEFAULT CURRENT_TIMESTAMP; + +ALTER TABLE `calcms_images` + ADD COLUMN public tinyint(1) unsigned NULL DEFAULT '0', + ADD COLUMN licence varchar(300) NULL AFTER project_id; + +ALTER TABLE `calcms_event_history` + CHANGE COLUMN draft draft tinyint(1) unsigned NOT NULL DEFAULT '0', + ADD COLUMN series_image_label varchar(200) NULL, + ADD COLUMN series_image varchar(200) NULL AFTER draft, + ADD COLUMN recurrence_count int(10) unsigned NOT NULL DEFAULT '0' AFTER project_id, + ADD COLUMN image_label varchar(200) NULL; + diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index 799b380..5eabc11 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -271,6 +271,7 @@ sub show_login_form{ + - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| live preproduction playout
Warning
no recipient configured at series!
Subject
To
From
Cc
Reply-To
Content
-
-
-
- - - diff --git a/website/agenda/planung/templates/series.html b/website/agenda/planung/templates/series.html index 8950abb..f9096c2 100644 --- a/website/agenda/planung/templates/series.html +++ b/website/agenda/planung/templates/series.html @@ -12,8 +12,9 @@ var region=''; + $requestReset diff --git a/lib/calcms/calendar.pm b/lib/calcms/calendar.pm index 7038713..3a3a60f 100644 --- a/lib/calcms/calendar.pm +++ b/lib/calcms/calendar.pm @@ -184,7 +184,10 @@ sub get{ my $dbh=db::connect($config, $request); - my $used_days=events::get_by_date_range($dbh, $config, $start_date, $end_date); + my $used_days=events::get_by_date_range($dbh, $config, $start_date, $end_date,{ + exclude_projects => 1, + exclude_locations => 1, + }); my $used_day={}; for my $day(@$used_days){ $used_day->{$day->{start_date}}=1; diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index d1078e1..2f3927c 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -112,18 +112,18 @@ sub get_query{ my @conditions=(); my $bind_values=[]; - #exclude comments from config filter/exclude_locations + #exclude comments from config filter/locations_to_exclude if ( (defined $config->{filter}) - && (defined $config->{filter}->{exclude_locations}) + && (defined $config->{filter}->{locations_to_exclude}) ){ - my @exclude_locations=split(/[,\s]+/,$config->{filter}->{exclude_locations}); - my $exclude_locations=join(', ',map {'?'} @exclude_locations); + my @locations_to_exclude=split(/[,\s]+/,$config->{filter}->{locations_to_exclude}); + my $locations_to_exclude=join(', ',map {'?'} @locations_to_exclude); $from.=',calcms_events e'; push @conditions,'e.id=c.event_id'; - push @conditions,'e.location not in ('.$exclude_locations.')'; - for my $location (@exclude_locations){ + push @conditions,'e.location not in ('.$locations_to_exclude.')'; + for my $location (@locations_to_exclude){ push @$bind_values, $location; } } diff --git a/lib/calcms/eventOps.pm b/lib/calcms/eventOps.pm index 2039d6d..12ae8dc 100644 --- a/lib/calcms/eventOps.pm +++ b/lib/calcms/eventOps.pm @@ -2,9 +2,14 @@ package eventOps; use warnings "all"; use strict; +use uac; +use events; use series; use series_dates; use time; +use studios; +use series_events; +use user_stats; require Exporter; our @ISA = qw(Exporter); @@ -52,10 +57,11 @@ sub setAttributesFromSeriesTemplate{ } sub setAttributesFromSchedule{ - my $config=shift; - my $params=shift; - my $event=shift; + my $config = shift; + my $params = shift; + my $event = shift; + #print 'setAttributesFromSchedule:'.Dumper($params); #set attributes from schedule my $schedules=series_dates::get( $config, { @@ -134,3 +140,189 @@ sub getRecurrenceBaseId{ return $event->{event_id}; } +# get a new event for given series +sub getNewEvent{ + my $config = shift; + my $params = shift; + my $action = shift; + + + # check for missing parameters + my $required_fields = [ 'project_id', 'studio_id', 'series_id' ]; + push @$required_fields, 'start_date' if ( $action eq 'show_new_event_from_schedule' ); + + my $event = {}; + for my $attr (@$required_fields) { + unless ( defined $params->{$attr} ) { + uac::print_error( "missing " . $attr ); + return undef; + } + $event->{$attr} = $params->{$attr}; + } + + my $serie = eventOps::setAttributesFromSeriesTemplate( $config, $params, $event ); + + #print Dumper($params); + if ( $action eq 'show_new_event_from_schedule' ) { + eventOps::setAttributesFromSchedule( $config, $params, $event ); + } else { + eventOps::setAttributesForCurrentTime( $serie, $event ); + } + + if ( defined $params->{source_event_id} ) { + + #overwrite by existing event (rerun) + eventOps::setAttributesFromOtherEvent( $config, $params, $event ); + } + + $event = events::calc_dates( $config, $event ); + + if ( $serie->{has_single_events} eq '1' ) { + $event->{has_single_events} = 1; + $event->{series_name} = undef; + $event->{episode} = undef; + } + + #get next episode + $event->{episode} = series::get_next_episode( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + series_id => $params->{series_id}, + } + ); + delete $event->{episode} if $event->{episode} == 0; + + $event->{disable_event_sync} = 1; + $event->{published} = 1; + $event->{new_event} = 1; + + return $event; +} + +# add user, action +sub createEvent{ + my $request = shift; + my $event = shift; + my $action = shift; + + my $config = $request->{config}; + my $permissions = $request->{permissions}; + my $user = $request->{user}; + + my $checklist = [ 'studio', 'user', 'create_events', 'studio_timeslots' ]; + if ( $action eq 'create_event_from_schedule' ) { + push @$checklist, 'schedule' if $action eq 'create_event_from_schedule'; + } + #use Data::Dumper; + #print Dumper($checklist); + #print Dumper($request); + #print Dumper($event); + + my $start = $event->{start_date}, + my $end = time::add_minutes_to_datetime( $event->{start_date}, $event->{duration} ); + #print Dumper($start); + #print Dumper($end); + + my $result = series_events::check_permission( + $request, + { + permission => 'create_event,create_event_of_series', + check_for => $checklist, + project_id => $event->{project_id}, + studio_id => $event->{studio_id}, + series_id => $event->{series_id}, + start_date => $event->{start_date}, + draft => $event->{draft}, + start => $start, + end => $end, + } + ); + + #print Dumper(" start_date => $event->{start_date}"); + unless ( $result eq '1' ) { + uac::print_error($result); + return undef; + } + + #get series name from series + my $series = series::get( + $config, + { + project_id => $event->{project_id}, + studio_id => $event->{studio_id}, + series_id => $event->{series_id}, + } + ); + if ( @$series != 1 ) { + uac::print_error("series not found"); + return undef; + } + my $serie = $series->[0]; + + #get studio location from studios + my $studios = studios::get( + $config, + { + project_id => $event->{project_id}, + studio_id => $event->{studio_id} + } + ); + unless ( defined $studios ) { + uac::print_error("studio not found"); + return undef; + } + unless ( @$studios == 1 ) { + uac::print_error("studio not found"); + return undef; + } + my $studio = $studios->[0]; + + $config->{access}->{write} = 1; + + #insert event content and save history + my $event_id = series_events::insert_event( + $config, + { + project_id => $event->{project_id}, + studio => $studio, + serie => $serie, + event => $event, + user => $user + } + ); + uac::print_error("could not insert event") if $event_id <= 0; + + #assign event to series + $result = series::assign_event( + $config, + { + project_id => $event->{project_id}, + studio_id => $event->{studio_id}, + series_id => $event->{series_id}, + event_id => $event_id + } + ); + uac::print_error("could not assign event") unless defined $result; + + #update recurrences + $event->{event_id} = $event_id; + series::update_recurring_events( $config, $event ); + + # update user stats + user_stats::increase( + $config, + 'create_events', + { + project_id => $event->{project_id}, + studio_id => $event->{studio_id}, + series_id => $event->{series_id}, + user => $user + } + ); + + return $event_id; +} + +return 1; diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 9ebb864..2dc14e7 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -232,7 +232,7 @@ sub modify_results { $result->{rds_title} =~ s/\_{2,99}/\_/gi; $result->{rds_title} = substr( $result->{rds_title}, 0, 63 ); - # $result->{event_id}=$result->{id}; + #$result->{event_id}=$result->{id}; $result->{base_url} = $request->{base_url}; $result->{base_domain} = $config->{locations}->{base_domain}; @@ -246,20 +246,28 @@ sub modify_results { $result->{no_comment} = 1 if ( $result->{comment_count} == 0 ); #fix image url - - if ((defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1')){ - $result->{image} = $result->{series_image}; - $result->{image_label} = $result->{series_image_label}; + #$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; + #if ($params->{exclude_event_images}==1){ + # if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ + # $result->{image} = $result->{series_image}; + # $result->{image_label} = $result->{series_image_label}; + # } + #} + + if ( defined $result->{image} ) { + my $url = $config->{locations}->{local_media_url}||''; + my $image = $result->{image}; + $result->{thumb_url} = $url.'/thumbs/'.$image; + $result->{icon_url} = $url.'/icons/'.$image; + $result->{image_url} = $url.'/images/'.$image; } - if ( defined $result->{image} ) { - my $url=$config->{locations}->{local_media_url}||''; - if (defined $result->{image}){ - my $image=$result->{image}; - $result->{thumb} = $url.'/thumbs/'.$image; - $result->{icon} = $url.'/icons/'.$image; - $result->{image} = $url.'/images/'.$image; - } + if ( defined $result->{series_image} ) { + my $url = $config->{locations}->{local_media_url}||''; + my $image = $result->{series_image}; + $result->{series_thumb_url} = $url.'/thumbs/'.$image; + $result->{series_icon_url} = $url.'/icons/'.$image; + $result->{series_image_url} = $url.'/images/'.$image; } $result->{location_css} = $result->{location} || ''; @@ -811,11 +819,11 @@ sub get_query { # exclude location my $exclude_location_cond = ''; - if ( $params->{no_exclude} ne '1' ) { - if ( $params->{exclude_locations} ne '' ) { - my @exclude_locations = split( /,/, $params->{exclude_locations} ); - $exclude_location_cond = 'location not in (' . join( ",", map { '?' } @exclude_locations ) . ')'; - for my $location (@exclude_locations) { + if ( $params->{exclude_locations} eq '1' ) { + if ( $params->{locations_to_exclude} ne '' ) { + my @locations_to_exclude = split( /,/, $params->{locations_to_exclude} ); + $exclude_location_cond = 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; + for my $location (@locations_to_exclude) { $location =~ s/^\s+//g; $location =~ s/\s+$//g; push @$bind_values, $location; @@ -825,11 +833,11 @@ sub get_query { # exclude project my $exclude_project_cond = ''; - if ( $params->{no_exclude} ne '1' ) { - if ( $params->{exclude_projects} ne '' ) { - my @exclude_projects = split( /,/, $params->{exclude_projects} ); - $exclude_project_cond = 'project not in (' . join( ",", map { '?' } @exclude_projects ) . ')'; - for my $project (@exclude_projects) { + if ( $params->{exclude_projects} eq '1' ) { + if ( $params->{projects_to_exclude} ne '' ) { + my @projects_to_exclude = split( /,/, $params->{projects_to_exclude} ); + $exclude_project_cond = 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; + for my $project (@projects_to_exclude) { $project =~ s/^\s+//g; $project =~ s/\s+$//g; push @$bind_values, $project; @@ -1202,10 +1210,11 @@ sub render { $template_parameters->{ 'project_' . $project->{name} } = 1 if ( $project->{name} ne '' ); - $template_parameters->{controllers} = $config->{controllers}, + $template_parameters->{controllers} = $config->{controllers}; + $template_parameters->{hide_event_images}=1 if $config->{permissions}->{hide_event_images} == 1; # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; - template::process( $_[0], $params->{template}, $template_parameters ); + template::process( $_[0], $params->{template}, $template_parameters ); return $_[0]; } @@ -1241,37 +1250,47 @@ sub setDefaultEventConditions { my $config = shift; my $conditions = $_[0]; my $bind_values = $_[1]; + my $options = $_[2]; + $options={} unless defined $options; # exclude projects - if ( ( defined $config->{filter} ) - && ( defined $config->{filter}->{exclude_projects} ) ) + if ( + ( defined $options->{exclude_projects} ) + && ( $options->{exclude_projects} == 1 ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{projects_to_exclude} ) ) { - my @exclude_projects = - split( /,/, $config->{filter}->{exclude_projects} ); - push @$conditions, 'project not in (' . join( ",", map { '?' } @exclude_projects ) . ')'; - for my $project (@exclude_projects) { + my @projects_to_exclude = + split( /,/, $config->{filter}->{projects_to_exclude} ); + push @$conditions, 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; + for my $project (@projects_to_exclude) { push @$bind_values, $project; } } # exclude locations - if ( ( defined $config->{filter} ) - && ( defined $config->{filter}->{exclude_locations} ) ) + if ( + ( defined $options->{exclude_locations} ) + && ( $options->{exclude_locations} == 1 ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) { - my @exclude_locations = - split( /,/, $config->{filter}->{exclude_locations} ); - push @$conditions, 'location not in (' . join( ",", map { '?' } @exclude_locations ) . ')'; - for my $location (@exclude_locations) { + my @locations_to_exclude = + split( /,/, $config->{filter}->{locations_to_exclude} ); + push @$conditions, 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; + for my $location (@locations_to_exclude) { push @$bind_values, $location; } } } +# for local use only or add support for exclude_projects and exclude_locations sub getEventById { my $dbh = shift; my $config = shift; my $event_id = shift; + my $options = shift; $dbh = db::connect($config) unless defined $dbh; @@ -1281,7 +1300,7 @@ sub getEventById { push @$conditions, "id=?"; push @$bind_values, $event_id; - setDefaultEventConditions( $config, $conditions, $bind_values ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); $conditions = join( ' and ', @$conditions ); my $query = qq{ @@ -1297,12 +1316,15 @@ sub getEventById { sub get_next_event_of_series { my $dbh = shift; my $config = shift; - my $event_id = shift; + my $options = shift; + + my $eventId = $options->{event_id}; + return undef unless defined $eventId; $dbh = db::connect($config) unless defined $dbh; - my $events = getEventById( $dbh, $config, $event_id ); - return undef unless @$events == 1; + my $events = getEventById( $dbh, $config, $eventId, $options ); + return undef unless scalar(@$events) == 1; my $event = $events->[0]; my $conditions = []; @@ -1314,7 +1336,7 @@ sub get_next_event_of_series { push @$conditions, "series_name=?"; push @$bind_values, $event->{series_name}; - setDefaultEventConditions( $config, $conditions, $bind_values ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); $conditions = join( ' and ', @$conditions ); my $query = qq{ @@ -1334,12 +1356,14 @@ sub get_next_event_of_series { sub get_previous_event_of_series { my $dbh = shift; my $config = shift; - my $event_id = shift; + my $options = shift; + + my $eventId = $options->{event_id}; + return undef unless defined $eventId; $dbh = db::connect($config) unless defined $dbh; - - my $events = getEventById( $dbh, $config, $event_id ); - return undef unless @$events == 1; + my $events = getEventById( $dbh, $config, $eventId, $options ); + return undef unless scalar(@$events) == 1; my $event = $events->[0]; my $conditions = []; @@ -1351,7 +1375,7 @@ sub get_previous_event_of_series { push @$conditions, "series_name=?"; push @$bind_values, $event->{series_name}; - setDefaultEventConditions( $config, $conditions, $bind_values ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); $conditions = join( ' and ', @$conditions ); my $query = qq{ @@ -1362,7 +1386,7 @@ sub get_previous_event_of_series { }; $events = db::get( $dbh, $query, $bind_values ); - return undef unless @$events == 1; + return undef unless scalar(@$events) == 1; return $events->[0]->{id}; } @@ -1371,12 +1395,13 @@ sub get_by_date_range { my $config = shift; my $start_date = shift; my $end_date = shift; + my $options = shift; my $conditions = []; push @$conditions, 'start_date between ? and ?'; my $bind_values = [ $start_date, $end_date ]; - setDefaultEventConditions( $config, $conditions, $bind_values ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); $conditions = join( ' and ', @$conditions ); @@ -1605,28 +1630,33 @@ sub check_params { } #if no location is set, use exclude location filter from default config - my $exclude_locations = ''; + my $locations_to_exclude = ''; if ( ( $location eq '' ) && ( defined $config->{filter} ) - && ( defined $config->{filter}->{exclude_locations} ) ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) { - $exclude_locations = $config->{filter}->{exclude_locations} || ''; - $exclude_locations =~ s/\s+/ /g; + $locations_to_exclude = $config->{filter}->{locations_to_exclude} || ''; + $locations_to_exclude =~ s/\s+/ /g; } - my $exclude_projects = ''; + my $projects_to_exclude = ''; if ( ( defined $config->{filter} ) - && ( defined $config->{filter}->{exclude_projects} ) ) + && ( defined $config->{filter}->{projects_to_exclude} ) ) { - $exclude_projects = $config->{filter}->{exclude_projects} || ''; - $exclude_projects =~ s/\s+/ /g; + $projects_to_exclude = $config->{filter}->{projects_to_exclude} || ''; + $projects_to_exclude =~ s/\s+/ /g; } - #disable exclude filter by 'no_exlude=1' - my $no_exclude = ''; - $no_exclude = '1' - if ( ( defined $params->{no_exclude} ) - && ( $params->{no_exclude} eq '1' ) ); + + #enable exclude locations filter + my $exclude_locations = 0; + $exclude_locations = 1 if ( defined $params->{exclude_locations} ) && ( $params->{exclude_locations} eq '1' ) ; + + my $exclude_projects = 0; + $exclude_projects = 1 if ( defined $params->{exclude_projects} ) && ( $params->{exclude_projects} eq '1' ) ; + + my $exclude_event_images = 0; + $exclude_event_images = 1 if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ) ; #show future events by default my $archive = 'future'; @@ -1670,7 +1700,7 @@ sub check_params { #print STDERR $params->{template}."\n"; my $template = '.html'; - if ( $params->{template} eq 'no' ) { + if ( ( defined $params->{template} ) && ($params->{template} eq 'no') ) { $template = 'no'; } else { $template = template::check( $params->{template}, 'event_list.html' ); @@ -1690,7 +1720,7 @@ sub check_params { my $default_project = undef; my $projects = project::get( $config, { name => $project_name } ); log::error( $config, "no configuration found for project '$project_name'" ) - unless ( @$projects == 1 ); + unless ( scalar(@$projects) == 1 ); $default_project = $projects->[0]; # get project from parameter (by name) @@ -1702,7 +1732,7 @@ sub check_params { my $project_name = $params->{project}; my $projects = project::get( $config, { name => $project_name } ); log::error( $config, 'invalid project ' . $project_name ) - unless @$projects == 1; + unless scalar(@$projects) == 1; $project = $projects->[0]; } @@ -1759,12 +1789,14 @@ sub check_params { studio_id => $studio_id, json_callback => $json_callback, get => $get, - exclude_locations => $exclude_locations, - exclude_projects => $exclude_projects, - no_exclude => $no_exclude, - disable_event_sync => $disable_event_sync, - extern => $extern, - recordings => $recordings, + locations_to_exclude => $locations_to_exclude, + projects_to_exclude => $projects_to_exclude, + exclude_locations => $exclude_locations, + exclude_projects => $exclude_projects, + exclude_event_images => $exclude_event_images, + disable_event_sync => $disable_event_sync, + extern => $extern, + recordings => $recordings, }; #print STDERR Dumper($checked); diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 8fb0c88..5d81a33 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -364,6 +364,13 @@ sub getInternalPath{ return $path; } +sub normalizeName{ + my $name = shift; + return undef unless defined $name; + $name =~s/.*\///g; + return $name; +} + sub readFile{ my $path=shift; my $content=''; diff --git a/lib/calcms/mail.pm b/lib/calcms/mail.pm new file mode 100644 index 0000000..fe44a04 --- /dev/null +++ b/lib/calcms/mail.pm @@ -0,0 +1,26 @@ +package mail; + +use MIME::Lite; + +sub send { + my $mail = shift; + + my $msg = MIME::Lite->new( + 'From' => $mail->{'From'}, + 'To' => $mail->{'To'}, + 'Cc' => $mail->{'Cc'}, + 'Reply-To' => $mail->{'Reply-To'}, + 'Subject' => $mail->{'Subject'}, + 'Data' => $mail->{'Data'}, + ); + + #print '
';
+    $msg->print( \*STDERR );
+    #print '
'; + + $msg->send; +} + + +# do not delete next line +return 1; diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm new file mode 100644 index 0000000..7640287 --- /dev/null +++ b/lib/calcms/password_requests.pm @@ -0,0 +1,253 @@ +package password_requests; + +use warnings "all"; +use strict; + +use Data::Dumper; +use Session::Token; + +# table: calcms_password_requests +require Exporter; +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get insert delete get_columns); +our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); + +use mail; +use uac; +use db; +use auth; + +sub debug; + +sub get_columns{ + my $config=shift; + + my $dbh=db::connect($config); + my $cols=db::get_columns($dbh, 'calcms_password_requests'); + my $columns={}; + for my $col (@$cols){ + $columns->{$col}=1; + } + return $columns; +} + +sub get{ + my $config=shift; + my $condition=shift; + + my $dbh=db::connect($config); + + my @conditions=(); + my @bind_values=(); + + if (defined $condition->{user}){ + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } + + if (defined $condition->{token}){ + push @conditions, 'token=?'; + push @bind_values, $condition->{token}; + } + + return undef if (scalar @conditions) == 0; + + my $conditions=" where ".join(" and ",@conditions); + my $query=qq{ + select * + from calcms_password_requests + $conditions + }; + #print $query."\n".Dumper(\@bind_values); + + my $entries=db::get($dbh, $query, \@bind_values); + return $entries->[0] || undef; +} + +sub update{ + my $config=shift; + my $entry=shift; + + return unless defined $entry->{user}; + + my $dbh=db::connect($config); + my $values = join(",", map {$_.'=?'} (keys %$entry)); + my @bind_values = map {$entry->{$_}} (keys %$entry); + push @bind_values, $entry->{token}; + + my $query=qq{ + update calcms_password_requests + set $values + where token=? + }; + print STDERR $query . Dumper(\@bind_values); + db::put($dbh, $query, \@bind_values); +} + + +sub insert{ + my $config=shift; + my $entry=shift; + + return undef unless defined $entry->{user}; + + my $dbh=db::connect($config); + print STDERR 'insert ' . Dumper($entry); + return db::insert($dbh, 'calcms_password_requests', $entry); +} + +sub delete{ + my $config=shift; + my $condition=shift; + + my @conditions=(); + my @bind_values=(); + + if ((defined $condition->{user}) && ($condition->{user} ne '')){ + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } + + if ((defined $condition->{token}) && ($condition->{token} ne '')){ + push @conditions, 'token=?'; + push @bind_values, $condition->{token}; + } + + return if (scalar @conditions)==0; + my $conditions=" where ".join(" and ", @conditions); + + my $dbh=db::connect($config); + + my $query=qq{ + delete + from calcms_password_requests + $conditions + }; + + print STDERR "$query " . Dumper(\@bind_values); + db::put($dbh, $query, \@bind_values); +} + +sub sendToken{ + my $config=shift; + my $entry=shift; + + return undef unless defined $entry->{user}; + + my $user = uac::get_user($config, $entry->{user}); + return undef unless defined $user; + + # check age of existing entry + my $oldEntry = password_requests::get($config, { user => $entry->{user} } ); + if (defined $oldEntry){ + my $createdAt = $oldEntry->{created_at}; + print STDERR Dumper($oldEntry); + print STDERR "createdAt=$createdAt\n"; + my $age = time() - time::datetime_to_time($createdAt); + if ($age < 60) { + print STDERR "too many requests"; + return undef; + } + print STDERR "age=$age\n"; + } + password_requests::delete($config, $entry); + + $entry->{max_attempts} = 0; + $entry->{token} = Session::Token->new->get; + + my $baseUrl = $config->{locations}->{source_base_url} . $config->{locations}->{editor_base_url}; + my $url = $baseUrl."/requestPassword.cgi?token=" . $entry->{token}; + my $content = "Hi,$user->{full_name}\n\n"; + $content .= "Someone just tried to reset your password for $baseUrl.\n\n"; + $content .= "If you like to set a new password, please follow the link below\n"; + $content .= $url."\n\n"; + $content .= "If you do not like to set a new password, please ignore this mail.\n"; + + mail::send({ + "To" => $user->{email}, + "Subject" => "request to change password for $baseUrl", + "Data" => $content + }); + + password_requests::insert($config, $entry); +} + +sub changePassword { + my $config = shift; + my $request = shift; + my $userName = shift; + + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + + unless ( ( defined $userName ) || ( $userName eq '' ) ) { + return { error => 'user not found' }; + } + + my $user = uac::get_user( $config, $userName ); + + unless ( ( defined $user ) && ( defined $user->{id} ) && ( $user->{id} ne '' ) ) { + return { error => 'user id not found' }; + } + + unless ( password_requests::checkPassword( $params->{user_password} ) ) { + return { error => 'password does not meet requirements' }; + } + + if ( $params->{user_password} ne $params->{user_password2} ) { + return { error => 'entered passwords do not match'}; + } + + #print STDERR "error at changing password:" . Dumper($errors); + + my $crypt = auth::crypt_password( $params->{user_password} ); + $user = { id => $user->{id} }; + $user->{salt} = $crypt->{salt}; + $user->{pass} = $crypt->{crypt}; + + #print '
'.Dumper($user).'
'; + $config->{access}->{write} = 1; + print STDERR "update user".Dumper($user); + my $result = uac::update_user( $config, $user ); + print STDERR "result:".Dumper($result); + $config->{access}->{write} = 0; + return { success => "password changed for $userName" }; +} + +sub checkPassword { + my $password = shift; + unless ( defined $password || $password eq '' ) { + error("password is empty"); + return; + } + if ( length($password) < 8 ) { + error("password to short"); + return 0; + } + unless ( $password =~ /[a-z]/ ) { + error("password should contains at least one small character"); + return 0; + } + unless ( $password =~ /[A-Z]/ ) { + error("password should contains at least one big character"); + return 0; + } + unless ( $password =~ /[0-9]/ ) { + error("password should contains at least one number"); + return 0; + } + unless ( $password =~ /[^a-zA-Z0-9]/ ) { + error("password should contains at least one special character"); + return 0; + } + return 1; +} + + +sub error{ + my $msg=shift; + print "ERROR: $msg
\n"; +} + +#do not delete last line! +1; diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index a6fb181..777eb06 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -1,14 +1,17 @@ #!/bin/perl package project; + use warnings "all"; use strict; use Data::Dumper; use Date::Calc; + use config; use log; use template; +use images; require Exporter; our @ISA = qw(Exporter); @@ -109,23 +112,16 @@ sub insert{ my $columns=get_columns($config); my $project={}; for my $column (keys %$columns){ - $project->{$column}=$entry->{$column} if defined $entry->{$column}; + $project->{$column} = $entry->{$column} if defined $entry->{$column}; } + $project->{image} = images::normalizeName( $project->{image} ) if defined $project->{image}; + my $dbh=db::connect($config); my $id=db::insert($dbh, 'calcms_projects', $project); return $id; } -# delete project -sub delete{ - my $config=shift; - my $entry=shift; - - my $dbh=db::connect($config); - db::put($dbh, 'delete from calcms_projects where project_id=?', [$entry->{project_id}]); -} - # update project sub update{ my $config=shift; @@ -137,6 +133,8 @@ sub update{ $entry->{$column}=$project->{$column} if defined $project->{$column}; } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + my $values =join(",", map {$_.'=?'} (keys %$entry)); my @bind_values =map {$entry->{$_}} (keys %$entry); push @bind_values,$entry->{project_id}; @@ -151,6 +149,15 @@ sub update{ db::put($dbh, $query, \@bind_values); } +# delete project +sub delete{ + my $config=shift; + my $entry=shift; + + my $dbh=db::connect($config); + db::put($dbh, 'delete from calcms_projects where project_id=?', [$entry->{project_id}]); +} + # get studios of a project sub get_studios{ diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 97275c4..38eea9c 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -2,8 +2,12 @@ package series; use warnings "all"; use strict; + use Data::Dumper; + use events; +use images; + require Exporter; our @ISA = qw(Exporter); @@ -136,15 +140,16 @@ sub insert{ return undef unless defined $series->{project_id}; return undef unless defined $series->{studio_id}; - my $project_id=$series->{project_id}; - my $studio_id =$series->{studio_id}; + my $project_id = $series->{project_id}; + my $studio_id = $series->{studio_id}; my $columns=series::get_columns($config); my $entry={}; for my $column (keys %$columns){ - $entry->{$column}=$series->{$column} if defined $series->{$column}; + $entry->{$column} = $series->{$column} if defined $series->{$column}; } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; $entry->{created_at} = time::time_to_datetime(time()); $entry->{modified_at}= time::time_to_datetime(time()); @@ -179,6 +184,7 @@ sub update{ for my $column (keys %$columns){ $entry->{$column}=$series->{$column} if defined $series->{$column}; } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; $entry->{id} = $series->{series_id}; $entry->{modified_at}= time::time_to_datetime(time()); @@ -522,7 +528,18 @@ sub get_events{ my $dbh=db::connect($config); my $results=db::get($dbh, $query, \@bind_values); - $results=events::modify_results($dbh, $config, {base_url=>'', params=>{checked=>{template=>''}}}, $results); + #print STDERR Dumper($results); + + $results=events::modify_results( + $dbh, $config, { + base_url => '', + params => { + checked => { + template => '' + } + } + } , $results + ); #add studio id to events my $studios=studios::get($config, $options); @@ -552,7 +569,7 @@ sub get_event{ my $event_id = $options->{event_id} ||''; my $draft = $options->{draft} ||''; - unless(defined($options->{allow_any})){ + unless(defined $options->{allow_any} ){ if ($project_id eq''){ uac::print_error("missing project_id"); return undef; @@ -580,18 +597,19 @@ sub get_event{ $queryOptions->{draft} = $draft if $draft ne ''; my $events=series::get_events($config, $queryOptions); + unless (defined $events){ uac::print_error("error on loading event"); return undef; } - if(@$events==0){ + if(scalar(@$events)==0){ uac::print_error("event not found"); return undef; } - if(@$events>1){ + if(scalar(@$events)>1){ print STDERR q{multiple assignments found for } .q{project_id=}.$options->{project_id} .q{, studio_id=}.$options->{studio_id} diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index e6f5353..3df09a9 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -540,11 +540,41 @@ sub delete{ from calcms_series_dates where project_id=? and studio_id=? and series_id=? }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{series_id}]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id} ]; #print '
$query'.$query.Dumper($bind_values).'
'; db::put($dbh, $query, $bind_values); } +# get all series dates where no event has been created for +sub getDatesWithoutEvent{ + my $config = shift; + my $options = shift; + + return unless defined $options->{project_id}; + return unless defined $options->{studio_id}; + return unless defined $options->{from}; + return unless defined $options->{till}; + + my $dbh=db::connect($config); + + my $query=q{ + SELECT sd.* + FROM calcms_series_dates sd LEFT JOIN calcms_events e + on (sd.start = e.start) + where e.start is null + and sd.exclude != 1 + and sd.project_id = ? + and sd.studio_id = ? + and sd.start > ? + and sd.end < ? + order by sd.start + }; + + my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{from}, $options->{till} ]; + my $entries = db::get($dbh, $query, $bind_values); + return $entries; + +} sub error{ my $msg=shift; diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index 7e9d9d2..328bf08 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -17,6 +17,8 @@ use series_dates; use studios; use studio_timeslot_dates; use event_history; +use images; + # check permissions, insert and update events related to series @@ -46,10 +48,15 @@ sub save_content{ return undef unless(defined $entry->{id}); for my $attr (keys %$entry){ + next unless defined $entry->{$attr}; $entry->{$attr}=~s/^\s+//g; $entry->{$attr}=~s/\s+$//g; } + for my $attr ('image', 'series_image'){ + $entry->{$attr} = images::normalizeName($entry->{$attr}) if defined $entry->{$attr}; + } + #print STDERR Dumper(\$entry->{content}); for my $attr ('content', 'topic'){ if (defined $entry->{$attr}){ @@ -60,7 +67,7 @@ sub save_content{ } } - #print STDERR Dumper(\$entry->{html_content}); + #print STDERR Dumper(\$entry->{series_image}); #print STDERR "ok2\n"; #return; $entry->{modified_at}= time::time_to_datetime(time()); @@ -93,8 +100,15 @@ sub save_content{ where id=? }; - #print STDERR $query.Dumper(\@bind_values); - db::put($dbh, $query, \@bind_values); + #print STDERR "update:".$query.Dumper(\@bind_values); + my $result=db::put($dbh, $query, \@bind_values); + unless (defined $result){ + print STDERR "error on updating event\n" ; + return undef; + } + + #print STDERR "result=$result\n"; + #print STDERR "entr after update".Dumper($entry); return $entry; } @@ -410,14 +424,14 @@ sub insert_event{ #get event content from series for my $attr ('program', 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'episode', 'podcast_url', 'archive_url'){ - $event->{$attr}=$serie->{$attr} if defined $serie->{$attr}; + $event->{$attr} = $serie->{$attr} if defined $serie->{$attr}; } $event->{series_image} = $serie->{image} if defined $serie->{image}; $event->{series_image_label} = $serie->{licence} if defined $serie->{licence}; #overwrite series values from parameters for my $attr ('program', 'series_name', 'title', 'user_title', 'excerpt', 'user_except', 'content', 'topic', 'image', 'episode', 'podcast_url', 'archive_url'){ - $event->{$attr}=$params->{$attr} if defined $params->{$attr}; + $event->{$attr} = $params->{$attr} if defined $params->{$attr}; } $event->{'html_content'} = markup::creole_to_html($event->{'content'}) if defined $event->{'content'}; $event->{'html_topic'} = markup::creole_to_html($event->{'topic'}) if defined $event->{'topic'}; @@ -475,6 +489,8 @@ sub update_series_images{ return "missing studio_id" unless defined $options->{studio_id}; return "missing series_id" unless defined $options->{series_id}; return "missing series_image" unless defined $options->{series_image}; + + #print "save $options->{series_image}\n"; my $events=series::get_events( $config, { diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 8b7edfa..99fa98e 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -1,16 +1,19 @@ #!/bin/perl -use CGI; +#use CGI; #use CGI::Carp qw(warningsToBrowser fatalsToBrowser); -use CGI::Session qw(-ip-match); -use CGI::Cookie; +#use CGI::Session qw(-ip-match); +#use CGI::Cookie; #$CGI::Session::IP_MATCH=1; package studios; use warnings "all"; use strict; + use Data::Dumper; +use images; + require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(get_columns get get_by_id insert update delete check check_studio); @@ -96,8 +99,9 @@ sub insert{ my $config=shift; my $entry=shift; - $entry->{created_at} = time::time_to_datetime(time()); - $entry->{modified_at}= time::time_to_datetime(time()); + $entry->{created_at} = time::time_to_datetime(time()); + $entry->{modified_at} = time::time_to_datetime(time()); + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; my $dbh=db::connect($config); my $id=db::insert($dbh, 'calcms_studios', $entry); @@ -116,6 +120,7 @@ sub update{ for my $column (keys %$columns){ $entry->{$column}=$studio->{$column} if defined $studio->{$column}; } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; my $values =join(",", map {$_.'=?'} (keys %$entry)); my @bind_values =map {$entry->{$_}} (keys %$entry); diff --git a/website/agenda/planung/requestPassword.cgi b/website/agenda/planung/requestPassword.cgi new file mode 100644 index 0000000..3b99163 --- /dev/null +++ b/website/agenda/planung/requestPassword.cgi @@ -0,0 +1,165 @@ +#! /usr/bin/perl -w + +use warnings "all"; +use strict; + +use Data::Dumper; + +use params; +use config; +use db; +use auth; +use password_requests; + +binmode STDOUT, ":utf8"; + +my $r = shift; +( my $cgi, my $params, my $error ) = params::get($r); + +my $config = config::get('../config/config.cgi'); +my $debug = $config->{system}->{debug}; + +$params = check_params($params); + +print "Content-type:text/html\n\n"; +print qq{ + + + + + +}; + +if ( defined $params->{user}){ + sendToken($config, $params); + return; +}else{ + my $result=checkToken($config, $params); + return; +} + +sub sendToken{ + my $config=shift; + my $params=shift; + my $entry = password_requests::sendToken($config, { user => $params->{user} }); + if (defined $entry){ + print "Please check you mails\n" + }else{ + print "Sorry\n"; + } +} + +sub checkToken{ + my $config=shift; + my $params=shift; + + my $token = $params->{token}; + + my $entry = password_requests::get($config, { token => $token }); + unless (defined $entry){ + print "invalid token\n"; + return undef; + } + + print STDERR Dumper($entry); + my $created_at = $entry->{created_at}; + unless (defined $created_at){ + print "invalid token age\n"; + return undef; + } + + my $age = time() - time::datetime_to_time($created_at); + if ($age > 600) { + print "token is too old\n"; + password_requests::delete($config, { token => $token }); + return undef; + } + + $config->{access}->{write} = 1; + $entry->{max_attempts}++; + password_requests::update($config, $entry); + $config->{access}->{write} = 0; + + if ($entry->{max_attempts}>10){ + print "too many failed attempts, please request a new token by mail\n"; + password_requests::delete($config, { token => $token }); + return undef; + } + + unless ((defined $params->{user_password}) && (defined $params->{user_password2})){ + printForm($token); + return undef; + } + + if ($params->{action} eq 'change'){ + my $user = $entry->{user}; + my $request = { + config => $config, + params => { checked => $params } + }; + my $result = password_requests::changePassword($config, $request, $user); + + if (defined $result->{error}){ + #print "sorry\n"; + print $result->{error}."\n"; + printForm($token); + } + + if (defined $result->{success}){ + #print "success\n"; + print $result->{success}."\n"; + password_requests::delete($config, { user => $user }); + my $url=$config->{locations}->{editor_base_url}; + print qq{ + + }; + } + } + +} + +sub printForm{ + my $token=shift; + print qq{ +
+ + + + +
+ }; + +} + +sub check_params { + my $params = shift; + + my $checked = {}; + + #my $template = ''; + #$checked->{template} = template::check( $params->{template}, 'requestPassword' ); + + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; + + for my $param ( 'user','token', 'user_password', 'user_password2' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) { + $checked->{$param} = $params->{$param}; + } + } + + $checked->{action} = ''; + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(change)$/ ) { + $checked->{action} = $params->{action}; + } + } + + return $checked; +} + From 23d5261e574bb2de009c58d6186af13512748092 Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 17 Mar 2018 17:41:00 +0100 Subject: [PATCH 003/391] add internal image folders --- website/agenda_files/media/.htaccess | 7 +++++++ website/agenda_files/media/icons/.htaccess | 7 +++++++ website/agenda_files/media/images/.htaccess | 7 +++++++ website/agenda_files/media/internal/.htaccess | 3 +++ website/agenda_files/media/internal/icons/.htaccess | 3 +++ website/agenda_files/media/internal/images/.htaccess | 3 +++ website/agenda_files/media/internal/thumbs/.htaccess | 3 +++ website/agenda_files/media/internal/upload/.htaccess | 3 +++ website/agenda_files/media/thumbs/.htaccess | 7 +++++++ website/agenda_files/media/upload/.htaccess | 7 +++++++ 10 files changed, 50 insertions(+) create mode 100644 website/agenda_files/media/.htaccess create mode 100644 website/agenda_files/media/icons/.htaccess create mode 100644 website/agenda_files/media/images/.htaccess create mode 100644 website/agenda_files/media/internal/.htaccess create mode 100644 website/agenda_files/media/internal/icons/.htaccess create mode 100644 website/agenda_files/media/internal/images/.htaccess create mode 100644 website/agenda_files/media/internal/thumbs/.htaccess create mode 100644 website/agenda_files/media/internal/upload/.htaccess create mode 100644 website/agenda_files/media/thumbs/.htaccess create mode 100644 website/agenda_files/media/upload/.htaccess diff --git a/website/agenda_files/media/.htaccess b/website/agenda_files/media/.htaccess new file mode 100644 index 0000000..651c4ee --- /dev/null +++ b/website/agenda_files/media/.htaccess @@ -0,0 +1,7 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI + + +ExpiresActive On +ExpiresDefault "access plus 5 minutes" + + diff --git a/website/agenda_files/media/icons/.htaccess b/website/agenda_files/media/icons/.htaccess new file mode 100644 index 0000000..651c4ee --- /dev/null +++ b/website/agenda_files/media/icons/.htaccess @@ -0,0 +1,7 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI + + +ExpiresActive On +ExpiresDefault "access plus 5 minutes" + + diff --git a/website/agenda_files/media/images/.htaccess b/website/agenda_files/media/images/.htaccess new file mode 100644 index 0000000..651c4ee --- /dev/null +++ b/website/agenda_files/media/images/.htaccess @@ -0,0 +1,7 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI + + +ExpiresActive On +ExpiresDefault "access plus 5 minutes" + + diff --git a/website/agenda_files/media/internal/.htaccess b/website/agenda_files/media/internal/.htaccess new file mode 100644 index 0000000..e9f159b --- /dev/null +++ b/website/agenda_files/media/internal/.htaccess @@ -0,0 +1,3 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI +deny from all + diff --git a/website/agenda_files/media/internal/icons/.htaccess b/website/agenda_files/media/internal/icons/.htaccess new file mode 100644 index 0000000..e9f159b --- /dev/null +++ b/website/agenda_files/media/internal/icons/.htaccess @@ -0,0 +1,3 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI +deny from all + diff --git a/website/agenda_files/media/internal/images/.htaccess b/website/agenda_files/media/internal/images/.htaccess new file mode 100644 index 0000000..e9f159b --- /dev/null +++ b/website/agenda_files/media/internal/images/.htaccess @@ -0,0 +1,3 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI +deny from all + diff --git a/website/agenda_files/media/internal/thumbs/.htaccess b/website/agenda_files/media/internal/thumbs/.htaccess new file mode 100644 index 0000000..e9f159b --- /dev/null +++ b/website/agenda_files/media/internal/thumbs/.htaccess @@ -0,0 +1,3 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI +deny from all + diff --git a/website/agenda_files/media/internal/upload/.htaccess b/website/agenda_files/media/internal/upload/.htaccess new file mode 100644 index 0000000..e9f159b --- /dev/null +++ b/website/agenda_files/media/internal/upload/.htaccess @@ -0,0 +1,3 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI +deny from all + diff --git a/website/agenda_files/media/thumbs/.htaccess b/website/agenda_files/media/thumbs/.htaccess new file mode 100644 index 0000000..651c4ee --- /dev/null +++ b/website/agenda_files/media/thumbs/.htaccess @@ -0,0 +1,7 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI + + +ExpiresActive On +ExpiresDefault "access plus 5 minutes" + + diff --git a/website/agenda_files/media/upload/.htaccess b/website/agenda_files/media/upload/.htaccess new file mode 100644 index 0000000..651c4ee --- /dev/null +++ b/website/agenda_files/media/upload/.htaccess @@ -0,0 +1,7 @@ +Options -Indexes +FollowSymLinks +MultiViews -ExecCGI + + +ExpiresActive On +ExpiresDefault "access plus 5 minutes" + + From 777a49c3714fb80b3f5c854adc19f3322f9ab947 Mon Sep 17 00:00:00 2001 From: Milan Date: Tue, 17 Apr 2018 12:01:53 +0200 Subject: [PATCH 004/391] fix weekdaysInMonth, thanks to jankowa. fix filters on aggregations --- lib/calcms/series_dates.pm | 2 +- lib/calcms/time.pm | 52 ++++++++++++++++------------ lib/calcms/uac.pm | 28 ++++++++++++--- lib/calcms/work_dates.pm | 2 +- website/agenda/aggregate.cgi | 8 +++-- website/agenda/config/config.cgi.off | 2 ++ website/agenda/css/calcms.css | 2 +- 7 files changed, 63 insertions(+), 33 deletions(-) diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index 3df09a9..9eb53b0 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -416,7 +416,7 @@ sub get_week_of_month_dates{ return undef if $frequency eq''; return undef if $frequency==0; - my $start_dates=time::get_nth_weekday_in_month($start, $end, $week, $weekday-1); + my $start_dates=time::get_nth_weekday_in_month($start, $end, $week, $weekday); if ((defined $nextDay) && ($nextDay>0)){ for (my $i=0;$i<@$start_dates;$i++){ diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index 0a5a118..c8e8285 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -24,7 +24,7 @@ our @EXPORT_OK = qw( date_cond time_cond check_date check_time check_datetime check_year_month datetime_to_rfc822 get_datetime datetime_to_utc datetime_to_utc_datetime get_duration get_duration_seconds - get_durations get_names get_all_names get_weekdays weekday_index + get_durations get_names get_all_names weekday_index $names ); @@ -86,24 +86,24 @@ our $weekday_index={ sub get_weekdays{ return{ - 0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, - 'Mo'=>0, - 'Tu'=>1, - 'Di'=>1, - 'We'=>2, - 'Mi'=>2, - 'Th'=>3, - 'Do'=>3, - 'Fr'=>4, - 'Sa'=>5, - 'Su'=>6, - 'So'=>6 + 7 => 7, + 'Mo'=>1, + 'Tu'=>2, + 'Di'=>2, + 'We'=>3, + 'Mi'=>3, + 'Th'=>4, + 'Do'=>4, + 'Fr'=>5, + 'Sa'=>6, + 'Su'=>7, + 'So'=>7 }; } @@ -518,14 +518,15 @@ sub get_event_date{ my $datetime=time::time_to_datetime(time()); my $hour=(time::datetime_to_array($datetime))->[3]; + #print STDERR "datetime=$datetime hour=$hour\n"; #today: between 0:00 and starting_hour show last day if ($hour < $config->{date}->{day_starting_hour}){ - my $date=time::datetime_to_array(time::add_hours_to_datetime($datetime,-24)); - return $date->[0].'-'.$date->[1].'-'.$date->[2]; + my $date=time::datetime_to_array(time::add_days_to_datetime($datetime,-1)); + return join('-', ($date->[0], $date->[1], $date->[2]) ); }else{ #today: between starting_hour and end of day show current day my $date=time::datetime_to_array(time::time_to_datetime(time())); - return $date->[0]."-".$date->[1]."-".$date->[2]; + return join('-', ($date->[0], $date->[1], $date->[2]) ); } } @@ -559,15 +560,22 @@ sub get_datetime{ #get list of nth weekday in month from start to end sub get_nth_weekday_in_month{ - my $start=shift; # datetime string - my $end=shift; # datetime string - my $nth=shift; # every nth week of month - my $weekday=shift; # weekday [0..6,'Mo'-'Su','Mo'-'Fr'] + my $start = shift; # datetime string + my $end = shift; # datetime string + my $nth = shift; # every nth week of month + my $weekday = shift; # weekday [1..7,'Mo'-'Su','Mo'-'Fr'] - my $weekdays=time::get_weekdays(); - $weekday=$weekdays->{$weekday+1}; + return [] unless defined $start; + return [] unless defined $end; + return [] unless defined $nth; + return [] unless defined $weekday; + + my $weekdays = time::get_weekdays(); + return [] unless defined $weekdays->{$weekday}; + $weekday = $weekdays->{$weekday}; my $dates=[]; + if ($start=~/(\d\d\d\d)-(\d\d)-(\d\d)[ T](\d\d)\:(\d\d)/){ my $hour=int($4); my $min=int($5); diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 9b312d3..754ee98 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -57,15 +57,31 @@ sub get_user{ # get all users sub get_users{ - my $config=shift; + my $config = shift; + my $condition = shift; + + my @conditions=(); + my @bind_values=(); + + for my $key ('name', 'email'){ + my $value = $condition->{$key}; + next unless defined $value; + next if $value eq ''; + push @conditions, $key.'=?'; + push @bind_values, $value; + } + + my $conditions=''; + $conditions=" where ".join(" and ",@conditions) if (scalar @conditions>0); my $query=qq{ select id, name, full_name, email, disabled, modified_at, created_at from calcms_users + $conditions }; - my $dbh=db::connect($config); - my $users=db::get($dbh, $query); + my $dbh = db::connect($config); + my $users = db::get($dbh, $query, \@bind_values); return $users; } @@ -93,7 +109,7 @@ sub get_users_by_studio{ } my $conditions=''; - $conditions=" and ".join(" and ",@conditions) if (@conditions>0); + $conditions=" and ".join(" and ",@conditions) if (scalar @conditions>0); my $query=qq{ select distinct(u.id), u.name, u.full_name @@ -808,9 +824,11 @@ sub print_warn{ } sub print_error{ + my $message=shift; + print STDERR "ERROR:".$message."\n"; print '
' .' ' - .$_[0]. + .$message. '
'."\n"; } diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index c945ad5..e53af98 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -247,7 +247,7 @@ sub get_week_of_month_dates{ return undef if $frequency eq''; return undef if $frequency==0; - my $start_dates=time::get_nth_weekday_in_month($start, $end, $week, $weekday-1); + my $start_dates=time::get_nth_weekday_in_month($start, $end, $week, $weekday); my $results=[]; diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 42c2890..022471a 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -31,8 +31,6 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { my %params = $cgi->Vars(); my $params = \%params; - #print STDERR Dumper($params); - my $config = config::get('config/config.cgi'); my $debug = $config->{system}->{debug}; my $mem_debug = $config->{system}->{debug_memory}; @@ -44,8 +42,11 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { $output_header .= "Content-type:text/html; charset=UTF-8;\n\n"; } - # $output_header.=''."\n"; + $params->{exclude_locations} = 1; + $params->{exclude_projects} = 1; + $params->{exclude_event_images} = 1; + # $output_header.=''."\n"; my $request = { url => $ENV{QUERY_STRING}, params => { @@ -54,6 +55,7 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { }, }; $params = $request->{params}->{checked}; + #print STDERR Dumper($params); my $mem = 0; log::init($request); diff --git a/website/agenda/config/config.cgi.off b/website/agenda/config/config.cgi.off index 9a2ed6f..0a7e592 100755 --- a/website/agenda/config/config.cgi.off +++ b/website/agenda/config/config.cgi.off @@ -104,6 +104,8 @@ project Corax # limit creating comments in days before and after start of event no_new_comments_before 10 no_new_comments_after 60 + + # hide_event_images 1 diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index c63d195..ad968aa 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -747,7 +747,7 @@ a#calcms_search_show_details #plus{ #player{ border:0; padding:0; - height:64px; + height:3rem; } #player:hover{ opacity:0.9; From fffd6e41925f4056a7ab8b519a28165885346fc9 Mon Sep 17 00:00:00 2001 From: Milan Date: Wed, 18 Apr 2018 00:59:01 +0200 Subject: [PATCH 005/391] check hide image definition, show ongoing uploads in calendar, reenable working times --- lib/calcms/events.pm | 2 +- lib/calcms/series_dates.pm | 2 +- lib/calcms/studio_timeslot_dates.pm | 2 +- lib/calcms/work_dates.pm | 2 +- website/agenda/planung/calendar.cgi | 18 ++++++++++++++++++ website/agenda/planung/pot/de/menu.po | 3 +++ website/agenda/planung/pot/en/menu.po | 3 +++ website/agenda/planung/templates/default.html | 4 ++++ 8 files changed, 32 insertions(+), 4 deletions(-) diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 2dc14e7..09668d4 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -1211,7 +1211,7 @@ sub render { if ( $project->{name} ne '' ); $template_parameters->{controllers} = $config->{controllers}; - $template_parameters->{hide_event_images}=1 if $config->{permissions}->{hide_event_images} == 1; + $template_parameters->{hide_event_images}=1 if (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} == 1); # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; template::process( $_[0], $params->{template}, $template_parameters ); diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index 9eb53b0..545e938 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -145,7 +145,7 @@ sub get_series{ my $condition=shift; my $date_range_include=0; - $date_range_include=1 if $condition->{date_range_include}==1; + $date_range_include=1 if (defined $condition->{date_range_include}) && ($condition->{date_range_include}==1); my $dbh=db::connect($config); diff --git a/lib/calcms/studio_timeslot_dates.pm b/lib/calcms/studio_timeslot_dates.pm index 7cb4006..226434e 100644 --- a/lib/calcms/studio_timeslot_dates.pm +++ b/lib/calcms/studio_timeslot_dates.pm @@ -35,7 +35,7 @@ sub get{ my $condition=shift; my $date_range_include=0; - $date_range_include=1 if $condition->{date_range_include}==1; + $date_range_include=1 if (defined $condition->{date_range_include}) && ($condition->{date_range_include}==1); my $dbh=db::connect($config); diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index e53af98..8319f03 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -40,7 +40,7 @@ sub get{ my $condition=shift; my $date_range_include=0; - $date_range_include=1 if $condition->{date_range_include}==1; + $date_range_include=1 if (defined $condition->{date_range_include}) && ($condition->{date_range_include}==1); my $dbh=db::connect($config); diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index cdf4a00..30f4d94 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -28,6 +28,7 @@ use markup; use user_settings; use localization; use DateTime; +use audio_recordings; binmode STDOUT, ":utf8"; @@ -423,9 +424,12 @@ sub showCalendar { $events_by_start->{ $date->{start} }->{duration} = $date->{duration} || 0; $events_by_start->{ $date->{start} }->{rms_left} = $date->{rms_left} || 0; $events_by_start->{ $date->{start} }->{rms_right} = $date->{rms_right} || 0; + $events_by_start->{ $date->{start} }->{playout_modified_at} = $date->{modified_at}; + $events_by_start->{ $date->{start} }->{playout_updated_at} = $date->{updated_at} ; } push @$events, $date; } + } #output @@ -490,6 +494,15 @@ sub showCalendar { } } + for my $event (@$events){ + next unless defined $event->{uploaded_at}; + #print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; + next if (defined $event->{playout_updated_at}) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); + #print STDERR Dumper($event); + $event->{upload} ='pending' ; + #$event->{title}.='
pending'; + } + if ( $params->{list} == 1 ) { showEventList( $config, $permissions, $params, $events_by_day ); } else { @@ -1405,6 +1418,10 @@ sub print_event { $attr .= ' start="' . $event->{start} . '"' if defined $event->{start}; } + if (defined $event->{upload}){ + $content.='
uploading '; + } + if ($showIcons) { $content = '
' . $content . '
'; } @@ -1734,6 +1751,7 @@ sub getSeriesEvents { #get events (directly from database to get the ones, not assigned, yet) delete $options->{studio_id}; delete $options->{project_id}; + $options->{recordings}=1; my $request2 = { params => { diff --git a/website/agenda/planung/pot/de/menu.po b/website/agenda/planung/pot/de/menu.po index 3e368cb..d4d84d4 100644 --- a/website/agenda/planung/pot/de/menu.po +++ b/website/agenda/planung/pot/de/menu.po @@ -52,3 +52,6 @@ msgstr "Hilfe" msgid "images" msgstr "Bilder" +msgid "schedule" +msgstr "Dienstplan" + diff --git a/website/agenda/planung/pot/en/menu.po b/website/agenda/planung/pot/en/menu.po index be4f1f8..f2293d8 100644 --- a/website/agenda/planung/pot/en/menu.po +++ b/website/agenda/planung/pot/en/menu.po @@ -52,3 +52,6 @@ msgstr "Help" msgid "images" msgstr "Images" +msgid "schedule" +msgstr "roster" + diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index 0b80fc3..bf69da7 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -37,6 +37,10 @@
+ +
+
+
From b97fe15f7a810ec17b7945e9981891bc7b12d64c Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 19 Apr 2018 00:41:44 +0200 Subject: [PATCH 006/391] fix creating users --- website/agenda/planung/users.cgi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index 4458021..42c026a 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -13,6 +13,7 @@ use roles; use studios; use params; use localization; +use password_requests; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); @@ -200,13 +201,15 @@ sub update_user { return; } - my $users= uac::get_users($config, {email => $params->{email}}); + #print Dumper($params); + my $users= uac::get_users($config, {email => $params->{user_email}}); if (scalar (@$users) > 0){ + #print Dumper($users); error('There is already a user registered for the given email address'); return; } - return unless password_request::checkPassword( $params->{user_password} ) ; + return unless password_requests::checkPassword( $params->{user_password} ) ; if ( $params->{user_password} ne $params->{user_password2} ) { error('password mismatch'); From 41d209f05a071f535e2aea1ad06cabe6a65f2e60 Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 14 May 2018 23:11:32 +0200 Subject: [PATCH 007/391] rewrite image editor, make images editable at projects and studios --- lib/calcms/auth.pm | 43 ++- lib/calcms/events.pm | 4 +- lib/calcms/params.pm | 4 +- lib/calcms/studios.pm | 1 + lib/calcms/time.pm | 24 +- website/agenda/cal.cgi | 28 +- website/agenda/comments.cgi | 26 +- .../open-sans-v15-latin_latin-ext-regular.eot | Bin 0 -> 20486 bytes .../open-sans-v15-latin_latin-ext-regular.svg | 336 ++++++++++++++++++ .../open-sans-v15-latin_latin-ext-regular.ttf | Bin 0 -> 38424 bytes ...open-sans-v15-latin_latin-ext-regular.woff | Bin 0 -> 23708 bytes ...pen-sans-v15-latin_latin-ext-regular.woff2 | Bin 0 -> 18876 bytes .../roboto-v18-latin_latin-ext-regular.eot | Bin 0 -> 25062 bytes .../roboto-v18-latin_latin-ext-regular.svg | 308 ++++++++++++++++ .../roboto-v18-latin_latin-ext-regular.ttf | Bin 0 -> 54052 bytes .../roboto-v18-latin_latin-ext-regular.woff | Bin 0 -> 28236 bytes .../roboto-v18-latin_latin-ext-regular.woff2 | Bin 0 -> 21920 bytes website/agenda/js/calcms.cust.js | 3 +- website/agenda/js/calcms.js | 49 ++- website/agenda/planung/audio_recordings.cgi | 2 + website/agenda/planung/calendar.cgi | 8 +- website/agenda/planung/css/admin.css | 26 +- website/agenda/planung/css/image_manager.css | 53 ++- website/agenda/planung/css/projects.css | 5 - website/agenda/planung/image.cgi | 2 +- website/agenda/planung/image/chess.gif | Bin 161 -> 103 bytes website/agenda/planung/js/datetime.js | 7 + website/agenda/planung/js/edit_image.js | 23 +- website/agenda/planung/js/fileUploader.js | 32 +- website/agenda/planung/js/image.js | 235 ++++++------ website/agenda/planung/pot/de/image.po | 6 + website/agenda/planung/pot/de/projects.po | 5 +- website/agenda/planung/pot/de/studios.po | 3 + website/agenda/planung/pot/en/image.po | 6 + website/agenda/planung/pot/en/projects.po | 5 +- website/agenda/planung/pot/en/studios.po | 3 + website/agenda/planung/series.cgi | 1 + website/agenda/planung/studios.cgi | 2 +- .../agenda/planung/templates/edit_event.html | 14 +- .../agenda/planung/templates/edit_series.html | 2 +- website/agenda/planung/templates/image.html | 106 +++--- .../agenda/planung/templates/imageUpload.html | 8 + .../agenda/planung/templates/image_edit.html | 104 +++--- .../agenda/planung/templates/projects.html | 31 +- website/agenda/planung/templates/studios.html | 18 +- .../templates/upload_audio_recordings.html | 10 +- website/agenda/upload_playout.cgi | 2 +- 47 files changed, 1152 insertions(+), 393 deletions(-) create mode 100644 website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.eot create mode 100644 website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.svg create mode 100644 website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.ttf create mode 100644 website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.woff create mode 100644 website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.woff2 create mode 100644 website/agenda/fonts/roboto-v18-latin_latin-ext-regular.eot create mode 100644 website/agenda/fonts/roboto-v18-latin_latin-ext-regular.svg create mode 100644 website/agenda/fonts/roboto-v18-latin_latin-ext-regular.ttf create mode 100644 website/agenda/fonts/roboto-v18-latin_latin-ext-regular.woff create mode 100644 website/agenda/fonts/roboto-v18-latin_latin-ext-regular.woff2 diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index 97bccf6..32f84c9 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -282,9 +282,15 @@ sub show_login_form{ @@ -340,8 +361,8 @@ sub show_login_form{
- - + +
diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 09668d4..b29e742 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -632,7 +632,7 @@ sub get_query { $bind_values = [ $params->{event_id} ]; #filter by published, default=1 to see published only, set published='all' to see all - my $published = $params->{published} || 1; + my $published = $params->{published} || '1'; if ( ( $published eq '0' ) || ( $published eq '1' ) ) { push @$where_cond, 'published=?'; push @$bind_values, $published; @@ -945,7 +945,7 @@ sub get_query { #filter by published, default =1, set to 'all' to see all my $published_cond = ''; - my $published = $params->{published} || 1; + my $published = $params->{published} || '1'; if ( ( $published eq '0' ) || ( $published eq '1' ) ) { $published_cond = 'published=?'; push @$bind_values, $published; diff --git a/lib/calcms/params.pm b/lib/calcms/params.pm index a9f96b5..f186384 100644 --- a/lib/calcms/params.pm +++ b/lib/calcms/params.pm @@ -21,8 +21,8 @@ sub get{ #get the Apache2::RequestRec my $r=shift; - my $tmp_dir ='/var/tmp/'; - my $upload_limit=1000*1024; + my $tmp_dir = '/var/tmp/'; + my $upload_limit = 1000*1024; my $cgi = undef; my $status = undef; diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 99fa98e..2e12935 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -133,6 +133,7 @@ sub update{ }; my $dbh=db::connect($config); + #print STDERR Dumper($query)." ".Dumper(\@bind_values); db::put($dbh, $query, \@bind_values); } diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index c8e8285..cf79561 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -339,9 +339,27 @@ sub get_duration_seconds{ my $start = shift; my $end = shift; my $timezone= shift||'UTC'; - $start=time::get_datetime($start, $timezone); - $end =time::get_datetime($end, $timezone); - my $duration=$end->epoch()-$start->epoch(); + + unless (defined $start){ + print STDERR "time::get_duration_seconds(): start is missing\n"; + return 0; + } + unless (defined $end){ + print STDERR "time::get_duration_seconds(): end is missing\n"; + return 0; + } + + $start= time::get_datetime($start, $timezone); + $end = time::get_datetime($end, $timezone); + unless (defined $start){ + print STDERR "time::get_duration_seconds(): invalid start\n"; + return 0; + } + unless (defined $end){ + print STDERR "time::get_duration_seconds(): invalid end\n"; + return 0; + } + my $duration=$end->epoch() - $start->epoch(); return $duration; } diff --git a/website/agenda/cal.cgi b/website/agenda/cal.cgi index 91967d8..84b61b3 100755 --- a/website/agenda/cal.cgi +++ b/website/agenda/cal.cgi @@ -5,7 +5,7 @@ use warnings "all"; use strict; use CGI qw(header param Vars); -$CGI::POST_MAX = 1000; +$CGI::POST_MAX = 1000; $CGI::DISABLE_UPLOADS = 1; use Data::Dumper; @@ -14,31 +14,31 @@ use config; use log; use calendar; -my $r=shift; +my $r = shift; #binmode STDOUT, ":utf8"; binmode STDOUT, ":encoding(UTF-8)"; -if ($0=~/cal.*?\.cgi$/){ - (my $cgi, my $params, my $error)=params::get($r); +if ( $0 =~ /cal.*?\.cgi$/ ) { + ( my $cgi, my $params, my $error ) = params::get($r); - my $config=config::get('config/config.cgi'); - my $debug=$config->{system}->{debug}; + my $config = config::get('config/config.cgi'); + my $debug = $config->{system}->{debug}; - my $request={ - url => $ENV{QUERY_STRING}, - params => { + my $request = { + url => $ENV{QUERY_STRING}, + params => { original => $params, - checked => calendar::check_params($config, $params), + checked => calendar::check_params( $config, $params ), }, }; - $params=$request->{params}->{checked}; + $params = $request->{params}->{checked}; log::init($request); - my $out=''; - calendar::get_cached_or_render($out, $config, $request); - print $out."\n"; + my $out = ''; + calendar::get_cached_or_render( $out, $config, $request ); + print $out. "\n"; } 1; diff --git a/website/agenda/comments.cgi b/website/agenda/comments.cgi index df32af9..caeb58d 100755 --- a/website/agenda/comments.cgi +++ b/website/agenda/comments.cgi @@ -4,7 +4,7 @@ use warnings "all"; use strict; use CGI qw(header param Vars); -$CGI::POST_MAX = 1000; +$CGI::POST_MAX = 1000; $CGI::DISABLE_UPLOADS = 1; use Data::Dumper; @@ -17,26 +17,26 @@ use time; use cache; use log; -my $r=shift; -(my $cgi, my $params, my $error)=params::get($r); +my $r = shift; +( my $cgi, my $params, my $error ) = params::get($r); binmode STDOUT, ":encoding(UTF-8)"; -if ($0=~/comments.*?\.cgi$/){ - my $config=config::get('config/config.cgi'); - my $debug=$config->{system}->{debug}; +if ( $0 =~ /comments.*?\.cgi$/ ) { + my $config = config::get('config/config.cgi'); + my $debug = $config->{system}->{debug}; - my $request={ - url => $ENV{QUERY_STRING}, - params => { + my $request = { + url => $ENV{QUERY_STRING}, + params => { original => $params, - checked => comments::check_params($config, $params), + checked => comments::check_params( $config, $params ), }, }; log::init($request); - - my $output=''; - comments::get_cached_or_render($output, $config, $request, 'filter_locked'); + + my $output = ''; + comments::get_cached_or_render( $output, $config, $request, 'filter_locked' ); print $output; } diff --git a/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.eot b/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..f25146fcde8d1e8f2bcf3431e4ae10ab801dce42 GIT binary patch literal 20486 zcmZPzU|=xuXJBArU}9ilU|?Y4W@BS!Wnp4sVPu%V$iTqB;1i(Fz_7p>#DwDcj0_4O z=GO)K$sigP3o-aJ6fmSR2($qetJ{DMNIP^%;z{b^>w$G0zkc(9K*$~s~q!>vjDYEu~kug{va#*Zt_ z>_|+>k(65-Ba@w$g=?fglQ%2*dUuj*ooDHXtuKt?etUiS{6c%v>D?Bezx491>Yo>t zvtqM~>MPIXnm6?wTdEc=ugK&pWsVK_K2LF0T=zAt4F*=)KOQkN{M>Tt=rRLQroToK zVmym`vKliwpSiX1N$kvQ*vS8R=1hGbOK*qB&2cH`AANrJ{#4%klSyCq-V}eoe#3;D zf15T-*X?`OJ7fE)00|X~NW~4z7kXTyCUo*|b5K!vYraaxyLr!P&I9eg3iFrkSgcz8 zojtB6eSWT-k^QUxlYBP6EIiU(zF_MLBbg_r?W~M?J`cW#`?K7v3BD=`7T>Xi(O~hq~ zaOv#~o!?|+>vs3gnd>t}{5FG+xqi{HR>>*L+)R@FOTN0UY<6t4yu$HeN=J~7gwK0L zTc*heR>(TNvR=1LdBN!w?nO5fa<$Yx`>0t|fBn29&VKL3P{ReQSavma?AR~GpO7Z_ z`IbXz<)1wvTO1et33z;;cjNvA)rpd-#syWPi6;)t7VJ2o^KGK>6K(s)X-@Af;tekK zRHaltF6Nx&WqN~2phCUe!a+Tz^xzkLFNVe9tXG%sQN6?c`pM-Z0#9zNz2NbHbNv!6 zx$etiZzZ#Dd8#~Ewai86KdVXb)Z%pJGwp79dgpu$Ln_sNyznXS?h2aqV9LUTt%}{H zU0*i%oi!1>dPPtmh-2P{dwY!53my&&Zan0mY;ffccjDDMJ(VS^pSZc6lzMzZDz72w z?Yc7M1r1-={vP}x8kc{I&Ch3YJ=^)P+ob|L>&7q{12gk{SzVghjDTkvp^0`b24O7Au3B#=#?Ng6w9M z@Xh5}-q&(A@!aK^H_vH=$$WdG^srmDHs|=Snq#*eKM3h1pMR98QzZ3a$t}(+jj^=> zB36_7j*1_$dK>su%yG@qh2p1NUZ2WTxP4}I%Q6xB<^;9{C&F?MUY>I;CGbV?Z~Ix( zb~4VNq0+#*J?ry^-iLw~c|5aUMxSYSO7mi851y&B?(7DKvx0GE-&p$^eC6t0$_r-e zpOxPqK5=gE&B?aGUz+}SGpPJ>W64u%%sRTUW$Wy_cAbvj%qHr5D)E{-?*{9MeAmf` z4g{$FGe1!J#w5sX_Eu?8)-Wac4^QWslx}>*#VhVz_<9~&aawp}jDw^u=h~NN*p_fF zj}U#h$l3U+qm-*h>TK)PF;ZI=ZBXN0Vz4y!iq|Vo7WL)Yxu#`nUL5B*d|}$cAGSve zACw0lX|r0y@pQ+WYg~7)C0@^89jnr`{ch#+`*-VIa^?8v6}#;7S(+(W!&PYU^ZI5T z_nG3^MOp7z%zwRW*I4Lr*?Yx=rj7Y+K`Sm6u?gGZo=dwfd2hPz^x*9swe1rO?H|{ze{fsoeaWns3A1h{$apjFYFTh< zWehV%+p>v~)fz3h_kxuQNSp~_ap5msfZIugJd<9vyOewgv z{YUYv`E1b%3C~~Lu#_pwIHJ)WG-s~4WX|^eqB%RCP7GMG?5jIp$%lh?PXr4s_Bqs^ zbN|Mh{}PY*Rg&dwV^28geklFe)_VH1^rP?pShRE5ibJozYTQzC;rGpbR{!|UJrOw8 z5ad2xUbrJKLCY?M<@bx;9kQP`zjl=U#x_g*Sb;!4N206O%eC8N3YK2j|K{cs-aU!| zM@~!5=@eY6!z$6f{OF2#cZ46E<139m_;l${j%Am4)tL9)XYJnj(p~TBF_mzU%QF?7 z7U-ODYH+`hR6Tj3g|+s!72%)DvX)g{kDl|@J=SO6n{LVW3G);-a!d~2niFw?C9da7 zVWsowj`o*9aUa7Z1%1ms54sB77EEbPJjAKA>uH$6evc>n_oti_^8KnRnBVbb{>hD- z#rI`q99OVBE~(Gbvn=J(jN3kDnayubzuDAjW+iuhf!MTFs%g^eniemTs9V3FA!Su6 z_eSrAJsOECALp*M=~dyJmh^t-x-R#bR%wp&6gn3jICgR&c+fP4K=c+deGb+F3kFds^LV$A0xE8!`+Iohf^6 zD0HOhxX#Vro{cfba-OAEC_cZn@$BI*!Bf*&*jT3ZxK01TC}4U0_aV!?sIuM#L4TPX z(n z@uGKf2j+S4c%6P-QuH>Jh0}9Vtul{e=Q^)oiODnXKMhN4nfM{{Xi<&cp_|Gf$!1a| zB2#xuNi6Z4K4s^M6~^3OO!kGnbhxE=S67B#E%CF~gA-HP%Jw{Te%{0#@}FbM&!xs~ zzYMo!v=+TMqs4UnnMmP`#95h-7!PmelnM41IQ06_yrV6;?YRZ-Roqs4IXnEGs&X~! zb{jX_0;Mf&eat2Wv91Bkz2om0tJJfov3(13Qc?fm zqf9c^9-@!enI3%+qqIG8YZ4EGzSIr(#}YeyPYLaa+!9*)YeSUqB5{|Q0R@_T{PoS8 zHuCQ)nzpHLNidnPP$6u|)sGJ~6ZmgN?qagm&JNx%M=@}INp1+2vVj8Q$GfNJ?~)f* za~7!o?4ZOZxb3buTiRT+qQ-}^i=7nj6gu3Qz;fJ5WT)c=*+WXZA}gmdU3m0z?M%k= z#@E`Sd)7Mpxo1`D-AzcIE!AxB^{20%WK0ytuCE<>txM;5so9)%PmL3g&Ci}{y5CnO z_DS^oh;<%jXR{9(toT`JGh^4)Rlnop(lsVK2G^d>d!eGx@U-FHuDc#x>x!odygGL` zYySqN3;jym0p<%8J-=_dwKih;k?ff-r{_2poPKxjU3+xw`s>Z+0nq|Jj%88-nP>dx z1Wk=eRyE!)?!>p7%XP=I6_aH5DTFy+bmD1W((Lm2x^ezv=~H!ko7iG4)m9&sUVlQ! z>5It6;3I-sug*9#d*r`heZXP3rh591vRB@D-#+eLd@7>C>-*ws2D`Z@h$Zni9%K8o z<=>^UmU^kfFQseQHs#uApRAoH-obHr=REUUKAfS3h1IcU8OEPfUvy1Kzv8Mjcd@nY z{-3fNc=>8rZXWIaC&QHg(6N1<)=BLG)BI^+EGyLiHN5dk<4$(Vb-AA|n3$S+v+m+U z_T=3H92XWYE}y!2;Uuo3WgRRVBLoTVYt-s1Sw^_^35`nI#^99UI#z)*X+*R*Sg0#~dM zIM+Z+J_u&gYPntil2)V!KVz~HVgKh+C#n%anx3+qxZxqnFz*(wP^h{Ko>AqpW zvyD?PuXW7{RjR+TVWWdTqv;mQBa4jY>*KS>HC>nb&CC0tXD3bd*5^Fp)WCF``vR?xOeJDEtvAmvPbyH zr@8YQUWl5QK55vu)M;3y%ITRm9%rly<9798jl64gHz^KGGr(xhLiT$zel zsZV;sWp?d;IB$W5MM?Q9neyYiQa;ZUxOXVx&Fhp`fla1=emLKmxI4sZ$L*ErhxSSG z&v=%4%i_wXl!%o0x)(;NpK`9we4@EU{%53NA>)SVr}8qUPwdT)_q8dkjtse9e6si; zRD51vzx1_oZg50cJ`Br!IB=6KPd0I zeK}0=QTdgep2riPifnyTvb^hU&Vh+-yPUehk4Z23Q_s@QP+uAMG*W-;ZJV%J#=qWx>&TKb98+FgIqvd5Xx)OA%TdOg zRJClj*56vUw_xez38EXz7_T=?Q(qK0jnzJiQG-jkAwK5g(>{ZW2oAzC0S=O}G zKCYFDSDSKc6sCrrh|XRZ7WG_@=|^1jD{nImUZ)yywqMs--`!rr##CnD7B=hpy3a*V zbG|Y*2pbukFj>OoabJFyOnuss->V|iTr?luw{NvUMUT5QuXvS zih0y6c+9yuz*|BpbH+-s0B@$hElK_dta1-qr8_d@q*-U~FFv^OW=6%C_Zio}sd+9| z*!bJ#aLT*%OY%XfDt(i82D}zpJR{`5%5`d|8O&mSP3Anlsd_uFd_r%jZr6K>oOx57 zUrM_N1iyTf+TtUfdHu=cB-2licFuEM{CM59Y3{mN@^^*XA69Hl-oZ5S+lpDAMEsI2 z#oRu6#3L_n{|raowt(tjW0z?!la@`Hdc8t1w8U}xj!j{lkw+K!RWeDtFFjTrGI5G) zobQ9aIl;=`BYt+CTQ0Zy{u?i=e=8PAulnA0*SVBk^0I}O+PkuMI!qD=fAAYC+!4IJ zSg_x8vi{|74pAp#LstYGSbq4uvi;HJ_6=S)TCcLGzBBe+&Gt0Gi8JT5vqj5>w{3xQ zk4>G|kSr#7G5jr8pUAG|0n&nDE(V(h%r zs(pT1pVH~G|C)UxJB-$MzO6Laz;(dfcYp7vD3|v&{~LwsH4QHr2Gq~p*>Jt_RV!0v ze&ZZN)(4!copnB5whWla;kWtn1oH-YhK{p~9)30mPnU_k>+oCgn8IDg^-EKK+7JL`Dm|PkoCT{mWd%W~PRqlj8Ju_-dR_zU6ym!tf#-o$< zcl%YZEV=eiScNZa&y6k{f(@(+B6!v&@MClM3fVN2^&kyX>8*b!6&{#+IY=7EaH)=TkCe z4)^}pDU(~cTI19+W%izUuW_lku;H=G`jne%<}6D%x3)9skl#gTZo}GzU;9+~`hU4U zQ=9F+OQAtwCKu-hMpvtVFqw7w{UQgimDg%5(V8px{Mg=8v#QS}-4aXI|NG=cThkAg z6_@R2?AsA}FGBJ1^G9N*b+cZFH|Mc5FpA}#@{r?MoOrn`-_1~%wes1di-wGES&cVW z9J-QLA+bK4dCitzs!NU3x@UU*`5Ct9qE9cqVA_A@&&J6iC7+b0+q$a= zW#sey{GRBbCiuGNu)?L>rUgsc^cS58TcBdA&Z$2=sA|4PBLA!9w_9Rz4yrqtwTT%# zV1Dl?aKFjY&@qLjwXx-Tp(Ow0)p-pQ-(HD0y>(Soxq4jpZ;hz|Z>H`FNRT7~cRt=P7}|X#c6(iuwYG9kMG5;Q|hP8JZtpuYp~iX zmdvE}>{-I?A^%rse0*_KRf^?|$}ua2uX}g0G^i95NEouREZ5xV|3ybK;z)tf_SW-B z@t4-B6vsEc7Ju@7V)C>$rw`tL?|<*u?|yK}kM1wbQ{QgnUDQ0OmrefY1O9#v*0oJ6 zJlp=9YOw5hq~hjX%DJYppQrnZ(G`~D=(8FBEgpH>MV$&0yJFZ77k$B_wSt39+it5{ z{r;Ty%t`WwCf+W|nMYq(yn2+M&XIpJO-ujMi?db}{7oAqraVz!JW*uk%sF2V25k6{ z^e$hq@0Fv_Nms+g?MIq4mMA*j_%chb?eN8xnf{SNnNrg{Y?khA^In{(-0EJ)WZzM9 z=IjJMhBuF1%sS?k{7T;-SB2G`Wesn)kfXOz+^p!W9*b_V?3en@+&t^|uIsnIO*B37 zy=lpP@d>kHc}ylazIx_!H2jOEOt(9$;`D-oj&P1U%XgTc>NZ=u`q!E({G8j(TDSIz zE_rlxXWF{WZYM+wY6T}Q$)Csh@zUm^h!3$h;#ngfEH!9MF)|alwY-75$bIw8!z()X z|Glry;qXA?bJhE7Nfnjo^{s8wSt5IvCH$Ejn7la1E=lJ(^PLN&ie1kq)c8*bNQq^e zBUmPOu%{{etsax0<+s>kagm$n8aA$d6nnFIg^AFEIhQw1uxzk#liU8__QtDnHr51{%S6IwR4G&n?l0bSxkb#eO332wui=~6u2bYT`gV{ zXzA*9Jo0oPzsR*aGK+q{*AWZlKKEhaY>kiUA0A8%Ua-M$IY$Qj1!zma`g% z+HOZy4!KmJ&{qqud}>+!#=Eg-cDrLi{F0EPr^P;sl`CmGUn-lBa;+r$SXDmnrlQB% z&l&0zUx**iOnJbbF7;TmDKsQWXNi|Z%g0-BIx@NkjbJ`if9B}O zOic4L6!%HeWL6Nqz4rCuuLbEZADr-XieX(U*290GDs9V>9_5vtcbMeOIUddEUd5Xu zyJ+Q(<2*fV{F2rsZ2L2K_7;W+&wuz?ZpF`x`-vj%PScZ1oB!+EYRwRxr*!1n#R|`Q zWuFZ%7JrVI9Tb)0Q~$C>h{ek;Hp+(4|Dm9F0JlnEZd$O#*?`}H9UB!HoK6cJ+TyE| z!mf31GK<^6H=3DSUQ|7O(*8mr=Rs+2O26-y&V$MlhYvVBmz%F$VamFs@S{Sm;*LEJ z!h;Oe&bWu%xR`XSHmRj?`m}<;dJV4M1xqWpO!8X8618)|o1<6G-cLBo|G<0gn=ZqD z{SN2z>=mj7CR}(TDm~@S-LwNs#E&xzly>Vp(BbdzZCqnI`}x6VGx@dFvvb+a^4Vqf zqw1z$&03F$BCn?(<`!t3(RTHnF7VXnnjnj|GJ{v}w41Xo^>NhgeA<@~BcZUw{hk!Z zrJxKuJ)Y*78xP#LcE`wT2Jd3urK^t%C0gB6njmpt^1s{CkJ#UC5xVPU+J0gCoCD$C zD+P?Y?^|_q_o-fce`V3MgAb-GaefxbbBvpZ$5(2WskB*|--)~fr}U?%X7GHdzj0SD zdtVdd{p%0=f)+?*F$Un$sgW?Jd>$`dp+P{=8{h81d@S)WXa~rW5A>HI`Q` zvTXd%zb@vk(FxC4TN>Rjg?9*DuVX*D*DGJ@fo&I4h?~u6nFC41yYh<^uC#uN`|YlE zYX{E{=igE(xiV_aK1vD+k%gSxI~*b&m7n{=&vD|zoF$Hrg`$<`igWV6{gicJH3!>? zi%hR~Y+2~0pjmgQi@9~OP87R$fAo|qBD%MyC3H9DD{onp+p$c1%WkGgY;zwaFPN6gG;nsd|}Sw8Mg_Sz_+ zx}|>cq&33JCra&+4RjPWywGWCt01>_{SuQ$u~MmVELy#1t}@Jiu$k**Zj_;QcVy0r z=I-sU41-k#1#Yg&tkq#VbX2g6=})Ii<*)WmD>0n{1^o#cy_|vbgafKL)cqTi3mVqE zZ4pUtocH&PPEEZT%k^U`&jf2(Yfk*C@o?k9Et@;~7z!Ds}MM}h+^vo&mKQQx0xrNF)dA%k+ z_IYi!Vut)2TPIBjlws8REF%AR?ztJPi&!t5v%B}_F++%%t3uMZRmoj98lOny2R)ND z&hzs-q+Kd^G+p<^&w6gQPg5lRy`0N9IQ*TXq{(*Lejwk7z)&i1YFZLk=m9o<2djr`8qyuO zKSuuDvRXh|#zkGlL3m$a{vyHVM^&@Tqz^04%+T}WbUhsq%IlP#K0%}Bfs&i}-^Xi~ zI6Fw(v&?$8WcTb#%+uw?9*V3rX*$T5+32RE@Feur{^&QydUT8YOkeZLRKB>+s*(8f z{>j7zK1~ZbvNS{$<9`XszCSH_P^@76_15~+e%IG--Okbfre&+Vs?XoDocO-J?fr*V zTt3LAGeO`+NUQ?ybgO;rz0(-}vP{}OQMm0PL%)8u&8+8J76_)Ngl#W&x>S}pL$~A2 zIis1L@1nnLbuG{8`XAx_Zqv4hlN3xBt66TGBzIDrb)I*X1KVniofq@k6;7~xnK54` z?Y48^2aZ=R0oNs!T3FBDm}qi?A@6n?qtCW^mUptwb@NoneeHLgx8xb;!7B$fE%xa> zTF%Fv_vK-{xGZ&UG2Hu{~Y)nn|-Z+&5ilSY?4bH72Vv{ ztP!8Wv`RE;ZM;o}pnbd0%tI`b=WOsiqn@r4wj-e4kAISis0l-~9QW$YKlN?BQiUH! zzH-Sh`H)i{qEhUV5w04#G~s}$RE0o3ORDeUjms62XBRRsm^c2~z2KEqU(xPw2Gc{j ztwQHM6Ln}<(&%Dn5U)33MT+GLW5KZY<&FDKJC*WfK3x4mZH|N9r;3PUdmga*Y${N< zICS)t&d!y4tk>L}nU`VwswVx@i77vlLQV)zJhbJx3hRRIBV8{SPpV3eeEQ_k!PK8; z`n{LMPW*CnqMm}eNnT)x!EM-fhqRJss|#JZS92oRrC9o!ja~__7xN#Eneple zZkP8wDVwuus*YOfo(sG+lKb?RurYO+wH=thw9xc-@EnI_4QcB$+1Om|>`yLBHt(7D zyhUpF<1f1ei|$4?=-m>^m)~?rFSBy*f#+xxeXG!q^&G9pAm|zniPQ%fQ2n>#%2@c=Gu! z%W}??Z~cr{N}CyY*{*%aoYvadu25MVyRz0&#f8UnpZ@=>SF?i-g=Q2Otn}j6->~K6 z!l?5ud$S62n}e9&izG%`uz-1ckfNo|kBnUy+Mr!86L6D}Y(X>Etbq7z&@ zp6@q{gu5#qxD)(gvmsFf}QEg2! zTeDyHS)jOCLzU^&q}kWQ{Eo~P2yNWVK1Z@gNyaL0(T?~n|9?&~Z8cr1cxgtY?a?DI z)`h+{-uCsu!2@~H20X78MPW)s6EC*57r%<;4LxiwUtRF9CH?d7>h zQ*qHE2{ygm>=U*uZaQI{$iaHsIAX8#HPbcPVLm^(#VG8uP}h-9iw?~0=v%$Yvhw}Rn)5T|Ia6*vOPuL+ zIhN|$5_jjhX)+1eW@yZM{3U0?QINS()}0% zkExd(I3K^?J$ZQ#_%u&(nQ+2=_r-G$8a4Zv0xBKmtmTpqdKt3XV#llf6(7nvI`ZBq zeYaj3VNriQ|FF_Txn~;9whJ|HKJ{P2TE13L@cLHC{l6UHWSTTzJhtR(pV5`PX?k4e-{+cEKGJx&VBs0JoGE7nxhl_w@Bdd~ z_##`cB!)NLW9Pr)|3&9n{yvy=`9#Tk;YVnKch3Co<-h^*lTkbC1W8 z^|{aH!-rZw?Z4BVt!yYW)ul~+M&p$`wSMxG^wlTZzx-&%m z)ts9<9e0|3(`(7vY0~8I?uh0Av5q5Nw;3hbd$$Vi_LF$xb6l#i=KudShZ&|{tzhfi zcw4r~kg<5Wsp5AXjuS-zPaOBuGD~hQZJzii=HAw03k~%TM*ID;TPWcC@8PjW@hY=x z&q>Nod~;}bBX>gn;f$-Ich0F>tyra_!Kp|sD+Yg3$TIdxCP z71#Nxc4(?Tt*(zu{FgbsNwg*;YV#(IkGl_u@*Mebi|_auvqQ$aFG;2TV}ICjRsmOyF{95keR^e8@#2EA&|BIQ!Y0%_nOo2~?ev_S#i5Ft zhOI@)m9YsAIYXx3oFaBQ#gMn-`0pdC3M@;xu6s{h6!ZG<#yvY8+-En~ao1#~Sj>B; z8N4iVp03j@`^p6;ui@BL$)B@y+Bb&FYa%?ktV~aKGDV;GrB!j&XmRBnpO0(qb4F zeEyWf`R^XP&v0;)@7+4ZIZwnv(DYF9jm}*PU!U`epXj_h`^2q>b^(7MPJ9-WCbmjf zU|+)i_K6l>D@$gyWqQqh+h7}dN8U-=Ou#2HW``uBiN15;uG3R2FSKzzSKcsl&xIuZ zgMk|N^iMf!+`3|~=igR4QSG3x?yB`G?w()1f7i2Rxi%5kl&8#*z2jxNA^2%%TNh8a zcLvYI|3{DQp4j4VSRlw>7-4#eKQZUF;m*#SwR`0ACOz!Cnqwn3&C?06C$TXzUGhE^JMAU57ohQicci3`?KVa!1t-f+jUn|yV%%$=w)Md znE9C_=6-{kNJy&~-%zSQ`gP_AsK_2kM%mv%NsVb=33wZ2Be4LkU}V#Jz-F5NgX zO|y8Ov7CUhSwr&lL${9nVK8_;d8*{j$?Rs$nu}(My|LT>d=uyXz9ZcVQLm1jVi5j! zb@S1P)ht&9C#24frda-Yc zsMwCV_q1el+V+dO6mvUl?%=rka2MenV&qr@oe6+p4LAK*VilvN#3>m zaP&>#Z3k7AoWx>3Ot|4x6;$?uMeP1Jd6j9ln&%B~omq5QO~dEgHsko2be7YmA|-XznSFU& zQ(pva%&a~X^myjyd9$k68F&wBKva#wQzR z-b$PCY`L4r)*Mv_gY&a@B{K7_i)#28@`Pow&V>}6)hllPybEeO*d1oD zu+^SM7@{-_J8pk^a(~5C zjmVQx`~Drz6Lb+35mbnh3pBRiHWB>fp?zRcA&XVM$rQ~{qsqu7)!VjcGXLi)5t=q* z-gy?A)2g2stFKr)^NQaW&@D86dNt{?$)T$ON=qinKS-6iWqQw_O)Z?=RW4Z~X7;|g z*cUM~CVq>IcUf+nS|IuGT>5JbW_tl|FYb?A^KNe1_s8E=LPC~laYp#UOA=?5d#>O3 zvU625hvGRV+ZB$2mN%CcZtXCM@RxR7t;c$J->Qf!e-+Ap#`s)ml9}aVLNumz_4}}>+%;zd?G7SD{2x z`~*v_HLGZFieC?@KdAJ*JE3(4!zG<>l0TXJ*PiZCH9In=&3+%>Bdx8o zzrAx*O!)MuPK?9*+w+`H=~@gO_exGhO7aSe>2ZHa@%YzJlKAyPdu6ZNWHyD#8Xv^$ zG?uHyylFbVVX2e1?#aI*=R!B0ey2CXA-T9dW&Md86XX{~e*U9kZSaTJGsso{g>i+U zHt&>TiN^NF7bloaa}@Y)SHRJ+Vzm$B;X~(d-g2(z`^FX5TbI6j^?i|{)1 ztiPyFDtcv6Ou_BttHo>`8e~pzuk)O#$TdaA_ia1#(Q`8ot`5|l!FKV$DfW<8X1^C$ z9ZlW3PW;u%0}n3FINR#gaHP`k`72J2(_4fT`;RWqVVwB)f>EBd!DIstxrFVqENwZR z%xCXQEsgLw%sYQ$lG&`rE#Ybs&C?f)?5Ip?Osw@ibYREKrLugC3-4R6YsoZe?7VjT zn#o3yy}gR3|LyO6ze?Hm!v?#5Yl1WSl&<~UtRa5tMQ7pn1yOS6KYd@`msU7I?beFf z&;Fh+xWBxvj!1HZt<1Ej$D|El!YyW$3qP$+`?DQuSJ+t~B zM-|N0W`E9S!E{1Tv;6J7FA6hv{Y+1n&({w=@qBf3_0=kF2J_gqmRXZ8`i7X^oXm5e zvbd;C<#v{G&atMKzXUE7eaTiin9ZWt!+Xrs_2AnTA6jyM{W6PFx8^+E_nlWXx2iN? zliHl(r<(hEW@_+NPpgPxJhP(7xOk%Fh3^p^oHM+S#WgCPKKc04^1=mc((8{hR#crh z{99}5lB>&nIXW&){k-^RU7eOBhtWr#SO=|rOiV@(X4F-L8v8j|PUKrYX4G$8DY;Zxy93~LgSkIeoVa4-Lf z_of|I^A~j7OL5%#pzm_9e6g8$|9Nc*8}sg>T^uvzmaY@>vA8_ z8LPJ(j_6|U=~!CG)2O~!pt+!1|Hvkhy6-9B3Ly#CPIY}a;C@1N$`#@4c5&S^jtL=; za=cBhrG9$dGLz|eFk55(k@&{){~6crz19`3tJuoNB)<9EO5KMSm+$^3bn=nGme)*E zE&ZM95Qt$ZehSxr}rc4LoAI(?cU^}CAP zr85mL804PBer-J&S3bM{M%gLhJ2S4H$-H6l!+4+O;e|&nCmHA3=y!*$v+0>8>ic$% zvd59>GXL+a=aYJ{)z>6yA>$^mm5t6`MeJ*CF|BhIOA1Pkxb0}SMBzf$oXkg7yM%g@ zmL|Gye)L#q*}^RizH9i+nf(ulZ%b9E>pKzaBK33XEw%T{Ol~+mzLd{#cdq0^<+h$L zo*DBUOCoA7vgggRu61Es;3A~CKuubF_XqKgA3WE;s^vQQ=;-)&E_Gd0{d_CxNUvb8=&Cud(jp24T`BiXWkeF@t; zw;~&{j$7%wg*!Igebzj2yNvVV8jb^V!PyVCD4>@5Gy?QvP9TSFr0U2C4V z%z@T8tCg9%_jUyfU0tjo-Nv%xi=Tz${>{36wb%X_`FyDnGo9!u#1n%9h39=m z!%P!BukZI5cTfAIU|D~P%dX4BN3KfxkkP$UdLnJg=HbsI&$w{9@@_fd)M@m!@mrhN ze&zi8UEiPC)H!@?F}||kS=4m?h4Vh1Xtyx__FzTC_vdzJxD4ECeyV!^S37y)!}8zr zWlodz^W#mer=P07^UY$}mJsVjr>o-Md@PGd^}m>< zHD5f{#Cpw@r*Rp}YdEvNU%h$mkZ;wUD1TGqIT2oy&6jl_GhM6jCoj!rLHFcFNiE~9 z^S^thv~5^xe%g4C+LnD<>yCe2GJmOi>)i{Nx-Pl8EOJhXa_E@1`0lQVaJ8~J4f91e z8Dynz@d^6r&Rn_D{>_Qmi_?2Vi{<~{*jwhQ@BMMDo6w!Bee2zKORvb87NYc3C`Pir z&2v^rtxeK$8E;P}<3o)m6SGYE3pB+AX7oGkoF*FL56vP z^|9!k?zU9({mgvg2alY&$(PxZT+RII-&OaN5XJK2jypH4-l?GfH%4y7vp}P5E_QCx z@{!Bu85Bz1nwoUHkiopA`$+B|lN}P3bN{BgpSWwKCdroO>3N zVBGX`8kOzx!5P}X$ZTlt^Q`(BW)3pW6bNcCM6tHme~9%W%6A)K5ho7Q~L5{ zv0lgRUrd#*$nbZr+OhVIhx><38LPxQRptgQv6|Ch?sES0+#OT@9jVzTlj@uGT;bZ< z{{id8ny(1xM^0QJtZxwK=M*(Nd+WZ#aVLJtnr&h7WmdI~=oIu(^n86yYgc-KoadrT z0d=o{bMep3nnXgeRUiCcU@WXl1 zi{mA-$ukDR8+Vk_V>KEyZlZQ+fOO4)^9ou5tM;#|3D*{On>88pe0w{2ROO(#uD z-fgqf+BL@M<8+7BTvM0|Ryi(X%~!t1wtvZLjuS^s!%yk5q;f?ry0l^96vwF+f)nRl zPPwg7psf5wO8J}M#4aoUwmDxrPW(Cg;lJgFo`!i_tCsw$zLPpP$%yT9_>{eKPxDPE zOx~u>+WMtPx?QGlj#x?bp@h|k*2XZDiyVBkCik|RZ{Re&OSWr{y_xN9(wDX5aJ89Z zmgKSX+bTDg_V;)_C|344yH3pirr6B(dz*I7k7nj6-_V!hnf$}!)xp(^&aCX>dwihN zR7YYL)AMP0@j-v5EsL7;e41LE*6VEBl@k^|n!x3v`DUR}dzQk?;X-W#y) zfPna!%N5~E#QbK&FH!usgDLUt>INmIM++Xvsz;yq_~N>f;irq@tu+m46EAi-@Nr+{ zt+-;r%ru*$sYSA9qMDt@8tH;^_xsIX{ezGCUg8vc_vWwjzqlR0jJWP?b}cfk=iz7- zGH6J0{Uzdb{JV-1vj67-_z_wY?G0gdx{RC!SyNeoiFA6ruu*I!j8KmU$D@OUm0-?LSxRa&RL=_<2pIIeHL;j#Q)9_)7*aey#KG% zR0WOp&@U3odzxEcEm{EX|NrMUym$SxJ-cd}cSUumgv^@42PdXV z|4QBHXDMJ|I=Ak3kc`Q$ep!kgRbP+x0m+Z z*4W!58liC1>AL#+IWcWlcTE3LBHCnGe(nVCftvxcMG4w9lh^9DGnj`TyO4d8!z8hG zX;Zi9>4hhS7D@e0-}RwMc-^T2bv^&eg6+?~1ehiqb{2iTc&!6-#d4|cnRo7PVaeK2 z{9+4R$u&hC-WVg>L`J6^E7IVY(9xr3%NI~5nSjp{csawoYOw8C{YO=+YIhs zyb*pAerhlI7O*OT5;u zWRcADE*X(joW ziz+FG0{@t{n#vxJio9fVd2x~eKHn=a-=_;`wG zSGBm@D#%xLwTxuA7?_lC``q<)GJWd8pC?tgFK6-7U^y7|D3XtP(#aIF*ONF46lL|M zAK9UKR9fhxuERPBe%C_Yc_O;!7;apr`T#a_#9 zHErV-JQNaEQ=fWYxVUkd*lP~!Z7DgGF_+>d&YAi9R-f4|qn>w#CNCcNYHexyBDHf_ z=%p!}`#0UWc{r_d+s`@K4AHHThJjym~ofsFgYf_mSpJAQP%$914&-r(@2`#A4Y&p}&u}JgfJRL`L6}9@it{IMz&a+O<0=N&5_MM%pGv_XRbL zR?10kf_|!(EGBblTXO2Z;yJT;$%->;Kl>MIdCV~>`52-X(=0fdO~yjwgh#&5t#vz1 zA{O5cS)095ykxDX%#v#z+hP@BKCHV#kr5G>3<`iZ0#C zp8Iyvk2U&dozov?e>48Ilf7Hr%P8#5j|)q^;P}?x|_E)(M-UqwObA#DpCAH7oFI@OSL;v<( z-{7$61us5!eel|3r`Gd}#qM*vh3{t>nu8jiueC`{PM{}Lzc;1uU`cmy2I-FVqS&AlHGq+b!#dxmvm+KFYR<`R5+Qx z>+vfVi)jT_Y%}Cb`Z?$Fvg}Dt%5dtK7$>TteOkBS;lovptg>FpIZRw$rroC}3LMtR z@nMsBP?Wg3C-c_pW6CAA9V<+B$XdxZv}}0XF#FKytHn!9mllTARA#bOW^0MHFDl)$ zbMlT*lSPFQUykgy?lw}H-qTXnUAbzF?T#|`4JV@&PHO2sUw8DKtM!MMZuhQzUB-Q; zZ{@5-cO68}?W)rbUT3glq18G?wnN!Z`y=_4FxtGm9cW&?7%D@h12C6c6J( z{tK)5_uhN*p)Gm;_k*)i1jBuQ$>mtI zQ|GNC%T+xg*Y6WpJnlX}CGug*gQ%Yq?#mTFmzL!0mh}`7G&0gZWgEg7bl+Wlg64@; zTvHbxQ1m#mgd_VI^U;baGhDe7&+irIbABSs`A@D@;@aGF>8L5QdJEH*{@*Mu;P~n5 z?e>{6B0hJE6J!E{y{r`#mdXe?zI|orrB}pcdo=O1fC-n~35|){!ew%q9G3GvIJ%}* zCSb{qWtVj)pBKtm*%@^GPua0o`-EK&>qSpUykQl2?Ph6qJgj^9>M|cAOutX0*bjggdG=d^!IZYxZY;bCdjDnC+oVZ)y$?Us-y84?RtIUYP}yKrsf>ay)TELE2CP56=y z*DPUj^yK~|Azj$}@)qCULVlTq)VrT%*{B-kPY=%Ii3*tV*dWSYga2w zH-0i(P3&6}+ttUM-?lmVNl%}6x?SQ}Yee=!gG&+zxu-PG(Cg8!$dwl8{B&CG^7MUY zn67hj?^6v(ELs0&RZ%F5s1!?9cA3h-hi80NdHS5}JSEqa(lDd3$k$Dz`Zi;ZTxRz) zi-+HO>kdCq`{oq?+5M^xcQc!k!wDC`Hy+A0Uv95Zza()~XrA+?WiwLC*WFxqY7*zN zGdCM}Iu4w)7ixUUY*4r1!v2Zc30x;Wb{!Y^^m?hsaf7^*`pXl#u9>*5vip5^uEu(= z!)q*yUkNg`uUWw3ZLlrk$z8$tIVn79Yvl8fF*op;X-Vxm;ZWKblBRx9S#O6m@4~78 z`DKZ=GBJ&rEL#0}rOUQOnR2(CkdL{lTOsk_ZN2ts zOG%9ld(!qTPLfQCT)9RtZ{E%Po2QpeSk7v3u;ETv)Pf2AUC&sUnERZsKAu>*JagUI zc7xZ=f)S4@B4;m4JjPO*(if?B_TakbXLbuM^ecG6Jn6Tb+?KslMHb{lA1)S{SQNO- z{j|iQ%S)8xEoD+$Lni!VURM9Ot$*UYaM8u(vYJePciSF+m0k37LG>r?OD^YRPZ(5| zL_M3l>@xRT3+evc)Kt@r!N!02O;7QP7cshJ`5&D#>7by~Tt!V)2R^Gq%~#^|w5#9c zBrCq?2>dknVqMJXhP zj1xjw_4yCG3M7V=U*0vhf5mG3jdoK^r_GLP+7a@&vSGP%eSn`vpvZp?EW5kiuX_e+PYZiTI`r+AgDJnC0zs{XWG7Rf>8TK)AJhdjU0y_Hd@QRa}sfWdeMPpPO+NQ z?Dw4hkxK;x8?-pQZ)`ks@2kk3n@jfp(-%6@HLtAymT-yZCq*}z7cJFFU7D**jyN6K z^YiAxn%2uPuCw{1-PBg>Yl|pfDzAMw@{#qDrH#@P<&CNZoF*zPZ`jzyY>_eX+gj$m zHvcat->yCWZL7s$?YQ*gA^h7n9h|CKuK4o}n-8ZUn`^)!33HtmiOG@{lN&;P3zT?u zB=kjgzdqbIvn6h(s^?$dN~7?d^EPm)d-v?uHC;G?rJb?iS>*lRmOb;Ht{_Q8u4IG__gCEk~OI> zp8gYm;53{4asQPqYb*{g+x5`J%b|kpiVfq_5O1bnuE)zZPf>7Ch?ve0b!B0)yY$|w z2Wq*iCe^O6?_)afuqj|e?}U}}_h?yhSQ&2kFTaz2amOFmS=Zkmf4`>k&(6h{!fVAl zOeb^hJNsGk;LOQuCa<`&kLgW#%~eL0dGhrFpEx%-yw$vF#?a@-B8A)g4w?( zLsFTiu5I(1H;cZQ|J~jA(5iCn0;>b*>|#<+4xW0w&_=4CWtp5tT;3E9pTyJk2lrfx zd3fy{o5V(*@~zuiYkgDCmGY0D zJPbNZS5KQLlxlLg@8uH7y}Vy0l!zW>hzjXjsO8Jd>)yX%!d1Q-D>?7o6jQJ}?r)*m zG-H346{}MV>+GY94~<@Y+^Jr+u1KsZWQA6fn`n~Kk_jHGb)FpKwK%gbGEr`J%^|4WpWP3a|ZN)}Rx+_Ljz?N!!;h+?nw%WiyNH>?3V+lRuhG zy4e>Jbu&+Q*)uMk9sdtScHTJpvBgC7%0W@~!x1}zr?0$u=8y}6kV)9>LOZsNC9atj zx^)M567!CTTRXER>=g+YX?OdSaQ4nFeV06Me#`0eb?Z+)D9gECli5It>LCHQpr*0arLD z6zz}pZ8Xp+5|Inzd{(%wREBAWV(Klu=Qa{~zJ}hD5_q*Z?j+p0C|GrHcgHp}GYOlH zN9?Dxj`=7zJ0~!$a7>!`c186X2?3pLQaQ`L9TZni_SUsJbU3qpm7(E>|NFn44ezi~ z7BKWK(v@ksEjZzZov4FYVZh0To6bGe=le{)hPAXzI_ta7c!n6q<@-pK0Qf)>Bw!N;4x@FhxGS1<$pXI%C2;;fY#7T0`r z{suBiG=y4ePst4D@ibo0>(4xi^Pq2&=Z!s{TV}J&{QpEaPBH80qsLFegl!$!*Ra`2 zK3uG5Q$20vN8t~8d(-rV4^6b(wWZoC>fDrPpYQA3E(~3wW41jrESrU?s9}Y}ftTMH zTGhC-%spmZTD?Ks=}wW@SN$}Pxs{OxeJd&_to+)=cy(s}EP-u-Rh7XkSL&qhWGEfG za%H!2RD*84Lc@!zH|FH)PMkLVS!r?bZlV09p ZQI1r!y0xd#na}wdQ{xK}#uC<74FH1IfD!-z literal 0 HcmV?d00001 diff --git a/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.svg b/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.svg new file mode 100644 index 0000000..78eb653 --- /dev/null +++ b/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.ttf b/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..65a04f13496937ee74352af93a2cbe2eb623a7e1 GIT binary patch literal 38424 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 literal 0 HcmV?d00001 diff --git a/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.woff b/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..6ca02c4689a1c6dd31d8ce0ee0d477ac66b5f1cb GIT binary patch literal 23708 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 F0{~qi(w6`L literal 0 HcmV?d00001 diff --git a/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.woff2 b/website/agenda/fonts/open-sans-v15-latin_latin-ext-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a337154f3a2c9c5b57d53bc0b0e79f6f7bbe335b GIT binary patch literal 18876 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 literal 0 HcmV?d00001 diff --git a/website/agenda/fonts/roboto-v18-latin_latin-ext-regular.eot b/website/agenda/fonts/roboto-v18-latin_latin-ext-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..748c0e6b1fd640208c7e82eaba422576bdbc449d GIT binary patch literal 25062 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/agenda/fonts/roboto-v18-latin_latin-ext-regular.ttf b/website/agenda/fonts/roboto-v18-latin_latin-ext-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5c3b7648c75868a60e152e09ce52ad77b2077032 GIT binary patch literal 54052 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 literal 0 HcmV?d00001 diff --git a/website/agenda/fonts/roboto-v18-latin_latin-ext-regular.woff b/website/agenda/fonts/roboto-v18-latin_latin-ext-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..0f128f10455ddeac2c494e65d650f0298333613c GIT binary patch literal 28236 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 TIH)GK?@NDvl0R4`bP@vq%WiTt literal 0 HcmV?d00001 diff --git a/website/agenda/fonts/roboto-v18-latin_latin-ext-regular.woff2 b/website/agenda/fonts/roboto-v18-latin_latin-ext-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ab076be603c250ab027c264e49760735c2a43290 GIT binary patch literal 21920 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 z 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' - + ' Name: *
' - + '
' - + ' Was ich sagen will, ist: *
' - + '
' + if (parent_id != '') response += 'Deine Anwort:'; + var html = response + html += '

' + html += '' + html += '' + html += '' + html += ''; - + ' Email: (für Rückmeldungen, wird nicht angezeigt)
' - + '
' + document.getElementById(id).innerHTML = html - + ' ' - + ' ' - + ' ' - + ' ' + '' + ''; - // $("#"+id).show("drop"); my.show(id); } // end of Comment actions diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index 334f84c..a51573a 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -298,6 +298,7 @@ sub showAudioRecordings { event_id => $params->{event_id}, } ); + #print Dumper($audioRecordings); for my $recording (@$audioRecordings) { $recording->{size} =~ s/(\d)(\d\d\d)$/$1\.$2/g; $recording->{size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; @@ -531,6 +532,7 @@ sub getEventDuration{ }, config => $config }; + $request->{params}->{checked}->{published}='all'; my $events = events::get( $config, $request ); if (scalar @$events == 0){ print STDERR "getEventDuration: no event found with event_id=$eventId\n"; diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 30f4d94..0559479 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -399,7 +399,9 @@ sub showCalendar { $date->{title} .= $format if defined $format; $date->{title} .= 'library: ' . ( $date->{writing_library} || '' ) . '
' if defined $date->{'writing_library'}; $date->{title} .= 'path: ' . ( $date->{file} || '' ) . '
' if defined $date->{file}; - + $date->{title} .= 'updated_at: ' . ( $date->{updated_at} || '' ) . '
' if defined $date->{updated_at}; + $date->{title} .= 'modified_at: ' . ( $date->{modified_at} || '' ) . '
' if defined $date->{modified_at}; + #print STDERR Dumper($date) if $date->{file}=~/180503/; #$date->{title}.= 'rms_image: ' .($date->{rms_image}||'').'
' if defined $date->{rms_image}; $date->{rms_image} = uri_unescape( $date->{rms_image} ) if defined $date->{rms_image}; @@ -496,9 +498,9 @@ sub showCalendar { for my $event (@$events){ next unless defined $event->{uploaded_at}; - #print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; + print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; next if (defined $event->{playout_updated_at}) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); - #print STDERR Dumper($event); + print STDERR Dumper($event); $event->{upload} ='pending' ; #$event->{title}.='
pending'; } diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index 823a179..37019df 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -235,25 +235,26 @@ li.ui-menu-item{ color:green; } +#content div.ok, +#content div.warn, +#content div.error{ + font-weight:bold; + margin:0.5rem; + padding:1rem; +} + div.ok{ - border:2px solid #aca; - background:#cfc; - background: linear-gradient(to right, #cfc, white); - opacity:0.8; + color:white; + background:#0c0; } div.warn{ - border:2px solid #ff0; background:#ff0; - background: linear-gradient(to right, #ff3, white); - opacity:0.8; } div.error{ - border:2px solid #f99; - background:#fcc; - background: linear-gradient(to right, #fcc, white); - opacity:0.8; + color:white; + background:#d00; } #content button, @@ -435,3 +436,6 @@ input[type='checkbox']{ clear:both; } +#content input[readonly] { + border: 0; +} diff --git a/website/agenda/planung/css/image_manager.css b/website/agenda/planung/css/image_manager.css index a6088fb..42b7079 100644 --- a/website/agenda/planung/css/image_manager.css +++ b/website/agenda/planung/css/image_manager.css @@ -1,3 +1,7 @@ +input.field{ + width:30em; +} + #content div.image{ display:inline-block; vertical-alignment:top; @@ -11,11 +15,6 @@ vertical-align:bottom; } -#content .image_detail{ - width:150px; - height:150px; -} - #content .close{ text-align:right; padding:0; @@ -24,25 +23,51 @@ float:right; } -form table{ - width:100%; - height:100%; +#content div.image:hover{ + cursor:pointer; + background-color:#39a1f4; + font-weight:bold; + opacity:0.9; + filter:contrast(120%); + box-shadow: 0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15); } -input.field{ - width:30em; -} - - #content div.image .label{ text-align:center; background-color:#333; color:#fff; vertical-align:bottom; - opacity:0.8; + opacity:0.9; padding:6px; width:138px; margin:0; } +#content div.image.active .label{ + background-color:#39a1f4; + font-weight:bold; +} +#content div.image.active{ + border:1px solid #39a1f4; + box-shadow: 0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15); +} + +#imageEditor{ + min-height:800px; + height:100%; +} + +#content #imageEditor input, +#content #imageEditor select, +#content #imageEditor textarea{ + margin-left:0; + margin-bottom:1rem; + padding:1rem; +} + +#content label{ + margin-top:1rem; + text-transform: uppercase; + color:#333; +} diff --git a/website/agenda/planung/css/projects.css b/website/agenda/planung/css/projects.css index 8407f88..b38d75a 100644 --- a/website/agenda/planung/css/projects.css +++ b/website/agenda/planung/css/projects.css @@ -17,11 +17,6 @@ clear:both; } -#content div.view img{ - max-width:50px; - max-height:50px; -} - #content div.editor div.right{ float:right; padding:0; diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index 7ea6c9a..0f83de0 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -188,7 +188,7 @@ sub show_image { if ( $params->{template} =~ /edit/ ) { my $result = $results->[0]; - $result->{missing_licence}=1 unless $result->{licence}=~/\S/; + $result->{missing_licence}=1 if (! defined $result->{licence} ) || ( $result->{licence}!~/\S/); $results = [ $result ] ; } diff --git a/website/agenda/planung/image/chess.gif b/website/agenda/planung/image/chess.gif index 2a65a2b1bb2a52bcdc2be188edc469ea29c115bc..a8cb59df3d0d3b1e472ed936e89761b727c26cee 100644 GIT binary patch literal 103 zcmZ?wbhEHb6k@1gXkcR4y?gh$bLVsz7#J8pA`DD!EoPD{0|127E~)?k literal 161 zcmZ?wbh9u|6k@1gXkcP!Z*PD3@}&*~0|Ns{gn_BSrDu8O>pcrf)^F-;zN_G$S1GE| zDe!Z~l&%e2RR`DKKFRBwy<_cd%lKl(dh5hMvnQ&(c25Jhy4VEhI5vRu|8|GcADaM|;?cvJ=x@h&|t;Az|@Z<0c2Y Qa=7R8%'); - $("#img_image").dialog({ - width:640, - height:640 - }); -} - +/* function hideImageDetails(id,filename){ try{$('#img_editor').dialog('close');}catch(e){} - try{$('#img_image').dialog("close");}catch(e){} $("#"+id).load('image.cgi?show='+filename+'&template=image_single.html'); return false; @@ -61,4 +42,4 @@ function showImageUrl(id){ return false; } - +*/ diff --git a/website/agenda/planung/js/fileUploader.js b/website/agenda/planung/js/fileUploader.js index a5f0f97..c905f9c 100644 --- a/website/agenda/planung/js/fileUploader.js +++ b/website/agenda/planung/js/fileUploader.js @@ -115,18 +115,30 @@ var formId = "pxupload" + itr; var iframeId = "pxupload" + itr + "_frame"; var inputId = "pxupload" + itr + "_input"; - var contents = - '
' - +'
'+loc['label_name']+'
' - +'
'+loc['label_description']+'
' - ; + var contents = '' + contents += '' + if (studio_id != null) contents+=''; if (project_id != null) contents+=''; - contents+= - '' - +'' - +'
' - +''; + + contents += '
' + contents += '
' + + contents += '
' + contents += '
' + + contents += '
' + contents += '
' + + contents += '
' + contents += '
' + + contents += '
' + contents += '' + contents += '' + contents += '' + + contents += ''; $("#pxupload_form").append( contents ); }, diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index 467f6e5..d635b47 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -2,70 +2,44 @@ var windowOffsetX=32; var windowOffsetY=32; -// choose action depending on selected tab -function imageAction(filename){ - if(selectedImageTab=='select'){ - selectThisImage(filename); - return false; - } - - if(selectedImageTab=='edit'){ - editImage(filename); - return false; - } -} - // get current selected tab by tabs-id function getSelectedTab(id){ - var selector='#'+id+" li.ui-tabs-active a"; - var tabValue=$(selector).attr("value"); + var selector = '#'+id+" li.ui-tabs-active a"; + var tabValue = $(selector).attr("value"); return tabValue; } - -//select image load into selectImage box -function selectImage(project_id, studio_id, id, value, imageUrl, series_id){ - selectImageId=id; - value=value.replace(/[^a-zA-Z0-9]/g,'%'); - var url="image.cgi?search="+encodeURIComponent(value)+'&project_id='+project_id+'&studio_id='+studio_id; - if((series_id!=null)&&(series_id != '')){ - url+='&series_id='+series_id; +function setActiveImage(elem){ + $('div.image').removeClass("active"); + if (elem){ + $(elem).addClass("active"); + }else{ + $('div.image').first().addClass("active"); } +} - if(imageUrl!=null){ - var filename=imageUrl.split('%2F').pop(); - url+='&filename='+filename; - } - var x=$(window).width() - windowOffsetX; - var y=$(window).height() - windowOffsetY; - hideContent(); - - $('#selectImage').load(url); - $('#selectImage').dialog({ - appendTo: "#content", - title:"select image", - width:x, - height:y, - close: function( event, ui ) { - showContent(); - } - }); - return false; +// open dialog to show or edit image properties +function updateImageEditor(filename, elem){ + var url='image.cgi?show='+filename+'&template=image_edit.html&project_id='+project_id+'&studio_id='+studio_id + console.log("updateImageEditor "+url); + + $("#img_editor").load( + url, + function(){ + setActiveImage(elem); + } + ); } // set editor image and image url to selected image function selectThisImage(filename){ $('#'+selectImageId).val(filename); + var url = 'showImage.cgi?project_id='+project_id+'&studio_id='+studio_id+'&filename=' + filename; - console.log(url); + console.log("select image "+url); $('#imagePreview').prop('src',url); - try{ - $('#selectImage').dialog('close'); - }catch(e){ - $('#selectImage').parent().remove(); - $('html').append('
'); - }; + showContent(); return false; } @@ -77,15 +51,18 @@ function searchImage(){ value=value.replace(/[^a-zA-Z0-9]/g,'%'); if (value!=null) url+='&search='+encodeURIComponent(value) - value=$('#image_manager input[name=filename]').val(); - if (value!=null) url+='&filename='+encodeURIComponent(value); + var filename=$('#image_manager input[name=filename]').val(); + var filename = filename.replace(/^.*[\\\/]/, '') + if (filename!=null) url+='&filename='+encodeURIComponent(filename); - if(selectedImageTab=='edit'){ - url+='#image-tabs-edit' + if(selectedImageTab!='upload'){ + url+='#image-tabs-select' } - updateContainer('selectImage',url, function(){ + + console.log("searchImage(), load url="+url) + updateContainer('selectImage', url, function(){ $( "#image-tabs" ).tabs(); - $( "#image-tabs" ).tabs( "option", "active", 1 ); + if (filename!=null) updateImageEditor(encodeURIComponent(filename)); }); return false; } @@ -97,92 +74,62 @@ function hideContent(){ 'width': $(window).width() - windowOffsetX, 'height': $(window).height() - windowOffsetY, 'left': windowOffsetX/2+'px', - 'top': windowOffsetY/2+'px' + 'top': windowOffsetY/2+'px', + modal: true }); }).resize(); + /* $('.editor').each( function(){ $(this).hide(); } ); + */ return false; } function showContent(){ + /* $('.editor').each( function(){ $(this).show(); } ); + */ + $('#selectImage').remove(); return false; } -// open dialog to edit image properties -function editImage(filename){ - $("#img_editor").load( - 'image.cgi?show='+filename+'&template=image_edit.html&project_id='+project_id+'&studio_id='+studio_id, - function(){ - var x=$(window).width() - windowOffsetX; - var y=$(window).height() - windowOffsetY; - hideContent(); - - $('#img_editor').dialog({ - appendTo: "#content", - width:x, - height:y, - close: function( event, ui ) { - showContent(); - } - }); - } - ); -} - -// open dialog to show image preview -function showImage(url){ - $("#img_image").html(''); - var x=$(window).width() - windowOffsetX; - var y=$(window).height() - windowOffsetY; - hideContent(); - - $("#img_image").dialog({ - appendTo: "#content", - width:x, - height:y, - close: function( event, ui ) { - showContent(); - } - - }); -} - // save image function saveImage(id, filename) { + + $('#imageEditor #status').html(''); + console.log("save image "+id); + var url='image.cgi?save_image='+filename+'&project_id='+project_id+'&studio_id='+studio_id; - - //remove error field - if($('#image-tabs .error').length>0){ - $('#image-tabs div.error').remove(); - } - - if (url!='') $.post( + $.post( url, $("#save_img_"+id).serialize(), function(data){ + var errorFound=0; + var lines=data.split(/\n/); for (index in lines){ var line=lines[index]; if(contains(line,'ERROR:')){ //add error field - if( $('#image-tabs .error').length==0 ){ - $('#image-tabs').append('
'); + if( $('#imageEditor #status .error').length==0 ){ + $('#imageEditor #status').append('
'); } - $('#image-tabs div.error').append(line); + $('#imageEditor #status div.error').append(line); + errorFound++; } }; //console.log(data); - console.log("save "+id); + if (errorFound==0){ + $('#imageEditor #status').append('
saved
'); + } hideImageDetails('img_'+id, filename); } ); @@ -191,7 +138,11 @@ function saveImage(id, filename) { // delete image function askDeleteImage(id, filename) { - commitAction("delete image", function(){ deleteImage(id, filename) } ); + commitAction("delete image", + function(){ + deleteImage(id, filename) + } + ); } // delete image @@ -204,28 +155,12 @@ function deleteImage(id, filename) { } // close all open dialogs -function hideImageDetails(id,filename){ +function hideImageDetails(id, filename){ try{$('#img_editor').dialog('close');}catch(e){} - try{$('#img_image').dialog("close");}catch(e){} - $("#"+id).load('image.cgi?show='+filename+'&template=image_single.html&project_id='+project_id+'&studio_id='+studio_id); - return false; -} - -// show image url -function showImageUrl(id){ - var el=document.getElementById(id); - var input_id=id+'_input'; - var text=''; - if (el.innerHTML==text){ - el.innerHTML=''; - }else{ - el.innerHTML=text; - var input=document.getElementById(input_id); - input.focus(); - input.select(); - input.createTextRange().execCommand("Copy"); - } + var url='image.cgi?show='+filename+'&template=image_single.html&project_id='+project_id+'&studio_id='+studio_id; + console.log("hideImageDetails, load url="+url) + $("#"+id).load(url); return false; } @@ -254,3 +189,49 @@ function decreaseImageSize(){ } +//select image load into selectImage box +function selectImage(project_id, studio_id, imageId, searchValue, imageUrl, series_id){ + selectImageId = imageId; + searchValue = searchValue.replace(/[^a-zA-Z0-9]/g,'%'); + + var url="image.cgi?search="+encodeURIComponent(searchValue)+'&project_id='+project_id+'&studio_id='+studio_id; + + if( (series_id!=null) && (series_id != '') ){ + url+='&series_id='+series_id; + } + + if(imageUrl!=null){ + var filename=imageUrl.split('%2F').pop(); + url+='&filename='+filename; + } + + var x=$(window).width() - windowOffsetX; + var y=$(window).height() - windowOffsetY; + console.log("selectImage(), load url="+url) + + $('#selectImage').remove(); + $('body').append('
'); + + $('#selectImage').load( + url, + function(){ + hideContent(); + + $('#selectImage').dialog({ + appendTo: "#content", + title:"select image", + width:x, + height:y, + close: function( event, ui ) { + showContent(); + $('.ui-dialog').remove(); + } + }); + updateImageEditor(filename); + } + ); + + return false; +} + + diff --git a/website/agenda/planung/pot/de/image.po b/website/agenda/planung/pot/de/image.po index d2f72d2..af12714 100644 --- a/website/agenda/planung/pot/de/image.po +++ b/website/agenda/planung/pot/de/image.po @@ -61,6 +61,12 @@ msgstr "Lizenz" msgid "label_public" msgstr "veröffentlicht" +msgid "label_file" +msgstr "Datei" + msgid "label_licence_missing" msgstr "bitte eintragen" +msgid "select_image" +msgstr "Dieses Bild zuweisen" + diff --git a/website/agenda/planung/pot/de/projects.po b/website/agenda/planung/pot/de/projects.po index 1834cab..a61a3fa 100644 --- a/website/agenda/planung/pot/de/projects.po +++ b/website/agenda/planung/pot/de/projects.po @@ -25,6 +25,9 @@ msgstr "Studio entfernen" msgid "button_edit" msgstr "Bearbeiten" +msgid "button_change" +msgstr "Ändern" + msgid "button_create" msgstr "Anlegen" @@ -44,7 +47,7 @@ msgid "label_assign_studio" msgstr "Studio hinzufügen" msgid "label_name" -msgstr "Name" +msgstr "ID" msgid "label_title" msgstr "Titel" diff --git a/website/agenda/planung/pot/de/studios.po b/website/agenda/planung/pot/de/studios.po index 0d01acc..52281d4 100644 --- a/website/agenda/planung/pot/de/studios.po +++ b/website/agenda/planung/pot/de/studios.po @@ -34,6 +34,9 @@ msgstr "Beschreibung" msgid "label_location" msgstr "ID" +msgid "label_image" +msgstr "Logo" + msgid "label_stream" msgstr "Stream-URL" diff --git a/website/agenda/planung/pot/en/image.po b/website/agenda/planung/pot/en/image.po index 8b7bec6..bd89390 100644 --- a/website/agenda/planung/pot/en/image.po +++ b/website/agenda/planung/pot/en/image.po @@ -61,6 +61,12 @@ msgstr "author" msgid "label_public" msgstr "published" +msgid "label_file" +msgstr "file" + msgid "label_licence_missing" msgstr "please fill in" +msgid "select_image" +msgstr "select this image" + diff --git a/website/agenda/planung/pot/en/projects.po b/website/agenda/planung/pot/en/projects.po index fc94679..ca3e788 100644 --- a/website/agenda/planung/pot/en/projects.po +++ b/website/agenda/planung/pot/en/projects.po @@ -43,8 +43,11 @@ msgstr "assign studio" msgid "button_edit" msgstr "edit" +msgid "button_change" +msgstr "change" + msgid "button_show_changes" -msgstr "changes" +msgstr "show changes" msgid "label_name" msgstr "name" diff --git a/website/agenda/planung/pot/en/studios.po b/website/agenda/planung/pot/en/studios.po index 510248a..278f28d 100644 --- a/website/agenda/planung/pot/en/studios.po +++ b/website/agenda/planung/pot/en/studios.po @@ -34,6 +34,9 @@ msgstr "description" msgid "label_location" msgstr "id" +msgid "label_image" +msgstr "image" + msgid "label_stream" msgstr "stream" diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 2c06bf5..17a32b4 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1091,6 +1091,7 @@ sub show_series { series_id => $serie->{series_id} } ); + uac::print_warn( "There is no user assigned, yet. Please assign a user!" ) if scalar @{$serie->{series_users}} ==0; #add events $serie->{events} = series::get_events( diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 08a3f73..485d15a 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -222,7 +222,7 @@ sub check_params { } } - for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar' ) { + for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar', 'image' ) { if ( defined $params->{$param} ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit_event.html index 08ae95e..936e8d2 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit_event.html @@ -43,15 +43,22 @@ ); } }); + + $( "#edit_event input" ).prop( "disabled", true ); + $( "#edit_event textarea" ).prop( "disabled", true ); + $( "#edit_event select" ).prop( "disabled", true ); + + } ); + -
+
@@ -208,6 +215,7 @@ +
@@ -236,7 +244,7 @@
- +
@@ -490,6 +498,7 @@ +
@@ -524,6 +533,7 @@
+
diff --git a/website/agenda/planung/templates/edit_series.html b/website/agenda/planung/templates/edit_series.html index af3faab..6a6264f 100644 --- a/website/agenda/planung/templates/edit_series.html +++ b/website/agenda/planung/templates/edit_series.html @@ -138,7 +138,7 @@ > - +
diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 8d2f117..666a67e 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -1,6 +1,21 @@ + + @@ -23,15 +38,16 @@ selectedImageTab = getSelectedTab('image-tabs'); - if(selectedImageTab=="upload"){ - initUploadDialog(); - $('#imageList').hide(); - return - }else{ - closeImageUpload(); - $('#imageList').show(); - } + if(selectedImageTab=="upload"){ + initUploadDialog(); + $('#imageList').hide(); + return; + } + + // show images by default + closeImageUpload(); + $('#imageList').show(); } }); // get initially selected tab @@ -45,41 +61,38 @@
@@ -87,6 +100,7 @@
+
@@ -94,26 +108,28 @@
-
-
-
+
+ +
+ +
+ +
+
- - -
diff --git a/website/agenda/planung/templates/imageUpload.html b/website/agenda/planung/templates/imageUpload.html index 5051dc8..5ae2acf 100644 --- a/website/agenda/planung/templates/imageUpload.html +++ b/website/agenda/planung/templates/imageUpload.html @@ -30,6 +30,14 @@ Beschreibung: + + + + + + + + diff --git a/website/agenda/planung/templates/image_edit.html b/website/agenda/planung/templates/image_edit.html index a8727f3..ab0a747 100644 --- a/website/agenda/planung/templates/image_edit.html +++ b/website/agenda/planung/templates/image_edit.html @@ -1,9 +1,10 @@ - - - - - - + -
- - + +
+ +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/
checked="checked" value="1"value="0" />
- - - - - + - - - -
+ + - +
+
+ +
+
+ +
+
+ + + checked="checked" value="1"value="0" />
+ + + + + + + + + + +
+
+
+ : {{|}}
+ + +
+
diff --git a/website/agenda/planung/templates/projects.html b/website/agenda/planung/templates/projects.html index d0c878d..4d0c3d4 100644 --- a/website/agenda/planung/templates/projects.html +++ b/website/agenda/planung/templates/projects.html @@ -1,5 +1,7 @@ - - + + + + + +

@@ -12,7 +15,6 @@ - @@ -45,11 +47,11 @@
+ -
 
 
 
 
 
@@ -65,7 +67,17 @@ - + + + + + + + diff --git a/website/agenda/planung/templates/upload_audio_recordings.html b/website/agenda/planung/templates/upload_audio_recordings.html index ccda0bf..d31335c 100644 --- a/website/agenda/planung/templates/upload_audio_recordings.html +++ b/website/agenda/planung/templates/upload_audio_recordings.html @@ -58,6 +58,8 @@ action name + uploaded by + uploaded at size in bytes event duration in seconds audio duration in seconds @@ -65,13 +67,14 @@ RMS R processed mastered - uploaded by - uploaded at + modified at + + @@ -79,8 +82,7 @@ - - +
diff --git a/website/agenda/upload_playout.cgi b/website/agenda/upload_playout.cgi index 556104e..de6b2c7 100755 --- a/website/agenda/upload_playout.cgi +++ b/website/agenda/upload_playout.cgi @@ -49,7 +49,7 @@ if ( $0 =~ /upload_playout.*?\.cgi$/ ) { #print Dumper($content)."\n"; #print Dumper($r); #print Dumper($json); - print "result:" . Dumper($result); + print "upload playout result:" . Dumper($result); } 1; From 56174029b8cce4786bc81a44094739c8bb80f821 Mon Sep 17 00:00:00 2001 From: calcms Date: Mon, 14 May 2018 23:28:40 +0200 Subject: [PATCH 008/391] show more detailed message on missing media directory --- lib/calcms/images.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 5d81a33..41b1edb 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -269,7 +269,7 @@ sub delete_files{ return undef; - print log::error($config, 'missing permissions on writing into local media dir')unless(-w $local_media_dir); + print log::error($config, 'missing permissions on writing into local media dir ' .$local_media_dir)unless(-w $local_media_dir); if ($filename=~/[^a-zA-Z0-9\.\_\-]/){ log::error($config, "invalid filename: '$filename'"); From fa637803927b6ed50042c4fcde10c08b3b0a6eda Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 14 May 2018 23:38:46 +0200 Subject: [PATCH 009/391] add screenshot --- docs/screenshots/calcms-calendar.png | Bin 0 -> 309535 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/screenshots/calcms-calendar.png diff --git a/docs/screenshots/calcms-calendar.png b/docs/screenshots/calcms-calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..3e719edf91c2c3130600ed7f0809d774b91f92ba GIT binary patch literal 309535 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

P+u~gqgpd&Ca*k{BYX+%^yA{AKBrdl>F{c|2Ouy z=p=)r6;c7h(ZN_Ny7zxa#q_TtR}WgB{SO$@GF^ixd8_9Sa{ zZpMGhvS%ADZijkD`l&wfPX1?iFKeINub^|DJ)QkY`&-|xbXMQ=VsEES;XMb>Z+7>r zc1-8hW{MDA%C^SDEOO_()_j@fpPaW}D#kl%rS(Tm239<00 z>|AZTlhTgY1DJsRr;tzj3bH84xv|RS- z-Pg0fW@s)n+Rt!CD(Ttpz!|{@+{4cy5BtE z->JK6!%d%WUbQoBMZikNe@E@#Zd==UtWdkMDCqZ(^&Rn-Gf#INvkJbQDz|f1_P5X3 zdb8xN{G0d0+~QO>+ivgOw&(2jtB)9s#H;O@Cv36fr++r53lxoI%C#> zEVJaRmbbzfq~y7uRdMTyezZIHcVpS!bK9P3xVKxMkp3K6@as3T-w(E*msakpo^dJJ zrfSRlZTGLw?d`9=oL)I=Qt7X$JHDOXdRo`|{=4jl88&zSSspL_+?`#=cP(@O+IQz> z?pnP5Yx}w9#cwUU?Mo!Ax999%+Up$pcG}x4zuOnT%KQvpZg%_e%3F!{*S2qRx%;=U z@$!xBPws>=XkU9a!#Z}k@BLeUe=dCe+t+( z>7lMiHy6xWTO7=LanV=C?9WG6OsmrVkzyr|0*)O_06b$NzPQ+|HjCQ{9it&3$&O@B7}q zV%zX6x8qUSk2CtN&wRh)+|M^%>wZ5!wroZz1v;1>6dqdl!^85GNZTq^;JNKTk zhOv10m1W=l?t2_j|Ih#XpSE28$1gd(u4H!KWQ8=h#{KB^TMZMQ&PHpuIjV z-0;uFl`PNXAGrjnDf(ZZw0--u9XqzEH!M7Ovhc;dt=nzEmk~Sre`)`=efbxQ^Mdc^ zGOV-qJvAltitT^9-E#Xr|9brI{?YyKWTvk_*b&`u`s$URJrBiZ?ZRA5w-;8iF?!0-McLB9XtGU%B=T~?9|!U$3)s&1zvwCePG)+ zmY}fxGjxxC+k9W(w9?#N={qm1&WhLf5q8 zy{sa0>!(OMGk;)}I)6P$QNT3pm7WQc6jPhS)nh3^pLJZ`d#11RbI)02KfNp1qG;8W zwwnikBrVa}&vm-R;C4Rm(K>PQTI9{1w|;hxMZ9}Lj8XoQUx{b#AKzB0`o?4Si5qjR=E$!rGUpDJ z4wiW~_hPzQvb)p0gF+XM7$n|`opbu0>%+(obC)-FSKNhjoAH&3DD$KCj?y-+8U^@1I|a z*=}X~zwQ1t>+Q;q#R9*#d@Y|iDa!RlpY5ItFSl=u?M)S5zwWAF#QuI`Q-i9I=g)Q9 zWX$#^roQ`E@})7$$MU32_=|*O->oxVUuEI{`mJ1cxBtwI?XOF>>AIU1+?DuUxj1(> z@ABG}v&_DyF)uh5;Jw`1W=CMW#N)3y_POV8{@C$w&&K{Qk@KGI@vApm{P)tkv%1Gi zKVPfQdA>q>_6B42SDfdcm%RV&y!^AJczxAU^O(EO*F8URcJ8e|r>7{)^EIxlc=t%> z+W-Fbb+^Eo-Ms#Fn5dxhk5;F1IcJtVX-wIocW(b~d;5~y{gu0wjw?UrtzMJH(bs+C zdxE0%rG^i#E!k^sNT>biyJA>Y)Gn-?eCWgSu2(k9TQ93Gl3ninxL78BmOn$e;r%(6 zQuf!^?mf(^^Y+#CtJ}_7^sPL+v9{P|>KlI9!a4Kr7Zvb4{%^2q`tkNVq5XRb=bRGl zdv>eulgsL@m&}A?R!Z)@8gbbp+s<76dBO3_^N!6;6`wM!5-UAzrpI3Yxwmg;H-mX> z&ehVl1!AASea@bKyw$HSe8-~Nwf>5mW_BM;vbLsiAKLWzoh7l(!GlO zMRV_$hBiHpV6WSH|Kp4^r$3gohQBJQRc$@myWpB}*^T8chj_*0jUcCSI zujm5|+wWL6ugKn9@%QlapKs4ZYux*%HvPSC>KEMuTeG^l^^L8}nylyQJTH;1oyD5n zE4m@5`kKSVn?+hW4DrS}oA~bUbro56F7b!Sj};fTe%bQ3%=z=o{P_-tgymh|Z>d`) zA!jak_MWqd+S0_z1O2DUdkj=2wIBPkzj?Rq;-nv2K4yG-7Cd7L=VP5IaypCkY6QO@ zE#13q^Vh|~vTGl^|G2#Ihy3a1M~(?SDpszZ$$js?%-g4N1&NGT9bP=kiJNh!Ci_|N zOPv|PUV-;q({%b%-%Jql+cVj1RiwYc)S4103Cnpe6ijEGT=?Ui?vjFo-X=a$z4I?R zER>WGK2}hx5$rZ?Lb*Y2XqxT8EMd{(Jq9l4r)bz0e26}2X1;i)NMn7Oox0ePgG(4z z@y$9oH9r1p;N#V7=ia5iUw`$8{nei;`o06w4;8XwC zsc`GRM*4A?&AwuPN)>-3EfI`&D*5+du~HGw98G4omluES_z`uqFY4urb&)^ACWyta zTH$dzrFcv`nj>u{rkFb$nxckTo~=bRe(HyA|`E+`Ag3ekFO%*QHy& zwNHJ0>1N%b{!`^=7VxQ89q9WUbKhUx`j6P|TQ7I4(%ZcrT-NwsS<%PLSM)mPef-_P z`c)oxLqhU@AJ%)uC}+?3CS`v1HB0xr)E&p9i^bD7{*y~iyVv*Z?YkcCIoG-TZcpR# z^GR5^t1n%A+9vC@P1om@ZSs4)?{UVQ$2D~~#J@{lozdx%#ieQD?6Ihi;nZ8b>v?va zvmQ=PH_E)DlIHT{^Rt(4ZN%eG-7wTTb5zxYNvgMNm)^746Yb8u-g@^}>8{${yKJ}R zUv}3%d9TLiPGa4?Qy&z+9Y45!|E1Zro4acdMcTf);C}wi<>M=@&To}{c5>df`+tkp zrhS>BJD+)lRR)Vwr_9P@*N=ac*|S_`U%2`6y6~-s3(wp>w?1EKRkz)$*7cJgi>}Lv zf6d#XzdkkEiLdwb_06{~-krMZ=e)f~1J}eyysMDie%yF({d||rS2IM9C98(Sv*0f3T-V>a8%MU5am-lXl-0BD@Sl*g1?`V{ zjwjoN-@5&@(5-)x<)U#FgiEA_*=~UWokcO9<>p9=l}Jf zv&cMNg%IW$y(T@LDL4NF{5dc7>6-M^AAN-%wT^Qy71d`L)Ut6_l0j5`;iWhVmJbM@I;d_)5 zL-FY!E^gG~=udmNPvwi=p7hWRoAc{=+>5t13A3*b=r8(sTgz_Y84sR=*Mp9_|1>Sx zH*u;utI+J76V;cu9=I7~XBF0}Wz*LBUiJ1~sZF(gH?tb6mhAg!9-6a1oSTuwyx-@~ z;oEhaw^y&f`Yd$rlOiU6pG!B2RQLBCFub0;uC_{*dwJ%{Q}@no+Y%HaI5}e4tGSH( zF7I*fH9IDDaKg!hD>zefrr0k?%sHJK>u!7Mv-L6|t0UX~b#7*Ku@h}PcJZ;-vnkDH zEtQ)8`jY<&e78KYc-J+-duD+uM_K9=k`p z^0pC9O?uz+^9vjl2B zU#|G|yZdHAfOE{VGk)9sM6U0QOJ83c!7O{VcboQai}&8qKl-->ee=_t-o_$4dEbqt z`!?0TI#%~8N89gMXzj}LpG?wglf3_aipZ$G70)|-)j z+0_Q>C0}cQ_{?Xpm!7&lXKUy4r`DcUvJ9E2(M{FMOw|oj{nJig!`{xtu zpE8>3mcE_iQo3!5@cStNnVe~F{yg0?Va2J_}}2)!LOKRnPsxmH=M*nD5%v#h-#QT%qr+mByf z@L}(QyKkK|Ti;I!Sjm^@^vW&HgU9J@3eVHW3;yrAcYEe8yJxr5jx($2KNa_HS!7k) zVSZh9QIPPd8yxX#j?T=nj=8;VW!Buqg>Lz`xNYsvz2Gx)|042||M!K64L3o%_crC< z0bTi9^Ri?6Y=Z~Ba{mMrHh$aEDD%ASvs%bvroiNbAI{Xo**-fzh2QA*9W~cTX3J~u zK5f46!>>PbZCHrbb*p#VwTo2GadGV}jOX@13>epZXyR^>JZ}+j=e-{?q?Y$*m z)eK!C7E$i|>+rv&;N5;rObl)C&3++KM#OH423g!%mwUwxf86!UT}se|^IT>|ekQ~3L^*8{XLpXI=Xi!T1$3paic zc)vfmQOl++{o5Ip8{PJo^s4f%uZul1$8z#4ss8^L=7R42UG6y_bS||=J&0`h(r!L$ z_TIY;iY+gsnJz5f(_we?_FI9yAHQCYXD+zxYyR=y@At*OzGM~^75(V{|AU{6SLz9P zuip2cNB11bKfU)Z*Fu)1zgF5`|Z!2nyQ_dmG!CUHE2QbQx7yJX@QppCmqO;JOf&vb+DP;xZ*>Cl(h8E z_y7OpgU+%#etNC26Nlmy6##-`5^5V1D+>{C*AdfwSiK&m{NTy2ZuGJ$(2uE^q1!z4B|( zRsYnA(dm)pPi_Gd5SvnrFzJ>dfOMpe{a`) z!t$Ya&C0e#Ju*f7R}x;HD_Xbi`t>XG)l797BiH_aw(-%-`^D?_iQitMsbE@VtGf5* zF^4N5&L?ku)!C`v7@64lr^bEjpHx14H+J|Lrops=VL)p7Ko?&5Pb#-;N_of}4a5Pvp`*>5W zgil`1h8MH0L~k#O(Y|}u>8kW@i^VgKzm{KaTpDtGzwM_*wceLqxx&__c+R$(n;-BY zX>Z(n>%R;9UtEws2U<7v&&=Oo< zO38|)a&p$EXB^*I#Vq+<)j&JPRyFtdW4nJpGMPSn{TOxnSKGQ@F0P+W|Flb7Y3Y}i zqqO;uP~@fs(~qa@Iym=lVtCZA)2hd;j?C zW9?3}_s_4EKDE{V=UDYD&rhXhg|+m}`=$vIUzMy+y-Rvm9r?y)-@J<6#@x-tD?WV@ zoovdQ<7w6R|5NW9o%@H+-S;^(YwodahqpTDidz2Gw6Z_2t7_}C$)4&;P=?HhGWjo^M@pm#2wWerujGh&)I#@8nh}(hHy=#4c?3KlGsj-1po`#HZ+0pYK zuJI31*+1v4u$Y$lvjD?9Rcm`c^?m;Yc5_di8Cto-zQp+C<9+Mq_jFe;w92jC|8LoB zfww1QF6zDH&)2E_EW9uAN|4C>18d|{3fFN;@vTn}ixArRym1y&*p{7Ei@v$=>AS0& z)fcODPm=O}tvf$lC*p8$Vt2*oL*{Fvx6QH7*?mg2O1rH}ST*~)N&MRRC(euinO6+j zi)y@rMdNhB!Ncu_7Z2>5QxbM3eYa7XXANK5|F;|NEV;X+G-`c)5PP56vy};J()EMb zXK-!y%E>^Z{9=X!B^IkK^}26-IA$poJzpdBcax0PZ2xVh5_RX7-FQ9!vV)w6 zRf?ACc7ui;XI#E4X8ORrr~AYel_U$lcPrU$zpbd-(AIPFq|Q%ArQ#&>N%x;gujXw# zyw)&hr__xy?)klMeB&}tKbBwfe8SxPol$3=8~kb!6c%og&-&w}{^^L3?Y{Yc?dwGM zHtpf=ouV7#lhvo29sBo8eB9J?lU}TyVs4qYIQ-{|+5e?IZv0uvay>jK^WB~qcfa2b zIrnYb#+$X9{@y>k@zuZQNei{omF@HYiT&tG=Q1#R_~r9<+wGI4r=LjlPAwT={$e6psdB3sn2eiCHI*nH%{ArBjj{v=(op7`{zYz_{W`EeY7{m zEBaLMfBWiudGV*E>NWKj&-fU%Oy4~>^Lpa;#bQzE@BC+e6U^DNVt1oW=;a?yRpKkX zdZaFD6TzE6PDTBHqb|$@AzNsot9%v5J2?)r`c&lNh?`^p7pZnQSk7 zjEt4e%QqVwIAg$*&phw_@t-G5i{}>4eLbi6@4a(7&qdZWuD;vnZTKbdzFca5_Zp5D zPdR%-=d9yU*Gy-;#i4oPP^Z_;1IK)=RN{Vbs+Q!c+v4A!zC8YA^(&73rH2ZXTrG3u zUYEblu=(Ja{$Jv2?MeT(F!gn>ek?J_-n3=)Df^0WS|XKJdH0^Y!uQZE{Jc|E4eAFzM2ll4;qKBPUI8&J6y(&-UAw z14eSMwAe6Dv-=E|pY zuezEnc(gJ(yJL-o)4yuomcKcwD_1LJuG2{S-?;nCUEzKv2T}hlH=R$f^EcS9?s}H_ zIdYedP_{28`=))b>h4{u5c}dGZuUpi+(P2DX7ygd${dlzW8P2luP#1meQ5Xml*t*| zivJ6aUt$3Xu63JR++l8i({<6Io~v^|n1@Z;zl-JPvb}pEqYro&OIvQ-Rq^6}6|cdY z?W+u0vo2`G?3=Q3h7~K%R9Ur@)uLCI&HeN1J8O!XX>nF@=Vg!Vl}~QGDn4QU^usgt z_6Qx@AMkLjJ_qU7BsyA8I<%;`z=3lPaFKau+P{E1I%=l}%cgB>Jf!bAn zp1rI~jk>nu+SxA2yZyma{%t*dR_GI7bmgnR+bh4{GE2%6om9T<@Xzm8{xPggI~4Zz z$&aI3Yj*crG#p-1{(EnXp1YcKQ#g0@S`+EB66@lZE)<>d=(lvw_orWuv^O)b^NN-! zi61j)Ow0NvR?c_E=ED!I{Mt&s+Owy5YfsIdR@D{!Ib+W3gTGu){hOZK@=-%OSWU?^ zPN}|Fb=6(>iqDgk*UX6V{HHxNg3&#j*{%HRqriDy7oW*IT54e_Y{d7m>Z8oEa%(?_ z#_7MlDOJa$x`r_9_slWBa!E$YGsS$SOrM!1<6NQhe~(V)`MSI|=4Jk`c~*zw=Nd4v zyk53A>!P)~OK;=8C;HAyg=cH~eLmO68m)CTpJu~5Ki)LP{c<_bNjFp-bCA!v? z_~mU2sd4ZApi5OSH81n@2iVA)HUzC zi}{iavvY1iGmd^!FE2DLV_s?8p7-+PZ=PLtTV@*G$tkLvbw)0?HoUg-k%Q)3-v^HO zcg{S1HeFQg3U_kA1s~rqz2!a=&s4>*wrSlvnfqe-e8W>;65?yGF!zNq_wAf*@#myq zTx7c3vU-|Vpi z@7{zr$~7(v`FBgC{wiPqWob7-@m3k;U%TAaU9|{(mi|0DbIp!kW>dq-OC-)s{~#%} z=zC7W(Ql?p^rkq+TFx&!;3J)d2U|N6fiWD+C#hA+U!Rx>l^#^+b};wv++&YLPlxBX+*{+SlasM;(razO!&x)S+1T(4{H$VaB7Y z9zJffs^hFfPS2{pc}(V}XrJv*p40QsEZlMCMI7UgOV2(laqzv(_}rHwciJL|xnf=I zFZS%4^;&a|Jl4MW?aku2ciZ*^9$Ga+<6#!@5Y&!dvjc8Ch_X$cP>ibq4gl8#d^;PFYi=MUO{`+ z!ZeGZNDD(r=?F7(3HG>GsSKZ3^?z1Pw*5O%RJrSHm$THJL~YYTy@lEQi)yF8o%i1G z#9p4St7~H9Ug~?roNvV_$^LSoNJZAt`j?cTfP4% zQNHhJePI2zS!qvfrfu&vwZ67NZDn>_i~9cO|F>Dy%k%ubY0Yn4el8^0_1u{~CD-0~ zs(<~suwL3%Ai^W*xnQo=;x}pyGiM!Q3t62e`0V&H_hwynX0L6(TIX6X*DGYVH2!Q9 zu~~g?xN*pZsH3gB^!(3Ge||eAut|>dqGy!S;LJN1MZRyRT<*9`i{qy}V-9jReip50B2zDXW`TbNF+M zig;~gS=fEc3l+zk_pL7cd@J?IH{LZjH@2l-WXK9jS)c0a$91vc@wAKE4|eZR~lKq5@4??4-PwKWTYvyo3)*{AaF{b82hA? zvfe97t?g%Q2;f$ej+i~G@Q&6a*4)7B@4F%`s`xgZSd#Er;hOVej~kz*IIDF`rpr!4g)ql0Zmr0jpJ(dU^a7^(1Eo)gb zeS58a`@Uya)oq{jE)MmNRP{)@`}$GHX8fKsV=|YE*->=5DU!*rqUg7Ygqq+Y=dt<)@gIuQ5RiC*m%g@EJy4o0v`z_hW&OY}t1A_vC zr;B6A1Kv}w9PGl|nKU(?G%)+RS$SG5pZUna>Bn629S_vJJ#%a>Za=kSK7n75mRx$2X-Jo9?c*a!%wse$GsI?!<$q3)8xUKCh7c#3iBG)EQ?k zJ#GGyw7X)9cw66CzezayQYL9iP*3a2JrU1rg4c00hZ%=`__b}bjZ@#^BR5Lto%Kpy z&64_J!hIhH#knHQi=N7CRSUQ;KV^&LjzIQRD(26oo$XnvD$&cM!eu$>g$bY7`4?$3 zZhmdGi@ja(kK?Fsv1e_bQczRias4#cAl2Lcrb+$p<%Bkbf4}%lEj{{M$nSZlBwkeP zzQ6Co>e#5B2zC3j%f3%uxO86e>hg)z5r_4kf3rBh^lzatht5Gk1HOqVlcv3xDLhfA z^Kl60Pt&Sbz5D8?2~lS6_iN8IUelZQs)$GSbbkLdqkdDHpJM$kCm4-;)vR3}%rW6;n3BL> zcYblb%_-M-y;sZq%Hpmcnk$w*lZ9XD;ELe1!=H*{xO0z4%yueS(ZXh5BxJPQ{GecB zL+g2;vW^LtYEH9wa0H(?cv|S(-HcU>marY@`j;a)clJREFU|cs8;&Sye2+L7s{ZJg z+kEl)YxQS~@430xcgOuT>}RfCow4kUdfZ}_ifXoxo$Eh#n{f7NO4r1#RaXee>YVvJ z|51Czk>-8D|GsX?|8-6{*_XfS_2PZMip`9diD|wHSQ#FDBme(}<0Xp^`oD4Vtoe3% zimKeh!zcMV%IaQ6?ia0C)Bf+5_5NE|t}_1qWNdqFZ+qS2S=%2ReB$_7uzs<=+^=qq zT8R%Gstep@RA=>_)9swwShb05?x~;MT5-K10lGd9qAf1S+nsDR4%f7<>0qwT{(0#z zi*~7((aPP)6K-c)Obk6ccarj(_&o0^FTP6uS$dMu!r*#n za9lvsJ-!Do3gb+l%{%TKVeQ-*VmyDj`b$l_+bp`W)y}tMBl5z6%dRyrTk|PcRGCfm zeZC_gm+{S=l`BerZ%Zn86Jz50-{)eba+!|FJgp^eR?R;&7iUd;)3~@Nv2f4K;LO&L z`&$z7GZ$s$%cY)CD~vi`uxjPJ)7Q^7%zSlcvWc6IyENm&jhrs`tUNzfJ`Y;*?DccY zk5%%&J9h|(DLU5w&{%$I&T03Xv%gFUHxV{-Z4}WIl9}=TywUfCXZ@#3ZoJ*|!aua^ zo$Z5_J&i^lF9r3#d!OI+vha=n?i;VWe!6}NTs7;B0=K$N2$Na6ac}##_njevt$UVE z%Ptjrqq|*GKkGv!|Mi6r{?&=PUw{87f>%JOGm7yOhiH+*{Hez~Wi4fXNAR%z?gr<8 z3(;}Ruc8-vsrg*ns8em#wzpm5t>6|JUZX>^*YNcFDr|ZwBVT5-czs$X zSsy>;x7e^#>gulfLaNfdsdC*n3U_?fefM$e&W$aJPd~lV>3e5!>SA#0>8BN+s@K^0 zMSt^G_nv9s-##bpRGj9LB^xFLr!FeD>F`ijH&B0~b)4&ri~aJCpZ*?WOZ8lD|Q~p2Kam(ve zy>MFXvZo$2svmSWf=l!ts z>&9j5wqFB(eRwXjEX&U3e#_CcW!o0aU~}c!#c_UHLHy6si+l6GA73xSTenF2(#c{^ zZ>HM0i-Y%7?PAaWdOf~=d30^XN8`O$_b#s!UQwzm!Pn9+v4W%4;tQw;;ohYc$LsLK z#x!V(PcJvKh-`HV(`4}vpEmx?aN>!nUf*)M^r26^-n8}ACrvBTxK1xR7**8rY39o% zdLb7h3a0#7qouO3_~wpS_YFSINnR>N)ymhs{vEk~ZEdPwiNyT5w(gO!7E-JUMhVBh z?onH_N$$9FtgEw|MX>qN3o!+=+B7xSbY!di?+jfN{g?4t1TWXDx!;$~@qP8pW7WLK zqo3rL6)y^Ex^wqT$Wxwc&(9v6HT&G=TcLj*t?3fY*Z;QT%fTC}5_jj#UE+4VSf^0* zyxq3eMbTE*_Rqcaw7_er1oyU$F}tVz71f%w>G>k2fOBcJ-*|i?U)rqpeb(w@EBq)V zPHghazL4ooX?UN*Q9=a?d!4p>&0i)B_>Pq zAKaABd0adBw2-6RDTx<{|HQrD?tb@+)wjj5ODF@OX9WQRIfAr~iuZP;v4PSO__V+G5sWW?Z!N0gm zJw;s+S?BU=rfs*gX}|YLs%4+3O|Gi6_^e9xy;Jh6&-XG(J`4@hO5bc3?SA;#R-KFM zRQKz(_1@eVH$C#RUOd|YhEk^lfu6G8de@FiYI?;S6?$vDXU9&luhVkZT=2BLm%M>p zQtRvD+FcLBe>J{tNj#YMV6OV4$VIV7yJv=K7?pjx^mqGIrmbg^r8Kkn_qC>eN{Tzz z;dXJ=^G`S3mQ0R~I>f(!`R&lZS55}Sa!H40a;(;VJohl~iRE9i3q23ca6I`%#8l{L z&a*1n88S7uE7vH`{bRB|?YMB~ywmSP6K9DW-kiVI@%87dNVipfrc4vhbiI{Qo8sr` zpxpXwQqcP90K0;U%bj`^UvF9!Y^|(*oA>l0D2wcf3En)zcXpHI^gWZFr>{+{ZfuD> zy~r?4cF~>d+YcURlKV1u_tG=J4@X>Xp7(3T7XEs_MIA12laB6^Uz7ShlGU@)fA^6& zRksfvwENv|`?S{n&#Ax%>SgX-RhQXz=`MTzQf|*x=lZ|0*M%y2Z&&VHcD&A5=c^ir zMoYiM4~|-kCoHuekBYxlj_qJ?{9JxV_nMA`&okc{%pJSrve=@|m(?ojFPjxvU+BDE z@6kgphty1UP%Y%9U=VyzR|C1FFVL1?;zxV04J5NtfXTEUn-qLS% zi}mFuf0bF0vG122Xm+%|ui}E4yL_C>d^tOpSbqLR^Jw2Ri1RxYsrn3ar?Xe z%C~>Kvj54(8)t)FCJQd)Z*TwoSF+`gL{`fjIXRd4-+C`D;g>IIv6HcLnJ*{jV#_bT zXk9yd;Q7PttLHxNy>uyvVc*Bz{0iIm=j;C&D|}-R<6vpJcjJ}iM<33K)z=KP51rV0 zIMia1`2s0b=4<>`^?zT-SAMzZ?!HTcsnJ0}pvQu7rEs*C<+M5NhIx9sCRClWD{IJN zyL|kFoHs}ThYeGZJQoXyDZpcx#1Nq%z)__XEWDqiPtE@D#xTyrjm0--tgT+~O+~8r z&5e!Cveso2=FK~|xB9!){{8l^tN;A?xMl0s-jI)AGbGHIqSV{m46_qeT$i8wxKQ@c zqQ{Z*KYwA~k=x~07`T1D5nTN?LzO1te+ zNbXyh^Iz7wj3Ht3O{@L8-{07+_fl1WgN5l}g!+ckBn!jnIOVj{9OBLj0vs&K^9~?P zJ-uV1UIWN3mgckN`##I&-QRb1ZS?kzt}dyUk2pZCG)Ur@s{t~r@dDH>ayCa8Hh}aT zlj-d2TyZt)N|tG7XQy(k3@8ja+;|oWvw~gyD*$94)4}F;2?jA9>#|zK{}!(WzHZxh zUbeUA>u+HWH)i>o4~*OM?=Rc9aU!?4UQbCO%VG}2!>o-bGG0z!ymZdr)Gha~XI$zm zt5ux6Rr_Z7y`H5x(%xH6=IC$kDcJ~io*{m(xa^m*X|a=uI>PY5<8sKUZ;{qJZy6n^ z$=R-Xch@XD4=@vu&|Ed{F}!Pm`TUE2#rNg!*jL|W`a7%1&`tPgXZ6Y~#^i@)+vXcu@82f5(zbZgog*cEaqs{A zndP6l!^Zfe&c(dNt5^^8ef%T1?T^7s)mtKF>-CQcIJlj!|M$G!DD#qvn%|rg^8Y@x zPt@yMAU{KY{u6Od&2#_09p?GO_4?zgv%5~ZaerNYu6S!^#VIX;9t+*6Isfadp3A+k z%U@o2Txy>8`ltKYHiwIU`18HI?1lD$ve}DTrap<|caScXNV$>l%BA|N;Jnux7Vp0O zC+(E5bx!LM?-_shHt6&uxLOq5Z0OPy_~F;yzoVwMRKNQ0I{hb=xkmqI+`e*rv(_7a z#|H^EQ|}$FFRq(+zi>9gm8Qd|9=vqs4i~qseZ1O@!FubRDG@CpeZjkQg|n_nn8k$`hYp5$zgtt%H+OIE z$7Pb)+gZwHS|M?u(Cba9MoAIwh zmlq#V6ysoNZWeLfBeiO^VQEdW*6L+9@13~1i!buRC6Be9u4k4oYzb_4Y~$_q+fwv6 zBzgKh^RU1m^A9mgCyP&roaY=>^W%WAFvqXP#gCY?cKtk8CgmTy@aMmU*V999$TuBu zoH^z2?yc(9_WASXoo89uWvQvf6u`}=-MpN?InY0tfo&CU*#QsVt;_}mi_bAx7+f)B z)>@=ov!--*Ae&2$@L%rYy z%4_Bao$fsQw5RR+lQV4Wi65h;{GEB@`r^F5r<@f8>>e2?etDSjVBti)1I+y!yB4or zzv0LC^$T}Kp6EWEzxbkQ@!CTT&VpwzyN zl2ap3?9-!9Rab)7m|T(E*p}gO$~%3XTUTuSiSE8PXD8h#EYy8Cb?KZ_I?E3} zQP3%~d;NKr$mX9#ia*y+SzzuM@g*kcbI=6_(75KTga0PErT@!MHHbIf!xX-%N9muX z>HFvRmPzVON_je66E{bgo?!nb{P z&bBHD&$rqYzu7)_l~CKI70)gmyw4jI*KhxgV=Mdm=5NP+EWTUoF$PbbpQ?3$U#?mE z|FNaodYp2eDjz4>2i89Fw=I%7|M;YRqxSrQuUsu>tERc+6@GoN)=_)4e$1lPd1340 z?!GQ>KYa1^?<-fXqRCYf4}^n=>tU&C(kw$NVh#%8Sll zQao)}vz-JVh=g_515zs)wsz9MVusXU*I2n!7?#G;ZGxuB|+8 zrhnh0=k5K>ojc&g-rG#~el69nc=dbT&nz*w#1#`Z{CmW|YUS0ii+2ve5C7hm}5{08-D zpKkQlKfcua@44X`t3a-6n}Vcr16@uY_*1AkpHb*V$(6I|MiJk=lrJ8?_w4D+fZcVX zyY0h1y*Vl)q|_60x3EL_y=j7LlhV7)Yw7w9vC|K~dK#)>#5eKfqt7?;=cRx5@5%`9 zdA_v%W`mzkhX{{a5bLZCH@zt{XYN~}ERdi5;LvdaOV@Wb#y4IZymw>IB+mS&KU3>D zSeOr%%YV$T$olF3;LiS^E1B7wKc0!S6aFk%|Fz)11Yhlnj@cbc7IYn(9Ts4^=)Hje z&-C6Kk7dq1_B34aotyd0{<}^NDJ6GqjhvB@cW}~Aqk3yHuUA;1bS1g1(xZ^qt z^8(K<$9ZMan|b%Mxze~N$iuk zS0_sHZix!ay>(J;Zp*Rj@yWlR36;p}Ixt?yQp>sO*LU1q;7(EJ+vu+uee#OMT{ADG zZ<|nGVa2}P$0ciz%fDw{AvfJCGNrDh! z8_!|<|L{Pn-U}xvY9}%LzEHdd+jL=6lLyN%f_QkAewnDI9VDIMLwO=BH1Vul$+n=AOpy`r*pF3MupHi9tsv&k}s?qt5V4P~9|6>3($0rOCW+ zROcFLc9&0{vwY_H_fL3z>R^j%CE4Qa5`o5N8;Omb+efneU%^B-nD_R|WFK*lN=0i`1ey^X){BJ!M+L;8r z9oS`rTBrT6Pz{Q-xX69=M5yr$`SmVZ!HZ_DK5{YT&EH?U!Lv;deat|!P4lPMPJbJr z<-H>CO!`Ngbi00Aac0r*ox&=PNt=tFPZRXc5b5@pd-Swb*3r6k*2>@}M$K1CmUrgt z@_PGs>od`)XLtB3+FyCt?(B7mH8`Pk;cRfy+G4#asVjAsDn44Sa*oGci(6eSnfdfH zw#N)AT@pg#eku`SeQI&NM^fHI#bs-3l&*N*+4pPaU#V0{Z~mS7khd#9;e&Ahwub3-FS+OadUsY@_UE~71&b}p_w6oKY>i~Q z$tJ|Z>%2&K`585&HsG#p8yBT;lttk z|J!am<#piawD;HdeKXzn^KAa7KcCO@>pTuHjbe>>op(7Ru;0|>_#6?_J8PC~Tqh>H zpsQSOcdkYJp>&Uqdz%|YZ(pCVD}b-`>6MaqMat@0e(n|xPRFmz^fHV*!aD!)l6#LP zo6gHk$bV^N7^h^vdE&~OntAGre&*edG6-wV>XP}rHcLlP*qY5;CnSCDkv%!8oAt=wB2V;V)3z1by-8waSCh=1ng*97h`+w%u=m6AH8TQ22 zF|Va{)mLc^uE50;9ES-iswOCZWH%!5h10 zJ#c(9H9T(NjvJQVXY;myo_+sM+l31OeKM9thg5}sxMYZMR>vtP_O~9}ba{@)`3DYu zeA+fAZS^B7r%YYegD7GvbVRM#y>Msy%_x9(AU*drq4|9;+hp<%k^9Il($br;DVV# zJU2Gp*~G+`b?MrtoOCuZyZ=Ex*WTO5Jz7$GMBVo0fqR!M4TJaX6mYJwl3xDv0ejVk z+_zWVD+<4c`mE(!5#hb_ZdbEboWar$ua@1Ov!Xlo?>vqrCOc1x7{n>sZxy*ZFIMHt z9jO3=6+A272ynQ~aQx2SYR6M?gyDmP!>UUQb1YBxs&y0@2m36Vpxo*AIN@W@JLX1R zUlYH&S-$VpoxN?JhrL(&zM(Dt+}nwbXTcLVJ#nY!+*r+hv;4-vuFIB3G?q$mU#{GE z=I87f#p8)a$*j+Fc)`;qtVgc&CM>#sw(Y6<%E;}lC+e+Fm=(EnX+@T9u6!QVEyJzwx^ zrn$l0CRuxpmtGtGNSfuJQTx4wcHmn|+eZ@ZCnEQ|RKpN{!zP3!Cfjk4?l zGP500E?e5YIkDW#y!&r^{_l+)*DferJ@fpfXI0mEv#-1RVwiUxytuhD$Le@%R{Guh zD_6X&iM|!Q@7}8e)2pOCDp{L0`lY3%Emvd?2n{`YtXJB7g9}qUXZM5!_BB(2Q+*>C zswdC;)RlHgzCFbXNz$1ol$$1r_xmMb@T^duu0^XTPuC z03|knXoe5X-?OJ%Z8&ooSSd;W1t=4Fe52M0K&c|6b#ishPV8O5`6 z{l=)-XEyuGEL1Gx)nDKJLF4{!&3=;~$h^yKP_vM@gLC8yT? zdulp&dfiRo-HpNiDw|!Z|8H(nx?J+THr{gf6bADE36=g`FK_H}@I9lVDbQziZ|CNmh%LLk zm;1&YIDP!tVot+?w|j;3uD2ThwVZC7!I&Z?6s$Dyw)D=hOD#8K7XSYuI{!-wbG3K6 z#ec?MVZx~=&zIb~^?%3XZTE$%-uSY~OrGMAlO`24b%luCl9hVT=AKHk(=PgT;#|=h zmG8SYw6{%KI7OD}pofvjzl9gt8+|W`$Jbo6yVP1CU{U}4kcare^f$kp;(Sau|9ix? zsD?9$jpMW08AiA8*nT(2==$$x&u1OoyYKd{Qtj&R@7{j9duwa<&#&w2@4mis|3$Z} zEx+=t_4`ggpI?7&zOqm4e4P){7nis9UyQr{?UnML32KRtkA^ble(wENC8yWoCu7S| zYhiQe{dt97Ujmd1g|YYxAztpE3UKI2Aq$hb5^ z`TKiMTgBrRtX$b?oPO@ZN%i>!51TGqboTW&va@WGf2gT2S zSbcB_5V-&6{r_j_|DXT=P}-W*@LQgXX`W#gGj|)CqBTo0ub^@520?EJZWgA-ge%6N zBfbATmM{MHCi36w{r|d~+4;-ol8-%Y&&|@b@ZdWAl+9(Tzt7FC{^yii#pS)_ z&WXJFl0Wue?*% zzioH!T;^GS|JH>5){9=YPIdVc{hHFh;cMpYnxp&v&(8N->Q_B^JB4@6j9qg?gRg(O zrJt4gbu-W3zZNolGJNd0xw(IS9Jf#V_2uP@5-Yv9Js#QF+MpSwofRLIjMLAh9P5#^ z`T1n>o!#Z@qphy*XMb9}eQosYE%#q%tloC7`5^xchp^yN7#I-F2re)X!5_ zO8b?dJgosVHFnYGbgtLtdk_A8<~6yks*#kwv7(ymvby))<(o|d>vr%QUQ!_>?)uLm>`uL5e){yO&s?jiTeg^7x^&5Ee}8xP z2lE2TehpxU|!y@c4to>T2t4v##IV^GR!4;bRUiE+q|*bLPv>K6yD^Y{Ac6 z_180{<=t+Wi`x9UV0-Ji2u&o^QW-d&A9~x%K>Fj*gBG z{PBx%*nE?NDXgVk_{yE0znA?t{`tVxf#coH}i#M*i*0bKc=n!xXw;sQ*w#0 zMy=GDn7eblBY8EFk^@fbM5Gp})QKf3bj*0!+zFoYYYOb1c=3$q{GcXpTa zzuQ{8K39g{Q)SEQ(j#uCcmB5je^TCV@0r<=f+=sV2tGQ0bjp8+Th{*>8XoiWfBbNm zUpaSw_haw&=O$&!|G)2-fA(05VOB-?u{D} zJ*&fw-@T3(XSQHESgUr_z&Nb$ahU0Kt#cdeH_tkpe_r8E{~9*^c~{tNA4l6A+g;;$ zqR;Svz}L**rSifzdqS=PuZuAS6+g~wFZLB2bvg@uZw?5S~c^l_|Z)lnGO~t zt^d~$Y^udev+}!qPk($ZmPgsVg-L+RnPVr`T@YP#AKjzrM{-n$s zIESg{DlIoNZ~wz&dsd70;-+^86F)z7`V_C}nqQ6%(QhVk-OKzJPE2fAnDmc|M ztDo1R#6I8RN=H=ckc3(`d1jb)n z(f*?6`H$cF_K!ZSm*S}XWjXEd+9?m*<)2Qh=KELl(c<_$!$o!fsKGy$O?z@C}-ki<3M{lfmP!Ql@$hVu``s z@nXi`6uZd}?}_i7;e6&R&$Yct3PlU~PXE+;cjIu!y?wpCo`N15E52H?AG)$K*!q88 zZ!fDu<)0r5p1v187PQT#u=VKvdfu~V8Mba^;WtSv^xvFx+GWYMDwWM~kBee;-EQ+7 zN`04Xcd>N$u9FkwbAFel$9;Pp`*BIQbI~4~@B1#V=CL&1@k;9ctlup6cNcGT-;*sT zB!BAP=d$k~mo`k0W!nETfBrl<#@<%TCuvs`Cavn2m$q;j(<6WRq|EHN^!fK53uS#- z@!8Jn@#gfn$5G4Itx5fRQle{e_r`xY>eVIr9}X$li2rpx;=`D%>OTE>;m>K4meik2 z{P*Nvy5I)G$#NaG4er9eOLOLLoxEC?LF|?P+~=!y*9Jss-CXDUE+Twia_-Ny(+zlR z`jiDYm^z+i*@ijHUGjF$&Sf<|8YCZ{*jz_aZihix(|$@ZYR7YvyGYiJ0kP*;b%&=r7wm()4;9-X@d?AMa)$Y|S2d!NMnson3Z3KU9qw>bzjl-#I1eLej9E%OtwS@GA;n+>^s)mK;V z{_Ojp?{D4hH|2#EO%rVY7!=K(`pi21!*c)s9iY1{)&9%!*Z&mV_WxhGSJ$h|X}(V8 z&Zn9IyuQHp7>|*zxrUwK2ag36ZdQS>mzfb>8j9$#}%Jif+I;M}KbIdTYbhy4Jf%hZ8qG{&A`Au{V3} zx7~NLi}xM9dvhJAMI#~f=KB4F`Y_S6m!EAeiB!2ZONcM!TG_Aax%;O5H2Hn$REERj zFR$}rpPqf{zA~3H{o1sjE?$ijGA3=B{$cX;nEv1kU$gx~m)nc)G-%^A3EsSY23xee z-SYWw?(CfGIa$px@eqrO5NFZOIUhb0>;nxJpVD6cV|wQL9nnVKTQr~W{jxhzJLTc; zms3iNf4{l1eEplZ!MtLN4}^*EObF9H>t@{cIy^Ijby-H>sSgsLf9_GfSu1H2`7U?G z!N0}tjo+P`P}e?e9!fH;~QH^p__^lb-!*d=l$jME%j;wS7*vIC(~!I z&;E;#UZrA}YOj;XOrT?yCe!`+hB`v{io(q#-`Kb08pL>|psl!ux ziS64F>5VNbCd{x}e{8Pt)rg74#`<$jtybhl9(~t8cfS;T-<0c|7B;gDzjG|F9;=+Y z`2hQ=?Pbq5lm}WoGnSmgWU~8m_1wwRr@PnH)jhxMTef@e?ffPOHHouEynW$%h3VcR zuljBlf7=!G<%P#pR_6@+FAMgUT;9s$_~6ls9}Tm_WG`F)UN!evaCin=`hmmpF~9#O z_^*>tnA_Ye`}^O$?A^!r?#{il_3qPmciV4#J{@mV_$lSqty>DO-p~B~U9a=1@sEoe zL-Rh*{qF1^KIiD0$nXFE)$jiM_ejn3%Vy^vz5HGO`d{PnXQk(#9-sSD|H1Lkl3~;I zVozOK>RoI1-~E+jZ2kZBl5yw0%x_oWKdAiS_jxTwt8Yy2BII`6{rPKs1X~nnX;ni9 zOVH-@#XXl7PP@9uervb%_PpYHne#8RPiEfP-Kg~B%$d^(y?$MVURL@kp@j?ccxOLK znxSCr?tH=}>DgcV6*-C_C34v>*WX@#bMCoWGXruf+Wv~V@#vN{?fo(5-=|yI>o?Z^ z{&p_8eR1}z&(n0H|D3;}`tI8Sg_@;?{-1Bg?kV{8Z{n;aJrajL%6$I0<)&o+F8TEv zt%YY6fP?nt;U{=rFWPfej{mgEin_o=bdrk&{* zTkyhv|C>(8UhCAfW%v2RZbdimK7_t}ek<$Z5EWSnrhl4aU&b4mWKx#gjGeebg)XU(yT zPdQ$9FmbX-Lu1ge^T>q{{taNg^{qdbkma@yAI2wNGYuQ*#9Gr#)&2chy`tLtCZXzuRN@2&fF zclrM>sser~Ey4VrZGrQ?{@?k+zWMI*_MDv4?K9Xbu5F)JDtTpDenNe#sFvA>J3ptU zN9=DEuwBaKL5w`;Gd=F2~J zcPX?xh>bCyTu zSzLI3_heo4gYvS*gf)W8E(^3Z9t*xY<8itG-wbWNkCF>!EOWb;xa5bC|JkC=lBq#f z?c3RtH7q^ro`v?Mo>jZ`v~^`dtIURiI5F)Rf&FcrY5KJs${AuZI#^d$IvC+z3l$~BXi|U;*{!F%boqGoZ@E~{OgR^Cw~9u z52kfC$nV<5+`ntX(n-mAUtS)R-TPU9!{%ZB{+5Jg%T`qEf5COk^>YBzv@ZS?oHNfF zT~+n_Uixsh>J!;*pRWAQpS&PriAAM&WqRqG+B;`=>V6ej{_LVfx%5nB%OBqDn{V-L zDd%CjpS$?%J-6R`3-;#ea&t6O1v z{%Q+wusAm_G-yvwpWS)x#Dk|6#;%=}S9VzHTPX2t_%QP%pJ33e{Fw}#iCmTc^oOZZF6;#Re!Gbo{)e4^z6@vGHYtZcZZ8F{-?3Dc&f_$j}JEgF*><< zzVg9t{wuHTRtLU6sb=iw<^0a?+wDbv)|xstD9l`WGN%wSD1@jdXE_c{z z_Y0?%t+FpObWI6*613o*iR*grpTDm$eG@lX9JzJUkG@h9mAfr{Eu5cAPIRBrtX?{S zllx&*WO&`GR?eE$3nczNoE$S_wQJIfCvK->jJnkyoj&yW6Ni4PsEvb1r_ZH_C-!u8 zc538J3-0avY9()yu%hqEWGj)$&5a2qpQr2zzP2^Id;hL$i}lugS>T@=_?Q0-hg<|( z60=v*bHUmj6E@BM9AR_Q$2XCARj6jm)T!TU6K6j8pZ@;d<5{~tx&5zam|T*u4LZ%6S<0Mso|-TJtw6gQB;@Ijk;Obwe-X-F2}AB5L`^ek@@(t-sWeZZY}zw|9ca_icT@r0n*b zX20b-q#aMbIoEw)@$52B_ON$bzZ_LxImQ0?`{de*O#e8!IV|TmKHPfq4F8KSmL=z$ zxxYU@`~Ow$*2qUW+l!yvh)b{3Uya|BAeq;NF}EfdVrephm0yK_x;nbYx#>pAStVVm z4v(STm3bE!@0Ilzu0L+Vz9hd}?ugB039x5Z`>YzU=MCSBf{))vOxWWi?OS zn!jesiC+?DHqGf?;^=$u)YhDvPtLD0{5oTu{IjhG4!^y9O4+bf{L*C4g9&nlxz*KxL5i83auzE~Ai zHkDOi`UCf~_oUW6Sv_;sY_Car-G{5oC-t&aM(~`z&ic4+?_Om`sW}HewMK3FF81kQ znW$s(-OTEonlmP0Z?lxFb?0l>uVURPANcxEm5q9{$qm1_*6J=3i?#*F=1z&3?fIcI zsp8Ysd8I2(sm$mquF&7fw3gAwN_JVoZ1lYSch z^t8QcY2FbXb@-;1=;XyU3j5i6eeY+4rCcqpc+ECVtvTyg@tJt>yH6WsgOgQTk1B9V z+wew+$7Ha*yOUYV{iAR5W|c1&=gxmO!~U@KS(D}$e?(avB@BW>yr&!N%wkXXpW|X~ zHif}*%4?G=<*OboO-}oiwrk#-v#l{dggxBaKNbB-`uyRjZ6)_A)46ur-oM#q$u1pT z%5vPj z%MZ66d{@QUdj0JFUHyEi*N(CLNxjkY^UnFFjOW>REbi}BG`Zn+$Me};!+l#dc3s}o z{8^7jZ?DaAceaYnTA{wro)ziM33z1g#&q{eywbAFmGggXs}lPB!dK=(obC0_wYxSK zc6{sXnY<|#E3BG2wWwo{qY>)GEu9ej><$*F$*lZ&TUJ15KfDzxnsVM+fi z<@)6quS@=xZ9$GHZekN9uU+%}7{9U6R{PffMR#`0JaO)&Mvz6s#eEVxl63218bj@b zA60Hv*mqmUn_1{bva8ei&#!hj^6P$jV4Q3$f9}Pu$k!7lvh&Mrsk&47`59vp-*iX+ zWlFC+m3RA139J`vx*Te|D!V7uGUsMq(!Y&7PNG3uEH(GUSrpuya$@cEqcUGn>o7AlLGpq$#7q0y3`)=EL;g4(^6gZsfUtW3^#PT`l zo?qOiO>f<fga4DpSnd$h|vH<8%5)@tr!`w%%!+`z?0)x0r-7KKX6Bl{a#WzfC=v zQgkCjac}1Ih~3wVzLy@KvOc$er{t^^xl7WgbG*jtSoV^~I>{c>_TT<}@4Joswnu(*A4iwOy>qp%G}%C$s7GkV*E@2gaHoL=I=oHO_Sjn4gSn;xyc^X;hNkjjh|m%lzZ+1i%XRg^WcNA~FccGt({w$t|*NA)<| zy=wgCe(>GZhOca!)E+IjJ9*Q{HsQ&&qg*9>D}+J>SP~WfemKm3?p#wr_>vWAtjVWt zx-V4hSz)*>Z?)CcX5La0NruIof43TO`DYj;%51QVsL8pq{1I=$!AT+S`m3E;!&iNg zkj@Jz*>S99-nZ~y$%|&bshk;G{hA|6r>o;l&CR!;VZCFNzUBpk+@@LYBhI|M^J^zplLE&fh6!Fv zRa8|im#us0yZgwgz0=$yco<*xThzF93)*gVFV>juCUEt1;*Nu5vzOZ6@>sj^U~+3z z51Z~(_wJ3~CT&vSI5go>z?pSFM6NA;GHH9A@y&YEMx&+=3$673F1WgRpKi5be`6Q( ztyR{l&RhI__AuI{Xma>+Joq8)9kJ3|y*6<9>VWo22bB}Y&!_y{<*+1fgHEjTH)+j1 zdoH!4lxS?eq<(4ja|KahT&({^%OYENFw_3dEnnQ{$|rpasL_s{$K`ugNalMchx2n^9c*EF)_-2*_sZ45%@oF8zY`Xjfc_Ece$xQpk%`*0l+4w1Pl=W!-N zGotL_Ez4~scao<0o=^C1TzoUjn&Yf0QDIR4waY?Uej%Vf6>Am-U*lM;li?Jk1e2AK7BMw^&@JYRB zmwbEwyeCrx_cSkxm}a;+|9Zl~zPw-Cbhd34{k$Rk{=HC{3t@ZwAKI(@J`(fq=lS}s zv~A3Dc9ved87c8C$$i#wU7=Ll4K9|}eHyRd?G-TC{r3B{zBuo-^_y!h-Tw4ld1~dN zIkFlLj<^5(_xt_NbKy49b`y?RzO`7iMpn7(Ny@C*vn~JDf8JU9+iZL9cEi7?TNYky zSoqQXpR=f=i%ZMq&6-~hE%l!M!+z`Z36=NS&jhzUNf)}aByY#goev*9OWNuu@8?qc zLSpUp41wz}8`WMp9~XFDaz0|4Amh6`JDX?EmKN%4dG;)=?(6FKiIXQE7WTJE+`3ON z_sBlOX>T8FP2oI!Uf1OO`kTy)>`G(`{jA$G(vJ(KzLi)sNA~z9yYus!nwS{sex8oM zb@$!w_xqTS2wVWAdxI|*ocRkMALCsYzrSz){{5RbD|0j{K#+xFw)*?I*5x~jpYuue zwu#5rOuTX>gr`l>pzLu%>WZ}gZ*oOqjhh_LPJOF7qv=opU*qu8N$B4zJLC{uYW!}e_vtI zyEcQFT`MFf$lFi1+#l&XPjS{$>E>L%VqLJC9(VF3I102>&)n8ik9&`zRL5A_1I=3_uC)KyK~!iU0d1U z)+2H7^LhL87Zp&7z6 z4xP+Ccdn=4y!0}|;D`5=zhW_>Pt`|Ic#&X_a*yp&Ju`8eVCgS`9`_vYmoyLc=O z65(RqUH(4pc%N)VMMrrk>q1{=!`E`Y50~s(ZvA4VT~*uZtmxCViA&0U+j%|ZuK0hN zXIbCQ*;`tw?Y@olPx#v98nT!7oelWD zzW#6brAt9fOiXj;iaJWLy;^a`(ru~Htb+KJQ=i%`TV?oAR|aGxi?Kc~sz~)y?#H=I0x?=d3X)vs@M!-s>jj z5i&(z&f_D;j1%6coeQsLYQ}DBm}(jIx$PBGnEfoTz|)J;{JGZatUhp~J2~t8n}nx} zKY}9GI@_p1wP^O;PZ=2*4|c!bxBGOED2t;&Tf5sn%S~9qBCUi~PkWve&-*L$Wi`$x?66W85?X55^0jyu~T z?d#NNX7j$a4_h_Y-dl#&h@Ac1dzI@x~^3-{LBBTleI}SG7}T>t6bQMJ6>x~Z<4xi3WA42%Ef89l4}QCUFASs7!a<-g6Wg@b2^OPrr` z!uLtMu3G-Pq-QM0jPMZ7ZABH_xMEP0QbG zt`z~Z^UFkxr%jmi;QWmU(XXw~9xix&>Rj>V6$@8H@V{88yT;kl+4cG1+cwL-+1$)N z6_D$b{(UO1&%}ER_RT)^^~cA@e}0~?f9J}{)!aU7&ko-yCJkoKb+6UlF?v43(fjD} zohiqbZuq?F>+J00RKESZJ_?^#P5hSl?veH1Ej-og9EWTVe<&4O|IWbosuc4$ATKcO5*x^nSssXl99j$2RW2d;Uy8s=U1_sCvrtbZ<8j zx)6IMpnNY2@4FwG3-|45`^Cn4)v7@Lb^rFw#;+3Iy?b{e#jk4VhQk5#wB z#@jyb{`juP=kBq2dorHP-JYwVW^E|{U39iZz{ctKk6zhiZ`glp+WYpEfy|qOZvK7B zH?4pD)8TPid9uBk6&agW)Fp&zp0nXr~)h&td=dsOHqu;F+?k9khZ!{8$vQ zqhe;XnuFYlCmQiKyE6ZKJz03fSH89VOnZZdsLq?1y8J>9*}(@xO!3Ngz0}S%v<4@zhbG&;s+lWtSi>LX|-(Mo`$IVE6?dm@&Ay>GM|};xL?~ZzPRAw>}WQV`O^*^nK|S4%%?5K?a!Wwi#cTDJTLXi_3Vng zI4BSyB z;h)|vzklh+Tg`p@{ztm}U$4N?BwV?YV~TU|Ro*Q9u****&pcrfjnQ7VZ55O3f}WtV zN`Y_*hkXmr`1>oI;LbVzsHVf_-lepkMpG45&WWtgjQn?K)8sYw9Tf{M6q_Y`-?f=? zLEcdF#g4W6eyB|S^n8Zw>uwSLKf+=HNqbxpPw&*3$S!0W*BJ85`9g{4yHgy?+-CO6 z3oJgcJ`fb^o&U>bYLr3P+~sa^o-6Y2@2@_WwCe}wQ`xu-lc4G^ zLGw?!yogWYd*JA{>VtaL#IDCP%`b$;J({Z$QJSZyB`Kkwll1bL!zDj|IpO5G0yzqftz@F{s)@>X!B2+y_McRqYl zuX-G{$o$nxU7KV7ri5%uOWB~M)sS$$=G5w}3#+EOtnGgC=FaCUA(|_`@}wDXq7&Y6>$y7}s9845GfEAnu1wBa zbBuZIQGw7`GI8_68xMthFV&m!_4%*e%25(rv#wlA_P%Rtmyo^R?)Z`hwNhcBc-P+? zY)0iF^VGCTFFfUCT%wTOui%+7$xc38;t-qjnJw0FjV`S3ALneGHc@m1!R%6m%dQk{9z|8vzP-@Sd0=bG3%RqM4KQgb=qZ&;~wx=Z~6chA)7 z%Clke5vkXAc|@izKIauAEEVQIF?H|tOW|p&<u6nJoDV&y0CvpSiE*w zfxqs%M9zw6-u&&xrdb9@_niHv!=JT1|H0lT$t>bW7U#$+CB(9^FM8nRr4?<=Tv?xa zx^I(%nE2AgHEFt2S6WAyCVrSRp-JHmtA6~Ubj_a%n`hPc7P|{gIrFW(wZ|b zuRCX*f1}_p>wIZZpvOlCQPbH!H+MyrZxKrlVNg8iR`zrb$rR=r`4Uly+1?c8W#y#)tsoASydyyusZ0bzW>v+A5+(OU)!vsKP}H$ z`Ih&a`+UKCZkMLyEM|^~KJ+n3H8}XFvwu^;ddZ(I9Gj*d-?4`KA?MD<{G!PoyXKsj zn7a2)9jnLt`i=<`X4=gCBzb=A$%ISpuV3C_*E!sAQ6c$?u%g5zzCz23HaeT1eQu61 zYMHQbO6iTNE5Z*a?3tZx?o^RDh3D>a?aI8#>XP&Go-EW<+@Lo7(h>KL3Fe=+CqLhr zT5~OH-`V4=I-iOkKj2oWpL?RQNApZ~MN{DRWfMvl3*O#)|L&7$v##{R(w?X6`i<)3 zP6aOJ_^H_0bKZU842@l&vHCfunV(ju#;kdGs#L-9=!6N?UA@_L>}gbAII6$CCfvp3nViDz-dV@>|(m zHNGRi0(Pe}zgK&<&}weOs)sf=wYvkCy?;>tc!AAZ-A(s79(+H2@Jd8;*`3>a_FrtD z<-0QHZj95Fg&pfEHwZfa`KxoQ-RbSi+p`XBP@WjwuiH55l--+hb3@JY_;R10&vr}@ zIdH)xcQH$A`25Kt?^OLdW`65oXWTsH&Hc&eBj-*z(fX`n>f87C5}r7EG);QkuD@_@ zV&DCj`gKk_pS#2b&3i7f#pi9f=Ye;!OM2HXPI#BKX?y$Uf3E`Xs^>?FOLm>y5|}=- z{pq`?_nsT>_N%>5{PkY{>X%*nWOe#)cPcJmXYPK;@ysX2d*OSgdogeQ%g?KMJ~`;q z`SqytGv^0~ZvHTx7O-ravCDx4H7+g!Ep?Xzd;|S-Cv9B(P_MP%Jl$-J5 z=Z7VK%|g~2=={9Vp({C2>7dKpbzj#W?>oKi+wR%#Td)jGnuhJUq4K3cIBA*fQ$exj zO|Zy1f@o03IM zLcbO?yx?;_czfOEH&?5-{km8+>)%%I^7#8!-4)Cg1{u2&Y*Z0(u+ zMKc9sn>U_6T+GpAz_QiG;S(c+(38jMn`&Yeg7hP%tyBEnD-su%>11RzCGw^4?%EAY zwl6uzxg_<;M*Cvj&Xc|k=5^=w)2;@6PJSwvtiEW{tBRUAKPydLBP^7cs7r|>T?`SJg@ zjhaGritYUATlCvgViq0wwX8{jqp8``y?xQ54zG}wzG+NBA%R62*B{C*5qi6V(Xim~ z*;~@zws~G}ad~(7-^{9?!j{ZEQ|D%-S|6UwcO+o%A%WB@1z%QH^lkflaQ4aL+ah~) zJwGa#C^kIK*GXKeH}{L{zPZ!Xzt#JA2_D>}qkA*^Oy(}gQ0X(p zw(#`#toL8~Zdb4hiRw67+ij_}l5PF^{=$Qv^qB@H|IGNaWZs)O(noaHKFpcgbu!Ry z!u?B(I+GK$&OO}wglh|%!OM~vP1W^F~0-x#}|2?lPj@)_YjsWWl?LQqwKTXW|7FAk+#snP&SQg%|Z2g$FylhcX zpqRYgs~s~-Vz}6~qo!AV+Wmm%Tif2!>ARCJU5#9GIVhI(RGdjAThfZSM2=0;@tee= znU1cx`etTo^-g!gm3&KB-rsZ2oQd!bKkfqMz%p(7YAb zegD#jch7~ypuy=VA+Wdq=uPQw*OYan?7w>Y#ja(3wc^B`Gu5~AON@J79^k*K&C#TA zr+Nv>tj)){ciOCq_fNan@-IrVRo!HUK~huR?*lqtx1QT{wg1}XFRHbx^4ZxhGTOZO zA+Skl%CEi0S4?O%vOn0q=tt`wnVF6&LmGFxrnkGiYp?#7Htk;;=lgjRjJ30uRnA~I z>N0Jq`-0nZ4xMiNxMy0}$rB$>`8l&_aQJdKd_N`>_HLtL%rXUzLkWt(f~L%$9zQpF zZoc}YvCHO~0_UPN?9&kA{OX9giRW+D@MJ%l zQzjF5txwRp$ms0ZvvdCK|9NL$?d;pfZqN9adgw=Uqr7z86Z;TB7Z;b3`4bE>Vs@2u z{tvG1{JrO$^RHsbN%K7mChvOq>{(m)Y;HY0y>sUtH3)rOn7k!!v180~_E{_VWu50- z?o&ROd0gP@!p9xOw+z8^C)vjZp1!e|_Pz3(h{%lN(*K|8*JqaRe!uTGpFlnXs8$4p zpn=Gah`*r{k79E4V1cT@(R3kv5px7|{Jur;;L)W|-v)?_7ch#4Ure?L*|}quy>pb^ z<%j>SfjZ2vS&B(77{pi{cN~}0F8-1G#B3F>vvw|MnCISOr|jj5J9g~q;(MTY=IB*c z@$l>4&Ij-Lr_Iq+a9-f8i=)K8H?{kZmd6XQ9Ng%_zCnTGP{7rIGrJB{JlpbDC*kQP z{}p*Vx=pUKuIa9seR{9Y;&)DZ?_JbqeEt}r6=`|(#d{@bkXI6XjnD32Shr4Z$BtbO ztei~J+qA9=KI5wi4==u+Z+!OLxk(Bfhb~+XIJ3(=_(XX0zl$EFrH4WLr>qj*zxRf?wYzYGTE^r z+j|#fzkU5$@5u(eO{I7F^i~VDIQqKyfChh!R!$N>56ZQA?B|vXt+YN?ohe$If8%$X zk-crB!uq&3i@_uDd%|;)%8x3R$@d)GQf_=R{nf8o+@NWh4X2JCUHbNH;C8`vJ9-O} zTT)ou7IS3si?TI03QiK-(OYmhw^n&u86f2XE!7_JkNlf1MBkFqT6%EBo-bG8 zOaukqFt>3TDF@#ueZ+PvyVN8yCvVM}@MS->UH#d-8bX(^xzH7>#rAoe&+jQCU;(td5rsxt)PkP z<(pryh_Q975N4mY<9k8Rzdi3aTs>zT_Uyy2JzOIDqO?jE?wR@a;5pZ~r(d7fb&R~a zx%T?}=%)Q^{?0JFy`W*=8=jk*l~b~PD*ET2{q!aCN44b2vnLgdH_OZoJaj@`IAWq; zZ&2D(dle3+ev4;Tf8QTD`qz4v?ElVX?631;cD-w`v20txFT4D<)x`zRQvO8sg_|Zi z9h!CgQ%07FVyFMnk`KPm=AS-z+}k(q%Pqd=nUmf6i>jCc8RZyQ&Tt*I{mE9!_F-RL zr__0lu-@;C3I>W&?|*#0BBk^}uynG4M{ma41tM(Mj$HpYee-666?+8?ey{sxA2jp& zx7`}qw_Pl){pzQc_Ghlvyc67A9l><(*5^IDmrZK8YwaN&?SAmi)s%ex=YOv*o{)8Z z^4?`Up~uY3`r1$V=6{~&n5eopX_N5h!uai-%p2{lyt{c|cW31aKlKHhc5Ivo8fMQi z{(W7iX((%qcff_LS?Yy0?E=3;oKM$DeyCe|CTOrft44%Vm#iUeA2^Zp#_r z*N! zc=YPpr)%F``#G02k)gxtqFLelhZ4=N_8s=K&QWnlmc7S)KdpR<{-kV6*=e>?T{kZs zuC>)^e)#Ry0^Xx09{GD&Yj#iYE{n38DkWU8s-os4(=+uS zk1w7-F8EINkyY;O75uWt6-yVLnZEM)cfnoiQ~!PnxhE5UY*&iy=}$=;!@GaD=q84S z{ND5~OO-`+hP++Yg-a^I5AQ|oKPg%v@hUTmVRt82lW=cA85_&Nc|U$seERfhg4a@; z?{|u8emrbHcka@LkB`OUA3S>1rK8icWQoeZKhN!zCwk1VELN-k^H_fF+`WmZ4ySLe zc-XxB(a!~WHkr1twE(Gsa+_zEhyPY~bqvZg_+%*8zJzkvX^E!>ycW>=7mVtH8tCfg3ER$DV() z_@4QcliETZ-A4ESdO(N5d6*W3c$j6cWZy8ou7Ks!S=B32O@?zbl%A;CXZc@Q&_5|) zQQ(J)3CHhFom~)q|K+s%>l2JpXxr$lTcuVb`vP7GzyF|C9ACrS5Y>qxAA~ z1utjm`!Dx-5`K6GtLO_+1_xK?)cs3eCK<+Wjy@fId(v+=11B@4>w!j&LGoy>2dhqz(*|pBq{@DDRJ8#d>`MmS@CrJ;`==68zd-8KP=?3eb zG|x*aU&ExOzgaue_~s{`u%q7|7qU3MaJtgoXS^YGt$Q@vsip5E)=yvfz4zE|@oH&p zd&TVa)`iELKQhd|{C4I$qv=fs6WR)YI7z&^SMiwl)2B23UnF|n`eZDdrcW2QE_+i@ zbgs?LIa70cQu5B=`16fBEXw}>JfHiz?9GjXf4|>9-^MFFXU5@&$p=nHK_{qRX-0n2 zYPStNk;)+CbJTLr^q9tL3~F=vf;Uu7SBn)sQM-HZ%gi8i#gCy|^3{vopJpx!N>5GJ zuU}-oPPJauGIcwWMrv+791Da9JW>^D^?}_`Ml-J zyd2l28yFv*TM44m8le`RKy$uo2LlHgTg*DCD}O+LTsXUcoKb)WM8oEIq1 z+wE2G|7Yz9tM_(2e;$eNXK=Vyb3bDEXY0Gu0?HZ7X9S)6CU7mv`m*WPP3Bi81x8;ko70eOxo6%IHIp^- z7WrM)ir`|w<5MRUl-P2oNaROsH%wMY=gi<*}GUS@wt}&KeXm&_sF-_t;lhPVH}1yYxl=IF2YL2G_UGI^(?s`^Y8r6zxGYu&i>xLdll8y-@T(Q%|AWiZ%o^p=ie2- zPEh(hLFwcX-|@kWT!^6MHx2wq3ZRz#NY&?R|zEr*v7T{O68#O z=x<#yb~%4Fqnh?RdS9L~bB)Em$<5(G96P5uKPxNk|3BZaTz7vi$7}xedt6_9mD%K% z5#4rpor*#>yL{bDzd4HY-@G;7wI?!dUe?MM$fWgktu!4)%fyiBFDLly@-lfW_W9p* z>mRW_ZI5SrU)a7bM|RrpJ3@b?-^ky-vZ66^<(q#+?5B@k|8#JV%qtCA>lF!>0&N}?L zC?jf?SJ0HB$?kDpcce|PNJdR7jrwB5dhh$E44$=@E!La>&8^PRwLN+5OjfbYjZOaq z=kE7YwrXf~)YjGQy>#i)wx^RO2~E?Fe|JQNSALVbyldq@n>;Vo_Wb+D-oIWy^XjH` zOO~|s^zbZymTys*66p=^iC+kCpUh}5>q5Nt;twrs!frkd?iXDCTv4}-UdG;YXIDhy zxeKPY{Tn2huE-bu=n+${%Ibd>px3LAm2>>rvhC|zPQA6Zj9THwFL8CMNbH*9)obp& z3oiI}dHSNBz(uF^-Gv_av)i$p`LN(m3tMQ&|MUN~zs%WDXEARDKl?O`!EYuBSk&$?D0;oaW$`p^E~At!8SU&wO%@ScB%@uPGhm0bJ0JBI&G_zRuh|21Lm z?fpOAeR6+uFZ;>G>2ilwpWb))_3^`pnfdwq>%7l@GL}%3KFBe%k|QI$bN0{8#iegQ z%$#3shy2VdDZvD|( zGf>*`S#$q%7M^7bFEeUR-ol^wHdXFW)zuQ#3f9R}ev1_zlvDVuY7yob99nz*Z}hUL zSvtFqtV@4p^nNDKC$6nw|Np!?wcyl{9;$XR*AUPh4Dl*6i75W!ug= z81FFIo$#lf?Qrvc$7^>^Z2c84@UcNU?^0T~ZS2luqr%%~?=aq+__cJ|`tK8WJrMfw zzwO1Br$<=s{oQb)d9F{|x|ZG30`KqKvExA#_gRzeybs?tdEc%%m-H^)QNjk4MEvyA zt>13Qvkw2gYyDoc6-i2`FPWz7PxK3hj0%6`h&Z$9rR1CXG`;9v(CG1`En8mSUf(<| zf6G_JHL2T{XTLghEW~?t(;J!VNw=1+dtFtSvqYgdKY9|+b4vr3g~H3@m%mqJj=bi! zmF@D20F^eYEGbc!ZwVHT$&qsMBG;3(;=Ge?pJ92|B6H_pS7GBB|M@4X^K}x>d7UXu z2s`p%-mHX%o3oA`OqsXGL4w7FeS<;9+Q`kzbZ_t$e0>!fSNU{m-3*4f4AVo`r!StY z_VMuj|K~U!Oh3@GexH(|;l#VU%dM@e51(q7vNc>HGrqO-$K>NX!f$?dJ?-SiHqlIO zTJRA)MccB@so+7+TS|K~*J#bS=IgdZW06pV=+q0Pp$<&-8k=qu#c)+~>3q&suXSa~ zjCb9l-#^psSNPqht_326e+y&+<*nMl`P=WoHa-^zvqa0;$7WmCh}XTjzppS_{=@$V zKQC`<^V`1f+}n#T_w;?=?C;@c6za6x@%q^{f7t_i)AmR0d3t;0`tXu}T!$Vgg4%o= zind*HW6}I4`Fq2j;w@MCCYR;yF9kLD=HAR{W&$t6*VuRZeslPmr~KME%Pm)!ZsALm z<>$RR$LEg2vu_M_@}-k>Z~LCHpXRv2smn~g^*Z4wAK_jp^%U>EQ zHf~YU{&>DRH4>h_IV{pDd^9;ae`R_v+e$PRXv^=0dy_Hvfi*~_MtvzBLXs@Z+> zcDU2iS#xD%C;P-q(Vui}<+MdlJT89I4KC}`z4u;}#kg=TXkgBHzJG*CUFOawb3dln zt!Y}eI^81f+4(ge&z+lj!Rrj84v*Hlb?ba)nRE)P`+bQ2|22Nk|9`)8U;E9s^9>CZ z1qH$7WxkKUy}j*s=H&&mq$3=lQ)FIVUaqODtNQhd^-QeE4Feg%%^?iKv9&Qm@cB!Ookp0RBEr}M1f ztAFn5rH{on=TynI&!2gE&iy3?Ju6joWm}K$V0qTRUiJ6NRvq6zEz34AJejdPdsE81 zEKLF5XHi1Tk1Kz!l)cij)o1G!_e*ke(E{&MA6bD`OSdy(j?j9247jMEWYxfKn4HR| z%`Cp*sn6ZmSE0~*`KYH}2qod=&%H{JOU0UjWC1(G* zrb|Iryj11y>~yyHaO2t81#cfuUb;7FiIQrgWuvCZirOTY5UH2V6tcUNlXoSJi>Vq46M+IdGT-%2#EwR>~&Z`0;GZ%yOpTy9d} zaPq%%_V48cyRg*{Bjmq5kz1Jm-J&*sKi~19ed?916T>E+ZkMeq`xJB}#jJMgv;@h9 z_DYV|>x+JFP-?e-GtX^-xWZ>uBjx61(Va3n5vTuL&Hj0KVTMR7-zB4~mtNN9zFfYx z-$8S6>MOO+g=d`e_jlEwo^$G1=JZE_mrCdEO^)_`{>5a9?(V81c@GleT4r4RD3@Lt z`!?I=P~9(PY3G-n2g~Me(4j4|m1z&GS=KJFqzW zud+q&WUGeyC%2WkXDs-|y8p*f{Q%#H0~7P>w?x!V?smU4!#Gi9eaxSWXv-O`oVy80I=2rlayYHdcGiCX-NkG(&E<;Z@67${TIgig)z$Um>-u`%q9UVp z>(=eqvBRMLU(K;z>EqAm*VmPInopVdGsC8s>Hf1#u6Hkf-R$vT>P>5n6 z~4Q~W%WHP`>*`siSXwF~cW;$<^+ooV@`cFnO{>KS{&9G)3- zp5g3C54;oSm9xc=?bob}SqokrX4HS4SMoPbHz74iFSR!Fa%9}+-9KyI3SQ3yt$FW- zuJaD_-o0UOuzq}Q+`8EPGb|gsZ^m05V7$0{#r|KnC+t1GdD-@jJnVIRkM=nWv?yje zBp*4~x3I)y!u8DBhqraQv>mG73WwQEb8OxFt3csYjlkXVh84oBi3*mfd=KRJ`#s)y z)jaakbZMQ+C+=KvollOkx=Yk2+VTIZm}tpwfBbrX&+*;AY5^S5i3pX_f*FLs_O@a(S9{q`vn588Pg_fcM(F>A7MTkxlc z&z>C%kFPzt{eIo)!~FI<4ymcC$;bQlzTWaRHC@A;DWvFIlI%m{8mqhupCT8mUif9b zt4v3}Q{WV*4b!JJ9l0u_!Tx?hfZX(K&HveoHw&XIw$ECyYVMxhJ6SHj2w0S~;Elhk z%-r4l`xk`=PQ4i?{-X5y|E0T&{{5-+^7iKBF>gwv2*4Bl-K1aU(`~7i__4S>S zZ<_PY-}Jk0ZXds3V`-}JQuk~_w%@a_XM3Mm|7v~>@9|ChmT!rZHklf;Bf_I>5&Npk zAD^jjSZjDCa53AIiz>M}^+mS|_k5f$=({AQGlcD-zUyMC=a>KH?Y;2+`IcWi(UU&y z=$y3R<-;ATy>}EP$-g(zsIa%*Q9sYjJVWEoY=7SXhTyaxmo|Dv9-nIZTVwCKCm)|r zz4B+}gxF|xp)D8XZ~LBa+?{rS;c9!I#`AenvZq=M%6+b%-cj^X<^9@_jei4J_F4v8 z$9$Gv^|of;U13Oq>11D3Sfp`1V40!Nx(h*ZX-pylaUgX!ty7!AN z|Lxq&d$QU_yGr)-hU)n@{vWArSKx5&eOekCf8%_owQbv_s|RA1_rB1}DCGa-Tx8o` zb-#1lW3LjO;>TC*WX{cUEW6LR$WNr@-miDN-&bv!8*J6^I{(_|3*6F`KLzs-%>Jlv z-~7G1{;|CMq2}+clOq59|Jd+-`w~{$quZxh-@9|Lg>!ji(O3N=cWwMS%Vp$UXYMXJ zu3tBkecq|3ujSJp{ayREl>g525C8M}EBfc3{Bw1&m5D)5xUt8a@Fts5>HMm+4PSV9 z>n=B6oUi$C+Qr!mO7l0?Oxqb4RIb?m#++-#m6-+d(kK6{VQslx5p=5JEzf(q>KRg% z7TWjT?Kl@@rTA(M<4Jdan=cofbN7FDf3E*xrA8r88%m$yG;&gkEFG&}R@6WK6f6T2BZS{YZwb*V-qF4@$U_SACrybGlYs;lpB-!v_L$%T*zhqVXg z>m{%J-P$m_fyJQIbLID6o7b=&&$7>d#nBUeXx%EKEU8CB zP0@0?W5(;cpVpCkKN*=zKW*8wdzz@R$d%eTSzoRGAF6u&^wRw2TRuifnlt`9B)TT* zA@`97+jG=ik4gXeezX6^hDB_ZGq{2abKC!GH*DLWo?6{K-}6fif51G?N5=Xe|GkXp zet7N6m6r`04bQ|ad~_w=d&iwv(QD1wZ99FkId7GAgbFW6y6JT9@9L)M=TimVu73LI zSMHnt!Mwg66$>l3T|N9Iy*6Y0oKiM>6Zi5>+M8RV-9GSjDQaprHuz=U(8`Z~?*F>h zDLwbTwzKJ^6I)|eta8Zia46dNxct$?qxWhyeqMIfs3&Cm9sRXFZaa0mr8a#0`K@P% zA9s_&9c$43g`3e%Z?~!iTnk!h_&>JTvAb~3$vrk!B2!&wpS|^0I3j;POHAzT+PxVo z6pW2FJOBOq?a)2>*Lk<@UbA>5=bz58?B$}bzq|UZ?irsvem*7gm&uf)&#Kw7zjsVC zoce{O^=pND_9y$$$x?VR$L|6R4*YWeHG!5bFYp5ONFqfFiXg}Mn}gQw59d{=9k}wQcPyiQThTo__hvYQ5U~nSF*+ z#P3ZkcyjjLXA#>2`CQ+#Ya?bJ&NlwMl0CuH`#(#-$xH61D;{@OyfQCc`#dD{ZRt%n z>xB%jzq5UfeSNO{ujSW}{CCzlR|{*kn0C8F#|ZqIAKcbZ_h6>|r;E!BqJAgk$L--* zxY4FW{y?qGgWTlf@pgxo*{@T6#kk;~+Sl*49p%|d{5BoiAIe|3UcNbRf{|&~#g$t# zu10Oi+S~h3+~-P+$s=>yDHE>*@6+s;V%GJ){46;0L-L_70e4n+o$%8;@JgeLSF~nA z#SEz_J~y|{aKEE_?WTvjxxmjCZbd~#LY*!3zqi*jJ7`T+n(9?pSg2@exszXWTZYEt zH?9+GW*+$S@?JowL+4t-KxvaJG1*LaK7MHVwaIH1!__qhw(%t&oh)1_a3OYWYvDzo zSV3=ws4Y`fMa0Y-m)koQeb})1+{}A*zjNLC<<6d%s65d_WykK_j~_oi%*=0dKstX< zVR+{KT`L^r#5&@G8?SzL3Z8cO+TN*GPB+gm@N0Uu>*zVNb4%Y>&nUZIylpXf-~ZpZ zZ|m=$erS7Cwk<zP)o2+l6O)j_&G@ z{_pN)lK$o`+tg4TrU#K$#%yW-c+ z>zXg}fhQ@fimCDb^G&KdCrB}!xgERzOk<_>$_*OduN7B+IUmEYqcX5Rt4gEjmFE39 zCj;loPxRMv3_ip@(==DM=j(M<7F+pK9?81mLEB0t?%kUg9sc#l@fIa__spoiqZ^!K z*MFYNd&E*#)_Nj?=8JD>leR9O5w*5y#v9(8TeiLR(`RhIXu4{~9I0mctuY=q9X**P z)_>iTBOfoyY-U4jIB@n3+BCd zUSA<|Vf^&3%z^T^w4YB*{auk?%=z{4vQLk^>rAFT-)y>e(P3tTyVJM#{$|ORn!V!s zwS_yYX3la;$Wh?xW=MJc-0YRz^mqT0m1|~hx_Iw-_Wc8K%R!qL4|-TxO_|v6Zc*E= z*Qyx>$Nf3KJ~h2!p0VOuz?t|_%o09p1qp;UE|t2LF*TK_b#5TZMo?8`)bA2Uw?z=y3UggJSUrZvcEe$ z(94y-{ri>R+AloQf9D^YA-CaLpXs8X71FDtmz|FS&-lCDYEOA@vve|ZTZVW`wTFMQ zfNV*Z>Hl4-*X~@Kw%Yny^XonQ6XzyrtTlZ7?vqJCcmv}~e&)2zAMbEE+3fAS_0>$j zf2x5|sqpRdx(=Zk`{!*w?Iv4(IqL4tuj)xvh4&Lz_q`5y*JfpM{mL`>(%AL(!WYHF zTjp_da=yIUAAFBt+n2}Jqa#1;GheOeQZBz__j|`<_Q`T0x2~Nz@U87k`GYHEd#{x! zO}_5`=l`3#^&ywbn?C&he&?>r?vq?+@`|3%n6o^P|IMU1>7LI;az1LzyM5ug#@(pZ zd%4#re+_3{ZJ|}xwN31z)(eI*mhiP#{1zHJlyA9qv+H+8RsRXm?GNU%KeKDu{lVj< zW#{=kquVTMGat^bEqgD|DWJf~_;YDp-1Ca4&wuOe?)%&Q{Ppwa-#WX-{W>0x3oi40 zQ9NfXqpgt7y5)BK#ugfJAzx9xaJhggH%7n++Qy3&Sa;GS>i#DdVu6` z%nm1ur&>DZ|8TQ1Grw2+J+`Z>tL^{0&%Gwvd@>dv0t)R**UXs|{%Aw|iRX(8zaQ1j zyT0?|q7>Iu#!9spZ|)!4sQ)+d@ZIkHWv3T)Sbwp#_R5!@wvg{Pll=LoOM3oPd&hVN zeYSjO`sLxpZ;3CPmUH=PXh+Fu*{2z;FZ_})b+*CriWk}65;eZqFM6;m%rDSzPe|ms zdrN06SbA0E&Uf1t|9=S_{r%-facEnX+@4;$`MrA5NtMqc_}pA~{Qj!<|FizKO#y{d z=dpHsoa;CqUNnncBQh}3W1eT9^2P?+rMWThC!OFuVpWn~t<(O)QXqcIY#ZY(rMZto z+UMz}T6^?n9{>0^$f`=Vg8AX2Zmtu?s|#Lm-6&qwJ}oZuj`Zw>Dx#trQhg%rww$?i zqo{6;wUIyS$+G;eWXsX=+7# zS4f4||FoO^XX~;{@A*>8ZdbfKp}a-A$J;&Y)5hFokJH%au|}md*4_PKw#X$YKuAsQ zeaDr)2^AkAt8e_%PQ2y6pVRB}nkU5uw`Fx=A8a*EdTX9EYs32IhoXu(SDV$|y06Bs z?P4Fc=~}^}D+gE258Hg}!Q#IOip#&5C+?Wj_wR#cU0H?7j+C_z6ZW-Kp1ku;Sc{{7 za>j9mre4|XZ!BS#KYV{W<;&DJ%gPQF#kH1I7G03&ni%2zC39A1P(s?NOv}O|`FD=I zD?5#Gs*OZ$;}XW`#O zQLTAVv%FSS3Tho#IE~rv4zpd`Y_aCN|G~c8Q+~+%1SeW-=->PO?Up$!pXVKnoRlx4 z5NdpJ<4)thKi{bLPh@=fp8NRrIEUsqUG^ml>K8mb{O9%iM~k|wFWGVn?B3Y&{kR^Z z?2q;QwrQIu?VjdlCG@t&*=FbIsU}nXRK?w9f7>IsrO@*^r^++JMMy?t9v}Yi!~JebSpA{b>QYX{ch>Z6KfBaB;PKWD|7a}+1#{Mej+T6 z0?#yC+m^WO_!r9UE2ggUEWu;rqG|6gTzPS%Tgo}<#kV4p+K2Uj_iFjfIH_8!_WSO_ zGjX>c`&T&2t&BCi^g{M_+9X}SRPWS#J8YHQZ*|y7#7#`idMta;hWX*I^$OwI&fDfE zHC^)Y{kg*;ebe2<{ES0?|AfW8TKl+aHTz^sr~UaGCKv0=Jl!UI;;v(0qUKS{SqG-c z`+l*gJ+f>~VtDGe56*A;vePXKH*~TG>9lR-yfHiV&905oi=7s&UpA+!i*L@Pp4Riv zH>|g*{UQ|z7yKQB#F)E1xlFLhmEaaboK|Fu`vCyM$O%|G8SKA618Ry6SkCIIOSPT$$c|r@p7`RoSG>S!$P~{k%)w z-8#5Y|L@;ttEM(~o_%wDgZQ+-Ns_zfaer;Pk@4`g#rsQ6X6xnT(+{y2vTYAPbhYqc zh~~{Vy2U@;`$T4GPCdOyUys8$`JGzB-L*0mFBRTxuRGbUUzh*sVe z-+ypz#i{)@B}Za&t1mnMs`-A8Pm6u9 ze&M%v)(%t2j-!6@&enRLjUF+Cf7bmU=jOe2hxECi(&*Nm8to~0abLzrcO%v0o)KWXvreOc4yP zZSbA_W`S=~?9aSwGeR2pw_iTn{A%%@z&8h$8-ED8n0HM_bn?N8KTfmp%Ko*s`1({; zZ|m~O>0JTeGHY4xvuefaJa{O*oW;uWU7Wgta@bm)k{NRIu0KnySlV=8llbM0<)#Ow z&HgGO{i$;EE!%&))%29!Eo7Ha`Q^nIa7AI_w?fNkAGJ%}NtG9B8eYe5{b+x^*Y5V+ zcZdGR{x6vIDeO?*%Y*H+p3M2Wruyjd**AM@Lbz6(l{j=IHE^nA;~vhh(G~A@UrZ4z zSmx2XcVpj<_ciR_KRKPt*?n@}!@X1eHrwt`U&8m^Kk51ud4;Yy=VirrTh<@-4N6qZ z*DVj+y>3#Up`pu}_nvyv8qql_nMakL9C@6bv1HX@ukFIe-cAruDKP$;V{+Z`99mPupiV zML0g>)WfAuWwJeG(Wz(~Dr) zb$!yV$tsr0zbstiV+7L9-|=Di|8M?|9S_+}X4^k}zx~h84{-;C+kdw`dseTeXxsY! z?^CO3|Ld6F*MAhVkN)p&GXHl+{lC*nLjO4aX&l=4^VELzmlt@p&S{l=ZRjo;w%cs( z@>Q=l&RhBTSC+C-wf6U4;lVNcGb+~KQv5Y1r|4pgY?jo%XG=M?w06Esy|y&s$BLbknj>{3uIO3qd&5{M z6e%sfFsJmw$5dh2y?kdhjdrcS!D#Eb%ii%NPx+gV@vAi6)RrD-`Sjd3;@-N%hfzDS zKl(~6`|wrcao?wTyzbL>ObXe`+AaL3*yqT_p9O;FH2C|7B8coWlN|`jC46_`&lbry^(U z@_F9zi{(f8Bs^ku+*e*$w1hu9Q&n77=xw~+pDQ=dO#56UmL?H!EowuKeOG!ZlUB90 znEHea7v0^gJhkDXw)3qV=ea~Zn!h2ywsTMDiNI5h>%6bTO_=<3m*#{r%UMsWb|f7Q zs^Khc<9W+ez}KL2QKT@nuk#eoQoTR<5A$qJpUg6E%Z)Z`nOZ~!^2lu%U7-z{y#12;P*bAPkU`naz0r2t^diJhk5K96y*NyxOx9XrG?jx z`{4pCjsi~Irbiba=@VD|xGW;zgokfSwd{dOPdLM$H+{%m(sZWtFw^5#>w5%BAG%zh zrT_QcN2RT{|BO59Kigih=fAv;!zgfeW{q?pU##-+#jmX0GSv0X7%W`Fd$oS*hnqDm zS@vK37tJ-FyX3cdrli57?4X5_Nov~`O|0%qUE-Uz&g7U&-dxVFLZS-}OSO->FZ$Sib)>=<=I=zhiBsXB~d~M*729)o;1F$3C4u zAg{ap(c%3Mf@tC7e{p6Pj@q)btE&wtGw-W z<<3m$i{=e?P^^i^mE-FtmQ=ST_nmfco^WSt z)UQ?N14D1M>7<%gcl)$di&^d9%g>m9YyZs;KlgMkFMpR18l-bSW@pz@ZN6ryf?I{` zU*9kL8ppS#KCk{}drqN|{SSrq7J+7u!29O~>*5^+SR6TA_gPqO*t2NflcPlne6G>)0!A{97$kJLB8r zr05qW=ilt|7OLHv`y=R5XFp?!=8~7cGX4|^CHpXNN$$I5<+pFfdH&0vHCJum=l@HqBuOE<4Kk~}_h@f(w8fg!irs&lxMza+~#t6RPcm|89T_G8n>$7;=UV|FP` z+@)LR_U&)awB>)L)Grm^NI3JX_wD@4ci-Qi{-gc8*r$8D*5-Ivdw*Zx67S1tUt=|! z_n6GL_q#gx?w?$o`8)H)*Gm(3H!qTMSGXg1E>}Ncvf*srOjVP*t6qPzD{~CeHf#Ph z@pa^nveLOKvXph*-zeF+e-{QxJi68V_&k^R^pv&Fdbec#VoF?cTXoOBN6&9ee4%sW z?8!8Jey{S+Rbdz2tJ!R9`n_^`wY&aP>7D;y9K8MBwaBlkyv2PAyZdzUrJkMJuX9@6 z{cu=+vaGa(s*h|skMMG>S7q)$tj>upvJqrS{P*+R_WO0(ViEIMugk^E|Dp15VTw)+ zYsa2>nM(81{X;76-apmp8@B1yrVlbU4#9q$m1>qZ)@`hhwU*A8`LO@0^^J3#TcmiV zpN?F-?PAeUznZkJ`p&fn*YEt1q#5)xv;Ky9&yMBk{SUv_AIz`&Ed9^*`J9r7{-*-B zKUa6GU$e~Ol3ZHTj^*hSPrSaV_^I++$DVnz{K4{E7o~U2cf51iI9KmMgwBcE5pbuOHvvyD@j`L{484s@s%* zMkjAaosL7j`PQ3HzdV(B+x5pj75?A12Yo!$exj>y zQg+*J*48VlxqlX>akF2)uek4xK=c`_kZtF0&cAzX)h_45-bve^PYIr+*?TTOo45Mf zeZ`fZG@_@SexafFh)oNt|U-U7*|HzP2EFyJlxN z`>x}=M9x@gZ%wx<V~Ige|ac{w@Tp9<+RJLlUVwxjhcoe%FV znQ-d%{#B3D=Qi4#n|+#c*6H+L55=b^K0GX9yT|;x{Glw1iu}CaZzI;-_^9}hImA=D zb9?O5Nk(!l$x%q1vZk^ED%r~{^qIc5q zAJdQ2W#_(_a{7wfnbW2xLi4|TDcAeV^gtz&fShOXX3&1OCIelS*|PT^rKB|LRk4{Y;a#7&EU`3IuJ-5C zH-Gkt&orAUACk5(oIyuvv(fBTf7x%uykXwj7@E5Kxc+1{ctF`G*+gVpPh4x~QuAS& z)UMPuhF62@j~<)V`|wbf$2r4-pKoQ~lurwsHu>Jaw}Rbo&gB2Kb^WHL8n#`3cRgJo5&0u@8ON=EE{cb*M;$)-$4{pDL9x}xnNBW( zXSXiy^#-+!THGhi0BtR-XgL`!60q&i|NoWoDm`{9qTTL2O?}eJmF|&#U;L%#kW|UkTC&8m17w=*F{5>1Q*)r`-2SnU(U_CvY|NP5LkPf<5b!`#<>$DRK{- zo_Va;@~P<3Dd%|4$s3zD^~g5V``@>fHA-nTnelD!Y5#AoewjP!*3@J&+V_5_KILou zh3DC3Ms@0F&j0>;dhe`&scTFZ`@boF5W8t!?exv<(~qpPNSN--2!YOj1alw}>65czc6a3R%w75i7xeB< zzx6?N>4H!nnJ7zP~CW3XQ!>C;I!v`?`~Z@ zsv54o;LZCddDGcf{?DG3RsH8V7s&JvCy;i1Lbhxg7`DoN)-KTdZF-LXM2BzW*?UHp zZyfEH&!08*jn?MiuVsw0zyF?~>!-FkM|G3oa@Qy!>xz?aAD>>le@jhf%hR2U_mqVc zW=^^}sd)0_o40r9g-_lR)BK5Z))R5i0i(woXE4;A*WR|T_8TvcjM2_S3(?33N4~Be*2~xe$)#vp2B6ty{&Lf;NfS| zPnWz_<5Pr%PTiKTa+-C!Wn+_Qr7jvk#L4y+hjL zg{r?yy1n@D$?0MR54#sc81;R++;bpaWY>q&#r;v&th=7>P(Iq))l%!eQ^07C%w=|Y zrET0|a??`QK0F&EzB})YTH-W$gBho@xtkQuh;3x~A~X5c`A@qHXY=aU_0?u*iXNBc zlh}N7LMi+ClDM1;Zo#g+U+3RUtK;W))zK=wv!}``VAHh^htp5LU^;K&W&>_p;KPIR0>!{ z5sBQtt~fs4l@q7`g69vPaLnnK{q=7)F3P@KRnF05;OhMJhqP*Z|CF^Cr#$|=Va}Z5 zi_?~Gn=P_bcHvU_1J31#O`~!WA64&aI2L$ZWf%9hPsbj((l87`yCY zw2A+6t@z(9qptXiXYQD?y^UBU{nFFu!zFF2v`>E%eomUMnO7yr(4WetZ<74TV|R?Z z)PV$R^?7TL73`d3>dn;7ZoSh^t!4esVyj=iOOEl>DqXx@z;3>P&+cLwySI2nZg0fz z-Wf@1JHqO1L2vzZKho)~(Nk!g8%v?%Ems zGs&iN-Xy6t-rPSIcpTn)ooi=Cq~}TP&kuMNZu|N@z3)`Jr-k3hBq8@#XT)WCiA#uPA`9C%+6C5G%?JP-@%>rcKn`W=F^;W4AP1pJjmp; znR}KkSx!AGYG-7?0kvc^=}V_~W=<}s4LiY>Y^I*)-Qe`vrgg3mtJLca%<^9TU-FCZ4@1r@J3_RD}Hr+G*S^e!#UrW<7H+n8U<>^1=>Bkio z%2Uq%OSTk|m04x~$>O5HmS4^7=em^lB%VoguF~B9=F?fnJ{JMs%2yeW?|hT0`eki7 zecSxDIDOfj)*4d5&s|O@u3V<^;rE`8QL=Lnf1M0zk=}|w{`P)pam7|X|KFy5EcX`h zelJ_^&ot9YOj1bCv(3%6EPTUGMa$hAwR>iqwF)^AC>ge?FyF{)Id}ioS>~5kz2vU( ze_6)4e*X{4vbL~G7A{A#S@(R*;hTNQJ7Y`Vo#_id9g$x);rq4RROeffyV#YVzI=Z8 zVSIe~v}M2l?NH6;wfE6pxNX6O`}ZooafG+8vo6tRdGz6bwDj#XAyA=oVNq_gZOwd( znE$pVH#Yvs6|KKKT5?`jr{j2gq)y#CXF{Jz#aH^grC*|slMZ(8!|`D*X~z0Ln| zmtlYL+s}_{?*wGZK3bvqb$j%Dy(cjNzYRiWoX7>Wa}-VZb8l~F>wQ?2QJt&J&Qw1? z$Ue8{Lv3Edg@a%JIP9HmwyR&V%Or5VsnaZ(>*x5c^B+G~@_4RSneCDZ$()XVZ*}f- zHc1w2Qs8ht!t%jJ(ff+BbjIVFqc2o7YvXHAoV;Xq$NTz+=H8DL)>4+CcRG(po$uT} z`$w9ikoL7>k6&*n$oenacIpp%e5FUk+#V_Q?_Jq1T+VwRKl{&o`IfXI?qG?k6)$F| z@&DR-az)|gz$nLN<9S=2Z%xR5Jh@9w$(Ofc-Q1Ki))I{R&B%VROO$BkO9A$D`yx#ez8(= z|CyBv9G}lD;Qn1Z`+xsg(K3dUcWXNR`NE4o7MP0r-#ubka-ghNcxP_}`{T%sW|FDl z!l6GMk2m{-$oc1eIOXoY+2zlz6tPFk7B9JXe`dz|hap=@c}PnNGN8D^=Jffx&||v}x~)3LGEIHYeUGP-`uef|X3W29 z>r#}@J2hP9!u?Y}--ZXi(|*1}a$3OCFvLS#dWV>&_{u%~>S(VbR_4mi>Q^XLT9hHF=YNgfH>)5q5(I zN@ceN?RIQzW{I9*Q@SN+>t4a9`-JRXt$F6Y`uC0_4e9D^FYVQs+nA_P15xFe^*W|r(m|zuK44f zHQcrme{xUW6SKQj(s!;{qhz%80g|skjq<>u>Fce{!>SnJk%UdilCP z_x0y&HOyr-tG^dM3s0}CUOTz%kM}>jXCke>lOKzPvfsWqeg3n>@v^CNZ?%?hd)>a` zn2=IUyT)PeCIucr;RByrj5KHKo=)9iZ+rafy#?zQ>CL^f$?2Zv>9nu=awa`_@cOTO zN&L>{$q{F!vOba3PkDb#Wzv;<57nnn>f*XlWHDd&G~>y}z45Mxii8UpvV_mCxxmB! z>6rLiwf6;b(vum!9)&G%hBw&!1{cb%yuR{Jck@4DYiZD$yr8DRlW|<-e7id4#R>?^5u9Sd!Vw3p36h*=Am( zKWqDB73=wX1h%jjJXo3MD3CS}G$~rY_5T0oNBIx)D}3FS`18u6|HVhGV&v?1TsvWY z!ozCcY+cvNC+k9;!i8nmeGCL8<8LoR4sT@o#P@u2;SN2}jIedwlr<}K6y8@b?mU0K ze|u1~Yw$d`+?=18HNA&>?@gSMm$Rxa6PJiPbxw*Q~u)RuGMbaNd0ycsN; zUip2#7R5X7nw!;?>=UOhD1>KJy!)Dxk@xW6jOxR8Umt3poX^&i^44V0A=mibx$o3f zl6#)~{i_(J`L5vK(d#$9Bw2nHb1#|ewsl^*P-ufp?X#*!xw<8{IOeO{Ipn5HjcoUF zY_Zwf75Y~zQqt>y4*AuS|YArDo6UFREuOf3sxv z>T4;yFJR1ndzH_>teyMwefB?z$F?^(kgol&9X#&^O{&Z0rEpth_yWQ);Go)3*IE^Dr&oDlii$sip%N2oqgMCwc8sY^F{Rrk~I;;;8S zQci8Y9D-(XZ~cAVB$*~0fBU6Lb85=h&~@h9FY9eT++-4_!|0#;;@k86|IXciKjrwD z>Ff-uHi@@RIcLf)idn=`vx9xl!^3~-N_Hn-spwERqi{0n@a&y>Wp{7*9@5$N`T46| zhmtjpb=>@-cs*KHC+D5pPBUrV2Q%90qK?>o-%ebEA*>>KNfgt z*@g$<1+(_}>8~hNzMsn1^4i>e&9bKbheHl=H+^ss7C!K~Q*Z8`-d>qCZzb!ZUOD<& zK3~7XQ%mQ`+NXM1*F!Hc{@LiqS@C08Jk#9&D{q=TSDF`R!2FWSM9GB`jdHy-_l2Q97V1=n+~r3d%Bus-(-^)2bKr;?s<|L67r%r z?9j5+cY0qQo;b-lsOQZ7_eMXyZ`iWqBj1!wcO^vDJmc#-!;@xd&EnWG?U+Z=u@L6} ziuG&0@rOxrai1{xxqMm8i3@+e37N~O#R{H!<`I%r|M#OpK>Zni;VH{6dt|MDctlb@ zT5sy)H4`7N(0t(Q{UBjK^ZQ9(-|U{l3myiW(q+unB|P=Sq)(Om>m(n_-7nm_{jpC> z^UVd0p&=cWcX#iZu77y?j_PakjpR-jzSa4}ma;AA%7ylP{SzNt zuQ$q+JbV+L81O?rf_tj^q^)TsGYl%LYyvyiU;IC9w@ktX@B0lrXH~X!2dtX@e(UoOj~^HOTc6eOKhrY%*+J<) zhaS7MDh8iE%H11Ne#-OqGx?<Ce`lXD*X-DJD|1!ek^Rqq z@Bh4ieQcYQ`LsV?dU86?_x}BA62rZ5UWP%d%u<;byIkJ3e*5TM)bjDTm9E!;sHl@i z4?msrzi7$r*PzKR-}gbGcRQ^&+;Q2le92eKn@{At-84%JHkR;x+jn)Q!OH3t>oblU za!gt*?VZWJZ_1Yq`Coje)p%O17TZ#=@0RPO*KL9CZ7cU>Eolz9_b*h|{x#2^of{`E z&k>7y=YReytK*D%v30)BHESZyUn%^%SxhJ0uXxoG;rGsVm5X`;%-Yq{6Wcgd^K|mB zUx)~HZceS!n;^Z?Mz&bZsAk8U$*~I73+y+%?|*W*c)#pvQENMung;X{Kf5WKFOPh` z7Fd6Ff6gZG2#P_~ec9AS6K~v$F1f*QRO!s^M<2gcU7Yn*aNp@S9am3om}lwUe00Ce z)|AbcuDnq*3+(lp+puZ>kl`x@J)e0! zdv_mtx>6_Al&YKIfZWyyyxa_oT?FFY0GU{O{sawW~Q{u;!{V`ynO5O9dnA?{euG&*&lhv>hMb+(~c_?kV`Gn zwcqhjUi;SzH@RQW_$}ono(Hc#n|ys=MTp_Yl&McAn&rzs5tU0_HRWo?ZmFH#QYXFL z?5c0nMJ=&2Z#aMRoc{WoA9!}XShH@q``jMQL$-SJSDcr6_gi(X%Du9wuiwf!JaQ~n zKNlHiWf`;I^47^W?Y#ONhbFuGFq}6xR5KHkWXfOiPw{`|bG|Uuqo2-BT^+IOk--Ya z<+A4|>D;rLb}E=TH)36h!=LF-LGQzb<+d=v8|scZ=(t;~F#0OgVe(YS#aM z(|YqvI+gdjy*=ktbUo|kYCHGPOzBNiuD;PV>ebnA(FUKdYx@?tZk|Z@i9Z(n$=4&l z)!5HItL?o}C*pj6U%yRkZ_4t-D{&JmuaxXVyUrMlYPw5_gv>o(z=uS}1y z`CZN# zR?3I!=OjP>cK+isiGau7>_zvO^v7n$UfK6UN_t=X0o7|0b{7j4o%Jf4s(Uyx>Ofku zS#{T1otSm9Uqv?FnQ(Mpt=77<{HMKJY`RvZF3I&d6j(KDS^JIi8CEBJEk&kFZw%ja zx-8jjcD#kRzn5J8+bfM~Gj%NsO;Yodi=!;RKarYp@awdgzQw-;X7^ZI++3r&Ima}r z!JyLU+d7{4%TM13-6@st$~e3CcE$UyX}a?1zV8@yL5`XE;^zKl-ea;MrK+2^>!hAj zzXMvP?SB98x6Y?+7yf=fVvyMUTJPtiuX}>i)a10c+vgtMX)*Jx{n^73FaDes4xgmL z{)Fw4PveBdTl4G9E=!tDyl18}Kk83?*7{42rl@(W?)f3|;>VWO{0o~F<+RtUZv6S{ zZ;N`@<6Dv6?BB|pTa_)F{or_@?c3`X6XzXfOE$~T`9J4f-TzY-_BGq!BLm7lHYZEf zE(N7n+={JObM;MRJ@-^U))fK#|C-FN*Y?%Ec;YC&onH(*o_AjE;i~^<1^<7&08GZxup z-zd;NsoS;u?bh6!s%;J3Yd5_(f-lyZRFj{wB)wx8y(Z2KSximSZn$wvR=6MqF~wD-o?w8ObFgYMZ4Dur}e@TA!q zEl;jEy}jW0p=E{BrXL3NommpoI%R`cz!NQSa?yj*D#x|TW>*YnOULKyR`+aGmS1)G zgYOo@&Y08uO!*9#^B+I^S8f?N>A=S`o+>_y?T+tTjvrbY_(oX^HH-Tu>`!M0=I$@a*_-Xou?L)GXCaOKR?|k9Ui?@O;u%wO`yvUU;0n^2yWH z{GHE)hqJGpyjhS5T1d(A@T1bS1~Iq;!HkY3txVOA+g8Wqe`gTlpJiRhHqF1!+f#kt z_P$@)d@2XNUNzN=dvVNsCij=}%ORKBbqWQuN|{dm^LtlTIpNp-Wh=L_zjxNVDx=r? z2s{brSh1(W9CQ^F*mUUJ$fAXjo_T@l>T$P^m9|Rl)#O{6^yJ1mBkRz7@eP&x`ENc- zF*+TlG+X1`0l5S785ErN*4S2e_nb(!$vL_6`~xdS{te-uJ8% ze|{HT)0z32g|o@v?h&C2hu&YVu`!P|BIK!yo3aeRKb- z<=wvr)h#n(rk{PyI(PB(eUidu!M_Cc>e8ew(>F{$mHv5025*f~#^R?R1n*UVr{U{% z>}}h2^WVNE1s`U9-N>6c26BszGAdk*oN$;enX%XG|NY;5&o>^F`0~D9so89nR@MrB zJ!h8vg-^Ha=UMwBORwmZ+uvP6w|*TAEbdrzKBl4N@8-*I>aWe;X1*yaqnu~1{=*$* z)0ofyy1b|Uy6+qQohGxvvpAboee4VDB(6@c6WN&&WxlOe96Y1Iez0y~gL&E3$1n4j zE3Iu<{awAf*HS9E;z_-OYF6?evyAZlpYh#y5RP=`{4e?@HKM#XDvHC8?r8YUOoGX$+$?@{>P#@SFI+<+>JSJf9m8T zmUC02|9aoO@h;&d)B3f7+4}{9eO7D`>RX>zRQP}QoF!Ar<0OBZ&2RtK{Jv;kx$17c z_s2FIa6P`#YgOFpg+IDwzW9HdoZ9r^MBu{sRc(CMZ_7GEdYk*oe(ywV`|` zBeUnlY3a>nI#+wYs7O}46rCH9mc3>{QI&}MiOuPKi`iG-X|X)!9KV_0IZ@`$`o}IC zn?p;lt}*+OVISjh^|so*{|8!5U2_R7I>^HJlgcT!&LgB&-IAXE#JFV*s~^H>)?D~`E+6K@4Q#jr?X9C`Fi2otvtP% z-kK*bKFIt(XH}DT$&FeK;mbE7woTol`ssj?sM)08J0_;z9>yjpd|uwV#;|8yj4EW3 z9=xz_SL~s4LCQzt_w-aXS;$;JSM(@Bn14ycqxsh#r2d(-6ucavw)fzZXL*}t=Ua8k zPg(ld?z7_loKoe>%QiiIe0Rx926yS_+wLo_ei<6|@0G^(xeo96y12YG=PiC3@N^c- znf0%C#(Xr*>&alKb{2m3eEX-MeA(;KwlmJG3Q)YLb2j1nM!9c${#xFZyzRkZ_aaKIFY`uxK?-PHV~7w7L+xe71rHA?cTeR;r4;^CwIEB~*bOL=Cy&raS{QUpqEbXNsrqv58&DY1@KK1ce$&|#$vub9mChfIY zl`CAuqkgMUBvAgGPN2NquOloU<^(04=s8}yOxE4cY8GTC>%tQ#37)F!9v&KApww9H{l|o*Un_EsqV`&j(M{6wR%- zwe|A|=&#ZHy6s_)VFJ%Dp4MsULJQYkWlds=n6YGP^}qg|euwsaHE&zf&h@`I`)|wh z6XNQdCz#DSTNbm+?2Sg}^{SUIUmU!vzxX!isVOY=mPxyhb>4B?7nzW7G)nZEwr|MO z*FOsr6*k#l`FN?&xc0ZM#a7Vd%%6uXCkyW^dbL3GFnhYDUrFKTt;`{FJ)iz%?w)Wz zf61qw>C^S(zUFYIV|E#a)?RY3=$`uIy_6 z%oXxm3fC`_PCX@cr6FHnLe1g!r`%sO*sBT-?vX1IZE^2h!LK~K*D6pz&impQ=HI(l zo?p8p|EpqG{KW>-GtVd9(n!{`e!0)YrRV=fQ^=%-!RvsVcIp3bl*J`mswN+o_!Vur z|F71mMMZW-hwnBy`GrdSEKFw@PLzUIB%tflNj(l*b)!+yg4y~X0A@%N# zkM}Z8U;P&?BAer0zo+NX)1oS^zJely7ooEk6sLY)tz6%}vZvI2mGQFOG4fOSByC0A zEzKlca}qE8_-7Y>rSy9Jzst%Zb6+~|+&1A+ZTE!DOivH+Wwpooyv|>$lyldz)y#Xz zedQlZ43aHWXI|W^rTFSF$o_^K%oXQW23_jhe)rHThLx|yY+sp7Dt(ZNIo$pIueH$0 zD<{`P@8+1Q#Md0zf9B-@+mqSt-G?t1PPV%%wdsu16E5DiGa^?Ktt^eU3Vtr)EpnCd z%>Jse^>l=>NFHd>PosXxg`J8we?DnFQ0J_D|LCIIr>xokh)yZ_ucpiFc1BH9YV*t+ z-`w80MiqrDbXqx~p#SdU!hl2S;fm6e(>F;-?yGzM=XS7{fSmCD|Htc7Hf$AbxN|4w z-xvS?Q{LCUuio?Vm^8n5VUOHmsXejrm#^RHEpO}$wXE84-zz>`-OnNWniBh)>ry}2 zBt4IpZ(gd=e`l-Li>yV5O+{u-YI&;mh~bLbyvT)urlbbmqs>07bI@He zK~eh4rv=v=)zuo;?7F;X>$UrZ9sAyWd62=LyGUr|cG>>CzzZ&WPw&_N^8I`8)x@OJ zcJ;E0jFxWt@GrFP=Tz>M_uYbzhRX4rT4rC*;wYe|X>C3Gea&-g4G}K0oErw$PYSkF zrXQ+%u%P?)Z|{vOK3BYUICNq`>WcHqTLX{H2#T)~`e<)<#Vw52caK}fbJowW#aQ$=r-UJQarQ5#Kl1NvB{w`f?pRZxQOLSioLD8IBoUe#}_26LJS)VUp(ko zq|>atRQFQE_mEdTD?crNeAU6~QAd0>m-RC{t(X}m_x1~?-hH~`@KJ89ZC6ASw#<24 z)loZH`T5~1$Nn!qwO`|PS>msbUms3_76fD)x}90Zzw_R!gv4U=Q(JFlFtnfT_E|0| zSrDdiQU60?>7f@<0s$uyFZ?ce$!BzWW`0Y0RRQ8XC4nAC&yQ-x2mrR@{DQ>mSk^i2f<;G;~tX7$sPd@JF6)QP& z{k`)x7frQlmP9t5d%KS}_wf9?`}W!5($_y8y#JT?!i z&6FQe*%mYJcP0ze_^I0kKbWC6w{~h?mcMLjy4{QG`%X<;R5Io9BaYZ|uea%y#ns&B z80AggFYx^IXmPLYIhihdKX+%Dm0wGj@a@W2Z{ZdCPq*&RN3TaEFQ15i4cJ)Ae*NMn zpSF1srFVMvd{pFU5?H(ae%)n6`W{o%wD=o-)OSNO+1=AUcicJ9m0SK9sM3>j^nhe#N0joEYIMCtN5 zTXO#iMXU^dlwI(e`I{?goU>Z=Heg5H?l8c_U@Tj9ezi_U(J(U!F_2MlO1Fm7;loikqKzKSNq?-Lk27Nwh5=#GHLSij38WYl*&B#WIQjVG+Ulw2?i8Ifm#9?Vppv-a zyz;idWd~h8`Y-)&FYhwi=D5uHyQk1q#Hi< zRYbwB;|CU3K1thkd{_GBKi`)h7A!ksd#9Xxy4&@w&VkEf`?L&p=w5G$>&!d%>fnab z>LuHmT2=~ueK^@&htZaQMNrt{w^>j0GF9{?f1XMB&ARovj7P=g^0_wf`beF@%F zgx<%#@wCf%sXA&`-Az!hswm}0f#vgWnGrh^d0&f1uiT$>_;aYT?2=F4*1!4@nf~B> zZ?8@2<_ku7kv#l;x91mU)mz`1yMB^ESwZ|{pJ_K;o$Gktez*1bYj(>^YvYDVrQSz( zCo~xdi}>63e!Hgo&tdh_Z}ormAJzZOHex=0>((s|ef|0sKazbvHZBjGdSrHz<3d$a z!-4`&qgxJ^3u0%V3;wYIw3jGdH{#r!XCa>I_a3k-i55*MTJTzEtN5)#MW3ksr{m{) z+Sz=+y)kCvW9LKc9-Ferb}|JTKSDXXsw$p5h|Jspu;l(19C}=%F@1`xD)TT_kzWm z(wQloW>o_3&rT>kGDkwyk~K@ktv5qN`l#C#4I$x!Ats`0`wiJ9cjcNMGkav&I7fAt ziRhoD7ed?QR(QP2KUQo#c`~EbJeO_vsukIe9MKUi+a}uEplKS7vp+$6Si4RHBwnJnxm` zk+|bu@Ohu~$Qot#c`*lPO_hJxX}oap$?qa>&xEdteevi@u>OW08+FcYYUnWyesO*Q zOV`=H@>O!7tGj=R*$VFZ_EzutRnY>opR8i;>l5zt3QM+f%7!XUS>?Rv&yB1y`Fy2^ zFU*2`A8+q#6G+NAaq?v1w>LLs=ck{Wb8=tpZ?}!EPIvt8MEJ8_TmOGAvs)L~<`jS3f%)D4{%v(ztS^+#+g07?Xg_^xb=u=I=N}z?VG?(8tC6MM zqW7;4HtHxJS;J}F+xCC$ z#mG4;Lre3PuivlhAbr*O=C{DE=EmgR5`04Z@;1Wze!W_~-hHN3vAsVh zKWE&uzJ2za=M$BG|GKv?-|Owi*s?IO`dhoFw>JdTB+LG(*WY{O;$rveGrxngH@@9Qi$K(?e|BXA|HNp%kmx`%Vo{V9}C`0sIVwHcFAyUi0q@OKBBMfBMqO$EqVFA zE^LkKAA`e3Z~0&A-MPPXOYhR;sx2NiGSPq5fByC9YIywD?7c>88w8v>4A*bnI`!;q z^Wx{{Wc}vbo!$KPYfH?I1KS(s9A)l;tp!k5_jz#p|MUMJ_SXLt-?#Mg$s1x$9E!)b z?*I37{hm*!v~T2?+5P$8Z1?|9v0m(_(i_Q1NjJ9V%bz@XvZbx9=+l#v7jxGLIB^*I zsK{{{x^1~u_^4G#seG-{!3PgEH&3ldzE;Y!RkcMzrn8;jOp{T!MIh-+^^1k=9sT{! zANSiodv0!J4r!&UqJ$yu*I1KYVZA6lKE=X+D zX_~Y}JmSxdw6193$o;2%PGoHN?kIG6^sw1CkAYk9h{e)~?i&(&=iC*KbvBBho|-4J z!NjV!*R{`aeYS?r9E*uho}{FmpLce$zun2L+1FR(XC(YQJNt%`QpNvwv1yF=&z@&* ze?0HCuoH*kJN3Vv>+kX6B#A z_WzW-#dMP%9qClQP^H)+kUV#Hj&%3p%O^C8`^$ox)IJ7uY;@{1OqH$NZ+Dj6)b-Dk zy(WvC-FN#cJLh^mKmIi6UnGw{JT#N11eJD}W z-g~`u$^V+QW~cb4CC<-Mtekjo`@DY~WwQ@IxwO>#%v|f~UteF}T=_XIDmr>5gAO-; zx>K<5sr>rx=kfoidg|{nu;K*;=b4-sk2@zM({-Zj=emATcpO;0CRF$2{95n4e_Vs0lZ_a5v<5ud3wBTO5cGCHC`wvT>t-5z_DbK3)<`#N(w?FZj zODk3UsTREQe@&0_?`J}rwX<&AR{R*y@h_m@?xzKF#q1vOcXAk(w5^jjn+NizC+Cab zGZ#-e+rQ5*^!17SsEuMDn_K=~xto1^@eMb{7XOGpn{{qab$z#fn_;@pmG`=fR_&~w znbvx2kxiYz++&a2H{aM>B-*_=yztPfl5^#cq^gC#1@Q;$oj%n+_DJLGU5l8^>}DN% z^ui?0Pj}I(ey&shZkN=~IQ!^DNzt|~`un@?rsrrVZ}3k$GvngN>X;ZAhF^=_e}=`~ z7IwjcVBP2Bc;**7lqtE-7YY7 z-nmV(+7a81`A94<+{ZuFl`j5$%JzHL*RT6Bv|sNj zd}ue&VuxqeY^9=-JxiH~sQr{1U2!R!WN{Ts!D-KXy`u#*w|2 zb~+Dw_nOL1efDdA)4%zvRoRUUk_-3u#?1cxs@=9ZQhta0_1oWTpPMs3^<{pZ$ef$L z#KWd$!wKF87q7)U++FbQ)8upaq?!NwufL%eJY&YWM=wg^;(iL2o;{fRed!Yi@mF_m zc%AgDnEU$fb?Fzse>XWj?hD;BCG>LPXU~;Z=T7(U^GmI+j?OREDy-aI`+k9n<=K2o z^QqdGD=Xb&ug{KHTPjj#KKE|;9mapYmrv|`A+3G9^r=a{$}hhU-TP>hPIw)-RQHd^VOcDSM492-haIwpZ@B~N}qW) zl2g4}!&a->*v!eV|9v~>?yk}wW_Q+|uDsxTcV>6Y_R{$$T`P;u7q`5hQ_x}0vcI@h z!0AqN(QA|4#-~>tKQgCvV}|s)&+jfBzG8Cu+q4kQYu7yPZ@E>(moiQ0i|#c?o%LU& z;$IuC^E|%f+lR=1nR-v>J>|1{mU>*stYN>cv9a(}ucPMsfBG_9$uiB_I*U_Stwi&u zYKy?(b?)+&mb16V9J9MnchI4TKR5SA%#-@Ubpg}2?n(cDFMrqH!+&%B<)xon^5@zK z)eLqg+gd#}Q;YuhOFu-g_VU?!vX@ON|MPoE$?Ml!`8QTRUnLtGV-g&b&V2k#*;&&) z`#*_%b@}jRV(5%HwMTC1@f=y^;_%k`iOtTrMx{)W*=_&d#!slwaJi7PRK{|JTIuzi zL+u&0jGvX6E&AD~zTfwrx6Ynt=>f}E4nNlvDh1f<9rzy4)c9%k-tVuo3cgQmm(8&+ zX;6`~oAHG0!(Rv4gP-TmdDcAZ+k7RnGcqqyH#pVC30|9dQ|9lUhAYpw=V%nO-g~$H z-sjxUpZ~7u-~PGonDzHMuHyoyH`%^C(!%!hZ>?kRxulj=T61#mTby2%5hS%U?)J6D z?7St%Bpu&`?61w=?G~w9v2I#IE*r|8Q>A&RUrXFVE_P zy*-iQX|up$1OMaJx8L60-dX$G?ElaC|2wb0KKl6Mg)3K%$p8Q0ZkB(~rbasN`cs=1 zhoVZhO;-uD;Cz1T9Pj*e;lx21un%{`oro|Eci!+NZaryPB@Qemg_0ML_w~`u;!f)K?qC)wU}$zh&oF z`u@T7U!qsDPloojq_XGM9u}2z__O#nmR0epn@!`dZYm4-vbpl>7p-SLduD9w%d`?X?{T|BruL;TKJBV~>i(-%?!EiI-}}sN{55F# zbtaJgRC+IePR9|VQGD6PHYdtr;}6qBk&;W`Iy#Q4|#mc0}v9=iw&>o!zU85aQLUL(I&be; z2EMFyRh>Q8gX%B#F=_BlwJ5#l^2&Pp#`&7dUv@sVS-bjSQ0sfi6#}1YeAb56{f=Mw z@vzpOkDfE$32qQgmo4)(5$kRgxY9D?*`}0Qov7v6E~g%Kee^G^VibKi>)rk8h5{wt zeg8je`S!b3FTIxeG3GC8^?aZ7kIB|MEjyS)mwvlDNA6wo-`DH+zx(?9{l9nb*|yl- zw|rg7xBg60W{Fg{@F$I(fsP-!S4YUqJ$C8H-znSGC*C^WeAZOP@5YIlZ2VUxSD$>D zfAXBe^Y{a?r5lySdhRZdYZXXJ*^!(3aeeNby9QwGwi9jT~-)yn&I81zk5peOgwo%+TqL+wRI_CK~ZIm#>>4jd9>c~^&N3me7Eqb z-_1}1^_PLg@9*RWSiai#Ntv*6M6ZSMp;gZ{0y;tX^ zUsz$7lvAy6^mb5x@-wY_|NaQ9SG#FBJ^tqYprg8SN@jb``PbFXxidxWT#n8`xiecH z3T3H8JzucNvGJLeU9nVUm8(oh_(c|r_4nLT%`Shm@q3+nN^h6J(ldu93Hj9qPJREL z-_%h5p7Ybn`@P9gZ)1LnBn2tGkKE^BTdHSlGIh?4ATQtO-1@(ZuBI&Wmwfp!|47A^ z82_80{3{mEG~D`HP&DZRlb+PveUHycr(8M|7jj_Y=U$gJC!e|RKc(`F(KcYOZkfl) zXD^<&N66nl@!Pw*VCnlOch7&HY`C^7xO(^0-pekVSJm)q25&tgW9gE&%kIJ|<{bS4 zKez8}Qr6aAa5vz*wG)L$60*u2?|gsdH(^UtYgi_^Wi=ymLwO6lc6$#STu&0p)+3qK``HoAbx< z&)6XD)UnZPXX#vTQGv{hi}?y_U$bTu3T}H;+E=$})(X2{igC+Ds||K?ms%Kanl2pq zm2devmJ@kDazAgZTzzxP&doj>Keve{J?h~2lz406@(VMjAHC#mY#F#z!04<`(m5?1 zs}J{99I5N~bAB*m<=YwVqUnike6K$D72g%SW3(VafA#V1z8hcCBkN5#W4%@1KfB(1 zu19ml4(%3+u(MyUY<x(-KfZh39$~h&i8)&PgTanFfd^#1 zZc?wK{9L3u>x${cmIsSAp1QV~`N{sf$HP8fn^`caUr&A4TI0o+ zj!xQBz@<2=z(-73Yx&~%)cA{%GYxH70+M|yr+M5i&B}4~k=C2Vk>>OLQpMrM-LI^^ ztt{>|IWBZFrt|8BH_`?{B0$O!wJCH>jty2Ym}+&ZKQV}thd7S-`H-Fm}#ugrUTW#jBW)6a5O z6kZJrtlPtK-?@hWp2AkGSd(cLwpqRwhTOdw%4wSqEOK9aG1=?V$vV?f(5D+~MoXH9hrP1o*{7tL93lzb)lkbH_h1jWN|P;OO~7D*}xzQ_ZYq zX`DXu{6im8+4I|pK{}t8{l2%QRzm+;^YWcv9+sZsdzT&`$2%`h==Z*e>N&#JeZ@-e zm9=ueWdB?zvZwLU>a|mZpW6y-ZrRGcHK1_TBdwi5B2GQbb+u2#|Nk_&DtLa9m9ff) zuWQ9GxEh~NQg|Zw{A%4(J)VszDbhQ4Ze20GFpD`qcw?Q*!$RGYv(GlKI%BZsiqE`! zr_~mk(K{y}l69SPLg&dO;TdARb(8Aj*RQ&5_sTkLoAI*c6F;WuL@k{q{4?xOQv}Nk&d#AYy;q?%-9eEnjlD=|ypkkeh;+Xd@0oxOZp zRGXHq{u<$(Cv0ZlRnR-JC6jMm_?5s+{`}n=7y~kFLOad%CY}g5AmHA#aN;EY+V=@7 z&Uzl%5)xGD{qWpRt_mf=#s58b{obFMDJA&!veROZJ6q?<|9@t&Q~FE9=1n)v)sC+f z_}<&*b*ipxZdIvDanYv=-Mbea_ZDr{oa%ei@I};`7|Z(|RZ$H=mQuneUrx-J>Sm|? zbAL_o*{o+rTRtBB$vx$2Tk<7FKWkt9d$tMoSr>lTvaXkWw#m8fd3^s`&iuogahcUS zo*dm$G)rW=jf+xCMZ-$Nyc3U(swjuVKi|CC*QZWt>e}6pI2f;7p7(UCt(elrqNnLo zEtVhq^yp-$OFPr$d5M=Nvd&Pu`SVS>YRpRB^lRRQbFU`+F%1d&w%O?Z`IX!;)#GP^F`Q5eXgqE15L{#JEtvgj#8`nXB8Kl(N#$%tGUyQIn;PB*c$xymri^5EaT9( zsYNH3rCsBS=j2YFH1F7=pb(d`X;B$#p9e(>&zn{g=JtE-f)`SKQ+~cMb<^?Jkg<$+ zy&P)r-jFTy(9Ob+0!O#07{$$MnkCRPEo9o#kO{@h1dj^or7m#YzvAp_%dpK>AHK|t zoU`WTpEcd_2m7Q@@@by>ufNAH`=0yk z^T9>uGB2`s{ZN=;pEF@koW9mo32AOM53RXkp+0K);^)Cj&AFO&Wn*Dxj&G9Oqmw%S1?fuNX*D|5T_tlSFy`84T zx9jHL&%VQ(a;SxqVUA7Zrt2@gr|Yp!_&BdcV6pO*18b&m+`Aure17`3y4uwd-EA8g zt8}X8E!Fucuz$|8)){tbx$7QZxuj&1z3t}hv(c&n!GDIKHpCMO37R~ zjkLCivR`MVot!>q3f;1w#e6(+e^}zZJ#**h@clY3Atc1#%F$O9#GxhAcz@Z~(|6fs zFMh{A)oN1D<@14)0}o6zzPM-FrLAv1)Xsh{=XI9P=JLGM!#hnf);&ISYVI4`jHK%& zx^c@-=hs`WSl!xTH|fN|Cw;%p1%BTny7JKN_p>)g#Y$}Xv32kKTp2FgUx~R)UmsuD zTX#Ra&bVOzIavk%+t) z*9vB4NiUe$l$J}d0npm{`_v-HNlT~eUv>*S{{V>(u@Ud=H`=)CaI+vSv zmrADvB-&QYFizbkq}p}X>*rOqL(5)2dA436?yRVc=V>MN*Ct1;KUscQDXx@e{MxR* zsaD}imZ_wq8DANnu+;8)oWZoZYvRVU75x)zoHAb0C6jk7un)a<&yYTB;W z>D=i2XraLO1>G+9vyQ)vm$G+wXLduTH2nLC{+3rWZO)#VWV?C8^S8^l+%{+H zz4Dst!rXNaH%FO!ea=1Qf3>{t>FxFjGj_V%(kobbidW;#&Zx^DkA2&5KHt`%GNQ14 zvU$UCuD?0g#H=hfsCJ8+S6%e;Pqd)Vr z^LNf|nP_uz#Z`;G{N&6w;d~dK^WtiPjQfNu8!`|3C99Nag-E9v@2tK5a*^Td1*eRb zzFl;%_iG66swKHDzuw0m&Jml@t!bB^e2|U#Rc7arwrPQu_b)xZzp%Du@%O*`sw|!h zRBFC_A|_It^u8=Ct*XI5Y5(>v-|Q!E^xGmcL^!#XElZyX7zo;^QDRz?R9$D-)~rMxGK&a5}fRL(>Q!m zpc9AUt{WSZ*{#doC}?YU?=F8|R&)QK+La@n!ar}{|7R9;R@lj=W7n67p)VfIPp$Pc zc@1&CaH_v@_@Li|%>~ELa9?{#8m8l*vXB^~zJ$t2IMBF81T z%hpKPR^CJueELy-WL;7N+^^k;|?7%=^}Vy4x&N zVZS1MUDDe_Onx?BnSP7J&p8ue%v$5i7>XbP}++n&Ver(~^$lo{4>@9ZB zD!y;|YTeH@5!04V{}gtMOK)ZAkt5~O`n&qeQl4Dd@Viws=F$s;S%#N3skLQ+N%sbQ(1fLocT*_H@E8)z18~%z9-@bZG{%cc|5`X{pci)w< zcK7#IPwx~~Ulg?R$FJAxf40~EUHMx_nfdP%2k36SdXp0w z(++#~y_~50yDH^G9baF)&l}xmTkD_4D<1w|-r1?_{^;R}4EuSGeJ>xXJ@1>Sc)X-Q zMXpa)h~M4M;P{r;NphCYpHHeTF}sy`>TX|o(K`v~jNrt_^>eRJU%&6ys`%Gag)V@m z-Fm;B`*U}9`OfO^dS$!kKA&Gd@6DT>sOaVu{>q?v2IKob&z0|}{cXm}%j@Fm+FMrK zBH+{!2%1LN*LvPRJ??X4S3ZjjX9S1h5ea4UhE@Tm9_hE{4eCBK4jkzeo@r62B-h`5 z|L?oMu9a`DBEiy11GmX%v(gKgsKYvnYYVna z|4{W}Vf&AJ-}fD#X`J5C*(v!nj8m~iBC~62hrG(0<#{IE4i;WF|Gan|(iP$;ryo^*mqdDYghS8;AYw0aXG`c73Y5pDmhxXRUx!4>x~r8FPz(6HgCx;>&8^ zMI%eQiK_X_60h+WES+WGRPr$6_z%~8QEQ*Q|Nrm(&Arv;_y7O<{_~jmlS*~P7K!;W zQ`FZ#^T^eotfupZO z%i506XWvdd6xUzA{?UV-J6qUyUka0c%6@u-|JDh6P8g(teJ1ee;6>Z?SFeMYe*Uva zllfIJZ)vrIYs49yNyXD9XS{On-gWfJ#UIf}ZYYJ@IB^(W^X*ObnUPWf$|h1e`h&Mg0!#ysW~oC2ZsG z-Ny~*YNs4DxgT;g%EV^2>5)x2{wliy7{sqF+8m)QG&42e`=?5VD}pxv3mHAxSdaGx z`Q_X>7yab(twsOrAC`W97duTa*2}|#gPmVaCZZaYA`Rv8=4HAVy8oPXxX;V0syaeT zVr|)}zUcw-$&X&TvN;{gm>>9Pp+NHd-_w|{n(V#vMd;vcsnasXcXmd3-n@3!WZN5c z^V$XZXL$mvA00XndH$^b=}Pmn&HHS)i!&yiF7H11sowEU_ZwZZz zThRVY!NzaGnwwQx1e{l0JvvqQ=AO_?9qE%gr%b-7lTm%@R&41+=E$QVxA(RjUB0RA zys-=G<)5G-(x;|Dr{_QZW&i$3m+*-Q-*d;F`q)L@_-Sc9|IU(i-QV(OXMHh#zWLkP zs<@lK1WP}M3oKJs$TH!`y=T|&uW0|jtmw0D(T;Ikv+w(#?0kOa z@-6JGyL4CIEZo=iDT?*8&wGZXPfR*%#WjkLeaQNmc4n5;x4Lq5bLYu7zIs}@oz&$@ z;Q`Iy{*JOSv5dKqAG3TP>kPTxIOZFAo2(bJWM``siyd3ER`+RFD%j5~_2_UY-( z%DlDDsd4(R)m#&~lV|z}U#&cPrT>{lm*a)3tqa zUbiWkEva*~Z04aOC1UQ&KYu#a|8Dg*PQ@b`pSE3jJY#3qc6<9Ht3AukJq>@vma*=^ ziBsGe<{}^7J^$?)8lQ0gp4F6pYhr}YuKHxV#OJC|@e_far_;*+-ue6T6Jwt75u5Ig zH0`f`2LcZ^PF2k?fATT!Y+;;l){`Tr9@$N|FMlUv|NrOt-=C**DjqS|5IAR!d#bTT z*S3kD6Msu=;`-Koyi(b4?$Q2drIN;XOVwr{y_i{Ne|yE0*LSLC*%QvFtB;EPL{XVbQbmG|0RgGbql;LV zw$0`}Wt)`nzR-80*yieN%Xpuz#B+x{_FPSUbGw2!yy4I4#p}PB++Ml=DdUzFAE^wV zdEQN`JX5MpWs6R^bviZLtq$J<%=l-f1*#4lz4KJ7+Fz>4$QhpdceFSe}8+c)8C=cb)cbfr8L3lv)<;zM>t zOcM7~bYWKO77X3jtk%#aw5pW*$Hkg>$(_gJyOvtKwknTW-1asz^Si_Lm7I>N12eK% z%dfJo+4cO##hUxG`2$~`o>{nR!Ra^g^?$#9_`~SLVJOj8wI<7WT7Y?P_}&?tYOk+a z*UkFm$)U@wtZU}4TweU8taVv*UdjF2ZtvKX_r>*eP5Avx>W`gSt)5{xfAMD@<#!!! zr?MVC%rU;T_qz3SLzPJz)AfE;7`yrMUNg4dd9z^lx8DYD|GLi7{_!_D)uJ>l?aal+ zyDkeIXMfvd1D)1L9plQCGq=o-x3ay%H=%xQ(HZrP(Kp&W#7|j*A|#tY_LkMeA^Iz{b-=$!_Dm<*PKtktW+ED z)M+o*iju??0R@^`Uv~Zb`B% zH#4Kf1@_!&-+aP%<;HE9#&O75_3VB5xSj}|C_8QKg;l%e>UXFp$9Y%QJ-5l4D|Y^B z`Hk7p4V#yy%e>657hG~)r!|?Nm|mOeZaJ*$=rCi3Fc8|M}i$mKd#z(Ot-+ z?la5vP|41}+E$QNFpoom7kADyW;LByaehj{f?Hm5gMGL7aaS0orcX?|#`M6|^~c=u z9VWYcba!tMU0-}9$)R-hiS3)7S#=q6W%}H5d#6;JzVpHyrh8it zq(|O-b6fiCZR8-{gyHt^+^6-h>wyDQ9;L-i9E z+%5^9n#|v;62uUz&!|L{9VxpZ#U6)vVj@)cMO}^Gf-ZqzCQ@3?sI#c-)zkBd$FlfcVE{WAM@<)=ZnjyY`VEp>Cca}X?k0oU3gBizK%%X zW87n6IeSNOjk^AGs}E8>Hgh-ku^KXeE`zo%-`^qqu0n zlNw>en>Ta1$_ur2PIz@O>x00rm0RB@3bqK`-NKtG^zlmBnw#x6Ox$HH_%|Lq*VrrS z^2YMWYU71g<sw-Y)ic+SFB6SluC={etaSI~qK+$50&;^5+E4ZB2`+h7 zb!uIegY4;^m9H3&9uR02EBNfXnTaj_=~1ueBKw3D{!1mk*x7f^uwl1UfzLGw&yMiI zrBAHF8LkRxya>u&AKFHLo zt(d#1`S;D~;fLoxJ$m6^@S8cOZCv*deKc})x3=_W&C6?(E zy2owSbJHvXqGTh^hdg-m{l0RGz~O_vi@B7RWd};FDv(|#z^376?dv6c??Z-W!d_Q^d1+xX;QSPC2qfV(FjFFPy+@5+kk$c-}mJYR9KcmT%f7SyTM zziQsLp-xY7_n9l{YabsyzOC?_WM3Ia`Ah*Po|d4}4*8mL)BM_79+9`Q!u0l@n>(o{ zu5zKs@|WD(kS}ONQlhm%aO$*4z2yi^mo(<@r-@y!cr$ zSs-Z-=alx0pO>1wo|o53O1U0d^y1tcckBIoJosyUUhAq~n*2V|Tav+*W$D66o94$Z zkCQz)XO2yrxA}s1%4}x;O+T!%DN}(^G4o zA#Avkacd{b<`7T8SWnIj#TJRhSDsy!Ssi)zxea7IcJ1x$);|{<%eOV&Y;p7B&HvwP z>>{pM#(!y4vXh9J+9zC%hUB@xei>9ufO|$>T2Z;OWcJM4K{7l>8_o* z)J07Fo5ZQbyB$)kzA_$L8MspUq{UwuQ%P1COX0KGn!gsDYTdPJRe@i8!_g(`D(ceS zpUUo?2zfYnAK%<5b%IVd8YXFGf0u1I9S-i}fB$V`+?~91?)<~gmwb$>{BH45-K6i% ztjl}-f1lmc7yngrw&gUZhVyKn>Ly#5+|Cg;`YdTS)$a0ZlfQqizM1)cw_U(0zK>p| z`CGMH1d^VtIJ^4iNA-+@3!uY=+y;VA5~9SI+rbDYvJEL zb5Bg!vF&x9Xx3I9{oB*u)w(?HJ6yA2@!!iiMcHZP=hm2SUh>1hyDIWL`{zIQD?4v( zn4Bzq%l^Fl=2|yJmjb4zig(1fKP=t#r$~nHRhD8>N1WvwP!u`^ukJE9S=wQD$2k2~ zIM1Ky=kD)5W@;+feQo0QjM)Cvs`LB#0;_-ZoNRD=ecIU1_lU~lr0%>Ypyj3lk5A42 z_horvOf|=|Ii)H$x^GmUDLelpI6l>?T69(VClh1uZ)Xn8+de-iy5OnP*2{}Ivv>Gx z<-Oo@aFddde{(xW_r~v&JV66I%dc7aEqS;6&orjBW_H#Qo#twN9G(+672RfUmb<>h zqhyxa8#CRBySBYfbe0ioo*K-aU9fdmrp;&WSL!njUo-5vB5!?WqOqBXh)inw&U;BJ zWvfKYMVvYoUM=OA>`=)O8lyCE8~2}2pz-I;=JU7n-ILq3y|DUZ=a&nwmTXj=o;ST{VOFq~w3*Daf?Gv?3!6OMgr*${n7M!c zrY2RVZ+qbEY_;KMEA7MB(&>F9NStv)k}L%^xW>S)?=Yg4h%)u0UsoU)~Y zUsXicEi&BPVA@|9;Ckd!O=5Ip^|A>;GmbU(&aO1P&TS?9`P&-huzPueP92KRqz^s0 zbM0zQ$-Bh!-o@4DonI`D*u8vWt#tV28=Q%S+!65-?bp&|FI_7+-}z%d`Z=H_)}XRtO~BNe&6o^OvOpUjZUD|#m(36iy3=H7PX@I>RfzRcELx{-5c?3=si zOEvE)(@)3F*X{d%a-W>!rupuD|4ZZIK^qwA)`ojIa4WV*fELldFZlf}S4v8%qpM5m z?K2L=76B(P(cu`7H}ykZuFUBwS?LH4MVIm-&|JWg9h2wG>A9G3B*SFVoH;hP&I&@5 zgY+;zI~J94JZOg3l(a3km0ARnn?YkT9ER^|zFc&_v#)mcv14v}v6GBcoj4TR+LCl1 zv2*@jnJs&_6r}m@(_aPBv%lYB+ppxVIa|JV?y75f`?(d5Y~VV$C)t#f?Q4d)OHZlL z?jy`k7GBJ25OC^X%vz`L{Nvs$wX`A4YwU|=J#A7?9@@X z7BP5tIKwK68jrx-(b<<|Szkz_t_bbFI@|oBRl`9M7hkf=2@3z z?cdMyO)7HHnU-1fIh;dLE=O;TYr5wCt2eDfe1m$=EaTm%b9=I1kIEvDAK0Qbe;erw zZ&U1FZ2G?NON!9F$3JCuypX#0c9n9)zwq}zf2GZTpI*CX?swyRJKeu7pZD?CJ&{+R zyEdFV^X$cQ)+J`~4_s~<{LfADsmi##%y;qKw!+-+@9r+X+robC>GuD%TV@-qJA2=j zf5KlIpv=52v6_z#ToYR3$I&n*>2wX$wuZMZ-!dO#qykg@44jV1M5GV z7IB6i(V4b)dmjt)-&x`Z?s`l2Zd0n8k*I98uJh9*H=D^mOXi$ObG&`IsIR;I#@?lK zti2@e|F<%I@Gm1T@7UWi{)+$n>PMrF@Egah`I~b0uVq>9;wfkSWtxA4eN7_cZy!kjXU&6Y{NE#-WLG@YmQf{GMm+IVp_~LMZ0p% z$$qu(kJCFAWUn#Q?KxBz3fiwD$a&$_qf^sz?!8iV`zm&Qk<;#V`ky#$<-XWT-_CmM zbgS&#)v6DRl1`U*f80_LxHR>#?N2LjpDda5dkcN0x2P_fa&Pzdyfw$yFZ8|^vtWupaAcaxqR6BSBLWA_>Tb_i!2o9Yx^lAn_Axd`D9u8XRR!Ug&S8i?5$p1 zsHLT5Kk-~!lZ(=>qrDD>CK`QSeCxk_RrlHc>)n0cn`Z5eGM5jpwv{_oCs$WA4_vmK z+ncoL(VD~SI@OLQec1akd)DbmUrj}9{xUIy3FOn`8$d#`A_nC8Qwcn`?S8lO!!^&eRI}*kzzgbqq?o@rvJUOec_$! zj>T63%hm|y##kku6_tsoWX$zrd>{2-^O~G*Z+oA;H7(=IS)-72UNLSi=hdCJEjC;| zay$PJXvnVkQ$=~5Mep&lPtQ&z^~f(bmi(~ohGMF^J9lWv^R&(RnS#Y!<)7XK?wC3A zZ0Fumn>Yd1zca$`#vGg&ck9Pukq=gDZ=~-#cYF7tmFG{V#n-7$`<^EJXvdjG-B1bc zZ=1FEy}w)d?#|AC?+@Sm5_E_)*SOePqE&L)jZEvBbpuU>gyJ9m53Vk@=k=vReb#1=Ch*}DDujonA|vhTg#bM@9~ z-h|#p*5~&WzeSj-m)zVV7Vqk}Z1&cppKG^w%U-uA6qsi>vq9bX0B?f3>T@lnhzWO3 z|N8CN_wqp7lNtX`3z)jG`1ZX#u%zF@$jwG>mG2s@`_4y#Z*NSKPr57<-|xU%u)5_? zv)nwp?{b~H+`2B81y$VhiR+4g^Fq0eZwb4|hWh9Bmj&{RHBK1H-UvA6eDi$mUpSa99KQG*P#`TEzv3-w&S9kCFtZI_gv*bm?y%CI3y*E7 z(_6Krrbw^q;HJLoO=myzHppDA-95j!GKeXvgZ)Z;-QVmeZ7qfqCr&(=egBWz{eR!K zSN?oD-F;{3h$>~f4uW{isZDZ043w8o>`^MWVItv}nieXZxgbFcX>9J7uKc$wrGXVEI)YoXRHIQ6ol z@Pl=FOD}F{xU%i*&)>gZuW$Y(DX>52_P+UxChq;o{a0tPSW{*v=lkW;cRmhJb6cr< zv}6L17IOb6TPN)<>f&>Kkx9ryGatn@Z-1})b9u+KAM@P! zkJPf7;rhT)Fi`;|P3Y;})GTP}0Iw<6|oX2^;t+dG*B5BPeOzJ94Q(|sdm!6xC% z%qe2sUOYSL$%&oGB_8sHKTa6h7PaNZx4UhA6@Gih@}0*fE{{ui8O$m&-Lh)m-`nnX zCP!?fW1Urd*XBu`ub#0{MdN3R>FRtE7JGmblpX`sr#6g^!Ie#Bkafjmi?>92-&99A`!aQJijRYU(Gu+ z(~o&YM(*|hKKEs|^T|GnzW+82gG%%4Q(IqKn4awLWA@#qwug6lh3c=6=X-XsMD6>s;8N@2-2ZweT`jH; zES@>0Uf8ZWld)Iqv5J0}ddbPE-)3C1`b-yG`VyL?@?p|yCT)^?G;F1i0t*R$!gzTN-sa^ReZn~~Ej12o^4DL(r-BdR~R z&O5Pl<=QK^+e0fJUr)^1JySZQb1UPtd|~JGh;y<|J&Odbmziqq5p~@&HL`iJ=pH}y zxX*jVKOdEUQJH3F`;UjGURy-(DJV64+QqIvbWO4dF?Y+LY7(iUbY@js-k+#i+uX`1nxd&tg>n0hR)#MWt-H5d${K( zNBSxKQ$ELU(#CdFzpU(Uoy2y{w%$3`ZtY(L+xulME2rQ1UYa4&xqI8>9jAShZ$|p1 zq;6inpuyL0?&gY|+9%GwYG)>Utys7Acw+Z~Ns|vO71s-nU%k9=(#-Vg>KEIT{cjfs zE%=x8efA~Cv*oaXjsA~U%=l8`)Xa~&CQfTU(;qHSWY1^*oneRkdHEvdhz|CPM>>51 zRwf)`nO65hG5+uQ|0n(Hen>B_}_1N}I9g=d;;=Uhn^>ZJvLRrRI0l3%zsB9g)W3 z)8;L!I-90c8WmzVb5E?zZg2N{wT04g%enb;pYD&6y>hkb-h!jik3Rgq=bYTl_19qE z*Ogos+>SaEY(avEg&rm{sY+>&P}ah%wh9O5BgC~*>$ z)eGaT_2d@anC5cKJ2*hN>EfhQo2GCToikbV<1WLsZ!`I?8XsO$u;hi3gixo6i=lV; zk)_6EdkRli@6#{lZ~WDra9HX}&D@yKP>bdI2a+xcPnz7TT4|l1vg(6h{B`%Onuc%Q z9sb-tr9tcwv1l zzx(fw=-%m{-tBsS#bw!yk8ykZgah)X2Di?ve73FrGUK!e?o~CjC4vsuz7t4V(tE@3 z?wdoGxisSLY+t2eoqxQ$Nj%{7q6=o%KSZvTUi#DQ>GD^#pD#&fBgRsBl8PCV^W`_L zW>2?W=Q;6(iSLcvD5cUY1(wg%{|*bhQA}MmO;Y{->m5J2%}()~3GGZ13;J6LkM7FD z^88m|Bl+~Rxb49C{5 z4-(H!`RS#kZKnM+d^X4Ib+11K%Y| z$8s*ZtoQoCC+66OR088JNVtA~{L}d!gV-a+rFBmP|NY*Yt@CGjz0#BN{g1U3n16g- z+&^jRRMT5$rKcAa75&&=|J!_B>~6LLXJ#7T+@615AWw0Qq;!(y)XHhIrj)L^oBaI1 zHJ!LSFI-Jcr%kaf4t%{BeUQN2Lt~9@NkKw)e%;$IEYtQ*?+QG8;f}-G-nzW?xo=i4 zF!{AJkGo~F5xmP9j z`TzNQzujFc?{@xQzh&k^YmxRh=W_Z!*ex+w&KHGe^`@Zx1@5=u>zVCcr{qaO}(SF!k05P3AJ}&v(d}X3HhVrw9D1VQb0sxRM=UdOKFT z`l{iQ7^5FFgIg@mtl8kG?z8SfjVgJ&t%4bxxsq0*6qz>*aug8Mi8Tdz4IW ziV~1eoApmX_yE&Ek!L4A6lm@LU;FRJ`v0dUAGpt?U;9n+^|iH+k8}z@zPrcs__w#W ztLGLs%r?*ebSr!P$J6ouib_QNx>f&gzQJhEdj9sAllRO1Pn>Wndh1H(u2!`r6XR!_ zJ^B8i(z{}F+Q|v`pUyI=3%vdQedWzLd+w}{ITd%$`{lo6mFG+g^KQRb)>n74|Ei|6 zhR;odC3EM!=9XFP`QLI^$PKRTEB7duylVW)?z$jeqwvon!D`tTT)+1Ph-hAulRp+y z&cX7yC;m<1<;d^HySh9|eoxFbDBkw&>65VUM}OUxI$1I0x^(J^4++A*Z)*6LotXXh zRlkkm>_aTq_Z#b<|5y-a(XBsUD#CAjWBj!$i`WO@E%v%IayVx4$<%%P*t8|(@3)Be z^ItvPIVZ;M$C8AS=<<);{AL$I{Vh7@<*cykWS+0e`*-{D;24`KuV@z|9goVcj~tZFzUSva+;TU0rQr_RRRtl5*g_ z{YRFa|DXT=aQOef`!_cv{%G`SEdTfCx&7wM%W82|FIB(2zkhy_Yj;(@tGj#giwla= zbfb^Gy1M%K`iV`3$tExD-KTQhcGh~oF!hOx&h>{n_N@!G#s0pjyL?#b=&csF7kmd( z9&eoVa-H>@xWXB?b_^q?P!+0W#yiE`AJnZ5=CE`u040X^udd5_58EXzUbauaOJA= zX`bm^)xit{(qmuA2pl@YotJ(K;ZGPd`SE2ttP2d0FYIr<|{p{@Q+5Ux%+@YAz9r(5z4WgC`d^kX-90m>PI&b?6WynOR=w1DAA3$M^6@OAfaN(0 zK5X8+=lgA;PyTP7rtB|zcZz3a^xPwj=gStp)}8ED_cpTbYRR^`BHQXwcDU`H zb9vdOs#swmq4KiyO+m9yZJT^|v3TtFl^$NHOU=5uCTsI1=N4Luir=cJIix7Qb?ere z-?#6pX=`_{uYH?s^YMuAlI6>d^Y7XGdpZAK=APN=0zMqSz8pXBzwVm^Z$po%Q@PE* z8|!LaK5}R8erh>+&s)iuantLUB!T%@WrL$kZzjk-#nk#8Vw?rgvKjg2E60m6dC6~Ep+anFreJA`U zOiBpNh!30Y5PSXn4|BIS_4`w=+?Orc|JJQ*|Ljvr&#Y)_hF3&U7{Ip}+mUjvp6ng*}%YPi6XX`u@|;&3D-UypVtY z`Kb8WIlug5qp$y)#eP^ux?ykI+U)bji+9Y_-?!uZ`lQ!4e%-RPlYckEK|$ic^7(bA z)<$ptae4l~Bk}(}iNDIf^Wcbh{DLzl9;}=r;}ln!I>ofSX!oYA{+ZEIEAqaT?VDp6 zeO*Ymz1>|aBZGbRL!Iz53p~y}aP5`Zbw=XUs-HV9{kicr_}AC<^>feL{qCv%y}kbR z-?J%3g>P?}&a3%!vM^_+g8}1AQRhSaUtiR(aQ}ZeMdGaXyKRUNhShRhA+%@6l$(G)>x2`dp4}Iy8xg_j1L8bbNU95rN=a2@; z#gR-pCQ@@7X5K!_cc63UO}-XES-tO3mm?n8*GCB$?5gc=X-%|{&aO1y%96bMyV9qd z-Y3@UDtXIGU3ksLwEtwu`M<|jZ#0+Eh%H~2pTt%mu{vW4gHO!LVq;fR?Y5SshAtjz zJk~`wpBJXKwazNtxu<#~>!PHJyhMq)+j*wwX@9a<_;9MDRkqH&y&Ky5t&>%f>!cq` zysS8L<3avi!&N^%#IYV<-Bzv9|KReD%;oz_ciDeEzM*P|z3`Pb-h=744MqO{sz_ET zPj1LBJG=j_=)W&14oBMm&eSln)r(vDw{dQI-In>L_XC-{9$nwl@ag#f+2{ASDCi$g z`}0qOlXLpbg3t1i-yYcTo=W}W_TPlzS^ZP@>hTkI!_GJJi57oV-<`appq&175pL_eaJSRto;gztuTWGj`(F>C+7jBuhTRJBEUed~(xTo;m_Hc^Z%7)ojbv{@(YBFD;DOF?rb|Ccdd#FGvcVEVkk{ zf7KLOytQM-Y|ETG7rnlG{9b9yILj<`!+T-V>~&%jMc&1kS6qI3?UBwsjm>-+yK^3j zU0Ty_QK~=j?pA3I<2Q+S&A9ddC39*wW!?DpN7E`?_QBjcGfQ^uyw`8??)Q=TyPO}` zFWK!T$FQnr?Vg>cG9GG0mkqO){*Ksfa$|MdtsfFwo2}z=ZucxL3fm%QgITBp+OUdvZnU z^!B2{v&>)re=qxIp7O_dZMn7L8qvu&L)ZSC#j1Jl<*({69>KeryYIgIwzD~Zx%}d< z!haw6b2GWkf3H}W{+q2V-X!R@&c;>0ckJHby({v_uB*H&iug9yH%M&`*#FyLxqZ$; zVaZiLrr!+N(PEhwbh3Kay1aRJyn9|OSh=I)l9BK?1Kx{{e-~?i|F~HF_M+fwIhOD3 zKHu-I=Y6}0S0>-=(xrJ`Go%hQzVuP{3-OsAooRWw;q6itr@K@0^B>*#T)i_armry5 zY?tHpi9PaxH#s)_So_9a&|4#6<(-qSfA)sV$yCnEUQr!=eShEX&^N!^jko;iopz#c z8Kc$f=ap*P*5^4)o!q|9Xg>d~Upd*HkK*!Lbe=u8%bRR;@y){>N2g4aDw@ClT-W_? zxs}EfCH;<>Z1%D_Ca_oR=vj&5^LVZ+`X}4k-PVvlo_y!Er1e$(oNpS}yWW}oIq~S; z@z3kuy>OOty!CrpQ&G>ag}V;5R?mNS@s?%C^54xHugf2P{qSGKuKOqY_BtnhpT72K zUT&2CocEc3&TZC}XtxCyRTQwZIzE5{%O*h`R>@X zyW7hh<}vCQI>emcdYZdJceUz)+P^;@UKR6?sMdVsT<*g%Q*OHG0ss9Uyz7b;rp?=V zgT1s=VDcg3`yc9h_SZHt??2=G-z1^F;jgrDz_&R+zVJ+mou9m&zu3nhb>h2uPZOp! zikYbB^g0%S>zVxdRx>8cG;?Wh|9m?0)pyfRhpmiPMd(hPYbp~H-@8)# zQmB8i?$SupKa33Ox}`!By_0A3%{|5}x}~IY{r%|OD#5JmHM41&L;i(^72HAkq8&-!i5WM{(iaq=Elay6Mt3j zifdl9n9+GN%Z-c`Ijxa}E^QV1%j5Qm?d6i2HZ{SZSu0uh{L01!9C3HnyR!-`ORx3Q z>6*Q~V)p{Z-+PY!sR&h>+j~{!RQ@a8j5V@?I;T9CIVM z5ovZjkI%1NF>#&N<8;r=HGkeQ_WVsbQ?_=_9+z;fx#81gm;Mv{E-TDYwc+~Q$IW+B z=iG}uHgocJwj~L^ET~WgrlG-yK2Riw_*O`lCAS! z_}51n@NJo$x$`!s2FE+`?L5-uUk?YCPPxP%9q_L}_qDOo#_ORU$_~oDfBA+j_Ih?t zhR*YVnVh?|X0=oro%#N2)khKgs!h7vRxNg(CB!jv+O1gz+Zc;XSIMzn$a~@?dqQm4 z#C;*0XH88iy7ZU1F1oJmkoD->-i5Z==CfX~C{4?*R@b}2EpEWP;a<*Bv!1n!_jdAM zo4c^pAkJoEr#%0q$W!;U|MKoysx={M#eQ|gySWFhFnZO_d0nIbYFS@&)xB27pcOS&$ z`Py}~m?GVok9XgF{m}hWrp?2H(|SbfF3T%lJj{Hma>Lxa`)>Q(-kEqj`EKw1%FV5d zH*IasJ-(nk%i!OXO#dSD7@cR{^Q&IXzGvn3;4;tkdlQrPt1JI%XMFYgTlAC6;K;q1 z8Q*kIhMdd36;c=UX7NUu)4S9(mF#3rxO52~w_Sf``hM#px5}sNsnlILU-<3A8|G;O z{}1t8H{}0Xc{wt;Vz()y5WlwlQ$;Qzuc8xIPHuEb{aoe996n3+((dzJ=T58HGWI+R zuh@OAX{W5xuKu$(!jCjgcQTxR=22{l%lrF2ReO5G%r?JI(*1wyp_Tt;{n=+6OIs?} z#4FuM-u>^y>9*Gqfs6D{s>MEDqWQ!?KH7SBGw1iWSHE4}z~?NOpOanqSFt}aI{aBf z+|8}o;+2(^d+V*|*4}S=_UxHm)O2@Ug!HuVEEGGp9m!p~Qw&C1-pCl(W5)Y9BIP`DmroG|M3L-P3P-fA1B3GEw?+ z#2S7zKIQe|GgjnI<1h~UeBkV7IP(bW}W^LBaD@{=R2_f6DFW6XmFR7RTH+@8B5$_47-QetQ-8e%FuSb#u30?rdtAlw(wS zA?0ksef7ifmtvlRn-@{BLfxegc9hMye%fK1LHAe9g&HBn0aHv9vhtofF7{q;w<2p% zXt}();E^+vlJ~v%SJgaIV3)H&)s@dbUq-4gFP~EUHo(xFuQBVPmf2f>r@D*Hz5MdW zwmr>N3+CrND=CxJqp-Jtx$tsN#J+Hc$F|<<`wgzJ9a=U;VoEyCj8##YbFV$A3XkJ* zzINZU?#gR^Eqe*Y%afbW?W(#iX6x7$_@;5C#G}iW`aJQg-2Y!Lo!_pt<5JE1YrCvV z+FnFVNn5t%huGS)3nLm0Y9)$nUVn3&UA_GL<)8Qdxa|LRxv3%1e)8#A#=$3!xzne63!iS9;-Yi^Ox<2qcaIsjMN{9c=jP|H=oDPt!(2P}n_Rs6 zqlX;1r{#B9wQo5&-^lhu-PAL8r?+j3Zolzrm7!wtyCU6*t0bn#OYKP7FyTp=s?Z7N z6bE%Pb7ot=)hs6h+P?fgr0MapicR+L?OW5DlA^3qGQK_C;PhFfg}=)=|68c^vibe5 zE~xsj8HY_3wD$Vqeb@f|zaQu2ZW&CSe^_Li$OfHohL+38hkmA{j3 zODqas(%x72<%V;)m3oPaS=Nn@67Q2!qHRxX-MVVUcHZWXt8Gh!<=rZDFSILJO%+|G z)K_28qpjK9E>mwZKTSa{_oT#Q{lA7mwr@Vx?GC@cv&NitExTFqvF0^v-|JbMl>JoB zYMx$rNASk2e_yuCHvips@JH}6+f#Q9zMTZO2#gl5?wk0-ao}-d|>|k{J5 z(N}qJc8%|f(2q?Gk27AgTya?y^RA(2nzsF(yH+MIrk>m_{P@f75+6HXHV=z;rA&TO zo6R;XTVM9?^XUhPuM5i06z~3br8?)BiKT-3?AhI78)8>{jEJvqN)Emmlu=y!RP;%l zcJ0@z;d%A-A#+?7T-V-_xMG>%sWZ$&yn5!T$V}XA=iPS($FD2{0Y+d?FgMIt;PXR$fI|F=| z@1Ff4>v7O4y>sT}k6ey@OV@t!ra;O2?7^S+qL;+$s+UAbi+b*^`tv34){dY%r|wKT ztRpvNlgF;|xzi^6+#~sZ*1N0AR2TaEopNp6&lav!?FyGEcQq%mFKKx9?|;Fr8=tDD z-|Gn|Rag1sDJSo^eY>>f-nH}2O_133rhI9=vR0eHtIU<_7*})Ex*4>6lFBQIP|UHL zn05Yoar^!+TNDgVm~x-6+20Ua-g{;G+^5am={L5&oxMk`Jpb{_UH-2(Z1Zi?Iq|iA z*MI%b2DdJzGtWIy%H6?dSg>}T6mu9yr?R0J-?6&4Ur%nU+P5z!;HP};)^v|d#mkc! zSto8ZipslM^v6TU{(R~C)xD~EfB9KfcJ?)Co4;OZ8lkAg>$`??YRTMNS=w_~TySB1 z?7RK{L;rWdw|lSoix}B*&JcBWS|d~$U|{_0sNnMXo(4RTsn2wey;d|)?KUlC-BZ16 z#@loUGwr@FlYE~2sEO@V%QsAFPmezy{O85VZ9d+G`-9Hp8`)~NvCMUOeAMmDX0gqy z%DI)Ld!OnyG@X03x#q&&b&nE%mY&JJH?wyN-n>=!zst|of2*C-7$UF^wlL>3!Vyh^aMRv zV10L!{#CvABVVpetbyfjl18+kGj^IHdtJ`fB(+*HE>QH}3zL5v*_X_V-4)Dd!h#xnKB} z_Yd!b&+Ipv(>`n|nvvY3>0PixsNll^Eyo=)ziqV@oL2@loR5@x!m>K%T!)(a?59?& z41Os!pYQh7|6ZC(CPn6&GIi!&a+D2P%_ zs+8&KX6qAYxH!{g^&E*k(*{expN}JoEFcHdg~^=Zhf(+-2C_%vwz9AHhkIoG}vpqbf<>ZnST`qvNsOjj?G)+ zA7Igae!kMP6u#x5mU~3=RrF6ET-GJ>e%q;}Lm5*Aqo$pHbv2EnJ1z2Jn%L{6g?F9O z16=Nh$7-1#j4iXe{qeWUE{6w^;)mny^cMYV>kV7&ozLg-|Dx{tyhAGjUzM@*-sUe} z?0m5JxN+yp!cEIv4a&tr;?}TFo!7F|cxP}Km$R|Pq|y}=n%iIhU8FP3JTBK^YOqV# zZMkjp8UOA)yd?WqjziKczcpLxbtYukPVkOf>hkEf>ypiloLVvpVnPN~D;AJ08a z%;|fu(P`qGv;N;tuc)aLZ!>PU+`pwmRBETVtu>Fbmbgzujl`9$1&`%?;_W71xOvd! z#Oj^37x_L(EINE}c3$}Zk8`B&>U}=x&$Gl{mqX^=x9KvveY?x9oZf6XNxWz0FP)`7 zzsl%G9JnLAOHr6{-n!SOZXrA096y}*+i=636FH~nzq?g=Il{puBtH7>N6R@HQ!0M% zOp02xy=akA*%>v1nD48XZLDQ(x3fHMnJhHZ%5sZoz+H|Doi7(L2KzG>^KLDlz9FZ; z^{uYND=SC2!*?P-z2m%Hcl}~!K+>|UmpXjkp9)A>{d)>~LslHiw@*y#xA}>!R{u4x z@izOZ74b8?=Uku4mT0p*;N(>P^MRZilf(rcKKs+~qEA70=GNAhy&JfL&jsG|nc)0e zw{QLK7Nzwa+x`&<9kSq8f;%^cix=I>hjdv0yOu60tb_ZaW_axVS)B<|bV)e4V_ zZXLKfXIiw}`Pp_c@+CI{(%w95v73`%UpK>MPLJlXKV9>3XYJm|6MrmuPv1mV%{wQy z%4F|1dlLTUZMO53GY9H9>~uv~FH~M{Ymu__d-L6jQFNhV^B1QIp_!{!-K<;IdQh6B z@=K;$;o6N`RR3~z{F89wUq8ckOUL@}uS2h~y?np###7JrPi4x_+TFet$9AJHpRaQH zC+%-+KJ#o(&RxIpM#isa&rc@bzsJ~fVE%vCJd5?>5i@?rNk;$O;=Zjr;n}j*!hdH< zb@X>W3Ut5gZqlZc5PDbKH8mJ^Pz0venbi@88^G zdH+M5k3r}}wzRuotg2&6m z17p%yceWkT*!leVcZqdTr6$)dNbQ>;T4nl4!F1NsjVo;KwKI1M9$F;g@x905Q2MT) zpGp-bUG0h8^tk8zlN0-=Y)r0Hf4=!#*3tf#u(be}Ua8Li*TK8X!NBXz{?p|gm4WR| ze(O?23v!t;k zI`_rfnY88KuQ=9IZfo7ZXg61I`TD230$(ZZX1^}#@@k5Jh+9m^_k%YLTS|XBAAWtS z(MQcb(4g+d>i$pPUd2wCW}5i^+ics^%!2a~4GG}kWew3>HUC049{ z{_d+()S>zVn_2>%I4(T$BquGj$iUBGSy$rCOEX#6TNhn)SJ)g?_5SAVjr+29t-oFO zT1f3Gf5b$gzBvicmaI)(S0Z~jHZ!2|{<-3AuhUBQ{{IdY7@0M#Kh1t}+IHP3?pcfX z^dILjcY7AMPJPncDekI<<}7dI#U^Zjsd3!w?V>MY2HAD@xpwW_+<9Zh!Qwoz;EGR~ zZuM)APk#921Bdwf?}xX4ys>cOY4g3)q&wGsO|d=}Jn!!5xlfXHp6&IQzsvt|>t5!M zs(b~u&ku`;&u;X1l=ky}(y652j%`u~cUtF7eU~WNsqy>!>V8loW6#v^%!|iYPh@Wu z+H1n(dZR|{d(TU?)rH$4tFkApEZH+d$gdzk<5rKTOPNW6%$A0;lY8qe_wRCUdf1=e*kvYv`1t|zN1AqDmFxD~ zb}gSb>*T5Ek0Sp+rOrzOH9xv*zMb9^x=Ze=9QFrrW<-cs z-}$n>d0A7D&w-xa%oocXGis!|4;_ds@A~Y<*<_;Q-R+{dwP^9L;(t|-*~DD6D+@jf zwLJ?k(K?WI>|U<$l+ANY>TVo3Jb~kjt8~oj&o(yuj~A|Q^UGFWaj1R%2~)YJ>gV$w zy!DSVT#}b?_f?f#nD~cZ+J|$Z^gS1NrCj}F$->TRtp1igW0#M!Oy9qX4bzzp-gx{l zcHTPgWbZb%rCTRvUlqIZ*RFrc>!8S~Yl_|~hUU7<~Ekpij3C_%1d4>^XzYn**rt^qQm3-A2+VJIj3q1cqZk<>z`a4^X*hz?BT=n zX0})JO4zMg?keZ$bdT|#7x#CAo2%4TK4Hk7=H^t)Y;Kq7Dz-NL@6Vh^SBmE6#1=S7 ztzNWn^Dm95XaAqgu0OF@OyKRsZGHN4bIay@Klfpm8EEqR+LCKY(`8EjEEJxpwZ%W) zZ?^Lz?^_EurcRK#^G5XT+lb{?YwvE_=9lvD)xK;N%?^&jq>X%9?;lq_?lzZ{b~IJ4 zyzZ8@xJ|NOGOy>%+8BQoYsn?5e{m9y44{Q9B$ho`lY{iWi&E40m(qFSpSconmBe_5!|`$hTb#x>jy ze2%sLu3}GA|8a7;imD{$%Ky-8QsEeY!PZXE^za8a=6UDdVhrE4HE!2;hI{o}^#6KAi{73l8Chy7e%EBd=@SQ! z6q!8lj!4mc{8i^hk?G;mwY%jv>TYfQaw}&`e~&%jO+5FVljBpo+?cHN?dt}!4X^o@&%fWAcrDCtk9}FD?cb9wZ=Rp* zdhz;zKt;8M>C1`f0!DB1Ti$W->^oT^J^k0xhHas5pM3q4a&P4f`v=NS?pOWHrm22C zHmM|X$7PA}9d(%Xq~`q2lh zpHJRZzu)=fXIGZ#GHSMK$^t6CKmQvMcTW2C+?-eU78joQ*ER3a!@zG_CuIItdXxBI z#tI|b$YbxTW~}&YBPqFU{q6jT(<2TRPw&1^KKE(wRk66ZTV6-+n$*RuT9_KkwtO+) zhtDa8KWsbveAlYlZGo50Dw#cVpHzQy>+x-iv(%+ePqqv)l)sr!eXXv0zG|4k_aecQ zpX{oo6ASVm9~V-*+_-rE{O7&;`+g+3eC_k+%4l>@5U?>ic#*p!XZI1&#mo~bBCfYw zy&OLCnplqF#1&0%X51EWSykh)SxBzi?#_{!%Dy*t$!rPx*EUT+)=Kom;%AFru6mx_ z%v*3FB(B+3D{oTGUo8O+mdR7L`CCpdm1q_WSl_xfZ)}Os0ljSk&cco)OrrE^R+g zyMa}>Kk#i7$OBEB4ONV(LL7CyBbSFlKn_#~iqAZMLCE8a$u=@xFLEQ=@}IMahzFY+0|@ ztPo4vWasMhpNoa5(ZS$nfbisH5C8P>=4=)V`tgd%Omvp!-HB&s<@%*;PKt=z!LYN6 zZ#Gx7<(6D#?X?SfV$V#Q6d{tk%rN5+)Amw!|7KrRF|X~rZ!PNZQu+IL-j7Z7KYz|U zAAEemys*Q!S4zfAT;0(ZUft8k3UWcgLNz_zrc=sMlNLXDklD3mZ6p7->mTm?WSV4~ zHsN#7b%|RVGqr?VOBtohBMMh7`uXwWbWZ7-Nw=DNcfDeJ zN|y4>Q#Y5zo<68`yTaU6LBNKs<3~Y_pzwhv&E^!yf~m6q+pRMBm+Rm8zUA$1h))hG zC-43ycvOGQ+i&(pCvV3&ua?*%WbY^9x({sxS zvUsZHyzYz%Jbi-US(htvj|OJ>I3*pQw68Aiv|;l9eOm)}ui5>6dTm$yGNE0!+*Y>h zTv_AscMT5M3s> zImshJ%DE-w&<5q{wU4}`L4^PZ%fAI{yP98X@2J(E@?vS#yzbU%-OGPOZkxC;yMd+Y zID7lXE;r5tN2czo3pR^2i@MdYLFL-}c&9t}XBbWi{amR!-vyZZi!l6s8Hu; zr@vP`8XXj7Xz;9G{&e&73GvY`)8byZG&($RI?^sYUH$lOMkdDvfyegyRK4?g^43?T zx=#Ok*J(q&vu@_RIoD5V-VJO%`N~Cbsz=qys715CZ_-=c`tsw%8?SZF*jCT*nOn0b z-&sL`Lrr(utK=tntDifzckTRLw(+Z~>4P};&gh)nL7H3;b@OiQ< z`HI)~jb$%itkGUFwp;#9lqx<);w%>c1sEG_TZXs zfVwD%*>`{Sgm+;Z-^-u7u&68fv-I8Xp>YSYBXw^)6;u&Tj-UGuUL8VigZ)aC(Xm-Y|SSDP0-_Tid>CdfOBIar&i*H`3BKp>Zq4U}&rLJ!2 zjb28}^nH@E1BDVF$x6t{f7w#9xubNobih-YXKN=Y=~vy{Y{$<1HLv93oXp2%&zTw% zu5|n;P*M(K;9jP8S?S_yQ3cb&-}A2Q^;#|!9InFYog83tJ!n?wVfkJD^%3cAqN`Pn zQa)*dikul9HhW$s_!aSJt+{hffB8!8eygY_1p+=PPXf6woH!U2=5z97^p>bAD%0OR zJI)PsSe9U0{vgZpe(KHN>38Nm|FCTO z@&)Jep56}QFEh(tE0%jKv(De`3xDzqy{$#MzdtMx=?rc~UQuCS@Ns*J)^qh+CSAYZ3TEsM^NU-g z&H8rr>AoO+qe6dKo%un#?s~XfOuYAZ`d*#jn=jtHsz1}R?1{$yU(=nYm4*gaEvcTp zefQNVGB2MT{rvv(YH91vo#B2bk81ur)GHDH$xh7kfJt9{1P5QkiJ9|Rz>@0(B-8p-dA06iGjbPN7aS1$~xJ}O>JoGbz z7XF+WA=+ZIhTYFWYo28f2}j)w&IoM zKC`GGk0Ac|n64fQ&ABzdWzVNzxkU;KRoZ>#%6NyE ztrs^bSQ@Exw|$lA?@cFVKFsrAi8r{^*#wz1zB2FNKL0;;)0;Hg)~=HhHhQLaU1(*O z6|uU=8+|T_P1>PFaE!Sakba+J1nNxChz-sdmFc9$fI*| z9xV2cb}QFZHCn$(FN!Q)_C7!I4Sz+Ta{D%wYvOtivg?(VR&WMCjmx{g+y8t;P`{05 zuJ4MrIp5{)d|Wi$_UQb{x3+giIh5Qr%nRT4h$H*x1s>y~5{<6cyZt9ryf|!acZJO< zWykLHul0dPUvs=&-abd%ig5y~W@p5{nSZOe`z9Eq+@1Wn`Rj!M6}h-QeWI$rCgof* z^_%6y_j%*i$@Zo5F9rqpc(?PM-6s>4@xgWb(4*&imc8xWd4r~u6T7S` zE6z71f0GHDV|!+if})|F;hK46{kLx%nQiyJXnnW(^Do^AF@@RXDsReVSJds8{AaD; z4kba!gO?k&MR|RWzA#Nj)&A6>saLBlBV=LaSYnvXoLzOk;KTg-B29*$CO3bW1Stq`EYmQmEMKH~a&zCdGKR^e6G99$CuECF zsH|gL{Z4A7zV&H#@$(zCiYawl@uY!8 z>FnHuGaD~P++)&svBvH+``v6&`DyXT=WJ^+SfA?tKA(TW=WXuQ1EnAZ_qW;QNPO7$e?=ScD)0Ho|SSEBAyq`01&*Q(P z&CAmbW?Yz}bM1=ghj%lRw#{d}xyIs>w^8-i>H1cSmiHPjJIQEy>rTv;hQl9LzHZ^W ze%H!YCpGv?7=zy%S-%gvR^^pcc+J$Fd8#tGRQOc^w^}yO?)7;JYj$>Bdc!4k)^Ey3 z?HiZoHeC(QiVc^=Gr#4N^kacr>DEHcQt{`rtqYZse{U8oDYKZk^x1=&eE!uYMLJWL z8?2agvHj|W-FiC~^BN1Tc{P{e%EA-7n)hZiECFmBFZn&rdke|){%Fvzx+T5uSI)eWk23XlXC%CO zc=g?$qj${IxoRaAUT$I+DK@G1dc9`)O(T5~%Y{0px*vL#*~>?&2cz2is0B4xD( z*5K*i#CS^QD)cA5Taz!erie9h)|{MauVXA{%{jqQThXQc_;wJeiS+1%?W-3X4mNu; z9c*!2^wmMHa;i}0d+~|uE>E1Y{7GW0UU=R=l7Ll1kDe<fKj`YtJ8e%ba>e|BPx? zz|V8r{I1)!{zyEqG5*w@zaJB9c_MmbEN#HTo0J zt*H|}u*x#SSufEb;=+s68CtUyteB@tw9FUM2=RKc;UcH=m(3|U&mRb?zkJ@+5qNsz zl=RPT{YIJFFIfIg-8Rp^^_z7})b{C*l%?u6mI`U#Fgzq~`&Rqjmz|H--CV0TuiDA| zLxCta%f1I!-&w5KeycKK+w|+7bS(~>?wPTD=F!hh3%Mu!TC?9qg~`>O+e{+OsJKh% z(P7U184O}RmTyX*|47)*^I84t466jUb6h5u9rl@YN~Vg==$rG@Ym?Z_pJLl@Pd-^$ zx+hu()F(IKx3b!wwCu;EXamQI#A66TS<(ik!24>i-2E5-`l`wk z$?Cz~ocZ$tk7A)t*QCWe#M_#}d{|ZIn0ZLpe^iYD>281IquVC?)F+6!JAUC6K!#SkfRu(a6_b!}o7rRsC^W ze}?MHu;wop{$CF~c00AqL^Av0>Rq>=s4ZWtbZ4^NMC00*H6iJ%3{$2au<2~;?!B?t zxbx+;RKd)ZYo_0>tgU5U&fW9Izwqz9N%2QEW-r_lXTmJ?DDC9Kdl$0px#EJKF|F95 zbE#cehNW*;mQ-l>&&saXcb>=fE>zk*uRU74+HWoQiIAu-AG4k~3hXsuI(l}d&bys) zo21g0vZ@!~S#qi*!O-c38|x)o<-QL~-c6m$*Tb5=aqTI^LNjLen&xL4bjtbiQ*z7J z@=S8y{BP9^g;`oG?)nOw-U@~H7_PZ+5;Q8ab#*n@vb%2S;RYUlGUdJ!db0}KJoI?) z#vDAq?PNr~*<^`OjfIy}E+qU+!L3orTpk{=lSc$b~7?L z9@u%k;o;$`s3#Lup2$8}yQN?{vqd#$zFd5d+L1H8{Hu3flkvKeRa9g zEm?bRs|r*&t~;IZ|Krg!yyYj?Egn{A+ZOkI%59wxGyT{!9^O;X(cq;YKFe|~6BCotif;4}O8(t;?`fcC z#*>8g>mDXvU!deDHEpTuq6twu1Mj*$m-unJ$bOGCQ)BfLmz+BX7G%|?qAk*c> z8gcf<+wPiBek*{R`E!KLbdto`LyC+ z(|BCJzsmo)$K=xEXypBXyR)}`*yCfSyS4CHYk0)Zy*cML&iE>Q^xs@Nu4a^wCIpLmvzec#NHMvgM}{SgCQA^xLw zN9mr~Mk@u4WG!6c5ko}Z3=F=UFy@%~&D^P+g)KhiR^pAr$CSA%p8sKTdUy6 z7AZ*F{hj_ZH28ddtIqtT3Gb@k2mi>j`1HY2eZT9@T%DgZPwZgHdhJ8t(ZK`F zcNq&V6@8L8u6=vLgbfns0`Chto>@~jd4H@~)ap|f5j>sJroly@!VN41sxe09`mJBF zt~sCm=z+Fm3}=wwLhiS|Ghe^El~2W1^JM zSE-P*>#pqDw`AJ4mMh3x(DyyDp8wY$G0n$rt5F^5ZgUz+jwBI)b4X?@pf~W3t#?QI5EZM)a#X71w;=o61I+9BgpxLwO>DpDFRd|AqDOX zmKDKf0W&rwzF_o~+P^~fM{tIdR{qsxd{%}tjx16V>b?_Vw}S8Io*cipci~2<`tO(S z$e)h1zxu+j0r%cm-@NfO&VsTHn;@okx$~ zQkk{sa>UBB%a-Nl+|~r?=a0xMe8W2Z-QJS&J<`eoKRTAS-Fg4+;0@Dzyn>*#mEvSH zb+hm8Y0aT#{m(668&NqDPO~sICL}4&JoVG_QQ|v}`kEZUk2@U{W-RL9OgMOD(On_k^42-=jonhzE9PUGX9&i6tb>veZ z>((Xgdckt)hFI&<=Ofsm#d%&*oXbHvAI{?-8-3mALQ2F>v5XP6IbcvNrdYBS`o1#ZrZ8UH+_3fP1<^2 z>HY4TA^a6?LgkyTf4cR~dhzPd6D6hQbF(lV40(9+V_t)UfQ3%T`g=#&&o1ccRd#&3 zVCk-j{ny{Se(YB+U}(B>CU)MDFO>^VEO)$fiSXtW$VNh%XsUv>T}Z6z4nTges@@&m8mxSOCpPZvuNu~jYG%xt!(1- zh~{nIWaql|KZAPEm4sE#fBa(d3U%ExQ^@MxT44?rCdLMv9{Kt94xe%?OCmF@f{xsN z?JrnZ%3Lh>b;pbkEDmmsXO$ z&o37;yIJ~1Bl)8HqPJFUX)khCAG@;7Rs2Nu?}-ONaW3E^dW0+C;1oxr+9Su$I^>A` zzJK2*El}_0d)39AVM+U*M;*-G9d_=#(B)nG@7Q_O&b~6cE9>^IxqDWfeKO;twuqw` z&-#=NpQ>-KFlbV8vD3)i>~eY8zs%{nSKi+{xjO2)c(;Azcfs;oj4EfuLE|v5vp-%B zn{x4j{^rd~e?@%XsMDpt!~5r(2Y!`;xA)x+-Y2v8=-2Atk8;<&o-bjt%PZs4c>2zc zHJHPG$q$jtE|%oBnAT_i)8D^ayvXLg>-+l4DQRyuu--an68+3_QJzmr`t(fsgKp-J ztQzOYZZPbyWld7~sJbXHhh_4Du$57w!3RP%WF`49drp1xODOnYampptPb)%W#5Tz% zgm3FgZ&aWAl9Rc5#hEu|=j9Ju8y{Y9=4|)=^HH(AcZ%bS&*s+^?>%Gsy;NGt@^*E4 zYaiRWIyOb)Ei0`4rn^RZIRA-8I9}cRpERz@Y z-7CMl_0M#p%CEmy?vdF&dy|#*1t-@cE$Mr2e?{(_x#{Q1l=(6{W}hs$ayZ!1iNi1} z(z6PGBrg@XKdhk{INae{%wiMdCbf=@~2s?U(U;k7PwDf2(p$>qU(D=gy0OYW(Ld*Wd8Md%`~Tg0o=xIfhFb;>O}IR!IbYis!EKR-YB`TeyyZsL;1rrbWdXKHY3={2Uf z7$K)>U&-q2S08=&aA(^kW|6u(4hQ&E&$&o}99d!_VEZr$Nk-0AOhM9*%on)~Eg z=_v*ep4oyomwEKa*PZddg0 zpLi`Sbhj;)Gd2yCxf$Y@`+R!Huh!L`{&Smd)yzA@8_s#Fvf=xB`GlKWR*U5A>pB}; z$K1Cq&EwRgxv$wH+-D^;W)ce$B2nqOUXdTzVjDUS`yrtO*}8?(Dq+CMwCkMH^W z?;*1onkHY{sC}#_cafa;Nmm^ff#3-zHwCb775@Hl<GIoRFv@MLKKg;vxtXU?jTg+_~nc8yen&_K9XDYplSH8X;ncJrx=H{4W(R0Mi zH7O?0^_cL!{T!FiR!myHH6Zwk!-cL8CZDJ0*ndcST4%YKpRIIVYZ!OFUG4exwr#VD zqr{Czkne0g|7yjibmJh;o{NunMENy8Y+o~1xn)7aceZJABTQ$W0evSN-&yR9#uiUG7*CLRla&z|2 z4>LvV-uzi!mc`QfUPs-Bxy0r{;l=*u-OFRnH~zo$v!iWJjnu7>mUm~AEJJJ;Z54Iu z*}x~g;_He#TbCa;iTi4j*Y_>NzLzW1-MTz~=0@MyexEMZ+N|bmnf+z%<4WWDx2wW~ zRCb+bdv_*zchxMbyZk>Z_b{3o*p^xvcYijx>yviVVC&Rxv!BLfaVwvF(OwtD!}v2b z#`wHq)O}HZ{pW}N{yM66OP=>%RGiG3NqNuC&3kP8C4xioNQENzfkz7$&Uz7ZV(WG* z2VobVJTb+q`xh4EGe21HH_ZCM0<~IG@7?D&eXRfYXpfTH+xIr{YcF4l`ziPH_NNV7 zDtEox?w(L%<*i*@vEO38@6iRbtY)XOp1xqZmAOjo_i9GdL}_y&wk>mX-ba^j=Y-#+%lb5scy6m&9CKaFWa5b5pTU&VTNz2B! zXFk7p)m8ELsWi*^jO7dO`TRZ-Fp0~kv)IsZLukEI;wr^?n>pyM1x!U6V%GNGkSCiu@o9d>C zd+(AmE!o2V&*Edj=lOnb)~!AAZqvmKt8)|2=zM$jbmN&zeO}@>Ca?Z?xigL<;qWU% z|LWl8W$L#>rKav?Z#ve`P%k}=??8e|T9lypI+KO^*(wT&Uk@lASTJ8)|Fz+gq85Q9 zmKDtvAARHs+2m!#Yj4~+)0n&L^Evh{j1~na!UUZ-dgX8AT3EgKx;O0o^Li674X497fb3QmvOFhmvr<>2J-c-QgMDSMgt&5FbRLd>DC}eZd@$QDZ zc?bNG3q|`*Ty6Qm{BNR*bYI}NNbZZCjm+}zGWBd0#BV89E;g;+TdDhfXLZ~A$I2}N z$&+&!b>*aPNhY!|lzXkpbo9NTqimdBsw=eO!mBL}T^H8q)K!&O+uQD%d)D2!^Jm!o zqFLRaEJ{{QTwogc=g;<+E#+&Mm-4yA>T=%Bi@K z&}+T+-0vWh>2-%*F3Rc;7p@MTzW()`r}uK-+GmG7e*Ub~PCGuL$NpYU;*-qRviaL? z%I3^gvdIyClDRtWW`lyzCl-c z#qWCuqGA~$&g_`gRb|D0pr%Ov==QYDX4-EKu6t4H*y_A(Pc6qxZ~lM}dDqQK>R67e zY}WDgj`dX5nk&}6bg6o{^_e>>%#x*5{NG2rb59GiFOg!fJ;q|&dvy8FEp`)LtZ3ZN zApPd^qqPsU+&L7F{CMy@jqgtB*?C$8|3p1XB#uGW{sTR%s+GpGB8-LgNOm>R*=efU~n(dmP87j+-5JH6vz-08n(=GMx| zgRZ(rVT`abxw5cO#f{07z0%gQzuEro@#vY;GuT6{L=SRq^f~5u_ut|t*@{E3fo_{LWc?A@S&xxC0Y?EC1viHuUmh&-?ml)?we+f5)~z?#247EwL^A~5^Qx!kThPXf-HIX0flZPGcH+qCO+hxvo&_aocc8G}ij=u+6B;uKPv|fFaUvlJ1 z3-1Q=tAT-;stIj<2Tnvd&GP&Fa;n&Z)?0sM?%k@FZeMOAt96=JuVh;M-1;eQhjR{D z)qhyp-{}}0?>N`0sUuVGob0+Pp69PYH+vpiIm6_HjD>}1>z28K8E;KxPOjXy|F<`n z;xYEWIbyCeHE)KT;@vE3btdGwcwqCy4Cceu=Sqz8zL`wld|m!=x+eR|tWC{o6CCPA zODx#z_KSbMzWJ)zfpd3HMNJQv`|Wy6@YWaUF7LB9HeQSfa_Oz&Gc;~X|DAq&s!`UA zv(H|;|6H-{bN%ya20Kq4SvvdhCy~20d#C-LYyI2G&WXb?>?G5MijEhZx;M^VY7q$e z8XEKChY;_#gtT=h9;mNmoAJ#iUoOhw#gR0<`j}&_zZ}x`3whq>Zn(;_KJx75hm3bD zOQnKq6&6|@xYU#D#^wE}q+m5y@J!LaJ@ckMUSJxzM3v=Y#Sev6%g_}{k0a*isu-Be zG%r7wRunC|EZ9^)?)a~!%8KpZ7JLer9&&9xhw6fRN7{c&UpV(-D`W5M>zds8kLS$R z?YWaXIeFWKoxT?X@6DQju0Q$m$#ePd=AEe6?R)V+)t4OMCxxry6fYQCn@UX0lPmnI zmisDlrA~L&k`FUQ*F^s0d^>UBiw#!wZ&%NEzond~VNOT=!;u7wX0?d$ z-M-BYTTFx5Vp?rp{4up|Sv5WE!>8}YmPMgYtJbZUfB06D#jVfAky6{5=FjCyy2*Z$ zh5z)POK!1+x~q1uwtUe$Z_v)_X1pwzd3{!$!o0ZCf6vXWl>!wqyXAgZO+r zkJtNovM;rIsy|Mi$EtE|pITwqxrB||uFF3AYQmmX38X8eVS8qtg`=}z-6&(GV_k#R!`z&d9lOspmF67(KnA>?>*jH!hX7My^_=V zV=+@szFrn`@8^Mz!&~N>{(k=PTW2K;)3hh_=Rqs7P2MvB!Z!R)_v@u-%!PXMd*XP$3)QQP4 zO}cza^6bWK-`}&d83fPUGuQfNrA~2S{f~<&CdVuHOpMS@R{3?fJuuv^`N@{`p0^kB zoXmXc;isLvZ=M{M{a%r_W~;yU!5TOB4Tc3TqHn!=K5^UXX|^+8M`VGTUpM)pc$j?+47ndBobr~*3KkTQ zJpL;t`F=GA_s0p@=kA|)?W#4eHoZHiTMc&S35OxyNu~_~PCb!zKId;7+%3u6e}nN) zvuDlmqhfBqBFg?NZd*Pj^8DwtpP!kzFG_TrJFRSW{_Ez~kHaTR@4t1lG45&mvQOPz z^PFEr&fF9IZWmAWSH`&2fxJ87`vja9t65~q?w)+Dx5TwYBJfq++x&b-$;z51i{1-> zL+MfCg&*l({Jn5-@{(+&mh?%hL6;55 z6kAH~-#s_$-<-?0a#7EXf%a@@pfhVFK^(aZU9PC)T zrEB*$hC`dTZ?HSrP_;x`{YdSPZ!P(s=QjMG&DrlK@p4s9W_<0}s~+KwI~JNrboPY= zM%-F%^bP51LWgGb@dqG4SM?^R@FHEK`cB-zm2DpwC>@rup-teFOH+KEBjc zP%v}pqBRr0buLu-tJTfA@Z7}yonIKL%|Z*V%Q>95Ty^W^8SmotGW#Nryw<<3P~m3H z`!y|Hl6B^h)>YMV;UAs#{wA=C>p0xX+O*kBFnCw*Wy9SkYmYL_(40O0<8ny+X6dYXU{oa^|jJ{dGV6X{YHHsUJE*P zd^~aUU6pmboYU{xJX6Q7^8;p7&Y6`4Di3r{#`=9RVGq^5UZ|theka5>VezY_r84~| z6U$efncXVz$nk{efk%pu7c9Kw=i$UMc|*|V-x9pZx!Hk=Rwo~=mw5liT)*&}R?CqW zfwRvC?^xM)p^3Ss#CH0TJ|nL0_sjC+D>nBu{e5dw{)pLb*PhmnXjhRrM!Wx8Kgh^# zTcUGsXI;bBz}}i4MS{93ttc zLG*Uz^E+9~%6HVyIUMBvc}?h^+P@6>M@);AmY>?Wcgs(k*4e8#&)q)$`+E6=71;~# z-kq^x?c4=DZ~uJy-hOjh%F+~P$+LU=vkygtPV~MMqWiF&Z-eevc@BTBLq)5kj2m`N z>sqFev?v8sHp@lHZa18|O<={cOq`Fr9zW44xaQx-n=O@SKb1Sx-=gr*rCinN< zD$L;}ld>OzvqYM`<}cfY06;`)) zR-f)UTW@vJ{rktXrh9+yGfvg(nW15u<*V?J^I%5vvkeMv{ZWh6P5k;7pL`RO^7)AK z&)SkL1&PjlYIn8n-Lbe^Idyr3Ma5+0e~D{;y%n2xHRj2MKhrBJ>*S96q`hf)ngb@Atw;YtfW36;w>==G#0^ZdxPvG;?H0L^l6N^S~_JQKkf?Q7ZF#;Q{Ov^Ge^ zs<-<(!vgNKXFT=}z6F<*oM!0-TA$ck$GkXc=9Lh~QsEm}=aOfNd9SExS8fsD*ZqCA zNN;PaVDcAdd0}UVQpxL8|J6E=J(xs(qrBgACs$I z6{X$MPui7vT;FKggk_(v%sd!ZKaVZeM6hjQPsxAi~sH4oc^8njg)BLYWK?QIxG7=Uv=yKJJSzkcBn2^VEX(|b`58=Ynh*D zn18+ek0lE(mi_l$8dw<~u7A3G%hkkPxB3<*Ury0cxtsL3s}t#48^-#d}mBTrA9c)ib! zL-ELpM+^U6liFgT^K9NvcSz^?A46S>8tcWFkYhKsvu^&2D;cN^cPnJx=HYq8-m!<(gTs7;>0#20+@vO3ZIeGu=ro1k= zy6a^|boS1e{KNOEW_LYmd-r?EuIhV?-ADgbsredjQYkk(yZd{f-51jgL$}Jw%8YEH zrN8-ulClo5-I)Dq#fmLL2F~qvM$;xlyIY36x+Apfsh6hvy}gDC?aX^?V)E-Ae&)!u zI(suqI^lU<>e}DhYjwWZL? z&u6tHP&-5!*3sKrx1uDEbMkDTm|Zu2Dy;t{rPv~{xNrK~?eQrx3w`%5+;OExR=QW! z^~#Fp0>;jFYi(BS>pAUm`i>)qV%te*JJYEnZ|--7e*z4myH>caInQ_4U--bL6*XM* zBN-hRx*Ts=w0ip`z8C3hlX9Kp+@I|~61V&FoGqroA3m4=Ee{QD{r>f$`v#q@bG8SC z6@;x-w(;uU_WAmmEc5fL-(?g;PPxD4=^FnNDd}mJ$C5X0T6)#_KyKfcx*o%+xs}H) zChea(_2pX!21Wa*qqDPl78q_Y+dlKq*_k?bA2^trHZ8eR$+Kfaxc&Lv$G=*uBR63; zSZ`%cg&!j^;oiu_0=Pr3wONDe$wab#9?@<@^;Ubrl$17jWVzv?tUxnkO%^Jf-y5+V%U2%9gnDtCq=xXpURU~}@m51jL(lsadY{qNonZcc-Vq!%fS5ulc{ z6NllNS)a{6MO85i?iTx+^BU3SR}@kF4({%}x)=Z6@Zm*HE1YJ=}%{&m^bcv6ckOl^-XAdY-5X54(Yz_KHV#B(2webo}D)9Ty+oE(UuK zN+g*~Vod;<+wt&9h+o;4GQF)#H+BRDom#3EejKU>;^`kJ#V&wZhffL|+;m5vbycI9|eCm&X#{7daCPtBKlgI!w|B*7m$KjZa92dEeQgqGu5))K-{zMFH!rRPjXGSN-WPQHx7Qs$ z(m9i;;JN}!+p5D{9 zEls9S^3DFbhO?YvUYGhW^Auod0Xn}9!pBy1#Y|e3 z#c5yCkh`)<{Od}!ig3O6G4~D@zq%c<`;~3PO^9nDk^Qg@T73Hiyj1e=nb9;~ZNh~a z2_a&}VF$v3{T3%Oo;0kwB4xV}bm@v7*9Y@SWhLC5ZuS=>4353dT)+LB*8LO3AKCtx zG`6huP+PLL>y?_rVyCMY&)tnq%lUWN({5M4x$u`8>!t-Rj&>;8^SN?u9hd&_`Td&m>xSj2yQ6M^x?HeS(-HSX?f}T464fSIFADO$+{w#ipWE2rcs}sq zj;JHiFSpLHK9IQafx)io90jXhS?|@dPRS=VHU#Y{XV1Q*Xz{RJ=X9Uz?UbX1t7lw4 z)Kz`%vTJqi)ODNhRc%?3jR8+%~b$3afni z+0F^?i_bp2cl~zKGT9HW%YBv>2cxBxZ4Ds*9$B&A8rpE_zUle)s5O_aSorg;W%s0S zygN{~S?co2G?^QPC30mEtA1|T!Wr$(y|umn;)3o284T5b4eO>AO<1L7ox#NUCET%{ zIX6W|aeH6UnkzlB89RecO)UR?e|b2#$}8Lc)h^E{`Mp7Kc#)|0^NkMcPk|f+kAOy4 zF68^gF>UFz&ta#y&aEnKaesMn*RJXB8$LgqI4$<{yy;;DVT+Y-NWA!D^L0(gG}ouW zKhAJ*aH(3UiNx-mTBg7d@Y3nRw5J==HnXAdlUvSk` z$~`M`tv9s8sT48tHX7xjjnIJ0_p|s-PU~V zJX)w$sBuFQjq0Bn^ENh@8^_3S`92jFwf!G*{?wDZan`!ffsx{mQp^`CD_x#f>eWx} zu97s~_K92kE7zRahy1mIe*HC_cDKIc?aJs&Zufj&{hGe;{l>Vj+d$)7QleV@si5W# zC~1Q8emZz$ghTO&$BP{YCqAhSxwFODU3mKU@P{1zDko;Ip4SRi1|bgdf(vKRtZ7D5 zXCw!EaNMJS*Mg6itSG zC!nP&+%*DD9EN_-b|^>*+_)a${=Gk+%~p&|a(ICAT{ z%DGb$Beb0#t(kKn)SpQxJAU$eteghMr;1r>bLv*N<`hZiaSk~fAJ^&y6o$J`JG#< zA?7I-hMn7R1{{l4Ji*DIwT2C>YQ^?l2RejRs zQxpCb1V=6{P1_Z}4)ziIXQEJ~>%EGdo-QrB<)?V%_EP(i77~5B2tCU*91u zfBycOuzUVKPv+MDoc=DEoloWg_%gn-HxdV>`uHKf-d_1RtxvZ2U(u<&?Vn%A|Cg$- zujiAoFgRo?El+}jwAIzy_w2DzQc^OI>fQ7Cob{TRos-U-@!7O#liRMU$A>b`WbR~& z=+W!9JEg28YV(Ohf4+(Z(Hu|9c6E$zVBbXYE{Jky1yLPGHNEy37hw1OTMQc zC}qlYZZ%Rlm$YZ%oUpbdl_@7GZk4MnKU$%d+n(?FdtuL+-&1$J~mFirkhpJwB0fCNq*jY;oVOlj=YB>&2-k>h%0PAnYLZ;qLpo>1WQI z5nOlohaxz|MBco4^UO@+<-hNP4%~i!Z?AI1;*ah{QIV4_?^DMNpY*3ED{gHEIYu?N z{k`Y!htavYxlf)x4UCEDaa&yYa|XA#UO+^IM_im-Zf@=z%VM_KXO|WD9`C<6?eZoD z9k->&dDy)E{hWW3eGAilHnD#X`PankENaO%+Xo4obIW{Z@2L2g^nL&On4O1Kuit0Y zWGXdZW%*QP%e6en1Li&EkQD8G4CGGTW6GJ+$<_}G7B6n@l{PQ>{w}sp&i2%z zHnu;0^Pfc@Fz&ZG^!Wel`j3nM|GWQlnxFdjmWdl@bjm?zqeOKP3_V9_vhEweO*0q?HdVDI6}t$ogb}1iQ7m^qj_O%Pqs+p zgNl|d^83Q$Gx zRUEaBL2U7<3Q?4r|z}{fe*c|a*|Rf}uU@~lto)>M-v0ldBR?5I zDY7Wa5)#^w(hFLCg!T0-pQ>o7drUghdW!Pf<0pbwhN!5i75(~>2?~#3e_K~q*Vfx_ z7qzA@He8;{_(L&iy>^oGjiPT;w)K>R-l_U>(cRO>C*|B6OPkMUjAQmxOl*tZ9#QvJ z%Gc4c=EwH^hSERk{P<>^J^XFYy(7z>rigVP4!Ti%&@Sh^b Zx$mdbZXJ5GL1dF} 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 ^OL=5Ys8}z6z9HG?UwxUVP9FG*=pef zvDHoWf9>yo`y19;csgyGic8`1L#}JyUYt?daM-Q?`uFl+p)GSVAMhFKSZ$h_V(a+Z zNOXm+bj9`@$ejsW)V4fw>#15s{-aysu`7gvPFhZX{+)B;O20=Be@v7re3T)c^DMk{ zcIW)>Jl3ze*!ExExS8|yOg5`4YGR@?kHl}bP2BIG+cKxxeHu1`$vnp;zhaO+LU$KVIqRsx-3|4_1wc&Rxp7b_WDSj;Y z`!jyRa_v+84I@dk_ zS{1m`$@{|prE9&ueP%KGf874V*X!}0)0>s=#Lm3-WX3#;P3zU$-aNnH;WNidMb5A1 z-($%qGvxA(%6xb%mpLncEO<4c!lF>_=ZtT69$hKUPn^5E`MbTJ6Zeia)i-C{Zd|!! z&fk^BF9W9^NO?2EV$=F|^^XNvk~5yOem-k{zh}kW4K|EApnXx|Tcdpa{P^zIs^8BS za^f)D?CB%o#G$An$Mw-;*Zw6&-zCD>XBaLY?hSJ<~4Tb&1`}e0THg6Omfm>sx2MQjt5SQ^X89vtY}| zx7+u9cdU6|egE<1^LCG4E}#GG{=c{PpUlp6;!sSJ>Ffk820G%bC^xmrQBHo#yl3G{ zyCr`_Rpq{7th-zlwX9w&scS-oh4D#V&?3vr$CCSP*?vr#mB0V5*zB{%wAb%(s;je; z>sLRsSJ;U|QLXQYi(-p_)1!p~P8^Iv{OMXy54`YCldFDXC|Ccd5QOjKnb-e$EdTTJ z{C^_P?r|!%2nf3;Eds52`WV2W*uv1+Zano4!#qQgsLz`sMdu$+op~>o!;n=oSM-m` zQ;F?PKZ2tEe^K?f`N*Qb|Buntt5;Q2RCvW=_k*!t%My~b;DISd2cgo@R6 zuM`kgKmJ4E>m?tNzT#S|UVW#Q*;hK8TG~I?*sXrF*`mgkvpl?IhQVdk_Q@3%n{5Q& z@tvudm-nhKdgEDN)yJ;PuL{1qa~N)|*p+GVMRBV5trvkIFT|E@+@&zv#d(LdSX|cD zS@M4#u*=xh%$Wb@iF(cZ>QA-HS2|?c9h|nt>dyE2#Y$R=Gkco8E}6O9uSMpUWzCsX z`Oj`o+H31CZ+P*A(=76r{q)JZdd^PS%3L_xqAt(y;^WKKd2jEX*~iWQov$PEn0@Ry zrDONA1OqclFJ>r7)V?#?z^iyHC|{XXGt}nqZ>3AT40?I8Ro%^B#lFosr}ph$D%YlU zo1T>CPn3~-cg}B5XHVzf$MdtkD%S1H?#r*)5TAPekw>%vYQCmphmG(4I0@{E#s z!{M{Zhoj=W-J51Uf6BH&Aju`hB>ZCu6%nM+p1*4kGWnq4bgEWAi8s)K9GwLRiD;=eb&Z@(A4 z_*5+0R>dP0o9633+RJVDV$!E$($BvB;maKiGlWUl% zBK_plp);zcNeYjJ_@Aq7I>A)_diI8QH(jsqO@4F!T7T?s(CYq{D;@kkt-k_#WOp*k z_{|IJ3hsKzkfE9OxIg^!w>GPLw=TOn-8{Z$Cr8xwyax}&tFG0>xy)jm6RxFkw|J&m zySQ%**K4n9lXG4yOuTRCH}~a%Uaq@`M00FEF>Rcv7uDUZp_{*0{g{taOZkCgv3FKk zct#cqmy33Id8jW}nYwMw+?r<|4|;dSMkqyT{=3MS=d$ecyXVHc0|b(SHkk*e_NsmU z{`dZ~KDC_+)BEJ*7rgq#we9t}PoGWKzThppCDZxlca8DIuTQ7ETfg}5LshLz$!PCQ z9sOT?lRtf)lP5H}YQ^fehip&#JX`-c^4j++OZPrwX)nKC7~XkkkBwOL-mbOt^OfzG zV$PaQc@}yx>9f$*0@d67dmeZ%`=ycl^p6hvy+1X~$2bDk$s~Cv+WfBn&$LT0=lYj5 za^{D{FY8V3J}zHBr-MUs%d%A~TD2p#XY;-K?Z4VA`1-np$OXspbeEUxpUTIc@l0)U zWr}cSnyKFFIJ0MEAD(ZEaeArb73H3t z2knkCdlldRAJ}}mYNnpQ&PKrpe;yf?Gl)Kry>(^ArR8ZG^|roe{~gL_AI`o@WZSzA z_wN5O$#vzN($`HE-k#}wX5%Esou?Pd^1eCsHsPC-uFDUWX&F%X) z$3oh;;rPj^cYp4Au5QOG{#&j4q=ayDpW)BrH}WmSK3UZ6Kl}M-4rhR~YTWts({j?w zo{Gho`rZj$otfs5pNyk3i*g0kP@q<;;aj{J6r#zjQ7xw$pb|961<$4z&0CjW2n}>8Eac{MJ^Chn^UaTW zJmUX9GK9-GoJ-^S#C>zVtZB*4MJ7pV=L-~$HDBqd>kYTrGynbfZAG7UGRJ7HTTodk zx6Ca*_tJd%|NXv!e;z)O-CwA+({_uMn(yMXOq?X&y)lJ9V7}&!bM+pc ziL&MI97CM6UVE7(yoz7_O=WkPS;6ypeLvanCmrwJ_xWP{zVvG-H*`p9AO zMmv$m-t*q`E$2`^zkhZYpMu)dIe%1|`Z({J%A8xd^lWm{#ZN9KZ%d~ovM^hupA|H(46RLVuR_oz0U9F zOOEh+OY3U9&E`Et>9x8u3y3mmPvr`%p{IVXE5^Jaa%GP4gCXHDMn z%`W1p-(K#=pIl15TnLKr*?QRJ)Mmqk>_?Ly_5C&vZ;$qqOg!_o{LJ?&^Pf(xeLCk> zxZhLuUY?rGPv3+X&#Lx~xGj3XGq_azjPEg%>^t9<$@@uto3q5VGwI^Qocpd%8Rp-< zxc`)JTf@%NcdMj#EvfK%clzLMhM2~0$qjFBs~4>ASb6$(-OTT1W(hi{(o;8NK9=w6 zwU+L*tZ3@bo0o8RkDJ$blSgcOzFTeh-R++&@LTQFjN>l-!nfb%-QS;=e&D=K!5{0= zk^?{O??@OQ*zovEht<2Ki{lP%v6*=D%Y~v9U3~l+j;~Y=i!0vW{IKl(gCA#w-$cG! zVD(*R+dq3gDSau;yAj=K#})0ebf5Qr(euk)v*@&Q{5>g!^L*1T-}>9{xGv%C-E~W! z?3n%heC?V1b#GNSZf=?sWjp&--vrBWXQ!K-_k}zDP1~&?Sh{Pn)W!XU>jjm4mn_S2 z$b9PdyxITOeEIV~_4|2mA1Nq2U;0~T_k8U|D|a`)>dBoFQ^koh}rt+Lp& zyw7^GP{fuyE!&Ttx;QudrT)S9api)u=XLP0n|}+x@JcaZ-*;014Rzt9Js!OlGh&SA zRzBf;u;G%>?h8&PVKP?SpT%E(oX5Xs%i3krtXFtcluN%BTlFGAnqB|O$Nj(7%~+wd z$RI86@!b&Xb&*vvqG$J&^GtiP@g&pQz0wvxT;r45Op5w+-1c8+GF&uu+biZfFaGS$ zi1Suib;&E*S3Gv&+I?T+dnV>5aT-ciitNeKUDf_*n^sWk_UmtVUtHRq?zxIFmqj2` z@%a|kyEeKDj&2G$uYPSF`|FoNCnN0Gb6I8t_pac2`-Ndk%(BxPde(aLW-u0~3GIry zf0Q{qSyy*g>YvL&wpkBeUKd(OAwqcb(&l#Cf~DKHW?SOzuDZIK9<3CM*2J%jjz%8+v_LUbwQaaj~x3HQAd! zMJdMLG-Bx5D)PrfrOI{qOf5IsE%#VDXvv-)6t{_MCk4i;F>5Z}HBl6&F94ta@;oucLR} zvC}0IaY?TiWn6Jc`e$}0Oh2ya$a2Gu+Tf|DqmG;}FZ)p!puXujf8~+izt1oq-_Q7t z&-$2+z^MwmNm55^4ElY$7u@`&_5SMZjbF7g&a8zp8T9!j--)T=~hY@1Jf<`rdH; z;el++X`##pOJqWc9-s&a$MRa%J&_MHg|KIV`ogwdhbF#T6SygUX-+x!y-3ZR z^WS~{%IIAG@oW9z@F%Z4LQmwn=$}o^{d?g~YFR_6?01Ehn}3h+ERWthU3Qwk=8f8( zw)=0Z4EBZ#Ou}=q!@a%>9N7`<^chUin+?cK89&C2>N=AucAnI9T1^UogIP_pMv%1^W}e$|e%& zm6^p1&kj_UZJ1+rL4rlEis|XwHj}a`Ujiz>Fhmy}-0?^Cn&=Y4C)e^;obG(-nssDD zpiG>DYYEGR^2Mj8%lEr%*s=WRpD3l2(2KiNrHk_wL$}_HFnYR1tY0sncG>II2j};M zFlRj~f2$-{FmJz2#$WcIp%1D){Qui-cEIZKpNB_!)Jzx6c=?3wL(1jp3;1h)Pmx;d z$6R6f{Q1Ppi(hn?D@DCLIB(|hk4(DTZe5=8E`PzA5A~bM*Rd58ZVzWX{NP%SsOyy2 z7mAAZ^UcMrR-VyV$f|J2O{S^OxcKD1Z+e#_*jZ)zt;?n^PqxllDptgz#{X7^{IA(w%N?gqIIX{W9%q%I zXKVQp&we*?*6(wa>khg5)c(6SmwSP!3!~mU3lW1AFJG20Xe}z4^; zIeMo4zR{CE9LHWWB&Qk8;to5-)!5>z@?uX*fmdJSzm@Y%ZDJ?cK3Lg!U}xJu{q&zU zOSU;@A1>X^zIXoL9row`?=ocDFD?9tv6N@!&5uVUdUCctD>V6Tv~1Ou#Qo+AE@pnP zVml($KR5cVfUwGk7OCIMRBLTIz1?>gJ=kda#ZaxG!8D{`-^Ww+dsWgj`i0%sOC>Ln zs$&1|nS9~FTG+ zSIhF7$`x2z-dJwDQtnUtMUN|lS3SMmk^g_ns}mvj zJmwe9?2u6Z_j)t?^=a?FJoVZ(D{7WZafQ}{)!j_joA3X>uP(29UpQ$=T1D><{oK%p z@0w1n)XL$IXd%SvlYD(77~#AHsAZ;?YFFZEN;(U zsl9%wFJrvcs$)CuT>8E?K$LUlv6E9nxE19tsBbd5>RFn{dUkuP#@@RovRVgEB^inR z*eQDT_V+rKqusB|jIVK_t4f4q^oI&V+>c{lZ?iLY#YLwjXe z3*y#4yu#jmzi{ETql;eVK8@PVz4W{GD=llMD*xdBW%{PO8CrLLU2E~=u7UB4SvO~% zU$B@xJ5N#lyJ+E#3v8Q(B8~WrL;u|ENP72T+rqABpH1h)YkhA{#ixg%W09RtM_E@<9OEI-i1f(9>yOiu35tGVe2Biq>anx?3;$K zlV*7C=}WU){qoq;!b?$cuI+k)-SexL+*(p{=I;Kbn~wE0b+3EH6?NtO1gYhGv(nj5 zXEOIWI^GJtwYoz6wTkauE*BSJ*_BNF;;g1xdn{!4sRuIYt1mNMDX2c>{oL=zE1t{q z7d(}-*_o`GW*=0H{^)!0&C?6A z$_3xQS+i)D+K(--8DBeA^7yv&Ug=1BHc9%xL$O3P<=ZW8FCRtan#XyIt-f5k?|a(S zZwvaR3rth)aqo%T#`9T6`ue#mMN4gGJ-I%qF6G{>QJcpcZC2N1eX^%- z-tYH$oF4mU%qiC`d6Jv_mj8RvIl}}gk-tgXU* zi)U(^zFnVv?D?VN9LeuiEJ|&ecqM%?gR%D{wO8NPH{HGUP&;M{-@3UQlivO=U%7~L z_rd?qukpV6{@~8j_5Art2lh$daPwL4SK`nvCmwC1dEs7{3gq>d?aG}oDSH2mweC74 zZ|-fT)S!4AB_Nt@_O+DALY}*7~`#Wb2 za$6aBhY38+cl>Ldqw9G*cFyrzKX~^PE4G!&uRkJT=rd1NXF0C{n=5;!|K0@Q=;_ug z|9o7%=2xOzdZgRAX_hN4PM(o_Y-75ywfzgeO><`4TjDk+05p(oa$%v_#uX0)_Mb5O zVSC(7dO2HAq}hknyK*CV#EM>fMLd7swohQO$O^k|v-MBTHlMVqT+jKsRm{U9z4~NQ z)3gVSpZ5MY3zT=`s9)kHVtgg}e$D5zu%U8cKWT^Z5 zI{tTT+1Xj93^m{HHgEW@pBuVKB;J^TLF}8Si(|;-GJAjbXa9e&@B8;F`(I8)g`bJx zG`wTUJtu2?yn8j=oF6?rGBLR-=|mlD;JMS-;5_%U+4=h<19yL7*&wmzx3^Yte`0Ba zrE%SV6=M2wZChy|^eVSfS?#Q9oGDAc~jZ3jb zLOe(reCU=>mC^5g5-uBI_d9XaT)wi8Lw$4H(l_(ERxBymCNKGP z%J#<@_xIJlxxKxA&mNn7f4|-Sz5o6HYu_LD+n>At@7wl*Qh$*72H+v*9_^Kappj=q zHQSwxI&6XZCmuInEBNljVYqXJVOrkffM?qZ%2ig>{{F`J;A6$R|LgW|khfSmUBHRM z@Gf|`+i>3!H_)he%ZxWETp5Zj0+-L-|Nr;?=d0oI7jNG5%*n~wv0J%Cz^SDdX)IYW z4K@^h^2CV)874_4QYTNG;3zL|5pe3*FmZ-Pi-41d4anFdXOztw(m9r{ZJNJK=JB-j zAE~VZNvnQ;x$OV*)#~*xUcGvBX{qH329-Mz!=84Sgj?V>) z&V4;8COq}E>zdBJCbD+%aRHfbg(2tQa`xf<7#2VVR>V}<}VxgKx_Gy&<|BLV)nZ4tN+tLYmIptcTPp0fBide;ei)P(Hd{L z6kR;zPE{W_zAvYoEG`^tvgXUtKWx?wPTBL`C(X&P34L*EduQm!*%nvD9-Vmga@o2a zO{+fNH4^JK2z+7nPtm;O_0Okgm8PBLF0XHyq2m^(+|;yo*_`rAn6k*t3I3k9lLs|WUXn@vFSa3wq?)n(Acso!$h$E%Gr(C?j0K@TIeoo zS{bg~HS=+2LAk?^ir4l_mtJ=&O8K8JvTN1)OUy6aZm&=T59%s4Zro>Sy&-qbme4s% zb=7)PnyY%uRazvCb{J+@?HcV|=& zcgcmM#W$BtShM}|r8lfOcQVQ+<}pN9^Cze&UYT_OJ{}%#qA<0EgMIl~?~p8;s-2EX zN0^n@2_B3Lb~#vAv2RJoTkbCzhcA6RaBR6-N%7)c+((68cPD;R%epPUH}orbIGc$< z@AZu>%11&}3!{AMg4er=7`NLn+DNV_oxvL$vx)CV-h$=L-ti5Ze$89~w@y{sE}gS( zUw(jAIN!%x{q{$n{q9`X<^1Q%N}aHy>6?pRr{>5VxOe1auV@L+%u5Rmv<)Fw?=Gr5MN;R-ifQi%{OY}$U-5eX#5?!P^0n22%YyE{T&9|C z%xW}swt%q4ft~z2X4yY2h%#IKXmf?`W0unGe{I4azkHT-tm>MMou|9E=Je-!??;;;M7HJ;WkxhwqV{uF$%hqKiBVA9rnsrk+!&z}CCC-&pw?HHL0ZF`@w zSkFI|6#7SvPi}u}^_BTf9Wzf}jVb>Br?&R-@;g;OZeL^kbYF07^|MzO_LK+gleN&Z zULW$ouj_s1g6rX77w+8W?Vqf@`)@z@zh6(K`#)8xC)=(L@@ug%y%BNL9TAYR( zMWQ}$`xv)(_U_i(6}eASbL!4*eDKq;J37x zzNePiPW6wy-@lFjQ$=mIHrL^=`3KS~HA*MmN#4a3-h1Qh(nosFra#%3BXsZ2Tk~h8 zi=^&cJN^B0{d4i@JDF?aC%yZ9cfrajqEXv_rJdh#hc{t);{AL3mUnLcnOVPw|HCep zr)9jXA0yXzS-KUk?~WFAt$qH{`KRmuPtCVJ?$-_2FxURzI{B~LgZ(Zyl)c%i{`=oF z?~e^OS{Xg!!9fRVN)`I&dhcX@bnn0{vxFROGden(|48v=J@y%|b?P!!o$07ByDF<# zysoWflkl7Ka<`TVB+X&5`u?_eO5PgR&5s4-w@&-)RwcgNEbOkn*ZXdR4R7wW@7aB~ zDHgxMa*@q>ICtr7th0YSJuAFt zV&3DJ#L4f!@_*CUynDB2;|mG-yEYDO=Q^W>$`qZh-}bn9tUIGjwSNGKI}11i1|0^(%jx7GByX@&HXpz#VIeXmMUbvS1o(vZ!h=3U!~_g zue5Ei{Qvpvk+vTyMi<0+j3^@GePjXGb z)MwUm?DLZM9{k)ac>VkZ@$a_{rq6j`Zr(rP;mW07euVSuEfZ+m*x5^qK9te?7GGcxR~Fy4r2a_KR-)Wost?mI_I&Tu1MX=S?;at{(U>!o;Hb$=ylt)_};I4d~OYkn6CN5 z+>J#g&qIH`FTJz(osyZYpe$eBoAnE>IvlNp0U$5?NKDy1}aZp3ecSoBq^2^;ttB;;hHeDppaED=@NrS>LMe*=(O)>S;UY^xp~34EEoCwEO)&?w9jtJQ0ze zZ)5)9@1^yd)?bsg`1YdbO#fx3te%9M??t~XD0CEFIqW1WTFofF+2l|IP(-?i>n^p5n% zh)KCEw|h&rZhyp(6qFpmylqz0y9G)Q@8+)2zTtANh$)(%&^Z&o zWV+^pqfZPT$VltiON9QF$y9v)CC*4Es>2{5a@Fy>_l%cFN1Zl)VKw{3ryVbLJxKeP zCH#$Bc85)@$;~e|a~JR`)_=5*^LS_2+q%*%M8>RYirgM<^TI!Ameodg=bW~+{lfN{ zMf$sxVV)u9=9Ca_6zLeqTJA>!_F}uYUPLK-ZkgsI_u;jr}>BOXyoAtc3_bDZNvroU(tK-?* zc1yr%nqsf4s%?mz?SW}A272|KrL39zx;2@%7p>>bR$ej5iMKhc% zd>e}6FM~%8H7-F%4te5YGwlwZH#d8*<9X|^vsX0p_LzJ$b~pQN?3K($gN}bV^}gG~{L6o*hhg{9`r0<-wM<*#A0<#XIL$DJOeY3QpO!?BHvD8S$ns+G~`)s2n-C^fm95NLhjDy_PF^=N3)f z6~&%cGUM@>aD=ji&p?v0lwi>;Yw#(KRT1!;Lr74W@@*xWjv_^6~e=!)LoEUJ2p7zGmx|BR6+6cg|^*dd1}&ZC{nCm;IXi z=ZZ};?oM4WYxbF4lYAxq>eig!?wWt!wi-Sl{_|gTZ&vi{3#GdmZT;O=F`9ndT_(tH zaXwyd%RaBQOnVlv^nL8B7I@;+G~>vfy3e83TO}iFF7d7KUGx9>jf2{*E{nSZ3chG1 za0uOI>hu2h`R+v9z1r8;wblnIb3IfxZ&2seJ@)44hG$CGm3D7XPn|5V^3z`7)%{%S z|0~?cK5m=OYJD!%@x88Io{huDLgW2WwiSj`Z@HX%IX&a7=At!L^Wsyy!qkpT5qof_ z-rTQw`?Wsl8vjcbcS`OCFRahlrMETJc>gb(iHEaqMO0R)uDiQ?#c8`E%O2)Es@j#g zBjNCrnODMZuMAktd0NE!|D`a|wzXZJryn1=xcaC~SH4Xa&%(LphjY~v*6?l1jTO05 zYsBKk2WPAuza_%c(rU&)0__ne~F$r za>PZ~kUM$7zUJ(?2G+%V7e8;2xVrVujtk7MT!eTSvbI?9J~%pOzWcJH<(Y@Ox&FqV z`}C9LOGw8?gGGN7T)c`|+xx2{%eQs7?3Jo^m9yXeD>~?WO}A5|E3d>Q1IZ-MYoP@z zZ?&0c?#-7v6Zp-)s6SK3$8=GYc=NH#J(rn}HCh%)%yXG_Lh9mcw9#N5tEIocHSUjQ zU3c5|h4E*LxCKYUs%KsL%R5C>Pc8BAh15{bl`17sI}2CLX-h9p+!Nq(vsF&$)91?K zg_BS92t_r0x%z+GKlSS8Sq$RkRiXwz=Do`;I`eR4!{rF}zK@1&4zD{-`YrxEfBmv~ z*1lEujl7~+=kvv!1cmG|iIr}d{|pLpxDE8)_J5xLp36{diJQnF_hk+9T&{e+6k)Ww zaZ`~x=lYrKwdKxhyIn8eKDD(>-0OY#mC&*~_3r(b;*MHJs%O3mQ&5`q!b7y;PfSDK z731o8tykSAZIrb-_EgX>R&vSn6(1gz>}Zb<;V?{Nn)`bdmeIuL>fHq;59XvgiC=79 z8{OF0I$O69CoQr27#_QV}t$^YwK ztBKD)>rbW3&-XSyE&>maUNdjoA}0Rn-pBP#e!k*c;uFPE4Zqd~$2Ol7Vih!0IsWx; zVVsg-t@y6wY0E#V#NFzf|LoFFwl&B53%>+tziZ@Ab6Ih5MdP>4A$1pegca4MCw^|e z_~LE#{dJFymhP5(%_W&^CzW3%kRjpn=Ic{(C5x23lRF%lw}?(F$ch(C zjkmG5U7h9s;ohw68oK#Qm%o<@VZCwp*c+W9KD9-GQ5K;U&G+*39~`}T&nLE0H<#XFoFysS?_JcFyh1Gw1dx%T(&x#Q%JK|Ns4X zk!feS4WG4HFJqqfdt&j8sHEj3<#O5ORTqye-SF=5)aL!2cimrZdpLJ?$En9l9?zRM zC4lQohh@sNl)zoZ;@RJ;9n;fJPRv!YJ2Y7!DJ>)Ck0Qf;^PY#>KV8jw^Rzm0^5X;2 zlMiUCzC6;iO!lua<9TV-D{omkuO8gKcgCEiFuwh}8odRrdZxX&a7{Q-edlqNh4E*u zDVuqH|8Xw<>KzxOejT|l|Mock%s;8TCVHxw#rxQQ2|E`Q{`3%cFV9Px%DiaOw2gaJ zIDN}+E7vajC~(Sf?Y!9?6RmE&`2T6TRPrjmC>a-333;Dnv-hm`bc%y_?VpyNzRMw9 zX{!RKEVEsC%gmk}VcDm$F{|IE-OP5@pTlh!_4j!3i?2K64?ksJydZAE*#dL?0W6Ro%y)(`Etu!@r4pcEN61sFVZqtktziu6v zZ<){|KKbf~<6G)B-mm%kaL1BMGcQ~b+mzbRyk4&{{8ZSFSC14n`pTQQ%guVfYPa-{ zl<%qY?7}S`i26D4h}|;OHC;5ritS!BPuc&EJD-CFPy0i|{=K!{Uj3o@K=4zxS0PdR zp1o7uUoV{eTt7UF>BC=FBh@z*QC8KQ4KkO79r|8&DjxrGMDlfVROadj&n^A7)$QxO zQMhM^N#Jcs?IIt48Oi19Z8DdI-TPj4CjRTMfAD(!{%7aej(_0p4t#AtZ>gMoy?46) z%iWAR$;T^xot`@N`+E12hPL}uYz-AKx+~@5v0Y%f1?w_fG3u|4d6+&oB*}<97Y{@2pYdomjipjDdlH N!PC{xWt~$(69C=!K=A+o literal 0 HcmV?d00001 From e709bc1ca7aebb1d8b0f1a4a05e9da912ce78fa1 Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 14 May 2018 23:50:19 +0200 Subject: [PATCH 010/391] add screenshots --- docs/screenshots/calcms-calendar.png | Bin 309535 -> 322273 bytes docs/screenshots/calcms-event-editor.png | Bin 0 -> 131386 bytes .../calcms-import-playout-status.png | Bin 0 -> 280269 bytes docs/screenshots/calcms-roles.png | Bin 0 -> 90287 bytes docs/screenshots/calcms-schedule-studios.png | Bin 0 -> 138244 bytes docs/screenshots/calcms-series.png | Bin 0 -> 108933 bytes docs/screenshots/calcms-studios.png | Bin 0 -> 152951 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/screenshots/calcms-event-editor.png create mode 100644 docs/screenshots/calcms-import-playout-status.png create mode 100644 docs/screenshots/calcms-roles.png create mode 100644 docs/screenshots/calcms-schedule-studios.png create mode 100644 docs/screenshots/calcms-series.png create mode 100644 docs/screenshots/calcms-studios.png diff --git a/docs/screenshots/calcms-calendar.png b/docs/screenshots/calcms-calendar.png index 3e719edf91c2c3130600ed7f0809d774b91f92ba..40b9297bcee7f1fbc207c77e45507bca0762ec2e 100644 GIT binary patch literal 322273 zcmeAS@N?(olHy`uVBq!ia0y~yU~gbxVBz3kV_;x-v+~$G1_lO}VkgfK4h{~E8jh3> z1_lO+64!{5;QX|b^2DN4hTO!GRNdm_qSVy9;*9)~6VpC;F)%1Fc)B=-RLpsEw?5|T z)4%^e9%tmU|691gV%>r%D>FFfw?%KdqO-zxdxC16S*~mJu9;JJsor*fyE@N!`me|c z;qNoIZK*v}7ol0ZOgnPr=@q;=L7m1InI;EU1~@$U@L1+S&Ho4Of1WY0JJ#IG-(IYJ zu5$nS*QK$~tL8Vq7r$OAsidqtw*v*7P(8nRKeK=!3iuwt6ybslQYO$|WXbV8lD{YC zzPV*Fd9}@N>uKM3zWiX*I2^FdW?#2#e;x1tZ*_7fc=oj%{VV=|vvTj2E#g1l|KB5) zTz_0e2@J%ihS#$zfSH%R*L3>aI`wL$_@(kv(R7P{=WUn#`&rsI_3F;$QvAY`r!W7o z;kvO-)tlU|J0Us3?+xC0-#p;+e6`J{7nPr6^Yr#B*WO*HcCY2`>_cslX%-t>*{8id zdTWy7g?^*q8M{MquX@Ta?tbP8Sn!V>+Wp4NMJx+N~trNFSxw^B^>+{j9_(-<> z^?ywL%u`e5UYT0&85+BG_AB!T_P?ZiN}g;e`+vM9^L6bBu!EGQPwt-k`_6_$=6m<< zsi><@o<5!3AtFM;)6?_D+p=jok(U-1nKDBXik|#c*E#3TKlYJ*GS}u@dYt)(FMpyX zq(6vV+a#BEFKSMh@4wfxf6A91xiu?ML-6C|kCp%Z|D1fh{EobR zo5N*W7e6aui#)vV@Rw-kpRc)>&pMm%HSNmV?TL0<`^*34r?0u4m2=gu`8HSH$v~%r z%jbXS-22x1-OG69I_JNJA@z-GuU}r|3QoF9)>l?n8>gHQ2wM|zaF%H{L&U};)_L>h zO_@IZ`;M6HDh=u9=G>ejnE&rT#J9|mzP`K`uUE|flYJol$@ZD%`hC*JTa!MmTm0qn zcF)=@?%#glk6C#BC7zkFzhn3ER>La+=hEN*mCv7IrS~L)*Lmir+y7Gwe`dX_|HG`s zVAK5L)|&YR_hm1(@P1yfPG|m^yZ=ucTidUQe|7zJ*1qqz)pzbTo2t6{+Xq+nPHXN)h;vb9?X5j9Xx$^&-uq(`~KdqPxy6v|Kqb8cK>{+yI8vK zw&SU5i+g@OWO~=fsea;e-`B%;|9o62{$s(Cb-BB3+yv(T5t)4X`sZ&qdiobK1+0PmL+;&^?>#Hz76E&aO;|71HCCXGktj*cH|LUhD zdcSU3zp)E4JG11e(iy)#n>zi~_rB-+-d8G@I6Zl3HE-VXdUKnjzL}>zr7io}-}fZ^ zIKKb6y7qs+jn~6x6uo!8V{R+7xm?$ECws-m`fZ!uZ{ZhyAAj!94g;Q+k3YP(2bWi| z_p9tZl3qIZYcIR={%;Kaf3;@y%f^| z__B5T^mO&76-o0x*&dtz=CS^9?G-;N_%PsN{xj*0&a^w$a`*e3jD8sXTi#y~oG8_=U)OPT z^}Oes*PnYbalV`3lIg}7ymDJ3?)g10d0?{7c9|g)v$NWf!pR?%zscwwJ$zx$q;6i+;Myw)r6Oue5H{53!uxb;pY> zz5aE9tDY}Y_w2E`wkERqU_!!)35q^ zI>()VbYtSDQkLq!-9_%~&v&f&c4qgUx=(RJ?|00zm$&XYYcOa1QP;ro3|-6AQWsPE z8%yif9ZuZN%vN*!U&GPOZAArd)BXj9Twkm@-&$Hb-TKxn%LF0&+ApuKn0`%XmACn5 zu>Wk%`vm@)ntw-w|Npf)E@j4M#!i-#feA-Ttt< z{LKxa*B_Kvt=KX(c{Ll;zIRUdLkixs-rxAR?f%CP&gBKJZ@_u?+24z=nK#Y<^UM9pv%jhZc z)$``ud6c$U^9CWWT8pPRJ5;rt89J9Seh9@ts`ZZ&1d(A+8W&5H7&hf?B16%o%Ux^Z$=-LJ+HUc()(I`ztQ)D??1^q+bdlDEq$l3 zR#j5FKltEQUB1%2^AA3-pC_+&_Q?1A{b{csUXnYP_qJwD$%+jA|6d3z01x9#Zq ziTBUN9fedxkL(f?6W2s+WNO&7$%u!I*>CygO#cV-&M}pFGeuNGGSLaugLU)tb>|l^ zTQ?#7ztH)~_Os4@eV?zm{7`56&$4N@{}dea^OY)3?w(_leZ1s%)xVPX!#jEF8*dwl zzdCaB;Jm%!5*fdb?`~^zS;&1^o7Z`UfVt>?<@%(f|K*miy7@VN_Wma8_Y&v3{cAf8 zKm9T1idELFYj4)PO*6XUxpwdAW9BOsn`ATFS07oQX!*)Yi~D?eV7%mBckwkQm_6}``& z&EH1j(bxaqIabc!cIMo*o2v`Tc698}PQJiA|A62O8wMuH#81Z(3QOwklfjjMp!w^5 z$$jG5-)Byl(z1NH`qr&m*FNv;d;ZD1udMH$ zUuQ0&{J{E?+B)NTDc8H%PuNDg%ErYQ8m)LK?`!J%Gvc*ROTW~$ocpo%Zap&h9%JxYxc>a(=i51ZJ{{?Z&yuYQ`lq_U=VMxG?t(;Z(_ci;7^tgO78bN`ra z8wElbA zX%$cA+F00j9Mjx>?oP$Um_9!42v6fxmu~K^z*L%?fBkXt##ix z<{V<~ULNq}QvJuMea!s*ZBLeMUU&Pn!}SuwuwP!WFB9YHKFjp~t&p@|d&le7aaDs7 zmgM#On;!4JYYN-@3TkG)#^oVT5`6yva-^4-p|_})ePOBfIX4AYMTDNKgRX*e@fTcs5d#!j!%7j zZlcbK;?fsk0KiKxY^1t-6`r-D@&2Q8`$GFctvF_JR z=FjHBJ2E@O?`&=qf4{TfS^9aq6O-<~Ey+`VGanRKU7MTcr`(`hF`O+ni&f?q>z8~im7koB+ ze*Q{n=90BNSrzfS>*n_^em22GyXVf7);sn8Yo_I$Ubu*Vu{gpDFT19nb{Bh}`t?+- z$c=;622(b4NTjK+d-U?gT%FjBb7Q8ztB~gG?mXmEX703Q;`EL4{~isKxoff7`|NGu z1ht%3GGeOh4#w2jpXQsgWAie*3%mTQF0B_2|8V7|%Z=`h?&lL1WvWW%y-h0bpJ?~W z|9`=|*v<1I6Iu66-Zk^e9HtzW1U^akmU2esf+^Qcbi-uYWscW*Gsp0Rhw zg;rtqf6oKHm;SYrKKqcRXwDZOZq?>I16ZQ%=s2S+@L6O)_{F^Q?T2um@PW%IpUDeZYyb9M};;an} z2jYCr^-W!KFLm|%`h4S!{3=G($1IpKU&56+sb{!OC%-O| z__{Aa>5q48F1&bjr{ecbsh4%mtj)5XSHpkWNNd-M>vNOOJ#@0xfAsa0#<5BH2QR(K z{Lk5aV~bkXo2%TOC)d^A_nka#V`e2swS1&w-l55FW6WP0tjnz5^K7Qo?>}!|)$Wb3 z+Aa5|vnqkt)A$fW#MdIJ35Q?FuTi;u@n?BEBF;VHi)6g-E?F#w?uYY z#LZo0cE3L>e0j#Y#w)7-;xC5iqPv&Q=}B<*&GIWrFr4|Ddsf=jGP&uCKX04HP$4{N z!yJ`tHT|`5Uh~d&9c5H>IB>SpWvSZclG}wjjDjjEy6HcY%f$3<_8q-A*KVc4>f?W3 z`My}g>XH+4@DT6M5DDjw$Zd^BPp^Gqvth3<(~9MPl%EMm&v1Wbee=nW=$R7*&ae2A zyX8z|si3!q&1o_B$Dt(p5Bvq%Dlb6ZbZ?{B*zm@y{Zm zusgf^7V{N6-R%si#6aW{{hb@w3({pGHm?*`Ln-i&9}-&h%LHf<7@mrmr8ygR;yFL)ju>UsB4 zIQ+CmMdw=fPp>DN@^MS<-n4PHGDq=kwRvi4YA(VPHg}(KVxRWqt_aJqNdg!BSmz#l z)NkIfw`EcnmzU1Y6xkDt?#8S#Y_hz3RwO6(^fYGojS)Ie($gng{qvwHRwe(u(*7k) zLf&T9LHxUS-d)QwgOi&fd)m_1k_~!CuBF9DD$fwkU#4I>GdJ?5$TX2j^Y?Z?Icv#s zOik!+P4R2Fz0cizCW~#f)0}f=tM|=GwG+!M-xkS~8|m#Tl$CTpn-;lfX89!ZYyUsG zm9IZ|uWu(~@!m_XHXHVC*`j;L`V@!7iM!jT%{^*9c}s;=VYirI;D(u7ckhzB{I-s- z?AOnmy|3@)zV%VoeOo!{*w;;W{{8Y3M${Ua7gkFiVE9_TS^v(|@A9ID=U9GpX`jt` zpzp4AgG0`fl9GLuGKu#R{HmsHSrWGXCX?Z}t9!PIRWq;)2~9k(XNm6`Bi+QOa^2j8 zjTc+D-Re)@vfF;s-AUJz&WE>~vU7iInc16A>^y(RjrD6EA4ojjXzrF@aQe#i2P@C? zZJ50CS3#|9tK=IiyZ)n`!Z)YQy}0O|U-HH`NsrGJ>cs!kvF0-JyuW$&-QWE|H{zU5 z$hghe-aF?`-*WC-y2qohrEY$xaG~~X-g>|A{$j;#W{+1jn@xX`nylK$v3cULwQH+C z&67U+aZQw5?{{nM8?#CUmnW8)_E}4d>%|=YDr|PxGsdpF;ji|MJ2P&)d-psj|9H#; zhMjQ>=h`;B6^WLvD|oUwIacf9Y%zoL^9~5JDLU`A!%1cpu%x14VD7obZ*N)2(S{A!%RlmREN({ zs47!C>3z*qXZu~>+FS3+ZmfyOH84EYW4L(9XO;=t8^2b>?2M?>zW3Pa#O>M5mB*5V zF3TsLzSwQTEb*d7#@b3wJa!)UgYzvrPj{s2dz;JWPIWH*{5)v--+TA3XE*bGW5`P} zX}{wBI9EyKK!Jr=JvTqBXZwq>{*QxD&UA8#K;{Oh|rvw>qy{y>*IicI5W^CwiWC&%DyT?yXq(@xtoI zhgysOE`B!Abjp*UPsJ%>~wlhtE*kXrU=~{GI5Ud(sEiJT2zT-}h%r z_x0Y>^XIRNdCz=y>8CjGKpeO#Jh9+u71Irg21}J04;~1(`OY}A#7mb<5%>Wt1#zT;2c_iNg;v2v@K&DMUtV95d&r=(7~)I;}E4&9%4*n2m(!TG48 zlU@pQaGD9q7uwKKT{0aGR}74!onH)+6P5Vnu9G|7X2!#?8$boGo{~uy?i@En&Eo3a5BTQZ}+%;d}61#lzjBNwoFd7 z`nFY>adYbDMN;edudko2XK%l|crU*R^UJ*=@Dg(3=}E7>9oWw$TwNx~Yky>f=j+Ncxf|R@o_FV*xp$O%N5P4-GIy1Y4^E~>CRqD?I&}QR zjeS#=s&YpdRP)XjW4NJt?sQss(XQFEZq`*_v$1`A==?S&qw;lWufN@Cds->`q+Dz| zckbI6y>og`rnsnX`garD>b!aO)swfpn;-64v0IjTS^Vr4f!PLpx2?5rMQ*z4_;1~G z3%UI>ZeCQ|#J?jbjzRd*^Nk6G&Rr+M4m`a3+T)}KW0d+$nJ0OXhq7)fJ=2TuuVF~o zUQ}_L%P8hf?dH4x-sB2xRq5vCo?c{PIB|#N>CW6UWjDD__?&&}u)d6Kt-P_emzY8R z!O2J1uT8J6cpo(_FMscr!u(YyRZH)N9WvKVxVravQnozVj^S60S}* zj0e0%-k)92~W-@iU! z)^N`o9#w)nb-=T*e`Q<1`3g>aiJNZRaQV`u7`>clXJ+o@dX`kM)poj5G@I4eudM67 z9DRC$e{Jbi{prc`c|w|>?v={9p9w0-p?Ga38+r%(;l=xmaMK}-Y7Isms0IjSwy9tGZUL(pt58^~%+2Sq~h(EG#cCUsGHA@$1*p>%zH~Rr&5w~`=a+kuU;jJ0ef|EQ&t}*Bc-Ss(sDy~tiH#?hsxDZ) zdiCtIe^rvbKYsm6GLbTr;HfatVT_HA?rv{qXKQX;wMt8d_jyQo_~XZqFFT%eJ0xE* z?W-}aRyGc5oAlviTz)kaCT`a7k$ z%XZ7QA8x!G=lOD{am~c?rpe3C2i`SNyxZ`;!!YJ)eDmHn+;;ZSuHnU3|Ni;Y(b;+M z{Q3U3x3_Pv&^0ui_~J!IT>anD@amQ9GEeqz>bk!_{OTLa_%n~y4gapQQ0prQ|FwV0 z8sF@j!Y2Jw?PVVSv)9tFJ+mx+X;Np^jL`4B2hZPqS{_q)f1CHOn9@?y_xu0bmF=Fp zW5*7$^>6R(ovrNNXHfd;N?n&9Ja%1D9u#OY#stRQ`||(azkduBRaM(8mi;_mS664T zYW3`MZ!H+_EU2*04u5~>l8$kr&~fRduprgmMl5e*?wN2jkVPv>y67k$(l*^wG-Scb00UB2846(bN={o#iCW~ zK9{|{vs1XfzJA}&v-wOWs*Tc<_s^U;vvv+cou1NQX2c^dK3NsaGyv)8Sw+uu&w_kC@CZTG5G zT6Vu)C^sxqDMJ0?D_=2wuJ^z#W*BzkXdoWJz@@(Jl(iSHh~nJ` zY-p(Dyx79Z@GYsRY)#5nJ#Lor(!AReLVU{$6iUoE0~fMX+}<9*h@F=oO@*`B(%A~wKG^!`~~lg4RYsIOf6fN8T2fkAt&y2Z{1bh``+!m ztCvo2T5usr@w(KRBfcMf_>CvkUTHOCcu>l_{rnHE^m{jsY}EW-{F_(Ju4?;|w}o5F zPI>2kHQukSrJ=v=(^2v3MjwwE9E&e*tA849a^~CDhFL~hSe4lA z5>}H=mft=8U7hXf{Pz~l*R=IFJ-?uN>Vs0jmy|RYv-JyvPFJ&6R=cQNR+gT;bm^R$ z*P@rcJ^fHA`XD>)&y?LetlwF^`n=tB&)+Li-z*;eII5qY=;FT7T4&GR^Ies{Vvfn& zajPm56wc?&D)kBfICaw3-N$c~-@SXMLTzrXeDumyAC(IJl+^wBYZ&ou&!K(F^Mk`4 zAH8sK^3LD;X2zJW*;^K?kzRChUt95k@2@l-)m4}WJ55oO>v;6|G2^UB2mF?A*8F+< zM^t>|wj9ZY3m3}n+n0HHnb~8i#JM> zj%1iTdiavlPrY<&tok*pXXjg3Uq{+(ZJ4`Se3Sb5KFcJ&?n%cQZ8y(-tbO9v2L^4X zZJX5;TB~R2Gv0j`k?)kQtB~}VODyli@$&k7cd7f? z#EY9E&TI+)-df}=G;MOq*(Xb{dY{}JxzPgWfR&K);%Dp9efRY4l@6aUC%WmPOxw*{ z2FW`w7vJtzEV&lrrmFw+Uumm=%;8PG-I1TS^d6oqeJi^w>0(=`%Gt9|{_%c2om4KB z?0`9pwE0)>L(U^?Pd4nld!*#_cg_R%js~9n*}K2{ z7>T%ZU6<$BSWn^%uVcL*JU{5>j(eLg_pQA%`(a&OMaY!PM^zFQ%&r3H!^r{g>}M@WPOLrp1~`lh@lE?Y^nJBln-tvQ`OAtDV!u zgZ&%BUD%&mZ+KJLWxvO^C-eK?rb^|%E4Ij}z1_LIa?zK>Y5zCeG&<*IH8(c8vPeHN zHC))d&?b2mQ)T}B+YxH#pE#|%di6)vhIiGy=Y{Lfy{dE!m~wR6R{c-y$7>}2&*zS; zi|43Ydc5Lc=km&TTRp<=U%xo%ylKSuy@yWjmOfWFM=|@h@SYu}9fqqPS^1@S@6Vdc zvQOeT_l8n|ZSC zPB{#$(UWh^i=7{$bMl6dSBS~$yBn`2AN0<#oe)32uO#Bcjj3mwOa)thHn(!59cK%g zujA z(R?N<{<>nHVlB7dWignry*XF1^(*I-LpoIG7wL!L~!nzU=3eIVyWiOtswcPyU4uvl}>jh&n`x{Yt#sG0eq@0i0r zW(mJ1vcexv|7DgJy&mwbfBQzi?x)W-m{)#HDYf3Z<=K)|E4U6ZeK0IgWaPOLGUd?+ z?gQ61%ZRHnZr8ne^Xj{UwZ{Wz`CrTatsy6Ml;7R#%i{YIYQDP)&XjKVIaX63zxS=RM!| zzW&Vmpzj4L@1FZei5=0k|1Z0}L@HPF__wD4rdAVAC@3FRyWdoKKknPyIR|Tdv%|y7 zl=rP(UVQyXo8&3SKp*MPO7in(9*PZidL?}6@Ua5#CjoqOw*(xMh&pS$?|@D7%*j&c z4Eq#bZTq)wfx6t?zeJ_$4#+76eBLX9tAP&C^TEY z{GdZO4y&zK`=3^NXMWCu_0eqJWhyp?=r_e5KdTzovKcVQs+Z1w|C4*mP2nBqMc*giRsKDz?u%@#^yhlP<1^a+ zBPY$iF!KIW2X52Qjc>vlOJJbrO|cUZQrr(-+hJGONC$0f9+Ni=ct_VPc!Aq zr>4a4?G@)vpXZiIo%`PTI#6Hm`AW!cc* z&mTHnQB@6uA!gUW6XUcbKmZsXOdQ>Vq%9^HC>v{=+_ zUBsX2pf_bQeC%br=e~L+u}*&4;f0sZ?Pjw1X#TTl?}S%oJ7d+$qDA*H?yHbGwel!~ z?3q`&^Zw-Sd-K`Vmx+JwnLq9M$t>v=)u%7-N#8STLL%?_sc9R(c8Y7xvYE~v=4Nz= zLuBvSTgShZhAFwN-*@l*wZ_!@c5ALA)cy*T%lsH+b<)p8-_i-70$PBuF$(a*WIzY z)V(CI+`30Gm~(kU?(R*q(soFleaK?A{E^4md7TeQ6fb2Dt&HCm@o%T6FYC8m ziV}Nm3a>fFTDP8^WxD$All;%Njon>c6@R~8-<=nnU-47WM5#lesbhAzw7mUCrSqx1 zNe`DO$Xv_uOMJHOw$!Bk4U1oh`2PHusLZj5t9z-Cn`xSztVnGTOG&|8wqB(ptGj}i zpGvsWs*}6&X>yn3!5IqTMk}VO-<%!l_Tb6SGqc4?9y%}oB(nbRL)UL_Hyix?tte3~ zG(X1dUd`vTWs~=x{mvq1mLqX_neXfM0k~s?qqB4dMgc0jm8NPi`-{^FrWFMeCfosp)%>$>!cGqyE|qJ^z7f?Il*&t zq`}_bE5k9z7=N16-f?Vqq~*MOJd$D!`~L^D#aD`6kF)QbozHc6 z`xh1Y`RiUOtcqH-I@_?KGWkWq&*!I3dGX0uTu}OXTf@|JDly)r* zNtT=1#W$U@TA89^oM)JPck|RO%3@yH-j>C0bmvt+6>hsH;r_&+LFr!YtLc9}t=z7e zwY=k!^2;YzdQy&kdCehd*d*B79~gMVmv4zqw!XS{wZ!}wvznTk9UqTLN2}CJA3c7& z_;IhfQO%DJbsaw72nQ1>35A(#1_wSoJgm89-Le%cI<%XcKYssy{P1I^e>YB_=3bx1 znW(R?e?9*gXb=)MMArRHq{t*yQ(D&ZO!Q}y&Knz_Etx!P&-9($)_zB#%5u}nU4*#j z)l6gEc34H<&HUVhux82V;+t<1LXVH0kq z&3qnpZcj18>Fe(kPDRvz>JPha|F&Fq`(4Xji8Egmd2#JOQl!)E&wZ|Zm-w2?fxdH> zi=W%I?KcZ^?7260cNV8FU;mv~S@H7w$J>*`*H;KyR2db1_kFfi+$zfbwui@^^OY4Zw3qDt z#KL}>A>R1$@-t7L7befzc5>}YgJZ@iZ>?MNuN-#a&Hg)U;)L622A>{uFOk=Ly36x$ zmB9QMylF}tX=aiI`-@$U$0YO1dt!LZX+u6fo zDpN1>#J3-IEIiEPAs-*#HrwZ2e;LDv`Mdg_i%;F~=w7MJTb;!kkD4xB3NkV>`en^C z@$|JTD}yD?)|`!3hY!+qbi{0mna6nNM2gYFmk%97OHJ7hx8AL@wYB~D<;#)d=hvSN zy3pJ{@xqFL4NsF^zYhSXGB^?SvW!V0;l+kTp4_iK{*W9=Dv(D`5g||3u3U%kW+2Y=jVH~jX_OSPyOPZn)|o6=G@DBSz;fF zXl@G%3QqjDfTcj4%Qz@v+Qduu6Oo+X(b2Kv2-SARe9+R>efwU*#l_`U?>=@!ahhUa zILEH`*3J8ls8)Nt&*aQNb*bZ_)%%$zcu&8)^5kP!99}Z#VQY>)eR;2rprGW5JAe18 zPv0)5-jJP@rJ<*{Y{P~LuU=(kWo2pT>$8JaT31w7K79PxxuC$Hv9YnDQuBJv%Ix>k zQ~o}J4+_6aGmyA-r~K8s-om@5g#;&hw_5M}{^Zf`Pp9>No(kW0>3-st)wd&We)?4O z>GNkz9i1nyRi@}nHfPg@7gu1tBXrVjN8)El7*e!IO~c=8;|6p zZ*Cs5`?vKZItTsPfs_*UMqNlp|?>*tnvjxAtWKOU9y>iv6 zN0U}w0>FZzyee9$)CS}Ik~x$zrDH1!oreZAhBzY)ipTq8lmGnq*wWsGdlWLYP!sd z)vF)3ipM2Ay!cpPqQ;?frV~ zAFmt8a748S65h7d7_xpMBr7%y)KKV3M$)VBz)|GbE<(`|e_ODUoT%h7B7s zpXK{cuX)$AeY<(^az9ml{r*RflD1FRfA_e=N>f)i^~Z;Ye`VqGh%s$VO-&k_nuRab zDjx6E$+cHkQkuR>d)6Al+H+G>N-_d$>Q`Imy@*3Q?^*MELzXR*&bo1cqV1?A+v;2T3RY1F8=v_{eS6(*X#GsJ8;0k#>VQ-%CM@HzDySS`u!_btjN>-8xt6K zQ2zf9cZNxmChd}K*}mO8Ffj1R)2D)xk~iOej?TU#QT^t|#)`_VnTu|RhJ}6l_xpYE zpC5&5!n7Hb-TPE*Z02-ybS!guV|?C*`G9}jr^$Am4}U(NpTFw=&*$^Yy@hs|uUfV0 z$MyaHj&=&G&w6Au`|O?4>#<;u+SN)m2&?-s7!*G{qj%aSwzez2_Lq0jDSH-$q!YY< zo~_>hSZe;n+ACb}+_uKc%j?I3X8u`1`+LvLw?F^$^K;AEUnarJd=6%qd<$+-Qc}8G z{^5aRQBe^%Ra8tq>5`J7Vt&7-c>U{jt5+}Hv}w|$t(-sa@0nT{QTv|Jm#jfs;MfJBgnNnMN{pMO7T^YRGqT+)>VPRp9wD~$s z&R2P7C+|<&EXlC?>aF#j50u^e3LYF_RP&kPkdvd6wplVhKHl#48)F}};NVZ&1Cxbz z7%yM#|8eb`46kgxngr31`H%K~X0J5X3ieEZg~`ilZ{Fm1d3%5S{8`z^Xj0*}UKPTW|Zls_g%4T1rZf7B#c;PntOK;@V;_FRzN{bIS{?=K9PwTO0n> zT87Wa*x0iCUCiZIGEbjAy>j*H!jxVwrbU?TTf0}RsBnFen|d$oFfS>?C<*H7L%^V?o| z%OF)*U0wY3YItx&#Er*BQoXX)V)pj?m#Gx^`ueUvopZijzV5`ixz;P!txJ1zW8;}w zrrqxHwNu>XDqA8qrxm{4dOavM_UyU2)|REOLgpX2VD+>5yzTdb^S0j;%x2G?bYSY# zskK4n?tLk}6#q;S4=NlJNkNZ_jkMQju<<=<>#+8UbxmM(7al2X#_j- z*XOxZch2r+u8YW)#`Oh3JMJk4Gimcz0yibO8W5m^W#51KhLqL+_e92?$TMp z*8fgi+rIC`dj}Vnl!nYXIiN_9tNn6OjDNw|;(ohd8pY4gu_~ymAJ;XUGIeTTOpH%v zrsmV9PbGNRY;0_1rLju$u<@`lKYjXi%Cu=gF)==oku#%T<*i$66IuWCyxuag;AC!Y z?%6^mv6=cmU%!8Ue|3VBlhcnko6mFb@x2SRjEjrwk+q&CtnT;arq6>@r@Zb}z1C%T zx8pHi-j0WD%dY?V^GCuwPv-Hl-sJD^?#fsewS>plUd=5v?_XH@Y5T|ZqVIM-pSSFK zm9_8=>({5kLqk8_tA77+vHaf^N9XOU|Mz)5w-n!ExRJiWAj#QluLPT@4Vx6_2Q2&pX{^?o_IPwu0}ri5C4p`Z?As+ z72XlwtS4T&d%vFJbZ2SnBFpV}*J_>k``YiGe3iBR3^AXd z>hFtREcXAoX@!vW1KU4Q|B_Fcpz}+rg=~OBkxn$ua6gB*^=opV|M@Z ze_e$Q-(xph=-0T#Tz$Q3_xImZs$b`=|I__Z?#tcx6W+a>zwh1qZ?E^5tZTkk_*~*e zXryRZ-`@I;#mo0S*(3Ym57+klwd~5XxpwXNdpG=goA>?CdbRcr)03|(y)S<2V(Q4>c)#b_F0;4d zk`ggH{hz+tyXIJ=`^1S8|Igq1yT9wx9^w7}+ZtyxI8Rvkr%OS*qmiB2U3?Y4OWz#V z%Zthk(+uw(U$XYumPvVAcE6gJ|LC36cbi%7BhQwve%n@Jp0@kqM0eK@m7;0-j}3o$s&1%~|6I2JD_mP!+tSwd>F@jc`wz<(EndtRk}vtTr@#OFjcMoh?c4X`*DoUz zla~H|{<^xlo}QiuuU}hltGImreEu8jdo|}i{`&g*?YYU8Rkdoq#}_B5OPRkim+D=m zR=7O*lemJ0M#iPEQ}brM^L(&s)vAqC_ivlLUwCco?rHn>+2!5e_jc;%D9hP@SU;<5 zF;{QAx@z4zHB-~lJ5Scz`rCXwa>Ka3y1F{HPHsW{kv}?Ox7W^F`~QC0oOz56@QH8UT- zi{*OA>8a8!GQAtN7JxPL<6-{Zc!h~8Etj-s2TCm2yRPTd=jj~(pLr$8PdjBRdN}q< z=#}K2vkLi<7EwoCs(mG=pPw!e@q?+`iQ!kKhOPfx&8d67{&Zn?ia#Cdr9ZtO^PG8P zrfeCMV#66d{ZX}uZyu!)3I&&^Dlmxw`|wK zRrAAd+V9X=taY5b?9sbVf81=hN3n7GpH?+Cn&QBA(L5}mYA4Gxkx6fJ{=7E2v-irh zDFKT;RkuH|RGQ*=>$R4Kz9s+b{f=H8r?!Ya68!q}`F!RNQ`grVeVD!`+R4AhZA13m z7|U3v-br3@j&fG4K5Vvc-?~jX{&4#g0jCc4rp=!BUm96ib-68m`0wv;o1af6=iJ!P zSpWBWz3b|$o2tHMxw*OhI2FFnDLPtu|If4eFW$aAdi}b1ubc6<)Gg)~v(;z!{@gs% z?4{&^b>FW2d(^GJEcKJPf`Y<<)wfOkpR0W6l{ROPvD3df_wVkzsn$QaEp%pFbNbW& z|3|-ZSV#W7Jtw>M_gTCweSPYFXWspNXY=bmOSiv2FLJiP-d8mAipjlHfq)XulqWjs zsx>XsHuY=nHRYI6{H4HB;M}4gjO(`F*e7oecIba3;uGr>)&_D59)}EIk3(4_6bgQg9|0USkxa)->j+L#&Ej4 zPyCOuwQu{)zwc75rmX)wIsOl?=Px0?x3-6t{<{6l`d{fvk(}Fy&)J;bysuYx%A5P% zAN5~fOtw4!tng~$qn&3G_mrjBv-ih6TgG_dTyo|?vocX#^4;OmO{%rS4?G-C_`_4aEqh43!#wXdS_`~o(Z?N#`mfWA4wzwYNduPQS zm(t74pLOPa@W`H?xK-M{`uY3_HTB{;J=4NhOJDssZgNySV24i4n#GcN*2nkHZGXOR z>#PX-t(l9}_}@HVZ<@dEO5~{xY7<@@{b@7Zj{VA#=NA0VcC*h1&)+lc&BW{}q4$q1 z@JxDZUOc1b?D@hwe`A)d?0k2u>ecfjn=R~GCj2OoyYtM1JvWNUbo;Fr=8TMehnGmt z$+8TZ{r}u2H`e_g)7Dle-tkuSHqOY=dOq#miA56_B;=mt$-gkV)GPDKKpjZ#@_haih0(zmWu4#!14L(ue^10EPTB$Rhgxnn^`i= zvq$!d8SkRgS_*eJz0yv})GNR37aV;5^r6Dz0h9CQZQb~-!rcC9%jw8!qlJG1oMz76 z(=+Ex#F;>;`))rX&%NC9=SKGAPaYSi2bE<%s(2->V)e%|>G>V4Ti0fuXLc{G(X6{F ze0-|lnj15k|7}@a7wj7&`@Hw@pOUm+mu}0g-<}=(s@#3W-xtYQhd$q&k-hoX%^Sy# z@}IxFy~0+1iFJ1Q9bM-83iqD8lTc{vS$=Efzq!_>FC2f|TCJVYeIoVmsS5GbM72xN z8$ZuJEj3;8#q-c_{CcNXL_cPg&N?SA;QZ{A#B6<5!70=HTw*ov{#Cvq$w)Y0zHQwo%YL`^ zZ{nkGUtJc@6JtIi{$xVR+CvW?9_iWI|2M|6Xv(rBPH|Cb#i2{~wmiBV5HO|xXSUm| z^|8-_d?zopzb>?YN5dc0YwkZJchtQUG5snl!QeXm$fZ3tV!g6Of4+<6+N`uZ9VsT? zR4M&(aZLAl<*Nm)v&3xKChtw=P;99PSsBat#`oIWd5kr+wVWIr2d-ZimzS3p5)#VD z$at{0-%iQediL{q)qTmw`+957&(>~uc-ofJChtj-fdmIPck!=Q`TswTZ`nS3zV5|) z_s-q__xAoOyPLuOwnx9cy)C;>UQDd*U_wFVoVGT${%=pW`7teDvSi2KyPaz$ufLZ1 zG0WA>&F|-(ZIkymTxQDrJ#VXk|MN>li!WxBo4!AyyI}3Jv$LNUEwWkvZ1tb*XT{F@ z*Cy3({SZ9g#xbkFN?bg?RR2Q5%Wt8xE)`Y0n|+aG*1MqivU#V1bPc7AI?wB>+^?7- zbh*f^FW24d%$|7Pn%oBIo(tjSQ+I2B(mXS_dH%-kTc1^@%)1z{!ESPav+dI9(H!v` zr|pT*<@r{)J$pjHZJjF($DYkUT>d)4$aV5mgSxN-|6Z%*$=iDTohSeK;{D^o7wYFK z-;RI$^}W`gFX^r-H}^hEc=YY!|D*3_$e8W_D?G_5X@)oh_5r<{`swc?>BwF{xPTKce;q0=9cR+Y46`v1-!X0!ss@uYyatN^+TF> zJ_r9RUnS-otjS)U|NQn{`$y^Zn_EtPmdiSqykzAM{ff6GJkj@mb^KAu(7b#8+ui#| zMg9s}i?dqz=-aEdbSz0#dH&*pmhzpomgj$d@^(4CM$Pa|NSluG3n$B=Gd5Jx-HKE|jls`usFqf>Tq)S}37q-!89P)1Pm)GoRD&FfMP( zyl0!1)|@@)QT?><*;!Mtx$dQp zceo_p(%Eyb)2B~0Mas;Qh9$`tqQVSUdic*?Z13{Z#wk8lGxb)5nEm!?1+LyNme`bt zm4D65y3Zi{b-O|9G9lxzGjG~6Up+m+T^g|R`IVPhUz8^&FLGJGpkQmWt{OYLzbnaWu@M}Mt~iRi4XTb(CPsV64Q zd{uf${L8gfT*U!NeDU5aZMP*hevaIJ=<(8$FL5)NI(#lUe%1YQ_~VfujUV%v%Q;;x zUw4WAuk<-<$w9MQY|Nd$7gl+1KUnrfIZ8+=*YBCQSIv^PU)%K9jGoU>cMMrBy(1@? zck{&gT8Eyd|2=bLm$gs%RY|W`%${d;74)4BF4=!{>ZZ?g5}!9N`^ve#~C7eOj>mt`p6Pw!ON_F8Z>|{)I2k z*p;2&!l`Ojdh^HHu5^RF!m@v!&6-#jm-_#~rk+)@`aWF!r~aKhwqfJ!X|J@brc^%J zdBgcy=#F;Z<{1GOw6-;$ayax{gQu)C(MheLHNEcV>G;02GyYy(Uw5>8|L@rTxcPbh zc0W}>gC_Mq4$F6Rc5eJF`C99tW$~5&w^$V%+4MY-6`8<`}|2=8CK zcyV%le9cGJg9i^bRJPyEzP`@T$mr1g|3ByV>+)^&ld8Ubi)OpvTWODCwwQ; zMM_fg<;6Ysdioyk-C6QG(fsc3a(6d3KP{PUtjFRSKOB3qdHJ$UQor`!t=O0UcW=~r zKcQJ}dCO7_m0B5n=90_l;u%azo@f1*eJoM_`s?Tu4K+80 zKTMol91RT~kB-;bw`_PJeLwBuj%LZ7!M6{cxMP#ld}R-x&W$76Y)*HroZu?*PUpdw z?f%7kGKK3mbL{qMJNl+7TiQFv{i~w)iSzXz&ZoArp0O^RQnh!Y&C+>`_nR2xzn1Ho zHnU!#_4(VB>r+qHyuZ$O>1f2^hr+UFZhuPN_B5g{q;>z1d2_>m9(z~5Gv>?rC;odj zZ;3xz+4EJ#u5k91So^fYLZ2DM*4{q3Oj!TJyNgxZ{=HXavG7{oAR(q#^WprBD=AK| zU+=KC@L9C1Ior3nC2ftW@wGVyj@+A1yv%rbM)$OM+xw!m`}#Yc{?zH(c<1T-NoODZ z5)Qe3FZJcAfX~mJ#5d<8?y&U#^K8NdyXmKdynjB@+v=<4H2s;Kg@2NmWqHoI$69L~ z>nwDI&z)MbH|^ldodvS$<*#}!ZwZ{po?!p(uxw1WiNLNc6W+8=YqCv0*F5!E)}xHC z7oKeXxm7Tj$FkCIp7>LpcgM`8W@fc-?7nsB^Oate&oOnsc68S5PMnox88rF7-eB#%(u-t)<0v;)+e!A3%?u*WMWR7P%%yX$>xGPR|R-) z?G)75K5Iu+sPmUkPW!$k-1peEn@3}phf~2N@iQM)&h)L|JzuiqvB+VO$qm;+{JrlR z7(QH(|Egi9q{{2{mu}cOczFmgzuo>KIOzo6S7!U`i85xAI^sKy?_bNp<~03hWUu49 zmWxp~bGB{VJfUpWq11mTmh7^=b8KrB^Fqm=(?k^=0<3mM=GH{Sxq2TnSIhtXYL(ox zK8wu$({3*E%la^lvK2~p552S*W;$#wMalh;>FhEJFFgOtogX( zY+|3c=h`rDfB*i=p$Fitagl_;7Nx z13Merq$y7xurHduMtFm)tZd$Trg>VgkG$Jg`}^45JnNHL`G-o?uV)due8ThfqAg#X z>!hsupImWWqIT3~M}+l72kx!qCMs)s46M zuw-@N5@1(E9tX}?f9iy<6 ziLx47;F)M0-m=T)iv)x-qmBM>%$4T4#vR$F_eD8Dyk9eFw>4~%cl+QG;V`1HC zoFTJd?IWJ)UpGDx(~%NC-#E=`-PRs~xpN$w!u*3{g~PQ=&YbjCzqH5Q@U7@_&CDQ= z+B{vs?WZ*M*UZya{HfE;dEiFa!I_`grqvb8Y8KD=%KEPDrl9$u$d+0A#W zf5C@{EmtlkO3brKe6dPSipTHvV@=7B%iGR5-7JVYZo5Qlo$!iN{^m?imwu7kQP{<= zAAQ|MTV?HEHOq7J;;oL&Ej!EoH!ncv<>v=AwcN~|+?+;b1$&cQUOd&>cK+J}o{ChS zgwExsjqH;WSa>hqtV}r;t@pKENA>wR-E&vAUzoqCW5P_o{OYs~^S_IQKW43dYVZB^ zBJ+&dyXQGw=2&*n?$+#8EB^d2`L#7WQcUte3@1M`F zKbJng)@&R1!o{M8{95&u-Y<34$<1H1@1K;ayZ&O8r@<4J7r7SHTfbFn{ULFDe%PVp zWAfgC4RxQVz5n}m%j^RIpX`oK-j}gyjUt<>P0b-g1|L7UlL{>Yj{=P@uWqQVt>xtB ze_p=-x2&_X^Pl7Of7rdJ>!p^IOyL&STW~cia(9{T+O=zAc9n42+uNH+@mkHziwa}B zZ5L*0WHjmP>+9CFwQ6UM)ZE<>&s$eu__KEYM&r^)xu2t)3MRxcn`_wCN;((Gofkc3e4PKq{&Vi?F>5U5PkAEs?CDx{ z>!d?V1$&(uOrP3n#7p&_{TR}6HFIV`l$v_LY(2RnnJFnOYH?1Vmb~-*(RX>r?Z<)l z>}7uPI2J5$g4 z@Y8h>MchTl)-RLX;h1?-cgxP!HCtjd{5^e_emj$SE}m<7L8=bp-|agtS$KTuVw!f8 z%^`=;@sy;OmtS(!#O8JX%+ACnTCSVC@4yqk8FLHNZPfCYEuMbJMT66jt9SdZ7yWyj zZ+oy<3OcrEZOoV@wez<85#7HWyL9f}n6_N+@QRGU7l#ZIHK%752uun1Y^t~YP{zYG zy>q8-2^Q4TUcXh{@6`E(z0=P%beK+2k&plc?ZO7buA1l}NZ>e)= zUKDy$a>w0uJ2_UL-lx^@!u6wu>enq_^i>@1JFpj@oV(>}mu=oO#{53UD^D8L1bDd= zqi#R`DJUVuk;~?D_`n07<=d4n-#`C*OE3J*}KD!SI2E{Sa2hC&A-p7Jkq^A8B81>UO)fkUdnQ;Wp)340pT;V&HLZizON3h zt5vi4{bqB`r<3Y6|9(EN`So%+pM7{>pkrCtwBrd- z&l7sPE~c>PznT59!6~Rt@$_Q#YcCj>3hHDdI22nxOz~T;Y+x|q;lspr@%#OPgN66) z+xO-B_r(`8ew_dR$DfCddGX@K875Lp%*>qp-~SzcuI~3KYI|MTmtT)l?&vo)G%&ES zvBlJBYG`CcsWtxo^^1e!!#Rd@EA@ItBV*&0t5z*qxw7-tt*A?vFTbsOciG>5>C&aC zZt9(DtEZiB>*?X?leKmW3c9o-^uV{UpWnWHEBgG*ci-2w`DarEY!@@Ssl`}q{Vrv2 z>3VD9jE!#t+kZ#Ba8^`2@@$do0hveQPX*>rIkL3hdqv(WRm0jt`w9-@pkU=#|JB8+OE3JEQnJ(K0RUj^B`B}1;?r${%Sn9&hfxk zJ^th?PZ}5RU~dy%Wq9$bDaSLPJ3hWUQ&%bi8 zA>`BC99~PaEXjAze*F|$<$Ka5e1c_W_1nb5vcKH6sNB}u{fS%MF3kJu+B~*S*W_2p z0=yHGb88t4PhZ;<7JO*tCn1HVrLDqhv)+7T)jIs<&<5*=AH%GwjD3DA^zL#9zUAT_ zEUzqhx`U6wK2~Vstj{KQcDc^?bf5LLva>j(B~aRXNsxQ=b%vS6YZjVaxMu2Be~@5G{!?~*S1XDr^n3lisQ@dxnJgqOqYE1{OT9} ztQC^_EH||O%gwKMI{h;7?xv^W0uAy8cVhi(;}t&cT=?lv{Kusa-oN+H%hNN@zb6yT z`{w!c<8v&FJG#4-)zsSj?S8iG+qX~Cmx)8POjuOt1VTo^U7XRYwQMyE{7(`%O{k%MFn_B(BJ&=hA%d$5&c0Au+^ZWMwXSeVF`*vgh{vVIH{pQ>GhJ{Ug z^>$HuzkFjc)57(g)7~-mFf&WM-ItcQ;$cvz^j>B+wq3JV>SP}hndP(U9RIKAj2#!< z%KtMQOH}^*ORvgTYD?7TZ#KO9e`wnOJzDy!@!{@LlbK2$-ZKm;pFa3%DEof%_8(lj zcmI}{Pu*1iUElDG_5uUXzYg{aHk`7ue?DC*-SzwT%YAW&{{0O%jIbBjG{d)k(bH!O z@5=1F=2u>C?mPY7)Bm~`tt~UOW^+F;{C)TT(SzQ;CEv?07d_?J{r&oa-@nABwKH!i zezkk&le+H~Z?nz|Z^$jwUvIwkoTIU!JGWJLvDJONJpWVo>%FTMy`Eb1WUAE*_ke&2fA=$Z|1>WP zEPcik&bu*1x7*#YL__lj=^!lHfy?(!$L=(d%v%hOOF8%VwTLVVMT`DEY zvR6!bg(k`*R)&?ZoV+My^-9VxL%3pt@VqXAU#=6T$#m`8)N^ZF+^^reGj|5L&2@B- z%Ce}FYY{BCc%C;+JmXf0_T5++FeHQtpi1NA?{3 zdS?0dxjW7T*sot!AK-kp;^05=*!lH4ep`iJpPl*s)zbQehQ@n(v(`^33|(*FpS!ap z>4wFDhKn7A3#NaQ4%e^@KJO94C;8CmulBweF`Wp9yga@7U(4%Hy}G*kPjqJ#pirB(`)_q%lGq_ z?B758+qBmvUw6-T0u7XjUTdAUtvGC5guS$sl-1ME_xIP!y9WMv6~5mqBt!%>Z~pUV zukSymK*P*|^zb~(;({`V{hyU=C_to$B9^Y5{JLK=)@As`=8wPc>(5{Iw|{%_d#>;IC+nw{ zUR_^0Y5U5RnU~U;n3y6qr}c(w^(vp6=lsTx^}E>XZ|9Hq$vy_ngC5Ui|9ezC{zLr# zukkVa>*lUmqjNRd_53!=%$rNLO%JU6<*YSz=bDKBrb6m_r!hB7+AxL1Sv1}5O0rY4 znbp+iMaH`2yQE*P*zff;_4HCc)hRnyRz6W-WBhCOy+9f?0OwJ1ucf=VFRtF*PUi}irDme z{>`ob-&_2+#l5H7>B}Rgu5Tg*1^L^Xo7pCWd^!KeWBdH(-}}#U+Af%T{8H2QAI}%5 zCf`2QxBtS@XEx6s|8v|ow5#RK5f;xKBaK$6PBx>$=}HnXP>$1&8&4Ot0+=!&UDZ6%dWik zO4FZBG%V=c#LsWM=%Rpxlz&v1Q0>%re-4#QWk2_-S$^V8R-5H9kG!5rzVdBwJAG&A zPnBc4q>r~N&Yvs2|KDNHJDfp*>#oi_&bfZd;+ZR(5C4jK^;P+RuHJN?iV4fin!ie4 znkg*e|L&H~y09w&pB|`4gE=Lww}Hia;4zk;a3~ayQu4=y)_pO zh&p8vTsdpf#H~+`TfgSsb7bxZ9j@vZB3IO8eL!c=YZF` zkU7ihCT!fa&&>GPL6+v#RWH`~78x81iWLpnvi9DiqgHw5=k$L2`agQ*2`NzeXXkco z|8>`rGqWWud{OwM6MX^E8}I5e@09yKd)~E$mM?!k$=2E#RNE#zz0pC|Gcx<+Ccaf^ zihJK4OI7<-Y5KQWD(e_`*-pFt^W6?VSetb&-ZbJ^^0N|;v!_!xiidsSHJkhVNa$zZ zZC)8BoZi5j#m%i-`7QXYEOB{ZhPWSQ;NM;hz{piiz(I2?o-SNjJCa$g1 zHP>36y?C1c&_;{;iSC(-Edq}oPM3FOI8c+pyU4-to$( z>!XTM(YmV18fH_6Y>&#NmcI(~IzV`BrYPh_~UF}dBHacAjkvHgGF=I;&KAtfcn zu&ngc^=l6vD1?TF-q}&uyl$P|ftU(0y%>+Qv}apH7i_;@cl)XF?6pqL&UdRWe1Gxc z#f|%ae}Dh^djG%dKDp9=f3A1#`|*f-)#}wdD?dNGVf0^pe$6CSZm|gyCoZgdnjd#I z{O9}Xb@O;rztyuY58QR*W(|zGtn(rhkp)>r!_bnV6V-+wdik=+ zY7JYXbRRx^2uc~Q-Dzps6Qs@a1mxuU!d~BVtBWuD`0-=j+E=1ZJCbMIYs-o<`FP}5 z%c4-X7uhQpt~uFaraLnr@}D8I3jdz>kce}tk>p8!V{T}4>DXF34j+y$|GZ8#RD{)6 zZ{FUoB{T6$S=Nn=l#~t4vo=-v6o2-ZoBVkh*zqfW{{B6A_H66h2L(X&Dd#rf-3JdI z)QR49=4E=z_ZxfjCQq1fVEO#IQ+IY2b8>UfzQ*w7%a;o`Zk!0;|Lba|ZNGrij^q5j zNsE^5n(~VCeE#WkbChrYKg)5F`F-`2OJ4%HRtvk{Z+ z6Zgv7ZdufNM{D!uKX)qj{FqXv*aC7ui$KyX-zv5ZSMTmF&&(+?&* z`1A9#PSlo+Tk5k~tJmDVac6&h{jGVkm7v<3I22o=ww-tS^7SjL#CM*A3E7b#|Hz;F zW&5$9V#a*NH?Lpxc64w&J3s$CXyuWQ+T`p0IR+9xo=oGju~yu5Qu&YrsX-~Q*5$wj)}9EwMjSMT0^J9EE!i#DHn17lKh za%WG^lQT1ozkK;p@pg%=t?eB9`gtc#cqAn!?=6dYSbL34RZ+3=)2B~2d3zwf1v&di zke06Q)0fNVv(1TT*uHQ2lqpB*{~WJB<8cGzxBTB<*VnIIbzk_9;Mw@USL64-e8UWy zt8{d91PzJY*0TDTB&^vt}I{VR7402xKqB1^qkMt<$sn_anLP^X&T{=Dx3KZ)jkssi`^kPiCfly`6iX z%)<5S`*-ZH*f~wLMc~oIg75EQ?S8#b*3#Cl{P}cx==bWRG6^2GEm3cC*bnQqpJ$l& zqFaC8gKKM}OUlbPr<@dec5d$KUpEh^P42WVe^>DKmg%9xhdn(!KqHPbf({)0vbnbG z)QcAywY9Z1UoN_D*|NpJ!ouS8LSZB)?q0A!0Tgk+zP{$<eP*PIr=;-*6wczNP zB9n+|j+-H24f4_lws7%7YyXE93&yNVY{=aP%)jrLB%h2Ht+84Zd@#4u+vXVBS;ufkWe{=c4+jF}gKvL)8 zlvRJ{2?(EL*$|MMl$>ncAqG{Z*dlOf_OhzGo)8C2@sL;DbMkqsc-(~B_drPw5dxr^ z)bPRe+qbQ6CqmuC0TP=CDizj7Z%?z9i0AtM@BROEzc%OQ=I;6X?e-*d;{$hVe*XKu z-@bRDAjrn4?{nB4K-xeYkSTi>u3g*9Z}%f%TeG6tgc^{dv}rcXpg}s2G{^}bJzl(d zQ}Sz{kI^~4lj0yNA1Y}#w8EreE_`IDD0~2BEJz<%;^T}7oC#nSGEw1kf@K4`0Zuk* zDNM)~Lv+Xq8!_s@&4Y-w2=sH#WIzf-h`k-hTYMOh;sB!fNHS=l0lICZIrqoeGKLlb zr;e2xy1HLqef;$4)1E3Di1ARTC8?bRd8y<0r2c;Xef#$H^z{|}|Mz!eJ#$Y_&zYhZ zP-ReuzJ!F8ob|qa`#`1V9hdhnUcA^*A8oIUqR__gi6kgc-*87eemold#^c-fe;b>_ z3o>T)<<7lv^<~MPPp7m&dG*SbD+OO)h2E?GUwdtBbUS2SX|i_HUPX&a*?bwRb341m zcUF89Ihwyl*)rnk^uL!YKHqWWOR2E8Z3>rp^k}85kGq+bU8d3M`x?)F9PN(TQ!z2P z{eDWZ+l=(%pZp*9K3;xf`=P_{t4q$gboI?X{O>`&(>%ZAd1o!WW9yTX6gzL9nb_@q zL&n_tV9?RHxVc)-&hloiSX;Mw+Vp#C)cgDrqyMKb))Vx(wy?AGgVpn!)*V4@Bcr$ z{^#`i#J|73f?5Er+~T0EQtgw~{fnNS5;Zb1+GED~W`4|(h4Op79=$!hXJ4vt^fvL! zbAD*qTWvV^)phxCKath~ORGcP-b*<-+jmc082_)&Z|)`4 z=9-J{-5h@W>dcu|&%S;;cHuy4^6?!PEKOPiY_r~;UMv=8XnOC&`;|SBZ|2@Vm%Z7d zFYvMB|DO-upZzrNCf~GxllDJ({baY_dolG)pYrj_!;?R5`z5^T@s6j<9B=;@H=g|O z-Zzc5pNbRMVp?WOX1A`H5_oL)^@xp?ZcYhj=5qh{aST`lKc|3xYL(YeAM$ze?@G6tn3 zm$FW-zIJWz8$X+a{qy1-@2q^hDtCl@nvN?EqTUAu%)^n;QGY(vF&Mtnv zqh{t>tA7TCx9(L0b+lV)+Si?0ohb5XDO*8;e(m8Z*KiuX|!0>;AQ5HfHU{XPrZ~W`ggCSEz+lX#Z?)rDW^~R zT5HUIy8*Pu@(H+H;aFa>bA3_9d8we11?z23{@Z&rB)U%g_wluluFjnuIdzeGr=RyT$dFZQp+VZE+u` z_w$`1!duse8|pn-`&7nK(pQAb;EC1RoS*8Os-E-3os3QJ+}`}gHo`Og23MEA$i+X0 zxnIPY{6AoR$L91ubH1QV+kgnM+uz=#_;!f}yNilv9d5YI&-YeGCQ)0%ZewqCDzD4a zv_*679y->1c1Nk_0TY&ti>}#;Zd?e8rsx3gZ= zE>kc5+3b#W`97y_Hmp3`HLLUGf1lqeS*P9>wfaShXlLL*gG8nqg}c}$mp(A5zTy3l z?=&w{;%bYMB|`F;}UM+aF*ZgMfDc76D>U@2d4yEwT-fLyH_-(J^ z?Yi4S!+LLV4t(K`SGK-i`J|X-PUDW9hUgxVHlVG zonuRS)eKd;{FogKUb?!jv5b7Umowqr#hA#KOOtCQXYBZUPR(rotCj~EMsYQhZS&tQ zDt^qzfBaIgZ@qZxA^YCB)z=(8iha`GGV6HF`*%s}WzN<=|H~Ex9{t|kXmz@tQK+%J(dl&IX5IDk*}gS>SI@N8w%oCO zVqbN`qqoi6iY-4jO$3*F77JC4PtV_6y?sOK@4BqT^U}|+6K!Gqv3%p(3w}m<;+sp8 z6=!do-x6AVWAmwBcQ#m&IsH7S=={F_e{G4Cthj#M6VQ@qi{fWIyUX4_ z>i_qm|HrxVeasDRi$A_ua?9n=h0Av`XMJ!}e|nVNGOpa;HR>i;^3i$Bdls!udoPx~ z>uuuw8=KFT*nBS%5&gY=Q|fR2mA!F?&z-%N{^{t(y!&$3Sf+3OzEwBJHo`Te>`Sxr zYOeNaUyk_k<=;Ql$Dg;mUUA*>ro*XKm&*5@Z_HhNvcovP&-BVopXB2Ht{;}x`zOEu zwS42-wc(y?Zl9jkJGSi=eB|Wa**7-*m7OI#|M}X*`4ewf&UhQW?ZdB=a+l(3n@t0sRruKMpR=TOv6Y$j z+p|ZuUG#o>D=_}=+UhrRC+^rSsqg;WKc^rdf7zwy6{mWQ)@12yZ8tsDTqV0*?dY?r z4>{ku-(3m){QUCbRX6r)&i~W9K3MXbQvTbGJ({6Y(`WDbm8n_(y!YSv%Z8^v+fF_m zJ^hy5&7T(MGV9J)+|F5FS8++~>=%mza^bm+y6LH*w)L?}fy=_qO*6l2Y;t7pys%eV zt6$1+DJLISEL)oGdB3UyzJdCq2==zkle&rjn&ed}1G@^XvvcS_>tWuG5- zwxvBU`){|n{-g;L3|_u}bhP`O{F^xStH=8;uQ@Vt(dL}|+9fkeGgsdz{2?Q*FSc2a z>v^V?;orlXG^`5l{JB}&URfObso6xPd`_{>Hp>)IV=7;yW-DFK5kmmTKH z{b?3ee}8oI&l8qi$NygIPCopwSY&-)kbIi^OT)WAA05zoz<$6nLHSwdZD)fpck_gK zAMSGJus)Ko?|=2`_qjcsd-8t%ce>*L@0Yq*;gc(jWpAu={O&*g9Wi~{(PzxZb-(`P z4U4>NqSGy#FFG-4xo6L*TgMhYe!ipPqtbEy95vk=&wd>L9{9!0aJgRGlSeC=b3CTh zE^ZZYf^5PSe171N}ElXJJ&ZZPEI>)&4KIJr$2g>#KXoc zZI;83kdks_aq(|$F0Oc}>p0=!x9b z-)0|gS%MVS@-9qT+8n&{s;mZWZ$(#pTGBc#EpSAFgFaKOJ>$8^5+sbWgFBbkj z6q(2WFiz@xgk*7`zsx54oqkYfY}tefojbwj}1kgX*a! zX6C_v53*mG^=zW#^Y?TA6ipTT_9-ds)@;tNC%m6pU5kvjRW2+yjyrcQUw=>V%VL{n zZjxn|)1nT~s+4{9Wy7`C&Aj}6rnCPpvi`WGX5XV`Zj*03hF2obTC<-`KJ~>QWZHAi z%BNHR<#Q#ARX-0GRXhIJV){>8-b$&zr+&xmsrYy>{-f3G^#0qc<>zg2y=>1nL!`f3 zbTb=5os+Ic+aH)Pwe#FPF30~CX76vix_x#uTNiWk)StC7;c?H_#=cV9 z#Jg6s=EE_!u=R1C|E_Vn?A_68nssccamLeAQ~x|sx0n2W%fIfEaM-$-m)|!2X?}d7 zs*<_0ElMjd`qZvX4dG?$7JPl6#>G`u5cb}0*0GHb59n=*`o6jFsn;iSS@+7Hx@BoB z{ZDB~#AvTO{^|rT(pD%dwO)IymeEPEIBvt{W9Z6DR=&}Ze@MO;|Biw%97@txSBlg#@FLE zKeKE1OWt^Y?E6&%-yiFvy3F{_?Q?XjQ{25;sPgMur9*yss`mBDzoU&crFKi6XxtF` z=GIKNx9^<7p5;Gcep*?!_s@f8Rj$+hV%{>EJrn;_RVkw{o@!rWp2wlsGNW=6>lOhg zj^#dP`*Yf&vR^996`5-GZfqpPrun z^R9eOnu*~|gM$%&-WJab+t#$$ zs56bx-lA%v{EdBy9m;3+3me>ga&m&|ooA1KxGxpR&06~ETXT1x+T^#a9;FXI=&0u0 zUHtKiU6xOJ!u7g|E!j?L`y~p;B z@nGRgm)WyczN!$ou<*91$?SRR##%ET3x`XepEi%H{iXDrhiUVyET=73dv^8h=jzJG z%%8P5rf24Cp8NgGG{fUxQ{uP&-g=?*Z~cMPSzD^?`)yKIPJ?((X|=Znup zN|xQMZ&97~daG|$kN0}Xcj9vk<<6gMvy$)8T)pVZ*VfCE!{_xy+Sty2TsUX-pLu=1 zmfQcfvi7@m=E;mNkGHvOoBk~CYGie#x$s8^#dk}Y-*|3pxttk&p}}}t>ef4RrCr-* zY2Mq_`fR%S=C^;tFWl36eB)tKUwHMm)yM1aX@zBETmEpITiHH&o>iZ0=7XcT-|Tj` ziC*LtsSn8g*K2y^RO{j66)*2T_vF_u-a=au3(%INMW4!x<;fyS?@4oBO}yO0N|*F>SZMVgJo1;s258bC<7tJL9g=$*PLg zPdCp^m07KobbgjgQ`M$O!Mg_@uATbq`Deb;ORHWzYge3gUT$I1QMtIAGkX_ZEv|dd zdit@T%zpEbx;f9n%_fMJ_65)Vr?M`xaox5VU2@0DXZsy`6Q4b6irhIL-S|1&Y>OIK z6>28WdvTVm=GxoPjLa|;tT@y$(}F5MpRB{W2H=AK=-tW)!+RNHX!JbTX24;~V$ zJ+Nod_51hb7hgOP|LFa*9t4>;BeBsWWlLF2q z*J2m!Sl9K;S^dV(BDMczJm()jH_3fxSW;ljs($&zxl^e}KUY`$pUPIZBbEKR%${kv9c-?4rmq5if0 zlKb4Ho!>uaL{-d+|HXN{a5tY{vSiuSdlf=?>Mv7#YEGY>aL(c8hqRk>isoCLjrk_8 zHpj2}T*3Yqv8R44vf{3Nc;%SRghyWmcAj{jxuSkqpI=mTwC(RtHyqRU^Ujswub(0} zyTEd-cBfw7x{5fS_ol@QfAH#wv`^f#t0OjlulJpAy)r9`|6cWMS{&db`yzKy>ZS68 z4b%S|49rlk5vx_VZ4q3`dRsoWaCZNPf8EpE-AvvrOURyabPE$~Er9OD)p3cRXQeFq zbFgJvrB$nuy5sDco>P*uOE&qL?Xo|a@tG%KcfNE+?p95mb(gL@Tl_Dv@Wm97GCAAU z(z>|7EiqIsKc`Ld@{=zG2S3;R++?u)<&FI^ceYrbo4~2MwqyG}A9XKA zSMlCQFaC*6<`j9peFdo3Rx|<9Yg>9F=HrL{(DiET)5y);T~b!|==t;g=k5RB5#nd%dn z8~xcXOPkxSRVNr3wjA2wDt>RDMBb|h+Z+`yZhOFRYlq9CmrFwV|M^|Ie%I*rn}~Vt z2PcL1KELt*o^Mc`=Am85b5EOWvpvT%)iC_)kvf&R(^1S7dS!sMQ^uOVin?CK6JeK)Z-MIF8<~#AdnihJK zGfvOAG`Z>p?`6xhk1ebJ)Jfca*1nXtG*v6NF*ovS41e!)zMwk`RBfy0UCxa=-pjPb zYRfh8ccn=|i;n01T$54yxNdbM@7FC!0gF1f)%uIOO4ye8%{ZKG`$tGSe4WYv+_guh zY@5t{`_YOU`=_3Dbrs3I>)qO2xxe%HjF+PAm(5OQ>=vFToq1}n-{MB{HtG4foE27{ zq5M2wO)fZc>F?dswB?COnCRQY+f2v4{gTeIJH2uC=Ze(pY(|e3b$CagJ!iXq(!$r0 zyB%+(G%b9_U-5bG?IroQkFGk&|F9^tq(nqsUjE;QcKZ*nz_$lUPnU){Rc-EOh5vY=tY%gcO02UPsGul_C{o;ve+{U271_8^@WX4R{P^OIu`dsXU%oFEjrt?%7l68!&%*_2d}uiRe3kfVsopXu#fShoW{+X z$+|t~nl3JS`oN+^HA%63&bf!rzxN+*WIpupIwRkYIy<@N3+EKi?|%Jn&hIjPM^;1FkH3NKzsgqar<-UdQZ=^&K5hyYN%rWRbli09rOR&+`N;&M#eP! z>E{1Wz8M zIXOXLv)Hi>AAYI5TJ2WH`;_tM*H50G`VYQ|&MAB$Q}%O5!+)DXTmGDzCuEN~F!i3U zEbx}OKL3Y5mmS+IyJt_H2k-p6+fZjlYRbV+>^~Q-tX}l((^Gwg0z>ZJMrY|Y8S5TB z|Gj$V-v_~e4AK~nMQ)z4yT&>z_BjHTuZ$(Bq}{ zxnEbj|83BJR{NFp9J5l9FSqMzVjTX-r*Eh_?KbWF+}6U2_a{$!b79@?%-uJ3ue|g5 zL3!@{*LNf)1&bZt_;=2V^nl}=7eCxqfB5a@FW-K*hc5qT_g?Ua&)#$vBW;5T4(-Rc z91N-9n1457jx&3?UO~|szC%wAxZc@#U|-CSlx1go70=ypx!U>JrG4I!$Tjz7L70>_rl_i#~^l(Aat(Z`UgFjo>)IZ>R zv%P+v&DoB^sN;JV+Q*+b#x8a-DGv>U!J1Iy~)+jHLG)Ok_yXT$N|Z|jfirc4n&`ivXzkkm5`<=u4YJYchc0OGH|JQo!?UvQwbhh8Gvt~Fw zO&7F->LKXV%cs-h*>b$y_(MOhjLo_A$MU4~&yE2 z^jW)tYAgG^yN3^(1pa+@zM|;*Z{^#S|=RY08 z7QU^%5OehWygU6LKektv@z(_Y)oZ{1cTTjG{OBZf!zV|fE z?%z-TpNuDS?)=cX8Qi$+vyAqQv~FF8w~os{%3evoHV{5 z+kA=g^><##Bs2e*7xQ!Hw{o2?pZ~t!INvYX=+gX&r+Gepo@KK-TJl_ff84(0JVAMJ z+3Od|qkZ*{KkRt_`$OMZ?fvG5GlSh7_rG<&{{7cS@y8if^*x8m&mW%q&C)*amfp8j zox-7we;)V8J)O4lo88lD+1w`yed*TXTj~$L+3c_9rn*Qrny>!MzcV#X!JB?QeWm~7Pj{7{m{?Hm`2(i&A1&2A z|M|zXxqEirn!W6^y2g$9{$F3+3ks0`{8>IPIm^qax+~3Ks{V?)@9BROHvf-)7h|`r zd%C~f!Eff>54u0k(Wz*iKiA~aeW#nk_Y;y{ZFrl%?RJ>L|3550Z<_^&#veUxUnBJX zcyPs6^XtsMA>w};maGZhDcZB&g5-Vm$*)%^kch01e3 zRSl#oWNt5cdPwf+m+$}PCwj}+cju5B`B3$!`^yja}->C0vR;OOYn z&(6-atoWcHt`~FQ@ZshM4-)=;l>a~R?d|QC@7(dp$|DUilo! zHzYE@-}BjT`;+x2I%XJk@8nLd_^|tWan5Z{)q2;I6kpCGJ3jEGePnGfJtX;@>F00p zx+9Ou%Rioas5L8XrpM2BJgYu)TiRa>oh-QEe00j4Sys)G!LzGk<09Rz-%sAn{z3aj z8pHC0*;`kCUeVDJ(>sMhOmHIS;2K;}5{(y)pBJUu^uIj&vwLRBs=Knq ztqvL!?tc8t`M?tra$ZqPQ7$gWOn(bq=wq97<88Jy>|QzMrK$_u`)}(p)=n*cuDZb0 z#bsUEyyRF$K|#Ur?Ck8rhYvIB>+9Rt*jUZ~{^iS&)2CM#OT!ND6cn7;>E`Xw-EpGj z%DsDj+1c6KpHKNB3YVVP>BpHMC@6V-OUh>0d9xiI9^x>&VJ9~mIck6+7RFUlQX)>o zN9r|K2g8=_+rR(X)82ku<9f;qwL^9t9UUi*;t%B_p$S*XlZrU%}nw!{fzpxfPp7D+cw^#E;J3 z8KwyqoAOWMYkj1uq-0cd<=n2mBu%KxAKf!yj)=)KXl}~Q&Gk#4*t1+x?cBHBd-uxv zpZ~Xh`-bU;^S(v9xEz@qyY{b8`jvF3v4S&iOkoh4{wmku;>Vr;;^fa{KlY7|j@~|B zmffeCZ{D`;+p`@)U0hOTT+x@5`Wort;&LQb*1D``(V|5g*R_3FaNgC$<;Y(RMjhp4 z>lv@jYhGTE|-UdOJE!oY-~im+H9{=Rt0LJaJObJJ0#u9UUFj zpH{3|waaRm(TR@D{2bf1Z!fRjvUO{z-JA24`_eaT&c73z&%8)ZPA>e+ypJC~9JqXW z^XJ6+bA{2o>$*BRczS=S{tccFJHk69=@L&uVdp&N#orjOT)P%_>(;Fw&)zp3UzYUv z!20)A-qqFCadB}D-x;rTn%wqqaY@;-BHqXd5e|~_pm5l9e$7kE!*0LQ`ul6kKmqZb zNBZ~Y@ZARv9AM0k4h}xN#B=ZbTWUo*v7*X?>HB_NUEfzK>hkOBa{Iq4KmUI`~ECQO9;!<*i-1bm{G&DMlrxrlz1ZkkYTSc9{Uh?^mmS?v}N>ul}*_`?2jkji&=TW__TetefhbI;PFkH2M zeR*o>5#N@!Hol7JvjWpU`u&|Waj_jJctI)f#E%7%2Ob4|tA2A+UMl15{Kr00$J;wj zWL)McoSAV&zfcz(r=TN}U5>H)eiWSk`fXkHCG+D4Lw@i5;^N}gly>p-Rgb?y*8>qD zU2|bY?~a)BGZmyVO4p^=m`rwaaXC_YMZZuM*)Y|HqpH86m;$_+zxi(zo>?K2F4J}5 zMeuDaBav`u;+y!+S&b1Ka>~m@}Nhu zS!?mPKb5Ecf9J2sJ$Pv1ibpGgW!n5U7W;jK_;upG43(%DzvlIa7ysz=k=g(I?t9QG z{TsW>^{4B{Ukh5PlZ#ZT9nFWH~p(u{ij0!0M-E=^!~Q8;-eP=E16gJ2;^_pBE`qt8y=x#Wnu zz^#q3Et;KgChfB8TDwq1zgZ<%$KUt*sq9_ws_XviJd+Qv<~&k1Dr{|O z35bdDadc$dxpU{Ar~37QLJ=uFEAPtgn%EQT?R~mqs_i@tKIi2(poLvY;b)c&&E2di z-)G*~8Z>S0>79Wq+@b;_o-p{yx6MuKMflHZrUTlV6K<(j>3mi_eLT2{JSbJgtQvqWyc z=iM&0+5DzUl00W}`Ga-MYnJWMd~(<5+SV73))h)=WT#q{>)t%l5m&7!d|N&L^OalG zJ0AC0??`_eyyyCjkAIHZ2)(;;p!)Hb8(F!zswO5=%I{USUyrY!Yksf7+4I4~f`7X6 z>Zf74-`bGa=N(rr#oEvX0WLWcl@An@U`|FN?=A5#!vSQ-?RV=jN znVST?+56JnAD#@CJubdeo>5(WGUm{`repWw3U#wNC0{NzIeW(;&e1GdSlGkkmSdiy z)k2dZgUuY#TGzZH!`Pm-Oqev?J1t0w)6@Ed<_U$K;x~5_@AGS$R!Y9n+a|QrY;LUN z#UI~(b)TK`_Uv<|g-gVrY*5x*xOh*jOSO66tl$=FzT%!Q3a`Jc_fa}i?NWbqMN#UW zHB(>S5jC35tNPd^`1VyJHkw?!V>*4p&TPv|?mOmA zeYoe(YFFj<^1S6A+TL%rHlHqUyJgbtDqBgjpo!B@-=5!7_P1@_(xt86zLkMCk0d54 z+W&p&|MTnm`m@vH>nsh01C{c8?pt0j4Ar@P`}WWG|NrIp$ykEgPHCHG{`yrleF|#A z`I0wBrNOzQ_rtQ473QvceahBq-}4QeY%W-+xOdO??2~D?gU&2;IkJ4h^<3MRQbmh; zC6t3sc={`7UFk5?YF;(Z_3D)1dmP5TAI}(D*vN}CW~v2*d(OQY78jVQe5ObJ){6~^ z4kn$64ylZxVGPWUo|Pff#3$}GZA?|%yS$$9_L_wE3~5&X;+zF8|9zt$munMIx!nBX z^}bTuJAtCrL2=SkB|i$!`^k|xn@?cN;wi@Ir*6u|IYpgfe6xJvE@tTt@70Q0p9P*S z|F-Fj!3m>Zn*U#YluSQgWo&QP_VeJuGy7}pF8{vqj(_KWzk@eF7N5(`&0V^6t7wC& z_p}eQ@BeB0|D*r^gZ=+r@1MdVHgUC^w>S6t{r{}0zrA^QsFk}xw=g^+!Xq}cL$*6?cgCTn5DKkN-iH8J@XLw)g;ObR7{F1ja_N>E`TNTTK{mLBAzbrHrNu7S^ zOT{&}U$Gz0?P^lFJ?X5=gc;NPs=7KGPSpfGo~-d=X6nuv=lf!e6FH?lJiC+@q$eIz z=~}%?!_Ty={$7;(Qb_|hfs_q@YnJhGaJ>v{Yn-XL??Odiv25^6-a5uF(~Mu8>p$UJ z=##IdW~w`V(kiJ}S*J8S{8R6{<}aG$%knk)Si+US2@-A*PI{&dKToJBIr*mWKQR9O z;lqK$hZmopAA7j@#rpWe*Iv%c`SVTW)cfy>r=<7f&v3c+N^{Oli>b!1*C{?0<9{RE zQoH|=@4LUjmYWN?j&8iyQdv4x%;X4MUO-L?mc&Y#JlbO#4S}^mIq^RSKfc% z`_bz5`=Xckc37mDu3tJ)dP85!%)PRaVSPCfC%SA+zx8&`l|C&kd%ty6taikvg)G_$ zdbbbX+WkyONa)a{t-Cc|TcrK2+7}$FID48-%3EpEhN-7)vv+3aaVRPlM{az$wXa*g zZQY6$9TO%@(3W#`bv>-TL;Tt*rc-~yCT-DS_@HcL*w}DtPv7r};S(nZdY*ZAH>ZbZ z(e0bd)A%=XU;p4X_p{NQ>Gmayr55wgPkn03|MAT zmT$^5tx|NVvgU;5?io%P$A{P|Q0j^En;a@)G*ulzQJ=e7R5 zJs+;{4-PoI}ft3U5ty)xs?ip!r^%v5yJFWUMC7`8F@>+0&xOFnZ z{Q2iWMPA+S+xL?;M!4B>+DIKg{&Uh^o4vKhv(59L|NN^O^Qz)r(Y}_w{`u*jpPjYY z``zHV?zZRpbE_u5Irsejqcun4E=1ex{ag9XZvWh~{`*f>9w_>z`^|3e&272c4sQ$N zR{cFc{r9u8IrsKWKODs$C9$@S^TAWcLwm0W?c2C`{l~K>Tgtweg5tc){r{4ht&Klk z@49!bTAt;@C#C0h@;(ReJy|>Z)XW{8KF?3>^Xsbp9mek@_9I|R9#^`V-@+I7JX7b)RL!R-NV}XS9^IFWYn` z$|LKN-I`@3lb(H@zpX@8TSC}#4rh8%(eCqS)@mvIRyot-pCV`L{xe(S+}a}oyQb~g zBktkrqoAlc`OX`SJ+r$`YQCGv$fvq?MT7XZWs{}|oSgdd$-S#jQj0cRoW8^NwAH=j zqjy*&c*0f6dD)l~j@g`OX^Br!V~xBR!JqeZ-;7ijy=d1@`?QoUah))Wow!PF8H3Nu zlPpv7R1J3v9p1Dyr+1B#vF6`XDfee&EMIZskaT@!@^yVZ;cvm*N7u%^F_8SA{hPbE zy!POs_^k;&yV{;eGvwydH1WyRK9vr z)pGHDTZ$k2zr_*%;Ob7D?S=1Dc&?tEV$yrkkKgAmNAU(f;Rn9DRrl(cKB;%*QJ63w7UzR>B{jjUAFYWugyLac^-dk;c@#4k9THC{) zNu6n%`Qv7?q(IC3t$dp$S7<--NVVN7L^V{Exf$^Q-U~`LoYfwO_jy78Mnhk(v3jChusM z=$qTy`$1>K%2*bqT$y}8xvnP0>de3Gx;p;%PM*t^o>BcT_uI4>rqi1D?$k=m&sW`C z{Cx49*TpS+^XIaATmG)EoAzL9|EA*Si*>e7*>vBqI(y@T;(Vjqa=*olb)LTYpJ{o0 z?Y(2?=HC8st*5AN*MAW)hST$RitL%?UY?hH_|RvW%GHl6Ck8&SKHVO2KP~D1Uv8(e z*tD~|bwjo?#m&nxl{6^%;{WL1`N?a)`yJbt=KH=@K)U(9%C>)|DSsbvKl`_;wL5Ox zKEDIM<2Myt7uWgI+A8z=swkU(*e|oqY3Ea&;x+~dWhA^_bFtq!o{5=x=f`8xj5}(6 z8tL!j@9NBxt^^Jn^Ew8*HBiAF7HkLj(85nLT-PGaF)mpqW zrF@-o>QW>1_TrXFQv|M@4m#m@i(^y!nQdWlfmm@BzrQY_ejp01uUC_oGd2KbgAlO z4F1KZbndOP;o1$~e;f20zL!?pxMu0h9{X*VSxoA#`M7Om*M44QRQgLrDLVSZugSUx zi#|S9D|)qil5X$(twH~mzWqP7KId@OhXec;-;bxQT2{UJjnskDlYb;we5%uaH~YV7 zv5IZ;t|PK*jK1xi8o#4+!73%KwP{+P&$y_!1y2rdyBXyf=qs?S!2XP?r3|NsQfaCH zo3nuSP>t)6KdYC7ZZA-X(SX3AC(o?W|<>Dn&iE2dWydrv+2u73LF^aQnR=eFE$>l8aq%=n-kF8CtwSU{Zg ziiE@5Jho9(|oMkAR!^$HdEq(g5 z{(hgdG&NOK)rhs%4856l|NHTQQ76W#p0oQr&pY3$DN9bg-Y`e^q4WQzcdWl#J+L}7 zO}{1h>74H~PrrJi@^0=!=9uGm4C>cBmkrwf@1V~7>bYyLY*zhq^MBks-fxUGGpgT5 z{nIm6 z$)DlFqdWKSWMg@=z?asYC;D{q<7)*NqHb9fZRvdEmXY=L#p?@BzuI$6n0kBP#^k)c z^{w~u+8CCMtfdRYnrhq=mVFlRon_K#ntiR{@7L?hCA&4AN#Fm$w*5}g>4sB=)1OX| z5be5{p`v6s+i3I5Lq`l26~7UmK2y_&ejCQ zs#K|I`)&LA8Mo%G*Yr@dy3%n`!toII)46}^vs0x61vBTao*L1wA|y7q_UYQQix$7*l$m5!$Fk{Bi zwwcdwOrPSmaDHdcmH;V!waIgy*OhCSO4xkN&OQ8QLh{P&oa67M_<7>yNvv7Rw|;Bz zbxVbZjz?;kci!JOttmg=`QP=uA3nd5F!;Nvbx!v@m2=+?{NCkx#3xJj`{s+cmml0T zEpjy z=f|ISWS9omulxRdZNt`$Q|?@HThk|=#B%reySs*0Qr0GVo)CI;i95EeKDwGId&}hg z7e4ZCi%R^Zwe6mG-~5C9A4*TUM0r~n9oT4{K7ZosqG`!O%FX5`H^uVv{%jF^zy8h< z-nr|47Tpffp1SYdh+<9t)oOK)a9iak`ww&8Jt>4EM0 z|K`Tkd~}^x^U1SM-rg@b`0@;u#@M==81a+0em^gIxi)9s%|9kL^QRVbZiv~{vh-WH z&E}iiYCb<(6C`C7v}Iaw{>JY=mskFJx%_0^?rrCftbIC(b=_vwX2uUQ9U~$NuAiS< zb70Yz^*!^Jafc=GZxaxx<5j;F>%8l)nFyOd)4I7n|NaJR#GAK%djCU!^G9XlWjhXr zw^OXwwdQ{~vOc=LE${Zc;xoxxcijJbbp76MQ9?pOA3nc+WvCy$E$6}aY*X<`vu5<> zX9-T7>h58hGI>g%>yKFluRe9HWHgvQF<#Q8rX)cA_U$m;jd3~;eNxztPE~zl7&>w5 zVvfy@@^EqSnXF@siH0} zI4RI6HI?(FqN~dCTY7i4m`y8O_x#^C$;(D-N-I^CiwMsuZ8>$y#>{v9;=&D``RX6# zS0x_jTX50G!%J@I)2B~VuS~pn`+guu?KGi@v0kC6iYKqhOxmoqQOF^rX`eCKeDG>elyCC9_lVT>k5ew++qH-mGT1Iq7fdQ`yxlQ*VWFT1AGm z8|KNi{rk3gW8X{9$|<7hLTT}rj>fpTB^jyvTBfXxyZPQOT6%SYFW=Lts&Behr5vxd zUJ*UpJ@u)eQSZ?uxBC|hS{#Ga}=^UegF3BHaYY8 zA4tDBe2;a)*VX$IejS~DM09)E?!E^ek=l;&pOuQcNm^d~l9^ik!LC5R- zoQFMsKmPXl_iNd``TU>Rn#(05SuNMB@lt-eweMhHF>hM3(Qf{K^Mar5?p)`U?mX?a zUbw`^Bg^Is+JBaO^`^ZhmN(5=fUz!tgX7@&sLNkx#h!n&cCyi&eb1DVCn{|Jy!Yhv zW#{eQ?wY=S>%{(j1_hJXZ!YJZ^PP8J#s905_muvzIR3VO`}_yllVgMTY2Qfye@i|$ zH}}kZ`}vx|%M4OaiA)>4-sUH3!w&6#cer+6!`5D_V&RR|dcxN}a{TPqKe_Kp zz5EldYi4U~e_1{5UB6yG``VhsYilBP;`hz5ezzm}z*=O4_v6De0B~?@`t( zt?L!{sP$j6+7R|EP)xwTB;fw-`I$_IzhsylJ%9MTfJ4d`8=g|rz3~gKZJgvewN`cV zo}{8j?emvN`^o%THF>AW^i2y=CQWBeFklhbY}&n6&3?_7z58pAzBsZmMyq*}NAE^k z`I!QDkFRz8buIkn;n?M}ySl~coqSlAU?7yr zb*Sc2SqqDcYQmb6i+8Y{Nv*shA>6^iQ2a8_i)oUlsiffp_lhK|i`STnj$gcVt}aon zX%*M*FwUskTfG7n)=pjU?^|&dOXtO7>u%4E(4RDYjz^w@n&mgqreBFOUX=ZT;dEdOz-b3RZI+GNyeHf7SZC?AI+v&@CPPt?-` zjMC~uBsu(z4Ce-I>OQ4$Bi85gmkKkNZy%R0+1hh==W_+6?mK5(d`=(YoNwO$;X=d1 zvm1=3PmtR`vH4oYrcXw>-+#UdJIip0sbSYAxn|F_b8|CU?$2zNb9s54qejit@?^@q zIesx=Y-(LMW`%X-mx$fuOs*`gYQI+YD#~WY^+Nso%g)cz%$ezub-YLVzO>rpUsKEY z=43tY?$(_mp*H!?)xPU_b9^3|-2TnOwqR@TuCN2An?t$x?Bew?sk`LUx!!!`c87=m zx93p5e?dKDw*ao|Jb?9H*scyMt;M~bV%7Ff3!06O!vHY zMve|2g*{r$JXP}#DBcKd;|SsDPKmvu zJd7+qBo9e);KsfGm-LQP&C=d~7|%UbqntInxE z({7$)zb56?Hzn}8zog&k`3yDr@rU2e|6_fA?_bU^shxlK{rI%q=kJsK?H*nYk6*fX?_74diUvvJ zv=4vZ*UvvLSKagFOUbsJn@tB3B)+nI=&<-NwtMsU;#Wcs9v?2XV-TxpQr@}qo9{iV zRPP&6=cavl_V9DU&XnEF%}1M_UW)Yc%G#LlvQ%t?e}Rg*xy-Wj*snkte!?|8@ z{g$>W?Ldn+`SFIU_Gh#;2rS>e>Baem$M!7FeX;&*_RD_HT)Fd6k{$E4 zOFTl07k6}ZDcL>txqhF4F;GQf^$G2@i*n*s89xSYd%X5ok77nz_!*wMGoLpXo%<{1 z_bNJoC9qE2I-E0V@{VoAQx{CG3*6@NUE%xXTM?)B&C_P#?PBDKO?PWvxSHQ`((xIf z$-0gcE)V|59bi;5+VuE?wqNq=i3~zTMjb})l}mZ1hZ&vmRxxDpTc$oaj?eh9aP^se zr3t3Vc}#11`Mz!q3XQS)qPk%1)D-o5$M5apxb$h0!Pi;byh>VGR&%r!t{2{2KTE0T z)IsZ-37m4x6ITc<$dOm=tB;A+KB=A8@-lH-%VzDXPbThptYUmUZFBO>sfX5Tiu^u0 zac-j2wS)<;w@j|yBbxk0p17%gCR5nQL)_XcJ>wlSJUGgiP8Hg8reopy=d!2! z?i_poN+t!EJBvRi8Um5cQA6;IG`gsxsc* z|J%B(#cSvCvL4L2_qX;L&rgOQT&IQeo=<-JU1JmcOy*>gn_be~H!a`5#}J9hq})&&>3DHm7@bUU&Sk z{l{+0=RbcM->y{qZ7^+T@rUO@?>%GZ8-(4rpT7C`_RW=_%f8K@fBNt0=ie-oBT}x! z7T(K6UB4?CS+di{F0T`*52}{{Gqt^FT3|ap=~? z>y}%Owa>_Q&-{OSSlXl?S)|**y8}VYbO8?;}pC z>|QWsa_UW&`JU=0TeWBMc*>W4;{I?rs(fR%*v_qOn>I-;uiyMtbn*U~f(*~PYtMO@ zf7$fzlEdkDpWkoWn6USRkXVrT6P_$=H!%x zvkAzjTHpKA^k>7hxy2p(XL@aJoGH8WbmNhnH>`rPX-hTI_0^jnS%qYLYZ&M*ClK(eUK7O*gmtz^$%$YWAf^AwHa{Gn{y@OcgKO z@JET^n$&IiN6h!Tt+*x$ozQ8Yup{HoDee>6@AtLl&*+p`+*s+k(&fq0P3CrT#YHv` z+oZZSeGl^EkPc!i-k;E*@aXd66Z`b%_bzj}rs8INKESo`U0j!5mGIQ5J=ykMR$M`s zHTZoO8<@(xp6I(ojCJF~1AM<`<=BdytIbe+<=n15E6U@qEBDI1In^H@t39fJWwGj( z3m?PUHz)R=;XB?ddzytO?rlh@S@AK`t8%JtW^z^+zn^B*K54)8QsU=c8LO=uf2*Ai zy7~RL_TrnrKS%$(`~K~JbAf%2%jdlMp{Y?SzyI}HXG!%x({fe+e~+%NH_T9-$sRuG z=I6@CZhUiJbS>X(G-sMUpTx624b1u0e`i}`sI#Zh3W08J^m>wrm-1^wk-etCin7EyI<T6OvP zD{L+*0`sOhx;aW%`#8?kYrh@ zTH2!DtSl)R!lpVwkmc^Ovf27c+kQ1&?b^Aj<<1^slb@xv?;J03vb??F`0@AntWlJZ=3Aiph*}v+JtcbMFlXJ!i2G-q?-;?t;#7NKY3vIe4ntbNOfqn+1M}Ix; zM!9~GyUjX>P5pP})3Z|;_s?vRm@YUsRmsY5=A9KbLQQSk&zG%(w+>g;2_HyEh|3ZT z{T8@7RX@P)nD{>S8D@f0_f35CL1oe0b#5{Zn%exuQCgDhpKnHUT|Rtm!bdj|)#&no zymiud82Yw$H3{9mv^f1!`Gi^ZPt_DN1&>HHD`?D{W8-mqmZRe{zE6zzFJuI5y5uS4 zwC$R{(d4G<&nE6up1tQx(l^F^iWhTkOm!>jS^b=wE#Z`H=gEJIrE8ugAN}2SGH32x zzi+$WCdY~jO1A%dDF3fb~IRej8Ix3f0t@ zw1>K=&5JyEaLWIO{3ho7@6@Cw@7+7Iwz%NCI`gBGr&cLhn$D^`>08n6GI^G0{_Eqv zT_*{=^YsleIo6nSf4RaUVdaxvy(+ubO<1&qXVas}H>7O)dwuVn>G4ua=FpzG!-%i# zgx#wr=KX8dcukt5Y#7(_Qc(KDxxRzzmu-0;e<8ew>Cnj=flf(I7M5)@&v5e}xW4Z) zwAAswJAG3V=Nwz} z-0=C6N6+GRSlMk0ZOSrmEm>18oTzkU_ld-*3-*1#e3K`A{|VWY5l@n@?8vKX&`Jw78`ul>-R7n*j4(vsw@CzeyWz= zEfv52TbVt=*h{+o}QkHW@gil%h%6YU;p=Y&DYiOPyhXXfBgLUe3$<7 z7cK-O{5XC*eE+Y|>tQ}ej^4U``{(8P|4csqQq5bm-mZK3^5wsD9(`Lg^`(pYwTYpB z4jD}6T&HMm*LdoSQd!T*t_a9vyV76j13U>6R|jNU-`u~$=Uc>eXP0BD{QUf8IX4c- zmfvv<2oTt}Z{L>f+b7SM;gOZ4)y^;fteM|VK}pG}Q%F#7V&P%0vlDYRy z+3VkKQ_*VJzTI3wagCUNF`;@#pjG3nFPE5tseUL#pjQe-TSw1d$(`@E^)=n#o_I{0*x}LQl-bu z&m+Pe)Z}>i`1&8ID=9s)$_jVyOM<#h>CrqB=7_eVhYvS@`}S?)x??TN8N&o6*CikC z3k(S{xpq}RGB8X3_&hsiaJ4QdIC0~0$pc18w{G9Ip6+nfVL@?UVUSU*i(AvA{Y6`Y z_a8AuUg-x~DS7Jh<;mN&nelGmYfL_4V_TZ*=I@p8^}MKI)&IZWV?(41&D|Cku34>M z^y-Sfq$Fak<_>ev!nQZf4Yujc83(r3*B%;aRDgA}8xuZIeDI(_F;lqoIPrCa1`}1!3c34ii`p%o?m8Yla1~c6_YO*^t zrNS;M#QIvOz{~LS(U(`nKeDPtEXq5wx8ln6>)XHYpXqV`&1vmh|8ujm7jNAnWci%E zQD1sGr%xB3tnUBrTg>@`;m7M;U0jybznac7A8GyLY@q{2N^h9kk@lxB1w={~x#PS5i`XeDvxK{X#dyirG$I&V<61^S<9K zmPyFT&VFqsecbNCtzv;oAD@3T+3{k{y>Ihnr+aSUUvTUHRokyFE-o>zv))a&K=#Zs zmJK^v9y6@^o6exGzy93s6I-`#efae0)!fdb`=&*e#B3_u^J4wEzSGK9d~>Y$mV7hi z03~4N<#nCKh=}va@nYycZE>&o{KUrx6057Lx2uZHy_>y$`=&dQ^yvfcgs zTUQsCl!A5NP?rYhfR+Xq$OvrF-^j6z@%TJ%gIku;C9>txgjU62)UIgw>c_AVX%dQ`tU*9>oAVSM*bHcf*zDTzJas2%KcJjhE1HM;V zY}_}iCv1+|ujhuhew$x>Y#AkTeB;s|{qrVve06y}Jwj{ShJts@hr2F1Bo&#;e9sa- zu70%ejmEdd?i=MK{`S6*%Hl^B+1kEt;kSaCAer2@i45C51iq_!x2sa>@-pAY&vsv% z{5vq*B%421t*Yl44|G>-NY+L58jq|p8WvX6f+@8fA z{l9VALpCWsA=_Lj<9F6B&i&JML}$-5&XwZcR&SyfD$SG5+?V`+$ANt-Uhn+(D^Bj< z{l`15{``IPoYPU|;vJQL1FiOF9+yiz$0N-CmVN!wrnB66&-N`2|2ebL<;tY$>2K$h z9ew21Zisz2;!_GYT?H!ROd{@b9--Td?1?rV-ytpDtax4ojaOLS}Jy5-*r zL}Fy$K0I;xen+zR+lA4A)i0{D_}v?CIbRQ`w%B$>ZkOoRc0JQ4EE|?4S+6z=pBzvy z?bom1Jx2dE`q!LaDz)IDK>wQa>EDW%uUKz?I=j37(~0KFD@+l6Mfc~Z+RTV{{QC0N zJKha{YyIawxD3{}y(Yg_FZ@Z|+^PRB8n3BZGV4fR)!&plyVv`#M?1e?@{d{P@Z5;{ z-!|>LLN7SE`q_yeTjeC|rNFs=_40lD=Kb=oKX|t-@{f1s@$>a{ok#7GWA}eN)PD2+ z4F2PF-G8fkU)`5^)U>tfPgkFCg)^(W{vEeBYq?gvwzTidH}5I^yUwXCy7HCF@$`Ur z|JuKmanZLnwivmRpA>F8OxB^om@c?$-7^_qPjA^H?(83AlS8m(zcu#eI2>l*}ZZf8urv zt}#vP|77`2{`lc?cBX$izFsODlH^6j4x|g7-&;TLJNLY#qrJA=wr4Y+ZB{EYvt!w0 z@-gqv>i*(|?nU<_e~SI<>OF6JJ#_sJ*MQhUSD~Akf7v72ZX29=bnd2TihRk6g-A;b+&W8h4y4z0JWlbLk_& zXJ;x|s(0wLhZTOFB%gf$b6fImt7NZ1r{}S>0 ze1Gz{*2N(v3?ao|CQNlL|6Q!}-$d*{(JzIo=6b1t3vz$odwjio&M)g}Un{>H4m!Q> zeXOK)`thAhlZ?6Z_Hkd1H8;*Z*DSMHW8UFXSD)4VpB}6_J2(8CR^Q)%*%oP6)cEGy zI$Y?GyC^zfwgpcX|M8w%hYtqMe(~&z+%DFw?S~h9D>$>lRz_xPd!FChh0y`k78TBZ z4D84D9g(&cFE^WV)xH1FqWpr{{1*azo6qO`d8^NM?%4e(Z)fHP{>IwWC;2f)g8p+A z@r5OCyi#OxJnY$lhcK%q)&uvwac8?ycd;CK`_S754EAs4W zDbC{5OY8VYfBpSGcK^6+v-#(Ox7ZA-GV`0sYyI_xNU%(h{7gjU^|U(f$mmOSU0b9URi@|`8~kJ{`i z7Ic@7IN@u4_UY}P+c&e|;^i4-!7ThT`)5DjR;pUX9{2y?RKsgL-jgE= z72D_ZGh|tAc`dQsc2AqM^*fmh1z#%r*z8Vi`*Hij!TCp}=PO^E<$o^o_Ukt3gU6mFT-mi%+hzEa+9v7?)IJT#YCyLRcL z4Cc-I6LKAn-eD7MpQBW{trLBx$7XRJ;bNlxORKK`( zMXt|iYrCHDAC`h#x!2)O3vPR_-?VPN=BB@T)8l5J{^jmB`9pVb&99f5T=KaIzst)4 zeNA`2F@H2q@a%d0uis*sjupaKO&p{w|3{1ZyJk>#meV@eZQ8cJoV_S%`=wV zVEeR5d&3numEB2po*Nqzwk|y?y-M2P%sk)ct8Ux<`!jWa>#KWZr;am-ZGKz3mAByW z+AlF{Z*QB+e{J#Y$gL@i++sQkRli@ZQ>l5tC6sS_cHd(8LY?JJ2UwA`C9}v}{s~jK_nO)rrr*r6>Z|80{waD# zV*3n-`9Ig}Ts!N};^RMkOBL?V$luMgc>Rysu;(g%;eV{!lOyLJe_(MWFCa~O9`m)& zbz-g`|Hge-V!_vP%cXotae;pp|8dc+oyz{Xk2nIVU-Xsmz3aVoq|o{8!xO>P7ED*< zb}7%TuU`DE;7&lb#iuKByUu(NI>3AU#-1W>-u`_D{gY%bJ^Hu(;r)VHx6Wx^yJ{kl z_I>Y{Vs>v=z2ko;-`JrfAV1$hY`u3ly|%BsqFo~Cwxwi ze=5Cvd%=BU`B>A9d@)<59Jp-x#_E;xol7?x>_0zF3!XUlu%Xz-EsKBE9@WoEyI)x3 zHvjmCFQs$h7dn2F@$7o+u+mpXJ4=||@9o1MOU*9YYVnCo_x#s`vOn| z9NxI-TS37Uxjz3a{=3bOZtPyD-k>YL@%g^@1z+BUSLWW$y*thQ+f4c6LEdub<=3!E zS)Z7ycNo`2r^JbUNwhfD9S>-rEs>&T^7={F{Y_qMWW z6>TdxA>jU~=DGFL{Thv~SI-8x+8nY-xs1IezU@rvtt|=fthY^h9@n+}{?g6))l;s|n{{?y=s};^ zWx|0s+2pEA)w`>=ZTCC%J@S`Kz73DR``sg3G7r`~e-TvoDe92uXCizHwvoWFd+3+Ur#>Zm8un_vJn|rCR&EXwKsK`*>K?K3pp9w%B1bL(*LT;l%RV z53eiw&tF|?#TAa-|{px2EoxPJIuaw268vf3^c8AOS*s&MOsO#kQa{oUX7Y2W96|9zs_#P(Zl;#R6)dbOx&`GI$WIX)M^h};Rw zlxlwWcKs3ESyJ^Xf2Gc>OSl|y%Q|b9;NN2so@U3wgnMshp11h>@8(~akuXOgLZ>6rDyq{u|IlU*ry&i^)sf`-_9&A zd|dKq(IOB14ThTOMvFJcrJbLY*0t=ops4xWwQC+fJrtt!ZrU2v2&Deu)=r8^4to9FnvtoU(m&3x<5fO(BeW%e$xG<;#AUgiGz;atz+M;8{#*e>~L z@WMpC%D?#0T=&lpkwrc~go?!OTE2Ge+w%+aT6n^H_t^cm{Wcl8rabFicsLl9nV)pJ9LBRVqpZ2a6DHjGh_)8j67mr!WaSLfa#PO7g!UZ zom&VsF;QuYc!O;34L*_0CC^H(-H`cPcjeD7pGAun{rWT0cV_JYwiVVJnr3#!?w@Q? z%*y^MFMs*YJsmfLtLnD39qw(c_i9d>(cXOQaQ3eG&m)%U*Uq(Se;Bsw#_1WdqDOBm zeQI(1*$T}huMm;UqovK6Yu?|SE&F|ejIsT9>D0HuyU*TwHmT^_#^Oq_v(4y^gmbn*WTLS^Zl{&-0Q0+-ZftA5tDfMvipqPn~lr%+skL|jXQN~ zruy%qD91vXw@fc8`)ks(e)o!b-;~WQS5M>HcOjOc>_&uDs#P}Ml?xH~-;^wR z{~&Ac-0IK$fz=YOYye@R_DXZqxSEPu#XG>f4fA8WDvJZVc6ytlE7O z0)o7wZ@b<*vn6oDGXuHrs}qb*FaF4&&82m+YV$O0@&1iF3YEFLvTa^{cq?kH@qW7@ zyJ>ZQLFtCGUrnnwKfn2T$Jx-B%+;y>S*+RNG9P{$a);~>ycW0R_Lr~uewNkO%Pv2E z+P3N2qPwN%H!oN)@z1;YZ@p{}b!}x9-xwQsE^eD_hTR{I&D>Ha>wfZx*Z=3U6r7hE z9$9_s9Y>INop*F}^!xeR>fwej@5Ovl-^m|s`TIth{H+CR_GWBIl&cW?J<^RtmsesyDSn*RRJX}eEVDqLP; z8(m)P8TtMBGXLLI?-tFOJ7a61KoqRPZ=GN)H3oqX7Y`K5>x^R|;?(54}Wu{J<=6EdJ{bF#j*)&mu z>Qgt?mB-gC-|@Zm$qG#+-9okdGiQ2SnPNKU?PmM=o6W7?eXDxqnOc~~BzR=f)cL(z zH%?kzXP3tK()?5v!{)Nx)qkaf&gsqEdiRUPjKFKmGq%lMziHQ!C*RJ0GFq_l*k70R zb7GC&Z!eu9c74L{XVNxPr#7f(hcs*|JNWtI!M@z%f``J_D__0aG_|Pgq)B%C?FDPt z4d(KP`v0DKbI_}{$1g0@%D{+*W5DaPo1((CVlf4>&r7ISxnoQ z$$jH)?T5DPV|&lvT{741dX+|Y`n(>&-u2=e%*#xFes8PZ6Z_O=!tOP^*YDm5xb}DE z^EZ!oa-X_6^JUG8?78hlWha;DHb>@%U-LV2>*4ENnx}56Zhoz|YWd&eId1}VWsMZ~ zu$HiFY@6zDeKvf3(Ei7c%X(zJAAMoXd2hKRx#;GnPimWz70te<-n%)evfA)KT651% zpFV~+y*HGFUaXBz7T&PUJo)?K-7HLpRruK-WbFSt``Y@Xt=B6*_*H1{Ty3=ScI}ey zvD)9dWT!+=pDN&zRRlBrCt}y??3fsj=CX_i0D3*}b2%yKd@@QuQ4XUyWwg zo@1>!fA2|U-${kjQHSqsa+B#x%c&7#;UcBDfT_ks6P4B*Im8Whtct+Q( z{XAtWcUtyhyLGd*(wUFt2HL*$KlV02SJrCbU%muk&dQ%p)@wbSJNdZA$*gBTm$Jrg zXYTe;&^DhOvHX7dm7MgWeA?36p3K;{c-`G6>CRJ4jr%>nTHi>_K9;!tvBO8cSGR3n z+dhn3ePZXX>3d5V&Q5u6clt?bx8&u`K1pZOu6HKqoY>-YB&Fz+(1z<@D&HTSp%eDh z@7SB(1$C$GlqT~=8*Q+i<`)xVR9~NBG~4UUcFTx=Z_H2Knz8)tx0WKa^lN4L{mq-q zp6$AOR%V{8Ysj7J6>E%UPx9T~&1rn<=A7c&vf;0H-l`LI|E5=0{Z#4rr?)o$JvO?( zw+Op-?98p$@LkQv);JZ-?bc^Lb@NWcHvUDtr*6$C-W}@C-cydoy$ey*_R%vqR&N9B~*B)f(E#9IwHFW33 z3-|8kDl27d7u}ptC6$?(c}8#D_jgJ=?KkJ!9q4MRn)WAKH+=+-dz3e z_o4NF-6EympZ;97d-fNTj^-p%3s`j+1PqF-`Zr0T6 z-FlbNZs>hu()>=-Ltf8b@upbjOxc~=vdQe;bkE(gX7lVHDCEbsx#wpDoO}1}`J%UW z+Z{m`xPpSb0TSe|uG_7DWy5Z|`*cCd)5)2vLPe2t0uH}3YF;d!r+O{xdHKA1`*I{w z?>sKE-n;hel&$867?0mf;>s%0jI_OZco*}O&EI$3diivh^nx{eh578}?bb-oZ)xra zg|+(U=L^;}J6rO1y?Ut-pexJe{F!OP;=aS{r+?+tXyRBr~dQ&pX!sY}48){gKDBw#WawJ-z7LvbW9I%^>4eE&qF} zM<_ePe# zu4OuPOLel@uab9*=ENH3F6IXXb+0}oS$~`R>SaT)uB?^wXC{NUA@3p%&$|A);K728 zIoj=SS3dFUV{ljA_GxqMd%l7zAAenP-;lch;Ox`C_dA;?nfB`(Pb`~a%3PMSv^vx8 zZ1N?69q+fDmpOYyMlZq9P)GC3t2*^)-K<_Puk6;{{gdq&Zn~?a7%ls#(0;zGw$c6W!{#fI!84z{@BU`DJvOrX z=#sn7rfj}`W|NsM->F;LX_0ZZP8Ykj%B(16C_5*o^Ek`tJm>PFZ?ht=aqfJge&fcD zt8SYQ`<=b_+%o&DS~`zLw*F4p<*zM1)bP%1{XBQybXUvjvuoZi%MG{|_i@R$0Nc0n zYM?@;y!T^Y=I@#npWke|J7x0mjoP_ewwC^1dFxEL^!K72&!ui(-7K@kl=hpW%s=dxT zbxV6$?w5ymTrH*FoStk}75H2;{r-=j=bG8|!RP9hR#{nuc(H_hn%UpV#tlz*|`cQY*N=<-Tgd6rQya>|>? zLsxrGy14eHzr3mA6*tfR!S3ewB7K{)X9!I{(?*s?%Mr(pnYzjt{&FaLX1jyJ6SvNsG)F3INq_pOCfOUC_nq5o^7vVHJk#XAPk8t2v}|nVJ|-+G zdVI~L0TX~aLMY?RxTv7LsD;07Z zQ#Zaos~RhQ78HTU`&q*F@9gHe9W?3jG2`m*5@vgMc3$C_vUU2M-phTPtu?kj-=uhZ zWm4$5IOE*ikB8UOs|#;LbDX6*0l+4t7xL~^W~ay5V1`Xw#y z7j`6@B`==z^Y^EdIkz@TmB$~ia!#xkcZ!uU1|jqu%n}cM|c=BE(%x5YuufU+&ENHU&E4w_k7TdP9ZWV;Up4QW_-38Z>L1g8 zuUTH6Zkt*r`1I_;oY!;DZ2ovKFxVyPO2o8RcTxq;Y!0)1tN-rTmRFho4dfSxmh((H zIcs88w*6F8r&CT6gziv*<(IwTzC+CYW zek>z=8-KE}L8V};7=vr+3}Y>quT)~lnj&hhYG z{xiRF&!6|o%FNz)97A|0>LQ@@9o*nq#1{ z_r3id(b2lqLAfGpEE>+$*Q8jzx7-nx|NP#cHgfW>#iuTiHKge z>z24&FMsKqxXsh=x31_s+?IK5)$+f`eCLPRzEw}NT>VZ$X0xgC=B?IiUss;LzGmyX z=d$v}VYzRa<9~mNjfsBEw4r2k^6kQw4_9A%^fJ8pdS&vdM|W71I#jjorL&V&!$Z&h zaQwgKtttD;nR^;bBR9H47)QoV@~*xqC^dEKcb{Kt7r*0}dd=oq>T#y9O<_-kql*P< zZ=7^bOLlQ#Q@y%>`LDlcpY(8+I=?Sav%D?+)+cV$%s(O80^VVDde>I(Ul>_?%RKLy zZFREswI0tSpx$2Cny|G?ejG7*ZspaTeWLa=@4Qo94zC-VpA_mo4`J>qKT{ND`!+tU zc+soO{f4K5wzk*LOnv)c^%_0RopVd$*i5cvOuWrLuZJJe<7r>F@NmQKHKG2$+bhql zTK@NFiCxHDLkqQRx3ui?sOz5_`y;bs&wJZFTXX9c`@TN;^1|G;+y^c#-P!XzcXGt^ z=@-6!Hf^;p4|1kM$aZK_*L^^&gL?PzHj&B-6QsQU5z__^}?2S=hCj_ zzXf-8Y>)T&9=LU{=WkxcYJY_peS(5VUinAn7-%RQ?~-$Z@%+d6B(JY>umSV@Y>1(A5d;GPqSP-@0^VZyJUuzyDUyHi_c~ZXR>TTaz^CRz{ z-TF1$=`Mq$)GM#@3o}BU@^Zf0yQFMN^k%y(@2SqGU^6>5)UxXP0(pz{+_PtrgZ}cB z-Pm+Glchsh;~yt3HS9KDfVIT1vU;@ZmYKrne(E9zN9;Y{h0*Jh{{< z&hF>KN}ZEj%hzpb*y_#gvG$&GAJg}~n-;ZO=dFGlzA;Vy@%DV5WqIG3 z_vda!&1VoRxKZ)1p?OcKSCr3;t!bQD3**pYe1})vfw7MPYXZOCb3`|EZ+R-=eTw*?{ev_gQCW$1;e`I=wB( zE=_jz?>({?0*f2GUTcLtKO!V3=>6Q;YGahUB}|Fq8wU-dN@M(@77YhJzP`3D8lH)m!4H$3?(Z{6Bb z#vkj#k2gNgKA|(`{`+~)1vzK-WZIl~xVh|rBeWU1#4|x4CjIW|i#}%`GKq;Co^(iO zZ}A28w7+JUE#XOACG#_SIQTBlkuBY`?~7p0&HN9~ifXeGH=OxhVm;OR+J$yC?fc^` zvv;}JBt=zctox$f{|OXG>o$eF6_i-FX#BGGKifaeTv=GaCYyUG$9BQb^1GWulY z{@!id=Gh}RNcl>$-{_`!Nlacn( z`uL3{{*QhfTXWwnC2&(ZXSlhVu&C+0rRkeBDl6@(@~8HjxUsZ*p6ff6WcKfPXkGBH z@}B-KB`vM46)Rk(-FnxweLZW_%OBX9!gC*1pD%gik??i)?h_kyRW0*uHkbD&UYmU4y zKGXZ#Y{8ndI-Ze7dZo>0SQILypP!fd=f_9A`t^JE%rQ(pHev4Ev*PhJ2Tx8`|9Q-O z-$8xpe$90LmHzDQMSODgDRUpqI3)k?1N*wZY~GsY_W`digS%y0-9N1GXK#OY_`!$t zdbY2b#!}Wz&b3w*SC%&)wtOxZ|NqzZpHC+HGt987wVGf1ZRY9wmup^F)~Bqsdpqw~ z--Ezw2N%w1K7PM+-pp;=%+}vp=Ff0?!k4Lqk1f8e&Ht!WAS=Oa^XGN^=Ax&k1h&69 z7akbs=;qe;km(J`6Smc6+TrV-+^c^7^k(|}r`Gp>^6BsS;8Y-Obq3_7B0jlPXg~77 zif{_OZh|Gs2Ckw5f>m*&<;XUQOmHU}w{)uwJugWUd?cFWZ z&)e&NZ{PFdQTLtl`?VrsVnsi?%bRapdgxedWih4rgT`x+qZhAX_TTDW0ErB~r!qFD zV3I!`%l|*ItMv7bnx97R_x;w}|Lf}dA0G~{^Y2=^bm_+0-({aZeUdQE60!gP^Stxz z8`g6+@$vP_f}_ro{d~ZgsQC3%eBAQx6~R|wl~1+fe{w}e zMoyVJ_2bXy^Mik!F_vMN)wp7V!M`8*|BrzV;>{zlpHHgKzfkayN!#xKoYNma?)kXf-jMmnt!ry9JU=SB z!ED~mW8atQJ$qT(cz^osZ885^F6|N3nY(Mp>+|>5EXX+Rx@YeZ`_xk+t5&bR`|n;e zzuk#Lt=u=aW{W2#CfaSi8C?6@>He9&GyiWb=Z>^0H9S9`>)mXnwy61hDvv*|YA${~ zePhY1s#E&xY4@G=)BoG0uYcCWz@2*S?=g0MBhF`cp1-f<-D_tn^7DDAS;(euUrOJ- zt`R#mD^25?+&=CnbJDiup8qa=snAN}bLf8^CsX$*s=YUg_8WJnfh<@qhN#g+)1Sao3#Z>mSd1(Jy=0eZ?j@uh)MM3hbC;ZLz&b^8Wpb zX`l8S{j>kS&hPkY9l>w57w z@bhb9&$$1y?e@<(C@teCM|io18`-Id8pb@`H^Wc!oh$k*;E`F9Ub;!*_rHs-(ErXZvrFLYq3`9N?smrhuljt&?3!I1XC&(z4W0vqUxF4K>ziO) z(aZCOIW{QnC+mNcEdTH4m1b5Jl)sm5dLX6#Iqb8S?u0#EvF>sSTljss{N|U<68_C~ zWQQP!U-HE5>(3-SdGj--r2XS2y-)Sm%q{o6FpOK}_o%bK{#4HlzH@8qd!F|l|8Sx+ z_l)HAgG=TAH}vK^e|soi`NZ$#Wjl_Nw-+xjKP-3mP~W0=b$32-y7IqSV))iGuJ(1E z8_z3Ap1z9_vVX5||Ea&vAJZ!|>DFOi`?9}3B5ih63Ov_Qtb3bb_vM1X9R7o+*Dxn? z%sc$s{pY8^VP?i%;nkY?ToGE zYtojruDgD}%1-~zSz}}7Xx_Otm6I|rFZ=jpvj3+ill{N_s}2hj`~UC#f4K{_)u&V6 zW~6nT-P(A;&4o`N`TnIjvyztvb&du#m6){WX+cVzYYV*!a~`S1T(uL}F0{r$b) z+p51at{Cgx7X7g1?waYWpSITQo%i@?wME$zn^N`ZxD>`ew zp8c|4?=^JkMPX8~R_yfF!yBz){~V3;JJ_YHvM1(r=N*n5R^!NB&kQ2ppI5*3Cf%{B zD{l6LgJ;foSm}p+T=~|v?puk{?z%$z#p-r0A5XU1+;HH2s@;7fn)liko_F1O3x6%< ziaV9vDD1j~^$%yo`A5%o*8cf;yyoA}=P4;E44~@N$k;eDa_1!dzgOcc|1<6U!+75Q zpIGma$!7U%6Q^tc{PIHX-}A2$WqYQ`-Dy3@DS5`HU3;6CR$auArPBIAd(Nb^F5KJN z#_dqUx7ti!dE?eOs}}Qa`L*HoL}m9)b$_cqeg6FO!(sl|dvP20?wz~Td-|szkNb^_ zo_NTAyX5$KrI^y?NgTU3@c-Vy9^?1H_Sd)8K4ZH#=cayB(~7h9bB^NT=WFCXAkbiU zH`$5J*m&)QTL+%Y&rNy%DEi2p82?`y_Ga@WjGi4W&Zrh%etz4ByPbv(?7qj(U-Xp7 z)khZnobM$$;-o=S_D}OKYP(7ag_wu>} z-(EHrC#B4fFPwcc;Gv1w&mt-53v>3)?0%>5tn?yJ^YWMX*SJrxu$5Xhdqvi(1UDb< ztD$opgy&zsmvYV`W7Sq>%_Y5?6C_L9zhug@EdREH*`oJq;mgK&7LKa74`1H6^ZCcJ z&vQ0~ezP-U8~*;?^lp4OiZpBJ*XeX8L&_Wbd_{EN){&W0X*aDR=mXOuzx^C7}24q`|I8AAGei1)ZXHMyv6>UVRO;GEWHPx6IVPp7JuHXyWDPJ z<{cHco*tD+ezVSnT%0*iZUetV&Ck>E&#v$PXIffX>NC@bwc+#g^ONVyk(nXOb}?Xf zHuJ2l^1ruS|NZ5-#KVyM9*HL#xu4a{$jW_Wf8ed*j>xZ!S7jNV|GZGvE6Hyisx5x+ z(Nz9-%YP&;cRG|4yXVB`vSqH0q5FAfUpKydXREeC2I}2Mgvu11Gqb)bDSpL0n??#_#xzNUQ;kDA`#>HuptIzN8k9#brwYGB4 zD{j*MHEO>gMKO#Kl zZ1iva$F@l7=ike}@&fhOzM8Gy8-3!IyxBw({kgN{LyDFj_PVu9 z{^ONH>x9b|Z@aVRhoJWS9EHStJU>^j zb!yB@hU{B1a`$)kh%C>QuuU(Il$3k_`nks3zrlV}-z?6$S9Qt#?vlFs#nziF_y360 z%40C^+x#*A{KWsCBki_kd;V5pm{<2JbJeO@$s>y zj?Ndm=bwK^nE$sZW9W+bZFZpY+CN`W`#(8`-*ojq{kqM2N2%w_w`yZ7$- zY~NQ`vzLGSc!~eC<^5ZpDW7zvy^lHAQ&{Hr|3>EQ^S+O6yb+ROSmhlt^S6e5R;ET`DzwYRlbghqg3FpIBFQ*QEK!n@E@Z`tD=p zuXpY=XcK(vTa&e$b(+a0WA_V%%idRrp4>Spch8qwm2W<3E@>_QmRb1V^SAVKw#m2N zu8B*z_;q{Cm!p1@pTF7lf7#W4R~F~`zc!BB_uvuJ-M4lH(eD1Pd5zJcPh+y?A6Zhc z<6EF*uY<$|%LMOx+!>&%S@`!KzyJTzmcG1e`{qv7q+`+vzNgcEo;&`l_hIexee!>j zx%Klh6s(LVp4&WqL$uJ$oogqA-dw!CEKq1_BA}%b64TI`w?3f=jiP# z`P%TzCPB|=R(M`v(Z#H|od(_V^J9E#j`~OZEaB$gw|}zh!>2a3)%@G#?m86~X}-3Z zB^=w&+G)1g^6Rpfuh+Ei-ldUx$j>8E9i&CAwZwKqg=@$2|e0}e`JnF@X zS8sm(Zs8Gf|N8#&(Z_Kz24;8uiPVc<|2(tM_raN~Go}gM`?8a**|6ZmDzI^yxQ#@yQ8J8A9JEm4m=XV*>6ioSkVZrb;k-Sf_b-kX#BYxe(5atD{Bo}S@yeP_~F zci)m_`UyY#ci)>+vH6j^&esQfj@W#j*7&?d-{#1Yz-Pw~{oZ+D51--c@6-QSRwSGJ zD4z4~|Bo*(=f=%HEt!8>=!&8BhR=x^&o?)k9`jxGZSQgK{P)X86K0Gr&^81H%{^u9IthRs9dwP5JrMa8y zPAym7f7*V!zS^ayQuhwbsgYG?>)Cnx-SaPp|6XVMUwOIGY}d-kMoGJ#O;BxTvh|yN zzFjtS_gxw0hS_uO$NQ>ZJQ5j|c_aSh*7jnyJ&9`*U)!zPbp7)4B8ItXuOI#07kgsQ z+?ao=zkmPPw!11V>f3=bT|*Cz4UbFan_0&)$lclb=xuKKod2rFvl`E+-@NnJ?a*xQ z?;H0%QSudEcksx?Wm}teXKPxnyLKSHqQf(8U*w^B%jk}o=JPF2epHEi_W5n6a)*5S zzOtM>YB@2RZHpe4z5R6NMDDWES+8@YuXd)D?pyx)rT(X9mXAN$2b9h;clsiGK=6oF z{i5yR=&R?pm&SS}`RGN*-E%3^NytAUH?d*s^QOEUrfc8Q-jtc!ORvhibLd`C?=s`% znL8L&{8f+r44WS>^W>+xc7{Uh%+E$0dkSXly|4ZBPU(j5xzEKW>?p{3zd-);S#}SG zsPi$qYIirkeqNFMv`(ty`N8n8iI=kWoYk9aa>L4F)^taivQ^vnxH|8yjIJ`dl{d*k zzd7SgNWSjFfNY`7`y}~&r|t>7lu-5Xp}PG~PGL141wFmK4I2!Ul$9lIt4ua--1z51 zyZslRX4;ZwpJB|1Vaq(xfx`>hYU# zHS6M~@7kwdkDMtr)upUVrDV?I&)l*la|*BarKO3~PFLYJFzRj9*GbO$^47Pc>f*Y6 zpfl6+^7LlToOx!Zar>b|PS4KFbWTfCD}H`1_5Z)WKMqaW)NxjwYlhh+uW#D+iuRU0 zI}Yi-vD(;lr0edUFJ;Wv{%>qLF7JIPuey7F?%MBfl&(DGulV=z@tl1BS5@=2s#m@| zStMm&u<`8M`jm6eauzW@+FZHEVDh}3A5P7j?K5k#qsiKuxIO*FZzZ18t^5C7dwcxi zm))mh>-FM4|JpsB`Qmc+9rs)gi*Il6aI5(7aHaM(wME9ujs88V`!4BoM!{Nc#orli zuN|^QL)QwJ*|v);Pg=Yo(^!@gvBdN;;Di=@cy2bZEYHGXQ!4^ps z-cQVBjBhW?o$0JCom1cayuM=6v5A>y=1g}j{rlbPtLha;GIfk}>UmgF-xSR2=6OE#qKa>SoAmS@C4beX z+hs6Bt+cA{ojrYZhHB4}Hx-9$PI5lpxZv`Wk7>!?@p9K)Ygv|jn=!#r=0aBXqg$$w{slWHm`ppxr%gJ5wlbwD(uvBux5dqs%6)`(rKFq%V_l0FBU;WH^@bdx3rTRTnWvz{O*-f9a zr=$Mgo8>xO4_r^F&##%ZVS~ZHPx}9b7`l%(9Zh;Tuln7~^4Ur8JEY}(iob5t-}&=z zz!j-;OfyUQ&;Kgn4u07uk{*y)=)jGIrZ>>)$W#GbSs| zdtNPB_RjK1I1vqM_$wm7!5zh^cVAKiEH?yB4ad@5&NpIWr|snlHIeW!)3 z>klkib1^TQwfuU}I>{^6^Uh6dJYkvkE+)-a#_`eN;*%2Xx3?xA{(156ubthFbJI5D zF20jD>)Ov}XRc)_e0l61zwkG76>9tQjVju6c3on+rl+g0wTj>J8q21l-FXsk4Jy{$ z+!@etelpw9x-ZMuSl{}*-9=0+t%O%(@BWJ?r#j0Qw|b<#(@6>4)jI9T*EP4JPPT8A z)yaCxaA-px&+fe!KfJpweP_qf`ttw5hp!1q<+V)w6rbv~zxUq_k> zubTC*asJJyj9vE*a!lT4bMNntCBF6vp=Kf1?2dhVv!}A-}e4dV(n7@IdI+$o9Rai zEp7fCVm^|xbh1QU-{xa}vq z&UvoIjq)GvT%7!8*YAzzZqE_9doDvOqt`F}))@(_`)_~k-QxQ?@?A;KB%c2NSMK?% z-C1+vn7!TISb->`9}m;j?q|Mna`;tZ{`;TOr{8O4wx{YnI4HthQ84>{%kym;pFX@; z5@YASWj0TOj3oDB%Po5wCyQHo{CQ*&{_D=6#rG?|=7nA_KmRV~{HhX*^1p`jey>P3 ze)suXD5!K>^)h~5%KL_WKMa@i-Qu0UIq?75jqQ~i-cAmQFP?m+)k~|&ugJZu=>DcN zx99VD)iszzYtEP7b>!?1?~p4_PKj0%RhP3*b$9r^<+kO<^?vJQ{o=8}{BQH`YajPrF+SH6U0w3pTI|~|<^ATTkLJ#A z)85_lYi{d~ostpX!wdd3d&fwXu6zAmuCM%O)c(>fE%k3CZ@Zm)bX+|=!SKyxS+(Mo zum4(cd%nH+e6>x?RXfzJ?>YVXj6@W_ zq&)Zg=T4ukj>PVLuk)bx*80aK^N+`u{hjrr_NZgmo?BuuhLQbVIkI zCU{}Z*=wio>{(_T_5a1}qrL0yZ|vb}{?;usEB;9P-PhNyxo_W~cxz8sLAmbJT?cpV zTCVJ0@N3KLt;vhQMPmEvstXyl|M}gnD<3-hy2dyy+f-oJ$HP+Z9pTlL?-sAC-T%emd&9OL@)=q+jk?_PRqk(_y7#yDjUDob z)XpUQJQw;mFZp?ty1D)xCaaZoMW#RZ{;!)HeVO~@eB*-I@4BY%JAPvF9rqNyXDh|m zm43bUL1O+sb9I4QsU3f7#U3hq%&=>gy!lv?k@?=$XI-fw;S(Qb-tRvDPVe1)TmP@E z-nDrTFWx^Z9sAeFaM$lmZu9rlynKF-Bjj9cWU0irqtnb5KhOCyfc>=F!P=ChW&*T@62;^S(m5xm_076y;l8Q;IZY`dTTd{yxa5tL|5Or zmamiZvtjanI&Awnq?VdRY*Q8uu{va{3yP_uUdbdhW zip|G|1t(K(FDqWz{dbqpn_G+X!wuKYRZB52-rM|Y@zopZHPhX9=O^Zw=>6H=zP|Qz zm2E-yrdj;&|NOk5@!CcH*{Z&4(FZan9V`8M-N62AXrt8RSWdUM56|5GJZWEL&%D>K zY>F)l+m0VvVrM>+yZ3nN_pkf38PDF7f4rspcyd9_zeBHcOAF4WocVVAXL&s1T>kb0 zHP2qvOqj9qO#MQE*JnIid?Q>BYvjM*`(W>ZdELLKt=?XH^6vZgRo4p4LVlS%PMaY3 zS5E%csui0|4xWfSGl#?c`))bm===i><^QT}-EQz6zjN(>@}Da`uT*XYpV+=LPJ#0% zsAPB`b@jJYgGZjM{R!#2^Ox`2^j>(@G~1HjCHi+x)y@_xtoc^QCp!K6Z;>qzcl}VS zdA4re%i7sl^UHP$tpJq@2ll^~PrNIB(0X0DQ-#etB=dJILf9PL-(^E6%{Gl)Fu9XS7 z)qJXO`~CD(E&KFsA{$=@uy3y0*!%S5%O^RTijIaIX;0T$S+{pyc;78gZJiY7Yo_0x zzg==GlY80un=0DD*QHl%xXa|tc3CYV^(R$Byt`y!qe~mBH?#U~9TE%Yh)inOs&kKo$FSj9b9vsG&e~py z>sRkf?cSXK>w(48wU2k_**AZ_6YetW^5eIm*I(2g&-(t>siro&>GQs{3d?p@rFm}^bU6n=2w;$?xkXU|kVURj^ZFS=F0QhjcQ!QR8}@%wsMLEWiqCFZ4p7I%uz z+b-GjiF;n*FTd$?CZ^vkiRa|aWZm;COzqh8bX&uwA8RT$n0|Q4+7WFr@1n5#gbd4b z&)wf9oK!g5|9RufjjvN}mjAOaT{^GVH13RkZFaxp_45}ClqVf|a=Un&?dl2P@xJmY z=brgwtMdOUSsuBc+dm~NOk#Q8{AVHp-_FWR;)(k{QTWnKv+eI|?k3(^?)!Up_g}Wj ziEl4X@4mG%edE&C9}Pp|b==#Ajs`)Ti7M)=#A^bS@OZEHX9IGGBke0uHsIvKaT7-IP8z>3t*Kadk@m#~Lr;l;Ewq+b| zLHB2O?L7PQ%ZmK!J_=OUnj7i0hxW^*KmOPDZg=#*iT86O&xbXaeq6@)UH+_L&idO` z%d#AHzuWnI-n#wEZBO>Smrsusc;>3y9Q*%;wo#>4nBK*T69>&(CZ!R$RSY z%e$BRz?R^h$-LE;2dz&F?}*wq_3*clxOp;+eQr71($t=&2+f}5J}p_(`jpv+XMZ@r z`*Q9cS;Em_@bhNC)l&N^ZP~TFHBr1hK1znO?8HAD>WHqezxez9;zuXfmedrp@aCHz zJRwJ2+z@%e~+>c)@J~m}Xj$wcFn>E#YCSBh? z@A>@eQu&vEELwJSi|(AS|9&1ne_HY3*6kMiUn|I;o9PvCInr*wUHhZ$$M}CJRo{>3 zm_6I+$v-Zwuzyo#7poaATG`bVrci0Lc-DEwxiPEPK1zAJ^WFQv*T0R-&)>hzeIWL@ zbex11W^7zm6@Y_7w1u_}4_&5KL*Ev%N*;_?n#;WvbUUYG0`4?*DhFWA<#nC;ujg{3(zx z{QTf@*Sy@jKP#ob9!>AM)M@kJm8G=(vJb!I@^&W_wH+ zx(8KtKf7LT{7|Q7B0t@B?f3UN|7@lg2XDU+A2$xc~bc`(vxj zqSw}n7Vd?|e@fUmq`O-7I-KHO|MAS7byIir8Q+fhx!222Zr6$CzxQ?|C>Fj=zEfVJ zJ^voV53Xe1>qnOhCGUJ$?0xr|vG3oy+bd%iK6_{Sw(jp@eeY8;pN#r9f6vkUzhlLu z%#(>*Zuu2+cl7Zo8&(%=J@j?L9RJ^kGTz>(kooV;|2jSSm}%GRJO56|^Va>>uZejt zv1*^lD>fd1iTE~rF=N@<<*$=hXBHB>V#%YoTz<7Bof|kMZ9cs+QnS?Mh*CTEe5Uv& z&qp@P@2y)>>csZbKK|&HKnBAnZ|*q#+oQ5#?UT#>dV+l;gt`{D!EnQVtA{gap-|5NYs zvC_AT4_$LAc_uTj>gnx2XK!7tu|Dhd_~Q2!D`b7WOfKAN*?a!=?e*t>I;o20&tGjE6OwCnasRfQ{LU&eVg~!iIC>pJ`R7y{79jRveSQj`H?!ATWH_YI`s`p^q*a{ zycqlU?T)!KQWoD1u9)ulXV355@w3X1@&K2VOWQu@nL zi^HH^!v0SMx0~g-4-23Cw@lRI;q95unLDpGuooxAPn+VJQ<2BUX|A=>B8oS&xFYL0 z^Ixx{b;b8v*WKO_pNTNTvN%#dn)fryxzUud29XKhY=!7de4>0KhJIb z@n#*juV=CFMuEdybhHJ|noN$C3?TjcU^Y;=Hs7-52srxF8;lm zuWFxihDqn$blGbr|LYE&ejIi5vf;@Ld%JypJ+B%Z_DA2`6IOJ8`Q5L(1z%b&iD2;N z+I-1(p6~Y?*SMkge=nXAaJfdp zMsM@C!gXGeN7@dVEXtqr{K`e|2sNqH=RYm~+&#SgOz*Sl7t@X(YTtRGBu4JZovQQ? z?|0rQklJiIpS8IVln)tyT}%6Y|8dFc-_>vKgL7f++P%M5d(O!YvR{)sBQ1AJ?c`$1 z#a5b@F3&aIeX(bozS5?I(<3QteyN3b(eL-TjH8#eKofR-fQ z+N-MB&GsicJzYI9ah~rv_H+A}&S};-YS?Q3=OKTL>~*P2Wh}3+RWDp*CktA)*H&}x z?bkhazazEOL_WOIXRE$laR2-7+OwVIJZIYvUc5YC@ki~iXX3gozC8z>*hBqoj-9vL z^y$HG>qryB6=ykSEwm})S)MF-%C1)ZqUEEx$t%vZmor0F6fRzKclYIIhaZM){<$cB zZu+vdYtOEJ%XbibUd)ekNgFp5J@xYP_Rg1t%)n$gfJ{p0Ti; zJ3~-#qT{X2>HMFcpMU=8sX&e3wvLWFrdE34MVGF5eK8OJ_~Xul+NMjh|7Q7#aBd2m zJi}DKGg|b0;hVRgTb8DNKBE6@@{8^7YsC9sMtI22;&*j%X?sz#VwP^g7tRDhK}oZJ zUzXc5epsqs+nId4ukhQO$Zv0NA2;9kv3KFub7q_?1#j9vJzKmmueF1RecH>{Kc@@y zsLy*7Uc6|>=l`3(|8oqSSGnkYdfu}8`<7R;X61ihxoPFBF#b0icb{8otUBXh&>Crv zsWW;FRZI^U3O#;*zcWe5B>97T$Rmz4hj8DHnGR`%KdEYQ%=&eZ6jAmFg&xbwu#zM@HN8ypk_IMR5TIZuDTUw{7l{rdj9 zdCx(2;4E0cu>QJq;!75gh8cD)J|Y|-<`HL*eh!Bthj(^KFoKgZ*t=k3W7W|No=>&%f{MiUZ44Sr$QhzF-`x|-Xyab#g+jN zCI0U{8v(xZ?9rD@Nt zURnJ3Vz|awXaBsYMe1@~Y3fRH=X8%SeCTmKR`ySL-__hlhkqYk6Dg8enZ~g<_sTQz z4M*pkwknphF4nv7A)$#ir&K2@R%VuGj+MEY{opE8>i0&_y0M+bbD`i=D&!7kK3$uDo^z++&2?lu z&NpuLe;#b@!=7sO*?i+?k9yfUB`fh$rHf?(jps)HF}TFUq1Jc$owC{8o;a2UftSyY zwLQL4(x9h0bx9@Pt^Iiqg4XrlSpO}lQ}X`RC9e8KTOJ-g*{PBl$mp@^WNf;c!2C1E zj5%K%yLqljq2&IP=G?0_?Tt&euFTjKy`%cA@V)m}KR>kOF1D=s|I)wy(e3>GM^lVk zqeKq6M9etTCBnO}J?x#?y$4?ym7m*3yTvSdI?I`-yKwK^E7PxEnws*cb^4>@g`(`G z(fpq>wU4N&eiokFd~N+}%jr)W*7I#j2@=}1qxyyLzS@ij>h`7=zP_%~n;YwS>7>gN z&)D*1j}|=*Fx)=ZpuU(v+M*Ym$-=tXt`Ik#@#_kgAiz-Yy z#$fS!?UxgBv#e4kP4~Kxz4&aVLh-^2=U%1-{e5e2%P->B--!$E`zPl=FH5$4zAek} zpPBe!nRW85wsKx*XK*H=qyUe`V?__)RP(4!|;EB=xTH0L?d)9Y;9Xt}C*QJU3u0p|Q^+Q@dV&xwP$t9n*Eq z%?meKF;7flbKe&C@HF3r6uD<98zprgtT^%f>>{;&Id@u8O-sUJo&mi7BtF}c$lRYc{|;>&D=jJ9ZNh1c5B=XJh`7u#@5MRUIW@uotJ6Z~sx*k72ve?Ir`M+Y^|-TIdl><_)% z`XE#1`JIbZyXGv2oZwrXSbeb+w!3O}lHUz=mm z>AYKBU6$eZ{Q3{NOuA+6BE|0O?zQvJYdxD47j)}q-W9CM%iBJC`MfHwtyO&C=4loi zPsgV{KFI2E&o3nNec|rKyzS+ZtBxJcxqJEOpQoH(Ospb;O1ny4KMkzAeZwNqmhJjm zu5){%-FIJZPb-v?K5dq`>-)S%U)c&mL^c-ti`!0`D0-AN$G@LDD|@A^a{XyZqqV7x z$*r1m1P{47pX1ZB^?B@Zn2+b{@f%eK4s!3;RCbR&-uT?^;O2iK_Wt`1t>e{w!T081 zK$M%fLpEph{P^=5&;H%N^P3Vozsbkg`F*PD_mcm2Bu&rR>*uSzV%q!XPuw++F!s$l zyr*)@)K{nSrs?pj-2cDGDp^0?YI4QyhYDh)(yHfWp5LC~<5xG;JSE_4?`ck*b1Lck zC+hFdTd1kUoLTWz_k;hJhkq7LDUPpJ$P|A6Ccfdw2b-rp^Xwk%?J@niC-j|6nd#Nd z?LS}4seJZSbrN6jp5ExMdO`88^gmYb-tpB`Md#WBwTQgGN^OlbYnO;FUz7B2bLAWT za|bS1tJF(Y*}EI3>c=11yuPEn?N!}(S-rO}laih7(n=r9Id(%RbbWjCA-h8pUwE^bo>6;PHhLfyo>B7m$(1$*ndBC zn|$hQ?l-HAk9|IOT14T|!;oXn_P36nzF_%!!`CLoV~){_`&*t$?aI3~ak^eZyRJoP zn$WMacXIch+xbU(%dNj}H~l-Kc1g_h#9PrlTOSIldGnV`zx`3-xu;64dEV#wA5x3? zwVbu2?QeTW)dy={XK4C9IZf|fLv3z%TqM8yF~j=Vz3*dgbFE2DX1b zKKw5f(D&f)zZZ`>=a(g(yLE6WpLXotof2Oj*NX}4xEu6%@!N21;yIqn{;hA9nf_De|M$o1-R5ksdUhpyFJIoycYjgpocg<~Y?-+n*Rg~p=W<^h*>S@;y#4U{;?$ohej9R|pZ7f6eSXJN zA=As2?Ga2?mn`-@ytA;(Csq8%)xX9mmD!f%|1L_LX7!lS?Oj>Dv+XDA(i$DMdgn#Q zvko&$giEuhyS>`nU-)lzP}%bAiSKIYURW~H96}-N8p8E0?rvDfpR3`peIC0tbncmU)3vR}r zS^nMooo-eEA?-x&=F|&tH{l4507BCwPw9P51+A`_auk8q{iuC@%upir5kg@znuLySF2XK>wThb z>icbvXHP$~&!}}yz{9xz^ZqH_oPGVnp=TvNpBX}Cgh?-2C+qBddeR=2H&e?c4D8Dv zmqtBbt8#aNl=b}T0PmZX{Q5C}d*bif`g}Ufb!wfaL{Yx_)!U~wq>62@zM&)EI_H@C z1RD>}zKx%hw^}aX2o@EtmRkSe=fomCdCldY9;dav^DujGUC5@C@oV0Psm%=kTo+I1 z-`)K5^5TFE^B0(jFYTzXX#KchzJzkx+~#TRMqkQ`u4g`JJ*#;kYbkqynVnPW#vfm= zTs*UL?beKM^B-N_R&?*&mcq*HuMfUy@3XT`5&v-UFZY}1yvLt;MR$Da`~326&^Fyo zL6!-dldmv{{5{O$wsQSjzGdys=j#p5?dzTNw&x)`+n0igY7r}SzDUUOp17MEv76De zUoWlcywk$FX_r=gxqQ+6N>q^Hmu;7ys_dBCul{_-<(6yt6P>oaZvFp~{U3kT?H@JS zs<9Fk4=~Ma$$KuhR8!z*Ba6W#$`SIyH=YReduP9$T zd6sSX24VN0ZH&)NSKogon`=@c?GbNRR3-Ge)0m!aguLMwQVzgc-~Chrq4Qi*JS6Z%&8v#_lCZj z8JWe~vU}&Wu)9)q`=a_;{-k&tUH$26b1zAvY>wA-pKG^RGp;6hnJ>~R`f)qzWljF0 zFS^Suf-mSleyb%v{r=hq-);)Mo5y;0^Xr?nM$9XpNy{xxbd6-Ztt-@b^yi+)D~Hzd z&Foc-v09*4pLn#nO*Hjq&UT0B_i27LZ|(0r|H}V##g&Z`o4*$s-EFMC=OgPP;4*7o z_VLQkw+_U+ZQ`EP*?jQP^L{^(;#W&8p1d(3nj>yJ9lKR>%U*2H#-X!rz)uK(LJHq1S>JjgJtMf~n3 z7n7&DTgq?zSa-F)f5$xeGT2&x_j%hAH`^R)pZKIzh^NfLR7G#QfV-{V+*VcXFF*Eu zsGl4%ltyujJRLrBCd>)}_ZY`*X+I_0qpnwsK9q ze)w@a-<@uulPk4Sr&{s3i3RV`%ahkw#v*1?6kkF}ljVjSsoo_~~Q)BI67@+gT3Zgw5N| zx+*Kl`Q_TMIOHarOp>4e-m>7kSz`Q-Ni5znoO?sJScfgz_1tlOx(m~tv*sDs_Z~VQ z{yV)|?OAS;XR6^>{-O%efR|^M=wDY}shGJ|@a$gJHJ;yZuh9(dUw^Ez-(`tm7DLy+ z#8**?uQ+d9|EF%%{NkZ-jSb(W?S}fYcOM6Al2yI??|;=F%cBc??`kizI&q%U)Xja; zyi?74;w(Re>v;P;Net7zYTIPby|iqzRoG;~)cw|rR&33K)*hF+<}ET$=U?PKo!XO8-TvInc%|B+ zOOX|cr8ZHfGt8e)2ng=oYCZkTQ^_;-QSDo+O;^g^e-JaJF>}e=>bnXr12w<6JFOMv zo9?bCckW5lFO%bkE&Fqxe|}!{v*yV0S@X4I)*Ek1*=YaRC~d#bp`Y4YO80jpK3V0E z98FHeF^uGEv}t{I&cDBbBfEjJEmT-Y~v-`R?HN z4U^2zPW89DvXr%6*k9N2Kf|MzbMp^-ESs9Mf7hh1{A*06hJXCI)yq%j2X~p5oP&SU zx%IC%a+fyDl}mr1D6ZP}YSZrX^}dVGtv}6k@#&7M)fIa;cKB<1TZC|~YF(M5bK9=Q zQod2a#pLw$&AGKU7HexNw@jOrD;lxymd%d#lO8ZdH77Iyc-;%4>8iU<`rRjbZExq%$xG8aF z{Y>vx^FHQQ&*PJt3FG`X&CY)qh&D zv-hWcZ1cWvY}>z2nYiJ!tMAh8H*Yc|8Rk{heqOAo=;|6?%sl;E`iIZW%IQwOMczMs z!+a%7Pd?+2vHr|j_29G*_ZHdJykZHnef=!vsPd+=(!$k;PptZ4v4Z!Y++*V#@zo;sPNDis~@$1&ge74Y2H?D`A%B)dtFKm0_=v9=lNXNeGZG2JT4WSEv z|9|~$nkxJM@cb#fAt%@WR(qj5|AzkyGjZRJ3X82DH~c>*af$a!%KNnnn zZNjz_2iHFHGx@gTAk*CCx0|)%{->Btk7_QQ*I%a2XeKq?;jhZ2l~9x=~MLO34?0$6w;kh2`w8Z};d`uy31dlcIX}-{kwZ`ClZi z=#gEleBw|_SVT(H`mL8X7x2FR9ll25|K@;ioagKWPG96b`1;u6sU4xhcg{JVv1D2J zCA#T|j_U4r%pV@U-hMkETXNyCTanFHd~>6Y-PCSA>GW$6SKj^CZt>a5WpDc~E?a-C z>CLg{stfezm#odt*k{w6{qnLb|8tw>>aF}W3YTZ@Z{ECc&gyGI(vOcxW=!ojTxY#* zj^T}3mL>xQwg%;%oV5>{KiiqbX{tr)KU{I*`PyIV_g8;#O^r`d6WV>FgUxzdl=LUA z|M$xJx|;Vyrl>#kvAn&jduPeo_9abB_afgdGFshp&EQVB^m@ja8*_|~Joay6>oELW z^iVBgRS4Vs$`vJ2A)eJgHdNjGz}KVPa?||aIq@EcV`Z-tT1|~I=ZkK>n54MaVA}Cs z_MN5g>p!ete}pM-U-2mc{fnP3aIWaMnkf-cUAQM!Y^@*jj>;jx~+5lp1-iU8E06xf9;y% zLI2C`d{}>`ME|L~+1|DP$9(ahS}r$j@5-^I@8#3slsr`FnC!Zv({NLY;+2?erdTWO zYkCVd{}Fy=?Jzl0GWPI1g^gmu8*gm98d13PckQm#AEp1_d+Obrk-=57=$6N=BGK*H zvv=^Wn0HnoF@infSlsfc_J{c{V)g{8?|i?*jNkGjubGV|x2+921n z#qR^-BTrr3dh`j;ZF`TU75dJ5W>5PQ^zK{ckCRK^s+{kr-Q2YB=#1?`W_KRs_3*lT z$$1)T{kO~ctMTmGUOt=dxU~OQV_v*{a_rjUDRay}c7Hw0AMDAQv%0EvTkg@ARfeB8 z=R7^NJ;+aad$`7b7FNqXy?HTprhheF@AwzLUgOn{N%8;vCx4shnDcJp{b!3dPSJk! zP~`aGx<@)`N$0N>u8vkJ-F$yp@64(k(b5$j38D4BGai}#$dcum7O__@r&jCB<1cfQ zuQD(#R{xwOI`i@F&?^fvZiDi|#bfL*Z?h5*?HZ|GfcFtzbnG@WYog|H8J-(sK74aEY1V<$9gj~*su#*P zDu^7BJ1}wC_15FuC+zO5+vSt{MxY&(M0$DmHRCgc}2DrPUQ6de=54I+|-USi0WU;C#on zpKMoEL+|`pRPA;=CNq$2^)u7Lm3Le(iCx|>eL~aIYenv+@1MslSsKk&DpP2v^?^-7 zr|+V1{lwO<=|LOkYb{+D9VxbSj@pdrL6e+~nLjJL%F0^_rq8JVIqkpfh4uC4#4uZCRE(p9egXfgSof@#Ce&PjcB=j-_vwfhGc+DGrq7v@mC9eC-j{n>e}JKYwj zW`?)jU*>1}aMpv(0be)+Cl|X)nfKkkZdrYxEAhIv$|}yR=Zeo|n4Dg2@43FNw{mBW z^~4^xyr)GIrylp(+B2a@W`Lg)#F1f7Oe7$k&lBO`7B}dzLUNcXA{Nl@T=Ytl7WktW| zaTg@&t~?|*zpIkz{j;8##%(X{m>e}a7$0yb>z+-1TqON`-t9B%)?WX(WX6SykME27 z&p&f)kA+l``RA%A!~0%UNB7=kQC!fMepa7<^4^&K%^N#+$KO`a?9C0W_UM~v@b1>Z zRZAlF?JjHn)o0;jbs%$j`XtGglv5AqHmQ`#t4p+%tFg{&h?DU2N1-om@NJ$UvuR z=KQ&y>WyW2|97!IKa>*p|7qD7Lxsqq$oVTjzrP=TySc6~LzMsIq~rU}swG*!`uV3u zeAZF_dj=+Nv=VMdF>m|SJx4psaq6U#`1s{0fB(G&-swr6 zU2O5mlF#$p{AZ?SebF_zC0dyiv#zNxOYf>hTfO9mIRDSjf0_ON{3d((zCUd7)9x== zcFc^qOa0)5$+Oa3mPUI%JK^Lp;Z9W4uDN%!V?*rzOTDg}b6)h?hTQ8+NB=nQE)o8H zZPyQ*{e10*481IU4PJ*$NmhI2&Shnn^QUM={m=M6OPk`$^|_k+LnfsEWBI%&)A7h* z&A#@(D|%J*S$t0!J>%c9{#=hM`>rpn{+}ZM8kJ2?eWZEvdFki0d;8N89;aJM9KY$# zAH_Uls>bUT)rA7KGF7b#wX+*EZu-qge(&R8v{q4_GvjadzMS-=^GYK1cH%GZGZ)RR zG|rdJbqp`)+5S76jWg}}qspFM796*d~y4Iao9&-n-~y;-*sGIdLzqzdg;b z`{tj{_5Vtt62&)XO1moy@UuR4o>VYJKCQWueYrGm%KVcxNz9KE*UT}D`7X%e^nkto z&tv)jGMS3cn9SwRZ)0s;)PMDJIOD~e*WR)7g>--MI1y2v|Ln{4je9=KHY#G;YbyTK zrP%tsnM-v4*?RM*Jpcal*L`4SsQY<3p3SE0a2qefpP%Rb58b=JExfyIo}17AZ}C45 z%l|vD|A_zLoOzNSJCcsBxsaK!K7D?5|F72HKVNK~vZ8ioO4ydKJPB@FKR3UYIq?=W zD*Y_8uCRF9@gp~<_;*)G%qckT+~GHOp0CU1_cMGs=JNI4l;ckqR+96RpL{)&z0~sf zk98Yn^s0T_)g*MN+(-UlUiQwtP20Eayz%$yJqG=lw*Hs9_&X{rE=$aM&ic5&{?Fqb z>$JZyh;b~NbuUft>9mIt^Ey-G)W636KCq!DWaE}*2LshVulN7cuKy@rFPLe_()3X= z>8S9o{R=<6xF7tUCAiTti@lz;$zjK?+%GGVo6mik>zC&1BVt$dPGR0w2Zb3-X}&fh z97;_+kH3}fD_ORoexk%5QI0etCAo99M;JCZ7+gJ~GHIJx zP1&}!Vu$xP&1~NNPh$7C8y+{xEgo&Nex0=F!^C3tk84<&93^I!ehg6PVE8tvc~9uV zq^s@|&lj>X9XulNvEZE&TLWv8raEGFo@MiFW%oXY2Vbk$?WH|Z+Vm2Y1YFdW!gv&P z&pv;=&BI$!phrIUSM?t)uafd_M_nE&Kj(WC$<5OA!SMH^g$@RPCBBJ&Uj29CG$(}_ zQ7XZ5`!i*;esoLA6_O$q&NO+ z7v8zIiTRmtO~K{Xn)NeypT+QnShW4!ukfqjx_sJP%jt)z%9pqb`WP-ek|!w4`q=5n z;T5T7PhT}jp5l2QeSTJj#o_sfOAKQF1^q~EO!#Ij{kG=X5obq_4#o!_mv8$lw47e5 z{7>|r%<6>a%Qin#^Sygn>8Z}**{{|FZ~4-+_>nhdOpd|w%G97YOb-b z`SJy8>;C_~zq#O{lbBA#0sB9P?OWa-YMSW{oxqkbzgsfzRQlo1qQ>Xb)LLgRlc|@< zE@C*b<>_y3kAK@HZj`-w&gyfS-uBZA`dn9cJ1_2AbER0Cz0|Vu&6#}XZ)HV>y8X@a z-7E!BAMF;s3t+VV{rK&)H9=Wx7xJugci$)XZidFEN0NOV?M)p*EA;h}|1X--eBS2c zMqd7TUyjFa*Vgcn{_)P~NNv^?<5V*{*4oz#eVX%U$<`jpSYOy;`JFSu`0U~om$QBX zY`<<-9nRBM-W;=YZ`0goG50hipEu7fSnIwp&)Q|4d5av!u_UdmWs_IM_to1dy(piY zPPUHzYIi= zG;Z&mv_&bW+c!gQ#|3_C$7RnOrSJOl7nkf86lKubVmMJCZb8fAGUIiwRROC5DrL9a zElZ9`JdpZbaCV-X{JMkPKT^!*c{-S1`^^7!$4R3j^(XrL^4?mWd%3uCj=q_3vdv+U zEmuKnUD|l1FJx_U_}8q)-2Eq&4cTTG3rB91nEq5R`xaM8V;oI@Dhu3_*5E*>xoZ^1 z+2zm$iPXoF72edoR%i)+$C&0VZ@4R4CV0YcpA~6ZGc@)cd%fjbl!t81Iiqc}tiLeq z`WTn9XzM(O(%X)^c7Dy1^*dk@SIJV`UvS+=J$S#&`wEu}8@o;#Mn77pU~+`#fyS}@ zM-FIeedfNAbT0L-@$nrO^_oFzMA%nUzF1g#n~&@F^!SoHdk!=%FOE#VcdqmE+={lC z)46+3vP)L3F@C&tXq2Q9vNJd^3( z`CCVJZQ;JSTcv6HZ0X3^H#U4yid}nErYem+T{`#9DcuF14))*p5z4y%hYr7YL(j3h zZ=I731;iJ-N-uVmHcoE4rgSJER_BcU(R2Tn8a??|RJLqt^6Tq@Kfh^iv#FP@{$J@; zWwq_z)Q|lCFC2J!=lhRMi>GcrFT3p1E&GeJ_D{duD<>!ZHr3ltwr|08t7Avk{>(9W zzDe(`$ky+(R@UWOzdo}w=Y+=6#0ReK?%d+r!!A7KON$T864YQ}Mo!zFR`DWSEt-dmABs%OHzgn)4Wpg=JyME61{wk0EPvwF{H)Xij zTDE5X-S=p#)~#QEFSeA}oVuVJ-@wJcja{zbM#lT{L*H)mrL4dE|NEho9>b2M^VB={ zrkr098fW$<@9@XgdbX$R+fyBupBq=^ zoUm|xJE4sG&OM`Rcb(@2mdmow*ITggzyI&!Ki}NB+vfA)Z~D@@3odVLwKy+{um2G% z-?p`K$?Po-GRxkin4ELpu}8svkMs3CscRzT*fR{DrwZKucy_@(&ZdPqj~)MdI8;x_ z@GPf7|^?%02(Xoph~$OV$jaVS1^*)^5KZe7knh z&hkcSdT%^m%aX$)`H#c?PLSMwPcN^Qm$TdSul~Q@#P`m(H&s`xb@%)}|BklD-EIGW zT4vcTjGOMc%dyqLK+f%&k9x}UzKK?AW6EVy7Cjbx)v_R2bh7IepXYo@3>K$8THfBM zfA?Jbcl{4#%jT|j)!lJ5ZJYTV#p;D^OT5J`W-VtwZa&94Utku{^ibzxpHP_`Rw@?TkrX;+CDY$ zv`)fz@2aD(e=z)tIg)30%su|Cf??G3&XD7qpS@C_b0_^s$)YL!^_x3emVEv5r`&ao z`Crz;uKf2uUKD=&u;Y(~_55?mr#~;>QRx3>L2xG zPd3+wGi|iu{rs8BB5ICbR-tCT{&j=>3#Rn1Hom~VbK3gzd^cHZO8ztbo_703jWg@I zJ&$Xu_D{*}UK28{L}(2VS{KuBHbG94j#@vf~`@W^``Zx89c8~MeS#PQ(6^5^md;0$0yZ34Z z%M^?<3{%xF6rX*iukp3);)R9ky0QERzswYPyFotQU3U3)vqT*|h2u*MG9LbDD{jAK zI5qY``1kV@p00g*=coI_iyt){qGp__IdC)M_}2}r)>1+|7cSp&^JOc<$T*p*N;) z9De??2$-T9aZbMF!%>%s;{LWua(>peay-BLKbr5?ex6arZ_1wam)W%It?tAPw>)hXyDE?l?M`ljv<2~2;JT)b* zIIL&xkNTdX%{5nU?RNI_Yibs1?$NmQL!wS)gRRF5_it<4@8$5s3yR%0;oI3PxUE8B z;;!R*^Q@(hn)XHgT~ai^(0JOtucZ$Ie#tu5e5eoP{cpX|{6uN`uq6FKQ z^eOL5(0^^b^kf?s#N-BWBJm^T$nS6YG_xdldlVmuvbrn_9PE|=Qx@Y;W z;AgU~^y*KB*W;gDYrgRQ;|+GLxih~!t(!Udn$$&!X&ciH%rpA>W0!2*Z3#yYvsGaW zKUG!yxzK2>HgV3XpnH+h%g$X0_`mU!?W@P;A2&C5{+N}2VO@3WoU0!_GCa@RJ|gs! z?<;@GowJWO*ZzM$C*pU{cG;#=W^DEUKF@dlrQQ*@MN?9xq~3Wq^OL^(7nhb!l;MA; z@QY{Rajz8X@b4j)RGYPK2*mWX=7zSP+?3%c+n>5s&foojHeb3{uI-#75{9o2T>i)r zovc2uQY`GLc}ZGC2Q8Wisu6i=JjpR{Ef&$Tz_pSFtdZ?g-q-QAwM+Btg5CwKKO z%da=%E{TMCJo~uS+M-i+ug?6p>fATB+jXkUZMXj_e=#(~X>V-nOP2|Z^CAyS`Ng-M zeg2ZS+uQTkFb_>rpXC^_f`w4!+M~)r;r0n%gV2WXlt3}P_iYIcXLXIBpxN7UP=U&gc!k(0r zvnJ2`>J`e3s?0a}w*QlTvTNb9L}SU&Q(2Sde7$1NP;fEoVryct)JEo8Mqzmi7Od~u zWtElSs~NUqqgd#}sQsN=3f?>F&Dg7P#b>F(jh{0LGk;tZmg?tFUzBE5E?CXr&dl{Y zvZqKqi*rw-xcEm4+XdbHFKle?+WwFW`?PH5r<3iwOn&`);JCEg+4w`Gk5Z<7(|fyl@_q{$FV(q`4QL8IObl9vwP35gk@W8sg1|OqN<5&#VfM2h0oc^o4i}#`0c^s zR`a=)GJkcHPelES68da5`Nse0A0Mc#i5I{8CE!@n%)LjibUwQ7`gaHO%tiBVIbXDP zn1ANos+28NolD}MJ?8%4;Cwlef%8i9v_>!4N0*Ge%%tWY{I^L?>%3h0bvc7|wXMCa zk`Hfg&$>{*BlG6o>8C2)O0r(O{I;M={*%lVsh-a@Tde<{&#>7h|6rML_I!a`j-F-* zWfYJ3?0PDkXKFp;{*BJGT)nCTf-dvjb6rGK!kAuMlTX|K)T*`JEA!Xcg9p6hR)zj( z`l5LiwiaNPw#DA%yzSyOe(HAK9H0D`u5B0II&aC*g4c1vykGqy=Co@rm7QDD-WH`U zS29D4U3)jzF;`GCdDe$B-f8zwiacVtK101x#CThNX?Zn+t$o)-2F}k1n`bbV|26-| z{EMOH$FjURMpiSt?k~KyVA9>cm6bNxuU17kn_rb=-{^Z+KL}JL+uL^RsfZHzXi&6b z>ycwS3abtZui5LXrt>)~^X-d67jqT%8uUi5uXPS@m%DAlt^eBjeYM87W~IFM50#hf z+wqw1`L?Tx7L{{)48Q#n;jZuNoz%;I^>tv~lTKTfRGWQCP5Uxqiu{=cS68=G?3Ijt zEYW#M?m*&|-2v-Y&uMqf*Da~}@nNNK#Md>mi$(iS+`4*nEuZr0OOF?9+wW#_@Q#CL zczaoJ)6uT^Z|jdd?Gq`R-{YRNW_u7zQ=LfGG6O+tdA|!gOj5#B$0%MI0l{&l%GS2JyuR#2@rSAnUsql@ z-r%-ea{AkT@ulf&Zt%UHFSAHx_C=u|GymmQf8Fs^*u^-?=O&w8eavayAh86UJiZy6s*&Z!dqSK7HF{n+2Qy z<_ol&G;5yNc&mci}acwxq^}( zjjpY=UJ(;_WTt_hr_9b>?its+V|tUb@~x+AczM@i9W+h;$uNAjwuRSxhjjAciId!e zdb-yA%U8ek&TE&I$kT|2hkxBtw~#+HQU1D}W#Zv%nH%M8#?fgGb&4GZhqIS?e(SvP zv%sm>TUf52gLzS!7Q;rCFFbBet^Ct3|7V+RmZ{2l*L+86DYH?(^li5LmwLQUDm+XS zy=pFdqT%&DU%mP}om#5RE$^gjD$ld-$k5h&^yR1fKc?iKc|W^#*4R((`WvEIdiT`z znSrPEEq523^>$eP?%=((ijLx4o4;QC`q5SIYKgM);}!dzg6B_s(rUa{+Rij%a#&K$ zhwmZRttS*-4$YRm;_5lQW7+oJ-LiR4?zx+Ul<~e>ykJTEEQ43EOG+Z%t$6nLPWP6Q z(+m2P_1swRb&7U3E6%+3;nShARqIO^`<^^<PS6kli z$CDIK81pTaZ91hkLl`t0RC1+gy2&JQ+n+w3^VKWFby}-EH-`s&D*T=i{pRic$FAQV z)+H?cH%nID$WCqjaMS+{@@7o?+Qg}7~$))RZGtymd z*EGMHq?K25u~+L}16zi^*5gkTlk{rWzIkfWb=>Pr{B9mu+bi!iAAeeybk9D(_v~5q z&)vxLMWs%^SDqJHcBcG=Zp!*^h1vd=y8M4Cw>^$y4qMLU>r*h_z$jkc>%-@!Kj#!I z|9=tC(J#9gd0*@jPx-+c9TgV67S=oO&aaO0UbW%q@}xfb)q7QWX0pxMx^{(;@I|5a zm#VsJufLJF-0RVD?|Z9qtK=zjNF7?!2U1)1GhEx2}uW7#g*QXY%$={nxP# zv$u6wRf#R{vQbTOyZvKEoy$SFCZQwYE?e(RR)~5fcQO2Nz`5E(emB16y?O0s$3I(c ziL2zAS=Wy&EfV*P_Bs4~vj2v=Q%g!i@&pXRGB(zP9bJEm?cdMuv*JFTK7ZuFdWDp> zYd(h)pFcizTHQoWQJ{t0kU@sG=g#>cuD-pcgCj+#GZcMWjWovf17drPDaoDlkTSLl*ryVX!V)zT&c?D z_dcg4FAZmWd&&1r^y^2T|5(XzU7zWBTL0wTvKsEMEB5H^`t?P^DN@U0Z^N5SF(#ty zm3RM0<%{j~wBG#qq>kLdf-l-PYcDy4|BH(=e;$0lv_|`- z^Oeg6FJoIuBCt%!G-*~$w(nE@J^7{Pey7=0lDkhEeVp>-^R7zc_wmLXK5mxj$@+C$ zvE+8S)?GaT$9aVwZx<-cj_4`l6HHdSyU1z!+@8b-#q^N!TU>7G7Nysu@}w}*HA zGBf3*r{A{tekZLgcW5Ytr1tw%7+>@{ zuiZ-hUp*hJ-0RS5n$;e!c7DoFKHX=B9>0lux4v{gr3o2nxx%oje7L!^Q|1pq0V{LIaL*cj2vi)a|XXL+q zG*v>CIn(=Z@ysupE6+^tS;BYb1;^I+f=lE@0;~Cry=n_@MxA|r*0v`6r(869w$f~k zo$AfE&Kxt=eyMrupw;KJbK7R!tO%<7Hba3yIk!f~eo+d)BgZT4MG@~j1$9gNSFA2% zIazy1@36>=yAjvtrq)GD+ODj03)wX_rBC9_tb*OzFaLEMRtwoK%Hj0L^X!)FLWwsu zGL<_oWIL+-JShMFhx^9epG^ure_ZR)ZSXqMwq8`>R@ExWeCyMoMf+!uzFYrol7+VL z}_ zP)5!d<;+!I8)jpKc~9o>r89NmOrO@ zkbec3k{B!&?Z`NBDs`^qf&J-vK8Z#*d`qusMpYdQESzyjKj!cJ(>L;`eXetpdp*xi zbrR=6mcq-C#gmu4`)9xVwT6$iTX25LlES;|KE2*zIlc6}NI=-dPU{JCjD;j`|MdS6 zw!M@8z4+#|i!Az=Z~Hvdu%F_7($;d#B`%g^AqVm8DN}>4+fCCu$5t(NChyq%>YaJv z0W-`J*u`7w*psKczj5TC^ZkVP`Tp*{jMm%D9)l(Za`~qw|C;hq;Kj{T7I|?G9vJ_t zs7ffmyFkYoH2#{r?C9-(+wN_+eQUnItz+K$gyojg&Apa+MLK`|DtxBD?dcl9K5bCW z30`^m@mu!JIWYoZZpYNww<+IdzA}GX@y=MblsEBHiXKS*e{Nl@wZTg1uk@lB9M>(M z@hJa!)Yg+6^Ka4Yj*6rA(zxcITV7_Mvg4)A)bnl6wO_nZEtxB@OId(}r781C`$VyX zJYn}+SG6uN>ZVTqM=f28yUR{GRrN?mFXj(+lwnvm`>2RqtN5v|o7+SB z%esyVoC%BB5+1Yg?gYoIJuDwj=GaVb&{JbtRC2wr?7aC4zj==qU#-f>e{^Y^(z%yi zmFZincg!&snSR$jXP4yOs!8ILc=r6don-X*u+lUKgF+SN^>MbY&y+a#@ZCBmUR-rs zU1I+&$3=_g?M`d8BXurQj8*zh z-aQ+0PWSO8UvBsKF6aMm%F5JVUR)KrrzTBbhimbCjxRa8Ut5%K;V!<(+NW1mkbSt& zPQ&xTb9V6$PtM)FQ?;E>J%MMw$>p~7AFbBz6$@hjY%LjmR94}X$=rvIuK2O!_>W7jb)`>EDi&3o(Y@3D#NpEs(tE=P-M0?)k6X502x zt^bIGf|?6FhFs1t^d;T7_PXYReQ}}pHC8FPANLC<-#&eFW?0|adbP%y-y+fT_V>;G zHzd;Z)Xwr#wA^sO^% zj^Xo7?`9_7kudsvFn6zIhO+hcxbOQ*Em>~f?2OG-v$d7e6^gp-b?v>k+voHDoA*m9 zKA%xGwXEyZp94jpOmN`xzwOKY=e$2+?9#R|WsZeW?$2t=yDuIVUX0uJ})Xs_lOca5q8zl*QE zT6Jdj^@KNX7oC3jKV!-~OQs)l9gcrxyOf?f-{e5ZPqu?HiHmlI$D5b+ELr+`V#nbr zxsJ*2m$G_Wm7MS z@l}g{EU4meT;BY*&Nbd>jl9T`{lZL*#YGd{xtRn^zDro;U-GT~DH~F$pA^#EGcmMv zwugCUqlM3E;f22iZ72Scz39jCTBcZ>6THVO@nG4vUkSd>mgidEu}}SznUHel`>D$R zE84%rzf&wtkf~}pAKp`|c&sg4hy-&Y@$+rh7Tv7x^1pqm()#kTr)#e^ z%br{CWoO6Tnx1~QeX{HN($8M?x7c~U z#h9hcdDK?=L@9#lpu~!^Ir$dO-<)_or|T7%iHj6?{4?3i*USY z$`0Dag+A2&kzwCHJsI!qpCA6^-ZMAzc~)R|edV@$X?nSP8`J6y=ik#;b>DUH=A?6p z-i)5y;hS9U9(w9ry5*~Q^;iA33FnWc-<0$@$M9p$+Z)U$!K2Y@B)YwSe)(6psYK6) zxlF35N7(&POw6g*RQ9yzhSc5 zRo_^9I=5!uLZi=@TGNW7uNQre(ly&ExVZ0tS!vwSV-vrvSK4nO_;!O8I!Pwld(X-`xW*6%so zaJjI``62AA7lSI_w9^RdLLH*PCxPKTG6{d%1<0D(+)hpZmea0$uVQ+ znFHs!OY~KDvZZcIvZ-wAe<$~x^=06X_-g_m3%WQRmp3nb;@!6B!hOl`{^}RTuSF}j zI5Z~gY|lJ#ilI+zotbpRXS6 zt!Xa1tNmn6pSzQH(ml0lC(2jw{}PL`hl~@m>1gaMj5xRD!bRxAysMAjjd2hEqn)z0!#U{q#F!1!zs`)RY4C#X z^C_HhsdvR3zAA?DV%@d7OrNZ|ro8g&pA>H+6SI#ME6yF8ar58o!)t=>KfLsL{ll6GnO>xowiRo0p=GSo>vd!Q6NLY*xBgvGdj;jSN#W#_Ex zRDQkKcSiGz`yR7{Y|b4ounzd(`8ZK&pQFL`84mB3`l-B5P8s|7| zWJwNa`_Xs(|1YJrZPQOiuHu!;7Wq6W;Bonb^wnFJ82vxUyKm2Pr+06cEqub(zqk2w z5^NB4<-KpIT!Bm1sGW@T|I5rEzE(6=!fd(VZTXqU`#v_-svC-J3zbzny@<8cX4=&% z8(FT;=Z`%;?0h0sj@?_J`Go0<_uY3I%@Jvmt&vLcn#UUa_>Q* zUWmQLx?ihvp1+#swJRlH;hrw<6&w8n-H%P?=L9zfSvIm4OnC$v2EA_YdFd)-9CYRf zHJ43aneuaU58Zs;d`#Blgj~&*56g`E=f9oqIQ`hKH!fSUJkC_J23N9P%QHCl;L#L? zQyu3M>LdB5ruT2o=9jp>@6fSBJSKkpTCp;-8XqSKc~)~i`8Mt0^VO;!eu8C7mwUaR~%PO zo-t#}{eTw-vj;T@t&?;akv#P?6%Y^S(Y;S9iY2OAkB~aR1_M-@A?9 ze>@0LdVhqy(^Rc>j|xk?@SB@*e|4H|TVto>+&!qvqZ65{5+>d*HeqdO%sY?7?0BP?$$?ye4qK_?{-7u zl=jwzXMKVb_b>XHbhyAaaZ`UnQ}>Q|#c0#sz&C6wCrX$u3d|9?-EmA{tJbonl^KD_ zKFyv}Oze9ykHj9eQ|ga6x?1*=&W6^k0{smqeZmjO3Z>n8@-vx%eTJl4!a1Ib{p(hT zE2lr3V?4ij{_lTt&j0*6drowJL)oL;x5e?&Yqos5EpHS&YggCyR}7^hGna3hpu*1O z#GzOh10_IvCr`YYggiRic6?-*9~p8k1srA3*}n$&v}DJq7tjgfn*N;chQ4*J}w)Ms{9;q%SH6`X2Dm2%ye^d?4M>d@W! zUh-n&n{cVQVtH0;f9I}y9Pmm%pNF-4|H`LF+@{xWpO#y8+sRDHCJ z&MiDIx$C6o{)o%PS4vkDH}5Fs+44ShwY9hN2_B>6EeqMymYj9i|J`Eivzaea6PDL6 z6jWK#`Z>(ewtnuDh1YhRWSqU|_xk&C+jS4j34JqXGZ#Z~q1nz{w-U#&EbdbqVp^yF z-}vR)88N%Fx2{^>{JEyvxRz0S#)+Pl8$MWwJ4qWJPZyA0wP<1SD~IeoXG6~P?JX1A zJKuj!T<=bc+4HCD{JG(_%)3hU!f5X^%h|WYNzE10>ASz`O6;#7{@R1ZKF#g-->>^C zcIQ`z+w)%)>X%l?2kiE+kJ@oLzm_TL)V;+~-&tZh!w-=~>*OB3;5@E8H(GDrgA3WV_j?!j1_bUdmsd^ojbMxp z)_p3vHe+$=it4q`9lo!AaAT#5sqFJ5C%JCyhzo39diZy#jMuzR#{vq!&o;^Xx9-yg zcv`Xjo?brx_1xe)PnXEO7y9m)Cs00v@yp&Tg2ETf<}Tf2TsO=6{3RKwlM<3QzWYVn zK0VsIV$t!BvHV+)#qt$|U;cF^zx?(#Z+Grqb-qoD8775EaHvT1X_|22`&A*eRb;l`})SouML8ui#W~Ad3hyQw(onWxy<%&UH&co3Wnp>^E~XM zDxPe#GY#Cgec}pHPFw$|NG;1f+d4jJn;r1_yHP7jx#z{xC;9uQ$UWat9BDZJcSmft zZ_D~0io#8M))&v?(V5Sdd?wa4sMwHoz3JDRcK5E?ZQpt@x!!|AvE{?OJB%_bzD$mc z%t$-`D`#G0w!84$Ba6(RTfP&xczmPAW0Unu^dByXa?e>L*E@Y~QFO5Jw~vJ@tfDe@ ztW;n5n`Qkx$=1^uXHKObwcoawtN-!JLzTAgJp>PFS3NS~so9WdnXPMm)AIKitYuOB-7`;}ntS%m z%?CH!Lmof&xNW)h_|>Ud$!xPf^%t#ppgJvWD|6JMc`?VhwPl*u*k1d5lkr{nuazm! zu5EbyQgsf`CBaOd-Cu3>uN8V!o{)AfJMiM2`AhX3e|P`>7MM_b^u(jG`CRX|+VB1s z^PXL9*I7^7X)l}aD7ekpy#C*{!&lxL{gt;~QT6q|^Vbt5KfdN$-nMj|{Dr6gv*ofy z=NmI^zB2z<^J06=v2xGYAF)5)x}N(d_CRo+SL?Gy_b0FS>^Dq|Y@1jSrlMM%JVS8p zGWV}?3BBR|rxF5_7^~%CnI5uDn#B9!Rh0Gnb#Jd8uelb>_kOwf!)?<{zWvCxoi_Dh z;@&U8C+~zE?t2qzlYCjo^elUS^S58-9=0+v{)TV=eczqCpKtl^_OHRQa_@P5tSfx! z&dqOgefi@#dnAv)Ix_F#@_Ack%-6elcHWicH}jcubBt!TdVYGvsjp#suJCx_tH&!3 zEv`tpn{(lzm*pH0u%rFo z1OX?GhkFCf^X~jOc3-#gof=ZdQ2+E$na3!YD38Bv?XDSU@V&f7M` zE!?L0$d>hs@{k9?}%UxLf zTUcU$uewdb`yx@WUMG%1^$G3{+=?wAvuaj7{*=1z{G5~5*RI_&an`BE`2V}AqXGj3 zzu&9YkKUH^@v#(_p@ZW@mGh0YFa03N~n-vHAb za>1Ejup<#v!8JFI7{-8MsB{q3@Shwo=AfhvuH zau*iW`~U5BH<~@LJ}}4rPvcVW>Axz^wg@COoLPRdGQ(KS{`>N!@%mtUJ?vgw_mubj zF&S*y!&PsEb{f7s^Zw(09xlCG3tpP+^qjpiNBRuYnk&=iEZCH}BJ9RgwZ3I}%UAK9 zIVyef?}novpYs`;%F8WOFr8g1o@=}BV$r%8cT|qQuQl6xBJ*#~41bY{pEoR)y>>w? zK%0Ro=meC(^@l0TPl-17AW{Y}^Hwiu)ux7+2s z+WF`9vLkiMM?PG>c=6yY(`*lae|3HP`L8#peZ1em^<#SA;uAmD|9^C{{%`m+{rGq9 zLq!jrUm~Zq%D=wK(DLw7b^uo)Y=@ZTtS8)upW;lvlQQ6~FS|UzjC1QFQ(0|1PHwJTnCa z%aMY_^*=gZ$u<8llkz@y`Bnc^$%8-D7u<^EP-IJHd7dRW;|a?K0jD09XIkHMb(bwH zesG~?QO8#PrN;JYlJ?Q_&lh{{Uinfgb8}9>ZcD@b<=ju`043-rTj*Q&b@Q}@}COS z^W24x2a9hmcx5NGs(;hJhfm+E%6O9U%Ze{v^7NwMqkkTq<>}cqFMe~Zt-te$lr+^g z#)C&vmMmCn?VZdX@%r2)i#ol2e=cWPtHzf*3vZm(+IS-Nz+txyg=%ellP@Q1>^;Ws zdqX%q;l&%7YVqa-J!_A=py$u$**W>{4-a2;(SO#-Q)}I%%4@Iu&5&FDa`C&TwzH$I z6yL2nUOD^qUpEfbn_1nF(wk?o@0?s86YloTfTSqGs$GQKn zz2tnCv2-u*3x=F;@A_9cD_y*kqqf1Xk)z*<*T+9+`KyS{kI%jBOFK8W@x~U7D-UXU zw#`jF|0{~8)pgI`-*cCgP1%&bzP!AdU0RqUfA!LXOf&R1re|u-GQC~7_?d$J+>0j` zE_Ih>7YL6zQn_;9`#R-!8KAoD*pkn8%9j5yp0BR1HuvY}bIC`2eqNTe*?p;H>*9IN znv!d3*Zx0#qx9_d?+@;uKX+5X!+V3?o3MFr>hnzMBd+|-_}i*E+p=n%c5&27{d4JW z56`_Ucl!B`%!2;;ww0e$`0aiutPWqVrl!`m<4486r?*VkwYM5(UD3#yU+49E|KHmS zrYRoTp#JqjeonZSWhLjLNncm&%}w9>`{zyFttQ{!rGNi7;pXSEBJ2Kjc6I;q?)~^H z7F4Rc<@ACD0$f~aNp2!%+s|Jv-IBfbN5`uPD^=Q8%j`UK`QO`@7IzPS|B_jG*Pr3` zZey`tz0NB~_W8Ge(E88A-JFviUixar&A<0s1itxl+DOq=Qo}In2nD5f(6PpVI0#BA& zFX&FJDq=b4=rDmR)ZO~}`dJ&>{1Wa>yt~KX_SFOPMK^OET5Nh_-K-66J-bIO4g!FJvX$qHZp9}emcXz=C zdM)ZvO6kic*ci`wpkOO}Imlz4$g{uKj~_RDdNO6wd>^%+CnZ%}8-D#$zY#LeKWtO^ z=Z!PFe%@>=lDbl;VlUagZRfQ9&2h)Cuw5(uePdSm(bCxGTULiovH818yj-BF?Ax12 zz1UqxrpMQvydGcg`?Qr?W=A3O+exZ5*>|m+=G9dda0?{em|V3&WBI=?#`ZVdOMk>X z^X2-sZ?5f!RrBwjFDo+de`i;>Dfur?=EoO%_Wf|@Fcb;-XxzDVN?;l5g4S1$*bYrs zS-AA`p%nh#+mAmk$^W$dr%tt*sZn7%o13_JKy~#Tdl{Z(bMIbTIWb^=ivaWT?v$hw zg9U0vxq5-VQ?Gp4C3ZVm{>JP-?_A~A-mjZCdt;2^p3?36!yPyjk0`7-T={BpO`6M& z{~o)S%9d1_+&iQ1!7IB?Uhew6D_wtICC=-&ta;tPOXba%UAHWhT1{Km%G}%9DjF$Z z`MX``l<&cxAuVS^j`&XtOWK*)-t~0K?OPjzkA9xUW43qZp|^5nE3Kx_o_gEi;H9T? zROWOVD_?wdsA~OOj)JVmJW2WQ7QZ?b({o(!;FeIAva%_A`wl9Ie)B%MXHsbMPUbga z++~ZWYhOrQy4ShajN{hqTY;`G@?&QREKxK%;i>KFxI%R`+}J@BNP-6%1e4`FQe{IrS(6@rypW zGe0l;(U)7(Z)~h((!cXQ)w=q0to`q@ZIdtC$khJnV2pRrY?08h{2 zQSQWJ?l@7!fAhxwGdizv8NBOx^RB*Hy4ft)(E8i0$S-wvg;l1{9_7>pJ-hp8?Xsd- z&Wk%PHL5u^@4d3|{R&2_TbX-SI>~pnTgaDicL=W7`l$9^)y~f!&R^?U`uY7gZTA}! zLywitZPeV{ywW!8q%^nUpDS8Q*7n7F7tP%G(QT2_uV?Phf38yMvH6#?=Q87>E>3MD z0~zfnPWJ?rN}tBKAAkJ%(VTDcrV}k&_sqTg^}U+Zt2Ybe+?Vh*z4uSNrm|t?*%{fd zHFsa(Q*=vWFMRp&+1c5Zk9*C3yjs0JU}eaP5UoRp4smdCC7qn4nsawo=>uc&B$bI( zFXZ8aVex*SHodp@V7}`I8hhJz=a!xmhdqayQL>hf&AHYKZf8D99%);Z@nX)a%>Um? z=G=>qGpOG&`*65$M65({d&~!$4`pT1%cos`>U(!C0i0QxsP4Q{&OK% ze#iYkb|>s^1@u1UQUvu|It2AB%CrJ~k5}$L)3f%lPwvU3?!)yM=j3Y_ogQ~KztLz|BFgqsgV#Ds>2lAF z?)c?vl;=J9oqx1-yP-$)^WUL4WoyEHrpRU=>s$N&dDVs_yYGU#ug&6!|LCm7;#ly9 zhsXDQ;g1$c=`bnpu9ac_YL-!N70*?_Gk0Pr*xI$J{Itw}>#%NRtAD5Fd!H+k((jp_!>t)KfnLR0+0F>zh2P4^-5De&qdU>@Bh*Dk5!bG4l~TvxvLPptA#{ms8k;CIgY$NrE~+rM(*OOxN9&!~v-t@Ag#!?R`X z-K(0bw}YE~o@-|}EL+>gT^g2?J3p{)$HM2;6}n&N?7qRYB|*!=DcOa|aPPYRAFi-} zQ`^tKtl#Xz#u&w_N!AUm0!d3Q`>Pg5^IC5T|JdW}eZ?eSUU8AS-r)o6($h9y+cbIZ zdB4=B=hD9AoOm{KYZ+wRXX?HDo1y+u$4=e+DO2?(v+QQb3!&$eb|%HlUwtpf_w0@1 z#}~fJSom<+JeB-+8r)rp7tgKSvng@sIK<6oGiXQod0 zt=Ojg^{?iU)@gyJ#yfu(PG@+rxA!2An5x)@=NDB4@)R_0HmqBB_3PBhbKn21<_>6e z|9E28S)Cb|e+m@+O$ig5b#wE*jW)g|Lf!Y~JdaT4FT7X0f1>sY)(r8S=U3Oco6bHz z*?8-OYzsL})?e?q6Sh1qbueB#t?WflZRv{NOqD zlnbnE=PLa5_Q4O{)y2sH?T^sW=jHp|I?L+BwN1EY+r6yVE?mrL+uvE{-<0Q zFRzd`&pW}^7k^}Lli4=8CdItFr|-C%?fmq#N9*|} zRTgu5Z}HJp>8EdO=9wEk!j`)Xm4iodq=tw_t}%6*(cig#j_c-I0BZjtB9e(S~=03Zyv8*HZz^R*3J4#v>FPrzB8{IG+Xm_b<1K_`M@~tSpvpa)4gtPHJI@K}$bM$sI-7J);u zD+QA}PAD$`g*lp!HpA5NPg3vim*BCiB!wpy zu^ftj9CJ@R5P$kFuKS-yuYj|&9HTDCIp9!&5y~x~0UFpa8)OvBsYCG5JMp-RgZEz> zEP8umBXa|2r1*Tc(WkR_3}q*5`(~P%{?sEHoF3Xz`57)<+oxu@Rwgq$)x%nQ`RcW; zMk>o{Pg~Agy0+H)(-tF@WmA>E21E*--=|&~C5addt-1Pr$L`lGOFyh#dH%nA{dy;d z-xCw>E!g+p@9o8R|EFy$^S>2odFdKxjPu-tEnma?z+y>JFtLDbTS23t)y}f#FI{`* zIWG(}G`d8N&tB;KJP>co=AtEQrz*Z(Gsodw^$Fz#t_Oa;D&N2O@g-FTBV*&A-?r~R zTl@X)@#6Eg&!3x0M=qKBSJ~EfZs1}!K@pK7e|~=cyVpv&>&O<6A?iC1Z&z71Ro(Dy zw9w_GC6n$vjGkmY1;XmQ5AT$gSNTKTWGeT6VgAaqTmoeR;W0 zd#{A>{rPqM?&Yqot{va+Ro~o{+AV**AZ0??w|-t}vw|-x9(T#jK6}ji{T}Cx3=LOT z*SfgP5B(vYoqXqEw9w^KlV^O>?aVX`@_hF}_oOV0JIV9k2icRd{}c`1S_@r1#d&1g zH0uV}1WDUjfm)(HQb!N*+dtXKF8^kph`6}=$&3{q*1wNlTN^#oqA=P6VEm1ZO z0mV@6T8opic4~%eEjlyhC(jU5p7MlGe)64#Fz$>e{PL6TJQNqYYzHc@7;>^L8FiSv z@Q=ls2YFckKEBL%_KupLMc?Z`D@$>lsfbfD4>YD&;?>9oh0pWm&CvQdCdK zBqvk*F&foW*lhrn6U)Qr=ckzT0Bz=0m`(WFdnd<5Dd)|>P z5}hjLKjuB*gK<}?)c=_Fgzu@R&+lm<>(+v;^C)+B3HbE){buP5=6%d(ejb*O*j2J} z{`H)ciDhBeetmsyS^ux*`+ohnJukM4ALtJex(piY?|Z_R>fxj9o)jesN-z`eEaW*U zdurkgP#Tr!RH;X@w}@%w+V^2KolX@OE?#u>^W(d|KK}WMiOOekGZcROD165%Cu`dE z``_#R6`$h&PpvMss^mYQ;9;%(e0}|2?eq5kZG3%wYkoXz|MTzr{^w6lPG&fA?AWI4 z>v}=K!JNFjPs8{Bnpz)TCIKzsRmwFWjyg4QhM02a6TYV&??AbzNM+ek59OcEl9Q~b zC>yTj>CAk}k`#Sf_JGoYJGI~Ms;H@bI;lRt;OD2*YkPkvy=R!ud_QRAkJtPETiaK> zw_WBt^U(c&-^}aRzuTbtcFmmK?{;;+umAsB#=5M>{_jiwJ-=S9zI)m3=M&*quU`H5 zaG1aHQK$Nnwd{_N1U});LYdA?Xn^&ofSjdAHPh~X3q9~|7Ni~c(}*LVD{g=yAFpv z*uJ@U)*GH@$5V=Tapr72x~4bsOrNl>^EQ_3n{LmJFPR*j_H~b1bIiBc^1DYL_uHR) za&mIzgGP3X(pMt!^?yz8*L>z(?l(8-(h|=Uo3r_6b?6?UABMI@S&s_(UOrU&kQ{Z# zl5PHeCi8Nh58G$z7iQcudUkw?v3;7MrT+B<)*SKAkrI>7-Fmd}zWUtfZ#D0;*S(ui zWf9@^?V^otwnFXWMvgx-#12o?|6E$nv|Vl2v%L84>C#ooABvBkSkZ3qC+U`O{_R7- zwI%n=tInSft8QwV!t?C7&aw}W-d_E9p#Nnf$C<)w4msKXZJB?mru9!&p&?NzM|=a!hxE3b5^#-bf0~6;NnRZ<}EWdJWf5{boRih&H57; zm=Q9tE_cVa zHuBgJzxG7__a{$IPWG8=HTCN1@X3=WJG;BHFK%#6Ozg?ZJ^JnC@-6>w?-%^^ z&vv;le-wY;_Tt|HuG}1^l{>pV4NJCp-cFx$u6i!NpUH)+;Dz1(NpX4Mvm;mP-#h+q zZ)nVZ&Q%`^m*hns(@8F{zx?O8_}e$TWZ5O79iy5`6Em9FKE#^ezP+|j?bP>a7j5ij zUa=Hxj@~x;)2AXezd0UZVPcVyk$3C;eSDs5-~ab*!}Hrk@09tT%0B;ewamf$${YDj z8s@Er;^v=y(%$AiVc<;`3Xa%dD!W)NfL(YQx3l!3U4N&33Y4x&K61Py+IH#exaW^A zxkWLa{Sh(gx^DWtDH|Hs9#_z~e2uT|Z~mu8BB@!EC%wL~RVOV!?fo{+9kX^{+Nm7W z_}3($_s1Vb#z5g(!OOL`cc%O9{`->8>zQ2qhs^pYjTN1bHM2E09@+S?{N|C0z5jW? zRP!}X+g}sPpZTj}YrovlNjoMovnRz|OIly?^>);Xm}rMc(-)5(ckpbwB)24yVQ+4G zoMqLDO;fKpi??~&zIn86{&LwXG41**+YjF^u+9ry6#sJbpNnD6FPA0RY2+^1TkKPE zZ`)B7)&mwB?LBNu5+!!sJr3heFKEAMl3w&2!vKUa$7 zJij`pu&-|VWy?8xZ?{#v+3bFMmgfC}8K=)mElNADq?eSi@lpS0-E}N?>K-sRUitpv zJm-V;S~LD1;Q#sMpv#u8^DqD2^XB<``=g7qAN<^||EcUz#PzvXu3cUe`G+yNKJxg= zRjlQjp>;N6X!3n_H+4t z^XBICoi#s=3JVJx9zT8m@#DuC)AgRNt9~#0f$!3G-Rh-3*O_fJDfsDQnZIQFV*T^S zB(k1;xg>LM1zT>8O#h2BA@enp{Z~o)Jr#)F-oLgo^v3by6K$A%-iHN#`tsUk>UyP1 zPwJw4UOc#!xuNFjIcLe}SHI^c1pgFfj_R%3UY;*|c8aXdQpIZr9v3Td$Q{`W1Nq)n)cyR+qf1DD4;g zA2;hsys~+{1&fpK7f+w^!r;p$+fDDD-^n%Ws9}1)P=t@_7;5!;5+Ya`zF=msx$xJJ-#QKXMZhF`&uwV>fCW%yEoy#)ap$N zYaWVuy>bwr?~v0m^Oo_`H~!lf+ivArJpZ`fU)NWO`iC>mY>Bp>?k%-Z(prC)d3a!y zIm_m^uBJzl=i6?}cDLpAb*SK)d3)ZAi|u=2>#XlT@@ja)zE4P_mjC}8hJEUNO|R^W z=YQ+Z>8hP#|82$(_iwqsrX0U#w$Wh<}U*wHo3Qq$+e zi3Fy;=sT;=n(O@71iMxd+wi=FmLY5jMe6-g07bU}Cjk-C)=!%9_xKV9Fbb93Y5*{At7r3Xv$ie2dO zSIB*C6vUIYCiUFs{pb4k&3s<;SIuwEjlcIle*DPrf?sCG-nOrcbms4>wFM_I97kI@S-p2f~h4I;>UYq?ZXDx1@-QjC8Y1a{lCrvXYzM8$t*L(i- zQq?M50m&zIv-bNlH0$5GS)0@P+WLK)-ik-Nc(-gcKB05wz>4ib!4uBUYu>u0O}c}3 zQ~CMRWrp*Ya<9HndhhHjy>-7{)mJm$ST`r(H9z0wf_$Dp^Xv?U6?zFTlevFX=IOo` z4_g>L-Mi?d+P$oTx}=gey3{I$;E^N%OTKiev@>bc056BpOl8BG-vzkTGvv+ZS1tN(xbxJ0f@^3{xQ zB|Sgx*O%5DiOg{Xhz@8 zu4YGbZiTM}7N11U|1bSyyKPOOt=!G;Hww**b&uvfzJ2whXNsqpy=BJBjdrUtrEkuD zcz4(DR~46TPLNZcb?^COs|#mtoY?k9qKUD%(Cqy4&`*U&lX{GsZJ#hopOxR|ml$Vx zJ+H~kY^H0gchwd7=e4zGpUpd6R$G%%9xTrG)tKGo)x!@m#&4IkecN=|q|7J5Nnpzy z%d@5qtR-6)t)5f(x-aql4gF`EH&k0^-0eHOw5)F5{a-is#+nO+@0nVBx7I`W{G7AO z>+&8v*7|30|B+Y18}@yo9JT!RdzpX8y(|9yX6AWqi@&Y{@q1<+Dc}E9cc1ic=d#$W zQlH=Fl5_s2>Ye<~xb}L+-gKQ?>x6fG?{&TX(Q@tDzdqant6q47n6JJOA8`NstNUic z>e>#by3MYew+58YTD5Fp?7p=t*@A@^Tw7dhrC7Olkz{NQPvG0-Hz!7V<+_UmryXCo zQaj!MTIRn?KP^w6^;oukwxdYzoYQ)XR`KS9_ia#K-NVMy_daIrlit?fD>7eO|G#IJ zfA7qXkB=pd(|EL|a`n17M?^?`zgsRZZI&bPgMaVbZ8_P?9(q|XP_$r)^4+?Hd19vF zT}~hST&-lr(?{KAOgXg1)YvfLSWL9*&81}=Gac6OHQD-nR-eCh^W=LQQ+NNcTK^>U zqE)7tzi!8(y}PEw&d%B}tLtXzhG}83I>BlyGs=Ee6u*D8YPR|9-D}&nPm^2LSRiM= zVbbz#s*9O9{MCwM_gog{cz4tyntdCa*7{o;VplHurj{{T_(Pg;T59UTpp`$qZQsw^ z5Vh8AZJ2S^l@)UR<~wCyy;v!6CBZVn;bHdl43pP0H>Pvn=C?T*kw0IxeDmC}V(zoz z+L=2zU5+n!U%NE)GH3tq{Xw}edMC3Jx{wXPkK>!`&Qv#LbT{T=Xi9V^p1{F=<(=bFpZ?s7XTc=i9n*YnrQV zZ?CEP9VlfrN6q@Z_V4M5d$xbx*su8R`HGx(9?4Z*VmZ81uHW2nb?(w@Y_~E!YqlFN zFWLJ4$9`$n9qazbu8ZGdl;|d7r4w^6#K)ICFIi9Eo{{mS&+GyQrWeHx@2=fH>)QD* zjc>mpcD1Y3`@m{2+eGYhN#1Hhg4Xa*yfJs{Usy zd2M|+&(laczneE>evHqvNg7eweV@GIYRm8Je8ayh>-pc)23L0WH6Pr!G2+$34^K7c z{SSZsvGe%jiR+S&Py2rNIfwai^?KjBrY)+QD{4HA+5{Lx+h#trmB0OdVcoAM6`LmO ze{x^F@}l80OXE$y&t=u#O8YkN*4a}}63$yL`lexRHlZ_IxCGkP({ z-fv&oP5rpb%=;cL)BEv{_t|z2+mwj@nPrlba~z5{cWttgzTgz<6?}}QG535bZ`3NETVjF{B+UEDm zcd!3qeD=P{#+PRG}Fd9&UuHFLQ7dF~3wx&6gEZ~9pa^h`Y+x%x&h?}CRD z5AiIwuCev~%pbqict^i(v*b65O@t&voO4f#>BavQ{whC9=6$NhnY5XLS+}Nb z`0De1=dGP_kL=bZseRSCa4+Y5+a4yVyj2D{vBzx=Z&x_vA(0wU;-=UcyzVEO679Kj}^zF^f!@bhx3>$9d*e>Jks57#+O?rNzE$Q4_ ztp|tnF8D?tIF)O>`+eFg|JNIJZR*#&j-R+>ZFljUn37*UpF4xrRo?hNHOo1_=gEw1 z_e=hWm9F5jvRj;z$ER*xJ?j?h?MlbzS=Mu(-kDeyb@7A8L$_(ZO~)2gU6U_6bNcSK zzx}iOeoAdi+nmESW7coGX-B5#p1rDdYL``!Vwv2@j`wo&-mH?|woIy|_SRqHUB8M0 zcdm|@#uHlVeIr!%c`$`8npydNFy%yDRa&ueU$jdE@l`X9;}Oz)c{ZJSpd{>Ww@I$_$0EulHyX34yq?x{uFb-vdo&%Q0u_i>f{yS^)j6VEu?l*`KR zvXXnb>+_YuH;Wb){?_8#-TBa9^6STw?c1IkX7fgzfBWob^MYB^T%VmWD7f|C_UieC zHuK(`75{lSudt^wtE#7xO;}8j=SIet8OrC99leVZ&ANHYvYg63Z(KT8-#YzrdVG17 zb9u7R)$b`kROIjQt!zJBb7qV8myjgwZ-qOT2xeC(r=%AvOF--$hKvk-+e6WFuNTGW+xZtCdob@OpT)ebd0PT&*UY;1adX6l*M-cl0z?xI zS8bKu5IlG5ob+AGqkg{EuU2#QZDHGRx$5)!h}pLoZ3C^2_bruO&pa!0>z49-p5uRF ze?Oa@&-VLu)yF&2?uM(B?p>~|F=OLoArB9^=M`T%{qFv}{pLdGKC39%<~GGy=e{3j z#h42$+4tklWt0DszslY{QQLOKiubMP`rr+k@~6*6pL~CMc3(y36-zn!$9e5vCBkjx z*F7$*E`OhF&iLlW-km)LN{tqG3;n`o7_6MFsM4vq{bNy8{Fbe^45p^a`=lNe6`so8 z|KZxk!#T0i$Igpae6RI=#AGDy(s1<1@!4LQCv}chWN{|%vQKK?_R^8^%AA!{RMf$^CN*7lbK&gZyVuW%ZDs52|8(%}ges21m1jf__^F&cDWx}M zYLM*RGp379_*@B?cm4b3dFO&lUT(~X&PngJOWwTYah1%v_5Z$o-N$CWZqb*Y(>^2? z&3VY(cGW6&zl>x@7h$jkRnU%fCfPZjG(axAXluReeVJ{@InSZ3`K1t>2R1 z+%ILlHvBfDY@*_;b1e71t|_&>ntS?Y>9g8<=1X@}9NRl9VeVq()QIW6vo02{y4=^b z;r06BOD`v{T_z?|e)67gL5tXiqO(cO9Hwi-b^9`{e7}F%z321poFaM61&U?7?0v^B zM@=~D&$sPcWL(9U9gX)pFZxH9**4$5`}_VDH|D5WnL36SC%viopXPlu^7wBLwbsi~ zK}Y5lA5?jsCXn9Z5p5}Mb~UK-Ykh}J@r=WI%WryI(4Jm#Z>8<38=LMN4J$6R``y1) zXm_5hzRI=&i>(u~9=tD+I&kW%nRG=3|IFh%imsjiR=4N#{8c|vlGaZvto-e$wfyOX z2OqU270At8_Vmf__rXjVX+Ccwcg*>*Z*8tg-g(9CN8B#W{;6Xm<$3aI(O#wY$>OVb z{999Q>0oNtc0==VfN<;HB~xs#ZoLv+V8yuRRr&w#q0($p^~blUS+VK%#%LQ}G)mWc zIJxIV)44?p83Ps;?wtEzUHyIEqdUc)fS(?BDIXCb^o~_RpKm>syW)n3o&+?Ap5a?_BFyk#0eYx{8-h zox>b*IjDo{)qnH*tNv>h{Em?QZYch)eaEC(9ZIHwC&8I2{&NclOW3MS+Y5eVS#;NJ zcx`VQ6?AOGyalzl=kgU@O6nP`#(*ewDWNE!MML>-)o*QW7_hz=4SCf05Wm=l)om=U*k|HgSm`}-AtbFl;PjaU6Hci77jKzg~=bxJj zZ{6JCDp%a193KDr%+<5%UMn~CD6ccl|9t0v^v<7y%Z`?Z;<>g zalYs7kzaebZSShh z|M0VUr_T=dcOMOOH>~W8+1TRV_q1@~=FLf(#d~Jl+3;CG|6IwPiC4b{z5X=myvJF| z=T&|eHGOziKDo2I@=4UAjwOxU(;Gfc_UvMKHOF4o=S`Q$mUJ)6?RzIxx-Y-hg6;p2Qb+@ooW()nSs<-`Y!rje%FL`Hwx>>F_qpe(bL7%GTulJIRXZO7OPiLJ)ublZjt#Wo>-|O$JkKWDroq76rdey&u zw|=m!{Fu5YF!02$%Bd11x*_v38A^3Ni}g4cpY-`UvuM@&S)P62f%R)7J5UGwNt&BBi%hRMT%IGc6aW+g&JKSm%9-AbZe97j> z)XD$0egERwciuH^$>f!JPk)}#;(I!?JvP>`{|a&N@ZnB>VR>@2U&#Il$aVX(QPCC5z6k}g`c*e#^sT~2lEiQs9nV(OO__F;! z|9vwVj{iru+%jms@+0WpjxGK3&#X>L+QQ}Ss`|FUZ@H4u&97xuhURi_rI*f$p2co_ zD8nYL@!V_6yScaDY}uDB6_Jy7>+Wyom+yD|e5+qoA=Is=B*WW#<(X*FiZg95&%Bl0 z_5Eh}wHcN>zjGw0==rX^9dG-buXcje*&O9nm$crj=|x@y_|>@9&;{xBvMz zUfce+TjX>eO>JH)F-=Ep=jV-C@7@KyUz=_nuV$T6@VDCVQbk|-+*5_+D^EY3=)L#Z zV@3Ct*LP%u?W0fsGkzqCzPBEMy8`qlWW^=1~-SLNQ zP71xNzleLU{A-u!-Dh0$R&i#uH^@Tl74pN?jnRUET-cJX>AT{I01{FbMBy_8Mv{{Frx9Oo~) z?V7idb)xn(W81LPTa%A#uI4_xfLZ5k#A4%!y+<0ht?SwT&1^wuS#4-vdEwRn-~Me5 z?&X*_>0nbthQ98iCGYCL_Z+=v~m8F&>0tx zo=^DtPvpzJXAP@Er|gYBw$r$G#j)cbuQc+geK{xi_sxHUn%e~me}peTnA03m8ak(X z`y{q#72)Y?9viu8# zjn27W-fh*K#Th}p;&0A1!C{YY zT+hE2RQAC_Uf#yf)AR8HKS#cwAD;v~d$)ii?QfQHW@nX-=+qdC%N!d$Q{+y*D(?x; zopGEyT3DibbJwQis{+=|S6hRt=e#S5dmsP*-#-t~i zQ3nou`SH(hVpL{+_VKixy~~ZhFZyP}XD-5&7IU=wvu@m*%|&w_Mla60vqMmVf3e&{ zzZm~d?Uct8Z-Z8EWTro5sfuPlWHIN;;fF^Ni}M&O*f$6`anu`4 zmrbmn_xR)bhmUK&*RjM0uD+U*miFnac~Pw}L+ZTjElZNR7-AfkWa;)VLH|1cLZm1)MZA8je3)B6qJ6yuXb@-R#!+ zxzC;E%HG{_RA+{fjsO2W|9-tbGuL|hGBtjE<-NfzehQgoB5zZV|NL<`DrDoyH8sV0 z6F=Pue%Q2jW!EPz?p>LuPt38j`ChN+;vXao+C{pu-HAg{MCifef*}6)I_1BsS&w`W zo3p2NyX_wHSPsKGD>`d-PS_s*?Ryo^nd|Y^_f(6o$CiKmcwD~t;I*@ z^-4W`zV-8TgGWViN_xldzgBEx{<B9{F$)7Kz z`4oK&Jh1ty*yqPf?p|TPvF+Eh+4&4Re!tsY`RSy(rlzK%nb|e<)0<+?q$m1VWp|&o z{TF@5GRjY6#CY)htyl~J<}7VBRxKNh$g zy5DuDVo!gc+Nt<^CyGJaD%F~w&(mABYUTg+ymO}hnj{>;mn50BRcdeC`9@}T4J|Dt z3yX>mtFNXldH@QmoMo5TYprIl>_|_(R9RNLK39t=dUmJtY#$dfv5&`YrnXGqdoFNt z&cS_K*U2lJUibD5Y3nYF+xr(X2r9Is9x%QaWp7h0q?_bAU(|vaJ{&VBk{}|6KD*pXk#9CcZ`s>Z^-*V@78M)k! ze)Z76kuI|9!aw_} zbk1WN4m8vrj$HTLN5SaC$MER8nOTODGG$gZM{0-O)Gs_?)IGm$(?p3_?a{zMg{#5}USen&lUe%e>-giYqrKb7#8$ zm4ho7uB=)(cl`%lZ{A)Xh2kKIR|^Uyl-|TlW8@Uyx^DjY{wFc|rh$^@-sY@(o^nkr z?xsoO-k*j%D<<)zM*ptd{d198*F$)0y-@mEa3d>o+hX57M|qPSKVwecKK}BF?vgw2 zb{rGP&0pDm_)5StzK0hB-oADQ#fj4rIj!s(nczoT|JzrW%iq2-*Z#*p+gn?8Z{Aj^ zzfo^;QI=V{Y~y;7@5|Ln9DF9c>T!87ZQ;UMD$|8D{2x|wE!4fRQ1gN&|KtNcLS`3& zq9&CImo1-SWUR8w*G);`MSqIk^^00*Q)3kDV|Rxq_rFqk{pS4f-TQaeTk!jRuq<<$ z_qo#Zk7LgK&tE@&ud%z|Uc8TePhQ^r%w<`-IbYA`@|+v^wI<8g&CVw!PUYy%R$FhK zB@!ijqW1Amv-xeA8@IdJ_FRaMXF$L<=Eo`L=bkxK?DvjgUfRKDi`Q%yFDm#Qxb3F; zvs3JbykF9CGVhw0x$FLse6{G~`3d`uczh}8`<}&ZtDpZcw3xkjt??JVdz?%Bizm!o zdiXil0)d$>)^mf8R8=eP-sb-9T<4v+wH^GQw{5W7J?q?y%LlF>Ykg~4(#keHz``^4 z*V7lSW^>(*-_5c9#8I;e9Zl=<+xot5+w*GSceNUw z+V4MJ`EmVxYJYs*GWO=yGtAK^Ut}*nYW(3}K*MeKr2OO8YdSBzX}n*ZEGrur?r~Hn zdPOt$P4=C?cFh0wXzmm~o%xHx@{>5(n*V&Z|Noh#{7v(Y?Ax5l&nj(8u5MG^awh*l z8LxaAfBo@lIo1z_@0%AhhbxJFJl*(yvH6P&jJs6s{!r6S+pCa!d%KJ7OyMQDkHz@- zuQK-T`g5sJFGoLd^4neRxbOA%nCzPE;+r&=H;GMM-CFDHZT|kjVdbZ9POV#@ zETXK|YVu8<>+pg6yI-PF=D&}SWkE~~4|pA>`2pBWWP zJ1(tP*5&_NvqETp=&i7*x7#zKp8GGEE4*`cQn(}Uy8q_K_6gZcS6Oyee-i(4|2M?} zy6=9x(71VgruE;N`Yid|T(dr8Z4=!p;Tiwv>8p*qSN+wv8e^^0w_>|H`|H3nx!!hj zgcl{d8^p!({LHu`ebv3Ek2`9;Yv*0F%P)j8bIcc7hzGr2?5C%CY^PnD-ACguCl{ao zaHa5V@7=b*_ot7YWY^l?UnXBsCX2CvJPQ zEnF+3NV}o^*Bqy7`wN7^^#xvatYMoG>s+qkk?#BRfTh)ie{*G5+wsqwQZwVho{sff zJ69jIj?BOB@iJ0;-@)R%5ZU~{j{?q24RGIo{%&38_G@iB-2uTzWD@j4z| zJ$<3#UhDf8{@wAKv(oBNb3V82!k=jj(f^F*{M0PDYO~koP|RYRUGB-+ORRNYR7daJ z@t5rw^V6Dd3!0ez@}8Ufwnt|EK8BOg{hvQ>w~ky>DAn>eZ;yBRhuiE|_e_5M^w!F4 zmi0WLsy8FHE}FmX^}Q3DA{F(w|L2kX`EnwsOT2dIZD|8Ji<9ZH(<{`s&pv(ob-UEo zP8si~h3x-Sq`$q0uAM9+lcBjhA@E5%*Z0zg-CJev>#pkCu`x94^V4RdPfolcbL)jP zS4Z94uzB&)o{ng&}Gbxz2agi`6TpqdVWt~43 z5p}M-dzG@@8u_UoKbEUkg#K@t_oA<~#OKx3d;b;ki@EELXBn}rXSuRs_hqTmTh96F z_Dij>xqp83^>rVfmb;&OUX=bmk%Qg63sd^|V5dF_&ayJnr23)x&5s2zH|Ij3Xe`iF0At8a&#;hn_4yz`ai z3bAsX8>h7^(px7!=MVkhS$pnBc*CXTA092#U9#J5soAy1T|&M2S-B@yREcyyIlNQR zs_aO#x%Qpss&lFvKJ%}t%wIcyb@hI!St1vzayz1K`z*F!yz8#ZdU10JZ+?!)^8I@oi;r7{ z99K_Ybn;|7=b7#!((PTV9!KWSd33tZYTug`k82{?+=|UAwSD~ezQ3QP+7wYc^?Ovi z{*QNWm+ady>D?XYHP?PG81~iru+L-2)wP^Si!U{NTG3fuTQ-MJSZw*^lyK&H&nHX*M^B5}cklY7x;*cewC1cu zr+z=H-{DaG%8F~+ERJnv7xLnq4`y*!HMh>sIo)FY{f8aTjJIowmL+ygZZ3J|^XZ!2 zffSE}&$cZ3{QJesN&2S3FFntf3+yZAw_jkBb+ENLw9g~k;6@em_MfF(VapdDKk{gi z?w%EQmR3H{I@{8hsv!|ME8=l^;9b8-&5w31eq!m9;Bk24EvNs7=e3*?^WA*UXX1gm zY2o!(2aqzc|y(O+_Bx?;Lu|{Pdyjt}{1NmZ=6!e`^sQaX~uhL`3${8N23~ zp7W^P_%w>6y2ju1MDttUlI3d`CX`AoQ{mqBXU#=Il;3|?VnLWVMEy6 zxz{3=73O6by|~c&>*v3X{Rx+nxL#>hl)t^)8*w&f`T?`FH-*yrCp&|ccdgy>sdm=o zZ68)2?!K7)bkRWz0}1_4n+=XzJWDSlxOchfH1ol4(LcnW zCT#Y}iS^N_%h>jG)(fxdxqId>TVTFqLS=@$bdm2Y<^EkK0Ca-9tU2>h4ZmMNR78_evl$J`VIdgqm%ev(IR#&z9M|;dX zOwIm!?6qIK4V3Kf*u4socAj5hQ~OC!=uP&q*Qc|dHoMe)*Hrvj;Pv&2+%w;5#r%J3 zCcXbPsdD2Mj@^zAf3M#DLr&R#t<90Xey<-_7lypZUi?wfX1~?slwXDS-z?j`v$?J( zWzV!OJ>B+4o1FiwS~KAeb8E^A#Xmnz?y)~M;lLh`J%uYGO7E0+uS&kVCnC(`PsB!+ z^Q>q0d1)MY+q^u(?EQnghr1=uXe9RvKE8RpWI{T_d4XRlmCqi(5mU?YNWXg8aaGp5 z3EOvfA8QW_vkYF4xS@0Lh1lC}7TM}AJspC?Zf1Tp`D5u&RyXIl&6!8(43}RoeEHz_ z9J`$}%EiA5)Ww{R{&wr(_gR}c`^|Zzz6iXM|LQK!TlxFPBgF;&%YWP!PC5V3Zo$2Y z-fs6?w{`EUYqrVhS z<%^v0;BlRT&+mJ4_gH@UuJG5J|6|%aO}o{$rzb{T(2Y6v?3Ap|HGUoCKX+`-v3r)y z>GRLb`TFtCT)&=d?u`ulHeN~nl3>91*FU|Z*5>!$zX{tCdVaoI@m+04{p4c#>Z1G4 zW8y3yW~<&1TDv>z`TdlO7Urf)pB60G)PAd2{l;GLHQDj$#hHA{#u0NsiC4((`SM>o zdarMJcBC@pg#~-&?alqSp08n^yi;oDiTnJ|wmdA3J{nOJ7PG2QudH^0>+NTn-OSGy zN#))Do{;%Mt@7=;!Y79fCA#Dn-@e$sA#0AkRq?3;Io~LsZ`lm57ONnVZYAHXq~mit zm#RPAI`_%-X$2quc$uk3ZF})!!KG;?Zci`9|J$2z$XjpOM6WkLH0pV78!SmM)A&)H zyk*Uz`0iENS+zo{TNTP=uiVI6^mq2gFM-Q%%_yp90wv*B*+$#;tqHTcuu6Ec@27`X zqGp`*m*skU{r1bq9c{epBNHSk5zn|^<{jc9PmS?WVZ1_YMJWb$@OXvJ8yyHc>$<}>ckMfl7 zJYTj`v?Nk$|3a_485e4O1ZOgceQvuqp-1nF%BC&%54cPd`Xp#J7XP z$#!40^zmseC1p?d>km#Z)RUTB{o=j#(X#3*$Ftr&IvsDzId`?Bl4ft}&y_WW+a~|t zc%?%xS%3f9c)LY{%fIPd|G05N_1eBWoOd4eq-}Uq6Z!B_skm+VfxtA`s=76XXFYZt zbhmf;C-!RjZvXaF9{yF=^|vIy%UyJt|Jp%rfvVU!XICqKeH{EGvnH(YYQe9X8E50C zPR_jec(vxkx6d|C_f4PIRkirwWjAMQ2m5!g&+cIV|1NjY(~IXr`x^Ns-{ff7D66G- zUoexe<>JIeUml#+e^|4UGv8S@^!U5Nk5|0n)@<3lu7q1>Zs*;-E0YdQn}6!5zf{JT z*C+2ub@m7cPIot+HTj_Y&9ptsQXc&_fB55p#?gC1S?9}(a*mo@j}?u2uGY|3@Wyj_ zoc!PJYlRP@6u*=eCI99;H*fpL-OPdE>PJtPX5GFau=W2-yXWecr#wIM^MuQ>cT+d4 z?E7}N{p5$NCrZUeUs&7D=ZXqTHzysp+*+moOq;uJtJuC3dk@P0(M*x|(ve?v?7iU| z^IfuQcdV-P{`$vI=$rdodqw%V{0CPVPB51I8FMCR62E$nb2mO`Zjb(xo z5{@|kmg$i#PpaG&k$f<6Ti>%iS^qX@@JOlzY}3%nJ(=v?_Il!s!;6yK{r^e4O44Z9 zAKq{3$-h@>y=!3Z?5|ZX`U2VOjjIH-vUYcV%RhF>eQws|d51%P&r-fGwqAeshQQKC zH*W_#R{2?QNp*e1@n?s{ZdI2Ty*nTOajJH^ET6$rRc6P3C)Yd7nm6xworC+Pn;dM~ zH?>Rd+rpZ?s6)*$xTeHL^3 z&hB50?LFH2{AT&zRh~1|xa9bg&6o5~C0;H5zN13Z;h5R&4hGRZ_Z_THSG;$;d%@~k zeBJIw`RZ9azh@+UvseCFb}8s`Z{A6!f7{o{T#~;YSbw>liRIn>C!f?`oi7sYypVjh zTwvYLDbE7L&bc1$JUL}*_u0?YS^2*LI4;$0Z7cg*G{^hch9etNC0~dA*irRFZLS@w zlU+=DcE)kXvOU(9s@dl)UD3j6S9G!FuD3*M!JSPnFAAy|YzQejWpZ6QzF7D_%Z*cd zymNQYubtP)XRjMRf5kNA(p)}!wVvNKvc2*57yqnbeePHG;rgS9!}ipZ|RE zCFB0?W1mY+?#;a4eSF5IBG1|z2g*|>@67m-e?Dfq`+N0d)tB?6Yp%X==KNU@pX>TI zZJ*0Gc|KN-7KRduuMKhTpL}{NrJgUlw?`s5pZ&fq&!R7O3zu%oelc^!sl!!vI(r;u zyE8g-X?j|5^ycIoKV90Hlf3KvPfu0LLa!IO*%8|>`2H>JFVmCiVD4R~u;9brxqN>N zr^U>BAt9oDZspbLoy-;gHd)M_A;0axwRE*9{97M=f3Yp}kjd>L%O%x$AKHI2DmWa! z89c}Gf6Inr`_z=@cSm}CdZ==7@#ozcHl@vc^P3)JF8#PlezUQt@W=B9BMP6dw9Pm+ zi^Y4V#`L{EAJj?6{hBM>%b%6&nH*v(R2&iV#^CtM?!^7w_IJJr@UXtv5#m4HQrJD} z&vmwyThBIWl^U$sc-Q5(dGgD}ep^qTd-&?_k-)cHz1uu(vi6^MIkL5Ia*c(nPs*Ef ziZko-=I?Q5us#1=|F{qT*=qm7hs{NP^FJLbp1DR!V)~YKr93fqOO=)HcgeMGQ0Hmk zv?;k*w32Z<(+PbOm+ZI{pXckAcXltY(OIo?XkFpN&TBhY-wS7)q+_%H#KE>rsTKZV z7fd!Z1S;)RyjAhdQ1%I5f?>Uc*o692_J@Q`!D~Ut+FqQ`X|ZR-kh^-j%i=jtM%0p#SY4g zcx>b!b+54hyJO3&$secn&C^ppwfgX$B-!8IZ(mGK@Siz-)pxIo&j}KD5BYpL9p-mI z_QvPwb%A^{JT~JaUg&8yd%Z}4sX-fKs_@LG?wm3^56qmp z^~>VJbEY1ir`@{b*v-DWOu^aVbC$kJk5;_uw(WA;&qV(xSz*1K8e7jONngKr`=n#N zWa{lOzvR6iFP3eU_E5LZ-tlr#{G?{z`)<|F!uQix*OXj5U->=BKJ>WMk9YRv&6cw1 znPT5W`MUm2y%M*}LDcF@eEtk5dXpAxkDyY{YsD?;yw2gTev__8-T(`3d*tDv@5zd2@E zW>1O8J?Wk8zE3@EPIv74)TkUe@8Su2H%vPwdb%xK_VTK3sgKnqw_hz5?G$yij$f1F zA8G!a?_J7X`AM6vZP;(bE!>lH+%^3F$rI0$zD=mHPz@@d{^8hSuXAg16nZAgufKb+ zaZ%&Owu+xRVRs~bjjySA^?yBJH;4Cqael_`&ZkjVzhzu1*gbpF-elbgGfsviy9aF6 zdv)fegtXtr-?sLN#ccU8G45IuYZiaI#i5mJJXyC)_DW^cmF=@L{-^2GURh~&(lTcC zddo$zflKb0b$*W!|9U@N>Cr6-54$;HRkx+MjHGtl_*eb!LEJI6+g5d?!)VvRm|I(*9+fFWJcx)Ik-|^L#l*u;?P1W}Mo$uYD{IlTOjFW#4&rDGIy&`D& z@-~_0D~(?sx4Lrj>HNL^pARwD)Tm}3(>*MazihNh3-vA9|6kYtUH?*R-i%D1usQ1wwjSz@ zd2@NqCen#|MX8zi4x7fzb+xSC--V9xs`ml;mkQXMYN3hGL6A@wxrK%m4SO`_KFE<72Xzew@wSqk>Kx zipzSRxPXq+__R>KiGy(x|8wb?po4A=pFer}G;wRx#;CPVo<8+0FKiKT>c~{K4CGL3 znNXwABH+~U9d#FOr2*)pS3MIAIDI|(!) z>+;dG@JH+89glhxd#cwc9(?Q1ezN^@w-1B=_IqJoZ(G;Me_Y?O`TNwDdN+Sm%+fe( zcW&>!mwFyN{<5!iW$t|DovVE6)ndi<6LM8$HKgX>ol-pKbbNK&ec@LNJ}s4vDdYd6 z`sCp~_Tx9dIz9RR=jk`8TQj+-Z)Ywvm9syY~6Jmu1Q=7y&4uetd4iDVvrtF_|b)9zm$C)|%;FP(E% z`{ALS-1_5+mW5(c{&RXSuD>%a+;MVs$=3?atHAnaH zo5_B8(*7J1S43C}_U>8!V0Yx%htrk*9&E0j_2JwB$JgnKKMTr&tDmrE1n`(~Un3F5S2LbLm5QW~IrUeH?ezEi|eAu=Ul% zkA92w*Zs6KR5N0<5q=R|`S`ZgzBdwo!Vfnt{q<7s>W?L4^52_l zol}1Ae{^Q!ipKo&v9siz{?BE*vsk*xdH&u*`F5v{l)tMzSM&C9relozz2`~4natu> zKYJW~T+?9pidzxR-(_Aq9DS1c=+3=p6?u!3$7RER{P-MmXu4lusjl?)ivcW-Ctf|%~{Jc}N9dCKvd;aOL&$mA>x#I0K(mx*xTea=FZ_;x6 zhTYFr3-&g3e$oH`Nk8Y-md?Ao%Rk%yfBt{Yl-iDy&wuZlV|+bW^WUD1qnM~z)1%(+g1*kv zHY$*K^&qE=Q+&Ps!S5Ol|4XLVPxA1a(|Sxg{p-p-ACGHKw0qjj^=knK4h^@`zcr;_G;;bG<88AFVw* zUE^%uo9yeytgP6WCOumBaJs(iqr-c2*PLIs?DA#U{F{e`XKv>yv&E-=Je*immKuJ+ zuvK_T)#;=;x7W1D+bv9gkbiHr?w37#TEoxEnrvGYTesXMC8w zc%NnKpHoUk;!6`Y=_EwHjGJ?3(Z7E@J5FUx(){PQht1kAT}tiCj2!Ko8|;M_+cz{- z?UnVem5f}j_+ppkmb0<9mCH-*L(QFEmBxSl{8*#^(Y_<=-grAt{(I`}HGhEU4Oo8#!-_% zj(hu$v>*RfShsI_>a<4t-$LgNqb!SBCiEZMtD3V(e3RX872f9C9k-^Zz3W*t^}5OD z6{o&`h_yAzYMtQZmG2iL*E#od(owOmG4`Jrwgk=G+j^N<+&%MXn`4yW=g3b@Gt!;p z@}A@-UOvTLvh{lLlcjU#?7r-q{7}*EfBmJ1&|R#{&$28@h~6th$ zPFy!TPQ;<|PTTz)^;(7h$Fde5J=42)H&58EHtOPXF|v3o_I{@?ol;{Oew&1gDSG1;wN?V-)`B0HCD^>esyFa9<4 zd-TftJCYMb4{}AZy^oVV^Kp`K>x`Iv+X9p4YU=3SI{uHDuf*_N>RCgTt%b@$(%&V# zcP91T@2joT@VNa=ch=DvD{5}M=bf}`TgHz4bLV$n{NLihG39vq%c?xf?64&aYHwUE zRqXeOO8&q2s{4E8ha}b8nU4Nk+iKX|^3`pN*Z3NRrZ82gecl?hbuZ)N#>q9;3Omb- zcJJJ?*RE(%#=bJ}e9%+Tnr{zSDxWd@ZB{?Am`&^a_s_4kYS;X{8)zhdJ)qL|(g}|5 zr4OTbHQ%>e@oa94{&l~tuJ8Ij++FmlLpnOuG~P}_S^tW|)t@W09e*>a@k1Ytj{4y z-EQmH7i^#W>yg*4V*ZWKO}+nYb8bp2lMyp+Q|vXpZufNY->{th>mE$D&r`HbX5Rnv zcyP|INVA>mbshKxK7E)z%daQ$TjQLS>Z$YYoYb={ERzn8)(~0nxr+HNoA$Mfy+>5E z%Qp9KJI?i`?9<%)r&dRAUU1iy|H1yxEOQSFTKb3F%J5oq=SD*1u3q()8BtP}h0Sm8 zuXw&!U_nd!zt#2Ux;CD-e*SLTL`a&?t(zIU__OaGy9H78X*!j8CGrMdJI-_eZ2$4Y z(e!tC$>*cXq?laQf4p&IJ=z^}W!_tvo8m@CB*X=sd?b$EcJvRjdZ~QtpyrLw#RWZf zcOUhJukMxZO}?YNu*miJ>U$s0@Xy@vba}Si{LWMDn&;;3sje_=PP|%wpI0(+iBv?;Z65!@#Ok-v!A8OducTM&SFnVN$lI|G`GWBts$N1D0rgl z@bU+GjtVz0XQX~kT=aKBdEW`xT7al(;k%jH8U;}oq;+n5TI?s#%on?2{(Je~9BR7D z7OZP3zwWlE``jGQd$(9;@Mzwc6IN0e|KweV3j5Jg_mjml4oqlE-rD-F-S+TP^V^Y6 zeGZE}RtdTNEI=}Rd7_t;#^Wb)Pdi>D?}g3{H7YE%$$AtwUv~N7mZL9KZeBeQzeVqW z@eBj0Da+N@IddiM<-EJ%@j~xQg74nW5BAnLIwd9jxP1SnQw7tz*XN{M)_!`${I^p1 z|Ew#~9t-vzS#kN`HMU!4vo#`QE8nW$HhOr@b|1g-ro2^GYS*6cUv6VO>()*wE~g$V z>0FzSiuc~j=GyE(oKgS(_kH1C>S-27PjB73wM27)^YWizSBpz{O8wKzKD>Hm;?pMb zCYsyhefD9~UpJMcb{0=ai|d~3{`guUXzsi8b5f*WALpz!QpM*kpZMCsbjPluEA2Di zJ=;AJ!bkG0RWi;UO*HIm`Vli>*O87-H(U*J9iK4SGceuJ)=2qlFSBIT-Gk4V56fQJ z=~eXT&ZLa!443%l@?}NOvbZYc^AFlt*+~Ue7JANj_uH;%U3G={I+eQF_U2rQ%euq-dd@zHIQF?8JO(x;j$b!D|3j_EZe2TR54$-}O^!`> z>%Pq%^76b-$h^xl(WV2NYp2F=C-(Pmc(uG$Kv?gJe?-32i|>^?CK}s(FZ%WEgoaT4 zo~YD288(mQI;UuB#r2lgotQG!IB9$EM1Ill<{@!Llge*2UR%pun7lC2u(DnJvE7b- z^Z$wJ>3Pe70#@zyUHC5Eznqa}V!G+ym2>U{o`3bF^4G!LVC65N-G1Mzt2pe}J=Lv#`$7Kf%@+6NtXp@@fAL&c=lq%!1IHe# z)&Kq-dDI*>M@skMeZ#8zN#~66Elx2WH=iQ6^1(fMetvz%wW_~lWS#Fy@9Y&h!^T>_ z-pEL8<&pjuZx+nFer%Ha{8f(`qxh~pD4n*U{-uj)`SFRLORJ@n_`(t&L^?FK26I7}v_8+_E z*KQ;rkJP{|Ky+14iU8DG_y?0yeu2t_{^662Q_Q_`=k~yN6{ZngR z#y&r>J@Xr*={t*=b8MEgA1*i_kUrzDcrb_IYl)s0Qyv^(RnAtf+2HdnrwRKyotld^j;(Q=^W=5LIod=8M*`}?1y?nQSyQ=27Y%kC>NPPFT z*Nf{fTJgnbx7_o~%dtOr^RrpqF!ZPrP)3;Jh{+^KHnvyWhB zjyrKWUe4*21>3cB>HBB1UfJ#x$&YT36Anvfoc%dkbMLL*ytP$(uO^wSzMeVvCVWOq zaovt=w|#+2-^oW$dhlFWhrglk!v>bdowbd!Ib zd)yiQ@zI7E@n8Dp{&{!X$1lGqI3V2N!->SGF27BO7rIwo@#;=DylL;t=*-pk$ET+? zx58Q5b7pdRueYDbE1f5CtCL-(pHEc(86(^)XM1{^o6>&M>rUmq!d90eO(#6Max3FY z)r-EF(#v0Hb1EiXI@MWd=lLr8w?=iYJj1?OLSEIfn~PdSPqr7gU;8oXk&LB;`8~S_ zH$KPAnaQhoq-TMDX~N63kM-pu_IUi>o7^QI_}H!M^<~5UuRTj+KAu_@nJIq|q>%Yh_@KXy%Q z+$RekZTj>}w{f@eicb~QB|`d)7JfnO(hjm?_phYxXYsT46-GGWq^=75Ob*M8q? zeEv!^v8g}CB>uaQTjjE)-fX9Tgl^_neR8;V>(mPKG+&dwxxBB%cCFn1PO)NtW7)Ki z_nLPte6Cyf^DSH5o6KkT7GIpt^Jw>9-sgO~JnsJe)seoEDdFUj1CkG3-II#xZ_?N+ zcgrvA(iyK$YH!}HovCf<+y46x>pHV)4yLZ-zNhEPO`1N#^Wuu_QCnV>c!lx3?0>yt zzhoqvM!|oz>Gm&cR@JS#TASQ7-+zlu)#s$1y|Ojm4LUCUZkcv#oo2P((;eS)BaiJ8 zwOc2*({s6h;{^WeH>GYBPLN%nzgSRy%OjB&7X{TG^xru+>BW1EXTrjLmuf*huq~@!7@m)b!?k+PG#D$8Q$9 zhBbMlv`C#F5w8M|Wp#ims| z3sa>1IShHP6eTG+G49Hbd-Nsp#J$|f)(uCuT#|~v)PKr6`6aWPboIR19-yv^i5UCO z)rU>q?RB}m_{5IJ_jTNQ`}rQP_&BxVqjTw<44Y)zWR37Wn~rL4*VLYVrJc9N-E1cF zq<#o(F+UdxbD)Mot($rk89dhHg;D=zYHvyvAO6*@zNJBPd>8rc(3s&qSAKy z`F-cV?VT7k>0h_(p54~GJejM$h8bVXxRR-(eKYvk(pP&=n3ZxHpVW{3d8J4wt2BQ8 z7KMf9)#K**n2DPfE-TRPtumI>);YZ1cU$56+b(H81DV|Q3er+_|MFbB=@j(%k6F~m zgG)r0Z@M?3=jQZn zd?>Q}{%2vc^bg05mM-b5>d*QkvC;qQ9r24>qOm zcx~FT+syBrwZT4bEnn~L8|rg8_v>XIDs)vgbE(hRQ|PVD*InuPv4T_ojEgweg{$d` z)e3PhrsqAJyH+&hY3`FnOeZD%y0kZ^zSL0U2{RIRs=ie;Prhedm zZ>I#G?^V8CQM7!DK(Mc_`mw)rR?phb6`kOzw%X3_l+^4so0XPLfA&LY@#o$ud4qcu zmm@yOtm7(^-S}a(y{O&Qe3{)BA1i?ptcBW}rRq0|zX@%vjJ90va;(0t=!b^1Ow|Y1 zy`jlGo{q_PJhFXC_B<`>ulil_yq#gv8w**h8f~NY$5Xw|Nar65kNH}2@s{(BueICw z*DlF_a`gOa%MDk~J=-*OPG!FOYknck_*ABHIsK^Pjfd^Dw&y?1lAmZ4cCNp2>d6m_ zBHThW``sr3#T)H4!2HIIhhUGpCjPJVc5?4a@Q-> zy(bJ;tJSv(IGu^##Ij|E9GmvJ>kphBy6Js;>2dBHbqQhwbH4PQ{iPvMEdvKEk%w{?yJnbKm?fD`-kUt>K9&Xi9)Xv1P_(o@Ish+QA@Z z)+QF{&3sTdfYh83G-A|&nv4)GZt-F0ZqaxrRW~!%F+F3Kw^ECMlZso>bdWDVGYOW5 zuOE3R-uHNt-8uoM4we%vA4)!(1kS3RQ@uC&hflut(r-@J-2dJN4QEGtJ~-@Xwf^3d zdFgvt=dBglWq;$~wn=GiC3OCZOPS7 zy3Rhg$KuvPKdpGJM_=A1oVlOAckhHtvmF_jw!i*iuw3KQ_vw&9{z?1)&M|y-Bkz>u zxu@%G5AQ!(ac+5`bgACgZ9%`BIC(D@-CA*wn z?2^8beht7NJ&31&iU3B~6y5+Zi*K@I{ zmac2Ii*L;SZC%-u`eT$FTbkT_uO^%&^8C?0eKm5n0#eMqnAsgyjr|Wmw`##WH z&hT#5`ezSaCdh5R%%vy(uW|p6*|A?V?%t`kDA1|e{qn=|Njn4V{}{qY-}f@8~zKX(Kf9j`5GPq}}4KK;k0 z#j|X^t#;IGV7*^5#lOQc+wSQVmi@1%97_ZxH4eoicSM)0eZmrN6LoA}{`wD3o3rjk zN?siZgNNdzf_o)arbJr#Ecat5gYPjo40Q7Ue|c@?1I>*nO4t!cQ1pT)w>qY_{1fzmx;3m$ZdaUe%o_9PyMm#t*!H>Z~w4rXY;XZCrs16a_JWV`DeL_wPmL7zInenwa?|dgX9$G zwh#9Gr@h@RcW-Qo)fe5U`CNrJZ)-891N*NTt#f4*`OQCV+mQK`b=R%emY**9oxA&T z*~Sk7rvGoazq+L~$4q!aldiq+;{TkCk!l`i5(*!;d%bHsadm<`UkvZg)eG3JKgg8i zD)`+|78iP_@R7qBqm@S*7rcHJ@K1Knq?$87Yo(6b983PO?);T?pn?rl@;L4@+qY}7 zQ{B(=8<)R4IN{KvMYV72A2^67*DSwmd_nwWsPtw@u`q{pKeu)#hl`1Z_O+J#uSvuO z^^D&OK}$m@>@dw;Fy>ECaCaP=?sFE+`Wj4Y>3 zy!Bdc*N?=GsJm=0xF_uSY9U|0dvd+>`)POg)dlg(Jh%V%Sherz_kynp%yG^=#he!; zmzDh!cb3XtS9{9+_u3nEu?N-b?>JQ*W2^hzzx>9oO!N10aW)}x|7*=tQYL22IK{+e zSa$29v+DOBd4Z)Hre28;|9rDK%S=CO>8rhAzZwhT#rJJ|cGcySh&JCBEQ8n)udC0h zWF4>IxnEjRH(&IAG~_A@!^ax;_^Kvd@{~7}oYZ7%&wl*DS?R#X*4^yv4k5>K+Fova z8{fI^naI-ha~{N9v+JtQs>=Ewm0V%fVH;=itajf2L&i{*#H%L9+A)WKTO=PR|>8jc<(q|;t zx2JAP;QD$&zyF>P=LF6Nl5XkeRPx_4`Lv1T_-R}1@1GZuAF`+B|Q! z;rmCiH*6f+?j6Xjo7;3X^M&EY9U0vETIHF2TU{C*+x4!T|K4BAGFdD*ApGF&Y+aVy zvtRf{J2zf#x|eWp+Wgi^gA*#28tbgR<{f5fGm%-X`^8>HZ|S+5<2w&E-J9TaEK2*> zm8WYY@A$22-Edr-vn}}Sgj3z#hf3~$7c9AZcz1#7%RZk=)wc_NGnL$bfBexFKHnLd z{j+vlPe1z3C%p7|VS_>4zm@0x4(3^_F_rALQPvOZHE&yP8YdE}x3)0qYF+3TUyI|rDmSj- zXtzmo@7UNWHNXC|ear&eQdw5-$2~n+z3T24rT$;+^Zt0eP}o%Wvv$(8pVu$PGAul} zpgo}e&Gj!U_k3JlRCIY>-OBry`}NKm$=L9?tvTOX*uT$NNI|!qd8+M|dDaKt?M;aN zZ8h7w*x=XigLA~J86-(Zbgy)o&p*W(e1Ttg+`rGC#_e{N|3}7& z+sDQE8EdVM-k+!N`=yPwj>r=GCF+$WL7}T}pZ^l;qoU6G@%WzX$o6v!W?xEY&|a5y z?_M2$eZ0iGH%nY!s{2Ui|LnFXQ)TCFc&`_F)OSf;NzvT6mDOc502>l%iBLZj=Hz$I^X|`b9^hlEEN|H>^o`D_GjIe8nuE@@=Ms0#Pu<=B%A)p2_vUp>*>3|^eY^K4BD3L?kbL$3Eu~ME z^q!Kq_wUNZ)KGc-OH#|Pz6)o~u#9NF9(m~Ba<#R`EXvf5)QH&H-G^_e=>KGDx7cW& zP1O~BSp&oa^svZo9qMETC9C{$G|3oA$ZsqIz-V7mL|tQm?g4`}g(knq~JU zdw<-<`ob`=RBVIg{;8K%-_ z_e-nS-G9D4ystUb%f!nx8unjr(S0Twb24SmoX$$F^(U@amwnouZ)~~uq_1Nv<3Z*2 zOiinkeFt}6thQcxH^lk>yTyBq!}SdWKDULvGo01i@;A^@`^n*Zr8aY|#oxKc~aeZ~m(Tm!gly+ia+~cqG^S zLD9qbO>E20Hm&?3aBk1{p9SmtK1`}Tyjp&dZJYQ#`>e$mAG|D!??~^V?Oq+j7Jl*=`$?Fo#L6ZLe?lw-$mp=c)|4w1d)lJKj z-h39~XgtdBqn3qNY*K0{!$gKirYb(8)Tc?G|IE8J+fJmZB!2C}*!?okg=`nNyU%E_ zFJkZev|%1UxBi7^fd?iyc}?PTN-UAo_WXWl!9`IPk$w9w8`g+Mzd!J~VXDDFcfDEb zt2q~+=}Tq5BopBryF*mEukqx)DN9cqY}NkGmvc<16lZ@p%RiGZ^NKv-rOM-%x-JLOShQhwv_Y2-F=)Q7yeSgg|rdOraCAL>*izmN%`(SswYPxB1RLp3mQ$=oe7mul_Ce`7LE$Xb<=Dkw*&kr8AE0ot{xG zB02xd-TZ@3uP63ce>BWGqt;c}Irqu&?HS)0+E^{NFT4DI$NZ4xrAJ&=Uz3=}XL79D z?UK~;(6`~0vvyRRI=<aMSZA0XYq)Z3^3+bL|AErSuP%t+ zBoqBYu0Dg0!O<#f){DqZIT>=!9J)p9A7WA>&&~6a4|NAGWPUs;$1Gk`B4W`Er?iQ^ z+3(*zS+KunQ?B)m&D-XjUZ3-1&LYtA=cBvD7x+gx6lSt7H_uyoG2z%N56P+vJ200o z^Zzw?XZm`1&q1$eP8t5u=RQ00`)z-0(0qDl!h(h3M`CX`>V4OEd9l$X*D_n?>y`NL z8=g5x{c^QTQ8T@~?UrTH&vc2ZV+X_o>wgtynyP>9wg`(m|8(>F&9(VYI+p%VVt@Z` zo_hA@sIZ_vf$Yn@zkOUb$>-PUkJFm_6kpwV6?FOM$%T(|D&D?yHTvS6d_8yW^3;%- zMmJ-w9GQ7&t;wsiDQhW~Y?aL26+0@{T^9!=r@1X(MgUNq3O*Jl#lskI*>U`0n z(ii+E*Q~NW@=SE<#{R;l`=S4Hx;Jt{JFE=C-!2Kiv8?XAwP)>|V25_8*4_>O=btx+W(=1hIVE4gLvss*Vpf2Z*834MP-;&64#tBQ-k z;zzT3FGnSPU;W2iyWsoJLh-zmf09&^&OgvcVz!aEn}U# z@TFeojPEtRGIb9v)^V=s4%!bIt@D~Bd{jpHt3PNpEoTBq#~BN`SD*bZUE|(2Yw?si z*^WP!PZmFZZFTP1)Pjfmj2;O$u5ORW*YEjNK4sgzOpRY_9>Es3e!TxD$HsR`n*8&5 zf7FufCRXXU2spWT_=!Bec-!kGx2j16+kb&2pHnzz$E{qrS$t)<6NjRU%>Sxg+zOyl z&9G@b_x5{@#+n}A=NfEt))aX4Am^LruIV=n?6?vnKQgw?b9X$m-{RCp=CBfm7Y3@n z?hn%i!GlHnmot{Hmpz^$w;nVIwKUm}$)@nW?vXnJvF}?2oH~B`6fK&;uy6fo%VOK9 zkL<-ZT5x(ys#0wcaLSkn^)inlzd6_a=eG{m9eQE$DaiJ3ZDL7lJ4gLLZL|7lXRk@^ zzvg`Z*!L^rg7C2yKB}rGO>|x7_wEUgeo~ z)^UfP@!Zomz3};;<$o4#WsiMjWEOwZy(}ul+VQ&YDz8_W-`hOn0uTJ#G(Y+4l@H&R z@#$pR-TCKZw<7w?)3@cCKaPLj=qi5by4TZP++W_?AKkq^@`GvoqE`{zvHuKCMrQx` zf3y1ch862fE`Cp+wCa=yuWNa@uiFmyE6lQ8)(eZ)Jz#M!?3-YH(WmF4UGJ8O5~hnj zK3*|{FQdnBTUTd-o5yd#WUC2%lP=e7dD)S^WsmZw7MBm6;+1SOmPIuiPq`a>Rb8Yc z^w7F_PyPiq)LhZ)>c18G;FoQ`zth{j*W-TQeP6Zz+pX;N+9%aKMM_wj6-?!lllAsg z6si_VO<4CXH8)Yn+P+GtHd#_%CtFSLV(-?Ieb$#e!aU`QdtWiW-J!F8k;!|JuV(zW zj+9J$7w`Bh?_ce|mn$KzlCU~#oBz|b_2B~Z_e{BNubZ;+qqWOvJB}|8N-TEP=7^uSpL4jl|NYZDrqd_c%2$`v zHU6xTKDNfhXw#yN(;{E!8v3{MZu(^T>!zaF*_?-aQ&YD*ee-DUdA>>3SDh*gH<#ah z@hz%vja7SDvEcifvI$3D70YPk9b>+5u`TcEYMH$|+FBY*T{H5ZrQ~ty7JrWXK85j3 zxW?UE9UGqr?EjHt&uy)(S^K&Bfxf@4#Q%~Voj3nz+5i3`VZC`yNX|+bgHD!e-KDFw zF6P}kZOwc9$H_Zlee10}z19DfUao7sv{vj<7vHCI>ANFV1Cjfyg*jN591R5Q0u9(cn#4ZZ8ftn(^y%gs z$6Htr?EiOn#gZq!=Kgc)rpMQ8nmc87>XbQKwXfBKgVd?DfcKS<4*=jrQDIXV?9_a=Y!P7_N}( z1-F@BOs>#Tp2iVx{M!2Vj$KOyHrJWzi>U}O3ZyE1KT;+(OUXgFJ98dm`Q%{1N{(Ze zzbuxix-n!u+9W1;Kg!v8|I!n&Tc2lK`9I<4=cGVkN2haK%RJ?i_bL9o>Kp!7H7e=( z<{i~FDN7ekubl0&)IafI(@B?%MTTid78czo{Fav-rz02`o68caz|`oVup?X0F3{lG zgq%5X@qM98q1TVs)jSOUZ=w}4H!tu0md9OQ2_HL~_v|>JaC;g!6+UL&$g%~@YTDqi zN#;>&sHugOO~BqZt&_d&R%TX3H-6@+ebTIA;k4BDeDO|U0)2>(UOfi_5lGbtm zs>hZo*B^SuI@gE@O!caI;ed0XPx5@RU8Cz`YSDKV_>Awq8pEvtyj*r&<&AaVn z`TtFS^sU4sX&r0ms^{nWr9|i5GK!17->_HMhL2tDvVne}!USjGM!i$5i-ljL%H3I; z7qYRXDMIi50`*J$bui^DZ1`GYMRpZ-3>&%Xe4X7~d+igQDHRU=_!F4GHBJ z)AQ0dzYKqKqiVvec=0=tOuNMEzUrGzKC9|?ivLa0+p3P}56;uxpEwf!Oc|734punX zFo=Oo5D;78oBiW>x8|GZYbPEFcNgaBF3?KXU(H_Kar>s%*+}V+kt<{QJ407o?O59U z^u?B@SFHzjy zp)BgTXG*HWrYRfW`|_Xm7oC_CkgR|DG3)05J)Z*e#fOA%%y^%3_@Z3n#{1Hqw<2`s zd0FS}%6c$2FUl%JV$p}yv!nL%S>1XkW6rasO4ee}bFp|saSj%ygC3x0Ul(wE!ovt==Z`4>x-171GP`@+*B2&bUlm%tAflsU=~?rsi$e!b-B#KAQU%eA*++nX$WU-sAkzTIL(_foy7irW;G@ zrMB&5-+6^=OL^^b?@teQB_6D~*2bRsVH-=iZB{MQt#530nMI0Q>m5UPZhddgE_*g+ z?=`k9iJEqf-Z@g9e_z!Kt}Hg(_HWXs&t)nxTSBG;uAk@Vw&>RSJU5l|YWu#*i0kM% zJSr<~{_eX<@xt9>nww=;UiM3N)$J4XbO9CF<=ThTxsK@z&M3=KxEtp7F?ubtn&pqn z_A6hi*q^oYiCxVyD`U~(kPDIzTsXl6$}xjSya`|yOJehtti#5ttfA@B*Z7!UHr9Oc zHlDd=QjXVlkq>YD_+RweY^!J140L?|PU47bawYSsowqyR|J~;PhUeLAzoJh$+Wlu` zor>FTuDPARxFlNceBQ?evnDxR`**W$-?^*PJ6>wv*rL#Xw{p6{-r0vg%{)5AZkJF} z&ysYBi{_R`r4^bE8ZOyj^IT|s>iQ>5QU0HNm~Y+twKgo-e%svCoqRTiCv9Slrq5u^ zJ(CdIIrq}qxY%oI%QpYHd-O(se0sdvG%-d!2k5gyO%fC zR!UcdT@ti+*QwPM;9zM=RH|8&U?V*B$Ys@;dp`IWiW-04w55FA3-|w5E{AWF>a#AoJo z?v!H6S{|o!rxO4Ca{Tw>xcw*jjY)F#27*>=Wt^^^G7z%#?oHh@;r6jz-O?TsS%OwB z9@Ct2V%8^JK03AQd*q8PMjZ7kc<%n^&r%|#rM+RYO-7fFQMb8tkmOE0_(iv&%`bHfPBeKkfDlnW+N* z0xUsciqQO}@3Y(F-@D`kxSCGC>HTkeC6*(*E+@uj(c}C1Ha9>2ce?h8!&19_!d4>= zOYP$;PW;M#|DQYZv~o$5Wy_kWjwd3))DP!W3Ex^a#q4^H+Y5P|mQQtt#HftZa=4lk zk(O@O=cIj)2wiB}pk{47n^RbA!NrV-O(~u$b{ntz@$0hx%Qb6R70k`2zps5?ZS&y( zv(5iMpB3NT`~iu0=jIKU4?4dn$q=xTwE=ku;;8-&7Z19Etb;kTo$aA;bNhwNrvjV8 z*c8*Ba+pWn7oW75i-mDR?rk%_d0)=eO;G9le!qVHiWM4svQ{FG=JnQEt&e~HZBJ#* z{NlGFuBCV&E23NE`o~i@g7oV<3~h_VBaROdD?5aj;n6BOQ*2nbrq3bpvL3&M@-QqC!vAZP{7 zbD-#UI;ZIP*L@5+`VpHpYLq5)(!5D+0P#47cPFv z_5Ik9fPeGYuByoTeN7=gm3va5F-~l-gx;yvBb)RV=kW@C{`gE(EY}X z2TI6U(z*FV=RxNeTVN@&W$~J$%n6P+HYFeDOFJ{;;^*&QUS75=c;LWMZL%-G{)fW< z>&N9cD`<8eZVXy@G>ZBp~i0Fke01MNxh#q z=1asNQiA)AlTkJdVlBGS+w-12?zeyU^Y^W-*^drCS$w8;U!hl1Lcya$QD0#d3YF~Qq0+6#4#6~h#(G26|^(_fr#_If=OR%yXFTf zd^kM+|DSZTygMG*+1lyn<~-bd-tO_CR&E9rb@k#02N=clVmv}ZMC||nJnww_rlC)I zx;iT>>z#eIvxU|DHk`;(eRRiiAHR)NA`}0g+xtH*{{PYb$G$lIeTqg-uv|7bj1A;4 zP_X;K@?-Oci)dw|^ADF)0Z5sv@MMk5Lyhc@Y#S8T?07z}`p576|EtfSZ^&ao_RQ=eZm>HnYe|9KMqkDGz6doxZy_hfOu-J@S$Uq9LZMd&?q zJ;T1$K_8#j|5E?=aQgm~b88}<&MCV3rJl7 z$`Skxhb2~S?9uhqzEQp}H{_c%_nqSNwl*J+2%ni@*vu|pGof2t|I=CX`ybwJzhCt6 zk?S)5`RDHcdwc)Wm08;%2M#;x`CBv|_t`(XYPw4_{SilvqtLw3g%C>c@Vl z;zQ@d{N?TDWwFoR>Uf??Yrkpw%J$RsZTtVV&R*jl?e;KfwUg%af=$c^_sJ(8bo-rT z@_u5_M*kf*`Qkb1H6*y4t~LICFtKO(Zr5`U1?pQasc)NmGTk%C?DsmpFV1_vs+SZ= z&9xHi;hihT|4-mp(;D~X`-HQcW^HH55N?}n%y<3XiTlSV-kw-+<>duihJU}ruD*Yt za&pZ}oA|$_-}`I!{dC;-`|kU1zrQQYw*Oz{AY8vAzWjW? znazV4ppWOMI&l(*z_kfYmY%?BNe)A@+*T?Hy*KU68{`rJG_5## zKJDdQ=f{2f;_L^vUcRfhwAued!qj}%)4b(b(U#Y9wH}F|dH(R*_TRrQd}HHVp1xTn z)3km4F1BAc>Tb8!{Yx}(lI3snYuBB-HbiuK;U}Nfj|$l}mR>%jt|eUEQul^!F2k?# z@EiRCw|O}NZEQpS=4=o6Q()#jDQ;<6&$WBaiHn=P6uzHW{_obx8k_d{-;QY3CeNP| zQ5vwDSIIr3E8%9w#N9k9OE$Lm{C!*hXVaN*%erOZu^YaI=XjnyB^wJGPWs zpSOQwd;fn;8p}q%`rpP}k2Pl$y$d#$%{J{m39Fy?UjA%Q@;-U} z(;xSyC4Q|o+422e_0O~Ub%*ooe@DyJd~jrtl9u-L@sVl0b~k2yhNF?{0=5m;18{o<7gr8YjCv)1I#dvfBZs^t)d+#Rm#s#excj0@!E1l@2<73F{KBNO#P`dUzBm$z209p z?5=#~SGJJhmF1u3*Dg8N?96ekjcU@Bk5)!B#XoxI{h>7K$C11y>FSpAH+a<=zvbV# z-7j#vH&3L0dHag_dZ#O2sW!Ojg>0Yr?MlHK{|wH&I*VT{CT_o9uK)b%_>Cmtj*csf zjyAuY#p=IkoBtc(#UAfn`&Nh?+$@v*zUU`*@T_5775L1qt=pgHEc1ik!5ZuS+w#AtJALkn`_Hv+`utYi zx9Ckf>ngWPen)9Xdgf4G+Us)YMzYTNgT@6KF3|LMSD^&fv;yS}K?-v74o zcdEZwnaB06h^=e*YX3RLb?GF%HIx3x?X%%*5@XQ#_do?W&vYwuJ~?n@79c(<#_ zp8TmjBhB(;^;9z(Lrt6C@2ZTFuiiL&T;p!$u~!Ulriestw&aL_yrgpC9 zc;w&eears~|GziyjQ=VwgG?!nf3ss_`e&V<*KK)3(`0eRtu2|h|L4z|#ntfe#YMrb zD`)TQc*;6Cu-t61SN+V@zPvZA(*@Rk)Q?^t^XAX?xBs^;U+ZwZY1V;T^U5A6toB`~ zDahu0jp5oMBOS@g8NdF@&5*k_vn)yf-_{e% z9+?;Nd(U=zvtQHP1D?oCcw2BWrfi1t(b7B99H!e$zcWeZ(d+H(Db|;Em0aDvrgnR- z(T$arPZf^aZ+PU^TK7!p+S~d`EUiLI6K=ee`|T+0$$hcHl;fcG<;=D&)?T+_fIq%MH z6jx(-%j#{mjW2h?{DnUp-ILzi283=5itM4)pdKs1zS_TkM@rTy0#g|->z2M0wQUCVbtHGRXL6xEMc zKfPUAUjFp_S&`+_zigJ?tF}d}XVS+l*MxS+GKlv+{aSIsIPmR(s5tlA!82VR$DRxP zw$GHeN7Pv7ID3!s%mAH?o?X3pdyn)TKRw~vyVP3uh36~2W@HNa%{M#X`Sh`L#rm&) zdf}7yb^9wl-<;mxEBmkL%Oc4uHdk-IPn|gX7w1#?Ef3gE#2)^7!t==edhYD?H=ZB2 z5B>PhyZQd~9j|Kat1gz`(M-19!%=TBA>nDe^2u19r~8Vx&kg3^7@F3zgMFoQEAy#i zau3e`p%Lf(AIydJlIitGiIDGOeHVfe?t+<5cO z2NDtfxA$$G89Tc@`0#|3Y$5;e*1Kz@i+=vRki6nd#Ct>gbsut+q`TTZwN{LF&}P1wXiR%x^1fdjGHaXAvdzD6PedoQrGnZd6g}nHp<&EYts(3aIT5pU+0qRf5u?Z+ZBiJs4(VU3EgsFipisD zX%$J!e;czuugwxKVVG%Uv4Z$tiGNo}|HAI-BX(r+e8 z-FiRgQQ21B+E@S2{x^1JpEPxq8t2NFT)jdso-HvBY;51Ze%~*x;AK9EkB)S%2+`US zrF-$>MNm&W=k~VTl-}|kg|}{Rh+X|rOjl^KL54)gwz!=thM}*|+nnraWw_nfA97EU zJ^0$HBNidDr81g%?>7HgsGeZ!lT`HDlTRl5$V&gTYbB!FW;36E{G#LW#y>lcTt0Ml zkMotS%_0XZ8A>GmCv7dV^Ivo3fCT4)Ll*jMq3dgx95ebRdhKyXPx`eci(Biy8r?Gb zzRmvNlwyT#&bz*utrxxaaE{&l<2Ff77(g-EaRWdf9JS z^!p-LQTVaPYwS*Dx1M#3=Q5sAwo7{DRz`2_1!fESyVUk3*nP}WFq*mMucb=)-XpJf zMtYvy=4LZdGe_&BOu(P-JNItpz14XDY9QY?qoi$tNQm>ViwZrs@*UbCB zrS^Z$Gg{sM@1Jh}o}d%bs+t*$LgJr)E!Us?yXgLn=Zb5$pFHrcJAdyB`***Ti(FDU zw%N;gzFRa^lDlf={i}>u7CL!qB=IL?d^6XY*TbXh!5g#R(%@EUlvE*eVWg)m{{-IR zG-J+!nCykQ6KuBl&nYUA^*{aV{CoDa>oo#Cme#BNKi<oK?q*fr z?O?IZ>5W~Jl264eJ9v6>E?v5`=I7Jt3?7pNO4z5v)&g8fzun<6$G7Nf;=1rH54tiB z-eH;i$v2}ryQ*yBlI@5rfsQna>Xa^0=(recej zbF4*Jg0J0rk|XxI+v3x~M7=Y!?|*$g|7Y!isufG0PUVfet9>$gE2q@0@J+vq?tebA z{%m5M8%t)yjffi_p_k_y%y@c!g`Bd*(j5HXYMp<|F5}ij^8=Y@ZZ|0So~*yNyTmXjKj(&=42{K z8T0M!%-qaVaZY3PZO5yb4~45avfcgxaOhUE+p8ta-=N%o zRZ{Rq^5+{B2cjpu{eNtqev@K$f6w{ANH$A>`0F3llg`LLc5rv|lsnxkC#A&yY2o3! z#c%&zoOI!QUQ5!xT8&4U@vXt}WeO)5a<5J`S(FqNCiL-_NQwN6oeA3}zbx*&*!bnf z!fR|_>>dd$eHOuf*6n!Or%TIc-mU-95x(`#H{*Hc>1Q13AIS8kN%QSxRktz{JF?)_ zj$*F++x`j9>FoaXYW?16m)7!1e19$+8{^`6ljmF7*WTKawEWr4cc;I*QM@3|!)4A} zYiLoDb&pB;RIJUiO1t9i95v5Nwryuy@7y{m;E0?-$?w&DA&hyqYDDyH`8Wd>cE2%g zjavNq*IqvJcaEPf>?=G~uDEUe|B$ay+sxgLt>b-`+`Q_t`D+9I3XWp=dQ*MY*q;Zg zX06Ijdwn5GqCRP2@w7~1HqQAt|3tL-iKK0p5 z`@Pcp_p5q^pL5=SesrAuf2Zs7r%9Eax6@OT&N#l(+AH`k!17phpGNq7PE*H|{MLJN zS1b;>@RL=vn`_5~)aFv}@1LsN&d+0fdeyEterBO{gq%^tS^=9o--`FAX5VBK_+pXI z(ej@8!TQxVzyG_g^Cy+dIdbdG``(k2zx=*q7r1h_*t?gL|5g{=En${>b$$KAoAd6+ zT39Wpp5=Vxi_E4;+!gOXC2osjn=0kdt{Bw&I!p5DSFK6qvjZ$w?J?H0x>c~n`-qEX z_MUxzzujK2<+Wm850CEr8QLrTw-k0)6s2da)OvHzdD7I!|9`Ift`NTPQpJDo>-C|r zN=4guF*1Lwde6U0v+6+G<%jPAT}r21Ke$RbeX>mEv#e6pG#P=JZdHqlHt|iHv(D4-r9h#UmXA4`=wN}jrmHI?z>mpHSa~XEOyS*o3-cdi}SLP)hW08W^JFBzM8vo z`JNeTpDvg+>DZ@9S5X@-yi#7u?@|O=$kALs8L3Cz=~q z?p0VAA7oij?UH3S``h-)zjKaVC_h;{^YiJu&Fh(D?CXwq&!2Sa#i__To4+4d=UJXU zF5LL@p#A5mcRt2{|NE_Ie#Nr+cNRG>xP3@ntNGG4f6w4!;FrtfIL_ewi8J{9 zkCuPlnI{czZJH)M-FfBv`#bxr3y&<(FkPUwazTU2g12W5gxVdFOwB#+rS{8mS^m5m zZnZN-FFaajbFe!0{o}iOza^s2P0nC`;p~4-D4<6;rYX(3%2*+8>V}`v=a-oTeR;kk zAot*+ZH_5co0qLxxO~BTb@%_l`-`O~MQpK`zq^JdBseU&_Yz~S-EPY(zb{4W|LV7n z=cr%7bMVSb!RLB*MdtVSd*5JQ;oK_q^t0IiZ`ZHi-ZJSh^NNmdg8eJLWK|_Kyequ@ z^2@AW9=cY0#a7!#U(oma=)I;Vmb)S0WaRb|{d|#<+GEH68M1En-s3&%^wrC&e#^;6 z@IKbIH|^Z_qx*A8@r=YH0e5qMDy^`ZyUKZOXTqf~CYOxVgbzC8KiRE!ce>)!V!QL& z7au&Y`?)&#-qzESQCoJ@D}wuV0rS_}Tonte|GyF{6WMoab~PK{q>GRKy48Q4<|f|H{Akmq z3-e5imk4;o`EI(`yfdAD>l&HG`TNhdGMro3dzDcy&r+o$^zojT2X?>NwoUuPyH>Tn zFEh2)gHA$ zHSPBO6cSv`dTY<=i^rRmr$5{LXK(1FgSqTCPIXxnUGprev(rD9v$!Ua^Q*GObJ@t% zDYyTC#+N8O=Fow=7muVzWLd5D>I{@BIwJfcyK}n5X*}o|^RX zyR^xzot1x5`n$T^;aaw9>xq>JyFD=Ud<1x%$q}r|%BNvslzIN$MY* zzWGmu(Vv$h;*9klT@t>1*{3&?$L62)e%m{xeFqC!Be%EuhqM)Jkad*Z9s4h2>MX}k zzQ)(T%PmgxlQVSgWMw{Ly>a#Z+xA?_=6dn*5AMo&Sk*nZdiVO%U%kB2yUe$LdcBgF zTp1x>QSBvMb-VFC`+?ewwTm~&9q@e|Y215v|82d%(#M{1uTNPrP5hj3+@g75g%0nD zqpRz38{AGS7nj8RcpxI$Q1Xu`Da!|)$bRJ;C-zB=Zea&N9Xl-mE!S$yM@=! z+v&cvJZ5P;fAQiuufIP#_dUq{T)-#Gou7a0jjv0p+$r&yeeUs;*IN2fT%F!MFSK9( z61?qzojv2F+Lu|{8InI3EGF#P zHT&Mq_XVFP9L#Dph_J2s5LITL_)s{N<1+h!{ZIea&Y!&NvAEBxzn`yfU$O2VGv~~e zHXklHrPb|iF}JIl7_YNy{;R|9KeV@(O(?Lx^FBR#$D_aVT(1jf^)^14qwXo^W^KrA zG_&N5N^kzW2Z!#cglvmixBYzT^OGlQ(=~4B&N#h#L)_}c7ndnje&_eRu%dA7-7~vb zV-wpK_kB7fHK+6Q$=FqACLQrw=rzZ8*1evaj2|u47G=KJ9P8Kj^E~UNU$r(9Oqpwc zTAq2$J@J`K!rudI6Ekh5t!TUT@AvA?=me+G$aZ$olaYmwovz)r(zRSu6U6UwOnABc z%ACK#XSN-dH!aK#|8(M}lif>(9sT>cBKWWR%t?2Oj%%%qmJ}90p#H4!WqWD5VEcNv zgue$EU!`0U-hbF-@BCtuyO!I|*33|zepetpKh==-uFj6ADcbhN$9ig9x0mtEHFqJ{`Y4_>TkDA^LXw*dFTH7AEq<*$Ojl+ygwsEVCTm#m!2K`&Ut0tzo}}CZ?%Lxs_srVTbnrGa+l}6%=V!K=Xj|WzxLKCv2XFlDpF-Oi9{)?;V{$%v)0B0h z8?z#1Lq+319NEM0)TYbO@5aTd*4mq?JHq#!T6SadzQaIHFCemQ_UE*C7=7(F-@^a-@kmF-|bU-?%Cyat?K(;XWk9B+ah(W{DS+b>niUa*qfEeeU{bc zRd1VQowml{)4$b!PyDj>xpLy@r=op%s;r&PYgV&pUK9Bjka;Y>R{hF~-r~p^Q75gp zwpS(=%3c-u-1upspZ2AA({{g&l}G)~)HA%B@A>hz{WJS*YM<`D_e=A9>(f=gt%F@6 zC3;8EX1>qtY47)cD!yXD6gmAUd+_`xN0mPty50Kmq}gkond{_lF|Qh)rm95ChNi#X zko08Z-|CxJwjQf*(VV)a(s<8*qemB+R%xnD>OD9sT1?5LFy+ieMmIU{uMc;nKKb#N zVRpE0>=EzZ#vRKiu9m;@aK@xVo9*L$C!O(`$PujOX1c&^Ql6ChrgxWKuAUwp;OqJD zf42g|7e}&F$JI)lSHtn6kH;d~FUo5;e+A_@~C5|?}{u{fUHqjRRyU3=>X&s6Qe?Bf&jxaY6XSSYnyaC1?_ES`6# zoael&NSbnNch`@Q75^8sMISN9{x5aOX~&$jo-;do%u+X(th=}R^;AEe&cFAAzSYWR zJx+?dGxyk%KC3h7uN5oxW_zV2OKjPz_v>cwfqk+zZ4)-jGA1rxw}`bv-S%tW(-8Hl z&wS}mRb@IEPgRN}&-rk;b@$!gCm#x;)#6eGq!;+j@!hmP#_!zwzKHs#@4bJ||0|gV{kJUTp_;KFlEdF&&Zf*0e`?v3|JbTvajQo{^ z(BsD0$K&EoP1M$sKB05-^k(iy3s?5}>uq1)bxz@XiCkveft-@}7E2es-2ZE^JR<`;qOe7uF^3#-n;Ytm6Je>mIlNpb?x>o%{Rrn)l0P#i~YZT=t>8 z%Q)|~wc_)>`XJM*geGrB|lF&D^pwkWts>lTXNL723vEFP9$f%UZ=~Dm1NByYlU(KJ~iTLyuPO`~H7p;REdha{cU6wKhC8 zyq|9)X;#FRnkviH6K{V){{Ij6f6CVcU#;uOKIFOlxV6)@QwmRHBp#nt?@Mp74{6J* zWm|appxX_;Q~@hli9_;zvTjG^f2~;FtFm4$%QtC_0%$!4Xk}YfL5sai^q0QRe?C5) z9?!S(?uHuX2!$Q1Gxj?D{M9@|HsOpH*X#EEOpXDW>z{g*$ytB$EBG|k$xFXlA&o85 z`A^xDsI_Y5=F{`{i+-NX!qn(cP_7JJx^_suFWPPQJTos-(27Tn@D}?$zXkXkSepct zw_Xbjed}PKZo2dHk;m}|V|_xHUUEMwoPGY|L-yVklZ+$2zf*d|6!+=_U;h5TX5C`C zi?*5`=zqcqvcSMk&@K?Pkd5gf|8eETasJXrXSFye2()M)lD`*wNBk8Z2TQs2tCy8~ zt_r-0<6!yZlJe$}c-M;z6HQkA$w3Bx#Pa{wI9F#_wM}+ zgTzA`UyUm?)U!cr;(E%D?eYgN-AgbL_*d{pDcoPWF3$E7!nU~`<_)0bdIotf_#!~2 zf^d$Rw7>mdlb=6-mXwvX?I;H?tkY=!&=&bY*&IT>`Srd&RfkKD+HQzp|NpgK@!eeTD!o&%1%Zd;xj>=7a7g~%+79*uk6Bi3?D;>l zZbF)2q;o;I!o>;G4^LWRqt|&}l%oc;c7>_ne(m>(@d&l?OQuNLo)rkM3%~F#d)t6dqbC6{IQmA zOfU&teN}>otxwMO)I#U>j*bqF(&;RX7j8P7yuapI#p8r;hg^$~R%W?r&y?)DFXQ`b zPW_bix)K_y>jUmj4|Mo(MBwsGuh2qC_48Yb%)M^4rF%>6y+I^VZVZ{Jv4p1P*| zR;ER9)1%f(nRl8t9$WTo+I8LH#JkR;?AyPWYcl?Jw&ywVep6-MLr1;V)n}aFalZ}G zJM(Pk9=6Kri~h?_8^u4}A@nWP<(I&LQq6`B?OqQT<%RN{-+$@O_quYk;7{h3Z+5?` zjYwaA;`z_etvjq{Th7@x@6*AOY?&h|2D|=!=<{3uV8hbwe{QXay0P>*_j-XTLEkn! zmbRWQ_WVOl9CJ{*ar@#Gp^EYG?C)W{8}3QF)ZBjQ{7~AwC$PmngiGACdvoNZEpw%; zztlZ=u~q%<&yxa=S8q70|28C7`}re~JN3BVeZ^mxJxSje} zWCa*rNzD7VqGRVqg`2Z?Zm1Jq|JLWh*+nXU_`@ZWf+P0X%hg`t_;oSr^v5?seRIq= zeqQO!MN}98{W+{UmGa z%uAtyM{1||_82^4V*T-I_4*xkf34gW8(xVOWN9^%I_-B+VzTEgg~nV5p6mI2VzuY& zPhA(|nKCJS#rxA4N;OFtFSaDwg>{IAR{5s5?95pCE#XXm z+c~zb%iNisCX4o7Y+IO~Zd$lr=9&2VJC-q7I?1oAI(t@@zm5&$DCO~=fA932m09l( z|1|He(EXnKNN=5@;+;4CD{2#8AD=P%z}+a%IKS+g;`HONf^cKuO2PBnwD0J7D6I2d7j#)w%5Y-#r!ZTd;;_wnHyv8sjxPEu zonR1cb>UkSW(w^oY}?y+YFS{;J@LbR`6VhgQ$2Utv2A6$G%ZcYyf)|R z?>FgP6>oERcJ4o?xX@evD|gstJ>|9zjfg$=blMyH*N1^Eqk@nf79kyCj-ip?6_Z*eRpAt*0S8uSgc@gw{^E#E;OZ1j!+t+v0Mz7wX`?6zx@`1at zX&bK>R$M)<^Y2Tlk5oZqoonVj%~!eLbs2Z}H+^wrswrL5`6Wbj=`^#L&izkXV=6vA z@_J;V5PSFZtwSnhbzf8rJ+@2{4UCEDcMdWv^y8b|ZFKljqNlme9i}hZ=AR!ui%8J> z_?jCW$_bKEW@vYi4&uoPnfiu8MBV;fZS8*S_U!x%zX> z-D^&tCYDzgikYm5KKbr6+q}IIE~mEET+7=mxc@-Q>l)eZsgv|8 zz1CrT%wyBB%g<}d7oWL(?#JZm`7>3_-zHtH(iToX_IS-UHOF!ZpmDWy40XxGRKRT{{Tb}T*J!uWY*Q0ByYBcj}O!^IKU4%{C z?y8qSw<5!Z9mK6HiIxRBezt{H1cu?cCJI+u|?U+(i(O{y_TAg{7++Y|pS;x?7klaV*6DU%a{PIo|N1?DXKl4$ z0N>^ONmJdKrpC2%b((p$I$e8B`uWw#R(5Gdy)&2IL*0;Oqcj~N>*SWUm<#ty(Hyf@xSh!}!r0rRm8>MGN z@9N&`KL5%7lGr7SmHUo=dM@P89sZdw@H*e6t=lWtZs2?V<)_VF6S?wQRrWHo2U#{J z_vMD(>GDat)>L8hHH|Ol=ZtOFKEFA=cF9KLd6C>f7tBHfcl{H3s5$k4@>a8iOx7!H z4Cy@88^XMg=zAn8`Mvr+@5n9ANlSZ}k4qK4nmp4qw)Jh=dgpgpGk;H;KF8;G3@2c{TL+$ytk3f1Xgx z58SbLn)2#%3-87pv7RrRvhkM;d)Mr}uG9O>O0?sjzBu~z%*npvmDe6^<$W8rY8KCu z^e^3AwcD;b-PvO?=UG~e!|bPA+f}4Px9S~m?cUitWBDVtGylGn+)&V-zj(fE(&aN^ z_oBnxqR;8w`}sy;XRz)R@$b>|&R^f!YnAngd54(jgO?kU-s}JWclKvDv(=p=IdxO# z*H-n+jr7yn7E&e8!CJEa+Jp=K3+%o!zB}Sl{jK=R-IMNc(QcQzf48%-usGH z0(-YzFWhC;_Otl?w&NcUr=R$DM0{?p$^5lTT!r1|)N!a!-~8EV+n##+Lzl(BE&j}X z=J{=dw51a#iuP_jV|3yENr6N!rD|IijY)0F>r46ZHtPlKfEBz<1R6gS3-wf8B+K&sv=0Dkb z=-E8>3wL+^fAU-XL|nT{@cp8)_ZRLRs9t?)qtIbt_pr~`qu!rCH(P5`{ggv4D_d7r zvhSW2C0lFbJG~+|l(*3Jr;gkqXNJh?m)_^Kc>n$NUtsAYZyKC@$3!|bQqfxOzN_ym zwxaajiC@`o=SJl3VAK_y_-X4!#;R|wJKsyK+Hl=Y@Sj1&isefT1PelLXY7t_=hgja z_+ZWUM>*RszG28sVzOe|c=Mw^TF`*}8e`xS3jeS7)bZ{~VTFDGxWRbILCb7wg7 z#FHs+&wu=VtZu`fhaEW%`b@jTn-mrAG4QdgNWZt8b+$UT{?+q!&z3f^T#-0oo9JY3 z%G7bd5i{{6MkEAG_1mx2%8|CW>zUFB!KJ^xmruPGB zJ67*=`&IaTo`n8VF-nsP$X2Lyl)05XdFK7M+n-B) z2)Xfb!h#>090iw2zTjrxDdyhrX?izv9s_6_b=CL2(@`#eW-rgks1=G0Zuq`hzUc2l zYqeS8-Yl_(fvExec9`X~`12UqC2zgIcs^pK#ly`m*Jm7Wy~|{nz1729cSn+O`QC$lh(hz z;NHz+S9M#jya?aCTp{s-zc8zmeD8~0O)VeVy%wn1oo-1_=jBsdyg#s&RrvL;u-Z@2 z%3KLW9oiRmXrEGvKL5#^!BnmOt3i0K>L1^W51vcv3Z+kush#m!RCh;Gl!5udB{jmg z9?e=OtCANU^Uy3RZR(TFx0W26H{eI|9A z%sM%4Wo+DWVRq8tPr)U%Z%tMN)t?Y{Gu`s*(sBJ4b!wN_rUzv+SH+u#B(DFh@Mj^D z%h8ET+PQt>F9hA~vA%R9+0x9bJ3BM8>lovalp_n=79H)M8+ZNkf@v*v->!cQOW1mS zoAJ**{`JapzY>-Q8|U%cLg4m zdiQ4eMIrH*3oj-vFM23;FPrJg$0zgV-G459V9WNR%+sge+@5`4o{qhG$JvzP&dHyc zcSr1&dnEQ}!c%J_&g;j$vL5Gz&7XJnlC)S>-`od#H$Q!IPssLx)Ygqr2bwn@ZjM@i zH1@CAQS0u4k~@*}9;^;CPe=%wA{8(>B)~yP=xnq<19U~m-dGE(2kWBB3%s~C`v`qa ze_iM|^Zcd68gcKX@1iU`nZnz{?-f?PFS7l@a!qL6?7WsU)u+AV)c!x$e*YrGz4iMh zXQqP;CRr~^e&2bLSNdpYmFX2Om64D2@eyN}A>G#j5 zuwmQ(x>+10fqF7?op;3ldvR4h-zP<);#`5#k0T3|#8-2=$)7Ch5D&Xr@ib;{n-=20 zfoBi2uH8JaadW&7}1;Ktj6#h2Xge+&)eTw>1}lq@^1&+W|C1zxgk ze<$_!yH&&|%w5}RDP5(OcH(+R1A`m`yG(iJlh=`ToC}UU zSugi2kN1J%XN^Z#7S!z7+`oEtnaKL@Rd#npY!eQ@l&~nPeqFxcqwkkJUu~jePgp-a znxo5pb&AQf>1*CqUR0cL=l;{p`&jipi@xWRy|?=735m+LSFBALxo>A)~0U)XDOvWi61UXc=)w&U(Z@$WUXMxo}8sz z^)h*tmh6s;$v!;{D*wx(u9>sNRe#N0K7H}@z4^^Q`quqDv~rtujr0Za|8~JC6AnAt zFz{(BdBj;uPn)}-E|>A-HluHQUnc%ssT9PM^(M7)Pr|o%E3dv@u(sebb3&pj5Kdq1_RUSX~mT+JGDCu_RGHS5Kz&Kb^>f3df5J!GMW?xzJx zYIj_OQuf^6Y=E?q;qSGa>5cMPmC8=6KD8oHBc0ohz!!?T;Clz~m`lar?=onlp|L@G& zhi9grRZ^QbW99utli2^{-1)ufLuCQK#D-T&H{%~(lomc{JLmP8W2;{{CM9iI`7|r( zS>{{o%J*4p>gMGW>lNkSKXl$AHjQulbAyVgx|6bx`75LEJrrS`-1ELEK=v_f(97rj zOIIE}ZF%gvbFjC)bF=!5JnkR6A9Kf4PTp^R=k`UfcqcARw*-g1eqY^e>&g%Oxchw3 zZ@n2?7hGHxQ1Z~ys{52>bpGSzmBt3r)@SdF>I(5EyQC}r)@J49Hmq`Cj{uS?Br1aov zc^>PetzYh!GfN5e{t7Uk(>C{h#rvT(RBt zLT62c*}N?4;QyyWjv37B~wFo&wYQQ*M9T)#pRd#MDwac z<~mRPSH;uWzA@pzo=ZIDRXa-M#h%;xT?%3r%Tt8d^nQZARx)v#XvP)RA@-4Su*B<7IX&0lee|j@X@0Ff)V!{(!wJ!Phd-|HQCv?)T~F@GVA=tqH}xV{9M;cZwcFU>A?Fh%yl;9)){Ma zmv}S&5U$^y$LjVg^JehLorj<9sa(+ai;e$(W-Q3ymtRQHyRSv({&`zu_D(yR{pQ8X@6* z>^;|iL74h~vuZs);UuXo86O@??#!~&G;W{rTYN=!!9s?4`qCEP9m_wQ>^&26rd)cb ztC*y>dfmEhdaSz7VvOG%v(6|AHk{D%Rg$?}?|b6Oc|ZQ$pZP2IqG9oVS6%)O%sY1P z{I`_-!-c@Y#(Phm-k79(JN{wC4B^e5q~)uJsUTZ9|2$VsiPFDcEWa)ePxn9PnO&-{xqI6A*Ry$_apiUx#wl#Ai(4+hj*#C2a*{uxTSM`O&zOXXw z+0*tYT)A-L=0_~=L+mB`YB|-!^tW!_m}6PHba^IUp_9h1{n}zGa&Gg*yywa8f9xDp zGc!fM_KLrMW#5a3-w&VN?Q|x+)hg`J%w#T8`Ds&T3Rjl;PFBkmJ>7d)Jtv6k?PI;J zi<>OoKfH61^W2`eb0>vsH)u3pReWvp=g+hMxoaNIJ-a?I^tR)LHOiEzg%zvghW$kf^Qy`9bDZrk2*P29as{ozGa~*xsmCpL|su@Uc<2^+WQ_ zidS!aZ2$SB@+|h>Jh9@xRQa5ScZHj_FEuEs=P2HmdM$2;R7}S=iEBmmkMfu9=W}|L zxJC6=u-m+dh3ZG=aab9jzU*cfGpjL@UGVGW$G_rhXB4mh>-hU+{>S+t-*1N`yYKN` z%U|JQ>|X!U%@EJIUGaI-OkMfs{gwKcS4=E-$=x8j;o$Rt3nqen0BmcJ|wuJ8Rf472gcs*|lV;{gbPkvp4EV-8=Vn zx2I0MVR7GGS+n9T*S0=c&Rkx1a{VrmE#H{To=H8dv)1kXJLA$JYvq+&#W&^8o_b`r zZcWhLW;@*nr{q_D?hJYLBwy|SGJ)cT&K@W2cgoh59~y;yR^N!-#`L{2DQ<)4hff>z z#MYaz*E@$a_2%qmOO8ACBKhL6byh!iZD~-<6%|`Mb4}{u%T~+IJk_}t6(RR*Zhr8u z+(4sXP>#C5kg;_~R{y4(+a{Oi%{ZxjT6W!Mk8j}?KC3mVZu|LvjEnoxzBr~x{p_vd zj@~{!Y+qx}Hc$Q9s`+AST%M^_=f9OpS{)0&J&aFsdi?on@ngIQVO7 zarUX=dt8RcxR+Sn;}+CUUr=D!+4^AV>l*c0ceXBJ`S5 zrjtebeE2hikXXms=|W{X(*AqrwszPDOB~Kv`}58H{0CkK!{Scea`ar=wx;*x4!=3e zO#j6evRt{Hyx)G$(>@t8@_k1vs(FFV$;9h_dmDW|7pChe*WBVq@Raqxv9G!3+jhlqESYy$*|6~4gbE31{@cbLv-`|mS|=r&ZF?ERqz+RnJa5p3@R>Lq&~Cv1LYJvB~>M6`+gaJ#1n+_KCh{0v(=d{P64b z_~&1*$1mTpV}||Tm;Q_E>no<-j{kEs{)7DgkMbY2<_Rc8m56Pc-)PJ_+roN3Hr0InrIppmTOAeCY&$!hI20Ep=RJ)T0^K*y z(b>*D(}pREL-EL-&+-3G*FQYi%zkHo{roFeu2hJ-b11fSNQ1Ss9C21`5nxi0(=#bz ziU29!T=%z1M~qvnyY=hq>&JInfDYKar)H4o}XDCaYkx>{Xa{7IhzIBw@+WTY#G?rWv)q&z8tZ# zpOyP_#u1l=Y1_7jDyk`eH0X-Som07M0`In@b$7bU6PbGSubZ5*ocuB1Wl_O_ZBr-n z%3V#}qw9V%L3_cHqt`?|!{rus-JSrzaKSIY%6% zRqwA|kp6|gYTw><6Kqvi8=PNSC6}Cc<@2NE*Mh!$csB#%NNakS#)*@=hN?(Vt+~H-`!CB#OdLc z*Vaou=H`iQb9@m0|7(2YrW8(w`@g2O?Am$ism8OZZRso5MK>zmYZXk=Qc*kB_nz_W z@pA<)i}e3C*yUQj_TDxryWj1-Vebv`_NqxUEZBQxHt+S9U9#(xof?}~EMHvRHo>#o zjPBjGZ+)V@fY;72nRVXkXE!Tq%qCYzSSvrRe`Nl24e##mfER23O<3O(UHSczmd`GW zzK_SQ-2YLe`DLHnkM}3SY!`nFnBH-4MoZkUju%1M=Rew=d$w5N?_#@L%gX$>3ddK? z{r5a+#*xD_KE>>JxVq78*RMYtP8=#P&rS7C%zE*2X~gvEOK&Y#M!#2h`n-KZjGfoj zMM-_OlUeM<=klI4nVaukzhR2(X}Nd2tl@{-Lu9g_*7H1Jzq_P|UtH|w;limd*Oqdp zF#fQz_?e=6&3o#aSgH3#zJWz-(Win8)EFvW6vZq#J?HSJCy^pAwx-RK=Zxvv+*`~# zbx!UE{_;7+mt~FZnI6 z{W_ev*4gKrb7uJH)!CXyvXsie3odQBiC;44|a=sbJ-W6osD)|?HZA0GXZih9rM|3)Kr>z*m0 z-tSK&vrT!ubkC13&%YRc;^z*xti+8ch*=a4B^7$xx z<;AcAZR+gTUR32`&ulN%->%&McJseb53y}uvAsPvd&|A%>(M(V&9gk=uVnFZeblptqSk63 z*Y>9Gr=#xKn7MpA|9yjv!l%_!Yk%CZ^E$dLDXwbMgtL}QP0D;P9q-96e!h?67F+Xn zbc$KlTK*=SKOAO`(l!Z?w!;7{+5~W-;O)+ z$73yD^On@9HsQJTz81^o@V`Fk{rlTm8Hux#_io9*b!wr&Mw1&KCG|Qxizi&`Fx@$Q z*|dfoPhKy48Lyz~+uwHKvD4Lk6*2Ngr>?rCUJLW96U%vH7Fj*_*o-tW?(!VokCN$U zQ-%1G{rBzlGCn0wCgr>(_&fD9zMzB@A zC_Mk*c@j@&`^CjOcE7xQ^Tav7V+~@>rJ~Z`Qx}w1e`uQ_%)7mwQ{>%7sgl^NojcE; zoccBT=AKtPw&kxZ{yg#XyZd74$_EP1-`CF84VT^Xy-@L6VR&oR`?$sBCpZ5|hjXAimAvZa@9W>GT)lqm=G*WK z@AaQAzP1@gkAqA5e}1_ZX!Oo{#hy1!jSos!?^qXD zx`WyKXQth*+Bsj{_?-`ayRGuO;?m#6LFfM+l#4mIZ+Y0gj4-2y)w8GZS6xhBHc4XD zyz~|K4lU;WziL-Ns+{_rDgH_FKQiW?JY{FmQu$x{&*S`T%W2pB z|27_*$muNl`1YM?qQbWqL|F%0_bqyHX{q<0&-VX|L$)g>WlZ`e^Xdopzeu5%m1%dT zTNg0yu*xi*bu!K}d_IR@WBcE?w^R4jzqYWyV7I`213&K>WwvDk@{bGloR<_5UhMSp z^%8r<)+vU~_f>K#EpNDA3b^`5BSe-h`*iQJ&W-t-{)$%k^oDI?%#P#w%l~^pqg>Sc zStm|~^)LPR@wHU3y6cO*8is{>Mju=fxoV&9Px!Lsb?^C|n=?djrkyRQ=1`rquVTUM zU5mV`iupJFo|%xmUEpo$uH;!a^?EjL6G1#?xZw^01{brK=c5wcC(%jD6*OQFY4DzE*M7ie`qdV14;Kknsx zJoal7cf?u!O!-||W$?Lqv-O74v8#=Mzb^dS3g{QE4580 zckwF^X=fL^c5y5DIgWPxcc)9gyc)TIrTWc@5_|E(DspbUWhb@fUD#UuuE2QixrahC z=iNLx@6hp!4i&|V9zLmfD7QMRa>*_J3#yyHU25O6_k7dWwU=u?yk5IxN&b`c{k8|) zUdK;dBIaGwVD!?%@mM=|#~g-vOZVi4zc8|M|2HdTi-d>nom0Z6#J98*U+uei?A4nT z9;*-AOpA{1nD)n1ZHtxg{aQojygN^_?K65L*TjFfV2c&HmcuQz{dHiIltc2CiF+@# zgiUw(WyM|fnd@2_|N8T@vJbs4@wH<#jMk{F`Skap_Pe+r@6&fA*G>DA%I2{lxa6V6 z>$hwdRFmVAlU}^@$bDgwQR7@wd%x9Oaq1uL<&~v#J-6n)uf6J%|0(K|{I$S1wPOmL zH&cFF-1%!f@7DK_+fF9$PI0Yx&bvBpv1+BZz3r4PGZ)+H_h)?euAFu_>_FQeeKj@l z$J00FKKgoWp?j`X$Zd)ARljqhrr7Ddwe;_2k~(I)D0R~&XY# zrX5$n*15J~e=KHs*8lrF|L`yWGl7%0JP$ZN|5m!Ec5%d;oTZ03?^$0j&_8?7%6fg| ztiZ*8-_A0x|GcA``tiSk_>FGPus-DOcmG*P@uU<2qcjU-V$H_a}O3Jx)zcbj} zDg2UfZ<=%J?>^XC0M{go#p?@xC(Unv&F*(0>CVB`?N{!1F1r`E*m&7Y(?b%`_kSz3 zJzlfZ=h4GEHf+Z@r@H%DxeNKdlk|)X*(R>>>*Iy<*Qf74;Hz|V>d`k9zZHI)Et{Mt z^XR_Yv=^3vj^6XxUPnLHyCG(rq*Yuz@kvzT`Odair*F-A=~>tJ^}e^$YHy{-58}+8 zNqsPGwcNw;>0k%zx7z<3CYQgO9P$5OSk5lVUokwBD4+L#bnPR=g@)(X#Q(j%3q0rM^#&US)h{VteW@-=35GlPyl3H@h)?^N)L? zbzh&}SbqEDkAjDj${EfFIiFKBIl0W8eXC!8>csha=7M`aWS+R$|NmcQ+_t&(U)+<$ z{(W?=o-0<9#jnM;gmrG+mw2hWJbQ!{rZL^mH+Zn*=Yi}wI=)ZS*U$dA-LfLxUtLfB z$KAX?-zL6SdA?!)rumZ{`#i(?{|CW#HUDl`k1WxYGWe&by-wj!Kq&#__^*LwYD_fRrl4X-Q;Sm8SAlL z_nZ0u=S(`heCN;C&i!(XvYt0f*@T4m>{xCYxb)V!Gd~^s7qb?uUphlmaO-n{9_kn+WH_tk90 zf@<*tv*a^5kF0rie7$$#*WkESGW-$ySGO z+IC%{Co_$6t4;X^eQ3g(W6!2gBDb=t$7NErTaeh)w?}7Pw`7^|qpV5nLXvd}hxCKo zoo0IuC^X3LFX0Ll+;x}rz5Sti+H)0-%*p7eOFUuQa%{$z7ZM&Gs;?yjcHKI@&aTID z&&kskypzB7U;YbDKf5btOz=8)d;P@E+os=});&kt?!?MZMc-x~pRS(ZXY#;mZo#ul zhi$`@=S~l|%Bo2H?R%%WZpX&SVW}MUZ}+^>dvfEr<*VZGla_BZUoK4g?RR5~bFSvb zh7+6*BE9CXIez~|Qpd!)Zwe(2@> ziT|$I-s$%f0RuzGuq4FP?woNXErkZ)dRSeV8g7G~Mmn-3g^Dt{wZ{ zAMHNlceWDqH5=pSb{R`fu2s#xT_A5V_0QeQ7aPBQh+FkKEa8Lgg1o=kTNWMMpQ8Uh z?B-(2P>n^W8kQD_=IlGPwk0lRX6q95j2D~{PNwO>+54rB>n%f@`N`U7P*L4mYA@oS zb$r?KhZ!=*B8z7pIb1RGm4tr43Y(y}5+Aqi5iENr$+`9I-#?e6;xs>P`28v_sPypr z*LO>AoZ0w{>Dc+7=UJRL$$j{=n~`6-f#a9nyG6(pKC`# z^qGzcZ~d13?>H8dxuVW7|H|WX_9;if6H?A4IY#q$3wYS{sD(T8mY$30imQ>)Wz)I& zGv{RX;wAgU|L-g0W+?%v_{3|*bn z_S#K?%f&t$S8GFhM#IWlv5!)u|;PV)d3|wDp$6G9BaFeQicp-Ga%{<$E=l z`7>WW4EpzIqGCQ*6o|3?#Gn=~^t53#l`Xv)m^FZd_`pHx8-aY$O z-?pK>uZ#POn*Q-=XH;s>{4g{Bc0cRwnbk!yCtWW*64aF{XZKZKcj0AFz?@u@tGf-; zX17niq9NP8>`hKjdGyOmX%hq=b}rueDzUzL&tI??5Xdy_H+1dar1VN#4h_5%iBuKe=YrXo3vl;&MVq>&G}dNHN)S=A?KFet2^## zu(4w0+}_mFFSTubi#x72vShC}eBb`aqSR!Rj9kzA4Rg=Q2Gnpw%B@?PfCZ z$vnZ1`!(STyxrH=9`LZ&t=6(E-!aFW|4QKf4=*mxo_2_->)t7c^>-fL>FkUA#`j`p z{-!eVHUB%jZgXCpp89OUqnaNcVf=GN)hm|&ay;?&Y~MHCMZS*`zo@8XzgT7GT-ztmNwW%nm@!Yayy)=o%+mJiHGY|K_wF{Q2XeW^+SmHoY98bGw)nhrzO$~n zwnFyw&|@v!Gwv|jM9&P{u=|qh)rU!O77yI#PdhrT|MSKd44`?5*_F!^qtkS$^Q|ROSB2vBb4sHvldb^hu9f)z{9@0=n7qxi8M2<@u=dujHKj z#S`bni?6!2`QVnUTVKU^Z>1`pl9}u47u(ePT)Vg;HJJ6Qw)ahmMQ=J8qIB2YTAZU- z^w@m)=bF@aA4D%I{+`i!{M(Is_WX3V)u#$Ymah`pJh?L5@cjMNPv(a9{@_%KF^HWX*0=O=S=RhP?5cNPo8|Vch3TqNuQ?tQvT_5b$3*a ziOPwO>->_EN+dQ+l}Rsm)qQ?F|M3(isbsGEwk1<~%XCXxe`Kw&3OUV~==6p=yPkD& zg7WQk2e%qMz8LEneB%DrYc=2A+aI3Uw04d=bGJ@PuFvwnM>3Y-r?^Hd7;SKjV6C8mjryaT=?mPz;TZqJJVerncX*? zc5T-A)%lexYzik&J3V2>ywm$mg{s`EED4|fu(~zJC;xd)GVj;cF7Z+_6 zFIuywuUK^b#@h2A&IF$7FZ=LnUCNI3Uvn}PuI~JD&vW|Bf;DZM*Ava^*vjqxO>24Zr>_UNiOkdHsz3+RtarKb1X~$oR2K^PcOB@7HwVcs*j> zXJ09PNF`=q&?#nA%&vdr=-zs^7G;1Ko zs0+GFi`DC3>EGhIr{`3vU;eT9DJ>Rn{``~wr)-Q-{V(FFDPf%LPCK>Md->j5$`jL6=eE8{ zf8cXa?Hpg0$C)#!@iT4T^=AkQZl4#j7jmW(#?J7!sanQQ*yL+|f;LCKZYiY+s? zPtjwyKWF8;{mVzE4$TR6E}+>FrxvB3iv*lHZo2s~oM)Q%TD-z|`2^7TpH1ZiFL(1e zhCLu1K5ve%%!xk}&zw8u23OnfzKj34R{k)0G)?!2j&X0DRbG<#=2ijWvu!n2 zQDR~9^crT$+MnT2FMaKuDbFzdv4-mW%C`S+iZA}W$*Oftyg1G2-^vTu1FUOe>XwJ- zZ4y;_7SeZH;P|rVyP7Ahd0622a|JKyB?aw+XO5AOs$ z``IGklZK(zJZ0^!IJiz5o096R#g#`ou{m=3rm6lgw;p**Vr9 zSdUGTvU|HGHNHyyIbVIFi;Us+%1nK`bL!uxZT|i0cum#rw)ty57i9jHytUls9ID5S zkKXm2f6lF}%!qA^#G2JNcIY$z{r|oGV}B(3iv9LS<}R8$#Uh5G!dlA0vZ&nIqMTtz zRF>vRsmQv^tX84ZzH2WqR9obDaB+r#q^a>A@AUqCzrudazjcbgXRgUs*4?kpL&iE+ z7Js<3FH^f+Mz3INaoX-?x%-FRcTXwW_d`Md7T1jrPo!gBa@jM6?8>UtTs`gHMD4t( z&~fYDns+&U{m>s1DdA^XJFO<~=*>w52y?J-KMi9r59t;I6x^ zmzUkLv$S}(?lF^>)Slpb%T_OJW4^DM(45PjFQ@l>>6*(WUb|y2T>16#WA4V+ea-Ur zKiSf^iEq9ccA#xdkktO1#d(+c%x-Yqm{UCK+5zp&wR*F@vFKP|O81Y+UtzZT!fTDE z$L~w-d;IUfyR=_yR+hqPXQtUjb<7mcv|Bq(-hbBZpEfb}GJlNok3V00{CD^3Y&Uh* z_WqxXLvpm9Emh~fIp_0=_mcnaJ=yu!>D1+;Pp;fvU-gDdtoo3Y`mZ@Lk^85fU48CC z@$$aI{_mb#>5ZGk#aHz2-u9bCR}WUpizk`){a-YBSy$Y=6*_5ejfC4?gtiML?Fl%Z zd!6}ea`4XothU`@8_H6J5)OpTaDH?*dvR@-z{dxx`0c(M+>|-ISaeJAM>nC$r}jst ztznH7TG?8CbNl_iv?se?eKhz}cwa&**)QPa?_*~_b1Jq77<>9L9G_W+Jb<<2z?U-6QmCv%=}@ zjqjpcj};YziFRlLG0pJ4${xIXZ?6l#v46tTVUyu z+&8;IZ#By&TyTE0&Aj6OE5D$pS-)E~Lw?UVRnBxPc#f9T{){(6})_oIFG0s9;5mF$)O%Xoi>efxAWjeXvs z$2BFtOt4aX|AOpZt$C`xbMKtnao;m8 z)f8}i{%8K<`2A}|I_u~EV(vX$>mRZ6FB2%y9Fn`wDkxFSb||J_Z|2tNc2C~ciml0? z`>Z)WUsbhM+5Y!iPP3^0T`F65PmPH!*keapWq<9{uG-JL&q7u^2oNwe8} zDYHm_mhwzz(VgsP&ldFN>}CuuGwYP?tr30FWb2&9r+F^BWT(T<>R!2IG0Bs{(=SUH zN9=!B$g@jj%}p_rJn@6s7Do5BrBzLupZxdxqzkVmov_$3y?1Auq57qe+s*O@w<6}w z?Q!(eIaBW?KflKQLD!8x`X7uue+LK_&Mt~w{3=4Gw!c6y!G?o ztQ4MIDmk}5c}nIiKP*|ZcU6g$$v(w>``#a#J;Cc=>*YPW@*W+C|COPbq|sDUwds#V zNZ#^qGq=CxiaqxHMEv9)G3J%6(Und=o2Iq*vzbIyD4k`<*!aZOyX&*s+;akdkL=)H zDCRX!?~uU3A9+m&ZU|qj+Oxyzz?^07JMTA||11XTQqnlT+uo7ptqU*IxKIamM3) zAFmvnBY6HLXvu)_gXoWX4Gcm-Co6xO7Tx=H>2}e?;-l=Ap>gL{-%J*lF8cO(fBn4a zxzFYQUYxPCZtD!c=KW_6T31^Y{ygx$?D2N?$anWx{p8*$|2~wd^SnQ3>vO5&UN#|O zyKj7+o%=bXDQe;O8tZ>&<}OiT;GCJFdi~-LeYs7aCLPn8m7sk4pQ3NBp4j~tZu{3Y zcwV-dD^~OPex0eQ^E*Y8V=7-3KlN07EqUPUi$=4ow+Hq4Bcmg>q|N*9Yq|5WUO>Uh zZTw%OrIoXT<)Zj4UYyoTyKi(@kn&qd)h{MW-VXGk%ub_-WX3?k$s@bP?Y| zPcvI9&1IL9BcCik%`3bv>yo60&xc3fT4&zYpJ5Z*qB`lDHS_C0oP%ADm0cN=#iTz6 z8NN{1`oVI|Rz9ma36WNE|emz;rtn^RqoNbHma`(j*?nSFp zu9?Lr==!}X;=9NViLnc}>rI~ZR3LKaxfov4E0)EYRUZqtNNh-XzFBpB@1$RGQ{HSe zc9U8x=le_U-r8tGvxfzy?6KP~J$#U|b-u3n>5~STg_d2FOH&^eVP7b#f9$8p$|tWE zu3S2Q;X&b??W}+9eq>#@$Mmt90Z+u|Gjo0~n5edW+M3+S@lVY~rT#chw%r@pfB$VF zN89?4FFRlC;}$DEP#$`#`O?!4ugIf!7TvSU3cVexl6&gw&CGN6x~PD;8|SGCEyPwDnF_U{d1-c4dnHn;rNo;7-ql<{)&oBbgS%y(mM*3Ie4 z(tiI|{(J4q#jPDPJwClG`25)8#pJI)q+=N?Zwu^gmhw6HF5n|%LABG9Z;WC-^YjiG zMg9)$jTKz?Tybr!`uo_k51u^J`=tNmv29JqwL?K=H?}HXUvE0=;%}=DKMn}p@LPJ8 zOR!Y2KRUhn*T$I%ZuU3YkF%@EJ}7&5b*4wplRR(5MG80WFt><*-jZg$tdYCsY0DJ_ zafQ~N_Qby5PFxbjZdS{+K^OV5RI-%JQH2g9oc@q}M4+I}DWzBU{F_FHRvLU|U; zitYSPTXt`_J!SLE&FV2a>vfJyGuWFe1zyE`=%|=@*Lm0QTIqKyuJ_GYtMqoc^3(G2 z53AYKJ)gaM_RGWXdLVRh@8Q#L#X%*Z$fCb( zU9l6_q%$Ec;9Vl&JpT`?g5~5lPxQ`(mp}Sg`Eu=lRom`2H=f$cI~{4eRVe-F#+7Aj z54_raa($Fd!*oA)Z>Qq8(D`;W=nl}rE56AvhW3~SjnPWWhW zr|^D7R`R)y=OwKIP92g8vtc$UFnIRPuUY z`OTBJdLQqb1RdRAHom;%OW^;%Ot0MkPdM?adufhl&a=5qxh9#tOV*n#tdB6etW`Gs zYtgF%er7uq4U2VuYZ)8O1uPfUkzm%z~cYpuXG|A&s@F$BGt=XUIs!HE|*|xxN*@AqVgX@&@{v0cr zXa8F#ZHC1Qv(y#aBHwP3eG?acZs&6ILa&PnF+X)&cgwkZR~SbB%1}&;bNN}au&U1H z>2jVK(BZL%k7HqjV{X61*NTO|4Kx$q`EmB;%6&%V7TZI*uQu+_b$s$tX+^^0c5e2Y zn>HE!_@U?WMoRxqp;E)6H;4DDF!!E!KEI%I%?7_mvreqNihsj7o8R7ZCj*2^W5<2+q`?xw9l`% z7kWv`3Dj~7I~?a0qDT4wevy?l~T_`@jn(KN^%R@jc#lrTC3UESN$c z0a2=}xjW~yz3*#V)*8RO(Cv@?&rfmh1-1IYLlR&jSf#%~%!xzL-irI?`2#bXeCNns znJ{DK>3v4K_goJEj}O3z8A_InIxPZ9eOn?veG8hk-TWRa=#KNWIoG02RImN02O1~= zT`JC@C?-YXScSW0EMMK6(ph=&CHs}ZgBeGh3~m=ay%{D4F|lRF^_a6Vzs^aQoOvMO zbF5Tp-V>G&I**G)He3GZ-t$qfqr*PkST!=gpqSx+cX=(d`P_qc!iPNX{tCLqe&DHv z*U5A_hl5uG4lh*azLB8)1k|fz65{p$>u7d^i|L=W*X}LqiY)@g7agQklap?R@yYHp zQ+o#vsSe9DFUxy7ej3m87j`uWk&hx>F})e0|gIO$@hx@EyA9_H=W)#I5qC@cD)h-~O1h>QVQd zm!B8=pH51?8MbL!R{Qj?J2P$tpNTgA^+Eb_<-Z)mong6W>cjU`tg~KWb;)D8w9w^Z z%~d)_@|?Dwo1(|QKBunX>b>)8+e^cyIoE$}|FdeXd~c;?wB0@LFeByDWyzk>i=MCR zUg#S3NlX6f`d@W{FG{Bb2Ntq#UzGSUxb=)c#t!pbgr>!)tjbeq%rQav*~lS)0=e25g8;kZ%iB->$`F)n(ka=C3l%HJQ(`?m=QXFsEFF!qFW}e@-Nj|A?)$_1*znb^dtSR@23_6u%x$W43S(mkAx9(XJWT)J6 z=5FZe?K_2oH+Ackv;B2)`v+SKus;5-=PJFjQhiX87SwIDocGB`=-vlW(8i`DRt+F4zA^{>|a}yXU{UZ7LJ_d|BOj*I$o5-hOnj zw09MA?u`4Z9xlFZniF};?dn9cJ&9K&adnO3FaFJ#&%>8^??2oBAGf3Wo_-CkUr@NC z&N=sSobuGG&VL?UI$l%tT0`=?Y)D+0t=9H)$NH`reVX>d(?0s}MyJa&=9|8>D=)ve zJ%|1My>$=Och<&OUDWHBn6F=Qa?Rc^iuvz1C)B<+k^fVrt@%>==goZo3E#K(H$IY& z4cUF7scu96!`CT)zwG|~bJsTu{o3Ud#OLchJvIH37O3IHe`@b+ldXx0jz}uP<1&NZS6@&Z(O3S>~7V-Cr0K zJFV~DjHAD%wtXn75?!^ky5p1K3&q0Q(tGsP>p_K`VL!{WidzXg1Gcv5HhxZz4r`g` zuY6?AO_NXNibrG?n6=AmT$xk7!cOUmMe&>qwE^tYwx6!}f32`?L9N67J&!zm8s{*~ zJ1g`?B-Y|o)o#X;lQ*u{2n}dzYHLuJNDe>oaIw*<7d9#))T5AC~Wuusxf$ z<%7#C#tTU&tEY)P_qCck`HlEow%+`X_3w9oP+Kyo{-MeGb+czoS@nP2$y4(W{wnQH zzMz_TcH4r&-7n^+%uUk!_~;cw@hrKgb?o<^9QS15`Sw(2UwLbM?Mp|=f=f|_t?O(1 zmmTcQ-gHv$&Z*VY`!=a=p6^|4x5W9Ly<&?%(z>8uKc4(P{Jy>V;r{s#`+i1#n%-J> zs`a~{@!pf!C+lZif0~*kW109WH~UFnq3+M@Hv8Yup@!dwPppl(zQXF-Y2nn?8^SYe zmh(I6mh*?&^_YdFt0zyGydPA_&3GMBWOFq}-|2*fDCC*LX6gx&s_LHe2m7 zN@TMq8LITGQC=mg^h~>wtx|GP8s?`*#yG5Lc1A7>}6$ny=an>k+b z=)Q2f-ry$wXrIvB#v?5HdG}R*ADwmh->JHD^R3RUvrUNnE)(rl^Hz5Ua@-X!f| z`W?@woI9tsUt{L`wW<5&_YW*zR4i+6Fcp2@a9SNyo*7PG`J`gK9`8JE-`9M15A4ZX z21@pC#0}d04{XVJ@w4VDC}@pKEakpB9)4|LYt^rKMC2srgB?MLbrChY&c6>%c#>G^ z)!sb$YTdRN9reRYjy~0RHg%f&{c9P)8oNHo%yoS_XYKZnmu-Z9rP%&+6L;?U624Ed zirsWZ)8560o*%SbaCFiJ1HT_HdaM5A`8(X*@nRqMGLKg}LeM1|3%{Rk=w7(={HFgw zj65a9slN-gR;}H$-SEtP(Y2qtBmJ}QpR5iyw%EC|`w#ce3V!)TTQ^LR<@bMNw|V-e z^lwZLibR5q66E(iI`jO=v!`}JpN!n^IV^Ns?JAe5(jt&l=i!l7Id7)F)~=W5nR)*$ zF!am!X*t+%$DrZZ3irwT+RI;u_3YH}e_7OWXUpr&m*?!?Kc{x;wu`|VCqMh5^>ns^ zLizkG(9{Hn;=F@4m-hXd*K_mPL+0v)CqF+Rwx3ph+3}D? zxO@7on-SaQ?7MW?#QNZbncY`^dY?1j5%A$s^!o>WWvn+d58v&*fA`>esW}z3a#q=| zUl^t(`1hS(-){;YkbCIoy zq`#i4p|K-Muc-Kf(=nk;V?}D}FgXYtY#E4CJ z{MTP==LDm~e?GN#x?i@b&73UibS7(Z@8&DdJ}|e=DdxZE-XfLW_WGff-nJb9HF~>V z-7fH7?RLaT71SrhGP8Z>cE)tkO{uA@q4)2zrD;dr4C^WXE!kw)FJJ)PyLNO>=$)Ru zdhK_o>aF4v2Xz#GZPD3QGpFCxyrz8qu^CPKKC0Yie8@ZMh<|spz-?#r}X?R$Z72nC5 z+caIb_3WPD4ZUh>Cw`f#_Jx1_8?&{GRxFu3dG@x8ON^5?s`viPDUXy7b#MEueRdMh zr&D2qkDkhZLF#!r9s%_{%RFqCo6j)1a@xJ)PA%6{VQ_g~98zr4^vo%WC;9pLIG?cj z{@jXJ=B&BXtA0er;G~6jDPR2=E2p#1+oc}2N~E{N{zF|!V8a*Xb2j;Y&F8c8AIEmI zE_nEQS%rAwz39yqrULtSh3%5r6Z8bs%v$1hYvp;xkL#Ydy1cS7TQU!Ma$D!Rt{b$^ z#tWIi=Iw0X_;G`6^OlzxllLi`E%80x2b!X;kg&eAEZO;$W!bXe>&1n9@rVs_myNt< z_sug2~vsBXn60=jKkNHPTuy;ymzlc+~rK+Cyoq+G?X<%{Rztk zm^Dx_0jD#<_p82M4SyWlR{8eH$;lt}4mB0Oz5Czzp6iV3*XG2?zE|Q96ungLGQafr zedeI+7r$+oKdq|IuCtSS_NAu}rYiC8UjI%tRQ&y=GdeHr7kNKQ%whRo z1*XL>e#cMvfBX7|^8r4y`3r-7^}U!>Az^Lg*2CM`zWMn5e^2j!iWmN${_m6iKcjoD zGbjCjey{dl|LXsT9?1W(zWX-oe9`2O(!^j%@*lmBkHQk)?q z{9OEKW$)(Mc2C0ORo2x^t4+06F-^SV#GE^&W;@f<1j(hXC;9h#B5f|?-6^UM-@G<~ zyJ_>xNlp3@e_vmZu-hjSYEB6A9x`D|HS{gt*vu!Z+H7*`_kHJ_SwJfHcU|+tgr6Z|BkN7&1Db~ z75#X<{_piacklm|)!+LiXpXm9%M5QWF0P6<8;@UjS(0;OgW|oTGsBn6?~`5mdZ*vQ zSiYn?FPF zQuz_cs6+RPi56z-J?{%z2VLK&_|@k7*{75DJB0ZC>swcCQ1x0Y`D~lz<@}?mtDQP_ ze5(B_8oxgB@cduDe`frxy7&Kiz1-h5%a*n6|2cdA!yg|X7wRk&NYb+?dcsj!dN_Qg zX4fJ8x{usKLP9H6uIwy6`ONO+@?`f{RdpYbC!)2yUwL}IUi|Ndc*>srO-mHKE3EC7 zulk`>{_D?+%bRXQY@52~iQKuG{}$KpI$ZSg;+yxtL+!!mg1;Xe?`6J8&6qfK&wTlm zwV~YW%FgA;*G*aWbzXCL*PN7;Z*pD4& z8ou5v<=WdSf_? z&oeQn-<@L0QC2TwPL4Vitk!1GTVrszFz}4jrScW*pC zts7b+I{rP|bNc*`m+JqnUo4-RlH#GH+`@4>I)Cp`VSgLLU+;VV&)@sI zKkL;w;s5{NluX*OkYn@YE$*LeUH?9~l2X3lv*?=_O7ntWguD$|doF$A#z*-F0BCb}tNnvF^mmzDL`6@9IC~=@I!Zus_$xnx(Br#oGA3 z{h|Cx0s@ElhEqWhV=zRXTrbmG4M zFXP=irM6C7BFQKh#+&AK%j;0j`=ElQJD(Sw<}JD|vhd!X{_k3!D=N!m)vwK2!pD4a z>C7Yk0m5}}I3zpQ@#Urm^G;iNa?j7Ff^qY5pPl(vbZ1J}<*Y+*@@!A17Hya0ygU1( z_4TsPYd%Tm=a@i+t{rP0h)-Mb99%-0xXj2({@49hRmp~{W)F^> zdaK6VeNCEUL8Ddj-rENwN+zl-Z7nLUwwu};D{gw3so9CJGEy%`q3oB zf7wpkWTMUt`*{qZ2ET3uh=g%(vs-gLCeUYYo?iE}7aS6+UFGFlmu;ULsu{55#?IjE zg_Unq#6;yDP5pT*?zRVyPN(cY#kX(lFJ1f2>8lZ}#?Ij7^jKUdtbXdLynfdYv$&7D zO$gc1%qqyZ;F6%Bd-vW`Q-9tnj#?wObd~Ay${pF|4xblE1PNLHalduTe#zWc0p`RF zzkTHEek88{f9nLp27&LIPm}vU*4KVy{mjcYkFkzLg|XlMpT)|RE1hGk6_0pKm^bg- zmzS4s$NSHs^qOcyr#>4eF@S{UTiz1RQs&9!A0G6H`G z)L6&L%q~{iD0A;@m9x>y->2{LS#=*&-+0)5$=tv0w|?0z=2FPWDejMXX)3--#3Enh z(=lVsJp$96sheSUz*Vor;qPOR9WSji* znDb3O^Yz5l2Q!XXRqAc5(iMD}c_ixo)2~yCZ>Ux8`^>TBNSdBY;VX{$SFLXUUv+I| zVU(_H^C8``SF=Pij`R85y*f+b#U9&ulc){;F(;lGyI1~?(hAOdI=ObozVF{V9Tj1o zt9lar;K<)SqIb8LB;@kEn5ez?sZ+b*eCGDKXR7SGw|5nvxFOTD=xyyRg^a8h(SEO& z#a9OMa3jU(_oN+PW}X5?=E7;y#LV*V`8YW-{ocH3hjF>ye_oA-`L-VzqW{0%|Ks`p zzxyM1m%R-L59KgC^XL5kKm5{WIS+O|pO^gp-rh5_Ojp-NR#aH9^UI|iY+}`k-j?%1 z%aRKk5dO9|9Rl8_YQ18-T9Fjqnz(+eu#j|DyE-HDf;kqmr&Jh(THbyi$JH^bci+G3 zA~72tESR|~_-Ba5a$)O8PL03^OAcBU+`Yv3(3o?z{qdJV+z1 zZ{bzBmpSAhOMj?CcmLeKNe4XMeBjSa|37h?oa~fYo-3racZOZByx6k-pN)C`J(agt!+(l?(EY&N+VubD z_WH-q_y05XKR4rG{J&4r7p_|;kRcKD~|7~)s61szaYE))=ZVRy$jSz zl~31iYBs+1Aa42I5I^6v!++Sg=0%=*G=E9ateq-r<@<{gvQ%nR;E8O?1-DH~hBGd; zgzEI4e6%d6d)H^#eO{{5_Q>iOuX)mW9q2OK;m<-T%HakVm&u_MdX@Tlq`poI3tV_0=vj zV$gAsw_KOL@yvt+(`vZ+g6*Ptv@Hu3Caze0Rh{4NhXS{lPQtG*FKxbF39k8gRQ$@7 zYnwhj^L^#)^y9<&`c$b8NB;dy*vL~_+A1OH=KO}?`pGk!&)c2;^73-!n~leJl)MzG z|NA=r=k5FdjxF_`KEtY1>;D)3|3`|?+a7P`x3gGq``w+k#qG_fuDFOv2Wh@DnP(#O z=u3v>GIyuw?t2=Xz4uS-yHsAe`-?{Y{QIZ6)<#$U-frFbvL^iU4Gp7xr;_rX?_a65 zanY6uk9VtW!0-#hv6?Nk%r>N$M^2){}gE3x3*UC_!bGhcmJNg3kZKWkHzlGg$Gk*Eh1%fse>Y3re=6Z)&&oC0uYa}v*;b+LZ~Kk8?nAS@fK{^W^8DTUhi+Hxo2K|q zp6{_>n6yyDoqzeN(bq(h_Dqji%cbNXeCK=oRz6{I{kSK`?f)6hHp@MfU?3nVdh~qW z{bzm!2K+W382Z-lKlX3^f2%83MUp%`-xRFhvSmvBpX2o^s;aH;Yu{IcuIyeDv9W1o z@bXWf(?$Mj6$jkfB`>wE#_OB0cJ%8BKEJjly^3m>R^_$%v*l0Ez4wSMB{Bj}nqq-IHTBetI!A?LPOb za+};|uNJY0NtYE|WtwXp+Wjha{p&K-%{L~T;hbErw6*?GiPCGar-fg`Zrep_+>JZn zySZt@&*I8GA7j_g_l~#UesBAI{_iu?*|gof{oZ(fS||~utfKGr=7r~{h5c*~il=3} z{GU)`v8guq_jy5Ejz3?{C$Xn4Ff;g|IIm8t?7*qXHy++g_%id`_3wXoZ8a-D9r5Re z{*PbBFS3NzpI$t7`pvGJdp_~>r%C_JS=hCy)X--Cr*N0}U#k5(qTj#O(z7*g+jQ1A zV$VC1i~A!_DBqj*v)un^fr;WI$-t~RTiw=8o%^^~ccIL`1gnF8HM}efa)VzCpJX2Cs9#kn*hJ=VrGtK^SkH6mI!KJ0nG0uu@oSm|K}S%P}8FF*2LOm~YQpT5Eaz+`iMVd!z2%dA&eo zeaEZ<+w*qIKi@7{-7L2J>5O-dMT*5Z8I0VXkBx|N-ovgv}?xPn3b!JTr!%QAZikGQoX#| zP;IsF*C!HTPu8gH$uiFl%90S5ZCiWhkbl{q_1`whT;CkAd5w(kEyXzAGf98Tj1xaA zXY30&C+jZo@TK()k@v5zd|LWOv$fr$@56uLJIj1#Ui$YxFffoI<9_Aw_g@8)EIRt@T^|;$`<2uF$^Z?zd*XjMDdF z>z4ITrk-7wE?{2s$dc{&mc3u=SDoxT`O$Ko-|AZzmA`5Hs9&)=wS9t>Pg?lKXWC*i z7yYik=A78F&9D2d-ZP(<`>f}FnWk0>+9@27un`^)0A%eCUV*K^d3gtta`eL8VgW8pEbSDcqS&iknO z*_*t*lNzt8zHM@i#jhR9;^baMeMw6JB`sS|yD$EBEIZx4h@WhC`r?<=Ufp~#{Z_cM z3F{XLInGZTUOeYqrg>U+9Y2 zg5M_=vuv&DK6~x7k>ad3H*|PstdC#1jB`eg!|Fv}*R5Cb(M>!vL%ws@swsD-B>lVa zYnydynn@s=+N!;^xpS^evE-O7f6^i+eG8% z->+PoYq4(sY3bjmH~P*!{n`7_hH#NWgT+GYoma};+Wh&9$*GgZ7qt)0n(lk zho8uy@^iP8inh%zU~}7~x%~0Xe!HLh`qF>P_**|Z++SxhwXk9986W3d%d{&ktqp4z zu|+SQnWeo#-Cv2r=9tXt<-I>9sPFph{-)qcc+wj7DN!cL&7C)`rW>dVNch#HDLq_k zuKV@d&K+5r>al)1>JnH zlb3DpTyR`#xX63F$x#1!!TzVf6RC^wD)L+x*@dikNnEkJY$r9#x?!)R@KNpGN;7}e zusmi6*(hUnY^UCX<2GJjjMs54wmtjc-lL@%`KOQkJzQ31u0JogTGXp1O66d~Pbb0c zfdc!=m9-a%UfD3wHr@N@tz`@kF4{)Esn(M?{#D1XN;7`H`qU?q2`2hadyTlCxp92k zm{WgyXR-RrmoMM0pL?!v;pDZ^+kfq~bK*%Cvfg#-4+^DGWQRcjs)E)lF-!~@fnZVWpOi|w@dBq}j!_=p&x$B!|Y*H6&)?!$s zEV-FAEGoPOF@zOM@>)fd-x9ewn&A9%y`EV}ZKijKzPtDcK z{bHZ-Wu-k?GErvX5hKf~;@_tiZ#>nQxav3Gtb=_QCkb17*ohn}7qYhUK+e8D{F2d9~ z-cw%>ZwT}1m8!nEJ0(3OG51w1SL%m5^RB7A__MiSX`R~1^t4S+rcGR3*;-Svt-&_B zsnU4!|F?HP?sO`iEPFv{Rp#7|HGi!izbk+CFE8D4S*t{kjpeTuoZUeI#fzsTw?FQqnFnd7;k!K=XH|WNY&*u}Eru^%lPP<#JmH49ElykMFTKxK# z3-|9GTUK?&bnBMwsgL$8pOK(YbF5-Y%R`$`m%P@_tkpuzZoC#3moF8PU&wZ#v+05L z`=XEYwyjV}xNz#-?D&~`{!Vl2U<``)sX8Qn=GR%jWj~FUKjtX3KhF0d|4+gFYbBBl zX3x_L->m8Vu*D>*FZCy1H4H zk6Elgzy8yYofWZp3Ppa`i*D8RJ<0q%ujs@5$}{<~tS_1x((B&(X z5AXh!u}-Ks-mh52wjn)PuJ_Ty+pTlP&5)8mJR)F0MP*?&(~uC=x(yk^a)&Kv6H z^|{NyGN%5&bu35Lfi3p!!n-$Fe5*WO(6s#9mhJp&v?R^l`)?&KO*xxaRQ9x3NwvK@ zEMXC2?gF8$LMyC%4;Cu>>EHh3b8?5J;EIibn{4MV`cvaK^~=&eX7|2K!&Ms275{=1 zG zp4fQhv`NGFROKm7i`^E^a``habH&C_H@_*JX}EQL$BJFsE2KmO+g=OB`$o73tZ#zsIqCQZ(>H7lKQC(6Z22C@Rc|;?{!fC8p?m0(+8zBX3=h1$oD(a|EqdGclH_nI)iyf%@>`lt5)p4aN0;Q>$K+29WC1PuP>Y-aPsqem0io$ z%(dtb?>p-%pYiP0ao3oYTxqvnY1CN=+?F}B>1gfg#8b(!K60gN`7O$0ZXSP?Zg;dN z+v}P5yc>?+E`?mPop@r?j#`nKcgma1rR|?O#3*(1a;}LhXt@+E`#RF=lShA{ZuIso z6HfW@M{JF;I5h3Ja72zr+WCiBZ{BjBvfQOMf7Y~XRY%?|Rxs_o+QuSg|556>)z!tt zlI!zNC&ivo)M|gtd|S2bNB{C|dCL__{zj#>vKRh-W9hZ3>0&m+>Y2|@a_Y=nTR1f^ z#o2o2<(c!_zrC^9wx%cI=)L6PnTv|o1_z}%3Y*UMJ^tvzsxLYoJkD=dJdO&qJ;$Mc z`;(L8#1qRxtD07M{rFJ8`|9M}x`%I_W!ZaVE+|xEi&F|)W$4{@mZx>gzVfvqIJNI;QSDG46Gw_M| zxkKi4i^sJ6^Lr9C>TNVE1350r3t9j1`m|8~grRQB3;s^o!`GPW|2&p&Kb~@B@ts!d zfBQcE`DdJdN5|n-)do-N-~RczZw;P)OcL5tlqtGU>pH`SUw_$*&YgEoKJ|QQtJ^Zs zea9AYu$CS#pHx>SRek=v@{-S+d8P9U9z1`)$nU=6r8x<&`rfCV*JPG_F3g#`$LH7i z^9$>rn~M47EvR@IcFtwbvDwkb7jKDC`@7P~ByzWB7u)51*DDrh2<`SVH(I%Ian0Yg zHE}T!J{iBVb7sinW`nu20wq6mIwnc%BYwxvf-qs+_%PRXiE2&_G$OFaWm5&VM9xgQv-)LsJFh_SO zpS9nq%8Ro++?F*ZOQt3D$tu=qU3r>bXz-Nj*W}_0QF@bKXWo3UtqZ;!;azYM`vw80 zo&>HrU;aIjUa*ugJK3Rscga;NQ@_(0J`o8XC zX$KC@-Q;!s?$O!{VaMPz8xz$3b11g#2>1FMBj#sN_$kNsU|?a(Rk5N^O|0w}3jQ*w z_k}|T6{6}OtQ12`L*9j3Fe?e zumiW^5s#(4DXvL|`6_E3Eedk3*dkW?+`49}mrkX1#I%&7l0xS`TW;oj8F;M3>`BCl zyVFj6()GJCIXU9vK_#cq16N$aT+%21zM{o(QCN7jdvNMuK9-F1NmJrZHZEPgW5p!_ zDZx9S0seY5&uVSU3A-jf?Nc~3Z^}#1QW>6>gk?E>OB9}(O#LW*b3&$C`EKp=nrbdW z^DQSgbjB6UnLbJOYuX%PrNAvF0hgDkE_?g%tFZW{%GIrNOjlc6ZOOK_?DPrxy2%H& z!$BZP05lcJe9AHPmDV?r%*Z;;Zj0FW?*$h9XPU94()_sj_n1cv64Ixd%FVvLNw{`w zLwX<30p1Q97DJ=82($gy;ed4?I z4=36j>K5&aTmC?1u1Z%*MK zyPlprH^n&U-3y>08mDj#meHuFx|?@nwDM{7Z@|J8EI z@4R%VfQa1TNqakeW^2fLJN=0DHdUV{Cb-Rfro`OV?Do@zZTTuGGwuqiZcLuBN?*

GQfy=|)BKml>0NEaxAMvGinlGDFOXr@>A6rs40MFE4C< z_{ncs=54VE$e8u44L^%JuS98_)jMdTIF0rE%LyEh7fLB^q=K2uGOu32Z7o#9v?oX@A(DSNnEZ<6TD#EfH1CJCqP zdo@-1GOa8RewitA*{P#0%PeleA;yG9Ns-K#=VkAGynJcntSSYSz9oAHyJs|>g)i2T=X<*KormqRRsm=4q~jaD?gf?Z|HMT0P7vK4 zHu29nzDa7#Y09R(>sCG!lNPclILc_T;?9Hn6KR zf@l7fddd!rY9huq^?>yAlnEb)g=jWaeN3vyNC!aEMX6jD<7FhC^O?|rB<{J|Z zY}(;G<=XajIhxO3%&N(f(zcY^+#0;KOl#7$N%QhQR#s1&WOFI{cE#OGPFm8|*Ohy( zi?2y3JR`U&TIR~r_m5k_4c3&?ZAoWznfL$yr*?dcz@qwDhN2-4Tn<~PUJ;pcnZdzU zeg4gpQ`HXC^iAi{-(;#bTdJWe=bBA1Blo*x$KsQGV$wo4Hl?wz<~{l3|MmL}8$@JN zUkh{Um@S#`*VDbG{OEg@aLMyBi*7vWQor{o{Clp9XC1znEF^+@Ax1_~+q6%1I(7V$Sh?|V@ZN&@jmYTsS>XlmtH#_|J8D( zX0d>o{iMPhD{hoenk7~s@!4`l`k`f<>BmA?pWX7yU%CH4;}X=tShoLDd^rpw+I-(+ zWFDwleedh~eTgn*+jc$9F>CAXR?xEjtxfeaX1iV6 znor!SDLU6T&%-XKFH`Zzi3=G|k|Z_e`J^2Eqp(72*&aEC88g-va|SatK0K1Hwn;%5 zHYm$d*}+<$q5I2krljwb#*fKz1$+11JG12G#EcC^#>(?gi51+@dg9>4Y5F2I^-A2+ zy{YcE>yKQXy)CzewQtVviF3n*pP{TEnsxW-{$tWI(ZzgUpXuED{YjvE%5#euvAx1p zPq&K9^WivLcI`#i!CuoTVVRwsZ>QPcofhi;VopGg>QxhF-eafll+DoGdy&T^IQ){s ziQyRYBw_@|fuM*p~3sor^g&cktmM-KLQ&Dwi)b#bNKJ^O&` ztCVf!f4z+=XW*Hg9K~U{h-dZx`rpxt;*-ed$E_w6?B+Z<2s{8lpoe@tHTKT``-#+HC=z`0pgnt!G zAq)C>T{qru;;phVTl~{aP;}PLKc{8F@BMlC%END2+|zSRyPj=bVR7iy`NT~}1VgH4 zO8N45mt5F+{YY@+wxyRZUYQnrU8wQ%nz@?ZhgMieI~T8MD%w14ejESo_R0!XOHjY= zux{Cps@@kX@A1XTc+NDw=;ki4YSodFEOYbhdjGA{t4be!`+Gm(@BxRG?Gxwm|1Dcv z&EIz0P`5=wvMu_J#M;_re-)VzJo;y>I7w2FPwQM*!fb=-s^`D{UE{Pcgu$=C0W$U( z$i$byuf{hk`)$MIt|?n}^6Sfuuc=8)*c@LNUtMwL@E?m8@)DmP%viY2YyY2rVY>gz zUKY>#_hmVwuK93MI>J&%<~E;0G77ENzyFD)(1Ikz#epuqffutLc{{fLQj$4^Mv z6(rA)z3kL6aY19(A1R04y(=d0M^}5ie^TFQStxgJ{;e05Vt>BRj};8HyjDBsy-@b6 z*o|sFk6+30&RW2D=Ej<``QHv)Hgn^dDin3+{p!8&{zCngBM;u(GqtJqgbWH)V*TGs)IrDPB~RP;?v`nE%Wk@O<>`6&+?f*N2BFMf1;Rm z%|5p;0r^YadiTDG-DJFJgITH1_MhqfUtgWN{G0t~$NBc=inZ1HZ8t&jpx74qW{3SR zpIT++1CRCzgDTDFtsy4so<4ZK+%mUE+0yBzoX4-KE~y29%xCXpmNcyUER_1%Nd4EA zkVnc_);`tdxVTf(qr*-L`-mUk?i&kD1uU1}-(7saSmLu~!Htt$mm^)Wrbc`Uu3UNK z@Tp$0H^SnZe)=$(gcawV&D+HPx-$Fo3BG5C-+>xR^Aw zZ9MV1{8q6J$G*>c;8uU0ao^89zXr;O>N_&BV$6_|^wW;^!i%6MveGs{4W4ZTq z{}h>JfAX@~7WDH!Jn~UVFKX(MHLq?uK3=I);Ly^X{8QXP+7u3eKB$O#33Qh|Y z#oA?WpGY2fWGCwI$@BM;4OOqSeW>yDD_;PsuuT}F?zzBE zJc5?XS_SrPo+45#eIfnX$G}uY@EGLpi5eS%s$R{WR~Wd|Wi87pzuhq8e%bN(~8L&a(y-Uh~O#bE59w`X?@m zF8_P3+_<>+9^ag=eg{0Ar%t@IN6Ck;VgIKM)2m7gsw(!|7k$h)*Zz0MwY}-eUqQ)1 zw^R1;L>`9j-_wHZr@KCMIJ*AlnI{gC6Aw(fDYZg(`H~ZDWt;MC15b6hn614e91?n{ zy*)d?|J{s3t(~7Mp5BQ0(wMfcHs;9GRSC=1_DOBr&m!XF@kV0a78kWw8}s5%Pka2; zR^0l`oGPuxqix&jPtK8=eW2@wRnh#YqrXh&C-q-ie6Vfz>8z($Qq0ceFL*F>sm?!7 zt>rVlFa7$cyl3+6W|_-Q9QPwM>_gdG1ck2}wk|3vlBrU?(bcu{@};-BTDIImhXbr% z?Fb9$zw4~?BT+tU;hY^4!i|$T4*DJSVa8`C@4d2m?xDxOrFYGj=h<;_ z4uAE|YqBbcP(BYHpR29;v2cgD_`4rgD`&n~Z}~Wl@zS+s-&;59tFm9GJEi^JY{mSp zcg=RTt$(Hm$A8G&yDgpJw4v>fFKB~d;01ZV+qZ1~?-BjG{fYDc4C{H0eJ>BHZ9HuM zWX3mn%VmF^KP~(Z8pQ%HM+U8I`*-=L&H34n9wjlzf!5BxuKj+uyx|ULKnk=o20kd# zBCxoPhXH+uh~g0qMdkx&3Y|C%y+FNQbm1N$BL*GR-6D!D0*hOC7`PvDdmBc}*YhTK zf4?fTtR}9*(xp`YHSdyzH_x99g*Xquy;x2iq%S>qZz9ccOJZ$E)<#L z@$}Bxh3k4=^j?2$D!<;iRY2Lhe%;Jb-YvYa>u+(bmD`>v<`=5A@HaHSx-xam?a;FyEN{PF+FLzmwc4cGz5H9{ zU*4BgY;$^SE|UNHMSN9ard)VF@B9^pT3e27PnGT|c|WOq#;3@1j|Z)9_NjH}eGGXN zfB$C{pF)eo*Cppme*FFy5bnV7KXaK)sk-`_;>w?Y_;{qGpZ<;G zFWQJf=bikt)pPW?)&Bjl;jv=Soj5yO@ZaYeuh-(6G8Rord%XO~vU$r6y>YR%Y*U@7 z-8u8dXO?3@lic&%G)=?Q9RrJRPMF-V@NLS*qlb=83Hdf9zvYGnc z;OXZ}o4mGIajRvk?ABYWy5r1eGad21f`n+zav8@K+m%QAwk=<@&kwd1pw!XQ{d zMfcySI6bYbcIw#2-4%DDYwhEge|WR>ZXTR9Me3Mqd!qJcgQXt?x~2Rl?cOUf`Rdob z(GxdM%Cu6Sdh@sCjPPb#gP!?r5j(=f4t(;Cbcyp%{`<}9P=DvQ7|$1MFR#m5C*Dt_^q9euqaZTW|wd0V~jiu%8MaQ3-X zoONDo!uj*uD=zvxetJJg<%yfzPD#}(5stQrQXglYJo0j?NzJ5Zh1Om=F?UNlgypX% zxHqa*DM}kXzZ;!iXlXPn=tK;8lRZyOS0TWoQg*rHcu(uq%z~j=T4Vb3{5kq z&2u_yyxX#}R&ln;^6Gh)rq1;cFZ&MP0i5ZSuqy%Rb26KK1yhiuv2x zG@}SBWBjoMV($7?kJS|3cfn~yJEdj|Mc|hg-K^UU+uD=eW+;W zom{mqmhL}Zoc0mhA~Lc1$Lwz}56bWL#6c_q)iP+l2SVT|56%$NvgC{WuaG%<@a`Pd(iE1^rDEE7rIH}AdG#EUJ)$z=wmsb=@hqUsOkR@O5d@bsP8yy54> zp2KcO_f5XC#UbF0&7<(MPj7~9e8J2p^5S{Rf(-4=8z=E!7YT6YI4|ezmaqE+GQx0s z1$56H;C)ooSY_f4q& z_FXNd=NsmxpRYOKe!WZ}a<>1uNN$sR4{ppVUSXd8@!s_Ih$S}155CEobHSAD^n>*R zPCK5i(0yNNx0WmMREojfrJ);RBxS(_Gf zOR;Z$PxgDauQRM`WA5#Xn=JY0a>eu0$~j%@9v@EqX`=G(*AJxV0s#zxYEnMxB@S^6k8He~kG)P(sf|wkv5H(x7Ti$CPmBW+&kqRzUO%G`=9sPvo8wf95~Oo z=WBe`$+flX+69tMc+Ow>|Ci5iFSdrGe-|&6oWiJKQ}V_f%T}vN@6H!UN;?KUJr-^P3GpG?`(j=tgusJ!o1>}puLYo|`v z)kPth7mvFyEZppG_r71?konf9Q)*(IP99f{Iir32(#qoRprv%b6O`Nj>pX%E;#3)V ze!dz|I#WBn=SHBhvij5~v6^ctHcgLv7WRz$-6`#-|8t9UufH#xx?M%8Ai}`h$-zaY z*j)WX&Xl>k)B|YxaPO_$o(=c)-EyY z@+@7G{<%jM9dh1d6z~1HS4qpHIMU>}sD1q|E1^^CijI3;m(XbuIJ8%c-Ov2_<*tof zb9&3d)pM3t+^V~0K;^z$)i0PEs@Uf0B}7nC1WcYL4A8}jCR zi2VBB75Xx1b~UTMT1FX{2Q7*|xjI^X=lRX|ik9o2-u-5IzPnca*waZOr zOKrp#*W>(ZR`u$(Z@rg$yY#<4!Qa`M@qCLF1FK`>+@w{jN?)B;v#!tk8yr!kb#ix5 zWoj^oMb?g}*B>fmuZ9I(e{Fhy-MU-r+~@c7C~F$`h8qjd*lXEXplXr5|K&`3cL~=k zGKbcxPPxOBu|R2m+k{Xlon`DpM(*w6& zeAxRZZd>AZ(5$V-apv{6g`K`cUYJz7=VqVH|Whi-=vnoU~IN}?mMe|^$I_()2F|Ej&n4-&E;U2D5YIAY37sD>%KZ|PGO&| zY^Pd#TXEgLwCv+1Q}-Q6RRIWv8+@KKl2{)MjBD_4tcy}jvI zk>A>uY4a*i2Jhj2x23DrAgO-&uZp|Jt1tfZxt?~)JZFi5!IiiDcDF0e%(c_|9>5t; z`evrn)9Caw4>A^%c-uX@5n|>m`(V%A$3J)StqQ(gwBc*${XRwcS2tfu6(-c_KFE`g z+4cX+^~?J#e(mTJ_-@_m#%Zz9)NgVpf*Q?c6-M;?4ME0s3YsvQ4 zrtv%0xjU{5OxCZS{-#G~jql>rjx(LXqQ};#&pvtfe;e!T>>UxJr`Fs^(8#)beBYel zFRsr&_aD4DQiLd-!FH3&+FGFEf9wKfh%?XxQI;iZD-xRQJklP8qjb z3l~p(!`j-iXY>5@(yTeIVsEz0+qeD3%Iu&8Z@;}Rf^6_xV=>otNm!?<{nY7RHaT0C zGG;HHbYY{{6}xHoZ<}42rI3;JLgRSzz8rrJLxCwQ88PDDzyn<|;+lRB*3VBZ{2Ikv z8pi&j;aqvZmU%b6?6LVCGOwwf1hQ0gbVWzuRJA?B+T3L!s%wf zq*Di{Bpr%czT=DKKQrjwM$QWnXLp+JK54f`J$aLqYXw*SygBz$3l1cn+CN>2Td}43 z>(M3ZH3!$+f0J@c!}5QSUx&-(ioR3lo?q5Y%L{Y#s43|GdUck$zby=yIO6Svr-=q_tka(OjxBHR6TkV>_$Th$vi<2~ zXOSy@$-#XG-`n4Qb=vSru&s5h^0ymd_I(HUeb}NO(N!Jq&T&ys!^vMD?UkQoW=Cml zxYQ}VV(AM$yl+1)R;b=Pcbj#aZLIrV$@fv)Uw^$7_C;>Jc(oD6T1)0_*PS&RE*zP; z;f>7oW7iTpy;N$}G|jrUl)1?7B6odG@|KU+>TgcJqtzn8yX1U{!!MuTj-W{c{$0FS-a_oc^i$rkleLpF^+C7hb%$o zC}kZUw8>(Zc6;*t@;SR!lq#-Zy!=nb@6D-Ko6gi$PQ9`BPtEFuPc)9(ZFf%4U^G8h zXtaAm@%$^>kFU6Jgk{nXd!-t7qpR=3u}yQIJPX}s|2n{M!9&%C zjxW7OW_&(r7x(@Z&s)`h+X_SGKKa_Rc*=Ea2T`975v*G*0^N@ahDDz^$t@=1aQG|t z9E-TO!RcKBPG4q%deNON{gV#HGi;ft)0O)m#LMnj^jQn3*P8dIJ98RGK6sXQeB0-1 zmsQ1Nbj5s@=UuRq?Cm$aEA9Vr-)DxX4gDMASE4TYSoYYmG_K^nD?KmEH-k!z00j-RS~j+a;DzR!DlRlGQ7e`}^?r$pO>-%nl}K3O|&-a0|+ z*TJ)SKJ5GPY3@YphSnDgdS)DN(kPhrbVF{Sn5A^thfCk20@^lbcpjg=TTQup@ov6} zb931a%`kJk`MNaZ`fF3=ik)$9PBm`6$7zwd!YF7~c*{w~eY~>#^`|-u&v5NIwQ&#I zq43wc%NBfpIcL%Qk0lJ}qTSTbzkRv(|E1@kRAsv4{FeE=<^7-n$DOI;%q_<~%chv8 z>7{=353&rDKG?=D#1Y7N>t)V~nZ35wQ=hhl?x{0t5tY|b+H!jf^Qo1cYdY2`e_t88 zCjPVLHw{~E3(pL+Jq;xOl$b57So?Chr9e{HtK*wc%Dam`DuX|@wj zbxLzxdAH2%#o=!)0?a9oY~n1<#A_GK%$64~T&guAbM;~g@rmHof@?%$G&e2aeOb|M zq|~Uo*>v6WRFRt({KCFO-Q%|nJJ7gv$t6+kSw2&q%zeChPw^b9(Cbf~v=ZEuybm3W zD`_$IJ^v{yO(${2j!%V_*ElEY)Z6d8&UbCX*G!eO{0sHoYwY}eI?&~8TJSH1|C4gp zG(InWv_bydvneMpX8*}uJZILKwx7HrHjlf$LdHThwi@4@U@80hU&u6Rp$fypM|QlJ z5I3()qebGK%rcv6N1p^}&sJ#-FU~orHSK?iHtSZwoF57o z|4zA%zR&mD?nO1dFYi_Ke82nZLGYXFsM~p8|C8Cx|J$OVY33$Nq3C-r^^VVrzFU+& zfBN_CX(wE4uf5H_S#;;D!q&rQR_dL<;k)dB)Vrm7cTY>-_d#=+nzkyZ_wCaaiPz2l zNl*ClQQ}jGzk1v{!QDB>ZyVn5mcIWOoZ9CLa$lS|ZO5Eio%!-?p-*Fe|G&BW_l_0s zsxN+*pM7S6ZHU5KpG~dBMz0RK?XaE@chGJ7BiqI|Y?oBJEJd?aIi&&@n{}=9H+AXt zUzxD&MVN55l+UWP@Z>XnJGM_KcFEt;WZrs*`^}-Sk9!VGKJ%ol-Qlp$>^b&r?TItC z&X7#I_TfYA{f9eypV%Jqx8J<{IA zoidsH$>P+`vM-YB4Z|z<+-R5k{MozGL~l;?^78>v(vCfX8_X`+sQebWXJn{*y62ol zcgS?%_xHYP)@1wty_hdKGvv|AvVTFxo;mf{6`eED&|e_^`RVldI_Z|DeOBrD^SQri z^;Bd&mSa`9)~Hr^t?x*b^sVDJ-AdmnZ4;ec@vX*AGmzQeFz854t$lpWN7ni7Cr_VX z_PoXS)?>|9!+<%trtOuA?APYSw^$x2Wc=}S?#7&dA3S?ZUH4dQpOkrg+XTV&iy!t* zKVfa#`&Qo0bIE7xhUn8bzfQiNaN@R$Ula>(eopG`&Iq&m8Ld0NGF94JI-hwRePYHP zpOcqgTZ-;K`ms;>H0vih%QnM$ZA;??X~)Ilbmtv8ovJrrYeLlu*^`;M9&@%TZ@ktv$M|YrvAw^q zXXoRqy5H{<_rLmX_y13^!#f5s$cT4Oikoq;T02wKna|IJ?pDmqnl3GJ>-716hH~--`cIgc<0PM?loqGt z*4kZXmCW>V^KoG*AxEE0l5?**b$_=0yw7S@os7DZS%+_vVSIe?@OR z7LxV9FRAHv*bH=FDac6@Wg+uAbfF{f${rpX4-?<^eebulwcW6IBXjJO&JXk6OB(cV z4NhiFD!FmGyQ0+9bei9W=(RTFFE{uQm?*yVDn2W0maTIOdAB8I2LN!Zv5%GXR`d8uL4dT6P?@dZvNg_W|o}G zt9tC|J0IsMjMW=k`F5@2E-$-qVcB63wr!`B%HD3DTx&F+WwM-ipq~D;GT(Hb_HEDZ zy{t(vXluT@@y*2Yivj(W_q@u^L`%LA%aLodji0!|!)8Aa!=+)mL{Pn`EH#6p+_51zR%gf(9@pzjoNAGOclE;$gLboxS<;AZmyA%7S^=fn>Kq@m=+5@|Kj#2ZH9rx{fDcsCtL36OfOn< zL;3NK%0#V+f1er7ecCGaE%(IJo2F$vlP903(`GK_Ffi?YBgy)vIz`as*n}xE%^SBJ zEj+$1Q_QmR>YJ)6!RJmrGaf7d(!0I*>wMR9-?GY{u6q(0ZE=ym|H5%c#C(l$5n}{o zRia@}t5N3HuzL}A{|iey%$WJ*dbrWauZPxXw#wG~yqtUbih5-9rw_Q2Q?)SO>qI1ihY=XtW|$S?QT8ak^M+uqPtZIQSYb^2tr!F1zZz5n+joZ>Et>1}7)5?uaBXL{^@ zV~xfc&jYUdMD8lqE&26%G4qw5Yt{Oe&FEtMYT4E*ko04+bpz-iR>c+pr3j}pD(4%U zXZjbf@O7_9(pp`1Tv+POSD}MT`=30Qe>Pc)b=$F`z7(;d7dbYwpS!SBpLLsdOz7L1 z9Sw!Q`QrSI9nYrnJ$;ih-*EocOrdPWmg$RxPTZ62HRM?^bJn8CS6r4E=z6_h&dQQB z&pDLEb9vuHmJ5+5*U8JOJquCv_xbX@$Sv6CXu~g=!%iHAe@@DRXW6=*eZOXCZ#Fqr zJh!3u)zio`{b!dh5xnJX4ifw-{cY2~gFerW>m`Na!vOnvj?u;IOxdXMJcJEc;_F~4Nf9NPo4*3H_UTQ4i?H-BsR zywvdPbEljZ+wUKn{XKTy>k8Fc#m|%X>`p!&7JNj1QdxmXx$OC)X-5Cuqb-7sf4y2| zr!{Yhi|n*hX*mwnPk-AM*6ICic>M08-n(y%75neIanIh`w`@Yhq{)jpT>Uf7=!mWH zI*^dN?B$VNb>(xP&Mmzoy=KO1t)Eu29_t)gk+|}~gGWlQqE}na*wQ9!Znff6q*vTT z)(?C9qP+MgPrveY@ACe@yIdvT<}Y9S%;5ASzRMRvqjSZ}Kio-vf4SxP*YX3EE4E~3 zZB@Ns(>ME;*{)7ahPh{B?ilR)CAaTsWACY_+>w`Mw;vO_X1}9v)4Kg;dncaW^z`bD zfP3Z*Nqc_3PnPC&wf=FmdFGk^vq@(^O`5lSu}Qqnqp2$HYvZN`x-50Ay|*A>`tJUR zelOd(9&%cyTYWjnngBX`c0yik)^QtaMrGZQw>l46OlK`=S6;ZXX*>6;iSK#@oH_&# z7B$vNYZ*R&|MaZ?wn=$8%NGA`Day8N7n^@@gVlU<`p-F;k{dtJYHoy?-izAtp2zKM?MN&L!pZ;jm< z{a|T}O+R)#ZdrTCZo|(F_uahjyV@s;1v_b3Y+BgzYMpSvGE48siKg>TR9aUq|0VH0 zL_YcdI}4s;Dwon*Rz2I5w6E`z1-Id=mLr>%u|ghTW*+*KOa8vB9f#qduzSWnI=ja^+rFf9jO)wlO=;GuvLw zOpEf8UGJB%ZqEVTXyMeSZyl_8m!5SwXSjI#iucl2E3Dr?K9587{q^+x7dwFH`w%w=*j5 z7ewfI|4S9_Z>u@8@c6uEGmn3=jLUjit#qoWv39ofj7`?vKMcOcgrB+|D4(v_^1ReY zXWpFT*&hA;trIjJUG^!t@+;yeTVVZe&28CQwM=JOH1Za2d%w_0Q*GhL%ZB$>ELgaC zZrf#9pGbk;rzN&;=kkV_%&gGRD>+cRSStT{t;{0l>o*U+l@_~oSZ!iqj(&Ff>lq%A3Y=JrP)Gd}0+ZWWj}xp>(@)%V~A%^#u`+w~zYJL*$ zKbqXH`@QznbJ=Tr25y4y-fcc6_Qt&Llhd1v_v%g562Cvc-Q)b_!cE2q4Zrx4x3@Of z&6@K$+Vj%`w-t#;U&442OzuwSF`7NMieO3SC zVYP{y{;CFT+kQEqYLfEK*Ec55KY!~9$AX!gOkGV>pKr=qr99pC+}C+EQ!Tg^_hee5 zwQtyWm)KwReO~6fbQ_DS!y~u(xni+%l7&Q_|J+DgmGyd~iQA+((~s<2t{)Jey(lrq zrr4Ju?v3=;3iqWOc5P@~T)pknA1;IQbzN`vi11wFD>=r&bN4>?Y?n(i8?J_EoV&ez zm(EUwBMK)hFDFdo2AANo*2Np%Zr%-QDvIzt@80j=p!bhyOYK+D|5f{@EbSKml{=3u z*Uq1<<+1m={%;oCiZ=PyIa6KV z+{#z~onptSW;<WO#L$cI-f;x=C-rll#JKyarnt54 zm8(umyppu8rFwVrYpWg6Poc`JJ%fyoG7J(!U$#dfM zjSVq>-p(waUH@EG%DnraM{`?*g}RvoQf@HugR@3hHJ9tK)veUpFUlBxW*VeQ7YP2RdK{$`8vbsk>u z_YPU~&!-hZ9D z{GJ7;bGB)C*6od3?=5+gvG@A>hhIzOvTBV*>}d|vwhr~N>5ssGcYJHc)B=-tg?J-8U3~}?xc-}>tbFfr4EkEj>~0Z zlejMSrvG@5WqiS>^q^nd-TL5Hn*^jL6fbk04_WQA;==LtO$uB4oR5l5i8_14=UU=g z-fvN$twxRsvt0e+On1+VJF-(i`PmN+9>u-$b?@Ijvaffi&F*7;c}`59%gzVwpKP9D z^Z8y>lkIl~{XZL64Gi8r-1(=d+Ge4_F8@QNdzpXaGL%T9pGggk)A?l(5tos8pUr&^ zFSwn1xbR?1qWlZr$$ReQJ3q|R(|z%H^Nl(6bCg;2H&(c^3;2EUpT6PSPmNh!WkHwI zma2Wu+?5|<^sj_{f8EXY82P7#Vo5HWObZ`P^zr-h$JwG^ZrG2(`4qO?w-G*ZPV3>-Gp=(kOLxvre3g6OHuX~>DEJiudS|}^1^+k6 zgSXojd@|*4xNvf_!Rxg)CRYpf*J>6@J^mu<(_J27xwZE3S>+>NgQst(DYJ8ztDa?R z=6+w}`Ol9p4j@O z-O*zXg>^bb74{rIuKua#dGV)y=5Ox){kQ+}C7gVDU{ckJ-gn!WRhBdRzFKGo(qOrk zcV+vniF2;C9f`CS$_DjmAKy72931qhBIK{__dAP!?LBY*Uk1xzz=}sY6vbhUV@UUk z1JvGWnE)x+;Qby@Khx0Z1h_SXPzPd3C_?&#iXbI$qDKHyg$p=w80OUey}rJAFIThC zx83)7@9a6wmUpi)ZMEhjanI_NuX(=B0$JI(H0<-ASpKE^xVG!4uBk8Jo+|h3Xu)EID2ewot8Yt$*~t`-!!JKaT&OATxn`Yx42B>GJlI-rS$LZQ5k<*(d+Z zv*(W7|B%UdaRvjZhsB2y>vd>6OG_V*9Inh0Nsc@}Wa@0;Z3$k}RN19*x9IaA*E9g`4SBbu>n*$WlZ ziJCs$m)NsaTLk94l9a!-Ax8J%iCNPtrq2D7)pzpuH zCQ0cFah20zWA|T++xDaO)vmgixt7%pru=C}_GO&wb55j3UW!|_`<>LbDROH1E3;=U z?+<+Y=k*6a?&o1oKKbOReV$wv5cBwl?oL=k+?4?aX%-yzx&m~{Pm*D=QYm~E=l>_ zd9gq%U9-}4nw|Xb)%-g^9ho}5*#b`enORb&w;#Q{;d$-xt9Sl3!g}wO^O!N*>v0AA}Mh>5wL`-UQ?( z@17Z2kA+i~%)HP(qvFL*mK`NCUtjmi=%{My*`nce*yqR@?;|&C*KepO>dRHKwG(k# z)ZuS@G4S@K%^GtJ=N-Sih=aFNp)8Q?Vyf&yA#29^ zph$7W7J);-i5qo(PWQEu`efKHS3N6T?)3ADl}8JOqL*&lI(>S8{8y2e#>yAkT_$YE zQ{@hF-ncks_krzIFJ5nIDR|~Br}>pL|2FgdYUXc@lVx9v80!lrcgTzDw7d`%>QX#% z?fs$^Nw**Tv7P$smG^C<8OiladNiLxdfK2YV)OV5UqY0$X5?p~-DN&WZ;!xRukWQM zXKXHOxY%;=?j9$!CZ*^!X`x2LBW+u+o<1JZ_G01Xj||Ny@p*r0uBmBX-^Q2CZk6nkFUtjOJARqFJ^1abUZ~%D*34G{a1P(su4wKR$;b8kzB#`gfVaxMd$$nH&#`JhJX@ z*(U#IlM^l_Yo2;~G^jPT)GRsoYBJwtXYCgozS~C{Ff<#+6hd-yB-U1CW7*^5U0cs4 zm?UgByUh54(F)wiyVu=X9l^ghep=_1;Nu=&lR}T2c}H`8l~u_HLf}>hSTE=4t}+tW}Ryc-CHxS($tMTGixDi@(b4 zJ*^p%3-&U9tNY6pH|r+|FYVpJyzQ9ODZQ-%b~iixmTqfRTPAR~qK$u@8S~i?@i$Md z{xz?DHBTu1)x!0sg$~WsuM}B$LH&!(_b)FtT+Vr0U;ZKCcf)h7+l2wOKK)!i<4FJqbKi&0xb9=_=&Dn2WsHqs_f7ki4%=1ak`n2$OUh}rL3jZy5|9I1v z;LRuI1s>SvF6NlR<9X6hB0Ks8!y(4GhEmQS{pQ`zIGWe<_<8#?AH ze)%eSZJf>O?~9Di2E{#r>Y{z@pNOxTI%OlHlB?w)50OQRzUj-Rz=5xK?o+`9PcD{aNVd)sxhj{nn; z4DS2+>9qcS-fvz#Y}n^Bgwo$0flpuXKD~d8w|>&)TN5L)ogb}{)lJG>ZF7KIyJU^k z{uTGvAKEImrgS2x9aY1YY0u<)D>K)_FWbE+N;-&ttFq-y*CD#g7lJ!%s=U#vf)pzn7J9>ZN7I5(oDstMU zCz>srg1Cx-qesB_WbuQ9XP0HNE(^|^acb4wk1c)Qz@-VO5;fezv)OQI47jHb;tMKN zo%tNLDf!;1g!LTG+2C{vYH9K4AI|pC><8V<2jW6q1X?&R=mc*qfee7i9^oi_ers!X z^IksXTkB$XGwk?qtDgVUte%?8-N+L|pn%lbDL)~Ceb$pL&}OQ861a&8nna0UpS4By z)`U6N`krhtTOyYQ3N@j0&_t19;kCYE`}6bPz1ioW$&`JK`@iXp)doxc>Zm0LT>iiA zS;hJP-fO0MLMB{}L|WH%e!brJe|m)Wvp=c4;OK;DGiRQhVVKOp$(i`?&(DK#a|NHiw*S+3?o$y%QBlzk z(80%hzu!B(DfM*Io;2mzPqvt;oP#6`nTR0at?HI*WjjkBc-&TWlLAi&H9Nmbd;m%h zNw9=4xk@6!S$Fw+o>M`s9}XPrmA0(A^YJzN?6b$-*L}A>bm)*p!2^d0*K>Zn-c#0l zJ2SK9@})zwU%uS)@BIHepKmrYv;X+_egFAuYonWYv?)&}*8zshpYkObrsUq<)~gx3 z?8_fpMMXy`<@%kE`HsCPF-YS%zvsK$X}O98&lk6}uxPGhR6@%*oob~j}c2AOZ zxK!3L(XA*-TIl(L2~`pfh+NXS_1O|Rwi^OxGIuiQw5>Ti+r0Sgt*!I+hlhl0$hx{p zVco?Of}b8VyTt7{AUkoQ%-`4Xo&UZBKP#;b3k-CutE&sRp1))gQZIzrJ8RK5PzPlr zpG>Cp5f5{z@iY4)+thc(IhSYY zoPEKcRk;>E(y#x?t-t33Q*UqYp6~anYd)P+pJQFl*RW%U#kV&%ovW&>5)%{ueA~XC z_uVPJ8;9N1Ej(3g@x7aTzD+x&bo`Onw&^}LT}@#UA_t5i2mJM-W$ zzx|V2TeH{vzPkR0><7t$?S9AO|GmBclcf|41$aJb?EE@qR~^1@TY z<}&DvEXcKxlHrQ;Tb`qHrg0x&ias036|`xF{O$>dR&R6AZGCk|=h^XRL6Ta@mo~5j@LyKOV0uH4VvHWc<8B`}peo`&lcb^>W=m@Yd~TGro4~i=d5kILobo z9P1+=9$K+|Pw}yvVYgTPYj9DN^kLO=jd{_wuV3?=3wT}qqxz14$hqyO|0(7$;Q%KmT7a%aQk&E&e@wdGA``z;7c{_V1Z@2mFW3f44 z+eeM-vr1gf*EO|h>^1A=A!m!QkM8Emnq&!*HJJHCSNcFgB1;?4%wnWfUF+wZSXc38YiQ6jwjPrR_K$n8x3Oxg93kv zaby#_@l5&INA>5~oq76tulv;BZv)?5-@%pQr+>R}^YX{^O%6}Cyx#a9Jcdzjyx{SthArmrwp|T~bgJ&JWwfv0=_KQy zt_Ks28N9tR*Wz?)Jzw*bV=wAr@-Ccz%Ie^7YnmfhitQWYJjou#f;YdL(>BUIO?JsW z)_%~wti5TWi5t&3)(7kL4gddJsq_2p@;j@3_lP||pZB+~b+z`4kAAw_^XnX*t>v}Z z`ZM@fEOVY_;@3mLcftcsPmjO%WbP5~HF0H=&a?gU`EvE9Ppz`ROs8|-)Mtt&dC{DdOWaNu9yEp8Q;Mj zS|9U$UAE5sR&rov?jD^fI&tS`FMpj_#Kdna+fEs&&XJ*m3sftx@g ztV1DlS(3Az_*#R!i&mS`+p6qVnjhc&TH=nx9K)Tn8lHY>VM#mZcOYl=!ji{T+cFEE zFOt7K`=5@8{b!+kadU@9CTYu#3Dzy{;xF1(^z7Gx;NSM={#l_{^7Xb7T@os-&ejWcD(9#xU>KFJpXT=#-^_7 znxCKZJKIPt=C9j%&}O=LKwVDspTra2KenCN_@3X{?i#ZsTk??u{rv6cHd>4DOr68$ z=l^^i3)iZD;@{i;cb+Zm|De9SKg!Pb*mC=b)3=S^J=J@cnt3o;CZ?h*x|07x^Lc)Q z;%DtTdw=OKxo_p_T4A-{f1h}Rr1!k1_uTtFzPw({`G4}K^zZjXTi%AIKKyjL+VWGL zt?Ubfb2CnVy6bPGxn}OJMa?o=D;{j)J@h!}q~;l=U0K52;a7_9zsW54X0$!$;gPk` zC#IZwyeIZfi>*;(`u!+JuPJigFB8Az>Mgy;)y8>w#`bDXO~Z4oyCy#F-+Sb!*@Cw` z`p3dPy=nEG(fwQB{N5Go(CU@Rvd7MLEPFbsRr7e+gqX@BXHDLQh(FoZJuBXQWBbMysnxQFpQvo&7B|w>?)J2(+ZypTQ25)Au8q zcJkwUUvb?VX*Xo+=TB&`T$3-C(|7Cjr10uUq5IpDGd1l_{4$-s^J-ekscq9EY>!X0 zW`16E-L8DIeA2poOLo2g^~{^Ou>D@rTb~ti`#N&vXMz^5afbhX-#)+gwcWLUXEJYp z^~z&B=DIp^w-uL%YSmB2Q#s~4|JG0caH_cPMqYVjPk7;syNC8IVS2^5iYwyJ4W_!e z;fLGS{r$FjQ_BG&NQn%DQa$ z?x9ZD^W_OFFLIteYAf9nb;sfO4T)!e%VhnJyf_$i@ZeGT$sgONca;C`u6$bh?x)+? z#JCfUTc3+3@-c!&UH2PLJ1cK@b88N0bavA63w123=B~RR>5^Kc_tEeFwNLk~#CD(F z&MzKhx;%egUgVP*ZY%G;D3^KS|NN88)0q2nMg1;U?_XGuF1h`df{otHH-}u0SRDWK zD{|Z4CmLUmW&ZgTFP3DnHqL*qV24Hf`5E5detoRHwd>oZd;iPt&AS@?%kT9%+0Mgf zx7_bn-L*DKb)CkQ=-Ia`+{@42fBZLU$ArwdZHE8WbY{KXvekHApEvXM_4{honv?Ex zUHRR2_v_b2)rWr`KFHl(+JEZ1WgzP=$<;UiRVfKJJUyZocO&NL$Hl!qo*}p9{dc{w zM`x4sukYDYST^-vpC9$#cW;}d@Yx%ur86$ho;h=WpQ`aJje?ck>uYCt?9GC;QEQ(3u3 z0$v2l?=SzAmUMY~(TZ)8eqHlX@_qMxs`+Cs|KF|uo}J(3%+f6Ty1M%2_dxa|x+!m8 zz5DgT^LEwj{TH`>X8mGmRyey`Y`S3uEB~Kd;rZVrC%;!&xUJrH_NDaNsmE6DyXs%g zH1V?S@w#kNcKMs9jy5T2r9T&neYY;`uGAF?<&&i|_1^X#Y?d;3U=(%#d2^IPA?xk? zv;0^t*sbrdWi`*-b&*F{x$2jiSMHYj$1j(+BOdqwo==4JkR=?ORXPnv#z>*os# z_dao%y5XVv@r~yq4z3rEedap#+aC3Gb4y=LihGolYdY=ROP3anFT&Z|zui1;f9Fel z)w8E}`mB#lXYM~=`|y6%i+>U(Q&&9+{XWIjI&#~hecSUV$}nok?AEHhHTUtKrF~6H z4%Pi-mT#ABe)fHvbH0k&s>b4_XMJX0{;J$~uIgMZ%f-pOw)U%X)|c3y+jdptW0IdT zXQ%EI%l_r+*Q{?TYERfaWlyQ~%{!O-U)XPB-!RAaz&hSkP~l=+E#y1BM8|&rq=@Gm zE9M*Snr-;+o5#67Oa2$t3a%-xTu>u-?ylwIC6}C9KYG`n%I*ICJbCU{+12Y+?sdx_ z%f5L$_}%ecnZ2xOPt49= zU4OOW+WvrDZI>>Kmqj=K{&c)@X`XXpkHivphx~uXH`(5x}t>gE5zd7Fj>6tc-(M~$))_J*v`@6rk{4Y_o>|T_) zvt&+q`L&C6U(NUI+T1j4rT>S|tQSi{L^r1wm!4m5fpf`F=Ki{#SZ%MB>TNSO3me?o zac1^;nI*f<>pxTSi2BcRu__@)=5txP;BWQsr%S)j-g0~TECaP;M*p4#Zoj-GTx{d> z0$$x?7HNK0FP0px<;l6;|MmBFQSGn=mtTU0I@lZH*1NC2Zk%>TB5X~BVMoXAO~Lgi z-M+kGId;+MYTx54<-c~t-#LG}aJ!G8>D-HbwSm#c_KB)ie2RYFn6zeFO!@5xS*NGz z`pke_nsE80fdr3>i%Y@#z27$#K6ab0v}*o@0~QCWR(3v<7Bxv!uo8+|^(r$nchNbn zwv&?svY2*lx2($f-}d#})iSlEY6(Y9Z9VH6Qf~Dr{XvX-p?%FlA?NpB=C-ePc(SGL zlTOl?1lt&ghtf|?B7By-yM3zf`urz$a}T-PJH}|-pYLB5!_niTmL9w4(Y|1#fa<5` zk6&Tg^mfDbX&+uaIz8j_^@$H_lx~9NZn8QwZ4Ow^f1|c{^NiZxbL9*#U-S8~NOwJ&8kU0EGc28vOjQC|{1t}j3k3UXWFCM&OfAewwy+^IX%_bHs?l^S0Z`vWy z@}^fpalfB1?DxribmbgZ|2w&mnDqQ@yVr77zj{^oU+zT2Yqi-Iw}uw1Sa5Fhp9|m5 zUw-#-&hE0qZwn_>H_z1CnYY^V+`8V>J5tie&)mFtW3|`K&BtDbKVN%w&)y#zUtK=^ zSg3mBN>!ZyRTh)ww{;?bkD4VT$+e z`tCmdd#N7pV%S=MtB0$&8CP{`z5TMojsNv@;n`mIPnkK~-?-er@Vdm5S8?8{ys{0I zaXNPoD_lOjc?bW7xZDHlHrb}}%ioqbF(+?l$)xS^c4sC|=Pyq2=e)MAemlQ_wCOc7 z5*~_ZMkNuN3-~M*~T7++^@&fZjp5SxI`Nu@>$%QwIc5HLbIA6DT z#-U!*8^_f)tTI^o{K?AYxv!m9$MlsSjVY0BKL1>O{~K$y{{N?HZ8ux3T_68?Ik#_- zmCmduDaMOh^#|m;E$KICq=h@OT?N(J(!|ycfSIf>`>Zv^>tfL>} zd90_yu2wiaYP;;a;+=AzKSv&UVZCG1XNl)#^PiZx$;D1L_%LJr+Ga6tW8ZN7;QMSo zeMdzOHT*sDuGZ$_f-LUc{JO$QWtwX0 z?wRHX9que-?(5!=m0S&;RXnn%)_i^Z%~Owm&ECQ@W%|2gKaMW@clvA4hVxG=FWrBY zd0x7|`bzujg%`H1xc->&7SHsJYnO}Ho8~VMee`PE*+S!cFN*mNx6fGFYtF1WVWZsH zWS4M8S$VCm+`GPP;XJF(o?*Xd_r6EB_6O{5d$f=3yWxq?UU%CrNfe&2eXU|+IM=gu z{l{BNQ$ERMJiPMk`ij>+g*6q|YtK}?v1|C(-|}uzSoPm;Q{?S8m6tIr;O0DTldpPv zvhJ4tUKjC6PUqf5&PY3w%(rscvm;^a?(VpG`DgdJ=#!IDR;-9UGEd9+=I-f6x@&|^ z^OpyeJ~lJ=i+NzimL|3?*>jKF=_fI9HzE)2jFR3Myj!2CMaWXQu~0F6g}n8=mMsxI zy*py_xHtZ-v#q$lt)}cu=YeYxy&LbF{CB)tJ+&kuAuUnQ`_aN(rGmHZUWqg2&ELV$ z|Ml-WR|*~K;Q^x8JYeLFn&`9m!Q%iLM#^!smGZra$pwfKhN2LZkC>xUnm zv=r+vOwthWs+rZf-Ft2wOG3}ni%&G1oEJcrEdD5+_4s-=XvyN!47;V*jZg4hUikXW zgKxatZ-v!CO9lJeTn?08kQDZqZ#(aTK!>N<;@g=ESp#Yf7T&U|c1-Vi{&CB{^GZA^ z*0~+0RSwTMzp$LYNbfBt|1yr$N#65r-7l`WwEu2E*7Wrkj4IbTt-HOm_E++nmdPy*^T4fx^LOtH+`qZumzk{LZ5i>~xxMdRx9+Z5r8c4Poki?{?&Z7x8JTrX zKRr!o~qcjs<3=T2h+ffbNw9O zC;lz!65D?DS6JYy+9~gT-THIS%5TAi^o_R|WFIEaz11_Jz+L+8HOF>M*NyKgepUQz z`1Ua`B;eIMm7@$B1BL(Ai219u8})j{-H3FKT-$f`?=9)?e~)<{JGXD=`)#oSuZ?$a z%T05N{;hZWms|e5-CQYaqWji8zqxpC{dHBlqmK=%3as|s_WoR1=)3o^{x24@e~R0m zPrqKfoIm~4Hk~Br1JBChE6vwQRPa2BXUw#2d1j>-`%KKCW8wR158IsROx@@A1K+H zN8iK)t89CFI?slPUKQS{(f#3)kVEa9zr}kb{8#t9y}cT|Zs2KVU<;GsXCXr|{tJ^@ zG}nyl$7> zT6U}dY*Q=hGzgV<;pY*cexzEn$_LUk)@7DXO z`KIBU+xOU8`TPHdmHzylBq`+?&DmWwb5oGE&p9QvjckkGCZFnBTauuXw&_#q>UX(ekN3=d zo3%6V&AdbFcF6zxzusB&`CIMdHov%C{9Y%gZG3V?M=WOjlTQzm_tgH=EWunZyUv*NqVw|fiZ~8M`^J{PU91zELv|r}w zk!M2t|1{lQT=rA@>C4@>XZ=3(rD5KUudh2h?{txYpoUSglm?_Up@vU(fbAJT3Xr zB)jL@--zPV$JfjcJ)!IHy#4V-fz$=&X0@8%q+|D)->@sLul+plsrRp1<%GAOK`ynn z#r&L4_pQ79?oom#K%D9dlKE830vYz&``096kiN~0V#9SJ;PU1HcFIHOK@#Ayk4Yn8RRlEED z8rre{KOVL6TlM7Fw$8h?-TO8AOk?`*F4Qxy%snnAbapZS_RZ^GsJ%RYy?EWVGmB3O z2D~|udbMy{_Wr0`o3%#U-ft*txOk<$W}VupzY_Q5^LO*z+i5eqs`vG)#ijDEvmT3= z-`TF)ZScDwZcDrP$$Rhg>n9m5`hUFR9gEgEuj6^;!gnsK zRa|uc_N1mi`~RWKd)}`-SoWfF($r5s_43bYmr83TA6Zz=IAiyZgXilGU!DJ#ts$Cy z*(VQgqwhQS?Kc0z-m?A5$D7wJ?0&xy(^dR#DW|*k+f9MXb$eMa?}_>Ly!BE@O;7D? z{o;)0I!eO)#V<;@3twN`SmtKzewlmar=)#tD+(6OjSiD`d6~I0k+q~n`s!{iU)P^; z`r(Fnw}(ApX|F1T07G^S8UmzZw9NGzj*&`{E@%^ z1*fT%)RY;eJI{2NAGzPx=P`B0j!&ukcie6>G`{}%)}H&H4|P>7;^yCM8R`D?vj69- zN|V#;b5f%`Oj+%3o!Z*zeWN~WTL0Wj0ZQpEhn7~YyVFqk`IxYwp~&WaGqRUQJIr^O zBYxZN!6lnhrE?$E{dhN@ujt-n)>6?Z|J^Lf$6PG$@n4Mct)0#I`N_S%7mSi+*YB5G zU-$i4LypOt2>*MW(w_NGC(FwFd&OC7*I)bm&Q-3w-L?IDM|o0B?w zj5hBvnQp7?)nWIp!e+tRO&zhn-=@qzqkiy7#^E@fQhRCe=Dy3Z=jY0rYAq{7Lj0(-Yc5ZuY zFkL>b|L2zPZ_P@MMk=>)e)RDyu4FH`ULU)C`FHV&r`~!Td3(R$+}SOcL)f(5y?%Rt zb7s@;3i}toI&R9{yMFt?@u;kd6m=2+g@COp+d-CFO3 zS^TaC74P3)@mOPBR2jGMok{85@8_pZvt0XRTTsrPjNmA(*)Pk>OT?GfJ)Uy6c0aUm zi1U7TPw`&A=CqbA`~F{v&6c@5dqr04sd@c=MVpLTRXph{ z{yXa)A5qp1tSZr8p7wmQ;Nm%xnLpZ!PklY}p&aUnnE?S3JbY|_Oh20u1z zi#gz6yWsGHE&As2_it^rIliyv<4%U7VU0z4w^vx#EXx+Zv2)vhqqD*3ycH9@%@wEZ znECjkaPMCi!{4j2R&0LNDZ604MUckTfAQzbYTkLqS?1ljAZYi^@94&3&2HzPFE`D7 zov86_P2`6&lIvPb6Fko->G`-{FLt|f{AOH$^lj;$hY6)RhaVSPawY$%fAhahHT2ez zTc3+7SDCImo4PLUTk+lPx(lpd|BhIG|3}Eeo4jT6{<`blUY~6vm2dHRDgWcQ|2~Co zNakIf+_OS;Y4Y{2<`%2owm&*7IOX^8b$_}2KkwVlX8qp!>E~GH*yEC1mTOZu;uzk2 z`kG$z>!F@lUfcY+^B?{Yy?%ZBj*^$gYD-m$-ZQ^E^P|dceeI5E<uq+txca$&?tAm8-<;psJl$z+ z?BbfVpmEmRRvFE$fj=jvA5VVpt$AKyrlCaNw4hxT+HY4*=Ez;O`h{Og zguiVxllgA4!)NXcuQSh-`sVejtDimaR@gP<J z-){L`Ie)L;v}FBy%u^z&{`}NiWoLwSrpT^czSwx%^WxoGC-I*%n>1O>>+r+JSEPkc z@O?QNe|%PAU7aBR+%vpzIr!2Unw_kMWgx6Nb&d%%mm|?h7n=5fu zZ`b9}Ek|?}A6gzaKNC6g$&2U;#pO-P*6Sx)ml>4CNcWXLEctKccYeo~ohqe&*S`N2 zBJ}u*o5s=nxwj)igto`-N?YT1q2weLUgeQ$7hy4~i}n~XNa{ChX$ z`(6xNLuUn&W$a~%dHji7*DIuOS%6t zS!Vs5Yo8_DRPX-vn7wtLcIbf{8E1|){_a$6y<~BJ@}8nEx=I-qcUg`Y;ASrf7E>CKd;Q+BO-FLyC*rf^PaI0yZl^f%`J=BuU8ejw$FX`PQ7(S&s*om zX@YkvdL}RJOgY~$OZaI-===RF(QAJj?(4m<@3gFvjrDZ%1C=|9o?E^OJ*NL|XMQwW z`08K1{-4>aosT{ED%ssWqvLedB#Ws#w#kH9Y+q6F=C_dX`|sC3m|7j{hzfco{>9Yc z_rgylHRpecGe58WFSVv!npt1H;`vmz_tppF7|ZwR#UK0oSnczb?D-Ra{^mbXz2Nn! zw`(V_iQ6&r()otnX#pQ*&;R(d?c|->?-kFcpI`7`{<9)|<{GmjE_VC-=G>fUB4c-A z-(1lbLcx(!&09~N*ME9(M?v0PJLk+?7DKlKw_Lj0->%Dh6jQg=dS*t}jvslf*El(C ze&1F-(#E*u^2J+?XJ7pik+n^0eQKt?&mppM*0+<9YobJ)D{?jS->*MzaPx1z$JbS_ zrDX2Cn|^KoiZeNnCa_d&j3dL-B0o8Q)?SUAioLH=u9ht)jd6&U?!HSAU#X z=j3#Kx7isLp9{=_Gj^|vt(bFj{p$yX|1{pTzpvgk=ZBBj5-HjDeHwWOO>S;>57&Il zUSDGN^<(#qx)+?wTr9V({4$9(IZ10Z-%^d|)Ab8EIu&iTrJC0^Y9H;bz32QSJEm>x zhKRbj8BWLlG5KA&al!wrQnefNZ@I`LpS$lbS2ko*)_r&XddjSGpALmsaTQgXl?kq& z)2H%#EzcRn1@m{cJl#Co^4E>aXZ|PZsaH15d48P#(c8VJUf(I7D|F&q*8-hl!SiZQ zi+%H7eST*RU7z~@VbHd@W=87^^3GQ$G3)8fW34o_HN3F$>1?lg-xgodTm7`khb?=% z@8f;jxV-$s9b>dsbESW+v?+aYMn~+3qx(ncnm_U4m686<58POnzMoe1SM%AOrTgA* zcy)Ik^PkW4HJ5)kvcK*4yhT0he|J*M)LSPwS}RtU@v_C{|Mg!xx9`is|BL&>Uqx$v z7qxk7Z8gI~^UlG|n-?$K)}$?Ox}e)z?RkjaWuI5K7oYv>y>G|l|7&i9%kF4v_1_Tu zHIH@s@mZed;=P-%#*)mdCRZsX`C6Y#a#ZbhO? zpZ1XtLRQAzZzQc&*q&P`tUGV}TD{}TY7KV2aJ2m#|MyGy-wzjhxxDW0_1SATYi6bO zkI=9wx4q>XC6d47=I7K!x#i!zay6{r|@K#28)BZm9k>QQSVu!CbL%{{DGKmk6-gzLV1v=|9N$*~`5|DP(W; z%xD**;_pH3^4kHhYx*HS9fQQN5s2E#+v!-5pa*^G#Ou zzxCaG;-;K`?K`h|e;=y(MJlt|Y+q_}?D}q<@)aMx#LP4QtNZk0H`Dgq?)>MjbH7T? z599kZ^V7cvHe&WwZKuO#XT^w~*VU5yz3=Fm*MCiOdix9)Et~R-Rj)>FedU$?5-Z|g z?_;apG$&zRxYQcM_`07@FH}f;kE@=O>iYSsZr_hb+;;s^AEr!_V1cYc6zs9sK0Pm~ z@VvHhQ*D1k`Vuuh`MX~Y6crV3tTxK>@B^(Sy!E0Fyb#q^#;)!2j|*Xy4dP)hB1-Ef z-tLxh?uD-CG<3U?_x;kkv09-; zz=?-5NVrwNiDPB^A%3gZ7Lztk-}Kt-Mb48`|G3^1cGlG#ohjhNGVjXai|H@+F-LGH zwtP5rT7UnU)B5{;^78cV*IfR+Opxt=hFkz|m;V@s1#VcYW|a&JMxn z?Djtx&GYX)Io2!fGs{Ht#%kpj0VkH;D=wgw$FCL&IB_rr@w-d!1RWKgbi~u&|9FmB zve|4;e}DdOuRwM>Dw_s!D7H+f0=d57%HfM{dJO$e+h!@%P24hl*SW_1){|~zbwvp8 zo)DWp+jMSO$>zYhvyc9{5#uFg8ZqmQ`o*Vzzu$lU?Cfk46O)2>cXlSM?-MvY&;C|; z=Hgb4zJ+1JOLYYnM}Dq;Jwtx>$#vb^>gM+zOJ2OUH@zTf7Nao0Wd>^ql{hj>!{ulB8p2kP)D$(?w zrt@(A|DW^IcUdH9wMYy9zGd+(!Y({LX@Q}3zjNz4=i73x%*|#S-+qd<0 z)@N0(Ua8ATk2!p`^_si$i@GYCLz&*r_ZHvTccO7gkX8E4l=c~tlO=`Oi#JZp{dG3b zFOAhy@^7cW=Zj7~lP5d=n)r~d=zd$`&h<{=|IEtv-Vi&W^j~lryYW%G1_j#N=R&$Qu`rzURKXy!E_GfwYeBGCiN8P3-W|tNTo>Ha>~#M1&Ybh__uTK-x~5fT`;F~w^YIn$^-MKyYs_3FJdMA1 z_O`+g7fNM5=h-}7^0R<9-ZJD!UW9*BpzUQ=sp$DrCmlDskyFHUAg$@%lD&8q}=xzZ12DB{&o8PKdoz{w=cT<(xUv`9UpObpVke@k9cNHEe!Sz zDdIZ$>Y(t1x;wdNYf9Ob!XrC)wq3noapSsca47TLk81O3?|JMn-ItJ@d7-XK1`eb@(dO|&+y5HkF|RAXes?!`U7czFmF=l@$ecZM9Jf5#HQA-t&XTP!x-d~q zs=zezW$2zQ_kuhk7Pjq^vx>dAL~rh)xUv&FJU4DHR9xJ1s*3yg{QgXT&(5xNg?IYwRlGEw+|vCqcP&!?{Ko}sh1=H{aV>-(QCch&qdue#s=c2%J3dX?ABdsQSE z)2*ME*Em*v=HBw}GH2e7hB>JD3Yy8$defs&@13T@{o~A41-#qSjH@v&<+0?ajC3^gF*0IFxmpIt9VlT}BJPeht$5vrAfE>&t4hjmuwHK2n;q_@CXgYZr2PEoQIMu)pWBoqLOS z_@uBY-d&!(zaKM|$(IT2KG?K;-`r|1m5;~!Ht6Rn^19fTOcM!?OI>V!%Vp0o`!}KA zd$UgQnp-~Y(cr20udEB5~X zs3F$tv2sw%rfM6`SUxs>`su8XzK_mclNo!XPPY1U`MY>5-mvtE|{?DUB_KW`Jy zna>O6%RkAqI@Gr(uWm=8>Xq%EdWAe|4w}hrzxFAynYq4%Nxyc2`zf0o_lL9I%#hfb zB^=2uAhT)(#MobAm$Uw1Z6x6@X88mMIAi`-KytoMSftrT=HI1ebDlqF4BPke`sW|f?l=GM zNxTv9?0I+B@w?N~%h!DAiK_qpdhxCav6XkftV)iEjd92;N{A}hvfudMwNAy_v$p@j zo<6jexYWNU`HfFOqx8hZeP(h!8~bPQ|H@G>{Qmjo#bUv~Zy!_^D!k{k+b{BCo%DvC za$ER?8_u8Yb!MF-Y1J2d?d(tae*6FJo;~e$*5Sr|ML(yB+iUUJ26k`1->&au04##VLGjpe)*h75VLE`KjF{VC#lySHI- zTl%M;M!QSu=C;VR=KTzQ5!?Iai(^U4n6$noWTbl0|tTXLo(|J^*-#k4o<`ofjHVv~eIr$pb?IPZSZ`r!MYcIncov(G)g z8-61D{P~b68-jnI3C#P#{5QPvXwK86uUjLmoX#5d&s(f^hiB^Nwt3TK<@vYG;`{R= za!uLA*voyte~K)U(0)JfjFHcVCq`~OnNg1(&ivoiEU`^RI)HhZ3HPl%dR4XA9kX1E zQ$EktVYKD`@mqF6*a7SK@D2H){PKBgkIk)Y`o3RJHGSsPS(Da1^p?y#^TbSi;(by1mn4;JaYzx3j?-M8JHXX={E z?QVPCv3bRB`&D$x|6Q|B%+FC)x1M%yTGTm_vWI-1elJY)+F3jCa;0xca?;l}mM!H` zmG!SHt={X$K3TroRk6&Osr%*9$053RKj)pC^gtxrG<|i>msgJ?_d2ycJ~u)9?bkWy zG7miK=Dl)vZQ7~NQq0WX3a`xm@5h|lp8G>wb;Ej{)Gt>IPwe}r{L}K%rt6<`%8Zt| zGHCg{UiAF>$@_snV$EcdaCuhMR()R{EnYKY2Ch4Hz(Gf zlPUfADYfqN?E7a*43Aj&mif$?R`jL1^WJ~9|8M(4W&B?+edpl(Vd<1~QS-I!=PxgG z*|bZ;xWLK4<9_A;O*7w1R(?w{s%m(VQp6=BY13b^{%E7!MV~d>4Zoxd*zjpPezT7c zpCwgZ&A#KV!%a*5^Kt(g`uEv59h#eUYF*0;#pk7`_-`6a4gGNOx@*oC(}22n@AkZS z?*41pQRg#lEMLA{3XE`?t37SW^2G-)o@-aV`}tEo-}RK^NA6AYuK7_VDjv6f(X+c| zZFUfXM%ar1HOk2h9X#@=Ym4%As~e&oTvo6?I) z9E(m(s9X{8;@B&D8^>E|8$K>R9(MZW;j=ZHHRfHFPWo7GQuytFI1iuX`@3HRrq61S z6OWf&&$lV%|BqXra{8uvP531(lm7i)py2<>EMnTWcTVW@>KIxcGqk>O-DYQgg}qRY zsj#5SgpUj4+s?D|&RxMfwY%k1ck@|&%k{x^3wmE{*Q)scnrqXvt$}qrc=aE=e}Bxf zNai=k&;Lt~I`>ZeI{p6RC;KFP@~3`!_kNq8^#0cPKN~0LF8l8jGJ*T;mDBT-zW!|F zUQtuFZ`C`e*%@y3zix}$JoS5i`15Q*v2W($llS@9rp=Qskvmd3_mgv2QkQq-|JTAf zS9X8=#jvQuzx!C}QK=WfbLX1eUhElXy5IjFlYn4z_r%w%a}LhiUbL1sX)^B$ z^#=nqpEoVMR8>s^QDjH zRzH}3*Y;P$%JZkTiUrut^}N>RvE!;m66ZH}ox>&*3?IE%rYdK*Q|9v`xmmO3XxN!= z+vV5c@1n0>zkKQ)MjP%GU(zOpO9o^s)H(Cqn(ZB7UyiphaukSdYezl3INH=TF>CcrrH_Xl6F0zU3UTT&0{5w|@ zO81n2yo>fljdl_OMsiA;B9UC{sVLfcO{iTLjLA|@A~+pz3_wtda&8Nuh>A6A(6e|N5P z`(W{AmA-80|FGv)LC>;ecrW?Co|#a6eMP{}J$H6LKC)S-?@Ra6HCJ66H+VL2a9fJ& zzL@@!L3Uaxn_Ui9>8G4`UAEh%-$}{XKlSX*K8a0TWt)r+b$xbkExA+psI{{G;PnNX z{hj5vGNtC6hSw*_?R*Cx?TDOf}TZ@c9ClK zbGyBMUU_=ddc*!7$v;ziGZt@LJSE#Ew=(SbDTS}*61$T6pH7~==5Xej=TA4^-EuFm zV`JaH@_+VwwH`ReJI71^FM8%^zbW9?&k1hNQ#FX8dQUY7a%T+_PmsAa^> zartom^A^)fxiyWps}~0_bFx-{H2cZ^Y@M6@@wV#iZ>}73=J(Tfd4FxuosEwSm$g(f zHqE~FW$u)6hF>aifA3!D&wZvdpZ!W(`!na>o3pAS6E z30xf%QL{&Ib*-#+e(dqBI;@v--bSlWR-1Kv`tO|umphlQ7d?K-^hngAj<>rz&hBKp z>Z{*&M&e4t^0!)Mf4To8#U_My?KqQb6Bq1r`E5xZ*WtcW|BhXCCpz|di|%iotX*>8 z$i8%2mM}q!0FTvn(Rs?g0NQ7QX+68>+4Zyqm_Bv!cT0tj`*|#uM@8g=tMvi|4NH$6I9GFkY*<~}KtTfgmBnymU*-{RKm_3^=XMrW(M z`uXx#jdb~I7pZaWbvt-<`Gx>J>z=6T$Gvr1_rwPuS|}Bu8|xVssaNP&CvTh*-G7%` zqT?$2A?GJSwhtCue_ESiueFuy!{!Nk>Yu)_zfyNw&o)IdH{f9Laqb^4Pu!M#@q;<~ z!~TD@71!;{_GWhahFrXR&FAS(k-EZyCk-d%OXAnnIV3+l)EKs>Tj)l)QDL5ad4kgU zX;)SxCTu#D{r+hE^0w(`P5I-ltLrXN(@xv!+0l79man((1P8yK{N`$rhku$*Im`YK zSKYY&fX##k_V>&8|1Op|UE;dp(7&FGj|;@Qoxk2KE`6lxVgI+lUOLU%c-e;iYo^cI ztbSuIyP@6WW(znaC(SqYN@OeZw22sryJxv;P6 zPEpr(cRfbi5BEQQVO3uFHENIU`@o_-65;=wh4<7=7w=HICUHW)*^j0FgTitidwx;w z$PfRVMVI8dv2>>YYBYSzuY9FJ>hryj8Y)f6$_AndUXFxSJQHGS2H-XNK+hk@-9|T^5wc>yDsp+1@FV5=b)+eb~@9fAte&K@i zleW2=w`R{x$yzjd@yorJdf%RlRl1%kwDjVnEoV+{-KMvtZ^du%@`|@{A#R78e_hV# zjC^wZ*`tM(PbZZA4G?Vm5?fm)#V_;p%Swy7k5yk<_N6n_@9$k^7NF|)U+Bm~iSshW z8qS|PAAH_)_@$8XjqoRYYkn*+>?soNnBDg(&!Kz!LnV2>HKs-De{svqJa2pDx&IQL z%kIZIf>l#&bbGjfvSw;8SiWn<=E|=#vYr;oUiS23IPd&wDd&sd>n^=)nsKn@ z{__W`qXp)gd3n7oe*7v}Sa@SWmEHNbaXgtn=U6X0e6e8Sr^jnU#MT|$;&1xu{o~E@ zIjfD`nB?{qY9@qSu0GDXqT@>TLAjiM?smWRtTuOE2PfP}*l+d|*7&#z9_dR135W!bDCy?hO|+8dv3Lma=0=6<;_FaFf@zftqnoKa1b zvt=$+3aQdv^~2`gy4oy1K8ydm*Oo2oR(NJ0`tRia8wZ~sySn_a$z$d@0c_Lju6;_0 zRGaquZ^DPVTOa<%a&4Z^_ujba=)=dSo4?+j{B`?z=32i!r_DD0FJk*rT3C9V)9c*K zA5W)UyuU7DwPo!&|7%N=gm|*%T>ZJ{lF43IvCGM2M~`%VRquP1q_zHwP<+6F?A3R! z-ctl;uvt|!y~723zCy2w?TPiQ}PF4NI4`ph_aCLwBfs089aa35yEd--{?obw@oDEhuj{JqnRTw@i1XG|_5FWz8ZSrZE{XR! zUi?Dg?9AmSwzlYPDcaqu|F%$NZ6A}b$h0jiTO{9FfKqUfzUkuk*-Nrt{7IWXbyBZ* zXWjA%y?=#I7jOOL@uHl4=jZbcsm+c2+3P;7)b3i+)LJ}C=~R;1ryS+$Z?eMD*#Eto z5yEVHwRc5F>e~b53rw>7ML19r4`~SbpT4Kv>Tj#~i`ov}Vzshhqx9kRu#;vEt&vAZv za78CB-O*d$w|#ZyignA@y>wh9v{$iJ{?YNWcS_go@|M1g(Md5e_ub(Szp|{>wM>w=j*)}U1ZvJ z$VhKboX^weMI{{*|26-Y*qZz6rL^h1+W!6b4J^`h9v@nmbk8QhJGOR$s{V1!7aL8p zlb1Hxd;H~nWfynm=XGyQ%|eEaYhqUM{VM-g`J{Kh@~25BS3Yf3zENQi;xC~i{_$|j zr=-{-pZ&|2yF0{>F1r5Z(T42z_YaC!%?``r3%O7e z&1h2+o4NdY#zBMZ{`-z2ddHso7!t z3kudRExs}LRoj!4FWYBrTq*1kVOCmyZ%y(Rfyb|pEt~P~yrBEqh|X<`o9`{&99EhmY%RoTU)4Pnf0Rb=Enjv(@(q!TB{x{KG$7yrE=o;`l$_E;%7@2{(5mz zyLpCk(-G&bhJ7BtOQYEP>fH~Q$_N_j#62)i_BFR;v`LrrIAQY8YR_cm_kBHaRyykU z71Z~2pX$B2=gSkvtalMNK0B%vG9Qdu+V6Th;KV!mw@=n;S6w<~X8YyLg`YZA<&2in zi(am@@~=#^UUekoo9t!*=_lWvr*93=zkTF<_oU9F$9m(pKaQGpzHI7Ark?*8^|Z>TTc+mcYqq>QT}e;Bx%|s(`h98bIhE|GTzOZ6 zBA?6rd$i(rRnLC2Qnq<}ujVga`ATbkSnSeu>(bx(weZ_0r*8gvaDQ{@;~C!!)+G90 z4Bo-@x$@+kgQt(@>colKt`1)(`Y3T>lF|Z;71CvMo&-JaQr9-_de)N@=cV;bd#mCL zG!gI~LH9udg&0_l(yE^Z9rp(^?a@!_N zKX&BUnTRc3{PAWtettd?%kuJdd!5?`i#6QIw=JIs{(dQVMZ4(c=7YXxjrBMEbpIKX zWNW#5I?LPbSGA2!MqPFO*}wVb-p9gwI@P{>F|rm55cwQsas2a!e^2iJ`1fw^n%@2= zv$exBcZs%o^6!wTn6~tDl%vhBI%)HDUlzofH7<>Bo|3*%wOM!NuLH%s(p82!(^FHA zdfb2fpW~95>CMH*H){l2t>3$KlKi*rmrIs1KMKAXzOBtu(&*gIh?Qz;9)G|7VhlN= z=5&00^v|}8F!8r3OB+8N?^FIH)S3TSB*jKzl{(L~?iC41l^YXztGjecR)^)eBekJ47^S08VX30NqnG|AnMKb(@!V;4){lq_ z8H$;jE^6!N9IbsVa^c8?4I*1Q{Wn%@u=|pxQ*}XIzjA}Yo`;&>rYwD=d-Azzu~~jx zr`qf0FM-np(%$Tn%X+cnss)!;HKI)d6Nr!lxLrP zCTj-TBsK>zM{A*4OiL&eh1B+`L~~xt8zVOk)XtVIiTkT^iiSa&j(z zKAH2*`q|`zRc$vTuWvTgpQn*|`Ev5NKK{8T%l02MKi+lH=xqP#$4hPS%07yIn^vJrH>n$0)+Vp=ld5{LYW4D~cCPaF`IebJ=TpM#)VtPqfA*XyQxmTBQL#2x z#yEY$&wu-KWo~@tjIF&K!B(w&eA2xITltsl!tlQD%dmo{5sn(o7yn1 zNzaZq+>Z@6ShCLeMvk4+?~-S7P8^C&1()|2CcDVnet6&6_0d0$y}Nbsk-N?9>mJW| z@#IHK(z*zZWvO?RaszyX;j_-QM+`qQ%%A&gQdX9HWsfbJuZmTzNYvSocPW!jN(6E+ z>@&a2Dv(t5!XVf1p?%HVYWBw+k{l7I*1F|HoY?qcS;qdnoU79}xGvvtX~n!nwP)NX z92!3-r_bk@E{*%c2HO38Vr=FVQbn5HTJ=^lQe%<>0cS_UeG-Yu?k;fqGGoUAT;AYkax) zZNdMOf_?A%9a$T=?pnO|>-Ube z_84is)|IKRW7_$IC3#&0!?J8pu$>9DWA_c^Ejd2B;#=k8DQB5iO}9P%@!9ibFD@^i z&?DG7!Mfq-p@o~*9DcI-Qcd-TSsJbL`q%ylUz#NKVu$UuDnI_1$Q{|oPpodT+4BCz zvBs?D&GX~$96Q)JU;fs$nh8q<=u1k zEo9)DTg~JhZ*ogs=YCDXalvh~i#2s^4=sGm`(?$}2C=DIC-NKjUCLk&D5!}!cu<{b z{$B09UEc&lSKnF3AMU_&?M}ElX zv`Y!HVac*LZRX}qQO$k)<#?m`oUfuX6*|plpT*p>2|2TFNsv`-!{)i4tyjH#C%t#C z_3Tv^(@Y9t_Ebzf*ZAIfW9aA2>Rc7YkIl@~Lla(0{41WGzvgiuhhbpXYVP)9K1G`Z zWwT0_ndaP_-f-=yn_|WNg*R5+m>S}G{=i+?Q@z1C_0NQ565mJmCLXo=wkLJr^Ec`x zKac%8^C4-qlmA!Ex^EF|v(L_yxpCRzqjkWMJqAW{Y~8K~Hv9ILuH%0HSDfw9ZHH(s z(O_l~tIywymK{C4_t4%P|NJ9~s~iv^*W4p33%xS`_38tX&Xro3{nyLSEL&n1nicJ483%7(`?tJ?hER=!xJCnxcmXYOxl3H#Z`H~vJ}EiZqv>E@i%th0qmq@Si4MxT|G zSyA@r-;Rc}&wTo1wf5QfS;d+kEm!bol2q<$_3~rrZdE>XP>4cVO_qtds%t) z1+`;>FLM^xxHI4SyS!rm=C1JI>Kz*vn;EPqk6Zr7LHc5T=!bvTMN@RM7yl`^-Q2Ql zefO<7MpZ%FH$LxC{P52?EXhyo@Fu=XoQaExYfV@=bcr=bL{298Lc`x40j1e6c{%qAT9lKkQgGm%Cl+}DAFUop99xF(G{g&<2xys6KpV(`@JQWmr7ZO~Snix}}+9V;y z?|fv@!5?8Ur+&xJPgs1fw|vVsxod?BkHy5CTD^LUj-JNTySGHXBu_2QxHH@M^va(v zOTQMaf5oy}?sUp;lazA@67XAb8kY!H$Uz7 z`L_P)@)fVNHU5{HPqe@3=2xb(S9j|i%ir=#=K1jTST34;Qqx1F=*9E9HT}k|Z@;XI zIPbsx$fLIz58izAv)PvACtmg-O62q_Uc(*v-}-j;{$F_M*UP-Xj=K{MBvrk%2(^B8 z)X5lB*)~oRK9Iy1C_Fpu;QdQo+yQy!$wv=Gc_%!1n3=u6dH=jGrEFKEnEmto8>WT5 z<30JQq*L?At@X*pO+~M*?*38{>QUS__wB)at`|C*YwpiKxVbZ~>X##EP9u>|uKq`u z;c~kh-a!|NpK^U)SJT+-G3oTDleUou_UV2+@_O%|$_KJ{TUAXgLuTC5QnwkNaIvypv2?$7{DqR}gO{&)Z2wrA)g=a7 z3&3i&uFq+0r_#a%{pg_5#+Gx>pB-y-n)PMpo-zYI*#|E(mK@(P?@Os$i6EO#W@oax z4uhark)B-QVpn!4mQYZW5~AIp_Pmrl>+!4#j6n0+Nk; zCvH^_e`HtMWWM_0&B>lUGd+1bckBPXTxqq)eBwSQahv+j!ew`YUkcyYk;rM~E3)i~ zM2MdH-i79ZpF=wexfy;*$i=T?zH($quF|!8UdwHNSUmbBuK3L9-TUI6N*={!Er$>j zUH;ELe{RZnk^lUbF6(~%g41nY!k#|2;{4)jn!`8$XS}S%9mr6{-M`+9C;r-v8BTtI zjQ0Ac6iVyaK4yKm|1*5ox`>yqrzfYnpQyE+e#hjm#O*t>TlvlQPW6BHx-ut{Rl`qa zbD@nwvWwyq$pcA=fzd&o@9q76zx9n+x8>mF>i72iHxNVUW*5|X_n*=~Oe_e{&oML1Heq{Pj`FCx0Zd_ z+F>zi9{bU2ef#gb1xv3GlILmMqo@CZm;au;UN2XDv}yV$tHNIg-WNUG-m*OtTt+=o zdgNhQIc3UZxvE)ug^K$dHXl8j()z;s(C$ylJa+tX^JjVR3OrINxbe5au=Q{1-Yau# z55BYMxcPx8@_5h$_2c>mj*k>s`du4;q{);m{gbh0VP7|^yL(KUSs}CiQJFh!Uq2^B zz1N7);eK$)TCruu>SGeKSL&YMcyMdJh0BcGM4bE>x>?GWAka-3h}ZcLtiYJYmzrwer}rs)6P zY7;rr`_KcSGt8W>5igxPzQ5{;I&j#$mP_Jb;C+YP*_@om4!mA)_ml-Et+k*{QS?8yFz@L9D6rg%@3b-=(gDpL)Dgw zkaNGdvfi$Ik`vz~C2M%{Wy;d6g=^NaUu}C(%ih5CU%CIa&9yWc!Hq{=HST*bU$QLc zZSkYnZJmFo8!uSjz1rF@py=EY{qNH98-tCop(sf;3j(cj48}|*a z(>p#?8BU$gZZEoq_g9>0x48{?r1;d1f)z8&`L6_p|9|lB(Tp=ZMfbcMR+khkys&G* zJkcd)Ytt_WNpB5*^Fk=t@MgWY?_Ob6e%sQkB`fADRqm`x(EPl*rs^{9j+Z)`PtNSz z-6;G{kWEZ~^M<7vs(ryrO>Q}g?{ACv9ja$)8Cc_&Q<~dT=Xks0+dcCSb9j#SKi@WW znKs`ajl@_Mfp;G@S|s*+Eatks^Yazcn;#jv?z$Cw>rXuW)ur`?^_5>1TWaUlRGx0W zR6hOLtalgZw+c^Tf8OhFQGLMc%RBLo%L1Q_5BIJ;wKnSB84Lg2v5dYVfr45ePBvsI zN=xxOA6<0tN7>m|j3V#0mOPSL>f7G6Qt|Z16UWcwJX!wx?&pweHv8mKkXakEQL?)059qe-^=Le}DbbpC1kshaCR*MsL>Y>HyvNL;odJ z>bc+B87a1Lo8|>F?%1`%&|rNcWPCd<`9oog)|HqO3*2WM7f_1Xt2_P2hp$?Cd*Y6^ z2G75c7rxmdw_xAq37^-C7w@{j*ew*XJH|KPnKgZz+|oU(KL1-hB_zvXvD<34yx2w0 zVqZ_Ni8+}6ow@GL_BAHqrU}6e{|vS!PW@k-=dWXubByhy_V)-Lby8Jt zING#0Zkm&mi~hvdliut9=V<_qq0KuKI^(?eGoCoRyyTCoUbL_O)@d*~Cvc&^w?fsK zTwaxwSp~B9PBxamz5MC>Ssm8&VD-3$I%(g~@Sj^=X_c1RCY((0UM2T#%jGK_HPKA43Bq{n(JXINBGQ_r+F zboz@cHb>`e3fZIjb5F{-XJ@r9rqoW5%lO=8`bKlph1vx5*=Maa_fI{rZ_$xNZ=2VM zfisgeiqDs{zWcLx&zHr@F=ei-k$hDZ)#2+;sAPxoKea!X_Px*lgW9YMm%SsVJGWHZ za48=1%{}>~Vxy${$-uH1#uYD*iE(&w6_vtyyZefcN=M zlkf9)Pd=-C{PsohJqK53GM_eX`E|x1d3BYmUbWedm6gw2&Hii5_g5HxD|gU?X~dFn2g}wd&`_<#TWW~nKARMiMNOLX@}_A3DeK$e=1to zzGTtdM$z~;Z)+-6%(~V(;S-nQ5gFl{oMjJI*!fRRvyHwcX^?ZnE$F_gmVH^-ww}fsfajH$lVatyZIGI^jT}m%R;_UfmsRj^ln%vorpPc zVd^=#OgZO{g1ec^UtafZtTzqMEY(~wJ@?Ub*ONz*9v@qOyHMBn!P5ArNqr43?y^3~ z=~%Y>mCe)Ew=0B#Zyo~LrwKL2^*%lrQ)%J0`6-|kkaaVlhz znQiTob<5kYeEu?V*F3rAj|Pg0iOae-C3wu97j>!Jr~hCT+sfA~)pDz-um)ohW6Jt*oH4}`b^iUDPFqnxz)<&FO5ykb1&U!_+iH-`9BZX z74Lt4yZt`XCmzrZjmaNN3m+b3OY(m5bDRbm+=HHgU+f$&JykN* zB7A95 z(2(Gaqe_oFZV7n%-VL=2RWP!fX?t|`vAA6k9ER#A!A2wp2v6QNJvg&EeU}1A1K9qE z2UnK))ZMhXyi_1buS@CSgFqp^b0wB70+%1w&wj}S8ft{A1#6fgQ^W+?@&o3;iD#Ua zph3>!nVWk*pHJCzbI$pzw-4T51|4nO_fmTn=(eSB&pUG-A3D${V~}B<%N=cO`8%R^F}X`es)UCjaop@pp~)wJlz) zX1aekdHDuD&RO8i45tz{TQ<>`q(qSQXl;L!Ld8;57YMb z-Q1cx=WN#!{&7d(?Uwbu$^lA{fN$-MRX0=5JxEs# z7Hv6vcCq}q{zFD@en)#)?iNU@O-R zF-w+MaeT#-+&7vV1eSI_y!mKvPSm=2CziM6Eq|3!_v@ys-K#w(e$Rg@borCq)X9}H zz1Pa};van}R6n^NG#$rPG_Bt8=flR6>6z9}92*;6g2q4p|FQbs7SprjPS%mO)~#Z) z62d36PN~=>b#)uX{+`MDM|b`O!yF;!h0EV@S1m7D|M2-m<CIQZzJ!WY-K)cp$G|}C*T0`gay#SfS6bdle9^bdtU@BHeQ=}dLPRc zJ#)Ee(cP0)y^!SKf{m8(=)EuKn)Qci8)#JMh;+NedbDz>rS;96x{1lEVRM{cpMU=B*uwVP86*YPQWXzA>kyi|uyv zlOF!-*@qw=#rS`)OG7097vYTF?;^$ z*}|kU)v1>(qxah@9{D4dk#uj+?%XvAE)~-1fpwsd@K3fethRIQ#;UcbHf z#t+>;kNR74E|w>ku6(i9>O@#ETXe8r;Z>^w-;H*BXe(gt=UJPJiI_fn6ciV`G_}xC z^Zm7D2?cS>|4iTwj%1aujXmNP&;0cHyL<8Pj@-ZBTfC)==fZn6qu;#uGHp(1o4akf zEHLHv+L-L-8!65&9&60mCb#Hq&fh|zmFM*xc^_>499k-V%f+~A0yvIiTROL{-m@jX zkR@r}`GdXZ743AVwO>0Zq3f>w@(@3N(!+G?pX{PPe#`y{{$Bjp zTd%G#-P+D=o%KFmMQlr6(^DfURu%gw|<}DzWo=!iE14$0{M07jLEKh zK0oE07kYnc_k|V#WA!65w5ng{#aT;~+nepmyQN?^F@tx-bX(DyJ*q7NNku*z`o)An z!ww9Vj5=bIu#DsU3~;xRnrheBD?M$&WtT*+KF6m;Z0lOCq7UUH9JqYVp}o%b%wy19dwAMhg(KgJ=d&*tT{JyA@Lj}5iRl8I8hY$|z4ZTu?ws>`SJ&apIKAhw zJU(n$k8V^L@ZD|%H3H|(S=q1lcSh=u*h5NNKr3bYH(XrA+$(t6iuqnN|GJxexB3{r zq+L^!zSuh1Lxa!mPvL`^D)51yq@H}OH{0y0ZgUn~o;B~_GkMtsdk#BY``36R;#Qx4 zlTJZa(q)|=(NTqrr{1QmiHOLq{9(x9SZrd?f7EH}y+fN{_q;F(oU!?G=iB__S^OU* zl_#A_C@i;0ov}8g^L0nL>BSQ11HSI1<`-{zy09(N_^>7R=(768FQsl*UUZzkbL{ac zaTDH{MtKu;N#*I1X*QK#CRFi$|1GWNveQPk_lv~!$@|WA=pAa%)D85T!J(KIvBEI4 zA?bI^CM{iQem+@qR>^!$#g-W^!fzKJ{c%DfkfY)K*%HQ<8DWBjOXk>ko$}xGx||Irh#^WN~C zFZ1~0rG3wq@7Gtm$^jpBv6v~AG~3`-)rxJ!f0{*jTsCg{rleh)w?8>gPfsZ#~h-;F!bk?bhBEJ#FlhBc*f=yZ_vX`EcRp z#f6q9D~e`vKD#LV`(M-a)2}}@-D@c8`OBqvq(q|Hht*>L0-NO%Urbi_Fyy;yb)q6W z?VpHZ%Zzflwf$m`RY3!DEE^&m=6n^sax3`c&3!DUR!NgCpY+Op91+X^uXe#9`D=F% z9R6bYQSbJVf2SocTt9kMR$ap~{n3vi*wVlw2`Bq>d*0UXtbgZLfqiw{ii2_e*V2!^ zO|Cd_wE;A4+#Pf>Qnpp9!`u64!88ZM<}wY1*P0f$yV&Ub>&ZC=y-z;{5lWgVwTnIOs?^pW(sL>j6D$MuZU1WV2rjfQjoImQ;f_+thxsSIi?51_ zs#V#+RKMEiJcnXh)QOK44)Nlq(W^hcvpcl@vFMw#?k-Mub)*B4(tzVPkqC#R$3rtI5oa=qj+@8g@X z=wkyvFRH=DRaBSV1&yoZiF0Lz{3zVLM{&FS_s$nLk6rDp4%Dgg)#uwiE#j|3g{j)4 zoGpRH>x8$TclN)V|1vJ+;39VDil()44hJt5$hy1mbRVCgA>#aHC-d8|kB@ieE`8a> zY=7!NQqN<M1SrkGFjf`_;X|GHCNt zqPw&0OsblCKi~V`(i6E`HKyy;@oxOKIwq@V(T_PdUfn8ajcj+~FjQ^oU0G8m^||Y1 z%+&MyOdfym{2&0S_%oDhx6DwGROV7FXXs{i2KBKEb;Z5<^73Kd&i}{uTo7F4Poo{XioM}yud$MMc)BY@B%iYr#^hF$+r^NoW{d48Z z2KlR(ST1#4Tj1vIw5;=VdwJ1;P?w9}6mI)h=GyFfo&R6)$m;s@x8#3j)c>9zX#3OT z&ollQ`3l$BUxdzo%8$_g$6GOL{y*V6Ykx48|ExC4`&<3vu7eyGB|+PiXYZ=P3zwaM04pIfb;QU$mVvpXIdfu^DNcuYXH#Tz^L3snHt6=PByTKY#x;NyzifH`-O{oe??j zXXGZrefR#Km;Uv?Ui*kADX!RGp1Z8u;QiWY83`WGSbyD>&p-T$U-rfQ*1!F?vzD$~ z-g)Ko7sJ25?LXZuzyEP<;Je;gUYC|F@4xc(%Y>?Vc0t$s{WgYuD4N$*J3p0uuSBka zoSKS?PyRzOgUrjp-oN@b`ab(102(OR^75tPMi?OEkQ6En7H zqW=%_*9m;81>MP{;O)Szcx1}&@Am%$6~a zH1Wr-9TVcDBFwI)KR;dk_Qzx4&S_IUS_B+V{0IPdnSIzJnW8upmrZ!Tdi{>=d9w8{ z-#-1@D_!~AeE-h>QLe76_20|uk9P{Ir)_8f8<}*-#8Aba|G9D8l1=fhDM?ztyL1lE z>(prxXiljC9X!FIxU3trlgp}f3y1kh85?mAO23BB)RLb@`bXDYY!`% zec#`5chV=!X7vWXVOu#-CCjDvhQ>C=Ud0)!W{95YT4|rO<)BH|ZI^7R z!tet9iQ#J=O?E14TpQB#+bGZKGH)~Y)R|_L|0E7DKI36NGl%g{-Ma4AN#}N+uYLE~ z_WtkRkN2J5+0Ult^I)g2`j1Dq?>|$YU&qyOGG)?}H~|(%0hUCc#i~ZRy09@O;h)NPrVHF0yS1#PJ!C=8# zVTfuLM}aGjpPU`RhC1q|FhvNk96X;PU)Axy@}tt{!#7jESh2ek%PM}d$B`#Lzh_WzD8V}5&JdjsqKf2P`DYd8u{L#%S+|JEi{H(|@{ z?AXSjT!q8g3GCB9Cu+anbx%rClCS?`7`{GE_4(BB z3i%&0KX$ntmjC~A{?FU<|IcwxKl{kP{#WpV+1eaU3LMGe-om`MER>wBGFBEP^l&$? ztLmDx>1O>WW1Z`_UzF(Hk2*Q;k6KdK_o5${(k7izeWUTKXW!*LYv%zVVM`>WKm1rnDgDRZzHoJ%{otEw;Z_6Fg$#oxr= zocz~dwV64#M98~LPdRgyShX{!{h6GjBKeCqt!X{i>2|4Z)?u5)VhpEW?tOD3;-qi2 zMqq#2WzUNDmeyJRo7I0yl%}yS?Cg%%{#jEg+WW`D;;$|45g8k1RiyeG{Epk#p0zo_810)FPO>91M2bn$Dc_8_AhAIer=|El-y`}fD(WgJ|p z5%O(%Ctimo*=?M@M$|__Y4pu@uY;`xcoOpVgt(ba z@iU(L|GsUH+@2?EXlOX&(c_=9rOkIpiXCg=6y8w(OLOl3FaFAQ{R$jS3U^9bTn*kI zF2Au&Pw4TryLUlJ9VG&#q6CY7H)rV za*oQExZ@I!rQc4u>BGP3;e}&GucGHpjQi0Pnv&|{mc8@PJkit_*Ycki{B^7|S>Ecb z-FNZQ-jrE~Z#7gN^SbvZMc;l_^0UKDQqM14oc8(6%?R(5hk1PUpR88?GPA0l7MZ>O z&_B`T7uM=O`Jlc#a*6HHb&Iks81l9X?yBKtKez5teP%=ST#0M>57qZudDPA7y~LYZ z&Q=_A$}ju-g>&<^<=j5m=)L~)l5fU2>rOX)U-{go+RQ9L=ice_b~inNkz536# zQ-MRla*;JO_t-z0E_1Q*Y}Vsv2d_u|Enw5P**G_N`qN~KLoeJwIX_@#fYS426Kt+K z6a-jYz8vH+&#*;()AAWJzLprB^jDw!=ZnlFB?s%TnxC|}PkMb@Cs&=zX@4)obMiHp zPnXr4&hpkw`O3HT?S;Zb`DpH}9V_48yB_2Ga`XFu_s#Du=h)ZJ(+*$vq22yZqyGLs zlU{jGxA<^WyhShm-1Xw389&}^R<;L~n+kWPmL#lXb>6~PU92lBIGI!SNymd7ENZd# zN8P92-mrapP-IEh?ATfNer0j@UD}o+=^6a@?l(gh4<7CMoimR&>uvhqnO^y>)2S~s zVgs{mxZlME|K+-$xh+tgktun4M&5ppqovPF`rY!CO8=!aH6Joib6>PEY6GKe>C-JP zXOaVpEN(3*=*j%JSNNT5_^B0_&nI7udA`p*&cHF$)Lgc~uI>0_WsY|gO^f?-|GTu*Ior-(T-eDSIm=q|`r2=&Th~;q zW2^O3oOylwhg*g0{crC3rny*3|Nka&?TF4j8w26=SNYGMy^P9{sMurCt?IU7|JFHc zQ|DhyYF)9wB51mFXN=MG9R=3c^VUAvx+(igOfbQ{ z-pKy`>9FY4h@QFv+y}PkC^RnD9Gy7p}-kUy-#DMybx z?cJ*{7yQzr4_)L{V{TC3?bBA>GcmM(DYs0RcArH)p9o8$LV13l#?OTyKm3rZf6^gv zW=qdgpVxX)Gk5pgDsBxizuoy-d^X3S3`bD5_`tnw6@SJ1t?w3^?v~8{UUvNJ;x{K& zJy>?{#G0Q6P3Ek5_MtezV)wKY?~Ke>pRo~;cfWF^@!aLDalS4x{`&;p8+j~Gywxo! z;V)La@`1+0UtW2Oo}ZKvE}!@Nn$XPXGv|w{>$YFI@`B-QiqcmB8`IWG;{$mc6Eb(W z9i8eoL&81hf8%MzO{u5F_~h-*yuH2sVuneEiPWJ(hd8*nl74=AnsawoX^J|irO~om zB=?TizlUo&WzU;#c=1BX%IsOt%#F1NSQ=+58|p-yKF6BPxM51l~M#vuZyhuC`cp#)&7cI=;J|;xf5s{j`!v z6|*{M$$9yz=V@Kuhs{2HFTN}+SpD`~pf0`(^LK$j@D4F=Pc!>95>FHycbuLm^O0|o zJXaH_`ShW-kE3L3Q0*n3kf@sPESuQYiv48iF<3Q`Gr>{dk8?4v=-I#K|0e#|u|4lw zaz^W1V(J_*?-Db8(JKYZF8ZaFuVmjQwyC!9P*Ci;uYM&TJltyDFJNGJs5UL_#m|Qa zxx8jOetuCjZ_cVGciwK<6YG;{?D8~4;JUTL&4X9hY<;tm`NBt!!ebrt-_(7*8h-Nh z>DPbX7Tozc&m}K!-EL=alkbCAws5ZS;tT9IcU)Vg>}B7gzG3&RjFmqukGf7Mx#D3E z_2{1Msq z_D861PM>n|y1v;T0K71x62tTf%I;dl7#s;V`yYz&7U1$UgX zKeh4l=8B@-kWzeG>cz2R)#d^=tE zYSk2etw)iwICz(aZ}?{S_`*Zf}mYnyH6@_65+e_zWkfA`eZZTqSDf?w`%SKAGq#fPM2%5>DZ zPTs!i^kUA}HKz+=|0qi&zpJ_yYaaafnxS6m`=cdh(^-ywb=>oK_4<8Mk*uKfp|IoV zy{uz~M_ZPy?p+rBP^I!`*fdb{V`;e4md@k+Icf6(CzbnWJT^L^Z*y$nqVULxS24&rlJ{h?@t*dj(+|7m3nps;T`0}3Z^wH*X);TY7{$RuG;`Z|)IqDBLpS%-x zzVFRen|yxNSAkETF4$^p6frB}$h_mznh$yeZ4#_qe0KHrcGib^u0==odDLluTF(Ct zKetS}kaDT(^3BbP)1QBqU10v{$GNRDYCfEFaQq++?mDb`q2$!amlyF?VByhgIjklv zuSyF}i>GfWe*0kMyQfEFVro~<+9tXA<^MGm(MRn*nO${!bJt^; zJZE~NCZE#VsWGSW7wo#}=d|N{^P%_VGM|qg1-YT=0qd>En{Vbk{Zs$+_`7>IdJ+PE zS~K@|M<4Zn70w$}&GOk!uHwzz&S@W>@WlC@E7)ybaV&UG%)cuK7WYX0ab9}*z2wb3 zv31YOf7}UuGw1a`yOy(F&!?XHQWyRE8oPss%1ZWYM!GBBKl}Im+m&!%F29-S$N;YYkh!$}j)1VQSNZcyQNEbZ5W4|Lo3x zCp5J-ac!`d^0{1S?Bny`V}@?b$Ag+tr!7l12`5e8koJoGjb-JOdu_rt#?ZPx!?U5 ze5EvhzKG%EC0n-UWZgOaPw0915)(FM|7UAeRg;eNLOZf<#*PzJ^c!klp5OF;THA#m zmTPWHs(V{;H_e|Y69_8%SsVpw&bR3A`{86~wTNkX{yfeS;bXSN>b86xYyS40h_rRN z_DZ2BjQ{c5_8))W*Pnl{w5Bod)DE|jD45K|tyW)tI8Qz)@?zN?(+DsWLLz>>H{LHGb9e9_3qEx+UHem-^Bo*1(^`8XfLx&1%&8S_s5NPoxoJo}SU z_J5_KF#d^KtvcphJ-p+SqC?8te3#`{om1BGDW!iEh+OU5Z$BmG&i*e?9w}J8%|BAM z!nuDA>sNuf-}EQRuWG-M33lv>C|Q?tuO6}bVJAcKE(*niPqborICm2MCFkunyxjq>35 zoVfMBfc09r#lF|Rvp!kVw7}u|)zx?ASWnl_HRD^ptmuLK|BdDM@9nMr`OJL($=B=m z%N-Ew<99jt3SuhAx#^de`N~*7tC6~pxBc_K-|vNmgbv-?Tg`lD)5pdaTR_1M4Qs*r z7x6C3uez5+N$_{P<={!OzXC}P{}s!kY~2>GdCHrRSW@_Yug`^yghMRztP7j2-v3wj zUT^YAm18HuJLVuo+PQ0Mqi5RHR=v-kd{V`8g1#Vf=vh7D|J(Co%c~AQ?#E0UWf>jc zv_qWn*8Paz>f;(yw)!w|FYa2>2 zj^ayod;9sT!`FZNw{GRi#Jjsn8FMcFa3Upu1Fsn|>hxG`;kP~Ve^154pN57uj5Zu8 zO#JqL3~t`M$(VQd2P8D0=`Hrtr%y91i__k}mo!e>kbQj}!?uh+idL{x+k7H2_K5s1 z`HPvQf^)@=aVJ?{aff>|9^}o8$zX3z`mLm-@%LT%P2Mfc_nE~0{JOp-Vx!UlUFmp~ z06l)JS9)i~$E5e~Pfyq1T=n%8!?uhXC1mStkI1iT1|?=c?#G-PWnU?Ma|Y!J#ZBMr zla^miHaYpr?&^6B4!IYvUMZQIPoHg`U-acgpqQDdV9hI$`z&&^4H|#{e{5gz>;1pJ z{8wK;$uMUNT+bkr<3Y)EQ{G1Zrq3{dwa_@D@#jJ zQSr~0<@UTe$;T}gU52J#P}DktGLYZu<`-KG?g`vpCbyt;ae6wjXTPp7Le+}G4#=vD>Yz_WK@3$Nkn8-=@kclLDO zVLn(fVe_mn`cz(o zzn8}wiIv=nZWFq#^>BTR(S&~ioeytyJv@=|qR{XDKSPmYll}VB+!p(Bzk0+y`*r8T zTaO>!+IBI``dD@y$Kv~SJt=Q|IvsjK`^zlZr#(C_`A&j+lN`V0qm0d$ZF|h?ITi+wT#0IQiMmNBoxG zW17=Wmfbruwrxr$?|Gr`GyiI?E>~yjh3iB@9$fhpO~EAEuEtWJ{+{QNwTYkNRsNMog!(MoQmJMru1r@Wo=G<}Nrp2O|SXK%P^`r`5A zh$+(@n@*eFzo^c;aHFTr&1sH@LfEf%Pusj)ugmm#yt?8YzuIp_+orXCK6BIQnahpL z%3NLPe&bdVE zCe5uq=5BUaI$p}-k7TvRt1Uu*e=Ysb;nO205Xryj_~NDee+&IT6?uLA{cV9WcXj>k zb@<|S?^l6YqSw@lx8=W%ZWH{sS9%VwY&bOHu=8MzYp!UD<&!TDKf3S zyz5}mqi@+$p6);Fo~nC;;qH`(NyT9sGp2dx2b?f>7yfr8^WcA;`}0?(7f(GGzfWT} zzj9GU@$5F|{=I&uC%w)2ez0QllXhpD=Nz{d`1QRwvg3bj+{~w`uWfqgu3Yz8*`3!i zo5yWZ+?fY6S-BoBKYY+zK4X8}xp`}Z)|pvfa8;kYv)*zU!_U(VJ=Ge9eZ?+cKONqE zTfRyDIb)lngIYs={jBrfi}E+Tnm&KytJ~W(e8una=c&`X^0h~TE%RSX`1%+cYTIqOeIt9Oi1@Yq`F!rhy3<$reLU9Y zaj&X;+3b{f_mEpMlh)tf7%jb{;2cj|M4D>bV%0eje{U3RdwzcY^H*0_&+t(@@blyM zA3rK|w8IL{oA0;$!gr}^mh8;qI~p5r{N#KQmA#|nlWg4`xpT9tA5BsJ-_}v~D)>pb zo#`eoo0rY~A9v2#yI}D*lhU#VwsRp{CvG@!`t|1u{;wf6->sJRF6j4HC|lIpRy_5M zf4M+aneMTJ+2Kph+rHi97Ob7%p;&x7SmM_D3FRAlmPIK0^9gPF9d}LaRQQvk9ehs7 zzBY@t2b8aCvRx@=G5hqFc}aJFwd`!<4i$Y9Dd_X$_)C{_7o6wLjM_Z6rGUG1E8l@L zSC8>Mb7|Olkxinr_X1zlx``*QU+)pS{ZKgC;FP59Cb=nk#-efGg6CiSKj(1H;l1DQ zonBx6Hydpw=ww+R9<+8A5f89%aCh^6q^|JGS-_v;Ue&3P$k0t8i z-q9P5`@XKL*x0toO`rekwf7}kzxL*~-@K%FQU7{p7en6HHzje#-M{1>nb)rf>a(~e zA!_y3OnqCxw>zu%T<2K$k@L)@@(Uqh$K7YHU;H~&@$)h(e%Z2pE0yYcKeBw4SY^-M za`vsW#$~Z36PB1S;B9JA)pR-cA@=`-KLs4mWgMlioDlr|BSZhAMVZ;BX)F8gKb2uO zU!Aq$#uV?kpPfIp?`26kcT|>fCd0P78$LexzWw8$?aqw>Li6jJE~NjPdOrW~_PWoCrVCg8 zvAJm(I(x^b%6Ii|H0IxnJMnk_?bB-_oP`#d$@}YOt*x(aQLAOL|MfH~b@7YzW&ZEy9#Vo1QnrOo|68SN&hYos z*FAgem}WR%nN=Hd%l@(bxj%ERUpHUa-+!cVDeG*rNs+CVYkbPe{%qq`eRDI!ulZ`D zo>k}4qo+MO7(REFYv`?ba!i+_*EcQmV^Pv+g8*QtsZKqIvyNj^^pcx4Duz*mP8H z?gmGXAfbZ4jw_B!&1cd~&hh{63xv`gq-px zcb|W&!!!2izhhCeZe6ZaDKwhZY`P`pJ&Q9pZ(4fgXIAcSF72PciwI9tY@V-O-}O1d z`=(uyc}Vf&Y4cu2$EW^nDp+th*S=%TsfR~>b&tHOpFTa^@$amsIkw{GKBsegc5Vpx zdn=DmHh+;Y@2?}RYi|A&xx8nK>*9lDH}vmsWL@v0BXdDM`Lo$(J>8~r!j@gXx9r$% z|L)iJ*M?b(rma~U8#u$8ee?3XlHBE;UHf$xamM`0wDHaRdive9b?&9t-)*h?ZvTAF z@gLvLZvK1AK)iQ$_3i(?%jM*1J{-LFzt+^C;<(w3o!bgU*Uw$EbkoJYiAm!2Vz1)V zLQhqletO8Uzx;d3#z||9T6S+&EPN z-L$Rv=^X}>hQmv5FzgPnnEZhP=^D65v{}`K(Pr7fvFsbjw zQorV=c_uPX7rQCgb?4sYKU%(I>W0-XjL)3SH8ABl|8rS&b?%NuZ=|dLJX>-^BPUdB znf%?ei@qi2)qX6f*|GstS`FU}H@aOyff4{zW$JeS=-F2s# zKMOx7F*Sd)@W?ZryKK}pQAhOzJK$5 z)~%v@w?n(1^bvRc z!*I*(*Ehf4cztI;h|}9YIggyC)a>1!oN}*kXW4}`)SAnVm$BQe zd;3;czAH3;-tq4&|9iW7iP_s{zTdxW-kNqVhkcAS|Ap-zKEM6=<;?EAfuXF+cG~=B@wXI^_7RBH8ocqS?|FJ%EPU@QNN|iS0e1TgE6sz@3-E1taD+W1Sr?@o>FjoB;m zwk7Y6b3Uxg;p^wH{=&Zd*4c|zp7Og=BRpB+2IC*a=Z=}{pZbVq$em4i`6nPlXZf+y z@7*ePwJ+q=En%8itXw^xiP!)3q3HDT&1yf-6)%L$oixi-y;W#0o0|Og-n$HqM0ZEo zYn_2-X32ZrPAz9kR`T5Wx#JR(aI)v^nT}a?MpX>XMl&rxwrFj+E5B*mRWpnAmb%N# zXK>e-nDH}QJFUw+?cK)h*Me_zWgNcP-cZ)n>DjRLluvXqZ(50qhzNu?#bN9L(HsAM=cX`j2s4Y>t!fHM*Hk(}P$S}WL zvRC+mpv}hjdb{0c@~mt2I$r%ND7`*vpIU7`_vnY=lfM>OIJC?ZLf`W z?0{*Vz*DX4@-oHU zGb8_giGCioZT{p7`rH2Q|DUrVj5q1`-V>^^k3TBs$G?0mT(xee{l8D`a>@O#4|j0y zxp=V7$S7*><=cs0`Sp`d{$q(*zPr%e?b6K~ExZ*8`;65$M&By%nR$HHqpdn#Z_WkT zJelqFZI}AIFHfZN!)9JQeq7*c{P+G> zm*k(C@5}JOEtGxYXWtha1H%JcR+@G#apz4~_i%5p#nM#RT7X5%;%c{=>4S(ceFo9uJGm%Kh`p|8?s*YCppW&DN5I&RBlW*6}yLjCagbR zbohpNhLykA$HSBF+N-I3jC!i2w7dS6-@bF+w!b@6bdNu&xwLiB1o^y-qP%OfZhTpt zlQbo6b-#yV@$;NR!jC(6RxMxnrF5NH{WG8G zS{VyAUF=)9tw%beGfx^{d~fCI+$ysi9~D??E?Bjv$yih@Xiwy;BZqByw%uan-PJkE`e}0$XLo_$zi(DIo=Iu3 z@ksrf_}?b7n^(49BtPvbPX_0%W5<;LF4riP5c2imvU0tAwFjxOKwM={&|yJ`EkozLDat;)N5(e?Jkn0fY>f)%E`j5eOLO-W^vgzcQnKRwe{ zWtaH%JpRaIT-~+q!X=3|Q3Dm}3sr^d>`U^y&Yn)o+`eybVCum;e1Tkl4_uB|v-tGQ zD&GK&iJ93qr{ye6UX*xY`2)AfZ#znZr)Jl`nb?2u@V*U~-@WPo{qJtEPmg!F)TH?m zN?E6^E=gCv+IFUXk$;c!nWgis{B~SkU$ADWxb3ad_g{Daw^ZiLdw-kl_3d}>bL+dh zyKinz=Z~-X$jVT*d++&u6E9phYf$@FZIgNB(9?Oke0lS}=m?ivNwk(9|6b1(c{1$g z-BUld$5;ox{xdD1&`kUBf_=4?(dWPJ_hL8qK3^;>ySb}4LUQ?0p}A+hS((+vp=Cwq zf=Rqv=G}W6mY=0t>?!%EEAic%X_;;RAKTR*lk2j&`)X}&ft>k<^|v|0E-W_gEt|%7 zIsNDCh7-R&&CPvR6ENlW|#~&{2{V7Mj%iS+N z`}gB)`;Z>npbLDDnA@|ojqaY}h}xztzxmkKwTEBGzx%p4U+3n0hu0zLihnP4E7CanAhP9^W4at~qVf=Q#YQOsxIx zi7$Wb%Xm(@|294*e8u_Xe9fEB{?}y8>^|FjXk+d71!jxgzguaUeYO*rx_#QzlL41^ z%!w_XsB?E`SIdMbo%%?J*v(6?ySYA1-E3qj;q79k|F&qK&x5neXWw~h^RDRHKaaW> z^Z#r(9=H2Z`0t0u+`r%XfACF0Y;^y|*Y;)0f@&TnU)gl|R;Sd0$=mcqj!&$ApSthi z-x=BLx!dPFuHF{C@QhYm+sV4t;M-?i^y<5I+J#8p@SE!n2qu9B)`YJeS|_rnl|38 zcrChlPkj~lfkx#6>ve0sUJbWfADlhs>?!{A%}=Uyud?@lx_44J=dQr9ZCmy|EfKUj z(D*h?UH0tUhUQ&sLT&CxFJeCZ|2}8SXNL~43qq4;d-EjhkEwoM<2-RUcivY;CC17B zMABDft-LxbF-d6iGNn+oFqE1?~1v*7!)5s`@tco!hi{&-K4HU(QbI zo?$$%$S%>8!|QuN@glK;3pbxO#Fb|)UwoI*@!*%3+Vck*KFB#aW`>KD1IPR~$C2;jG@7xQTRR`W|TXR0umc{yY*Q7qbpbOHk zbwB+0%gFy_W3<-N#aXXS4)-39`4Z*XpL6Y;;7^@;VUOPrFS4(^b3gZ*-=CHD|4rK5 z>@jI_Y0N5(#d^2S@Gd&xb0skHLa@`#`4Rtj=f@sC>uvM!+PCV7-rqWp?|!LyulVe{ z57Xz|JudgZ`Rc8Oza9FmZY9kI#2@$yUS9j7~G@A5Ccbz4>- zMWHgCFL0}U`uTP5+I`thn)7mf+x5Tv`LADY>bC@VPZ|Bq*V+HKdG_0RwOe-W-0?vC z&M)Klxtq<+4zH~Kd$FWHGGo{2%nKSjEbm@v{Pl*n`S}{=iGMD9|G99|-fz?Y7Cc{E zy(#2;*@ou({|}nq-yoY;^N|0_hRbEEnJ);4Em>o)8241V`G>>wNwT85D<3CtPo6i= zz2c^(UW%yj*Cgqs?zcR=i{~=5@$nb_IC1N?_({R52iF(v%l^CY_b)f^IpRAw6K;zZ z&A-#}_Gy2`^UmMzbNFi~1l%^Y+t15i!~5e8+qMPlJNEy-RWa{WW%O|kCv(-lm&JG0 z56;pwJaTSU&om90rKxXLW6wrG8muM7X~L3Aj=tJfEA{Vq{xUVI3EA&hzO?wZ zOnZB?>-&bsH$6&bWNKy~w9{tOP0&2~bSaZ@pf&%d%nA7n|07%YG8P|wwP${xpq}J| z`nhcvER+|{$kbfBRQKjj-Zk4+eLk1}u3tzp|HmJG%&`wcKDvI^@<9+qJRqs^W8%i{8yIk77jyKDH@7A5~ zzP?_6!^V}JXUl8;>KSL`=gke@x1BXwZSw5vO@;q=?=gCC`^LRfm#pv9-d|~dP|$gL zr}=U9)FZqV%n>KUG*A9G|K;4S{Ict7@3aM^ORp*GxR8{+jY-Pq{j?4D-skVB%1@6C z+|>B<;=8ZM9z?af$FDk?nrn98dRewY){nz-Q%b6Ke4L@}RVA|O`o+S#HeNN;sw$H0 z@BCaa?~mKte{!q7i>&0~H7&iB*m`0MONqMnjd+G5>r}$tFIcp_Ws|+3gid)3@*iNdOoXJ-RA(KMN;^uYmB_RU&Diw6mc96Ucz497zimSMk4dlNS$Da-z}ihn)>%XMj>g)hxd(H2j2~TK zpX=`ao#lhV&u5ck-~D|(`>))qH;<)%@2Op`bGiE8&Iwxlc2T~!6<4%RvJc*NmM_Ni zp!96RAggHWmsg*^E98r}VY_0yPb7HOQGWhgY;oCNQVzL&Vc7Jf-S%76p%%_nPulM- zymRft|9=jZbCeEzY&B;&;CqYn?aegE5*d?TCxQ&1J_+|I~7l?$rpd_0mCcjrn= z-A})NiF@-!Vv1Z!cg+5)c;M2fxITib&@_w1cvZeKTZzV08X(BFKYe{TOgQ`P9#uBJbn?or z3eC-J&a7LHi1o1_UXpq#MtPUAXvmt1xqX(GIn1sHC9*C`zL0&6`NEX=6Z^Oin#gW% zGMly}Lzk_Vi(kgZ?QpcarLj6&?@zAq+s{9E-SheKetO`D6{MF)RIMtWpyf12Mq4l{@!%iW{!eKw;#7j-GPbQx9U_SK5+Qs z@v@lL@!^p)8`l(9OLK@WVA;JY>RBp<6qad-Sem=R zqB1lzo&~hdy;WTPt8HzLe!k3>#F%|OPx7jle_@$kFS+mSg2E^1@?rnwHdjpg+T2nT z*PmYf>fp0)ub0=?zFr{xcUQmte0$-)6C2C^Cc0Kue^~!F*V%3V{p3gYvSyg1%&aJ{ z32M7!_%}DSsi|lGlj!2d7i3p1Nebqi{Os^juJV7OhnH-b`J#W$BBj*~zZV}gku^Vj zghj4D?D&d`Y;eIaS>%h_{~J%@?l12B_Qd<;*Y>=(*LEEFU1t?;xbIrk73JFpFFx9Q zOzQFa{lA%gzvKvg5e`@IDh-&cElG19+S*>QePqJ!SfeZ96X zRZH~lA6jN{KW6j$4(=T-NY8OMjhO(YU|<;$g$RAD0BpdAzf} z=UBw0+rMAisn2uHs*!A8|K@Rfch(HKwFjd@ebpCS&)&d0DPN7Ha@+O1+Q(D(y$yO( zd^@P(!G?5s-JWo^XSYsmyZQC5{`;I`1%OXKe6@N3%gk3auN>gf-)uARg7d1sbX-a%%|ZiBWPJ6A5Se;d~`F_KNX`0ZSl zt3vZ6IMtH7Y2*Z2P`-S_XShgkUCw)Lt(U(S91dG}bxzJFg& z>g=23anWC_$o@btf5d*B`CaEf#+Rujp~@UH?y61Yb2vxZhf=o3U(0#WM%C z%WYq-G)y}o9{#Z+N5kB2-l9c@Jd5Qv%-X2=qU^&Oo@qy%(r?CjWi#&)+tPpGm~Q&* zf0aJ{2E{KcBt=8TzI-f>*lypNUpAd{?xO|oDtOJ+-6qBC;0oq2_^KIq&z}FW%kx5U zsly%>it{{=x$fCx+Q^=FHK1@4U()jp>ngULp0Y6QMA3U!NBJ!mH+NoTicG!^sG1e@So@YCp((@k%MP}cBFZP@3dbUMTS5~&R=~7(>5zmk1hfH!yxZHGaoI17B zlgGP%or-1H;j_h4V=U4YP3rhw*UjovJn`9oLY063u3(cdqE9>e+Os*BYjNzVjBgM%6OxbUf zCD$zaT{k-1J^%BB=B2VsGfJW7#JdwJCfB~6y|-}g>8ESD{w`3qnyXs; z#V=NKv!Gn9`?EIj;uCZ77d(An_f6!=g3kGeckMaA^5gI}*?kEXf2(;G>%2Z*SrJgZ zDyR7Ni`)LrB44z94zAO_@0a@bUH!Rp|F$Ld+=+fWA@$MSkMo-D@7u=3Z>G{*db+p8 zEbPO*Xx|r$?(ToMeD1CZ;bm&VuFT?n*AwO@J^DF+oyxKBza;{Dwr?&E*wV;Vby;1V z_tP8i>JPK;N|o{~oL{x-XtP|e+I-V%68V4c>a(~``jerN@Z@8K`L*DadS5miqUI=xQzgKmsJ9)}u znf|}YCdZ`j-HYFD`El+Xm&*}{TOVIFxv4yJUybehlnnN>=8^C2#eMfUqkVtHmFIgt zUOcoT)nVP+rFK8g=Vx|wweNa-_0E9(@W_ zE20#XmRDz9ax>JRFlTZWHas<*uF_usbUBL0?jk;x#&4ZX-#hF>+U085E@svnU&}on@v(Q&8 z@lQd{L#gMLkGl2uNd)a>tYnT5U`f1kv99&+%bQP9<)7ZjW_@G%oZ+yK5Ys1L(L|Mu ztx-nC#y?+aSMKu^U~$~BTW~&jfo_umN0UOsllF3D@PbbU0i)g}KLbm`<~&;bm^UM7 za^&ZCPD+12Oe{P2f6wQ0);cjeCS1FA&B5Fiv;vZ;>j!MXr~nJ2iv6D3JM=H`3bb5w zDERdH&lpAYYL?qSs7Xj15ru40;|zyHr9 z{r!K0Hs3sBeBQ>{&yO!QHkL7OF32}4+RrM3GYlF*YnMRy+&RC0 zZ}0!>t^fbMp1pawi1$91Ze& zcQ|^*UhdLotJm*ida&>JyT>n=&tJA>%aj{8ZZK@mGD%);XWe|%@aB~MMg9#xF1`D? zNbjiCyG#4j>N39=T&h<5UQ}azt7Z{=VU%t{u0;QjJ@WUL?(>z{-H|JJjCrwhzk7P# z3(k|$td0VE(ziTqeiLg_2li7}NVkir zyMt8kU5@gLyCk;iwyo%^2T?CGS52L=>$UMI^Jg2Z)aD*Fe7R@BuGyPz@jc)7P5Vh{ z{{GL?ALdm57X2i5ZrPfvPi<~*u6)-iv~DYN?Aj^oPd?i@qeRSpj%#41w%v|L`%1Py z4Edk^*-P)<#j=MQ_I@V|;(kN6U>-lQTDH1mYtY|YVqx}gt~AQ8(OBrF>b$aspY7t? zjUBV?zB|3jJ0;zAtNPdJv^S@{R$mp8lRMYQ%zk5cx&Fa}2M@119k+YBINObFC3Q6i zpNDyUXyMQO8hf7M_QoFG?7D|vjvsb?*Kag0N!?W9<6cQ-yM^=p?5A&Pbyoi);N2JK zHrJmAvfYm3Mb^?yD_W9^_PbdoAK>Gep7;CXomsaSD`)Rr*mBkI<(~yBw$9i6TKq=G z?yB+Its=H_&OMr;8xkF}ZTBrPM-Btqe??!voqzYk{IqLP@}Z!XrYmRudbTdi=G!M6!Afr9bR+M5;s8GN`S{(|k!-HeOs?oM^OVMzuI z*Sex|zWJ?^emf&AW8vP`s@08_!CRE=V_Q0xS}(rPUZHix&G{s|iA0b`$BX)Nd|8{~ zpWD8+sVgbtHvHwcZtA;dy`sN4>}U6KI%GeX+0Q*w_~QEub&b=Xx+vz)F`4l5G|#fu zhNW9(e4pj}=fxizp0n;Jqc`?@_wVxy`r)B}i+j(cZt*SCHfz7O`IURy(!g9sYSqp8 zkq6{z74^^ae)bGL&L(>$uV(7svzsG7KaA=TzP;jh=$U!x-Y5QBG<(!b<@JAGaJV_I zKXD7&yq^Wu#mll5o_6{h-MVMuPrixi;f7~ld;R)e?O&FV1K#Uw@Yz z&63!oRP~1WNLycrH0y5-|GK#%lJ5nMF;7z7byWZ7!hXT}7uHXBA20~Z*b496I&WGT z1NYZZzC}W%CUeb_+25QsjreNlQhHm}`>5lmNptee*VTQ~__|kkby<|xw$IJ)%=OII zXdbsoSUFMZ+ggo%iRNMZZWEODij%VyMtxsM$%zghCX!UG4w7jG9f>VIRWut4G z@@i$I)=$^pc)9SWg8jMoDnFM;s+7cszgQfZ^ZTV!(xGO~?%AFx0n*Q+ou@uCcsbRZ z-Bf$p#)aQ^S+A%pliYcCKWLlm;@@X4UDamWrt0(hax};nF zyY=m!4@dM3jJH_T@7Xxvs^{*N-=BUmo+i~7+A=Y0PGe@4#KDJ?Jx`ogn)z8~_nn71 z_sh+KzvP&$-aq+ZvF2^f;>`O6PfT9e{y6{ttpA-C+luNx=`253;#k_Wi+xtpq0UIV z{uAHSX02iF-nsYQy1KvrF1T(lOL+19=w9DXCI9FCF8WdU%1BK8?b3yL1-9kx?(Xc{ z^Y4GFR1luEW5Uw)y6^v;R>)j6t*`4WXcze5uCsdtHczVE8egz>$%g3iOObn5v_y4x z+az6z{8M0N9kwQ=@QfEoj|7d3)->dFz7Wch;G#@N>YxjR@8Z+fhT)h0VSo<&SynBOxigrz& zw()UG>Vb8E>B?-5(ssR1#FYw7>e_hU=PrK!`*U}k+vBs^QznL@A16+@y{;lhMlADmX`A~PS09fxaG|+*Y}sIyK>7uT0bu2 zd~@KJ%kJp^Y5QYN6dS(Gu_&3iXo=D+hF4t?ACF|}l<=JH|7I}beaN@%@BU^y2Fd7->Ge1oi&fSCpIOe6$lCX~D=6>P&pG$5>fZ77=)2Lp|I^`#3jZ$bKfzM4fU{G@ zEq~#%n|yDt??~x=a`NfNfbeeK4PmuyYI^5>UfK8*b2o5Z?Y}C?qxq$up0vOJwAp*M zq3QI1nxce)i`~0Fr9ND<=8oqr5!sEuzfYQf@q4Dk?wxYc9wLEN*ViTmLL#0^_T9Hz`kJ@vEskoT0KJ(&n@{B(>1@CFBIB1qEcV4G+(dKnMu|L0-m`vHQcmdz*BN}OE`QtOGy$`W$k*`z?8I=bG<3)*p_GKD4fx_r{lvXJ#!t zc*iD)^Cv_8+j-`HFUXs1`Tpm+#k5GD({p65eW@=hF}cm5s&jos#ctNvKPFClH}*E4 zyi(L^t9|Oi+WY4o{%Zb{;m6$`CiB|&+6phU}v~$^PRQz zuWQ}j?&FwuXWE-H#XKido*h}d`_H)xe_t?&)GT+ew>~A2m3O`O@ifWfbH48RdNR)J z?Dn8pUmJ~&eY)_S{peg-37+e9S53wKBpF;bUSuG@)8qZ(1EKpD`kv^_p9}tH^1J>aOrB>&#Kj**KhT`xNPUI)6TnNY8Ev47k!p7H(zDdF(==t zzjs%YlGoZm727O^V&3+SexGA}7hwQbh>9gj54 zzaBAotdaOf*>aKmC+Cmti{)lA@R>NWEpxZd*qO6%@iwW?Q*OE(o!ODKe&NAOZl|C6 z9h$5>_w>TnBNHo2j8_&O6cBN|bEm*cdN;d$lS#%dtDQG<7AmJmb@#n{_VlORq|Xbd zvA=kAWFhanxLIqb25XjIyLkWN=ezp5XMUF}{;4+Ob=12uWBD}Mg(vx>?wo&95@UCw zpWDh)H}1*(rA?w7eg2B8zS{7LZ7`p=+;e`5CX>~=DS^x9A78ZdVMgW zO*MEr6QAmvf3CRT`py2M&UxFw6C1g@KfjG%`dD_s#n~Qn?Poq%V9;}NV#XS=90&JU zOI^Xw5mVmS9GfB5f6sd+Pt@}}98J!rQ{NEE8< zpA~fC&dkHw)|Y2)wwoKFYcZ?-^w!B+Z(R83@i8rI-?m9pGs~;y{Vb6*zaX$XSJ(S< z*d)t%_Fm9p1}zTIVul*sZq?3)yNCWKzJL38(VlmE{%_w}e6}p2arfMvyZQF-UaV(w zZcp9mCH4p1!VAqW-0#Y)QMjpODl}h7;-H%$?=gv*j44YR!nW8QnZYuNY3KEf9OZYq zllQsgn>MZ2+mf1*C|dMiqTG6NTl=|^bT!lc_HFHq&!pO(GoJhX^^>Y`aqM%e>pRc= ztlM|L_*`jUD#zxg-^(99`u9^xW<^BI4A)-=buP)tCLF2d;kfdS^%9@^;Wnmu+f~Y+ zB?T@2d}y7vukQ?57Z3i%DnqI&!lbT)#O$q zmZ_IqXJ4+L$G+H_NuTM0%i;W**U`D(Gd6auaCJMxc*X6R?zIIS5_|f79hzRow`9BH z(SRgVhlOUJer)1!n(|P>Y^~a+#j|FK{m-or`H&SZ>?$t0@pQ+wnFe=RGnQ^!A^3Kg z#i6zUFXdeI=2P4FIK{u8URNY9+ReS$(|*QL@0(FCRy-@J?avqJIDflpuZ%I*qRG52 zYR3iKjHmm4n)@sEn?~X}jXTp4ypqkIe*RNlUiHuRTiYL%SpB^wu?FS-dv@wC_S|Y0 zx4Y-eO}Ah7O0Kyvzqm1Bdn@nHl`hQhs;?bT`&?ldnB-jFv7=C=vqMog`uN5<@`D1Ee@e}k!TiT3;yXFsM* z*5~=YRWK~&YCV0=a)#K!PhCROE<0r&(wntA-#v~0f!~$v?;8&PV6@bid-_bjtW=-z z?Ln`n`(|epee%50f0^fQ0Q1LV<~w3iQ=ffh3(*d~z;JDv*`4oQmFEKP6tAhWn|e|+ z=AW&C>!h-$4282ag!uOP9CEZiyR3N5*;CI7>g=Rz=E=A3UeCQ^%7K@L;e4~1uL!pA zexLVi=}Je_J0|Qq<{e5s{+4A=%cZ;T+zj2X*1w3Cbc$FZJ6l-BSz~!!%da{%{UhJ^ zuB)m36z*44DYHGXm+@AN`M)>E8F*gqJaJ=2UFxf^f12lR*xGKfDLZWaU(VfXJ3JQ7 zo29!l)MDL!$AkN7a%61-C)|Fkv{ES%!ss`(E1<~|d%Go#k`;hZ--53EmK6Mvg^-|WgWhlPCaH!fWm zcw{Zp^qsrTm)5>sl04)2WA*dRmtJi=ka_&!6pmm%rSnY$_r8}UtFnXRF@p*dNfKa8<6l;X?|6gxlLN;q@-qZyxBtnc|Zeq+RLhHYR>W~g)9x@3{~BaE7`UPS{eC7%A8xHu*sxx-m^6dMX%kI#Cw;kv@h_# zR`l&_k=|{UM^^LOoz^-D&OJHtQtMxtwyksjN9)gBut9a=mh?15!6v;rQ|U>oPiSVh zP2G3Cd}en_@uHx1M|W+$1Jh-LAINPa=z4!w^}%}EpW5p6rHV5?X4|tRc${}V zcI=PE#`A@7=jG*_4>+%U{9nhNeAO`sAM9%Ojfw6m2B89m!$=ek7g>KRwvin^6{e8JmUnHTQu&llwC zjB`pk?W%XZ;?%EyUw6IRuA*8hvg(^v-qqWMTg?L_??_ybQ;p4>XB=5*xpv0sRW<8Y z+UuAYuIbBPs*{%@tmdDnBtb~t|f`8{>T*P1^C5AzC{^P*m7 zudoU3yUF^YVZGWhp|PR%k8+99Q8O8ljhntLw@O~{pb@w4TK+M@iQ;$8ZYg^9~|uIY%% zRQy=H{K3C!<{y4VUyte~JBx1QblDd3EQ4(~HpcyK zIBcDLA+L6l##5IQpP#sd-QN>06zH`=Wx+q0qwDWK?03F!@!_-Q-I2~0FJ5##*Pq1j zx9E1(kDp7$-kb}2b#BU~6@3RK6z_jy_gde6uPnj9%4%Xs;H=39E=ihOmM)w6BK=F9 z+L^vR?`?KYoH28cfNAawqhiaQ=JUggbq$o;mNtLjU9*hKj`2%ndd2p2E#T1i~A)Q_}HdcC8afMl_?tUX0yM_){_-*{QN6Eo25Tj=0sdM zv+;dS((7mZ1xH>5UVb)nshR!Uo~dg^?7x|0@0)tma@yo=rPJQ{Sp0l!dSuC~jc@NA zI(PlI-%;L!6N(#pT*JC1n{7Py!Q}k=HO||!`K5cB-(2A}{ScDK)c2Tm%1mq38<`LP zuBkb9wSSSyZk;KW?*nr@mhX7@xvsL?Tq{8R_=2~;{5H4r>}kDGv^gT*VZkK}7+*XpzR-`_suo@n_(pojhYWU;#kRxa^f zQ=cM!^m|Xrp1EEj;c}{+uV>n>G0u6o^>x&w&qB7Two{5e9eQv4B6$1Xt?K)qia5k_ zxc#}8zrXDM^UnhFy65x;HvIYg{&c|WpF0#6-rm)^^kQO7(L<$WzY4x&9Y{N9mu{+` z;=cHuLGfEB<4ZE@FU{WEB<`o{Zh!dD+V7`!hRL66N>BP3wIJMd*#@(~w>SM4@8Lar z=Rj0XicjiqHQU6mYWFPfb!5F;p~ojL@$XIC{KsrL?TZtg_j1hKKk==0bfx<0ra0^K zz8=zo=k~}NZkcQ8{`d}KPO`)KbVbS5P7AJ05&1Wc^y_8Z{O~R7=F$c=bLJm@MqgE3 z&iP-~QB*$f@%WtX8pE825w$$GKPNF?|D-tAzQ$KVc-Qx>_l|u2y(%#M{qy$N{3w>} zdFs|izpiEbiY=YDsd6{m`C{#vWM zr^wN_=%H|&UD^L_@26p_W8*^ljodqr@GaJ zjIZBYeay_d?Q8zhWR41@ol{?JN>iA$@=Rh+j@Y5#fWs42iA+nDi0U`EKs zh4wCYEZ96=l;teGo>Wy-`7PY9xwm{z@q_L6{r=5reyc3*ljPDP@rT1!rgT~Dx0~tl zJ>_c4n5MsrmwT_{Q#I{u3|Ge{Ii7X1gl(p;O!z(3*S2{xv%#IBvYFi#c5A2hXy0bq z_pHKrN|6+&TJl`Em(Ty#{(bds|8n2iYzLzA_dfl6qxAJP#t%ouZ8v>4E`B*<>gK=e zM32hw3h8ATnSH$Fo@n#0+bN7c)$=cB*T4O8k1qS$Kjjw;E;PQeG1=%=UxMqDuQwD< zSsJKKQsZkqxn!{u|M9kUzjzKtE>{;mm}9LbyvVO#c9CB{uM_`qzQE2Uf0?F^78V})A#>LtuYdpa=mlPqwBQZr(*FI*W;5X{y!oT zD-;g0V6ksNHkzHzNtceo?407{G<{F6^U2%C^x1!f)CF1QP3NERQGfZ#QyF&u_f~&r zdQf7ud;jaAls(f8B;^lv-u!B0xciu;G|2fggjlw#@v$yk4B|k%WFVpzU!%b>MZdS4 z4eUjU%zZ!4=3lyU<;dRZ?;TxTQt#h@{ce!Q;VS}WfgH)i*zu!al_FaMD^sI`!AlP> zFQ?^~7hVQ22x&;}IvsO_|54wi2P|tu-&9rDo1SCz7v^ATa{PFZUH-zAD=x*w#?$rV z<=(&faWqvgX?ddZ`nas4dAANrIdfU6{jNyQK6S}^Im=Oc35afA-sE z&nte;H&ye>mRe3R`Sq0hfUEO0w|RGOH=Mq|)A`h92L*}RC=FjLms0D9?r#%{_g($G z^|II9pF&)dHd$2eE`Ob;dpfOG@#yROa;vOwm%ZMqRP@N^zWwBqMaQ49Fz)|-_x%jp zYO~F0XCImG|9N)9rJ}2I9!NTKW%Ec|Mm~x{;kyl+(b?WQwn<8SS56Ug}On>&}qJ3ljt<@)9UR`It$@npI|9!)VW6qyj=U;SQ zzQ3%{>w2a5+3L%cYOB}XwlBRp=i$xv@8z#WS@n*|lzUe9iA*VD)=?ddBM`1@jO z#%1C5L|bi1`z^xLcXr521XXVjwzqrLaWQiF_0%h0KAXopQ<`VG6!wYH580utBU&P)=FT`~9B>%1?=3JR_T z3QRw`lG``p{kBIhN}Ia3?Jm1=|MuaJ(dibouX&c|zg1Kd$yopJ%{l26oBKbd-Q_fT zcCA1wTcUY^@|k9K{)p{)veDb~o_;=WFTXHE_Ks%uyF!OGSEpR(w-3!c$Mr4r*0^8?`gJ`o2CDU$5CJ9%15geD-T}#*?Ts`dG_j=v%k(Y-L-e7)$D0AZeH5) zG-#UPhD7Ccoyw{9y99Ep9vRF@e|nn#?XuR>yR~=SHZW-DxB9eWeZ52O`o>)Gv#I78 zuYbMRzLx91v%-w1mIbrdv*}!kh-sL5OUgXqq2FHFg5;I?%v)UCSzc6I=*~Dd<@0AF z?stKwzq7a;X&0Uq);)Ve1@o+fK4tG8XY*+CHaZ;XsFU3JBjCkDmj|aG&t-HJ*L$UK)xOlJ zLD_}E+cHdVe-0CP`sU>3K+bF4>J?v)dcE6ysG}yNnc4S1=F6yG_dbg)YI(uEOd`Dh zPtlP}RbM8q4=8_PCh@Oxrg;6y(1f^CRnHh}UJLH{xPNEW;nyweRVIF!`hUr@H}&7V zv*Wys{`@n)^T+nX{mGI4@5=`mH&ybsto{;{|M}V3zjfui@BZEA@9q8iYvs+=-pspa zuKtmoPr?_RP8GqwgEN>s{c!itCH3o1fQDnDWJb z!<-+g(-i008~B>PV-)x{cX`E=bN`>cntO1$;j&pbJmY^izT`RnE%Z`Gv9Q?gIX#C& zc;=dgZ(A4fd)rHXi)p2OQQgv4?^s-WmaCHI_y1So)Sc7zmn~N{xNUH6*8?N*kAHTl zeK}^97rXsInEU6DIHug=_a8hD&DGe#edEJ7vqwsQrn}y+etG-Z({r1rrGCD%?^#@B z*BR@>`)<5Cczo(PF}-Db&iww$cSob*Y-^BopNH>5B{OSbs|nK;u?;^rZk732a8to{|H;k{e)o9?a*uQT*x$Ci z;!pqnhp#3coPX=7G{1VUoZJ2B?~^v{+mi63Ln3hA#t!~gIX3$w1`CgZ>){`wuKAYy z{JG}ab;fHKy>2Y~JEyN-VaZeGGP&{(KYr&=UXZuUpVGY(M$4VQOpT)xYn2u28ywrRieI$>RSO_aZr>_N|Y% zUGup-Zk<|fcy)J&k<|*l?6#ZS9b4`mkvZ`5o42~fw>V|v{o5yQU1)Am zy==<$B3_xumyaKOv$}UP#z#3y&VH($DqB6{lAGQ$mY;e0rdu@UhG4s*lhfub?wJg4 zLuEcMxAbCuS^L%BZ}~U3i)*+1E6G}wF?lQF<=1CdfEF5SKfhwd_4}8Mc#llg73;YR zr!HL+pS1VX#<`&xpZz`@{u!`4pZ|E-Ys*hv*G-?!+ZaSVgzfm}}8FXtn&lFaXYJ6tt2JkDgXeQi^1arDZH zD)Hle`VUU5i}Yx`mYFSj+-&;dQ8=o-G(F+OKtv~zl>#m5HiUxE4!*kE%oD(zo;87Qnev>cY-M(9U=6^Oh zxpU9#Hx6HkmJkE$2tqPt?5bl`8!|WbCp^8)th^^tZ19#V=cLK?p(`j z(sOM2`uB^rD__oLkm&qi__^L`#`INB|2~qA2(SEJR^w?K!m6hh?|pZ?eg8&B z^NRn@3KD8g!cQf+ZKtFiH<+B2b6t0fTS&5_>ym4Z$+^n8Z@Hv$7IgJ0@ho^Mw0_yt z&nJ0oyTjWO_63~W=p$=??w!w@(}Fg22J@cHRm-_macNVs?Q>3-8VfFt+luFR{J7MV zsQhY+jT1ks!n6iHz8JB4=XI7{WaSe1*B>e!aqFp%hN#9IzIXRGC-L_tm7WZYi?A$s zzQ9S=`O>M#7LCIfkG~GMvBuUr`s>N-*7rZ&d;B`{+cfK4_e(a1PYqrjckWfHl*-aJ z_j#R-ug!P9->THOcU#l5j;Cw-zRN83?{j^7Sa6c>>ATP8u`)F(Fa!k!%`nTA@>)8{ zH2YeQ&!Xb#0=9=Y^K7{r)w@z|-^3i3r!qf67`9*DT(QtevQ4j2n%(=`=fl2H^TYNV zZfBV6+W2p3&i~0xYSIhYF4b>rUwTSH!xm)X8qwna@Vs_Wdls_9sVx@VM3-x3~mwQA{XVdpAcW|i4_ z3_p3*inNurEIN!r;*?jb!^J0m_-G)gDG| z4Mt3ljd=U2&QIpGQQOfG`B!E2bXNsIr;t}}&vxb|yxRR_=KSoRstrFhBT5_>nhEUp zXkNmjUbU2OYMJ8c-JhncICwYd>y5(>r|!DX=3l|HHr#UC`k9rLEA7-5v)-HbHX_@> zI=uCD9PhV|$hmVZ%d(2RGh%m7+);S%y1(G=o{ZU?mtz~kvbv=%=5;COaCDz%eN@lE z(zNm6e!G7X>7k+zDp$W;9sgG={{OG*mEUfrw@)uv!PhJ$^VQcRKL3E>;S-laWbdq9 zv~wSy^n%{&N{rLIpVl-ry=cCDW5Q&=TVA49!h>$xK6Z7zqNMzgAxrtQSoV>WiFz(I z8WQPNR#rO-9y0CRxf67VdS74P$8(b$407B|>_n<0zI2#3G_!oYW&6gU&f#3Q`_7-; zv9{h0zm=65Wm|JaO~%KLq9(mZ34>bo8>>;LYTF=Jn$%rLB%^` z{=7-IS2i)3BCPJmqaAB*_2_Zv9iyqi*4GcIyG+{V;hLJ4@Vs6BbjshaG52)z9vn>y zI1_iE?NCX{KE8J!VlLW>Zr9@KReJc~w2I7@%Q;rZZ?4JVd;Wa0BE#92rwdB6g0h3R zAG^Ks+zq#nJhEA;TTV`$S@yNT?s&(PrPJddZLkbjaX7H_ub7nU9jybmHXoSu#+WZW z+F$`}Er7y)NB8;F{7331Ij@Vc%Ha#ht~zDXP|Q~4ru_2^tMd638H;-UGO)f|r4)C1 z&EZ!p+t0S$eqpKlVa9<*C8x{9bAnp)+N3wHJ>Tf{6Oy7VN*$R}{ZEH#>|NIXQoB|#BM)lFQ_-ly%}2E^xXXZk!ugzUPrGeu`CEaTf8kK?$*U4H-AMK z@wq8n6!LKF5z4!B%43>c*7Jx!Vb5skoiXc^GixlS@YgX|2>f?e5a_WxXI;Kye~u*o zty>kwnw^*bf37e4U-sw-=e}=S*B3rG(6~@_-4y{_alQNdJeQtiD-OPRd{*G@ynx8O z!;MmZ?+6@d{X37jAb9r9)~|OtZ~Xjn{-C*~p@!hcg$Z*`oIR^*Z$E#=42d2$<>mhK z(>^~to06J3aqe8(0wyL$0i#DB7hX8Lz@3MIoq5uF}k82}I5^`0(r5 z+c25pc?rjVYhJi_;OJR)4U2Wp)vb>yU0x8dI>05pXh})pd%n`HhPq9-ud zZ_BOTlfM_7ySZ=QF0Qxbw=bxq7uu+^cvo^B|91CD$UC7$=3ni@1f~7I*b0~P&3*W6 zF{2;XES3oUxeKTqVhjxnZs=3Z_Tzy|uUb z86WE`yZrgPvYxDGt-Cch=g*a7X|<@m-@?VTN@wKEmS4fM_IZC$O+MpoZr;PMu1)KS z{&8}uL|kloTItEGH~Q}u8GRLa>1J-~zrXRV+?&5)mFGEM&r5s$&F0fQ$?R&`CcRS5 zHM>u&y^ywM<4TuyEt~2IyptUM@HaXbu=&hCXVS{F%s2V&&(AgA%IlB&*Z<8vu(;h> z?hmU1%UdPgnEWT#Y-h~0>Hc7;_+m-XyO<1S&9)aD44nd7xe6AaKc{r_#mq^M-5Q_y zKi^?=r+UtljvoOAacg3CPg}N3ZPlt(GfcC?zJK@i^-z0HHzHrG(tql%slGC=u+eDFhX7WKyE`TXJXm(s zY*&78%W*Y<%JnUmyyra)kIIjK^yW41-cPbZds|LS>yBBsky-Cu{QASsl3!}?+`?vm zKT1Ksr}W#~+t=ToUMZ@wm<3lYbp1B(?It^Se&yI{iqPqZ?a_^4uegdT-&O>#FK(NBf1^W? z`@*dCkHhxLhF1$uJ=$x*6v1Q?0Iv7~OO{oiOF8;?~6p~Cp11bl5B^db3oOo?QXEZ#nU`$Q>ueitrbBaSuNGd7l z>y5Jf#OJRU@0cx+Mae2AF&4yKVc4Uovq$C6QUvCQM9UQuti#n#8t(HFj-p zD>v@7ev*2LS7U#2BkFufZ@&GC`<0Bp{2BDPQ)7Q`lnRPS_E>&n+kx`C*L4)%E|_?1 zP41fi*W~VPuhiXWdn8@umVbfqs#zQrxBHLn#F#{CV`dW+)=^n(An5KW_L_J0kBh9j z()Z$e*PY*Zsiyw=r2O(vA19Z~sfF$R7BBWG_ul==Y2NY)?=~cQRqndI?N37fK@OXj-uJ-Md;iUJ(RSY9q{|FJ*s zPQucI2a*q%H<~+{ND;79?KWB`2SKjw{Y$tIS^> z?(O%qpGVbNaL@aAYqG4vN_9-~-SGre6c`xSrv zuj=r(|2xIr<;&eOfd-R0tZd7CzHBPHI_JSoAJ*IJbCk3uG`=iMS~UH0grZ5|BZIgq zi@;ldJT8XLcf9iQqT7wWjgD7d9{8}d{bpq3pOp(5^qCh{d^`O6|Gdh!%gg=0TZg@P zcti2g;f>B$UN-*RS7$1&7xUoC%HS!}r~kHDws>*#g$n`u{=UtBT(mP{QwpbhpG@NW zdwX4K-zx^5OYYEk-6;6+;gLf~(-6`JK*Q`aKGgjC`8*{hWkc3gEj~G$6PK3SE|Qd$ zJ^S!*yQh~|(%oI9kEeS!Iw(lw&*7aDTRY{{ZoPtS1+Obi-@Ul;PIV^BWafpPO?fV} z#W`4lC6-@4*(Yo5;pwSpZa@F`>FJ-{9T@-Yzr1YY>;He`_kBPA|I9Sq=wsHanHm*5 zR;*utJj3MFzklKNU&H5Em-qGC|C4A~?B4(BgmV9cxpQs9B1JgZdOP@+nD6c#N&IueBBSluV24{n$4oxVIM$q7&676arVa@LGFLF zH2f=PnclzUy3)AuEqia>x1AzBE-h+Yy99IN6a;({_x*XQzd7TglHH#V&hPH*bpGb8 z|Izq?edGUS0Uv(;{}o^JJ^o*-ySTnsm4*NZlheY02~(yVIod7$^XmG#qssj@PN}I& z-xOVBax_qQba-X21cMl89zsX2SkRhRy7FsK_Wk%3r@c~p6}!6v?_}8o?EA7*|KpFx z{hJFOI>}YNP+S+Y^H4K8|BpxA`k<{~pP!$9{{H{J_mNw(L@zJ*mw*3;i-qZ+h2lc* zd&d^`dsl2<*D-(J+$P16J)cG9RJ@-5x(qszz*n zR@)9UeE|+PvFSgBSUFd&G0a)=VcY8a&jt70+K_ba<>lp*r%X9=sFnNYx$=F7d!@}Y z_LTScmcP5O=<26)&Fnf1`{vH(zQ$k@ry%g<5Ok7b*~PDA>`%M-jo-G*Rdw9Db&K(Q z^`DQ&J^lQi{rLD;LnKN3#mYl2y@IYa7F&OQsz`@SOfA^k*>%Uf;(w5Gt{&^F8x~>D zmuyPtd-C5VoqOtW--xv1lecIw-CR61v1P^KK;CMj#Zx~W-}dpGZT$Y$jbH8rUVFuU zqL?8hEX*kXo{f>Q@yRo1-u$b(xXAU-r|J7;%6@?oGlyM_srrpsL7j_#ON$zdt8Vx< zRitN@qMDV;-|VN)&N2CHUC`I-xO~gwfK?Lf^%NI&GBr9FT$Ok`6{OM8A((B^?OC8_;PuqB2 zUDck=S^_=NvH!Lty;bacGfVZpyU9HZX^Y=C7^NohZ_H0MZr}f#P3Fw=)*l}PJ?#_~ z8`J04f*Mw7XJ@Ha-%+1mbLhBy{h9m!-rny!QOc^^-y!&0`O)E(o#2$z#MwQy>+J4| z&0>cZC0DrQF8!t~e0d$tKb9tb+{=ugnz+5LymOvmgGoB;Z>{hihqzD|HFcr- z>#e8Lp51a6yWqCDVj>$S@5NUWIrW$M&p)^S@9q5`f8YN~yyxrrQtJbg=Y*|#&G@z`uELu2t-w0# zN#IGhrj^Guj>nt}lZs}@Wy)j^Ur=gRaOwAFk2{An3ctPz1?4FpA0CG7`S;b#%*0+l zJ6rQIJ6^bXKhr@M$CZh3MNG!e+m%}nHBI#nI1|rUC@JH#GZGuKx!pJgmCImZ)MKevEO>tT)=7n_(t%0cER6{#c4XNtSR*FV zT~_d+MCW0{)*SxxZ&xqfvV-;S8>emW^3;A^xxHtD#497SkEh(FuGR0Dcq^0@F`{WO z?bu#-%inRzd?G8vZ5`e2ag}`inG+Y@YxP^Ba;4TQu1}U_$9!go`ER*&SKEH=^)8ET zyO}nh?aj)Qk>)brw4hq7f+KL{N|%Ql8Mn$u7D&%eIebq;Wx>}Pv+SCuU%l+OUwz+T zxq0HuZl%oKc~9S8I{f3ulUk*4sh|ITUbQ>@Z1(*>Y2WW3nkdM@(sa;R@bA_QuKpVm zuj{C!Gk5KnzB4So{p!vM1xx3+ITi=nvF_Y@Lq+%E=eJkl+J6+gSFT#TA^JaG)k%-n zKXW8=&pw&FJpNf2`-Q@Z&v{EzrW^^F71Z^(`nP39P4n}z=#H4oBXuih{a$CVsQB9k z+neXLWR#D%Tt3nn@tuXKQNiMac=63ljZ^9Aj;7yZ1;plhL?voX+`2b;ZKbMv<)N@6 z8*A01au>|n+wf#hiO`oYFZt@3*>|nN&))yr+Ztb9zb^6b)fgcwb;Z-Ko=&Yv%1hrI z8YcXKEDvAb)N5-ZQ_|D>{Svv|LFcP0EV_20K=ojKzp!o?c@_f@#hJr43u(DWi+-#1${vVemQvj$m1-#dF)L4Zo8&~DxRr~)mfgOv zUN^JjeB3#6hAZ3^TKcUg>H>GW?^X&wW-!?-i+}2+7c#$8*^^96E~e@|V!wZG`8n(R z<@OKQ`QI;J_I_{4wX3Fg|C?=keROq%+egsIrNaa1>u=2~bhppi_VaXQR<26lts=hn zt6%qh-<7=fTJfG)nTrJXx*Na0`{Zn?`pRs6^}Opv{oBrVs9EOo-v7Js`}2^V=3B{k zwyXW>wQN7}@9*!Kw$*0F>E~P)1}q3#$-&S6{B`_)tKH@A<^HjXgU{mP;-7CM_X|o( zdnY9+-Mo2IMNLgeTKe>+)YBSzdU7|7#CqhE+}@c{3KG)4MLk63B&{}R;%T5P*NN^k0CPOe4#dCAUxR+-wN0r8$^Ir*ZyVBs{UE2H|unsLC=ShL)ZUr<7ThOJ1I8LU;DY8 z)uheI9PWOL*A=Z@(q2hpgd_t>Regw+6((9x&FH6 zb4`yaCQN7Xi`DF{YF<(Eb_E^UU8=gLQdRcuS96Qfm8CiBbOktAn&gy(JWii}wsen( zQ27!8-NxT>!m&nAI=5cBcz?&K+7KPRGirYm#Pn0M7cQQ4`YYF#?xYzjS<=oZrQQ60 z`2XMjd-H2w&$IuPz36oQ8OxBkx}T}DX3hH1|NjU7ojh~C_U3Kd%>I37x8IO`eO=;m zdxhqn#FqZ+tsVT$tULeBi!Tp5bz+XrrSEAU50&ZeklI;!UbXsMzO~KsAD=q!GJo?n zT%h|oGhC17?DO;I&OLi~cX!UcJu^RiC@{;vcjoTy@}sl&3-bsne=~UZ@!^hFiSu9k zD&E$c)*zR^=IWd~HO*J$_xJqE6Fk2@+bKWi@wHO!yiybYr>Ymq{_xhtU2SvP-N2il zudKJIUh4U}_Q`)9a`6Z<2nDXZePi94V|QPw+|1T1)LA_xs(bbZ*VQ-YZEsp};hd@g zSJuXzB4=t$rpo^0T=8D)-c5~I*B%iVI)|`^O?W>OA683^^MQ@Mh#A)Y$Tk=25?DW^92N4Pq zJX~8@c4WRTaK8RX;hfp|H#a1;_8E0-IW#?W)4wXcd@=D4NroC}`U%d7RqL0Qy^-Z} zX!g@()O%4D6?5agC4>3anb8sVi`lmE9k?HNq}hRsSLet7N8S2v&zhPH)sO7p+54Gi zYI*FMtJSX}KmU}v)4gpW|5A5j?fFlhmGc*zWm}S~sBS&IcBRysWyUhEm%3|8I9X4( z;2zV*R;6iTXZH@>*=qN zQe14uwL)yIYHlvejjSI(_Z6MG)MXIoc~o_AVEv!-_RJ4m+$!GmCh<&n4DsMPz`J-) zfuBLMu*W?^bPU_L3T_33fele=1pj=jNNemQ82N&6MlYrOfWl(vUCa>z{b-u;Nj1BSRnkmj3J9g7R$4 zpZ?m`|0#YS8xmR^Qt@kr%%|sn!add(@3~#C@HdG0rcwOMT{(PhuRfojVb~nHI*hfh zN#TWnVN$-@WH~108$Zt(>SU|%2cOJ&Bky#D7zg^t-Fv_Itu-2I{=j_Y)xe31) zrQM4RcgcRmc<;~Ez)R1r1jJmpaGq_4PU)6bH=&!^PF@ymPgr`S7C`1V~J2zv}W{bMl8oP_d7VIjY9K7>c+-Z;Y6`>7tf4{9=JK@UD*-W)%X4T%` zHg8X{-|f9A;#Ky8L*mURRwoDvuS$QZ#C}y=M^3gdYR5N07j^e<_x`(ND(p4te{xf6 zk^kHe7F}WXRYxv-5j~J=ocwWVc+oAZU8*WGQh2t;IdOarQr;+X|3zHZ{kp%*S?M~8 zajPY6O#Ahj@%N>B4w+GkXFG4Eup}N|VBU3;ZIQTiXXIBF@8?Wr#=K^hy}ua$ORQvy z%G_4zbyN04P_)zfww~ATeD%T|Q}(cBI?UFU*FJG871XRhk)(O*`IXkREzz5Qe$+SW zoc8iEPbUZSo0>~2d!bACvkJsz7R8-9KIh=^1%EB#4SnpP35xO4U)zuIuWOeqKH8W* z)oSV+%l?1nKebse>5Hz={j8>~`m-#yHUftll@}bXcF~38F3x0N|?uDm}n^v$E6+5gs?&rJ6D$W}06VSsc;{1V3? zr!QWzt8QC_OX#^~|YDz3ZAzJbu0+ zJJM06;nsmmKRBGGIINhsMM(LTrJ@7Ju~eyhhLv$gwugsakoc$~*?o9o!;Ck%7Cw1* z8ens`j`HiBCuT3@ePPS*qag6Z*=U`D=CvcUuX9%xe)awGDlE%Bi$!zR)okT}$So@} zj?IZa5jnYgR{x$D!KE!;Os~!d{@HcJzGTkBt;V@8%yU)t6&rOfn!Yg5pm?TWXrbz| zyRK(qIJf)QzRV0)`_OB=bVmR50?UgHhk}mI{pRv*>bXVV=LFneq4eiTs6p$54j;2e z_sWH(HwWBbyM#?y@)*M+EBh)I=PTh)zIJIz=9aoGls+uEsHyX8z-!e8r83Ej$GZ*g z#vXfRx%P^f>7u(+yk@LSdcdtMy07-YK5t*k=$+e)r_X*>!uPI=tIB@u+h3OVZc4YE zzII}5RDzp|)z&?3d#4C{-I=ny^D>&*!-!_g?;4(Ghq0 z;7`Q^4raHvzYYEUQ}@Q}-*U}*$1j;>@i$c!ECW& zqQgz&(?JWTME(m|>GW_@`MJD~gi2S=_t&0&+;OdV4{R0{+*$ZF#p_l~SpkL2naV>s*V|4z$uDGdQgcJe>2-%eyU>>Z=5t!y z5uN%X-)L&k_kW9-8WRjMJTz>M{F*v3ApY#y{#k)8$0vWQ6XP~fkPMEPy`ru9>Wovj zFP!;$PdmatC`&~v+<5z`XpXzHd~bQ_o=x{F(%CNMnxk~PxToU$=V?7FbM7xuUvuw> z^>OLIvtNIeVh*5os$Q6D^ygWq!O{smoi61e!L`?q{^bt+kl~cTxLMxzQ{mJDU$)*i zt@`2>7R~JKsqo=o!mFjy+l?kI?Z34%@=D9;sIyP2WW66BJ}Bz2K~iuA|BH79$*YPU zl=)3y_!ein?7L6Q?-i0q-$=}}n(H-1D6)6f%J{R~H!rTRJ`=P1LXSy$LbSq{Q}SV_ zCfk@5o;_T>V#~#B{s-mxPd|pdu#B_4(vWRnb~}EJ!Xu7G2L%oW&b!xib$a<8Pv#ak zyxP7voY{;!x3*`!3FeaY?>ZOdUx>D^m|mBBZb4edM^{j3CN3!7XE^uYmY24|%N}*# z*|IaGHuF690WPKFh2Qqhu4$Tfv@$wkL1II3&0^UN@m`AAr*GL$_YarqI=?>tEcbey z2hy@vXXssVDp9)4J)PxCQ?tSe0mDZU#%)y=8rJq4YLPvf_Za4}ctk1B`X=;li^G*U z|MqKN(Gs~hQ${oPM)ZnX(HZkTqwSdUdo#IVvuJcRN0sV@bb%Y8!Dy3=YUlH{wsLJ> zE6P51_hhTJCRduvigf1d39zs)-0Wdd(a_SoukMP#^mvb$ee3V5EGmfBii@IKZYsvgQZZZ#I*W0wLKlL1J-6Eb*CnsN7`m}h} znFHP@5AL*CkaFkH>(b~ya>~mCU%AfyQ8<^4Q`}T?cE#GbMlVgpmwUgi-!674dv&Ai z|FBD+3(s-Y1#MsS**X8Mk&O1EyA1DgSM*F%^EzeFd(}pUfkA=6)5S4F&Ia z#g=P#OjXplFyTiX=iP-a)uMaP6lAb)PujXC_(H?lWl27{+Z+@Gd`y2GjgeB$_V(X& z?fAy`dT&eBW~I))u{|gFKl9YUCG{~*yY4)X`_cJ6?C0ep0{ac02NdqUt05x1)H&`) z#a@Ar4`&!muz!1d`nOlBKVH06JOASPyp26$VUdBS?MiBwx}ljQ6Nx88;=m^!OTXqK{A!iTNX)2ml6XFl=tSlxEE z%dFgaF*_P3++b0P*8BANTnS{F^752e{&)p}9^U$2m**d|=59( z+``Gh=~10^Zuhe*mFlmTo&3@8_f`Iiwwc8}YtBYDJiQR873HS)-q8`Xe__*!lUfT) z^7W3}6*ZSBax>lCU&mzdXqH6ckrjDMwk%*PPW`5PoQ(ez$JUge9 z(*uqzj%8+(R3=WFCdMLryEaK;=i-+B=dB(5tcO#$e*9??Oqq0j`h%Covis!t&Yfc~ z+k3L3g1I6{ph@vLgCuLZhTp9tiQ*bpCfaPu=FjdG+R)Nt!+pFgePi8n>7#EXCVieJ zu*hFMIn^#*zIxVSJ=RyQ{u8#9igiu%nxL{K{o4k;vu)ARXMK+58FqvA5?XE4WCSZ8M7o zO~VAwGrw2Cy!xtFVxpp;;Nz>4@2j^}y6MR$zke)QcJ(?tT6cG~>Hr z#u2;y2_iF=d{zDN%cp&P`@dsLf8G9RcRkut%UpDd&+j*z&mXJ)b$beQ>aC#=zM;n^ z`;ouEw6kB+9eB+kHCoMS+57a$kPk=h-HvriJhC*)CeN=$N%N z6Q~{DBkd#%-jXu)<*NsEA09CB%h?=A+W6s0u>Zulb9*maHdPnUZLA zHb}96g_7Nzs1C*ikO@9klO|2N@UrAZ35bEkTq%ZmX1P+Am;0yx`ts63hOh4T?faj0 z-~XF8r&wI4CE?8Z)Za#if3yWSSSHH~%KPaaVc4)hev;kP`5}I5p3Y}wIw-I)Y{Tn^ zf3Ns#>O3!B^MTRV*Vn|{y!hv)h-EGyzcCwleidj@;{x|p;gek2>u&#CW4vU;<`cJm z=dVvzvx+?(Rrm9B{Ilx&zvWU>Q(fHM`-|5#ain(KSYO60$(Yq^>lJf)PoeiURu_V6Sux&$7)gbyONy_x~v^kTjCYZRxw zm&ey94{zTT5i?DYf11sA$LOp&aR2v{NrqXo$;nlQ14n{2M3#N&U(-u8og~j z4pGWI7hD=06lQ4M*tyfH)wIp_&K9N}(Am0AV&|Vf+xrr{E94CmWJk+Cwg2ozXILC3 zshCLdF881R>`13@OG`^n`81X$PS4j{`86tXl9%6~>vyhO)P(&n!_29t?jF6fQKKVf z=NyUNsi&Hhyv}b|Xlqi}RC1f*dZazLTfe^?ytB!G2fA91Wk=L1i`hXZR(iXATPt`9>Z55L221eR?|x?^5weKJRQPKuY&<$d)m0tTG+DvTd%)@h5Ye6KzC^VySq z`|ZzJe*d1Z{hSB~UrDn4{+NS#zDZJu@y`2>AB)w)w89pde59V|eYG zfkbJqKq4sZKd4g_DQ%L8I`iVJo{*?m)R(*iXQrC5uhcTwev^@Rqn75S4e1&=6>JRG zQ{S6qdFgLrZREm@}Rd342q)mYOci>YkO^fAzzc%~~J7{C06Y(h(>4@!{Xr3MSBuvKmLw z)M-yDIK}qzia)q;eZ%J8C+|$3UVrAQpZ~1&^KIrGpZ(H1a>AbZt81rQMa{C@u&3$U zx_6%^bz97vecanHQm5h%ub=e081a{z;*QD)HTx}B646{Z>!wbOc>9^Gho@#O%~`Rb z!q4RD#Qza;ym#}@wij1c`f9IB+>*KS=J~ecHrhV-?}QvWeX{!RH}~{(_5J_86ze}Iu=w%o_4=bv-h0ekkQu;Qp0v`|;osv( zosN?Wzbv+XUwz%w)|}zzrms17HulUZH~)NS^28Id*Eg0~?uZJ!WSckn=;@iFFLrMh zl+f<_;prpBEq6Ng`6s)X91ORAa^3U!_T!-b()Z67oxD2tndR&zU)8;j9jsUXwqN@? zHZ0$0#)?_HTR(4S_?#KnTiN>ONzg6ED6dGn?QPZ3hdJAtAhVpm*$o+W1UOiPS*~yG zo|D<+F_$SbU6_6Pe79};TDI5ko$m88vut|YQQm^nZa+4eTa=WE2G&ip+_jeN45#+Z z&#(XfF}Zr?_eY_{7Pwt|hais`skPZt<<}lh!ll z_2oOzxba@wr^v6et95F(Wm>xbRI`00yW659Q`+BqeX_jD51YzQD*ykS|8LVHC(R-K>%C;ctDNNveH}OXG1{fboGmFi1S&lb{%tIYk_l$WUMv~y zZk(3lqIK}zrM|tF&xC59ShSc!KHIUm$45K{+}I63I@jO7Avr=Be7+cYId>_`fGis0<_i@p50S1Xz8cAqurFSPFy&xAtK#jk!aGvwWpj&(WL zpUhPj)wL?){U`m^uQ!=X?o%+ioj@>>uz6?f&) zVZo)h$_lpbYU^eWPUd$icysoMvkwC|3)8{9J*Ur9`&ah7>Hc5QAojF4MXlvg#;T>R zcKv5eST6~%`tK28?-k$qlI@A%nTsnqWL5r6J@MFMzWvk-6F5w)Oodjn{ys4IP*TLt z)o0Ie?mTdCXLp3n_Lfyu+e#7j|Kas>GT{aS|#f~ePY_?CiSHEK73DB z`?`C}x?Qy~x*XEdrgZg;NYe8;HsR$@uil|;Ut-aM0ApfgrYET=aw zUzfZy?eNR33p$P0Urm(#uyXCPmL@0ejn-ZkUn=cxac*dz>7XESAma96MFFY#PD@_O zuyOCWb?%~`znWibzU2F)ja?f+%Ml9Z3oTP~<2$$QwS@HgM|0Ms`fZb1XPTIkeUwY1 z)NA6q5|as9l@D`N-*3NHC%UXRjwz=6@$oHRr0`n?3O8#*}cgjmbOCvh2vv zUv*%@gyRe2r%$+9IV<_=wu|{`A&;HKzh(11IiH_)f2p#}u96n#>1M*_%l=x_b?BZ* zJ$X%LnhK*H_p?S}ovxXGwiKyuUX&YiEB4f~o83Q7&XPLs(xcTXy8BZ_ZMfLV*PA=0 zHtl|Ve`l3fzpSMHl-#tZ*QTyHv%_{)^178z*@TkH*Q9zL^a?vO-7%VZ|K6vT>u%0F zeQK?x&KITr@W{QVKFmKc>Cp@!CZBm;F}MCZ|M`DGh*9CXQSvmW7e_j~Is~gZGiq)e zm)locruypGVwp7`)46jbwEQj<A1;USYRXj1_uR!JEy>L)}`xT)=Z5V!F3k(X<9=j0SW zayzu_`09dtMam~n9sYanwT@-9qsxrWRa10l>=oG_BEK|lUYB3w@m%u@M`i{o8=v}S zr0>{L%5<9Qng#39*PKb%FN^ro8F@7pSF3Q3TrBd#TWVDdDTr~ zo24U5jJV5nRV#P>mpJv7snbS=Q!hu4lWS+nmtDpR9~CWp@=~l+1rr~|eQ0&jV!TsP z?6Gv#%{4Zbvss zr#uh4m{cY_Z_3GCZv(H`Z}0samT**y>r+>xaL^&`)?;;FUEWz09bdGn;nr-X_tc-$NM)nto0YRXUFHYJv~>mMUJBYgUn^KkJ8o9jlz=O{e5R$C z1P0_DS$f&P`Sqg&SKbvt9U-n0HP%1y*(zE7=aTij2VdKLm7<)N8aYIpV7HFc8vRuHr&%veB@!* zEk4^((!1(p)U!<24f+B;5yuY5@%09nNP6|ju6x=O>h;N}KW*}fy{9c=>Rbu@|Hcl5z04jlkn{6$B(Hc7`pNy$ob_LiGM?*ma4L4~43}hS`fcbY z)BR(E`PFY_{;S@8db)g~=#&rJ`1GDW+gKehS1nbxaL#U4=X-T#=O!^7-8288X8vl; zM^_(lT$;@G>IuW`*_=HdjG%dE;ns7jO+q9ly7)iMe-zyDX2p_K$0qmPEZfr`2u3|4>9iWVUv=2+v0wDqLS;(RY#(3H>sF*1t?vxk@h;RX`FR;?(hG< zlugRaCN8@?XT|mhuQnyD$lIlSc74L42L~3hr*7d1ZrJF7c<{)czEnoZ?s{`x;{k_ zX}7(ZEY*p>l1d&sGgQvvi~Sa4Ht)`vNfp-W#eIv!t3CM`HG?mioQMf~H9dcEPB!cD zqEi;htjp}ZZcNWR(7V>x|M0{p9=(SAA8}bW4=pVB@0r0I&0nzK*SCzmqB^er2gf$7 zpJXf_yQJ=ZT$%XRM=}?cv-R$%aN~5)eIgJ)NPONYLZxzxFK!&%um;gDhr#X zPj0a=Dm$CDWpc8|)|(>JLJHTEaGx%o<6trI{Q8u~S?4!>y71!Wilt%mJU*-m4?d!9 z_o0FY5~=fJOUgn-!+nR z_^VS^)M<6Uy2pQLW^qd0|KdYQ7cx~NCOr!HRst2eals-IDZ@Y5Uc#=+~=@%->D$cxLl* z!JbD}FIV5Tyu2)}Pmd|9-N5zXdfia2*Qeje+~3=K)pEhS|H{)umM9ooPFx|fT|L}6 zWrg}~!-#|Fzt&|>eRC(pEqtf=*Nz>-l?Pncme|Grmvyw$A7y$1zPMHy*yjK3m_`3f*=) z+{SfgSIo7_(W;Xn zFYx}}>=tB%d=_mPe_mZql{vCf*TdS>>5 zm+z05%G$WZv$J13f6)0$X@SHfTai1aw%3h2vaK#~+!d5LVrpwrx8~%Vzx9`vcrxty ze9k)VeC(bILx%fx)zukan4PaaxL%Sj%z84^=3y?AM8TE)2UoW*U$pU6puAS%y)W}5 zuAQAEtlb&xu`%Syr>t7D_Ip>q$zOOMynWs3N#Wwr6?yw6uFAgoCwOPux2LBq#A1(} z7n3?szv{f)0qvYMmb<5|nBaKpl}X~Br4DN+IXw^c)4%Ul>m+Esh=0Sc6FJ}J_2I4{ZeF-OZJYm}+}|4g;j5l+T%V=3F!uUNulr8SLU%4-+q68!`bFNX zWFh&q!$*VDl#CzQ3ZIC*ZfUk%BK+h%#;<-l$D;hL*F{e730FAUT6fmy-Y=6m%j-kk zp0PwvvAy=U#$NH4l||1HIjdLZn|GN^JiA(d(^{pg-cs4Z%YQFzU_0%ezaew`q|*IS z*Y?KO*1x-U?+*8uub=;Xyc!{a{)yU6Y`i`fC7Q4;VP>89#w_WwTiJLaB`w(_^iwb;!tUHZ7G?bqdJb`<{fwbYtB z@6eo+;+7Rh+}?Q4TF77UJM;9_u%ojh*)z;`DyTGd7;u*CoOopUBE!E;k4?p5EDXZJ zFDT9J)Voz~qt@N0xaYBqu9`xM)~?iv7S?k#N?%=+?va1{L%{rPJAc83TP@t;(|!rZ z?78}R%N_-V60<@B?deT-yjE=!3;wrKdWx~f*oCnx5>Qw<2^x)Hb1HKhD+v&vm*;9_LP-x#H*}Mo_&4T1KDXw7K+k*tWd8 zUU_+X_iH};zJG4(&u0JO0P~-x`t_2LPyYsWS5+)Yuy>UdjJsUvCA=weQi#{j;L{E( z6(g5B-b*{qS@$T4wex1ys_#c9Na?mJzWeuLy{_vauWM)YAKtj*`lhThXwkX|ThYuL zA=jovYTSR~X|C1nmv(aZzsG7T)h2&^&0nC9t$BRnffUn|+{u}G_q?4CiA{1(Y|6j# z`0#|4DN|Ad_bJX7=f10O-5~vX)T0_7D-O5D4H}c4yBF>GWwO7-v0_c1sp|R888Heo zGc zz)KFMeviKbGA{P){1>kubo^5MK|oW#xp~L3=Jpq_A1M5?tmxRs$9G7MjeVk?c?B%j z?^)XL&ij0N?PWWDYt}6ZAp+kFDmt>QEIR7=L^scJ1%GxTmHOjZD>Q_X!GRTZZ2Z4ek zEZ~mW^Bp{*e^e^ul?!Fxlo!bhN0?_XbEHBm|E#fkN7rM$BVacq{Ft%AOMlT$VI9%gnmW`n|Aw^-k}~%GaUq(zU-roP0yXL4M$1&OO$9D8JufA#;W5Qdv%;7=emLwPcZJ$L&RH`2xo_^_jcXpt` zJ3(R4Hk$%{<dW@D?l|7%MTvIF9 z9(Die1?!bN`bC1{lBHLQfJ2Q(-rJgOrC8|<=H$iFy=F|iqBMQaJ$bD% zKR48TwU)hN|JF_4zkcfsS*G#$g70*;zuBDNL$h{N@B8^oT1-Fg%&V)be}10--{#sQ z4wlE=)oC%u+ZH}z;l2Lu`BR;yM8hmYr3)*c-)Q4L@%h`Qve$LjTwYtwsP6k%Hl2f| zwzA;yvEF3e!!2pg&&_3+bNloD;}MfO{coMKOx8VA+qz>J^ZA1HnJbmJ?s{kWO^ZA3 z$AjJ_T~?iRJ!td%xwEBqyyQ~<Ia-Fqze|@91=+_P3`Gy(~E?f_o7wy`8)3+i>?RA;0 zbI1(tWLM6mOLZe+g_haOJo{^s$dvNLZfk4nLW^Vfje8e2o(?#;8eF4pi{F2ro8zuv z1>5z@{2!h?;`#B2d)EFRObwDR^$&>ee|AS)Irl5$Go5*@x&Qw^yW_F?gVT>-{SQZ` z{y)4^dvU}|4aGN!A0)1*u_?LjNj=mvtJR7%$YJtA*J;I~)z@>B-Wl$d=6RR8+hk(J zhV-T&frzyIpX`rCwG^K1H=S7?`j6T9s)nbMgw~^3-_Fm7xjb$46?rqI?(=GQiu&Hp z=E>lDyWHTG+ucPqr@pIhQm@wvI&FE%{AJ+uH>vJI5?%Kmtkr9s{%e*-d|daM1s&Tj zD;db$JNE5q=nDIj@5~wW=9c2-9%=MLtsgsIyi+Xr#g4M|72_I=;`{^N(k{GUIa*1uo- zRL}Um?bW^J58vosSv~DjRh`Hs16^$`^U3RYTLnaKnXsNSvu5aa^+m@-vu|x6@&9u=2*J z4g5j%E6UV9^`-U1^7SmAb0$Kf^J$26pPusBG*ihub%_*QBEW|M91uTDo<->q9tJfAr8ndP@5-h~$`CeEI$;<0Paoi`gEaC9qe zF4C8N&VOE_9z5oIS9e;!SH#UPRXLxXOuVgUw&wQ_8XUQ;m0y5ww%dNbbHHO9&>Cf6Y}wBna9VsXnwQ1 z!fz`D!$nVJp0=h<;(w>E%-AEU`sUn9N8=a4N52~$z9+WfxLBO~;;qFiFZM*so#x&h zwBfz=DgD`RJf?K&RF>dbCyEBfip{w^Kl$%T<~_xl(2U^J`t* ztgL4#g~ofWg}*PkXt%p-#kt}s`9=#gZ=e6Y|DJ1AxbD;6yOQ7AWp2Iy@2lCRr)G0v z4-3T?tT*KQa=f!S$zlq{Z_TpaXmttr^74 zrK2}iaf&!U4!$^}?%+o$Zao=^)!G>o&$)=-trxI~Q9ZcfJ;T+nYBCL{Qx+_|=vT2t zrv9egpX>UrScVVh-uNF5Efbf`6Jrs`w%&Gf;tA(BGklGdo-R(*^f7s3EVR=qaLo%b z4i;g#ME>T(6)&DIJXX0l@>)EPl;C`)6nE87(|NfqIn%Q(%6@3|ZPU7U#>!#yNmfNc zmln?jr+ZJwJ0Cof`Yh#K;jLH&Nr9hy)3k11H}iD(Z*pt#hOLtm9vR4eIsUf+6fGb2 z$vu?_T-Bv?r=+j@?zS^A)qKS>W@##Y-S6+VNq52W7@l1!td}NmBt2g}Q8V3W{qcKC zwF+kI%xmxabHmf=U7dDkXM+c$uEcf`5s?r2|3B%+>?mMtXlY?7dwv|kIN~Wo0p43cO@MAWzqM1&Vs+;H+4LpWHoj1^XQB zt7*XzK}R=U($zU%$n?;~ZvUj-)u9Dv`*$>7k(aWS-g@PfFy}m#_^ux=%RFX#Ug>%n zfADYXhW1AFimE69jTklKcbSDAyK=VN51L@ZwNfeO*X21oMUU@V^1D1-z0m<2T?G=K z>%IxM^IGk+y0qzEQozxiYj2E#|IJ$N2N_9J3)wu$^s~2xS-IfuSfMAL=Qk#Oy;8VU zB4S^G@$0Sf!5cF5#p|cupUqSiv2xSzoXI8Zisk#aPEJTNeD>?H9jIr>krLlu)noD3 z^4jxgjp%(nuc9m7ghrYLCVf16LE_c6hVnmtK^zmm?wj25C9>q{alb`gJK48Q;;;dy z{+nAegWo5ZA9#9tdgafj(|`UvUvJkI#L1%k*l}vtEBSvD?Eih+Zo~1X{K3uh_US)A zJ(aO4$w-;nb~N}$WzGJ6C*f;FKQ_NJS5;N{9ig+_Bl_sNEunFIO9H-Bdd>eeFERP9 zaWjXK>%!A%i}ik=bDot`ckROSGc7TE*S}7^?*F%IrbwOL=WoAXp5O5L^T8BB4mG($ za%}AlFESl3OgMKc^}5da|JwGQpNiVL&g@!j=T&X5c6HsO=e%)#;v6hZoIM-b4=N`7 zeWU8eq8X^_{_?fuudc&Om>+LveBT~ireK#GppXFf5qyy-7BA)+!fNP zXU(?M>+GywF=fxM2u42j)YS?;S#Z57DAhYLB6HjCOPjY|o+PY#L~}`mR#D~Fd&O(= zquzcr(bVIxaq_#6Z{(~DPmwd}noya;j+;VS?^wQrZ ze{%L_mFz!b;l89ntVjFbpXc_Q)6PoGtNj*P_U6XHIhMs${YQ@-+f@BM@6zSVk$WmW z-r&>};AvjBPVd_Kc>l04v7@T0cjlP)|7TJ;VDB@_(~hsLd@ttzv%HEeSZ9lg8s=DXt>Id4^FSaAFmgpMYB*FU&n z^16@vrn*cJ5I)dUc(i=qXW6+yWQmI1&nLp`Vs<*+d%gZM;|J9b6I>3>|Nk`p$MN_-P3q}q zg|2ULP_SG0F9ged*ci{!wo|W{K-2e|)@CCVNuF{ac;}i2}cr zp(7jblbaIMmvU-H8s9(mac6hLhw`0s67KD|?WH8q!TF$?!~JiX*pZaLfcFxuw_>*F zolpBX>ssN~R}Zc4|K#(x|7&8Le(uTd`~U6I&(C{0JAdE9+xh#SzPY(sMMdSq_xk_e zZGOMmZ1dp&bF%KbgewIXXU#s_G$ZDf&*FgD3!8Wiy>CV)@BV%2-6VFoiiR&=O482F zIT`G4d$g5XJmdX~gqKsbXH4|fA)GmKyOq8!^fammU*R)W8O?o-j3cj&yg z$J@!SL95O_OP@b|L%?InsBcS7t$XnInit>v7}rIoKJQcy{dVh~t+MTHmDGh_ih2Y@ zPpYc!xg2%Ux->ds(*D-@dtZAR^WM$eYQO%;-1Db2Y_{|su04H^y{C1ZjQ6qTe=k;t zyO+<|wfvuySMa7tfz4AkolgF|yRW_Oo%ema_t~4>jHk)1uFl-^b?XB?j*FWB zKkMe7X5{@>fZz6uz^h2_pAWj%|CZV3_?W#_XU5b6r+ednuX%cUSIxX%b^fyY#gC3% z=<8LF`So{?$mF9OF13gb4@s|9ic^Z)-)KSE)K!HskEJ}>Vqz5D&S z7nj-9M47W8X|ZZjUfL^uop@5pIOTPe?9$@Rkph#CdcSnf_$HXla=MQFlpNch`3INl z$#L!b^3|WO|B#lVJcli4n(@0dpI%zpMujwEaor2$LF=zQsm#B#YZ9xWwq+W}hlUpl z|2z#ir`Ymzy*Hfj@RyR~AK8}siUK?n&#k`l?Agbna+?pA?kKG~$DT2zMCN5ueb35& zJGv$E3v^8Ol+Dpj2{{Wm{UaIXFLCQ;#6&79cR zpyf%8$v$cg`~UeW+Mn8gu)n@^?)rUMk6-XhMehH?oX1de_e9fs^$(xe_dh&#Re$5} zRY&5E|5~bExnxW4`hC03{r=dyrv4{OJYQMPokvf+wtn1pX{$-_ZLt?-swdR?&vQNi z<&X3B|L5HQ`>uTNd`TX*bMx)bH}l(Bv`ylC$GYV5{Dm79w#dY`d>3AJ)bMqs?5^jf zFXs8H?!15RedBKN^K-4;gM)=Z>)3xho1MR-;-yggzF%D*QcqWC==Y!O7VGtMW;(dH z3$##a)s9Poj&EvY{f{{RUb%SB%+={vu8EY-TxlP4T7UJ~9q%nN9$#9vIOb)*ha;a0 zPuzNCx#RaM1;)UHx8)9R5)FRMRDAJhp@BpE`HS~lW1SsdWHve|?3mBtI#+@H%!{*n z2b{X^@y^(J=^4YF8MogwOuFH~@AUhtf7AIDw+}1)lw+3MrZ4p5zT*#Brh^F)D`NMw ze$VO^n15o;m54*uQ9qt`<<8kB*6{4uOucW%BVP6gc7Ck6n7a5bi$-w7#>bLEq0Q4c zEE->?i(mUJma=i8ht-!Gp@kZMecrJxIe+}&R=u1>4gwO#Qq<1Y9X_|%{@%fEdk*$P zo>hf<5B2{@$Jg=p*O>QRn)d(6!w>ozJ+)o>zr^-zoFBQ_F7fKq_=$CoRn9(q`N!$I z0fVP@{F8^vwSJzxeqQij>-%K>dh-|YU!_y6(Z$BY3oRwi7g+$`Vi)@4`aF?>pWeRD?~>k^@z&lq^u zz5a82X8eZSTI)|0rtj1qPsmNEpIb8dzgpo3_J(Oe)6U19nCE|K$68gH8*3a&v}V4( z`sdT-G(A4Ed)6#-6MvtW@4L02@b$eo>pze4jrW=v&-(Tu@7K-Qd43^{KNl~aB5Gdn zSghsvtB9a&JvaI$+3kvWc2)c$kJ9V8ziv6by_32pz3b_6-k%xHQJUWOjx9a;`N#5I zIw^5aF2~$E^y>NQ**CL`{dh7dtJWL`6Y$ZZZSW}-*KWhx+pE@{-Iy#w)0xdrC*+ATYEa-?zY_6 zwNuolU*g;Q@1*qUw)U-UoKHNy+qjcKMpE>R-rl~QkG};U*jKXjePNLPuas(${WYtu zwDWDaIALd3v+T*7+=$jq|9Ge6Z}{+K{izc?E0YfgyBF%|B>C@SdMvw3LG<&Zt%tkf zg+jk69_?7X(!T1^GxulePG?>7b{y(F8-0qWR`mVVS%unHoTR zeQEPWdLOzwjbth7tdK= z$g#aK-%$Tu@KCi@y7*P5`{6Y|3r|?-efsu@c}rQ->ra9AwDOM4Gw2r=b9

XmU=7=QuCeV;^*hb5GB%MW-fj9#N*_Sl4~1_U3J^md7R&R^O{4YpKMw! z>+XJu4X2Z5PE|N~=i>4WE01N*wCCBF_gZ1oO=SC`)rc_r}b~?)#ADWyUS1?et!C zY0v3^gZ@dIG-Vg>4P|NC=Ye&}>mT3pLtL+QO^ZJTbsjnK^UhzB@?YB#kXm#r^eCO4ypdL-7`s+pP`c;B zNw2!`Gm6<&K^TXf=HoEw)CDTWm6G_sK?X)>}V|3bqz+ zJly&^%D63BV4b(iyX$2;GV@CWE$#a>Z)9q&+O>G?fmfgkN1(@j$>m2gm?EUl-mscw zsH_~s`E6R+o4IN0q8!C!ubz+JQF+rbBul1fO^oK64@+`omhoo2e?7f@MP-$H{eP7l zmfYTJ=PDXEwEwH=*Iah+uf>kb=~5PD53iQL?C!67-76~}a`&V4m%n#o>mG&2*Y&OK zKXdTK^M4U5e9u2xdgq#A-%X1hQL%@Q9(cR$A!~l&8t%{T)hFxsSl`Y66(_as>tD9! z<2#xVkOwf=D8kAxD#^rLOnw`{IWS*vRN^4sMJ_ez%Tm$oiZ>vHN8q-XgwN}c8Eu)UJ9>G7MYG#@_q@(;XmJ<|+S*LT#WPhYg|d;ar3Mn|$w zUf=re{QD27kAHpr9eYl+BO*qDLne8i_xIQL-=w{qS70{J|KRmK`TF;3TbAtXuQ>J7 z;^_SM=Ij0*dU5lJncM@ft%B{BJZhzFCM|ajtNPd%tjt{$xsvyR2#VO4ZPult`)WcM&(+&IE)~jJ8+z=T!{Fg` zC@_6ZYWumS1t~)-m_=U`hCB+7^a`T z`hG^jpU)@033biuJy2uOzI~#=?qpr>Nh(`5PkX!kT;aY;eZrEPPZdS3Y`u0aHRu18 z;A=6#r+ckWnS7Amox)LSej!OZMKa3W_^U1B?-Xs}qZ)aSU$Rs7k38!y}@U;n!#&X<$5^+QP{=W8L6mV1F0j?BDn(=7MO zx{s43xgkl-er-wdo2^{u-s?TRlsCbC=LA#hO95r`g?3uauG|$Mbn&y-#>Td7_KQ9w zGl!Qgx?ock}qpt;>$Ae*5FCu7Ba#Z!ux#nD$l*=9}KL z^pOhyx6PYAdd`?7VL2yrci+a3TIWtiJxiIbsh@l3hFGI$z^f@93$L#`D)wa4l73sm za;KL5A4jM28kIZwtdAG;3Yj#GBk#BRyZ*NO)9y`jJEdXMD=bj`;_`P7$Edfr`@21N zyj{urWoFfJy2Y-^a@e$50t0vPt=@#I2q?86QuSE?y?O_?uPUl_S2Bn@;c6o3K_s?$4*n@8w@amDz&o zUBuR;F6Enbd)mg`u4gC3uJ+)$ocwclQk0d>-{d`cx4OME_p3T?w(a-n6>%>&pr$z+$(KrHMht6>((tUvv)eGXirKp5&5mBJX??X&W-%PlIrnch!A)oH8 ze4KM%;9y_Rzvm}IoHsYx?mD{I{LkYR_fJQ=_xM!S$#vbjJmIS&6sm$&C3TC?+%yM+^x?DQ2ILeO8gHw(8`bb zf{PT)q|U|c^KjlPx@hyoBhnLg>s<)QKH4ecyXCv)vbgF;pM>}S*yMP)#w1N6H!{ER zzC)b^%lYp=wBx4z`uO;lOU}MydQ+Hh?R>j?$3k=E?&>2Oli$zWUUPK)zQ1!e*ck-} z7P-%D{9=9PD({W?F{duePMwokwBYK`nObkNo*oFkZIRC!wq}vS`Wc6ET+4smVY{_9 z@6hAt8<**H&v@6F;(fNREHCT9GHsc&e>BeY3SFBM>+RElK0iO@-|y&Ooyq@qyvh$a zciwIJ#}lhhb~sNfmW>wIaPpZWsd8-Z^#Vz)iqh6z)AZ{?szF8f8&fu^w-uM}QgrFe z3zwVtD?VV~?z_K#)|RZ_krH(hTPYk2mc;>?L2Rn>@uIl zM_zo}+8Df@mT?V8e=%H0~LKGenX{X5W>FKzxIO6t^BzQ6C6EPNc>=YCOB;b&6ZRXhVhBf0O;u zdilKCNgdwOd*AbYXnc4sq^GH~VM@SGb%yIto=#f$^+|pq^Zh@YTDmQE+(aiO)h!*$KXu}A*iv;~s%Fnz{+92LuDHcE{&{uklIeXj7{q$mViR_N*5 zM;l_=-Jb5fGNHt6`{h?>m+@^mEI3&$(f?HP{Y_SJFYiWY>YpyYHSx&nj<+kGd!_4S zpL;ghVv*y$iQhJ#*>AW1$pg3TcIMZwT*{g2l{Eiv=NVB|yIR5e6U#DZPP|rskWbNT zUWL&dWBGXtq$Vsq=O(Lk^wnXtKUc-s_uOhxEe&1bleg$WXV9(W>%}Xy;%r=%Kr4l1 z7ivtNa^c3grF=6c8BXnZxp2kOtudCV?3pqf?P?ls|LF6sxw&BCge< zzyJ9E(|-F;kB@&nc>TuFd5qoH^M32qivRa~XI1uP%6GB-zrGd!yW;-r`u1~6_IyzK zw#0@{_7dB*=P!2o)%NoGIx6kzi!uv+QTQV5SDvv-+f?4&0q5>EDdyWtr+XeO>igu& zX43vGSR!|EUZCC6-$J(BD|Mf1++X6pH(9*ZGw7E0{ReB;y?fb`y>-gl;!j^rmU~W= zUU}-4+f7YfSIJtL@cP0x3>Vi-=M|X!cBaENi3`8G3!6RDxAR**czhz(UBgFM?rDZ% zcb}q+viYj7H|EXlHFE5>c_OpPy6T_bpQ9ap*=g&4r5w|<7j0WP(~x(Se=N(+zR1tZ zi@u%+e0AGl+A7z+`7_dIeDrQP-FMWxN21`ap;Oi4D~pt4YK->Be`EddKe|VqDW89- ziuXg@1Iq&q7jhp*^WSiU41BGj^zAlyAowK2;_V$j(>z5|1`^w0pIZggq zOydmp84eX&+lA8h6t{d8PT6>E@3|X34E29mkBjYbSp3emZtIha_x3ih>z6klJEq_1 z)%pCP{F2FEzA}BQ*);L{{NH-L?Dw9XmKPED8vA42{N%@yo?mi=o_@U&t!NbO&9XM` ze73&M!vjA#dX}GQXgiWwe{@RE%oF|dm)R|sxITH|mimmglbvTe*~)vR3zD-hU%qgy z>maM`;S1kx{oPY~q%ZAeP|2q}%OwiIniCU`1jHQMSS9|;zy05qK8Fk9PydL>Sq8Nx z#;c|WB~O?!d&i}jr(XYzN|84S_#ed@{Os`3s_zR@KgCHU-F^Mu@7cn8-H(|;3pm10 z7nHszTw(L_OKg~N+4Q*=mYjW~9h|gIBdyv`_15Oo0qqtS#KV)KXSjbV`Q@{UnK1hoUeCOvb`^6k@CZ7r$^5ldeZq3j06(_Zx)WTof7@?0XgFBXWUN+!awJv2OERit@A-sisY@fC#Zem&suq2vzbNw?DD7$$Jf0vW_)uj z_tV?%ABQ)mSD)vy(+s{ePuWya3T1OoM7}x7^{e=l!uq4zv!hV86h+ zUY9mWbt9#%4+WGI4W-s?VYvMG&o2hso)c_eQyXl(CiCxKduY|l$5+~ZezyHL?S;I3 z&mU&_x)^!3&olS@)Z22`&Th$#i~aL0RDHYO?AZR}>eI{TU&^%2H=ng*-POX6VLaMf z7HTYe&7r^cX;-S+$-|L063bFumx}%T5}+WGJFDsYE8E%S7E!MZRz2IO=Ig4l;ADq; z-0i(fEL@tFoIZJ$kGt<>U`p7#RKJex+LxWglEUla}VN*2U3;M76 z;jW5T|Gydc^ShocY+tr%foA8W`S!;T^AzRS2rqK`o?@{e(QnWC3%*V%Hd|^cCQ56} z+?p-g$u+^RzVCYZ%Z?)le)7-W=-2)DXnB~Bu$t@MD$(Mk!#fLKnS9L^%y`mpwP!8& zl+~Xj4C6aLo?txHJ$vGj<(t+yc(<5!x2`NYAGdOAnaIWF<>y2=_89$@G?Satp0;VG zxBRuDeY#CYrazjw=xo|uBi@I(U-xWZFB`cf=Ymna?U7x7d#3aBD&Fl*?)Tn5f4xY*Ui(wz?T&K&B|aB_C)JoQg-mL7AJ@QyE2WwN`|J-2Bo z{9eMrqU^dV_E=x@=NSt>-MRd=SM15hm20eLT&n)x?q7WQQ=+lC`s#~Q*C^?ona}&> zl1E3|mp2|MddkzYeE)tk=<{DNnt zJSaQ;j^dWJ(w^PA@xhwA{#)y2{8X-fDj8}2`^xiKK4y9TPbNm6y)r+m@kYqCsb}9A zcc_1S*?oh(TiSZo%Ksbo{SG}n)9w6wh2D9-YeXhwdAzH9mAqoxV*R>x?4Sk6cjP^m zA1z%T{^s7{i5yq%E?)9*W7d4Lo$|^X9cv}~Y`H>sL>&J7lsl#PtFZZ}Ph9QveLPF= z|M|lgH2>r3_lDCaq~1&Adm~(<*K>S!;qm1Hl58s;d4@@@{97`^a=w$wj@eq3*?D~S zo+lSBxN^t(&igG^j_W?u<*x{eh!<;5y>AwFe9e*tJ0yQQaQ;2AaoW7eI^r7ff$c@^ zdYZP(r|OdKd~5*?J)s>FkoWuTv{`?1Ds;M84YhCXd%x=Z@4E}vC#HLuaVKr6sQh_6 z=IxtxzdzdC^NByz^yF{MTds5EQr03%rigxg^v6Rb_w1biAC%tenHo=9`}}Lpe`DT% zNiOlfRIaSoo3`jm$NSyGx@X)3MEMQJYWkNm}N>}nI=f8@uc{42l9zr2uMKJU$o z`KPYe?|FCN=F20gvftiueAnR9$@NQ#l03(!y&`09;pc+mY`+ZeWM`hJYybZ`N*>CR6jH#$}Caxu;|tzLYKy{3~PAcI7(yUY3{=)K&rL^$znaX`WRV>1>t)F?H+)OYF^WAnJ zs?(55;;73;-YlMf9xTBZLpJ>DFyvHW-EC^PMX)?|m-`nFp%0$z^H|S$Iew~T`+j?7 z9@~wXZ|_{rop0ZE|C}w)3ID%)&V6)AfA@M`_PU+L_3zG?-u+&>cIOsmZ;J<83k^2% zTyFo}adYQ9^EP`?PMZy11=`K-RBz8dX=q#Nv%kIrG#~ZH?3U%LO?j{LHWfv8>RO(? zmykW9)7om;(z)*L=j10l->UrN5$)e+-Px{GQhVI^grV)lWuNX8>c{SGDeJm+ z{PM%o9cONCGq-;ktFD#+~hQaYvF1hsw0`|;*qk17`N5A>1=Np%o-HtovEb7Q(|b=Ql+ClbbZzouzekF98;fu|2=<*;@Y4ZV_ z=l=fus>!B~*m#~(KlRo=blg34*R}-Jtr;I47JaiTzx?*lV^$IQcV^PpKF|FT@PRS0 z(DTTx)fVZc3o2wy=C56z|HChH<&&*F!X`IFFSrUxu47#P{+s&mE1x3P&z*HAY1XtS z8%=X>^n|Xmd?#yu`-aBcJ^w4%R-fHlAEfo-O|5rwNBY&Sn=LPu3{{UWD71Q!l<@1# zmlWlwxfktg%NqK!%WF-0+nz4b|D6B*MO(#=sN=fw2?n2!#9n!*+ai$ECN0N*dHq8* z4;|@}Kmi>+FC7{A;LU6s1e`hw7v8Y`c(&91ap}cd$toM|f0|B;n&j-BXE=M`TSsBh z^WVKLEl2Pb;lYUtclRRA_$YqrFms2=1!{u9}8sD?rhnA{MH;%I{Yrdv;Ch>Du(m9)- zI_@I8ZL0p0_hx>}_2yssbYs`rN#9@Z{&01_S6Jo!YgJ-PC)+46gdAkLqvEF#1q_V8*uQ?U&fR zRK>(6N67q`+;iHjDC4Hvf&I(gd-qD2>@D4pQ$1Bampd+at4-K$gZ}d7zw;EI?zlYt zo&ck*o=w5+1wRs`n&o_B^zy^>)QT>=_A0)~ay@`Uu|+~YYa@@l@BetH7nU`E90ZLF zr=By_&Bia?SLOyE$bNn~nfJ#dp^iy6m$_Xrul?paTRLDz=~m9=-@m<85)SIfUBBQ{ z6EkZ;ZC#^r{@nxSH$_1v9rMtg##_f^5fL*b!ouzeX96suLEb)5VyLpdMOgBD(I$6i z7bmS~{>XQGIVG#F+tk!w@a7kjNzad&V027n6Zb5OA8)GkUhy1>P`b!2Wnr$i@n?Yg z(%qjb@^jXvJTC*+1aUUcM8p(68va@N*md%o_8%YCxb z`>0CU^o^fio|fPj{rqXuiHY6ZAm{iPF5TJlK7IF%noRD`#~yPEx$|1f?RWc?zCLN9 zdQgjilaJBT$WNcFA8vc6roDaYjY*f^`0jh&CbryC*Dy0$!{@fqRneJN4>{lDt_r9$ zo-BWr?~nIxgZ}MoX}e{NYQG5_UiPFfX4XONt&)!4b(h`S@!a71jFma|Ki{@Uus`H{ z^Eb5V)$PXQn;TR$t~^?lRoU6PSTWea-|%SJ9NuRm@|CTc%Hm;*yA{qX zC=y>N;KX4VTY5b>;atMoH0gJV`I=`__avNqaP)B5hU)vX1^`H_Dt_P&VL6kez>=!?0H_CLHdSUe{61> z*ZWL<>{l-JWc!S3X<2()1)O}cCr$tU`t|pUg&&@^#Mg5wzEcXGcAoV#ze>4)aDsWf~P*DS4=*Dwoly}k2(!}e`6?xgHI9l@b^UVmH&1=3?A#uJ3i*~-5Q_s68({P;)x%y`THd%i%O z;$EKFhyPbyepvfYy*#MvN9E}QpRS*Jesqm#`i8w{{%iCfuA0^4QvZ|JUvBBLNIh`E z2##W2_JU83Pfq9SwxW;I1+3%W$G<*&@j&Mqqp01pEhg@myZNo0)MoRb0JClG5q}Gf zF3YFSU%Oys{fEefi`PsLm;ZMD!p7QS-~S9NZA2s&c+zLKwIlJjn%`9;t|H~JD$4=F5&8hg5Y*pRO zo}-_?;J(w|zcJybDs&5fY~_7WT9}%?ufA-G`?tWW^=B9D)Bk!uf5nB@x-9~a;vQ~$ zm$uciS=PFL)8mIcVY7=ZBEtNAO0MzKTy|{TgI^l+uRi19iwk6EU3PZn8nfqt z$?OFI+tbV6pNX5f=SFp`fr)IlUjM(}ows#1?=u;{8_V49J1p4st#FFy&)>Fk=bj%~ z@cOVr>Yx3=YOL13e+3j-R9w^Zm*p;;9(8Yt#v82A5SkOFko$nme&bKc1F-@hw2&u&YfpYHyC|J`lg=SCCSk=X`NDb8lJ0)yms2~EUpn#5eXI35d-a2abyLH9 zbYcbj_wDT~zcw%6t&FG>hvKp@32vk0mpc31>VH*!O_oYmohY;Ppm{~`+?jK3IWIYT zQMmk*MYVD7;{O)MQ@zT~lC><)vB%3KP2E20Qu5x*!rMZFi_RPlmfv@ref~SOeS3Q* zedc?y?s-a>=&#(Pdp;ixytFk`#?q#S%SdWYHdRL1Ys;XIk>0Y^YzHsKHw_jcM*3Bv3XK`-V&aYG6tvb&9qbjOU z=gh;i`hB09ulU*NWPR{wm&=LI+J8R+oOtGaei~|SsQt+Bf@|`{#B)~3o;5mLR?-#! z3tnG%-Jf_zyf66I5PJX#7>ZG)*dE1o0S=yF6R!`GUKf1BRRcD`@w)?jD z#lcJ8Jg`_c@3Qp9H3kirykd7ZUApE_%(njx zF7l{5b!6&ZsZn5A*LysuZzwr78zw{+W4kEBh4 zGGC{pg)Y7ycEZ|s`A^3z_Vi6!zuDuNw>|uDxBr9m&nl~rOY!Fi3?-c(v zm+x=QnkzG1^KPc{vL71nYc|dgWfPxwvX5U;PI%S*#A7nSP8}~Fy$+6Le0V){U-R=* zzyFCIY`Si2_}Zb7aiS`%Ey^}@4l}5JN@wY zSC6mVJblOM{G~}XMLJP3pFdZuT+!IA%k`}FvcgSaCl1B7iz+(G?;<3xZA)EpzVu?m zHLokbe3aIhF1|nW(#hZb=^y@WnEv(t+rQpBTHkPSx9v=HkeHV0c5nMPzNS|u8GGdN zwptgQpX*+AG;rPp*GK!R=C~a$s@rj77sKl+!L))yKZotFhR5b#sS& zj*)O%H{WdOX4P3MWw^d+%3W|Z_)?j|JF9@#?m5TGrr z8{S=T6KlO)P_w(^SQ-2OtuA}loPS+k=drk3K`ob?eUj{sbk~K2-|`Qx{d~PZ$g#*% z?zNBItTfrD&;9uCYNfIpm8xd=?bod|Y*P+3iMB43$|(_a{M4l}N4)E&5N{#-wheim zZDHF!{Q4PHclT-kKmL7jJ`Yd5G&C)J-uh}mX|L`HWpzs)_YygM*^m5X$8RuA|9M^R zzn$;;=My)JDv z^KxTlt<}bK?Tt5$JG$gd=8vCq9FXCu$en)>gJOZJ7wJAawAe;0fFMsi2{kNs6P4HG4r z#R43js=VL!dwaL(kKhv>mTU_q>n&%WzzAxkUGC+duQyFyt~fZVY;x%AsGT>24hx^0 z7$E!Rr?luTjeXxe4Ojj>x%g1;o?e-kznA+puiw{WUNpO);^6a=N1MOw6Q6r%+a$eH z{cqBP^^UBmXe(vaeDOB+$F0+qCu8hBShgKmSbld~XhA```bkmuPR;wineS4+iS5uh zSv=wQ$*M!k3@k5ae0}g%>YK@A{`l?uy@@T^%?WQ!=S2Osw9Vj|_~Q3A?)mPIyaHxP zx7AJ)tFk_J^_!?<7Ayg2@Jh}7zyHg>aABuYGCOsqKVK*I(eGzs*|g@gb4u5yJ`pg^ zn7wb$pMwRu3y$tdW=~^SubFVOlJOMVnU}iV9p)j0A6N0t-X@%;x~W8O$7$P!{$qD~ zZOk{Q|9iauPxHQ8A2K)TuyVco_Mr6b;`yuDYf8RWTsi%x?!|^)x7Ca_Cl&`fok=L4 zbiVi4gFDF_>{nNB`%uTdpjY*Gkl%^lA6d>wiwDh~cJOHZ>)ZG1gq9!X)q0pVNjJZE zVCpHQe+_249)a&vkcll*uIIHJJ01CV?7X_xVS@FdLyMFd%;T*@JFZ>2 z`i{lKMdHh=))oP$4oy)vpERL0YadN zths;dciML5^LLit{Fca8a({tVwtaj5%p2D6{c3vC&9%iBe|yt&I_ zD(kDJUN18J@htzK!O`+(S<_FyO3mA@7ihgL zPuM3n|FY}y+BN|le778jql6Ks?A^RfCq&!;u*cO{U(Uyym zv5qhAS^0^n3U04Un7tvR{@=gU{D1c<7tUgPp7Ti9gz>bVMe57?DyE5^fos?4k-m^zLvlbg(6cS5{wJqacpqMl*ZtI!& zKesvce7}VYIQgucxbE}SPqQvadj8$ebmd?D?Uh^`mmFI#&wSm^#a6y820odAb1GNQ z>h{y^eEqj`kzG{(`dfw?<)1HHTzpVM?$sSz{=V?or`@l31uqzD z@Xuvhb-YD+%gu95vcXOqf*orZZPvC3Zr5z(u!+%JbGWtX{5$5F9Z@+~=B+!n|JiT( zpZljpUbx&^8ZLP?HFeHbHZNCGn+e+_m}4V~yDc^@pV90(*Fbxo`m@uQ_k-Fe`fu-u z%$pH<{N!c5M`kmcd=4*lZRVeDeBtgb#TV~lzq@~Yn7296_I@WntNem3A)lg-aZ0`6 zdZEFWI)IG$D71 z!dufn+XJ%gecyjcvj2aFbw`F(%n|A1d2F%qfw}Sf7JQXV5dk&*72AG)exdQjp*WB; z{hLVfr|HZSm#zL~k-w&P>ZQxRC0~!7Ug*!4U6J4#9~XCM=G>!uw(Xs?Sv;nsKO)T9 z$#1=C+EP|qyP6DxwH=P!E^9p=I@XxTuYT~zy)>d<_Nhmr@PE^z{Qt^gZIA!1_A5?1 zpLtHC&ZoKd$*yhhbe|oWw^+vR4(E|g8GT_}d)(y;1s>fKeqv>x5hon7;g7My**S{EuH1>sZ#guK(^ZN^BVgfI2`mne$z;5YqzJI@BU95mb1@iK7KC#X2)K= zS$^S{vO10nJxN@?@!vYgn9q)kVrH)G>&za`d1Bh|{>zLRna8IHB)vMx@WEuUsjj*$ zU&bFv`~0>UzS5OSdQJN0!xM8mkEAfnnY-h8`liyoogHG@@8z>y?d?AZ@4dCt|MRJZ zDM^{nPWek0oa=nPv%J`#|B;`rVv9i1C&|bulFi2^xMW>;a>=7+8RzqLy*c%#?Oyp` z)H{=McM_kMeEj)kYx+N`%rLm{biZ~*BH!%r9UAqYBE#yf`-^qdt1stlIi_MJAJwy2 zqyPCC$vs=P&t#wG!n?COBHJtd_BMl6M)RJx9+Bbl%l3#7ZeRRDW9#De&n&uC_Eng_ zer6W%>qph5No4_5`?`1ddb%)5JdT_$>6v@1YM!^wvt8FZ_I*FOJOPw4IPTSnMQzVd z*;=W*RQF?!?G%R%J3X&_6BXNH*L=D?4qPHw^r|+Su4K!|KM-}dwea5okE|=pYBq(t zTrB*>vecC~Ln!EGRDz_?^)1Uv;_7Mz`M;SY*xu(TT$!WmnY7RA=0WrB-YJ)}pQ{Tl zXWgPEq`O!3d0qQ-f4$=-t0(){N1dHI%|k5L-Kd50@)(&Nr&KVKa2J?__vYqNRhbvGUp=-#)h!}tEZ6R)2$y*Q=|TMNLu zWU7sC$OhTIujQs{6JrIu4{v@Q`P)M-{gtVr9RK4Ne*K*@%X~N$m))raja|-PwoB-H z6ZiII*Im5J7pL;uFnUD$n`Ayeshn$Txn!<-|I6?EA3-OB+;_8HzDuio>qYs?Tyy28 zez>)6_L2S3M|QOa|LghGqxii4q~cqf$|Y;n+m9SRd9mE4S?02^?>X7Y&V4UWDj)yy zWI}~S<&zonWG&oqCufnIoX;K&C*ny%REG&_Qsa zta476IS{>IZ5_K?ctAsW0!hD$uWWeyu=d8DWbJh((?2FX3e4--xCdm}JKL=5{6(># zA=>?#*4OVRzOxql9u>3u`o8sA?zZal&ZKO$>|eEQ<+>h$B&8D!AAFM5FH|U$FTKl< zmp5mx!(7_~Wp}@d%rK7FeY36lMl`7NI>Wf)W5I%^g>~CN<2Z~}kFUQ{tT(d!v(t!m z>c-%mt0uJN6-;@%?1A$23FT9t8O6zjnO~o3#3l6i>%9%HDjrCH2D&;jPdI*E#bfrw z)KD~B*70uW&Kmb2IZ*vF!RL=0E*-C{6lZo^-o# z>I0*cIP0nYeE(!ct@`$!Ej|2s&resw)6e@3r?*tCxf6Qb%*iJ|e*P=2j=+w-^t%fq zcpft7%{qPVqRiAoi!yQ#oUIMFU$*h~p+z6|g^O67i(AZXaOYw=XzWecMf&J>J54py zsvEESJlC}^o|?9{^+|!bY3~oD{u0g+~jt1y7e40tJXKpT!y;H762_i$oG1PN>sh|NCJdbD{L{sZ}w>y$dcc_-K`}>ycVorpP)! zdBKxuJ&#LkTC3LF@dbrTu@QsK(J7#5k8f&f-s1D)-X2NscwF5c^up?!nf?0rPQqI| zO5f)y8cG$I6ezuxdb#y{!1wasJ0G!ZG7p*%f8?Ie;|sFcyfYSA@5m_Kn34M4b>jA^ z-TPZ^{QUKA_fwf`m#4g2yY%WyWu-*R+1^G5?ccAi=1ktwoR)4=t@W%>?X}d)`Fp!u z&7F4USbyYW^Zx4&s=a@FJM-awiaA-H_e!^Y!AH^b&U+W+z7>qn=~)!gF{X#Q3C zHY9b=sdintnv5GiJyhq($g&E zWS{dzXrH{>Rtp;Zn^pi+Lo1?GJS9{E-=Vs%^UdT6H(}Q&XMHL}%XoeX_h`)`?@> zt`}afmN99!jtD54@|2sIUxH=Vw_Vpgeda_6@h@jTTG{M3cjlHS8UK3~m#JLK$z62m zrIVu2{I|(opU+*q@zUAeexhmnJoUnLW-oqTFmSrRa#>XA?9PPQTuE(_-5V;xs{)%tuD9!?{C&uuX{K0zb@XlWunJx zhuyQo&Mf}Cs_pFbZ34H=N^XaHnNG?1_J11#+xzo3w!Au5AAPlo?dJUm-j(iIJbk|m zw#D6Y@`?UnvF=*FU6Hi?nO{7u_4iUAdoSmgyMMO%Wc~S1pIxWKeLZkhH)qEO8+NVW z3#;E{f4Q!+>iDS*$)^@^-)R>XO|tJga=26VW5Kh@j1MvoT))hj`P(vd(Za%fJNIkT zHf~9=e?O<`_0FGjENhzGyPsc_k1I(l%HkLN`ee1qbNS~_mo_r_OK=-4{;}bYRNvIo z22Af(%U`z8?lcXYZpr>&htJD%X+F#QHka?~o|Rr6P?aN?|8By@n9bbQ2OqKDC zC_j5(ox8^KVzbLT3*__VI+koTn6K>0tFnK)gztp!hjzWToEh4>Z^4Z6Ne?gYsp*q3 z`}}O4X1v`|Fc)EHpuP9kb#Q2@e|{zobP1$xrrner@6oKBzS5_UfCF zX@}?9y!o}@H`~;kswGR_rM>r3Hd(z#?u}IHjpKd0CU;Z&=U61>2(b@S*Med&Mmf}ef3$!1dIVW{3*ZYXf+M_#)ly@@p zRrRHWF4ot0GBE`ZSv#4o{-rw~2IZ25xRchhxd55#!8cfTcmazZ$gWix|1zeY%UVBWeSmF0*Awwi{ zMbrg}Gb;Lqi>|r~ZC7Hey^=IdUHamyo*6;CKi=@wB;U+GWb|lG*qU4hJ*m@Col)~W zT<+gHq?;1{CT*%JPszoIX_6nel<>YeknpVYo`T^Kj;AJV6=7><_|DK13NGT2THd@) z@Luut@XHwye!qIWNDwvFhuqmFxNh zF85subB^twnc^*R>`97J&ea(CJzrX`AD#NvHG_6Quc0Q=^Au|%O`;Bg2b88{N8EOc zQ;*r2ziDGz-;1Y9zR&HxEM&04rqv>_cBi9n0S||1JYT8x)qQdD&cEjTzFiw>lK61% zTe}MPtiP8RuZZ4o-z>t``Mono?|!-SU#=-nx*;ldH95z_a;nv~SnjpGg)xuML?^CU zed2JA?ZKlAuhrP|+c(O-SKJyu!A{1|P{n@F_7lPfF87I*{Q6g)Su)G;-SKvR@zcWn zJ2iE8pIqg;HYTU@VdoQ%74K|SUz_}Rb-F@%J7>Fiji0)mH^*){U(2~-d*%t=|9oTj zhpp2;Puf}Ypw?MQIer_bB1^^k_~+L)rT*Ety1P7V?V~I9|C0Y#AMclcKKuS3wcp?0 z&p#y9HDTpiMw^HY79v=Nq4ICLKlriaM&IYZYpmwj+U?jiG3sb@KU-W;+NV?7X3xp= zO!(ZGvE_#IFRSFLPG>p|KnPUFH z`-Vr3g}^+Aq!QJu`%5Oycou){;PuNrTjfkRop+lt@3XrmV|}Hr!SH>37VG|fK?f$B zn6;&{I+rP@BfBIw@6m!OEH@okajo;m39hR%7P3uon=aIFQIrw0o z=W=$Qi_E`yZdQDK+LvII?6BeA9f9q^uU~)Vt**Ov|J||M#ow$&ALUDD**fP@s~K}%3;UQ^!QR*6^XQQ2mT&u3-#BGaapw50;-g2Tw_2R~^kZM?lf8XgV+`O^ z(9?wX2qb-Zw}1X`6R92V?XJ~*5sd$P{{PAT`oGx>j~+ix{qS8+*o3dt`oo#pS-J9Q z4&QlKZTeRHV@9X^vbJscYg3i&cZr-oxb^Ik@FkD$?QFhv#;HihF6aEd-p#V#YIavG zIB+Zd=Dx22>|$;U-@iQalyxy*fmOll9+wkQ-<&!$zx;Z={tsJ1ckz7J zDsklYDc5ZAdGnMuooSBK-`%F1D=FCEChc8z)Yv3dy!g|anc-E-Rd~Mqa(Qy9xpzxF z@4n1R;jO>EP8EA2exW*d#~uOWADS9-XFuB;b~Sswvvkv4U5%FevrMyhRDM?b`t|FX zdA7U%f1PcfKWXO7lc3%CL2+^G_AwhSl@ad?&h%HUKAf|qMR4+*bGx=wah)q$5V`Pp z_}c@_|1#6}%2`#JNK}7bzi|%#*EWt9g}iTyXU%*eVSMk(ud1ofHYwhI$t(Ea%l~N$ zeb(CC+n>AQs|^3YDvOYQ!>#X^g}GmEy{mXF);r?;g7w!jc>dg+e1p$<#g~VFGG-t7 z*{SgJ;a>M;4f8f`0j)D(+yB|a+Pqag?P}qtE!{hKmnFWI*!iJ?@o4+*vu$5%)a|BB zT&^LRy;A``-(RmK4jJp|&78T1OL3X}-NXFCr9X|nySoPdyZ_(!&H8%ZsQ1;pyu2df z;{KU`k63UEwNIJm6?fXgu{oA8R%PNtsSm&0#23$5yCdyr(uLBCnb(E0FEAxW+*|#i zdD%Yuc8}SM(+}=`Uzp)+a_eWeVdd)|JFl|t$kbZBF#Dg}{D5cV~Y1I&g#Xu88&dRP%Pm`F6B{9hvK&Gcsy-u2Qo) zc4yz&YV+#ybCR)|M_-lKs zb>^DrOO7uezrH!;tKmErVYXcoFO5>xJZ-9@BgbG9%_}bEK1?Z zRyk7gXxYv^oW8G$lGyKW5ZycDsTljU&(5FUY-l~dxwN(W`{%5-5+DA$z1d1dPaT_{ zJvvr#E!8b(_QrY7g}QgHGhH;_&3w_y_;^WA-II#j_Ra9UALs8FsgkMs(s@3cSkjcL zswxdVy=8m$$jsIIaIoa*DN!$PZ%sYDWy_bh``i6w*?!yhq^an^4BeS;bj>bT{s`T4 zM$+c{kHRS7qKe936AAInJ5@x_KeU-=y#D#t&w*>I*MGlbcm?2!8QH{@4U{^_&5o+WAk-YQ$>h=46T@DF<6j$)@+R>Hk4#no* zWcFvcbWPY7yt1$Vjl9px?R%%qpMJbv&hE_h#)3cDvVZEO%?e&!S$TWgU(e#DTRy88 z{r#s{_kH*MkGC_n{;oV)F(J7Mv?`D<^Z5mqu1@RncS|;GC^(TVZJzh!xc$G6xwpN1 z=GX}FtGnO-$W!FwZ(>>Q!)Lk7`7{5rl5_Lz&!3#EzH;3Thon@0H6>O0JsZVZ-Bi`*_azjMUg%xo6fAJ@Y(|LlzZEZHtRKzelpn z_(I0*$V|P*zi;Z9#osb|yzh0$Y|rCgLMHwxNRzCYD}E+CzSeZr-&4W|KqE&s>#v{Q zmV5iei4zM}?3fXKdirPi2DTsd?{@dg{{LP7`R@Mz)n<8jEUt!v=H}I|$p8DmZkB)V z%&Do`mIV(O{A~;;cpN)=wD8FZ!LYSaM{jM-UcPP;XxS1=R%YhGq>U@~{ZFs|mOjV2 zyzji-Z=Qz5?){%$EbgB)f4+TWsECq^UNw8{t`5$6u41ps`~tPV8e4O@D&E#qtznFh zY0_D)a>QcdpAYxcn89w{v%dcCYn{kVE&g^tTV7vZKl%SD?LRC(><|3Ekn!WN{eR>7 z@0;g;ym4vipYQemzlVf}b11gVFo^$s>-vw|`~OCRf;qqLv-G{1&u9OA2c1|H6&3a4 z#p3=S=gRjf8wPSH98F)7@s^w{P#|Gx2Q?bXb&O;F5P^;-2vtkb8%)w4kZW=CSZGWC*o|E%PT zE9gC4=6tFq?o3oM+wIdb<$KnDEcpNT`{t~xTA(9&ANSjz+nRknBRBu~&)3&Cy1Rb- zC;$J1(u0YMlnN}|?#u@bfX(eu+gJBCJO1&?<@1t0K00di<$`m}u98mBY2klf`qw|Y zwA5QCX2*p6KWFbxe0pl?o%;WOCkIq3wg?!{y}fJp)n`0hYmAe7@3hNRbsRf(OmKVk ztCh<=yuBaa*qEGQQvTI=S`r(VcimL}S@+W3x9zUA4FRv)`m?5qf7YoVAFCy29A3W5 zZ?bdtsVDARjs9+)5iv>r-tB#MS4BatGwXV5G21BX}zZc2;~;^7Qn~xw~tstaaIguT?wwBg7?7 z*2cza?Ehyvul|>Mn(gm5S3&|f6pyfM4xYMc?&fn9WwmAL*-H;Pthu^I^T}D+#cykh z1O7e{yO+=ZC62{^j`b<2;Erk;=bE)^*QOq9Vtw-L*`(RCZ~y-_N!9zu^!lIEFO;ja z2qd``#{QgP>>3)A|D8eb$U5-E>yd)?o%dveZe?kl)qPyGoB!{hluiEY)bCjs&YwDI z(jjjBJqOOtHlJx*z3o+5eBDpg`L*99>%WHAn;MD=I&m1X9y8?M-R)6Vkv|DEH9X_x zvm=|YFl}FFmT-4#bKkthZ_b)5n)_S!+qJs%BafW7z24XOwZwF7q1rqt=j9G7=37qG zi{E$V>+9>C{r&6@KA*Q&S5#zl4-^X!zqwW3zv zQtzG&L!opI+f#k2`|j2M|NG}v`2I)t|Gm9m@nT^+Lq=X++P^@3%~IJxt--(|%0<9IB#Zod9H_3NvvDe39P+1J)^u4ol7p4hbdY;#@Slh}V( zHtyKn8!uO84$8JF!4BMtM|i|HKFPc$dm{P0e%a;{u`P0Xhp*Yz%t~wR+vF5ylD^^B zLmR%dryFj~IXp8hHDR~$b&EL_Gr}5<9Zs>WWMt3Fntii z-MYV<3QlyzV`2l zpZoT#ycBb+yVHHA;Gu1o8!x3j_CBzoPFi0+!v9_M?w|LPH%ip~w{&lNS{47z@AV$r zY;)-|mUA{}Iwn6mkRG$(z?_4xjx4^htNHj%#=IE6ggUL4x2Gi=9&qW`%e}vE?*2cg z_p7L?w$3)s=c|1G?Cflte?K0dnP)ru&!0b?YdZvtJ034iinG3R#s2c07v%!Ker`SQ zV}0IF+<4<%we{x?e%kOp!En{{!p1oMd;3>j%U^YmfAu%Z$*!LcS9kL;_%nC?HB!}_ zxyCI0lhd{1cV6&q2rS?GpQ-x7eBRY<@e$T5;-(&K+q2A(S%*uux~Of>vKxM%4;}uU z@#444d*4&R^PYcr-u1s&?%d*2atrw4tV^rEeLQqn5@cLbm?UrGHen~9-VYIzCVyRE zQnQh$7^b6ZEvV9Y@pDzBo z%IQs4h1`PfV~4z=)IT`o-``hzW~OmFyIciBuUm86dUYeCN%^&}qu<=xn*GQQw3u?s zk}aVH2G_l`)uyfMaK9gS+&bI;!WG~5!9iC|s+0e|-+CozR(3_hre2kJ9id-V=5KCx?ONhe=1YPbM?eaO`pFc zdfi*K{BWYm))M>H<^LPEB<_s6FEo4my0Rn>1LNDJezs}f>gTK7JFm5Ts>VF4naw99 zRnGAV`qo5=Y}w;`@bUVjt7?<>W+u)1C%b0Po;m9CYbLd{umlAMpFDqF-PCkyOAE_1 z-DtPU%AYLP9XceB#2r4F9Ce9bN3CeiH}e8Jxw3V#Uw2v^`S&^V{khwTHY<-m6r}j>lFXT|JqS{&rQ5aPWPtoxp^{0mv|VxUeDZqdkP}@i|M}jeWmft-iCTa&rCu@Ab!@e}4F};>D|1 zkGAjst7~2MX2uSF&=Of*%{x}rGoxQbMoscR*Ju-WvcG8_o8C5!lDHMmyiJbC-Z-?Y zNoG^{i-k+gUigSN-wmwX`Xj3+J$4!6t+jL3eqUIbW9xrbHu`&orzdAU=+c*0tJnWo zyHMjt&Axx%TLh9W-N?3>R6VmJw{=cdRe$jNWsj_5U0$+I-Pdm|D0_aF^UNcy{d-o< z?|!za_{uildy~zDPwki?AM#{F$-Zv?ewnoNOPlxX_{n6x>u}!ruT|YPKdKB{-#<;* zwM@?V_ZBhPW4Bfw{8DB2QmyIO&4qV%RQ;KM849n83}B7e>6w+xpg4cEu}`IKv~-K)GCHj!auQn<11LENnkKf4VrX1{pBR&b%@ zs{0!u+qL3WfecIcGA=*pv&PUvRhBm-O4(EUq)J_$O5(AbI$9@GXPyqJvs3*3mP_%N zL*Xw5-if;&uCH$JNLu{&xxm@C-U_TsOkaGA`77Bje?H~w_V2}i`PTh4iTeNGi_3Y& zzsv3aYCf31|3~-!88^W3{&vUPy&utWwQ#?fTEDYjPxY7KilRa5*PkH7>;?DM540UtF2#>DQ;mqnikt zIO%nNU$T%P@Ah#SAITYPg$oYvEdO=nUgU{w`Rf*5zHQz5M0vO6pBy=Tn@J~cO>tWF zJI%e=q(Eu)n)+*s+uu6<-aIV zdU|T=ljqMj7d`cg{2bo#aL?R`^-Zc*JEjSq+stB}&wr`h?j2vjI@z*yavH(@o{v7u z{CV+h;)cMl^Znf$lg>>j3+Pw=_p*su=j=1kQfoWuGm>lSQshIO>lQySbTc*k|NH;x z{`RZEnRaKnJD2~KX9`{?vgzT;{+CPgqnmx*hd(j${ITU)fgs=f~#DZ+u@r zdh;#Is=dCT+*W<_stftr&*tj)OfpS3_f)T(a^b~htJ*8)HXl59yOG7}I@_AVyjq*R zUwE8N|9tAow4eRM*Da4CW*nX! zFY}yz<=mQxD-Y!PITVkrIQFcx|D%(}{_6^M>Be&#UkU0g^Yf75X^oQGKKK9Ega?1# zZT!D*pZV53@6Lz*PJFM^FOsw+g`q;~MOOL4!zZWPrd=|h$$8kd{cPRuDhn_5_xAU8 zvwhfZ{^{6FkFdE_a+~?4Y?FFbbw(xnkb#=IaN_D`Rq^W{R}%FlYQa;Pr}?qZ?cdlPXkUHQ z?d{8~Kjt4>_c3h%b?P>nNbu&((Jh^lCc9K+yToc?6K^rW#g{)h+)CmpNj$6j=*YYz zKC#k6Ybxf=cwc|%8~Q@9c?_FVek8xmJom=(?94;`nH!8(eR9_PaplqKy=}(NZ3VWs zoz?yl5bwCuciom&0pl1fb2cCB|3=5VZhk0vX}arT)t<_k=Qlg-Y}@L~IG3&W`r)-@ z?C(BQE(w=;`c!nU?8P<-u`~S4TaGNT^Hgx&2mEpgFTx4jvEY|6BTh41&sB*h3ZTWox1>z>=)w&EUpf$3*mmsShwsRBulG|u_iSSkNH_}_ljob={- z+mD}m{pi#;r8R9barX@MAMjWxexH9nM62*fY`k;!7vnWiQk`Mqo;Cl(t}SVM$ZUc( z)u-pwW9XRlIb-EDWe=aZGb|*ew%X|Z$(;J<-RrFCpwqAaoiK0ua=6d7UnJ>E3PZ)J zt)T@4;Pu2m9gBpQ?wtNIXSa`MoawoT>NdF|_jiXpjA!1lvT3{B$>g1?JOM8>@()a( z;FMz_FxMfeg#GINH`Q?t-XTRIvEk8~>-Kpb*;MKBD#>Hc>jmrnvGLBGxR=qEW3E{5 zqkV5zI>vA3_uXOlOw=Y~iQ~SB~ zg>#`ZwcOK_Leq4rmNxsZ{?C8^#+HfdkCc9Vsu8_5&BKT7z)jETJ&fFnEi=Tn9LYKT zc;^*~j5Uuhua33(5Mi~OPep(&2WTywf=9qCuhS9OOG3ue6Ag7T>i^K{+o?x(99F5(LWAK3D5eab?;`h z>*|9?npkZ2tyUG@EVe};sYHZTUh3<=yN=IqE_nXd@Y7e5b9sN4(Fi`xC+i^#-Oxi3{WO=U7q z8!$~2GZu8u+L3X6Q^wx^dRJzID9fgrW^~9Fb}_!4Q^9jL)WlM8S$=fB`t@i9E#0Ci z_oFxr<+e=g-E(zI;NQQkm3wZRe8@jM>Fb{jCp*MgZ$JCG=i(yA^_Lf!^4`t6x9#tq zt+@~GXKVRyP&@FCeLCl#nXWY(iXPY&XG+Sqd^-AW!ujXUi)SWg9|Z08w7#1Y)Ya{w z$@gWM*yBxK-^6aSOSpJqspOuZ$qRSAo|yF3r5xA{GB>HAMPla<5jJ7Q#x(2YR`-(CD)c- z4KCQme3r|0UlzOE2Y#Ch+mbIC25roD`D}{kr`>Lsglzhju}gc@zVfi$f!Bv_%C=?x z=t*U>owXz8-kO**6XLktd$VF8^Iccc1&)RtJD6;DZLYT3J?P%@z4@!Ie06U;++TI~ znB$X6Jlk}6MP_d~T(mc}=7PzW+O0Drr|qe~uq{y~ENsG!@BZCYb7Vubb*$r_9=CS- zC-vB?$VIW~@;NT&X6L_|w;Z2G)|O28{7oWr%f^&&8|UCML-q5sDphk|@Nhl8RBv~8 z<&lZZpTGW?)BI@C^@F`)9bBJG!ZZxkB67ke<;!T#Ai z@00}KJHTyZ{~TOuYLl@&==!zYfm>Q7^0m))aeBXJ$a`|g^@X(b%UQzqpQczJtGF~d zcFtMd!`Ggbo^M)mT?Z1^)qSeM*!*_Sg$X75@6rKDx zeM)@6f(OeU=ScS6I;wL1`l2mpOTVAjzq(f0tUZ4>gZQ??q9rc+hir7VclvlJZrj^* ziu<3YZtVQ{2WO%WUl+f!=wSQlm-SJaI(nTE)uQ6Lc@7V+U0v3={PeEs>v|zIJ8tJh zoG*Xme2{%rY3OSm{(b3_Z&}oh<}H`uJ=3LF=qtnP>b^4e zhgPTZJdryl)6Exp-t~R+!12zDqdMC|f-3Kw`;>ceLAPQZpNX6Pv&MaIdD3*)HmIJL zlhT>$cg}9!!JGfYl`0|Iv<=gLMsvfzkQzO@@ zoup|Wef0c)&aA1ujxvvG&XCvxwOo6*-&h-Z zOE*Y+YZmM39ieYHqFhTtwlwuUSh4n&n3ZUn`_eM5ce-abD@`vGdG9wv)=50<;BPg% z&7S$fGnS~%+<0F8p}8lAN7IAK*y+<%?#HXEt3NM3_p@&Q^X&EqCs?kD?dhnR^sml; zjz#0ej3p~pbX>ULSurhIfW=Y3=ElBS>)YG&)wQ*|cbC8aw(oxN)9+VS2LC)A|IaAy zq%g}vM&+x^CWZ$bJ9#K~&8aPn2V3^eIk?Ppp#pbm?!<|Y&PMLpcd@Z1&E~Xy)SEZU zkECoUOJr1^U){@G#@Tg4+%w)-*0WmIW2r=cern_{&UURy;oXx0c94@8z;I(_(X~skHC!oBxm5Tq>5n`TLgFxzi#mwkqyDe`LzBB^zzF zO?Z?Z*5u_})5PXFnN@m0$>cCix9!O~>n^MP=z5{d)x_@j@W^?C;QJ}6aW`$f-mIG! zdag7+f4Aw1b+Iq1);7!#T@yd!=(;soTT(l}++nYI|M>ZL?(aVpO2yrqmTfMpmu5Fx zm)6PIv{-z@J`JhL-S-YB-Z{Fz?)Ybs*@*!;JxP^OroV&2i{e%(7?oZ4yvTOR;aH!q zYQ4g@YR&kxf3@?k(=2~?M{xT7pN>!8ettZ+#WVlkmUPC6*Y~M?x>@fM$NygR>?6kY z@9*tBePw0vL=Tmk?{~{Vp!dFzx zTB_e^^wwT!{a@!No6CP4cL_IK|9tPia{I6UqmQ`!7yNj^zUq{5htb>Yf9tH@{1Uq7 zXTJH{p7{4{_nBxOtbKJirbUqD&L=V{nv19^LMW+vj3DnRaGpi zx7he4|9NH6^K)|r--i1z>T)zG_(<9IPTyVrzUceASROX!_4|Hl-Mo3Tq_on|zE=Sx zZ`5!5O=9iZwV>gu4<9~!^y>o&|CkDjh;pZA%RlBE&pfqmSFO+n1&+xLFXZhaj&LS8 z3a}(zdhzm(|4gISmBGu6N?(QKm`TG%p^jOWHYsp4J*Yo<^5lxESy!@5Po6yac&?12 z0E^=X?ThXrEcvaILbl9k=&I6rJXgd~pvLVBzr4;PmJJFVhnUaRZEZ*uT$!U|m~?&m z2E!!QYVEU+=dP)~WSn}^ncw!vY5n~^m6etgCr*4kN6S%w<>37{zl8o-{u4O+xU#u_ zq=D4-uEYFip@T8DRyPX)WvsJ>datp z<@m&T@5FSkrGFl<+b6ugw|CE{Q`$A}s~=UVI|{U%Jn57BDXY(PXM~8vdF%J=cW%G4 zUN=!X{@9xH+z|q|-v9lURTQlM`OW(6hUzE0ihsKLZ2UY^n9JbDSB*Z)-4mw0n=Ul9 z?T4v$MQNbMrNB4uRsLq7BR^S1=i9=TzmA@sDJf%T+%J${ ze(S2=+lNv-#zG!(B36mNdlvO;a5Q~*AYqgC>P_&{kFOTJT>L7yx3tQ^so;ssq~h=i zDEGuN_m(?( zo=g4jXS4Hn)cv)R>P_1-S&5@b;YSF^$87mZ`f2Wstq;!~OiZ>7U8gtgliT#hS&u`vxMWq-1!^z~ zZ#l2=tE0)_V`RR>M4MGI(}gPzv6w1%S?Jzbw|aS+H(&1D_7mRHZ)1&#eh&s0nkU#qYwQ+>5j^b9fSwx#DzOpgA)tUUhPYSuMTVf{+K z1>UoWZAj~G+|U}eX6n~F+t`I??wN_#^_uTG6LV|M z*?p_bavG(A?9QY)ehuNi-|L>UW zt)@_Gx>Gvb;O*f>`>x;o`9ziXPD#q~DT{h$p1&2VyJzdu;91YttHiK{-CZt{K6lx{ z2R-k-zpsBF%K!MLtgLLr+Aw{)844VSZft(-U15Fq%q{M^d45+Se9swAkNk5xH$#5Q zx<-*4)2mxbTZQ$QKj*L7$?C!2{@yEWmUmy#nho=AmvQv@DDBng-O#r7@2~FdKeaoj zu4k0uiu`&f=-%0@n=6~XO1jDi3e;rly!!d@d*bncpaaJj&djNN{BKoq%kS{_Gcw(k z-RIvtx%7}w3HRm;Y&-iJU+v1_FFf1#@C|3zr|g|qIS)?c)X|UfoO0>wkJYQY8>=rj z&wX}w_0712i?^NZGdpJ3HDgah%evw#Gn9UM=JG{FD!2N-eNq)5v|E2k2@@ZLAm+|VkysQt(<}$jL zu=Jm@ZDnHDEiF4F=4Qyt&0BpcL-PD{jVedI>D_&M6*!tMoW6Lo$xyAiIbQCex+mMY zC)bl%U+g%xG4%O_e2oXq`urOss`{8)&)#s~R2<17x%Ic_OhxriHv~UTJ1_gA>ciEi zi*3>x%J^3C+3KntsOWtZ8hXO~&BNwnkN>Ew?47*&lucg!von(ap2q)6RhjQ2z~VUL zz%td03FX&4dxiWqG!5+&N)^BT*_g6L5{`?w|B=+IeC4(H^P?;0iZ)_d!T#lc! z*N&03L96l0n~bJ*nYaJmg9|&J<6gy;s^Pc(*4+4(RrI*LVCmu6Q7&l)?2jQ`NQRpKGJGWI{!UvcD}=?!_j1LFjA}R zQ<&>{ZBxygfh`Per?m1E6^p)GO*`(Dktn-cE9>W8SEd8XySZ*`)?oR4mC1%zI=d`& zq9D7~;p{i7jgww9bQI3fbp@BrPK!E}Dj$|Gr7Z9aP(Ep%#JD5OwK<9L{kd{KW%J*? z8mBg`E7+|qv$g+N$J)iV%XAoap6Of4y=GVO3sL=#?`odU<$su|JtH*AAmQu#eZS9{ z%R7KVSt9M6@}_qh*H7QxuPKf!rbk+wU+#HA_sZv* zjnf$7m;28MS<)zUplxS&V)BCvJJQq_JTg*i^3*t$wDXu_@&iRXJb1Fv+cRE@OHFqE)6l?qaZTTxq`u8IJK*U2EGzDP?Cn$ke;)f;l8`we#pU=! zkKO7#!s1a}pn`U)4_B-iL(W?<8FTMS?M3nYF@od85+aqZnUm5`g| z?9+VutS&sv%ytxL`FK6`NllvA?pHh(A`|yi>2#~`U;eoIws(c~-nlC>xVP#p`|$pJ zMDd(Qd!nLz_&^P^Z5mTM6oX&i&eYaiuwet^lHd%W6 z_%w^Gj^Ji;uG~9i{pwe=pt-sOs*KyPA-Mj&xJSK=t5SlpInWb!&`TRpyf2>|9 zEKy?^^4+*$=_Urb&Y6ejw7fjWE$JpXd8zSpLCJ{2OLu8y88|+Wd6eG8d8yS7(vo3O zpDE~=a;IcT%R`Ozi*`8rZ}#+RapJSMkdi)e(NyLK4o)ZD3eSJ+Ptl;D?D(wm!!p(~>Hz;Saw|6sTSnru!J9GKPu;q(h&6Kj=-oP*PpnFXY zpNQLsJT42LDjq{?iyhW2(`;|boLH~^aPdy&_dkr{mQ-w(J6r93Vs_@TUt49m_|HE~ zIQONoeE*#li(YK#eSW^iWznMEO;_fMgl62FY-E`qTsp&Ht`U2sEAR17jVE}NMESCQ ztxeX@d=Syvdg4uv+0j{=zIuxi_Xz259QyIHZb|2>ow+YI_ixbjyY>CXB*)Uv2Tj?! z%;TK5{^zjoY;4=JRwV!8hj+i`9bd<@cC%_lvGMWzZUM--#v+7 z7LaI*VqDeQY172~_hIlH`|8$NhubYSET5R~R;Rcf)J*oVQoPvNa@WQ+a;czo!oH}J zC%?P@;7MRu;!%)bcJt1jebbYp4C8)HVU{jkacz&w4j!gOlP_%f-*w4Lxopjrsnahg z%=JFxqsch&Ge@@l@t0D{-}ID!eafEU_NS7?QQ+7-mxWJ%{#?j%!l@%-=Zp>Ks!HD0 z20zxHx86l7*ywk!#){pCa^3%H{&AiY{A2d690y7uM6%|ER zZ0NLZUw zkU5?|;_C0@x<5Wz^2|b^5}P-dZ`ksjkK<{~H8DxedvETvL;K1#Z5xW@UhbB@IeTm0 z^|uFGY}dNjx!qLdXfjAkQPfB&^N}sv9{kvvjsN%e*@x;M{1%eA?sa4O&5n)SGHSwn zYrB)%)HW?V;qm^b^yc1eX}tvgR?zOiyPP`GoF6%F>PkslPv~OecL~{hFW{B`xGwF;(0Xo?wy}oc{`Pstgn?6 z@%y8+;q`0wcL!qU+MY3TUp{YEwnFE(8YRD`!;e>5Ilj1Ro2C`mDmZ<2(^Aca9tU%I z-u&47JJ!>*`{tI@K7s#4v$W;}FIcZX%e_Nr`s4Ln>xC_U&DisRS63@nNh;HpH>2Zv zmwGZcbEohDQ2j9_WcRG^(&5!H>MD9u%U1=n@7+B)-sIbDe;+aVZ~NZ;FSpwtab0AHC z9Z&gKS9<^TgdHLGR?5n#|K{vcTmNy&>(u?#+rIm!dhxwq{@_`uMs?kE3$x>I!~{Mw z&0ZB>u+zt~-t_l#>)Y&QcLncdO;Aw#FTnC}-=)-JR}@`kRZ6W*_r=CPy1MSoE}?I7 zWgGsKFa~;Q9-E|dZ(ZTWq;|pEi}g1>^wBCYDbBm<$Hkxh<0hNIzQjfrg&>t3l!UFNn3lRIdwxBTVy5Kbma1tDh%GtSh-x{hktE7 ze@}K$NcXjk=@)k?-rgZsFT40lMbF6wpFSgw8529)Y{a7_T%f&tEzn(c$E-O){cZ!h zU9&8A{t(z|{^r8fbK>o<3tik63o)lODfAe(dmc}p`Zi+s8524E#jb*_W>@}R`4M;j z=GDYw*H~}JM&!R(vC`nd0lSpy>R?HGUt6!*-Lff)Ei9f3P8)V*{%`H{_#()fXu&L> z_-I|;G#7QDYju6+*Ue%y?rr_~#`=y`S@~l&&6(d;Ok4W=GYRy#N@MpsoI4lE<5I##a1kUC<%Q7+^v@o81fwH(8T0WP0j zZ4?h|yuI?{-nly+q$VHxbi=7@ek7+B??+B45nr(!g9Yy7r`_%FX&7B0K9v)KJi@gw%B+t2rx3#sk>d3nxf#g0AS zbSIt%58H&9!USZrQrE z@ZX*p%UlFl93`a7YB~SQ)OS2v_wjB!$o`%wKi`BEaov7j>wYY&Xx@#+b=ep0f498o zF4EGe$ME*s)g$d)%eQlX&tN*L=eQ#r(gbt4TG)H1BV^i_f6)hzZJmGVj^RB{>H7HE zucF3jXA*vWdHLt}{{O!rj{UH-FZ+qz#G^Y6B`)u?-x54+Px~)EgK0Uc-`7+g2->}` zrM}N&@rPA=|L>O2>i>NCh{-gYjqW^Y98C%~D|Sg~R%ta)uCh*8x^vGY?Y$oZn?fEg z7gm3J^~tgK4^GuyF&C|MaTI7_@BVp7GyT7Y(o|Ld)ZmayJy)l*%NY61J|%s!eZ{rg z?KcYw_I&Hx`&Y@eGgGJ2HI~I z)looB;q6tK6MH;9wAt>t{zLG6?TnVk6?R9bK6|)*uXvE?`hUNa>n>Jw#n)7JeBH=q z=Vxzt=8eDezYCME-01|FjQX+YT!XXV$<@Dw zH_F%@Ouw$<5mFrS@1oTsXUU7Z7{bIeL$*)!pd~L~%l0?-k$s77_6MgGgD(CNS=xW^Pw%I_&d2Y*A z@oR!?7gC>HdY1ETXGh?=M^P0Q4*YGkU3;XhC?je2Ez9YVn|{5pr>;q4!{x9bhr~o?wcRb5{>wKmR1mznpu7Ff(SY?5 zuPt}IGU~41&3l&j{NLS%*2~0Qf5-z6%e)0g03GP!iW zayzo-7Se4`M^qI|ILrk>-<4|iST7Ww?X zx3{Od;?o2RM@=8I&-Z@SAG7BCzBb(Co&U7T$HKLd@9!(kx0OD<=i97}GiQCjJ;8ms z;GM$WN1@LrJQw@m$W$|N>e`=*9=P%D-v#{cwuxax5E)|m}sl^GAoQ1B|KOflcm^bt6$wO&r;w^_c zu1zhAc|4=rWZ!HizR7aVXZZNu@hwdCH)H?w+Ve+-9^COi#UI?@Y$J} zf~oU0F3;=rocZtC&+R9&zq{CiCkK*a9wqWWcI`5MeQ{5D%buBOtKv^D{P97C@0ri{ zBx~7McYmMko_Z;0M{{lL!@b?Ib9E(Rk7}3~zI`BdxZ%dq`wJYxxb zpI#g^@vQYmt0LpIYjkJ7w~5W!bLQmX4}aP}-Z1(-m%;4S#hEHCGUpR-8Zoa>^3;ns z&XjxL#b>_{+=1mg%&&nG&UY7^FZ}zDJFjf(x%GF&yxVPdzd2?+ckL+mu_{?ucK=Gh9xG`rFOo(|200dr~hTw3*|o9i}qjS1O0!upGg1z z(cNdtxf#cGBJI@8!#CGB+XyZUn$jIMnKL2hW%R|0vu`UhZq%4g`;@jO(@SPo_nl4B zEB2anf zv+CO~F>=1HP(N4x*FJEWt@QQ6{=^Q=1*{JlzrM|{_rAV0n_Tf8-Ye75U%q+s<$PnRkV>ps-hGoKUas_yE1h$qEM6R15_l}2{LWFo zcsXGg`HS%`cMa`ae7^8cJiqVh=3mMhO+E4XPa|)p_St@yIz3N&!J1jr~-*b`^Bfdxb)MUi;X>lCd@oHDy+}od@7hg|$ z*!(2r-tX!4FJsG|oDi)0vRHm&@$++qJ`bO4Nj)ug>eQU@FE`$nfp&2%K*O>FeHKFD{ zXuQn!1kZ^lE0|?p_!=Z!xm_7B;p;ob&NG)ql;2(7y3=!Uvm>v@Op#qV=W>0_0$RQ; z4gO#qSpQ?b|0}+Q(={&td%oRBck+WBVTbmeaqEeFU@)^Fqy7FF$?Pe$8!tUJ{B=~L zeB<@gH&U<5K71P*Zcu8qAkTDbnKa+4%F|PhSxZM*-V`}|>+V92O!+MfWko*f_;RW{ zuszJwUuYTEv`+R)|1P^}3O+7Ma=)f^wEvqrf4;w?BV%A-V8+&{d)4o4!`4Q*hJ}gU zym@n^E`2^_KbUxkL`KA8RpN!-c;lGZaYkdFv!;Gf$9lMfiI%d3( zSDIgY`uSJ)0E^Du+b8b0?G=4C(=RQxc)@}O--)%WZ``u&Y0omrU|yY(k#+FKIweK( zd7szEE?Mg78NFbdc&yK>E9QRIB@=i5d-P!PrMR`_k437@r9CW4IZ9uKbs6hVnx4H( zUP|mLV`Oa8cnq z<=tg(AI1Ow8o#sduhoMyuQz6!unFu;lhd(wJv>Y1kVuir#F;WWv#l2>=dZofbvWgi z+xIW=v2L?wJ4k9B4@`aYeP8c3Kh9HzHTNzh2$^SYdF_2CPdS{$IX(WDy^Znw?U&E4 z*}H)+^=#NZEl;UU_K7{6zYf2zi7w|@o%9X42p`5 z-dXlm>hf~`_qF@CZk@Vii^;za?e+mtQLpOQzppyn@%Ezl%>p%1t67%Yv(#JLP5
    ~zEhRM98ft+DT!>aLOPuk^R~r3a_O+zm6HYF~Z!S(o-vM+IKuODA? zIdRs`2A1AQ4R>;cCT;(C*@v@l=4+cXW~x8#)Jg~+6}iy#fnk#EN0wFH;xktT1^$}8 zU*OyC`;#y2U9)fByr!n6Lf`u-Q>RbAemjFDJ#Kyc{<<^Y^snkXI4W6nO6wM9r=QB3 zXPT$9=3bsXV|`fBr@v_`7duD{JF zVgIzFn6_rPTPZ1We76+juk}9S{Qt!H^UJqxo%-t4D@OHt#%2EV&$V)kXJluC4yxek zQ*&)%-kka1?zV5sjOu1pP5D)3eZq-@bCSdL1>K8mjs(n?>`&(U?sG-WiV%^^?l|?r(r5CjnTutQW-Pv4c-ryf zt?rM$E7J_6%~%TbN?G%drBA4iar$$~qvvP)irn(qOb7YjZJ%NB^xRzQ`#=A#;9qd+ z_VeS`oRjbU$vn@bwBEMTb#uju>YI^~e^zdo(B7ah=kuZe@6GQ$*!%sS^rm;}zlRzE8eCQXqHs|~&>Y>N2*UO72$?@guyyg=~y(KKj|M#)z*(5D3 zEsL@@5}~1?de>jRd84AC(Xo7971!>&=k`>7wy5}^09sG==jn0RnctKHm$j?^YX4^} zdF!%p;BKR4G}*=u$M+Xe-jhF!aMoj7^&;kUQ9=UA0?iAP6q zSd{n4GoJUEdFb%}*YzJi+5Z)`57IcYS@+$=`Tzf<->Z79d+YXX%j$1Bpbfvz&s#UA zrKG5^^T{Y!TFzXsK*8?Mhr=Iz*C;`2Rb&y0ZTN zIsgC3gU#&K(`*0zd~RZDTKMfvWL(8V)``~-wJ5ye|1SWFHKVuk!mE5vUs2I%T6N`m z#HSR#)Y#57_t%P^4-#rAG+6kmkJInS;g9MQJv{vUp5575T=VnkbdU#b-HO_N*_Hdy zUkA|gr=&&o9W~$N1M4{^pZy!L>?mh~Bg2{W&5=SAPu=tW_Aq=O|F`<}zh_&OYMnfJ z^2}W8>FM(-+fGl{zg+ZLO?zGZ^4O)19`7!n$!s%qKEK=J8B2aTe%<@Nw*UG3`guEx zpMU!CxWD+}A=Y>I_MR@kUwgcjTfC#Q^Wpn{@7_mj$q)=)?kD^H30LwN*vciz|Mvs` zZ@J^W%jNGw`R~zp3+<;qJ^1FAkeS<>g#4wIA-B7Y-p+sjy-xe`JkP-8Ym(3B`+w{{ zCRFziG*Iw(j*4T2!`=SU_N{5!-bz6y*Gj%Ej@%97Zl|ey47BxQ%ggR4Pjti)n#rOOEY+7M`>|8-)}Ha^7XH{B619gO|%~ZtZxM8-4Wdcb!-L?6?1#oHLnu+~@d9mJi$i99P%w2>#z7 z|K|bwipOCePS)4FKDw##U&P$Q#{J*dd{+9>nf`X1A zB_{v>UenEMZ!t(cCGuwff7@;Kf3FL^y}Zu)khI`Roz94ZfwBMHT4&yR5;DzY$tIPb zN@)$>{BKH3Jhdsb_r}J{du*Fk1y`P9zsFp%HE7z5Q*nt$J7bvo8v+5K^F zq|n5J7rm8VEa}a!D(L0k`{>`1Ss_gmeZEq!YI!`=Ua<6_r&;4ui%>VzE zF!46@n8sg~edaws=*OL|cQ)q~%8N~NW0R-9d&u*5UHFE=tC}T?Gyk7z;tXg}m|o~# zct|`|>X`ld_vT7+T!%i`9CiM^RQBArqW29gbDzD{uDX41?`^y9nr-uT9jll*rz2#V z&c2>XmbX&t`>+1i?==^fUwDiCtzi6BS?61o-&e0o^HW`}!%sXO~#-2W!gc;tx7zCWM5qoSj2*OkA%rd#*>_We)h^`Ffbd#`^W zpB#AXSVd2=%VWdjoS4^roQG1+ycA!YoA=AKx%1nW`X5U3kLT26uG!g{{m*Ot`d^Ql z-gg=XUw^mU$W~9iVgKJ+IsK=19!-tkUi92gSiLUhc$?__g6tWo%n_?@Zg|AgFJe~s z+)sOd$GYUhvzPyTTyUDjQR2a)qunvP%X;(o{cHm*QheI2U-AB&Y*YBUC+s(Gvh4eI zOXGXaK|+F zG$c=1DWwmZIw;@&TQ@^L{&XZXK1SPd(FV1^E_57=T$-pCf=QtcX&8f0y zj!Vsp8_TMdK6>807R?|2UPqV9IFnQHyNvp=JwEsSD{JQqd<+n9dl2{N;aQ`;P`>iev$k8ZW0n}d z%M|Tvi?Z|3b-Hf2D|YAS1J`AZR5u3+b@p>QN-aq{cc}8n`3b+@6zt1;eDtW+Mw2T6 zdtQ~?Z{=zT4fkx8bvXaiN?f-|GVq9Qk5lgT;LWP-v3c*$7zFLrYUkIAN=OsgJU=XP zcbIcw(ZL4c({a*Q_DNj$Cee7{fWxLun=1Z(z5eo5QLSl2c(}OtG#y1-+qnl090*hi z`_ONwm24;dSmI^HnHv)8cO`F{u;b-*o^J<^yV!rMwd)VG&f%#Lzg{yt?tZU7_dn%h zKEHRzpZc=Hh4r*9cmLi^v#;07@URH~{#DGf|JVCJAEPH!MtnO_FRQ5ct~f0Iuj$F{ z=K|#CoLMg<$EINRxKyt0naKYC-&~viAO5?keZRfj{D>X#64`yhbHbgwIiDCmo3P2g z*~RyM|NV&4DRX+mcU)bWaBW>~PQ;QUQJbfR&eZkk<~#mMXT9EwY& zv$sibM6Wm+6?s0l+F;_&=*am(uL}RqyPSHw;2VqU&#iY}wLCb%GEID~O3sYGy;s&m zZm#;@*Vo79@bg~v;#=YRnm4jmWxnQ8k70XuKctv@Lc{Ma8;w~{rLXLn8t;Ge<7t-= zvj+-2Pj5ys?UK^$(O<&4VBv(&^SVzTJpXJkUFK;-qV4v#0x~mQssg1FdC$G~5nOw$ za4m0lh;NLendDtw$&BwNC-~1}Ax;|b*VPE=Xd-Gt4c#{Qx-bF;7 zHZ#9{Hd89%z0J2&d&pSKU+-c{kZqWRdN8a|o)gJKfLa@J1Nf5lYs*NHJO{BC`C=fZWL z4+h`O(>n9y?c-&PnbU3d&NI2p=y#_lz4~odh^ckN){7@T@7GJ(xMo)G`8fx+mGH9{ zFH0^i+!JoH?sJOHYrfySvfCMsp5o29CBUU3xb2(9)^A}xv569=+OMr{p8QlV&$6C> z-RIMxov;3`+dXUIk^IL&!OF+h?euuXR(Ie29LKZm?)f|a&D|=#AuH0ht9RxKK2hE- z;m?wpDKe*x-de6VjnHa8_CsUo)HME$Zzr}EFZjf@{mns_wDk$o*7fwS=CKF~-19F` zt$0@1uFl4=Q$psSW@=8Ff92VNsir|cuK2BESDm|?yW|I^*1>6MR9 zS7>ldZe3lGA%9S$P4}nj3!zOHcE!Bf6{N*!~^&}I$3s}@i?2U{d33i zyg194J6pjc_I1o^E4xleX!Dj%DEK9?zUt%6+S|vBg(vQrmF#O3Wfc^t$++f)w{*dR zgjrWyyfbZ|xpubfxV3Nb#Kq^|JPAtV+|}xQdPnSc&8NHyop%qs`@V>ivFB-YrS|&9 zO_$1^=z^Uj`r6`1mTQoy|9$KTd&+^SKh z9?zop;O?uC5WPHMJ7aqa-$cBOd6Kv0`0Kja(;pkIyZuFM)x7BE z+hR`dzWkx?_+^7{I5)j}V(~Tl&ep>=-;e(4Z{L%lRcJiz z&92ysm-Wj+_up7w_I>4M{*Cr$L-}u&RG}WK^4lMq=`HPyr*(Di z*S9>FCn{gp@?f2P(ng-mJ{1W!^XDYxr}64$bVN(E{&^;97g09lSY7z?`}?v~Z8W)9 z)z&?qdf~?Vu0yv=*+ec1w%lBGb9P+oKJ7C*=YyBI{*+=sUE2Ec)1G?&mz!RnzOj4h zwCKi(M|61(Uko_h*gO5@2c^9XB{L20WR(BQmak&{+9zv0!!Vic@-km%rHKmDPjhl| zK780NpLTkh?)NG8FAJHRuztNVa}#sgtJAj=j>#Nq+u0F0b5j!w>m9o|mtIB@?Qnx= z&J$N`_FKair#=by-=M!=&if2gT&z^v+J#-rmA!jqrGl5wO5Z%0V{xx{r2C5Z3x4OV zS$Kc``t-Z!&zx~ln)u3GZ!_s<-X- zDUr;ysqQ-TM5ixK)Qm*oWP|GVR?bQB-~0JSvY`*NPbu3O^Vfz7>OQQ~+Qf8Z*=G4F%$M{t z*rEGat(;x*Y5t+x&an0KQw;HUS+E;h;hI`LZuNR$oL^a>@4{R-f zYU_ot=cymcC-cvH_3c56xJTs9hUejG3piOOESULU!Z=yv!cDj6_Nm)Wi5+NpH%l^m zH=nT3A)yeDyE6F(@mFLo&HQ}9<6z0235&k3znB&>DP+%N+xL49n9O}%CAz0``Ml(Z z40FwN+>F~+hiANGNpoB9=6dJLpZk{A*Pr?zf9B|WoeGwpkGhTC8m`aZ(f9FKV$$uk zR@$#x12r~Wm=N!=Q?uvC^3a48&mSKW<2MXAIj1FI!}fsNDaY@X2=0|_n%|cmwf{Kx zt@j^)Tywn5Usiv_*>Q%1&C$aTJ=CRyLFtSel8*x@vTa`%`nN0g&R@P)FxFZjbkU1Uk@6Q7@$8e9Uyj&k zATevz%JTAq&H)mfoJAYVi~c^lAe49UcqKo zeS?C8E?&HNX1@LWOP7Mye=gF{KKpcPjO4+iO391%&bsqMHb(OC?*H$@4^K6eHprQM zTO`+IOeFuFI6jx$}yz|IU?uz1IxQpY=8+{wmyY=Ueuo zJ6ku$&ROtM{=UCl!NqX-E9)iCOgAjdxLJI^{m1Kfc1Jvp-K$E<@VC!D7H|2xa$VA^ z6-o2gwJ;z58X+?A$Waf2J0%|_tAEW{yY%t3{KD&e((ClE%`W?#xxMz&!&{<<`&9cC z_9|cfY|H;_@~_2@rFIIg)QPq(`KG&jUyHeN(9h>i`pr)x-epe`N?ykNQ(3Jl`_A*$ zAK$*SM-&>&@SQHy&U1-3^4nkcj@oyE&yCD~e-26a{ZuU62z#Mx-0JaiJjZ*EqX=9fKh9n z|I3|RdJP{UbQP~81ZB(=UG8#e9{Pgs?Dw3XHkfAWcyJ`}S=~EzJ@|Ht`_k2qrggvf zPoLxeXhu)X&ajXWm%>8B@^^O_59Dpq~xcNyDH z-p>mda*r1s?t1ie?UUSq$2qsXIXIYZWow?xR$TOgqtdu{PW-mXds`Ft%r^eD+x=bn zwq4rijtic6qFi@R{6zbd_~SPpZhy71{6*H&ZA|CPw_Xan-lH3EdUGaQ7x(&$*F>5) z15{T`U~2Qap1SAYn_UgNqw9CvZ}ETKKl|&IFC|x)WY73@zgz2Wd;O^R&XQwIyq1No zktrDqFK(F>yI=C(gm<3~2H%xi=$q0gwq`ot$7_WXZ036Y`Xlh9tKiA;*B8yV7Op-x zQ-8abbmrx4j~slj@MyMiT|X{;M!mGXNYCE#>4PWJg!E)Jo^&%WsHoD+E_r|0fz zOjVr`x%*Pb3%&YhyR^P|%$O?VI76xHLHxCXeaAc&owlCnAf>^WGb5Jgi-k{_gHu7m ze(gCa2hWu`KL4IC+rrFm5Vq?#S$JZWR6}tMzQ~i2Nw##<2FHWE1w%+T@ZJlt27PpNx^)sfc zKULfJ@YD_SyZM!Q!u+z2U%XV_CH0z9(sO_AjgJ!NlT)PcOvw&Tb-Om{eF5jc+sx2^&F_A9xk*XJ%*)dA-)xy0e~d{^|JtXo`_!Zj z)2t@=ANO(3sPSj`|ItJ{?pMR{y1K@v{XGdY+2@_QURxTz=Rx_kGU){>J`Z#1SkD)n z<@ZTRnG;wxB=5~+mN7|L_w4Jwy`Ss%@k*4*ubZ~h|GN3!({h}X zn1YmwiaHq1q_4jFZvFm-7a`Z)n_I8{G->C$sr!Dvv!4F`zBYT7kkFHwz+l(IKFr%W zlx@TOa{n1fmzfl;EB6XzPQRD0R#&~_wAt@{3l_Ena!s;&RI2#+I}GQxjj8D0rSd z_VJ;$&i()=j{xh`&f5}yN+h#)GgmfsO<2(Q^!BZiiQ6RgH`%GNXe!#wmOlD(jrI&P zA9vGC?P$xyi$YQBt`@y1P5nrewo%t5>h{WBeZ%>+k1`zbb$5ZmbT$FK<_z9tKTmt#iS(6e za+2xKHhyXA(?0J1vCvg>w^>`k1`pGmy;bW!Zn3X?6Le{MTa)MU^vcjF%cn2cyJ6Gz z&sTm+e-Qrv^lSZN-<7W={KK_#4<9q*6q@M$?#8s~52e zvz$|`TP9NS_tNXooYMN5lMCL)|I9l+VQp<_Ime-t$69i`R{FJ1Vl}odHw-;LC1_sw z+a$LZ!<_49I+XORBv$G)xFgb=6DA;uWcAfwKzqfqN6k0X}q|f#+YBJk({!^8kNMV#UuPARs znodIId*z-pCR4UB6y=02|FPruzOLJ<(+!vGeNYr|HLr+4$SI~quhYrP|IOm%DdmxK z_Rn{)Jji9KJMYtG;RB6_XUoUDkXa=1+#-Itv%0B6f=yw6)%R>J9-fqoi(KQ@zMi`7 z-O7!=4!^RBHh(_p9h`I(ed*kSd78YdFU)4M{kHh@nWblMzFD1hSZsyj)5AGp8B6X4 z2W=A;&0Sb_!Kmk}Ozc&2)upRzv!^Cpt@SFrmMO(^E>mRsyLiVv-G7R<&x@^}v;9)y z<<_YyQWN%XX*c~T_@wq96IU%~zJ9igWR^>QSJLm+t9G-GRqZhP7T$baewpu^Zx(xR z?_57Q=IiY}lKmfVEW5r->w1FjTW{uU_In8oj|0mq*8eYmu+DEP&+UHZ%;~#x?{3)~ zDdclybh;ZJM|jhOcJbuxcCeK&oz^p0NhiT++Q_i#V^7n$l0 z|Nh?2FTBeq{m%INlDn7RUyt3L^kIEk%GXKnj~}j?bUlc5)&;Y3*JsS!ykhs?YgZ5b zyzg+s$1-f!^5}1BWffc3KTHbImRj4Y582(c%U-O8L5YuwG~VxHWZysX%EnxHe1cXX@e7A-1$oistylxdNMX` z_PBV8u|VPB{=dfq^?EXQ{p)H7*jXIeF6%TmeD0Om%RaYk7iZO0?wED|`zPVrn;JnD zR(!%Mf}bg@U-2-)PGF|vl0%NY$Jf4*IOSikQh1r}S%pQ8R*3;GO{gGEE&TiSXEoVo1vekweI(O{$O*a4BW8q|KGkh zv&Q^954D9<=|bKzzxmnYB92E9SYCO_&vFykO5GE)AiMXp6be z9;>g&WU8Db#u`*myl1{_|FgH|uL4uVC*0iEe0J%%^slBrqrS;(C|GRRp_dJSN zH!rki{jvRbAMVQ)DEiIv{P)_-?Cpjz@rQ$}4^^pF3i1 zZa{mVCw(z{&p=B1DB{7e0tSUZH%>6@wao>qk&m0n2*sn`y+^gWd`cL_f3Y*lYZ9#in z5AS|`5VS2fjh(%`{lX^o*~~w`s??ZV|M@3kvRrd_DzjdpL0rks_h>6T!KZs@tg`n1 z@~^sVng4q;E0oVT$0^|{aP zi$5*i&FJdzW6!EJUN4IM>d$XK|MQ>C^Ut;i4*FhwvEN5t?(TtGZ;E&SOn&OPf9`@a z+b!k_cpXr#F{oUV?PL7%{)^o{pUkEi&ig2_KeuY@vD2k%6Qn1#HN9f~epz7Sf!Bv6 zCLc||`LUsvWq#_b8GkM8fA=k(`**>;*DKok%69!WeWCpBy6E21pDb#vUQM(qG41Iu zmY(_kv1GM$WP4x9e!o!Lh`YJh*8jg3zN{e;;zSlG6F z4h`RE_x@$Sm6ZMR+&G)p&ikI-xqJ3lXnD`)h`JrWbte=xTwbbmi|docwuO_PE@l7m zz@%pKCMyP+rNFS^-Ep9DQp*tA2GNWpA!t7Z&q{WYPjtC$F8f~J&*Y;-~Im4 z?JqtI|3B6jrQPi|QL8zVZ}jiky{i4m^<}e<9lI|$PvY?Y-@i?Dem}Ol_qRxV{+hqV zQvS6E-v6_k|G~c9{`=>dGggZ{Tdw08T`Cytr?_r8^NW91m_8>(3NG}?IAEn>IZ<7E z)k}-QY2Ka_SLmFrxjfw^?^Me2*T>Jy-!76HD!Xh>P{gA}Po1Rq9y|NzN#nlkS1Xks zbzYria8p6YwkyG{Jw)=@ts^s&#b$_~{q?5ei}$)q6E3^?IvQ_Wp3D)ZoguQ|vrOpw zzmliV`2wO7O$Xf{g)pS&36 z@Bcz;n_9)8IZ{DM7vjE&vYc$(D(bY!bVuH{M;x-UW%s4uo?;QY;@#ODn7FcL{--(L zFV=7EU9lqK+5H_S#IG;*=qxB$`$Van&8=N+mTyQDuhv(lAiiUlrd&NDUj4emdcRa| z28UGD3k{v8JttjXr^=t5oOpfxpkk6J^N~-6;6MS9*iSuY0qv z?>n`^ysW~0-TJrbzic0VwkdaC_*0)Z=A>rZa#5?cC##R0&;P2By8CWP*Qe8dGtw0n z{8YMnc0r`X@vi5k5{pawt z_W1pL^D`a4b-qqLDY>D};NPcT?>i!XPtW*&`ow+n$#(_+z25fmQy4qbi^+=vu5Nwc z)@pdP*!Euii`%``J-e>%uYY`BE~{SgNW_#57qRo%k4`ObeR6xz#mi^6rX@TKIxo#U z_wY8i`EySOi*xNXOKLh3zB}#3f=fsCz5ZCX-Hyp7UvSBKwOj77bH8_`8~a;I`&I#M|KQS-5&Z%fP)FWk!9eTTPe;+3yfchvtpUv6jH ztFv@^_~s~!;2T{ZFLads*^t-Y^zWyJ$$Ya1F0F=<_KT+-DKxo$aart9Yi--wW6R?@ zmsxG^l>UFgwfqHlPOMxHlgsnm!!JHozO|1+xQ*6wkj-rg-IB}SGP%p2z4X+$_o&kP{PFkSE!JIqu*K3*+Ul9hy47D*_WyV()))8g;FN8x zzS6UH1c#qkt>3#fqn6>}%b9EZJ6-l`%(-z_y3*^e-(_F%7PU!}*Do)d7;?tX6BT-?+$S=|(%x*OAAUuM>}L>7TIm@Va>8cOT!Gdqhgu z{z&=r;FdGXV)>l2?2_#^sdg8${}k?3uUS%E7h-kWn3v_|tsOz>uI4E!x8LWRKHPM- z_3D*(k@;KqGY21a-M3&Hk_(Ubb9TV*1=nTXgz3KK!nA{(LuF_QQr= zA62c%&QDiI$h`WQ7raF^Je4Nry6IPy!xX8+OUYU^U&Ic_zWCGNkxns@t` z1>bMJSa2oyba|Y*(4(*4eIL9(_EEa0{koL^M~Byu1q@w{J623wx{d3vbM62BANDnG z-skqZDIQ@CaGz9IX3Xg(TCQha@O0DE1v6B()z5fVE7^BI1?pRul~ zt%F3N;rG|7s)vH(zh1jq{QTWyFY{=F+FLH$g^qptb9m20xmU?euI@=M6XX2&n$L-? zi+$&q>Z9zkH`$Ca!G9vHR{4bt3aq z8)_5Q)Xmvndps-M|3XK$@&)%;!%)?}{l&9S+?f6S*M;c0udLVqy;fU(oY~5^re=|} zZ_E1cA8Y0B3w~6%ezjTh9^Y%(^7u3N|5}&rPTF+Ide2>pZ+~Abe*48^XW{C@5g)fS zFFO^zV~uXit1Fw86e}V^4zIKqYhZe%xYl;-{MSCRJz;MTT{E|d+rHkau4y%|kCvqI z+{(HSf4|>9-;;19?*i&wm{yIIMEDl^gJ^X{4~k^k1>vn#!T_kpwe z`}TNAgUclcog%z?)N`I6&^>1p-Ld+|kB-`dQ8T^&eJ#1CIeQo1iIhs2buVuo`fz;z z)7|g)J^sEh*tF{LB3tvx&83s2*JUo7oL%+m%#l5EoB3p3JUU~XpA@yD`Lg^`8?n@H zK4+fa^!ikl4(9?B*PN`=)*0vb}R|=SWu1_6aKUnQQoY z*ZP@%c4W=_wP{96#@ch)#@Bs?@~iXilumhF zWq6Y{QKaT&=Yhv7?z)$y3aPJ}zDO!^{#Vn_Wih7R`*qYjcgEj;<$Le-kCQ6bzg&^L zb?)=?-|zR&zfidRDQ|*eivYj=0SW&ZKb59O$u@Lb_rASRvo|sI^)Wkrp0&HgyCa=v zl-VSP-6`2$-t|e!ST82R_j$&v{l8VNE?~5_-6|@h*|;O;aL=m;pyNgl{xJ=;JZ^aN zzyu-9)NKMzXVPlVPFenR(){Xaul}}9i7j(J5tQ`&1ao2W^d>Izvf0mLFFlyyawu=! z(p}fOxHrVFe|n}mc14m9r*Zs~?$>1p{Hi?_-Tm*(n&K+WR3j5DI=SWGpX^mxYj+e} z2oCm~y=h7dN9vJ(`?d#fd6@C**3N4$4_qzpZd;W%M<~_h49n)7b8Tmz_dUaTYLQFW zne0V-4)uK$txuj_w#(=3kEodZHOandvQM{d{p7k<@_57CZ(UitwqA7U%{csX)#K%# zc@qpj`<$0L;KZRQH&1Wgnm=WId#0RJ-6~caVjv~&zk25xu{+$019@+}e0N>Yd|rg; zE7m1bmIZDrHrE&5;h3G^dU0EIqD$;r^-9yVj7p0l3#;T;^B8At)mCf~P~Le)*Tm%3 z1-rd7*Gx4kQEm~~9F<^Ecrr2MYRnUEaTZD88&P}8PF-&i4)%2~+12>Ddi#dUVJ;W7 zKj!Fe3fN{oeR}z>K;0g-r5bXs;^(d{lIweW=a7{&%h5GS)tNj}#m7}t6z{#>$jp?O zy>jX%+j(0ulpdYQV zbr%F@uUr1iMa5H)>&Gl5)9oKV&a0Yd74I?WJo~dhGTB0}HKv;J_{J*Utj^uB)h$jZ z-uuLf-V(c4KiGeJ8G3tiywFryf6~56Xi`F!hn>Id$=53tf7+C$#dfTh^ji0FrE;aM zsmlE2eNVn#neeM1%Y);^O6An!S0-dvy*goPYr4d4j#ZJbKkv!saFs0$Vn|oGb0~r? zcz-zE2Yin^io_8eMes#nN1TgFuLMn+acbt@n-(hje17C%HeW3|8F{c za_BhuWRb1;+|r3VugqRFtJz27R3v}0eGSKXvzyH0G+kTSDNUYeLMdOsqhMRmPWRQl3| zOD4TKe>gLfGiYJdZ?40*!$M%d@v){G+NZbF(QuTbE zOiq1{TD`xmZU4aqeF9D$59Q8(s!7`t{Qmn<^P*LyFU)UeMi_@ir`s?vC@^@sIELJC zkN<4?&Hdw3=4b3S>DpgczWigeUG}=Z9*jb-DH@|A#@A=EaE@>72uj{>=zcFaLT5ovK?e_bRYtKI6 zmt_9($9wscd+!bJ{WaTE{Q7yxS4QTyQ~s40r&}#quHPbX_{5BtJ*vV7lHNs1oc;79 zs-4H5_r^;zX2s4F*(l#P@sS3hS3bJ-vVJ#N z8p^T%%vYJyKW8nFZMVGpPjI=t&!N~rkI1*ml4Z49oED$d@H#GGahLPs!I;w%*JSP6 zDcNIa*|0a0avV&uB!`eSNS2R8f3F=&D|1>z!%K2Urcrxy09L0uvRVHIVFBa>(@5f z=NI1Q&w1?8IJJde`^S>MDv^TWnzyYFpPu;AWL{nOPpxHs1!mVS8h%0jD1d$;*td_b;<%bn@A{AT|5sjlB#@*Ut?; zFZ005Q+4ghoi40Rf4x*wt6#s|u=AqJk%@u31e2dLnmsKsu8)-1+Z!e}-}c-yjnrNK z&K!nIWlBP}K6E=>bJVRol>6IrVa{VdUpMC$EtP+<|3vo0{ZBogmfvB^&`!L(`E}*@ z(^FR*3*7eS?=uC4HKogM?A_dX`)`z(e9dIp^RI2{%|ipi5*FQNo7K8;iAb*6#RUof zb^71zwUsz+pLD$_1(;WttNqY zZ1a3vbN`;-*0X(!A79@yjdl0FQ!eY-u1`IjBJLLS;c3b^b4%$A6b!bqs%c!bIi5 zM6)vMQm@sXtaFxCRk0o73~&BhWV@YFlt-H7%l&s>W7+#oH80BW`5)o*eM52I!s`Ep z=W1^C3X9%K&Au76W!8jewTo{(+izPcom{EKu37f);cAK|*)Y+CMm-g)7viuUJUE(^c7d5=Z^Sy_m3!9bf zr?EIQFtkm57*Nn1x5(ygkzvpNy6)}-kpn@O9o}D-u6*|_QqR=7!%HIGudm$RRow58 zcGbD*cNR@&y?6O$;K9}Zeg*9NW%OhH`{mQ7s_CaDS1kDcN$<_OIN=w&f3JSLBwYW< zW1nL_=|+{z5ocl>6IE0)4qQEFZXVn0UwZwbp}?_EPclsA@=ker<@4PK&&s8AGm@1! zXPf`#Vp2RJ@hfWQ6^>QQFQ4?_YdTjIb%x>Kk+*TKGnmd8PYRlHZdMb^76wJml&41p zOwMgeJvjgWfzSW1%eJVyEYiy5e8S6hdeS%UYBjEYm1$l*FZsId{?<8PSXUgowe!B`iN5VWuI6iNc)VPi zmOeKN=1Rm|d)C%(6xMSx`*t$N{->3%f6M6REG$2% z6&EAlws~z|GV5ClD=o{Q8*RC95~nABy|MoLJ^Kaszb*W3bT2+C_WItX56h4AUG=NI zB58f-4-50Ge_}p!^$z%X`||7bsOH@Jn|mzp`>z$ud!IT!l=rkU`7%=)=bZru|(c|oPZbsxlxZiYvsh}-@)@8@{rp6B&H_>}R^__=Hox3ABV z=Tf4Jf4tsa@#%xuvMB4eDG@?JO)uBUJimQK_~!XrtuOb=nHWCgk4gLW=Jb!%@0ZUw z?0)mbhroMxbtkD`Dwp?{RX_6Nv)rotag)s#<=u2Y{h&2>e~@S0oagV?ud(!;yoTZ7 z{GOTTGK?5?o|&Z1dmfqmn;|0W^^RVy#|v{)p5&`(M>5al{j>dG+?~nn-IjkYnhA;f zW>0DrxP0JVggd)dkLJXdr7prQ{L_8H6dER^UOW@d{8>z3?9Jt?2_zio7?o%$&~KI!o0qam}`Jm$_^c6GCb5<|d+OO`dHq+xh7@Ic6dn6dr7bOYxg>M;Yf1aQ1GAnU)OeM! z=<~LXcA5!Qhq+!(`}FJPS)Kk3#cv}xs~^Qb5|7S)IjiOOtpbDTXMYz**l$_$V~wb~ z)U@f(HvJ6Hi}dfeT&mwPqfsXJ>z9^wN~Q;cmw|@U@6{IT8+5JN{5wKel;KstqOey5 zWqi{*>`p}(n&s#AC)P}R?vSAr=~}rbaEjZdK9e4<9r^#bW5uIhx*iT*`uoP7dgIx_ z@BBah$h!W={_ni=?$bXeFS(j6^-p}3;jNXyc4tHd`wQo(^K3bMt7)b1JfBXd;`|Tw zHD4EB|MPJo`>oW&=VvndJH$=3;;21k#y7XN`?|67J6jg>O}Tcnx~;|6B`J5bT#7N1 zKb8EuO4)7gWP6^xi?I<+Cl?(mFz63C{5OX0^!e1!|6?UTG^UlRG_$4o_Go0Z{(J|+8qm>ag{ zJ?Xv6|Ihm8tJ6Q$zF$7$cJ|E`ho3Fpvs?OBjZ*FRk5>wve5~@n^66FOTU_{;Bd@+L zwBT11>+mN8i!+A>cs{eqKj!ous%zU+GM(VzXZ)SkcQ`Qo+m%XGc2 zJ=QUpbHq7+QpE|!{+BZ8MV~FgV$PKP7ynZ5ilK=~_6FO5%y&m?H+O|AuYOm*uJ^F5 z(Tvy(C2Ozhl~!d9Z)7g0?{{#kQXWm?d?Ob4cLo>8)U}c64d|W%!ku_jpH?|EF8a)Xs0cwxgA8y0E$Ko-FU>4;CLW+@*f- zNZ5SUvIBnECmBx_?Rz%2|IyMl-;TQPPYrKso3~2rj$t$hHw#m82lv`#?>5cdG3DT$ z5T}Zdr;{eN#rEs%I<|Ly^R%_MSIk=e-RF$ovDvGfe;L)i{;m0JZ_XKq*NgXTt`D=% z`Tz0DUG<>joF6Y7k?zsyH2JdYdk33?m-c^i zI_8sZHIqTCI6U5bnVY)CMV+`G$xK`3`OQ$&pFTz7{D+Owq6f?GJ-_s2SqO*W+%vjY zwlZ40+>x;8@w@xFUrp{r_`W)Eus3mvr)D&hQ!@km_FO%V&=-3%nL}7IO%swo%-B5h zeGSjY+5ZnoXTSAab=EUw?=J+@7)6>hdayZG!+^%G@A1l3EoMg0Uk;fVSM}Cj<^kV<3|JyIF z_J7~EJL-JzzU*{($Ezq8EtM`ycStAb?2TmsXrIoC4Zlm z4N|a?sef9@otwT(WB-M2L;e2P({Do7YA)sd(H+2>u>ANl&B=GatMS!r&#wDp@Bi^C z^O6fek#9_SjeBpi{hAVCBJMLqoaxwEiLH4)&f7lTe)m?BJM9auZ7|B+aXZE!OFtN?jyjddXTW2V*a$xHn zo4%Q2B-vNhi4((n`MPs*AJ!Cetp2p@|4V<>Ebje(v}P$wTY1>d?n*wNCv}Ox ze`nc(*KWqw&pbS$%gVv#Ri$_$JMw6Mj>}H!k}T zdB0{sHPdg_gfo5Zyy=;z@4c&@caIz?^7Swr`&gX|MaeZjolujpQUpI z_>bi8eZ1i0wbOIEnE&iK&}Dt)K=IGp5nELlwmft>x4YwH%Fzi67A;;T+cWd>x3Ygd z>dDKD=e0D575n8swzRufKWF>@j|}0z9-fq4DZ!)&np`iuT=+<5x?T36l1CQD`L=&< zzxh|7Lm-JKEZBBCqjTWVzZa6_-4-8mb3VKF;#`}pO>T@<=L5gSY0qlciw4izd+RTo zP;yqZP@A}6 zcKXV7Ut3Z(LqjEl%%KJk+^`IUc6{V-WjUfEl(z4Lc=O9_ zea$B?I-@V&xDY;L|D}dwsfV|`WLWxJ+j4U7DOKqWFWz_jI6t{IUi(bEWNTZTPqp^S z)oYdj|DWkkPU1Lpa;k6ZoLlu>!KT})-M`#iSGmCb zOYDxb_bxqH$|rHrZ*E^f+p3O=q^%wi9@fLwM zmj$!e+TDu(=cLvzD|R!eR51Gtx6ZtOKjZnM&A(M9W?bDHab{L^zTD6I%R5)iRnOe< zkV&Q_He;c=3D?{&nR`B6&o7K$zqmKzTV1ui%MbPVwa+~_cP^9O*Z*?HgSxIn(QNUu zfZBuKg*8q^)N088x%NGH&Gqb?Ka~Idm3TVWd~)=0&W{E)*R5|&`O#gvya-Dx#T^}NaoOV^_(}sZdb)NG2NqKGftnLn7JqF!ofeO z->+ZZz5Vy3vpK%og1^4;Uh}&>=G?}vHE&oob}h}(^*t0h>GbJ|GxyXgw)FG|sf*q7 z7e9Y(k;bm_yu{ciVyCPY-;5J6UMp(~pBmkn=i3{$#n3ZH-(Tg4;GOGUklEMLSwDWb zn9t%kd&8PjF-`%|GjYu;Y7W-ftUk zt>mAj$nU&X{ozZ60|&ZhTy)I;yS2LZ^JI1&`{xJV*le2Q{9>hrYh)t#su?QVp1T`v zI`$=8T)Qo#Ot$Cg$$w%#;OYVAZ!h>##J_BdZqBU>N9OKwimP2&XArSOUFVbf{drHmF3CGpCGOD!CU3{0l_SVK<0sDTe ze7`)Zqkog(4fo3D+dZaz3^io_vA&#%!~c9rt(VF#*M~>m-8&Kds%%!?E}MxaTslXl z&Ib)oY_h-YS?Z^IZR7qTzDb6ck00dU_y6B-d*5=UXHB=PgFeaPq^pxZ9+10g`u5d|CtG!_qxau(+p%XUgU3(9P!+^H#htzL5`V4BJkG1V z%GF9FW=r1LCoi5V%=_)Dxw3nis%3xA6xrZpo9kN+e-XQ>{;2Z%o^;=v3*Vam?R}VQ zS^d^7Zmo~h-WK=Qo^fXjCl}^@o)GZ)<(z*STy9&~W3P9g)ZXAbCI8 zoy(TDJ^6e^GCc10igF3qH0yFd$sI>$rgImH%BwG4Kf$-vyYl(zgTI!&*ZNr~?)hWY zgdLVYw)DkZ4o=UoK0p8c{{MAO$ETV%vaCMyVp+1JGEq)y#L*ZS$csNjwE}lL4xea3=wCm{W&wi_!@He=NpseGee>^R z^cFs!a;Fx7;@;JZC&eF;UG9Bqe&orkfhW(M=#^Qy_4l1)iMNjLI$`q3w@=e&ra+RP z#I0jfzrACgy=_<2uWL>m9}lE3MV!&CjlJ^p*~iZ(Os=^u`*><|`^tTfb_>6{>L8vj zbou7rd6Lt=YPr|#ny9>tQ_h(~@kmDP*(dJHHYR3kE4TlPk)8U-#;7-biqFT%I?t*; zJ-)YSWxkU2&KH&+?e1roe|oq5=$a^&Y2S-}{=60@Q@eJ`5zphLdK=>{Pv7o*xu)AE z`L6$GjkRy2N^7|lk7zKbNqu|&__@7ja%_r~ef`Qw({_F`c+PxvZ<1RuyWj#|x5e|` zwQwlPneV%OiEmd{R^}}2(#La5cjfE02qgUhc}6kpmD!$?$4hMmgin7`QFb)H{X^;X zfg@~>u3CvLR}tE-BB2`KpHpO0$ZguMbJdB%@cIsE`{lVe7Od}{H*575KldcqG}gwu zZ^X1!En}L|0LfBU=ixCO@w;yaTFUj4vAQHM#Qj!JKr3r-yCA zB-^IV*Sl4`y>QD#&feP3+6gJ>9mv-ssZ9_ZFa1z;{kIkJ{7IS6$keUUb}>*!fXj zJJVpjYU#vJ9j7^2!`)fe^IeOrGTpIGMs4?n;PTc7i)nj-Ke}`F`o{g-W-i z7r)-};Mm8j*Ax9;7Z}~RzVY7r>cv+cWc;18=}z&MNSoT}UtOg;qg86BAMbo!WjNbx z%Yw7ket}gJuG?)$eDTdZ%koEmXi0W*K@tGB9wn*~axxA`I^~uVdY%yWh?^;*ih}zYACG}v!x~Cptva-yHI{tlb zmv1^m`q|#+eOJHyVw0KLB-ZV#ETV2Wy`L1iXNMh6dbI3uu3Lq_f9AQr^*m+wR_#T) z^vP2^i??r_wYW9b!fKV}rtOWlKlkYP^BumM_UOjB)pu$?zCBmU{?PMc#>S7nj;e2! z=lv*;t-qfgC9`&_%<2~l!n0F;3W-je?OgV$aNgtCz=#e*&l`3h1DGP_$h9qf^=fa? z$%{WMb3Z@w^f&( zS;O-w(O>TATK|2s+*|X>ki3|E7X{ z8&X{?;#*HVdc0?!&*49N9`6aC+flYA_}zBlDL=)Qr+zBG7ASUXbHv?4Gi|?anQfb| z{$k#JC%<1zA|Pkvs6Bb$Y4_usie&dJ&D*zo4&VRE3tFu|>G;ch|4p@#{POuLj?AlT z;NNHKcWqJFDz9Dda=rIYo*HnZSuEBVg$9j>_$cks2R?VOt- zzUN~qgsY|%{d~cEzx&H2q*& z%ephlL_Qzfe%v!uuP7%&)^hrfSF?L=oVlBSaPF37;rsJa@;CL)no~Tlta<;o&h=%7 zXZ(D>H{W()S)YK@nL;B*oo77d`_sF^I71E|(9OD*r)YiebH4vc-70L8H}hUVCvWEU z`Khed=r`}W}&4)AjVV78f_{F`0h0z360BRB66= zcmL;{sgenXkt#X!D?C=sm@1L0=3~zAW=m+9@FYq13wPafnHHb0+TCv&$hd${HEStf z`ts!)%C=m+EWE4h%G8A{EUyff9Jw>U;p^u6w%68cYQIP<4BT~{(S54fEYp+R90Baf z9v2pGij=oA*=jaPlyf1=i6`&h2uqxNcK=Os>o2XR=l30HOYdH37Fo#H_pEA{b9}#1NzgmjsYM~O1EZH^{*}TnP|2bzy*>)>4 zF|gL2iaK=0cgt+Wib$o;XL+~GI(YG$={DC+2{*gD_K`0o&ey89NaP)0^kUG8|9VJd zig4Y^&=qWR?(EDwDk$Oi>gMA&UUE7vZPzj%uU!9rnYJq1+UcK5P2!h0|7KdL?HtIV zU{kBy9UE@wdE)%>DYLEZejTWnxU*>Y2A0XLtq&9ARmOaUgngyH40M9) zQn0w~S1%J2v%+*fyObxJ^No_MrmMq{Woh<^4$jM=f3I>mg%N*>)*e9`r!V52S2;@ z2)(!&e=)1TY@ffUqv5uHA5Arz!k>L8N>-E)nYv*)R|t3VNsY4(*=0;t^LRoST2I{F z-O2K1{#Abe-HVv+^yEDK<#k&Am+kSZps9rKY{4-WHFK7)m6x#mp`B(@zwqalI;UT~ zPxO5*RUCfvi|e*|*om0>g;hsmo*rAvmwfax-zly9jcU7Rd(W*3Q(|x%z zCmDX$*BA?K=j>Q)BX61Ocj48CT}Hd-|FwBz@@CDENfSBf9!L-rBAtq!9kWmkNq8E+m^@eb#|WL zmrsAcH{9=s@T?Pkm*Q6S$tqa0e>tf?Vd8v?UGHQ!@8eU==viMhYwilC((l`YvoD-4 zzMLqX>~5HBS@We)cG-Gc=`YMX3Qx=I7htN{wzOQ8=l+@e+K0+2lP}-t{+%Ye-Yx9z z|HWo`e*0`+eYs^0UTxKH&8XVbyPr#b-()L^wYOT=o@ZTHcS~*GE#AqK{tIV3=TJN% zqms|iZRsp5=qXUJdzq*;m!kKgh&@l12^vKr7Z_f6+7H{tSbm;%V`K?(D z?Aw3GG;n*reIBzW=j(5?j}@0biAS9;eE+34$4ryuhsAl(O?JoL7|)wf_wSHOulkvH z5sAM)2pe6GUlC_`oOOYJfBR|ionfKvrfH_f4*Zt249`||_uCQqG0|}U8vUgS?i}Uz zS2LOqq#eDzWzGJ-3~T1gE`OD#6a869^7xncEh`GnpKNT|c`mAY(xvb3+ERHP=1=f) z>uT$pB^MIKn>YLKzpYjYOIKg*O7406rIGi>#;>eA`x2KcYel;IUv=I0f=4ay<_q-$ z$9BaZ%ih$dd?aR(PLIp&>%P}7c%IuA<|Xub#lDXm?^h>2ZJEDoHFVa({%HI4qR5)X zlO_o-j+d6(yzkxi>b2|JFSTS9@UOkjKIhAq)fYUM%sd{}&~NwQZuyN+Lr$G*PTwDL z%~J82Do{LY|F$nDe!X;j#XU8w`P7WVod=gT*k#(ER_84)j+E=YzK>I7j{KSF^>zm~ zsk^-~NjQFO`2yaMKihq4wn(e|ZxwiSaWZFuVY)_}%C#d5xyvhbx6TOu-Cu07ol||m zrBxTy)jz4^S^3R*dMVv^hM&yy8xPC=8RVE8ZN2>lHaffbFzbV7`cBRl7-U%DKm$|>?6-%p;tXsLLxpJw_uk8Cz9zUqcAgBA|ERkwGV@%yu9za}%+eD!t9 zd5*C{`J&m!t9ciGoT;~tT~>C?+DfZM;E*|J)>=Teb7}j+54Gp6Z!1{J8xm#PZG3%` zovp}~g>SUVgTexiZ}qQskalybt!8SSZ+`}|yykghm9c!w2F}Z@97bvz z_nOQ*aBNrMoc>e(QI~Gc%UrtV(2?WnUnG=GE|~4Oz36J(`CzqsX*(Ax{%!kG|EJB< z$foATzKbt+$QxbHUlFH>SaaO`@D01B_ob5&VNN%VX9^@K=pAg>wpmi}!_ zqU|3)B~%ohwfOdW?cX_lb<(n#`iW9^;(l*Fyl1klZjw<=rr%SJnwWEkpQUO2Hm z?-`4#*4(B?S?8wgIk`+mUBKnWd9%&hw=ciD5q0J8#<|fE>CFpfgy!h?Dn`gY`fN3~ zVCHI#2<>kh6;HQWA34#z)U)NzUmcUK9j&1;QDU#R@;-Q9H`BxF&%O1+w(^S4dKeaU ze^0z$+_m^)s72tyUeA=*?wKts8a;Q}Gu{UkAKsChX0APXbWY_r)xMn}8PnIQYF9IA z6(9cK+#eeMe0%Yer9OHqx4u~1wD)>1Xq0B}|d+XCXsC(ZiuIK|~;%YK34iTAge2+YlU@aLZHn=PV&UrsS!5eJQ} zM{3-Debarb!K^8ZDxRfuF7Ez*%UtqiTzKZ;3s*!Z?Y-U>o&DtKr>*nKn&(@^KVN)z z0gK*;dH-ObMcHGarRl0 z&IhNj*;7^;@*!&4?6vWgPEUHGm@Q79yS9E?<)P{k!oz)2hQh zzfY_K?HK7~Vdg0b{N-cFxb%4C#P5}+$9<3OJPVtr^?LrrJ#dF_{={0PdFAJi3-jz~ ztBb$?_i^<#hJEw-u76G1^t~k@V7}Xgm%5w07gat#J@v&qx#Z@#YuZ-EGDoa?xib03 z744VH-Z2RZ#lOHzO z{qZrH{JC=5#69z*E(gk28JAgptk_*`+Z=Pbf7TS)U}w+MgRq^6iN-@eZIE7!*b zY`ZKbSIudY){`(Oe(S=Wm)!HbS5xtbg7`J<`JY>L+ge zJlpCes_plFvcW2dQ6NJ%PXMi%Ka#B7@IjWnBLDac{}_hGs%vw;30?A^e&S)h-=6v@ zs;h5??yvgdcxB-cQE}n$H-B%Jg2yepr}MYT+@Ekxzg>rYxz5R_dw(g;=Cf>D{Z(cC zwv_>u|E&~{c{{6=ArxHribI(xuCnojpA{*YE%Lt3=%u6jd;jBSkpKVV_@A5eJ+EXa9y6MJZ`yp$%*scd>Kkt6T%OAV@(4nIM`Zq) zn|J>Gt1GdZ>+=saM4dPkkMNkUGi|8wel_KEJ={>D;{{SO3-R5>`coe40iia|F~} z-=mXPZ#q%dZon^kQ9t$b_Rs&SP}QzzuVMaSofZG9|Ic#s|DBB|J^KZm&KUjOB2zur zcK)B!&MmL!^dz52dRPB+{`vWjKFqsb`S&Xbn^!JhH0}Sz|10(tsQs4i_@k<^K(H8oF~==d=*j?02zFv!32|$;_LQaWeL@^fJ}()LkXani=s{f}Cm_-*<4` zo{_e1`it)OPrfy^h+57J{Gf7q#<8&Pf0-wL&`ywM_WM@l@n_F7MxmcKbCu=P!T7@j~D2|J42e&#jNx{{D|^ z(3WY7C)xl1Q>+)W<3KC7_>VuI&zG{86sqm=yI8ZYeQA5_F^SB~Wj_x$?0a)A(on7D z?v}mv^McQwWP1DEzi{8u-g!Eq8Ha1Hzxbf4k!f?t`u)Ds*6yzg{O&E;TC1}4eDjL_ zY0tjzuoHZ~@wKkisjuH>Rj#jXS-C~I=h5z}uJ7yYU%Jj*o+|S);{Vs#v4(Ez%`X4h zm;dlqfB(gQf752^^XWwGPyD5C_WAEN_wOcmiYEq#*Sd5X{(7i+uDms9*Zq&3ujk}T zDo$HEaf$w^i2tE}rsl<_6JBeZ%#C==vd--Co;P>YxcBAm{4noKU0uYkW&fm#CqP1{ z!zMRrqeOFab4gj5-p{*VUtgD$k$G~y{@>?Wzbm`?8vZq%uc|*EyJxm+hsUvZ_xGQl zsvW+g_O}^B__~;fA08ggxxFpd`Pcsk&HOWF&Wzl6ey7CQG~@e!-<6xI=v6u$J?9)-&ahxHt4=|w{)B?-!B5K)ST^kVXyMD#o~$X#d1zl< zQyBkOJ!PHmT@elIruBc={mOFFdJ*ZsW0$)wwk$rn;F3vPYXn_b5eAP}tx4{; zocdc<-9$#AsoIup>#mH3ciYO^lFD>u3p>7=w=V49=l{7=Ju9}aO#3;F+A z)bq9c;??)*MQl9RnD$)#8Z!NsfzZ+K|0>z`_+C-{_2R`>VMCFRlTMzm-_7^w-M&Na z@mj~3w#>~{jrq%WTq}qF_S<*gi__T*o^C!J?d{xa{ZsW{QSS7Q*LIsSNC*km#Oi+G zWu3|9W9_vfZ^iS}cEi>k>5?4ASMK@VUu%6P;Xu@b)bsnIx^!3e@4X+}Z+^*t|9`&A zolhT~m}c>CUszsG^v%E51hZm3-!6Zk6;pA3+Wg&YF~_bxvvpKDx5t08gfMgNmY-|i z*u6M-OzV+i8=KnAz?Z2vmuDV3_98DcS!Mq`;v#nq|3g1Lx|^9k2HCPPrxb^?N}aPo+qRY*PKxoTK?qzi#_gv)rsNQhWVr1Ka2N z54Eihb>4D!Jy!8ROFcUA|4!!}y_)OJ{t!_%w|XJRWi*$_;<-yse4huJ6q@Al`}&=9hUKK zY_F-3+Cy8Y$dwJ&aPB)Z$WuReRnqB?hK z?1|0UMJHy?oijhr&sYE2nUu$ylivPJ)U8}6=KS8(Zr9cdU(-nyKJxQU+Wlgld`5*Q zqC7M(KHOo&cI}(%8}~5j^Zw2%j264M`%B#SCC`inA>gDbFE1|xfA@j<2d{oXyvZ-)Of#p?de>t1^?u&|lm&WEn!jl6mJ2cH~!i~FvOw;76wwvKbT6%IZ*Yi6~^ zHRNqQcl*t@M4dDL-^!-ggmqX)vUm3K3V2vdW}RcPaGuyY-YAXx)h%w*J7-?d-E}*< z(!Od!GH>gdeL0!8f4a?JN&9n`=l#0p2X?ncBssF(ivGFdtk=U%sW+NOd5yPMafZBK zyz*M7rI}m(Z}*y#s|PMBo8IVM*|)d*<1c5K+s_Zk@ITJp?UNoIZ`7A_uS=kLAIGvu z%^^!e&PL|F3!3}gebGL%bzcw7Q}*4H67IGNGeo#-=Dk zBjz>R?uE^IUvhlotz9u+#g>@KADOx1qEq|%WAFaDuPl(5!S&_hO*5aCMIqLnv9n%Z z&)D|p%auoK%M(nGbAH=;>DEP0$A^kux|%)b;|_PqUpZ6iw_|^+_g}M9+-KM9+b4E3 zy*M~!Z{z#0j*5lc$u*N69^m4Kfkl+R7u-hKMypI_IkTmHZM{4+U+ z^vcdzQu@~AImeT3Hg5lCI>+b1{9j6Y>*9W>->bW7y4(9kkk8+Z*DKz=)8Fwga@O09 zClj7_?Z3S(H~IFqTp7EX8K4_(Zg0=OeCg7mzrVj(3n$<{?kirazl^@aKo; zCb9=BuODgt!t3{FP4>>kW}P7I&t;S*@K=wL|>>p7vb5yx$MS zkNuqbX07J2M8o8byH~Ed*{W#dr!lSS&Xe%K@R!H(43jsC2j30wyZ1z(d0|CV?wgMm zY5RT5Z)vV9vF}ozou=gD)4cb^MLo?&!ZG%y@BismoqIQFr+4zb=SLO=3P~6&`|{k^ zkm+xo(7RJl-mR;Ar1)!H+~V(kcA;PO*Txui9J?1VK*nPL}aIDwIKMLVd`JUd-tv?sql*KMfUi!16_ww`EYWu77P4le9 zx_PHB@B1~W)T+($?$>O+BaaIoZ-_LQox9`o-Y3Fp5_8SjHTQjgw9xKWmGYD~tLN*= zEw7DVGiBH38GJuF89sW-FTQO3LF`7s6w%4%mM#fg9ql_zryYojve>=ZR=P6ppo7ur zHUYvGx&i+J8Q`yKLYfhxqozOVHG}&Er>&d$x+@d)}SsSi;zde1jPM0-Al#bl+D&F3@5k-7TT?hd=V#N@hXPCqX8?&E`lZ|oP(|N3F_wbwO| z_MbM1zVRtxmgc7l&AWAFJ5J30{(kNG+Gg1jp*_DDy0)*$6;PV}FU%Xq{cOedv%LgyR`P- z9^a!MRqD4cd8^WVcjt!`rpc1bfkK=Lvy$$V9d9!0xyJN{N2p8Xz??{F2_A`#^T#Io zvP}~!>fy_p)fX_aL-53`ZL*_B;A`>cU}n{PQJtHfXTB_NxwBid^WGD;+YIlPbsZO14T>r6UR$C6 zX6lvqe3!mmjNCUrzGeHKIYs^t-{?I#e&+O{ZQ&95#n*LazJJq`d~jFInRO3CZbcf% zZxop9eJtn5yKRTpUis}|JLAi>e4QtY*XJ|*cWIGe557uw(wqKSg)U45CgI%x;t5a``Coi}TErz$e?( zen(c%i&nT?vqx~#%+Kap%a9Nnm}UfRdaro^dg_nf9&$_@7tTzBYi02;JXd_zq)QZWq3Y3;BZmeeY#wCmO-MQTz_|E;Va|d zh?mDMSa~Q!xg31KQ0}98MKmQ~YQ&{)hc|>xbh@+JYhmx3l)oZQ8z<#6)hqbyxiVEJ zKyu>^*@zC|_;qDJckJ|Tzvy_hQFw>@u8g-ke6k29>6UYqZ_PvTj{d#ibjU%h^w_TE(Q zi|EGh^QARoU#4nqwY`3{NIW%JcAcJ}{|1#4K6(GE);=$}mVd?l_ESHld*(Olm3CGa zW;Jw+|GL~`dhAB88QaHC*CuVHK4g zzw^=f>xVAg8`};vvvcB&z&JUlF8 zUsrQ9cI)kJxsQK*d<^0pel+Vg=bHkH0t=bh+drGjhOzTGHw73p9!-k;ksP=4M55je z-%iaF7cvC?Kal-oBWkmTJ8G^4k1#Y|Xx103Od?@|nP^KKKjr!wC^CbPX$@w!oA5569xtVwO-FbgDCK@t*6mVvq z{A7A{xJ}-bjP(mX_6j9A=Wgk@c_wh->zwM%b02lF&GM63!ehU8pFxDo6MbX->}d}z z!eXXNY>-fx7_ozG(aU3bg%i&6EWGeXDR|C_A6Js&H>qW=xnEJyqVV(0y}vJB+^SHS z@onP9jSl8-o!!dJ-z7TM>Q4ThRQ90Ip&)}J{)m_7#XIxQNfcJxnc?Kj!|R`

    sBF zo-xzMO4m~{r#-uKvd;N;3$8xQHSxfu+il2VItM^>-X6N`F%gpWy z&w|I<@{;m${pdfr85s-Ktl^n|-aS74{;c1T-MfqFWyT$9z ze>tq3BO?0L@b5|eAGMpFN&kIgC2sv*FZazme~a&r71iFk?)-jp{f>%V(=(rEUwMCr zD<^gLX|{uMc0b?9U9A3osXlIchmOJi4|6^rjb}(^41N03C2!lMf4dD21qUuWq(bO z?@roT{bp`iY`ExQVAXnlqq*;w-bswPedBtoVE9+NJ=YZEO zy+-T$FPGTvZZ&%Ke{AEz1@id1ScE$x$txCt_`yfq1~vlgXdlr0*&Vw=6%@a?DMV zbIr$K{mX@Gw&-nqP%>+Vq->Jjo`{Twbq77FHqM+IGHvFL%hhumH)9Ej z%#x)YL9h2bn-h1ZP2sR(!8FUwQ=a!ke9|>|nQS7WD%LA>dgq)i7EgT7{LI`G9)I!^sQShTa%@+@YZIH{aP9YV0iuY9Lq0~%h$^-`F20CdvlZX@pBu#-Z}b&HCnUo zw@tg>{KqA4?|(=*EtYeRE6zUb?2)6bt`GL)*Ge|!-hbe8oWHX4_pbhclulnurJsgHn$y0f9|^pCBzl_Ou3zg4 zUnVm!S6bf*dG~qUzo_->uOIj-S?_c0tiAX?YnDaE%SF3i8#P~U(3~H8&pcyQsu&+44nWCMv4r}Y`>P~6|~YFDj<_3of|TCd(ezQ%K*x^wd9W65jn zPIY=!yS+Xg6yar8-m%kG$KvVD7e}Hq9!$I6c--{=-HqF9($}w9T(f6xzyAEE$(QxM z$yqyOu6w$K)y(+$@{^Aie(Y$x_s(utG<*909S0^H?^~qxO@76Zy$TDy{#tY6ht2j9 zU){g+7xjK+c@Asmos?cN_Bw_@8iGwr`N#&&l5l1f+X+&Ocyy8oxI>+5Z`Wz(L? z+4gRYDT#eJ{r%n}*L-_iQdH~zJeIdCeZ5db zf%uJ$vmUqntu5g>pK$kWY{ij}@s@kPyA;iZTe`+xw87QIMdi4p;f&-T)wf^to~e&} zA${fQjq6{YBnwXLMYL>Qzvt9s$X~wft@)LlG6^LmrA?YSOLv0QuV(s&o9^+ zlXH7p@A?|mrL#7kh~FCXtGN@yq*bg5>#v{Aum2q_)XBov-n_o<>uPDi=_iCUlai7) zJD>1e7|@YEzqV}iVFAbh2bipUWebYRSKkiY|MSfJ&#&wI)uej!Tzr&1O}V+R*82Xx zZ`%v4=FXOd4Kjn`=0vdWQlFVdQ&MBb@0Qb?6F#rGn literal 309535 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 Q7EliGboFyt=akR{0F3BfO8@`> literal 0 HcmV?d00001 diff --git a/docs/screenshots/calcms-import-playout-status.png b/docs/screenshots/calcms-import-playout-status.png new file mode 100644 index 0000000000000000000000000000000000000000..3225c5eaccec09ff4393302e933b4db8909c9c08 GIT binary patch literal 280269 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%0Au-4?T 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

    ELqZ%ef4 z8&m5^suu&KL-f}hRbEyxzMb}>e#`vM+v+cB_lOrCSn@LW(*MhKY;sZw_uaoKY8!36 zYPv^P-`4)6qn+C2Us>F5W2MeTs;`R^Xa6^!Il`|yte*RJ3vc$RL+`%?*RDHtWomHF zpQCQya_%|DuDyKg!lLz8j<2d+ZSg0&eWUC~!=I}>ubEtP(3kmt_OXSx-;?SiW*4C4 ze$!DwWmoV(3222%YFD7wgU@c7>n_}!s;&Fp=|j*uEZ zYRgR9ex~TrG~tl#A(H!R=OpJ_xb45zziPFIv`X5#`H3$+D(<=e)o4%hjF-HZ=Tuzg zY@3>Rtv=tjZ28=)YtqWj>Ri+64qJQF?Y!Hzo7)YmAM32$Cl>Kw=BEOUGLG|k{L%J% zryg9~{Kf8G_uUP}k9yT-+_Z2$owKk<^Tei}2u6_Q& z#mzf(#C5B?Z_ScoUdub}Mr1@QU=1p$t_nF5Rn;Ly|)b8B@n^Hh1D z9%iu1e|EdsEQJ?SC#Z0m3Mhxa)XQC(x+lo+l;@v&8nRsvYL*0_bK_j0{#RNxy3TNM z-@f+&_F;?e99%G`TlkZvhgZeR2Z7>WuV|=#@Z_5K^QCsc_uU&8OUH*8)v0(|Jw7k3 zUwH0l+)05iZ6``^t@JxDY@_QhTCd{zv8HVMYqk59TP~*Tu2JRm92RV@J8dN_{6WB@_L#tq= za$6TTAI9+XFbS@oAF<74>6*E63@@jc$zv>BJiT=7mY#5fE`2{UbEkmF%A0PQo)&?M zVG_qT9Xr9wb!2g*)`gqj=e|0A^7p0cl~Ku0m=+&dbaS(Ixx;B!j$_&_n^TYV1|I6Z zc|X)vcXD6qjq7h~?_T?x_vXc>f4?53>YTRv8vgg@{0(Qf_PQK8Zz;Z8-$`w{+MYWX zAFa!+sd^u?FM08iErN$W9@@!1Z}-{llN5zcKJuL^v3*sKxRAt3gNt`q^X}@q?gJ?f z-x@pb>fR@ZQ-vP>s9ck9Rbz>}-+znbmESJr{| z&;0V43u>Bly3U(B_tGv&@ffAYHir#vY|ocZZa*erZPaF>`Ec&HN58}64}a%>eDnFi zjn^7`dTi8^Wj9K!;@fz2#;aCiFkgN84Re{;M}yjS`r zwqo9=3lpR)MA(;QJ-YSw(XaYl^S)lITEo~qE9`LXnX|uaU%#we*1k`|FDE;fCtvE=w=KP;{p*rn6g%_0mwooD_xk3S*L-6P zOIY`w|Gw$e?yiHq%|8A9#ZOiimcvgSR%-gl&rI88*PAjqL&`Vp_2w%} zq~@8*vDGl=>`D~gym>RvTlqsDXEdj+J{fgCYRNJdwHtgl4Em(k#O=A9OGfN51giQez#rDlU0;iFEIbIvh)eT-rjBN-%n8!0Hv)5liXP#ZHFBa8jePy z&0dPWH>$-lriKl{$td_6s=!qB8vP_!zWaWd2aX!NH zqW8Yw-5#DTwUouq)Ino`Qf0CT?}hG_!Pi$d-dNNqwRh3u{-vGlAqTuQXM%}rs!;(ET?{VdgtViYCjI7 zE#3Wl*MysEWuJ%C_X;UrH0gQb`Qx^ge(1EfYYPvnEMg4tbP94_;>UIU(~(1+!C&2^ zeFZ+1#aS+_Xg)HTu_uU=cg2&(EPIPfb*C&b$X~X0Quo7f6_u0T87cR;Zn6H`4V{LB46%-y|*<+7;Nwtl_a_cgcJoZK@##LoA~d)KdQ9ce{JPEOK!k-ktkA;iP| zj|O-(X56Ah<*#N>Tf01J-imP5IcrNk?Q>AD@E5BsEAx8&;mw{a$10&?4879kn^I4U zt(n!jH#5DWK;rg<-hZWkf8>4msQvz*sM-BJlF8Q&TuWY@XtrUM*xEF1_xa4TQ<4w= z;+?@adD>dn{CNG>F|Q?x_%A+w{c!8V>qWjVq{?b?*=?O|zvR7GdNZr&cK-ciSIc91 zvoE-wKPI`rV_-nmBJ>#@M_PV&kZP{iDyj~~tB#$mG z0HyPF<@b-8ZjW!yUdz4GJ?U|;^v=)Cea-V8nZB>#E&ns!y5hC`-l@0m*ITczzW!R`6W_(l_np_@Iz91upTUNz zhS1w#8$WK9uKW@&|8yV!efRgP;(lHKQv5VGJgN9r#MVqv^Z&=ruDQQUZgXbb4kqE4 z0IR*+CBN+|UM=4&TYSD=UInzuGq68HKI)BD!w z&VAN9;T+q?>c$|}*vYR-TE6~N0I%l?HgQ(Niro}T*3MbA51gICNny2|ln5u?&c zfu|M*3m^K5N%sE;{A%;CK*}_Dk<`~9uU3xM$t0s;3vQ>v0 zrYYMoopj={oix)tu%xfF-q7l1;kB>V7tHCKq~`eX$*Xu>|B}v4Uzm?QWO^Df(d(MG zp`gN~6Tk!RNN88u&Ih+5V$??a--84~E zbvU)V$6qURk+Rjvps72yyBJ9*&C(9ORQB*YyXF#8x5Hc+Gnd|W-~RUflB%aRqNXkx zb+sXXT$lv3Gaj5SUmCpo%qfYBN>Oo3O@x$WBo$*kAHLt__oDmy<)W;2aeFNvat^TVp;jm$Hyl@g3W9<@9Y%k z*wv5T6mNRlms{Z_XLff(XYci#CqMo@{<8k%@te<&%rKf^W99iEmoX+!{BirSkL`bW z;_Z6gOtOr!?8=<=rXqp;Y?kon9({!)Za4?Zn zlsvofcXl1eW*W)^k%Bz*Lk0AG$cCweEt0v1V6_K*8(x$_vV z&;A*ty6215J=Z7FQIczyEo|e?sI-4tG9y66bH}7a&adK*=_V6hynBQ`JMX%EJFKI4 z<$gCy-xL<1qZ5P6%Ct_KELhWPAjG{uOQ4G-KuFZY;_Q9&1%{1$TkqDCbRThlzV7ay z==enw_!d1-j^=s%d3A%A#Vh5B`Toye9_3MupA@qsmf!g!$L!DP>khw&;df3s&1%%C zV)+04;-B~2l%}Sotc#C0rDt`L$L*u)rzt%KZeh=J%QJ{ViQWqN^(F z;3rR!(1RCBd6rtwy_G7aCYk%)abZeVg4)RpRa5g$o9D;*zAZoHeKq)&_MydzMfY@; zmTY+a&*j6ZC-45;*5Ae@K9^gZ<^7j8F*l#TIx6#=m!IF*z@Xvqvj;A3S*Fep`>_9J z|L*%|H``ZEJHG#$#qsa5&u>|;PklQz`)25k)<|Q^ecvsDk1sb+;{l~f<@2%!jUOCb zTy^7b^WB>4^V+~RFT@sCUz||Q%Fcm%y0SRx%Y3} zyeMz~``38~rdbJIYUk~Ky;*4zIjPV>*5>0`^^7QAhBtiH?Cg9-l{u5HHm{zTx^d%u z?Z(#kOtLe->y@9YJ)CL8U{Z9j^w0CR2X1};=wNB_USo=1Cb+rHp_h8ZBM>x5))X!= zH}1sl+Q@iL$@L~*y4-TVyWdpWy4|DnewBVZ@86!zpuLM0|EST|n->_uw93)-w!77Z zec?e(`gymPJ?&^S{;|38(Y|w5IEH8@Tc0rJ ziI7&7;^G4tOE>NK*PS3T`G~im(evWIca;}*{?kip4^)$tY;@_HSQ+?k z>FFZFgIp5nc|L2ht-7xNev~p#N=1x&YwA2J<_gHFtp$6dLQodwZLR$D;n(!oIa}Af z%bHNJ&EcrT@)@53JJ>pO#6sq#hr7?*Cy==HNXAN!ZI9IFc|6ch*PQ02x$>cS_|CG~ z@0sNF@;*0hvN@CaTq}B7Yuvf{QG4%2{Pw!TaW!3zuJ*A7>c6e81}8sK{P%C+w^e)1?tW)wYFtolWosS& zYiE_=@k(|+nS|@>Vr}-m&Rq34bl>-%?>}zO{~P`9>Ei!~w%dKwmD~AVu*`N#_n-J@ zKkww%_Pwuv_}gYmZ3p}Q4+^*c=UV&MJm)N{NoLo#`O5@4ws3y!?{t|vwF2DTX{%3O z*{JE`qoWg*#(mkya24C8*kfti6>q2LoJ>k9V!Lc~kZo;Pci8GyozothT2iKGn9Yue zFv;TeIqkCTr2fB?MrB9+7T;r-dHK>CKI<-b$89G~qoytqZ1^N=#z%%GVa;R`2ydwhQWl;^Cq^Y$$L z^makDsi4*yFwL)7-|vFB$}8Uq=cX7sN!IAh zU*ELx#i`9pbK?TkzuL?!{=!+sde`1*-xQ|39$GR=Mna1=9gz3l-hb|`{x*+9&3_zr zwyuuN4f*ff7yImE`L|wCns*1Pxa3Eea~d->f)9q#tUdry_` zv$<@t@n()kkoALVuX&kCGsV8ySx-ydDl&8 z9?^o5`&%lU3!9#*oQz>*zQC3FXyqeGMs3q63L%n;6IUlJ2tK7E5xVGz_`CTzQ%<@l zi5#l@^zrikTlV4iwIR!-0@-;^?bJy%ZKyw(lIQ+&A4g$);}H+Wvllc|-85Du9*RBh zxw3^@f8BvCYhv$g&TZKKcf+nt2k)o8d2y}X&C<8zh{8l^%jE9Y>rQWC2CwT^3cbM4 z>ty6pv82RpZy=MW+aK0RH;b%qWHPih#>uHpzU!N-XR(ScnMGUklKSb2EeH0wE?PFX zKaH#sLby`gP4_UyAHS+R_wT|7{l8Y$e6`lNsGt?+WH|NxooF?IO!jNm zPghqpuc&H_@jQOPJLR&g+Os#Wu04BtIw|vSZ_uOw1Gjxi4Udkl)_SWuD=@&|!j_#^ z@53(yS&+(c~md=s$7-Q z0-KJrZL8X!DQKK`%bhPawV;e`)-tB33C4 zdGW;K!eeE1^PkT=p1gMJy|2~xOXq&Q{9DgiUAli#G24gTx7OF6{u@&KuAIS$uLOJdVMKRf&7`}fPYZ=Y`Cm45N&jm!1YRadpvS6y8VQf6ywn{#VR z=f{tQZEbBY-n>~-pKCvB*~YZ9Qgi&&kN3$YXJmAIeSQ7%#fy&N;o_i^`F8J?j=gTk z(_H%c+QpkUJ@fPRXPf0NiqTvA+RE0}_RE(q7p`A#UzTb7k(ZZuW8U3eGc&_uOGWqY z-OIzvYiMV8u8mhZZQ9)}nZj4IL}RbNeDfyd?yk}`vAd^buirauu623bonAG)KCyc4 zEpd6j@^^CYcs}pzcZI519tJL}5*SpAR`TpRZU6P?1hLDYBO3}&PL=~7?fG=c3^f@U zm8cU!MZY|jIsb5G*7)vx-F<9SXZkSop4n+E)WP1tlJta&bJ9PCgSme< zl=3e;Ah+$=?7haO=^Y_P-S@BiJKgO%{(4FN!raSQ_FvRaEM45PIPTYbNk+3xuaz~~ zlHaw)>EDi<+3<|>;Y$snIa2R$KIPuDSJ}BBi#;TIZFuRV9+i*p-#tGq8@==Ld#mX6 zWv}-<*_I)=U*FYAMB&Z5C-c16qu=*Tob^gjuH#2XZ2`mfdvAO}uht{AC&TGU4?+gO_iv808+D^1XT2#qMd}9{+j3s3raWiFdQ%GuvOeq5qG5yPWhb zXUjg7nG>Yr4La?`k8SPoRcNW0x%NQmrzDG#7Z>K-TeG?P!n@ns^UrNKc6o2o@#DuU zAGV68Rh@~_nKpCb%YGS4qs!T1=f0g_O`A6J-rvXO-2@1XiB2Gf7Mc|RB|K+%akEOb=aTVUVC*x`By!yGpBPHWa zEOWMh_E+9)|0dyjdDoMs^*7e5bewK|v;PrSQTelZSNRgJ+6w)6m({M&BCy_KX;9|N znV^$hwC{ZQ@N@4!=PCy9fmu3E`p+(grvG-{)Y zpKEz8y#7Zan|heF9ONX9mWoOb@Yyp0NsLQ-`Wvf1y{Xcu&g84t0i6+K_9kbamCutl z>w?t*b1SC3f4cvKdH?jZW%&{1(&anfJ@fr$!vF6L=dtstEfr3Eg?Y3U->=Qs+1k@F{8=8FVKcHSvD3NbV&g*cyiF|LqkS&t-Q=S67z& zk89gqR&alvf%V&lr(11)eB1x{;cdHvwb9!)UfkDXbng1hy*Ata7uMBmIyJ5L{X_r! zoxGKj9iVe)S_B?>DcLqaPG|w$b~^FK%}uH5e`TJ{|5i6~zg(m2xBSl+rsd|mZdk6C zHO0^FPG3_6+WMFOyk+c~HSP6^ zdtWW@-TEG77WJ<;=<%a14GbTe06#_v;F+bowwJ8rQWz%^!4l)gLBE%k83I` zRxST<;EvF*_5XDE&#Sb3pInuu|8~FUk53BMT_I^B?&cF&P%+sekmUNJIj}}g)HN`` zg#Vz+yGzvz@Yn|0n+4JZZo5y1q~1>+c@>@UZ>I=jnbri@z*A z{bE}=^Wit^eNx+AfA*HN{$?=$@5}igZ!VWx7;xV$<9qv!vXi#5ne&$0-1<^!?UD7a z6>|OxhoV^N$-kYT!=5=5^_-8YG&*pl+nnDJnPwqBX0^fD?`{mG?6>td#%*%5 z>#`40F)5wrRlTXDS+i@k>KSn@182We=@2 zt3LiKX>+x-^b_H_m{*p2vqSYyE^;)Sec=5Z>3YriO7Hswzgh;G>Q78zP@cRjgF(c@ zq+Ou&dS802!swn%Hq}Fr&=ACtZ z@l)QMaf?Whp0cTB&h^hPYnA^z&{MzXvUx#}p5f+vi@$|MOJ7>p{IHSgGIlv<@&CuH z&sCg1?pTK)N;-uvI#X3J~eFUDt#g=g

    Zqu4k_M}sh>S^CL*>6{`;EWxf0 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�df|NVVxQBG0ijeWH? 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 #2mNI-LvFQtUIn;;C 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 J);T3K0RS31lD_}| literal 0 HcmV?d00001 From 44c092f18a7a892f08aa87f5b43f7394287e43a7 Mon Sep 17 00:00:00 2001 From: Milan Date: Tue, 15 May 2018 00:00:07 +0200 Subject: [PATCH 011/391] add screenshots --- docs/screenshots/calcms-calendar.png | Bin 322273 -> 278553 bytes docs/screenshots/calcms-edit-event.png | Bin 0 -> 89503 bytes docs/screenshots/calcms-event-editor.png | Bin 131386 -> 0 bytes .../calcms-import-playout-status.png | Bin 280269 -> 205817 bytes docs/screenshots/calcms-roles.png | Bin 90287 -> 58655 bytes docs/screenshots/calcms-schedule-studios.png | Bin 138244 -> 98395 bytes docs/screenshots/calcms-series-events.png | Bin 0 -> 148161 bytes docs/screenshots/calcms-series.png | Bin 108933 -> 71452 bytes docs/screenshots/calcms-studios.png | Bin 152951 -> 112767 bytes docs/screenshots/web-view.png | Bin 0 -> 124513 bytes 10 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/screenshots/calcms-edit-event.png delete mode 100644 docs/screenshots/calcms-event-editor.png create mode 100644 docs/screenshots/calcms-series-events.png create mode 100644 docs/screenshots/web-view.png diff --git a/docs/screenshots/calcms-calendar.png b/docs/screenshots/calcms-calendar.png index 40b9297bcee7f1fbc207c77e45507bca0762ec2e..ac5f445e4711106782d3b21eb1f15db3c13f0616 100644 GIT binary patch literal 278553 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

    >YAkC_{sU=VZ;8MuQqBNho-prnfxN+~#OW{H7Ir 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 Q7EliGboFyt=akR{0F3BfO8@`> diff --git a/docs/screenshots/calcms-import-playout-status.png b/docs/screenshots/calcms-import-playout-status.png index 3225c5eaccec09ff4393302e933b4db8909c9c08..ff023cad733a2aa27089f02bbc280148cb04ae36 100644 GIT binary patch literal 205817 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

      I=k1sOe7%07o6CeBbKifsdm}=r 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

      !OV5u@k}m|2!^wUt1Si;##>b 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%0Au-4?T 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

      ELqZ%ef4 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

      Zqu4k_M}sh>S^CL*>6{`;EWxf0 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�df|NVVxQBG0ijeWH? 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 #2mNI-LvFQtUIn;;C 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 z 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 {2NZ5k<7AX8_H{a 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 literal 138244 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/calcms-series.png b/docs/screenshots/calcms-series.png index 3e16578eceba7c37549887de5d730c97debd12a4..aed2242d9020b8ed00064c25a90eb5b6bddad202 100644 GIT binary patch literal 71452 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 E0JLI-b^rhX literal 108933 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 diff --git a/docs/screenshots/calcms-studios.png b/docs/screenshots/calcms-studios.png index a1c8af4fd483fbd10ef6acbdca7d7f45b985f53b..958df2ee4788428ef42dce4b212b62771b5ee69c 100644 GIT binary patch literal 112767 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 z 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 N!PC{xWt~$(6979LVvhg- literal 152951 zcmeAS@N?(olHy`uVBq!ia0y~yU~gbxVBz3kV_;x-v+~$G1_lO}VkgfK4h{~E8jh3> z1_lO+64!{5;QX|b^2DN4hTO!GRNdm_qSVy9;*9)~6VpC;F)%1Fc)B=-RLpsEw?5|T z*Sr5e9=9y`@v@)!=*Fg?Ws6kTaBojB-n_uZh7G6zk~cg&oc5g{n&Fq?@m{- z-Td>vzy6%_{ke>-|NZyd6}7ZZwRWI@m`^>mu?;9f9Tja%34+LABBK-I1{5_X7#1=_ zxFCa+h5!Z~C1haapur%9Y>c3!f(S!5ia9(2Tn(;ZV|JZwzi5B+(7DpfJ8rFBpPlJl zzkdCEBc5l^j+bxx8~)$XA$tG!bT<1#kN>XzBR-}dVdU%77D2{!SB>(jf} zS;5SXFLw5eCYf(ey43n(-L^kE$N%q~eZ_wNxs8{i&YL8g7#E(blKWUU?Pvd9--Ydb zw@;|g`F(wT>a5qHa&!MPRr>ME@3-As8`oRIu|MB7dwKMOBWiLnd)T8-Z|gbSQJjiI@jy)TOY}vTC?reeX3E; zefjir*3xBDZUx>?d=#4h=~lYw*?FJ%_V&JSxgHSp`k>-j@z;O6jDH+{yuNUm;l$Fw z=x?l3x0=dj-FG-}V!iR5nP*qk%71R%`&<u)_QpB4PVZ(cH@KCoyUoJB`8eO5Ih$wv@wa~{?EZSWO>r&n z4}QJ_0beb@$?|Uf^83H?`BNtqi3 zq$S%-`kQzEo1R`?6JUOI{dd!v_vQXY{=Qn=)89Y)T-Id0_-FPV(|xnfOr81Xa)Gja z+$Y;bXXQWmU2I)=dhWIKJx%%lzhCyL{QZ58WF5c#p3;=RWw#^u|I|>fvzT6;q|EWH zDB*X3czw+)S38Y$xwUb}5>=Mi96j>IbdT+?_A@(jP12G@xAn(8zqx!{(TWx6hgb5N z&fi%7KT_>p9lLVe-7}qS2d?Cc1n0>f+9-bixZUIEv*oXzSp9CffBx6j%Ncf@o4b|! z?;rp4eQ(tMJlXIYnei`gac(cHy>55Z{PMI3W;JH~cSTQL=>LDff7;)a8h-eD zHovahVEIbiq6U1 zI#&NbiEp#qFW%j&^B*pBS1WE6G~iRKI+s6FIQUq+eEk%5`KWWB=l4CGw{jZazoe(9 zUsQ*Gdi^r|)5T~1k2kf8Z}@Vvf5#{L`m?8gyFKP^U|c-i-0ohStjuxl(`WA|=X{L& zSF~r&r~dNI>z}X*?JIoRT6<^R`RVIzJ{a$-{3aTvQ_=F|{`;lhW^az%{Lb8GWlgiX zTXoOC$~@kcxvbDiYMFc6;JK&>5uy(s~vRS;pP2EL+j4p;%`;% z-@LhX<8WFy3wIw*4tB`i3sLv-d)xV>$9<7s_fIMQvQ<6e&n0`!b^be6 z?XPH;-7RHicRV`(nUS$(lfdQKb3S*fBwk9eySu3|{NDCJ?i-i>dAw>#uROAU?l&go zng8alK6&?-zm&b>*iJ{D^uXUMhrH9(m3A@t=6=xw3DC z!DnxlSN?rct8%xJx!$f!Vt1m(e?fWQw+lm4re71fTavteU9qlTJF~$9^Iz;bGwfzC zuQvPCf9O`8@6S7d@jo~1T{@Fl{ln$>+TL5oUPqo|_qRFpo^RXMje_y_>pxzp-+y4^ zuhvH1=KUwX=kq_gFzfk^*~#qt9^{{YpYTfl{lnYJ^Pev6e{*B?s=}RfLT;Si5YE^b zU;Oyil;Sr>?{EHl?EdEyhs%px&wig-@lLgF=iehoBR@xiYpx~C;?=SD_FXXeBz_>_ z#m`+XQOuAwfS&yP_YcfhfBU#JUd8_B+5QzL|C-MaH~ph}`ox03!aon#gF7UvWy9I3 znlE;2G?8b1Ap1vj-8U_z*DfDh1t)Gzo%3%C$MqfCW`E|BJG!;*`N?ydSw>x(raclq zuJNT)@sXGC%%yxUH2$#GxcfcrTkXqo_LuVdb6LO62<(&nCpFtYq;%!JF5^m(>sS6i zTD5S|CaLg)o?KGS(c+=sv|{4yDx@2wZiURM?)u!@do>{R)q$sPyTe!SUoB;Le_Pk{ zI*CT?6B%xnY*_N<1@n_=KXuU@NB7Kb#U9k+`PR1FKmlut87>{fy1em zi6e5`)M@ecQ}_)N7kqtmC@+5YD*u~5U9{qVAJ$1Lo}{I44vO7S7XOGrw@#wua~bCLNe;KkFdx z`+TL{cUmtNv3JYYcRbi`K4H^`SiicL2WpN>{VS>eyYK6NrtOttuMS;3H*2rBM8@C# za^A0w3#AWh^EOL}+jIU`u1|XTUvBxPlaK!!rfZhpwVamgU)yo{?XQ?C7OSJTzghJ% zN#fO_V;5hZyuNy=O0lke^_Bf~R+7DJnP4p$yJNcV z&d|3yX-|%on(;k5Ca+qY{#Nhb{m(b2losbb_WRxCzM~+_V%B~?HvJxvPrv?GPr2eh zd->+AeO@td{gmGM$(uZqHsRSUsL+v^CeIU=e*L;Jqz?GFVV}gq>W!PuKY5a}XV0D$ zD_15yJvEh~H=9XaUEMhU-kvJ`{iA_+2J{_`US~$Hx{P z%ez``cy-$RrzLT6m6erGp3Z%?X7A@OS3|2>uJeZ${k_}y=Xv@1qqFwSH_r9ZeS5Fe z%;-z@=AS>`mc>;jNy~pv$a{S5mskGEe@5-+vzm6+r7)a3<)tbKZS(e0<^K z8NYc>Z{HpN@%I1K4|AW~tjX=zXCweFVqg05wKs3twCUKzeZ1LB)2B{-SWr?QwM?#; zL5`z13*5Ln@pR?3F9x^E<|O?+6M1LPf5Us)=bqb?7koZ)vF1yhp!4E)j}~ekG~wA< zI<@x5yZULHpSbfIuYF*7@8_8VSB29)EiQE1uy!VI=TihN zK9!~Y&ro4~>HTBH8PvpcJ-9yZ@U5JHwG*}XPdpHwy{Y0&L}d5H8C&Q4 zFW`6QJ$Xm8n3ethE4SLeahAvLRrF6fzPw=?p@AW(+ z`abWD%j~@eeX4#u_tCq1@{#x^i-%FC&#hnkFr8oaS^EC-3pUJFUJA*7dZyymzhib3 zB(6SQR9w8<_S5#pYmjct#M2?X^Y{Nu|7Z7h`=5$5m3Fgzr*_F6j{I;S%k1pBXLt60 z-|+S1-7`Nj6Yf6Ss=DXD{r=R`ciMj*Tz|b#{^^{`_oDOe7P0pGWv=IC-?{$Jtos&e zh5y$a->H3K_N_~oWxS$K3R~MPJH)yptH5fGMat6s<@2^j4#noi+~KpZd%0x&7qM{5o6&VgwSN11{`$zZjD^Wmb3nbq3) z*r0kz@4aikW|jQi6_@hN(`MSVW7k?AS1ok&|2{Ep&%9*S&vKUF)!V`@CKK7rHOaTORY~b&27YzxQTLn|AD1#rLZ8{q^!pR_}@#eWK>N z-P-ix*Y&NRuirFDQagG1@X1K~es;MThZpJIobo;CD^l3c{a99gdXep#h;5T=*nhCJ z3d%{I?pgBGMtFO(tM~RvkFS~EQ#+Krc;kettwL{~q`gUwpU9go{_R!B<_j`JX!JC$jGLu)Ap`=)ypb2mxBAJ zOnvyzKc9Q0cS+jwWOV`W7ZOUfpI*xET{r#RcE)su_~nag*FEF!vNWAguc z`B%Hn#ivhJZBpo)TzA3iW5a76gb#`|i|iT7Zf%U@)?m=kI52DS(SyyFYi=6MK5A@S zQQ$4-cR)nw^cvRABQ7n1Pnbny)6Y*6F-yHMb3*~McOECxq)J6yNejPId%I6+m>cUA z>J(2girF2P}$ODxLA2c~tp2(+Er!_u5G;P}Rgxn}Aw5iE8t?V0XFmPZGs%{}*Qif)S8 zvW9nY!qyk>?pjy+RaGv|f0ydSBQpw`Y7Wf%&A0OPwaN3IA5=MP($sRq;M4Z?O4fCp z#%iq-Htx<`@WfA7%_;f0k$t96a#Ib1^|r_Cp1zU(ZjRBlOWxf{S3f2o$6?WR;@-X< zQR}y**Y6*9y3_1=W`dU_UD@_?hBmb!du+wbgkI~RXHe=hEN_tM3`6&qf# zhflIGm1%gYznt;rnjZ&^HqDW(F9Wr*p!kd0cjgCX7HePT*v&X{$}^b5_pZx4;W=f} zmcO@6*rz8x`|gn$Gfzj(+taZ4=IIj=zZJZhw{J2ku>G!gZpD1H%SSqX%OyVzk)9oX zHZfkW<*w26rzf)wZpx(u_qm_jEUf0VXt{uJ$dQA!KYJHvS+6^N^W#o2<{tvHcC@72 zc8rVK*b%dvceSuna z&Z`#P4SKfr?BY8jUT+?4)rm+_{(W%mTBZf>xH{%|#suiCe4jE=HX%7HiAnj=_6s(f zUoDw-fkjNeL(x1{a5evJ1&y8#4&!TP?Pq667-sWo3%_|2xqZr%IY~a#3Uth*{g@az zdS?2*=__4Rp)mW=0mCEe`ssPK(Yf*G<&0V<3y8P;ohx!_t*pC)?A5fj`@`1$p4ut+ zeQjc@li=n!{6x%;qSih3-Y_Rto4lLu36&G#5aH0 zcU7je$$GvlB4;b@J=ts8VEyRGwAAJW1vtFZc6Q{NJ8T``zuWI)0%%P|lzm2AouaxfA;F|4Kv*V=k^&@wa zpX@*K>~CdhV((?IW9M{argw{%vwJVbq}#&Yq3FI>awzX%Wv1nzxnWY zGxzu1$Ilt}ZrLL4A$R%k<8N2fXF>B{M@NUpUb$WdwiUn4ejnQYiBUOerloP?3=Zx_ zi-I34LM?OOeEYV&NAV83&dKu=r`>sESuL>ap49bgIlK=PoRo!U&fU}a^jWLU?cCDE zdImcS*Y!P?%w5<2X2UbH=+9R(PapGQdMGA*!?wWp&YpF;uMfOD(8;eR|KY@i>k~ZB zbd(en9DTT}jLYaoWsMoP(DBWx+KVG^%U(;mdvcd-a>S-5mfN1otJHqiD|>70uDcVszu>XlI_V9Pj+Z9AWO)~T>R4OC?$z(TZQm9< z{(Vx{YIcpGEFfj||D!XHf4jQ!NY0GYIqqh!pDlfSuIEhdUjDKlkr$`_-n;u&#A}Jk zGiN-Rs`B;8j(6Xz1>s;~+@-?|77ZIbxJ6PEi@+$KT4V4Th8q{z^|6|HLJ8$;EB@=jN>9XEQ)O{**cURBvvNj_{y@^Mb zOtmq7tf0vqe%*ijUDv%;_i{Jf-f%OqW(#YuTj6oW3D#RncgOFn{3BL#tYy+}b?MVr zSXGwVpIWw9Jd?%XLZN-xw)^^4cf}PN3O9>QJ|HKSYjaD<`Rj+@LCdf2UH|@i)!Q|U zcMha*u3dfXxKG9c&h0@rr~Tb}`8*f@{r9<)fgAO)f%Rb7N+2uD-s+KJI#hN7^yg#M_&j+@GIK zjyrsQQK?K>%fuNLi(X$|I4%0*oxSsp7EjyMFEQznQ*?gt6z_e?6FNAGUq8Qd^;6Zi zDaO;k94=#eJgI~G;}yr*8)VhD_ZFMAyC*Bo&xt-CSNz-hb>#j`(beB)&e)a0C|p&L zx%+g5G zsK$8pw(GqMi^QG>^|aoY!EuI>afWizOzZNR$s3FOx;}R+n)J;OOk+Be#x&>Vo-Nw) zr@uVanPb#A4wmJ+9mRZaO?S2ZGj!cd}t8dJG{btMCYrig*<{pwUZkCw;c+VEwZkyGj*@yl8 z*jBzYYkHJ+=~~c%T&|f1rrgMIYnj1mz$zeQ*LJ~yecQIS*HhCs*TxGbZk}$C9mKNm zYi(K3mfa6yq_1DTJNey%8SdNHJf6GA<5^zB**`xxd!!AUE(i+t%ogy@Dd7)JOy|>o zdrDm=lXJ6L&jFbPH503ePj*fedF%ajfxDaUw8>iwO?P)CdBoYU_CLF^Ou@;$MM$dZ zp}I=Lx%aJozg*LQv-u?C70G0S z@`WvxQ_Vh|Rc1K#=;p<*-}8TeKiluV{qCau-_8HN+=}QUOgug5cd!GyZ|cvsm0$PY z*!VPU^2S0z>&wM@YdkaWdU|D9ob=4D$TPF}#6M}5VXH0ov!cYwy>GgF(%wxzZ+N|K z#+1tbi5p7=ySttnl^^pmJHuKKFlF}9b5lzA=ce6$zWLM4mEv{VpBEP#=Q7JbyK?@# z>z;A$r8^7Pz1=){uU>1<3zcg&;(iKzIX8DlOx(1!&Ll=Xcl*NoG1uJ|9#QQ(`0v~$ zvt>D@leT|W?NirDaO;`5=I=Wh{RxGfn`iD`V5hX{d2z+{tZV5a%(~8I>Xx&`HXX8? zA6a~Tf&hm_j?BGHQ+Uk7@8^83`ex#ydoJbe9#tAOsJ=%F@-ftC7$I|1rd(uU_w{4qqYlr&TClhv684F53+w^DOW1Ty*p3nU1)BGsn zQ%cO{_8jYHA0LEetABTL|J%g(-SqgGC(|4hGMV+wBfngoX4TJLUUn^SHTUJicGtgF z@4L?8oBDHd@NC;D`z!gh=Wx%kzvuO8&)X|cpIR+L9_r+iTw^n}dG(>}=DALHq)ph5uT^xwq1!BG2>F3U{eCg7iwHq=oFZ;S;M)$$H zpLdF!Te|=9)_n)&W*1tC5$Or?O2i*ja12UiiQUJ!1c;;ncrn7Op->2vBq$n&X=+br7j+k$4Jdz*=+|-VW9;Sqe zc4hgOm}_I3PNcqWz4H9mE*7u_5TgH*$OS|YfLP2epegCA*Ihee)_Hk(oj7sg#cLxM zz39nmz9?#q7G$u{Y6AM+-J2^nZJKoIl-H_Nt5&RC$#~$!)7JIt_3P^De*FAdxy3_J zaN@s=kB^QrtclyZt6v-97cjZ<@=}HyPm2O$B04U=WI4c4A=%68|7gXUBY}~gttVS7 zEhL%`K6qK>>f-XNcf*Da`}7nRV>aEoRbtN`37ZlP zw#9Ax_hI|~ziaP4zhCp&*Y3}U!`%@R z;STEX`2XaZ$c50*&|c;Gy}oLH{`@hR=_A3z*7G&k;rf*;2_{m85!=O`qlGE8}zCse6`&2@z<@B_Ivu@MhBhTVD&OcUgA@!*q?XqJk~!{w71oH zg>GKESHkS)@gx0g?S~sLzdZ7A#eyeyBJIxG9z1FMd_|VbguDa!H#FAqtvD9=%W{5g zq-T2a)xUrLcJ}rjy?=lH+UV_O)q0wmoik=g#MS>TEngpGZgH|Y)v~@~{ic)2brHw> z5>DOy*dzaJ<&XU>XLwiNkhPheYA^HjXMIRO(G1@Gen+MLa-4oI-@1Q!|NXkdd#mFv zy$YDB*Ig=d zOvE->-Egb&&WKS;&iNfNKUn-7Q^1yX(bHv<`uQEFc_dAKHfhhXrrL8^n@+thFImjb zQg7RM@tn}9#mkJ+F8u!xD7iLNCi(q4e$91diC<)oOn4CB)+2Y`+{y3Ldj2BK)tNUo zh-GCT$T!$`%u6fV+HSq9b(w&Gzyb4pA9)*&3G7h(V_WedL7)A=S2q8YbIRL|dDK-~ z)h)OD4h@>Gb)^1h&bsd&vtIdUd|^@J;e0oB!WIMVx&C|DAJ?YvANP7@Sm&W{a%tH; zTm6@{_kUg6zGBUqCyV>-m@;@8r4QX-u|h-5f8L$xs^B>gNCN!AoyU5h?^PC$gKuu` zJTKv-uA_sI{t{K@+=&R^6YwDRbE5&d5-OW_ewCpJ5U-K+uwaLzRJ2+o<-^iHdSro)0_S{a) zcEh}wVx7%mDni17ZWH(eO6J%`2i=$wcwxu;9Y=Pa@#|5v5hxIuxVKhPyDUm^$>!SV z>k}#}Y=0k4n;;?UwxFN+_QSVpZqM+oxOC^&=hA>FbI<*nqMIUWJ}1xp?F^3Ixu^du z@$BLJ#Q5e$pS+4`s%>xT3^xN+yPi99wP)?0=4Wk|&B*G|c-5;&=U+Yf6{t3+b>^OLkK+2~YzmCx<&isgWcT~$zaKZh{#HIu_4Cx+ zH+CgmL3=o*EGMoE^p#$5;MYCIdvan&r>tn(u%%^k{$8hB_j2r3v;5KN+50o^UFZIJ zyZ&sOuzh~i(Y$n<{Xd?r<;h-OwtVXL@3%Ji%sje+IojjAR?45X2X(i-T(eKesQ$l1 z_4@tov(GKt{5@HE>eYKJy>k!o@3-fA{Vx1Q^%G;S)q5pvij=F6g14{ zJz2PoJJT%g znx?M*Amf{nQI~JejIC``Im^DSiT3jHGgR}o5R3lX@s#g-?(Vh?FE>j}+|w4;y*Bs>{qRn;7+D+NiHdHwB?9}XzsJ+4FnCRj%W20H- zeUXVCF$reUw|SP$-tWiI=eI5ERQ;Q~J~CBp;rHy_`c_VO60L6dX8vx=*KXg7rp|x( zWcp#r@~5Fc=Kh+})%J5_{JD#uKk4MD0sW&$?UQ_(w%3FW?3A;(()?-iP&wSu4 zH~!eZkmYyyPbH_RDrRkA=`O_;- zDcrmL+w5BBv+Z z%oV-)mDABjJ-uuC`x1NAr&XP)?>zha^Q%W5%cu6tjXV=8=~=-L(V5~FBk*%&x89b$ z^~$f6t@CfI8_X_Uy{%x&o|DZ_-EZ#ye`tN=?n@{AJyZ_mC>@qNc}7$0lll3?%m03T zxRRxMes1k;o`%LdZ*xv+tl*x&ZFFPq-iD8f)i)-^)$coc^Nm%6OH7JIT3^tGNb7S9 zH4HLGMW#=8uH>6}w(T{Wz+8!D&1}>5+p9SZW-52gp4zcgqq)>~d1u~w{wJ1=3tjG7 z%Ke|S{O5`lvo6)|>CG*Y+1|4M9W0m{d%K2 z5-fLqomh7+jQ^eOxk)xg@wdG%KFFxE*z?coSAWu>7Vg_I^{-uY*uNF6x^l82Sgx8s zG->DWx<~8ROIKQ_{Q17~`D5ijimQ9s80M(o{9GnD?MJ0g_bU0d)=&7}{r`9Tk5#F; z`=k1EEs6*4{Q7*qIJ^Dow1S*`v#H9HJGjgYQy#62`1UUG{mGSg?i-Ysx{ANroyJw( zzg~W!jLg|5fwzDBcysnnZE;4df^CY(b~oN<7d*9>_AEMT@t9jDc&6FHI{C{6i}K}9 zYx~bX62*8}?;g|9OU!d?iNlEFFFz4sYyJdA@b<1Qo8c3Pie;hxDot~a+>d<}cJ z&bFFeTP!cvuC=VXmf=BHe$n>`b$OeKzM2jf+5h~#GWSmD>5O|8Gw;5cb1RkQmc--N ztJW^LW5`i&pT8lTnQg(}fbB15?RQvh+E^WXF)qx0*Y=O$`zLNUelGs8XVv+7?KLys z-280j?k5`5$T@j)Q_vqt)_|m^I(0o#b~{co`m*$MwS8lH;G})+)wJISCS2IavT^$4 zRzEeK!sJ~~4(VL7|EN~v_jk+1gBS1E{W0D4*7n%l>;3Di*KmKWWanS}a`%Ljx24-+ zF26C%ug@=-R<`5a_U)=u($b&h9+FnS>gT{%u>VTQ+4u!lXCcomPPg99ln@^uucfV} z@#B;Cs#U8vB+Yp2?f08)U%P6>f+v3}rH-ZSG)^s9{(Aqm2L)xRpC0t_UGe^XBRVIg zFZJYP?hS7uk9M&ezjit|q2ikTWkzCj6h>bbwKU*elsId%|seH2S%&yySneWAX-^;S@ z*b!0ge+R1CnU`PgJp6FMDy?bKZ7IbomOS=mjANPc_duXS=<1y7t%u_};}^)swHaj@ zI9M;Pn%%bFcX{o;6^b7obe^evQr1>DZM(Vc;p%1C9I`?GV?5Pn&%fdJ@JOW14xO$< zwFMt?!)&*0U#y(;>D}9}d2=JazdPz?x-Gr#=;E{Uywz71*yv7Ydbed?nb*5dGc#7+ z_x8H{Vf)K1=eZgobMG!7pjV*Hz{kO{V95@a=7SC^@A{oopU+^Bbw#75ww6&tU;p`) zmBBHBA}*IXE!p|y?i>@m8#1N8*Wu7%=7ohNYdB9^a9=oRbJ*{|@fQ9qa=ow0Ztr}u z{c2f?dhYgvB37LopKfk4-dxzS`lOI!z~yZ+jV>-T6qhf^{$15^`|T9)2;7<4-!t|n zs(KbKOnGBusA|{qXRh|Fo(H*yGLNU}E@)s13V*Bc>*P;`;sns-8c;B7E;33qQBojD$z&_s<>o&w2dw zjNqBs0zH?f9o5viQ(Im8gWH1J|Kf~(en~fjsS#^M4HhZ>ED8GIsd(XBt&~kuzGFi;LrtGFfr6Zr{Iu?|K=`Sd%0Ly)s_3&Y!@rz-IRJdmDxAv}YbE zRGh(lrf0^4BTYN{9{H;u{drVC%KZ$7F=LuBaQQzpG%9zI`g~_dcaVY5IxRmT)*ZJ4qVmF-=}{ zcJBMvigULK8#QWfyx7BGD4f8hpi;xLu#qpv%z9ae%Oj@#&BlvAJ6xZ+eeM)lGbM2q zW7Q=mh2MT@TqwNnysw>l#oMhppU%%anzlJGAmG6Cbh{^KosaVDDm1$O%fzy8I)8H; zi;#f9jD_KGXG_g}9!$$`dmLUgssDV)w%}0S&`?u}J+%f~jQS-CxG!`pj4w*<9SMOEk6eiJ*t{}X3( zewTU{hlApKyRY7LKd;;t*;d#wN%>_;IDh)9DX%$Y&3Y1f?UfgG&X;h>d?x1?RmbzltvVnwxUhORK1;6kPT-H!OK^!ES{QC_h5*lKR4I7J~y97CLLLShZ-wh6&ov zP8=K@2Qv0dkgu+;etcI&;M=!vW&cnASg=y3z9?&RJE-~a?;TU$y7(hj=|-Ew?VN@9 za&Ep{vg}RbwWe>)5wFknq6|L1zH56{?Ud!NLc!M_YMD=s&#-m%y;n5-YLPr?SB1uF zzo4MQo_i#H#fSU=%PujZRbgY9+9*hUI_)|~tHb%I|uPfE<8oM(C~`ddI#&0A-E zmE>DA{b<6exU-Ji+1#v8-kx`;Z-)BJ-753mw7x9m-+q&Q+UDNvk&f?6MChp^6{$N zy?zE4UY@uoYh70IqvpMVpw-j5Jo`^9>+|Yn2kzf9_xJlPpZ>hF|M2?yf!ji!f4;vz z{^gPO*W161U(K6e-2eUa65GEL^+#tfm?+%2zg}tm-W&I9ZmBsvu0N;T9IyCxs=7r0 z*N;ev>d!iLa`vkVXWn^LmTlwx>|XE>S9_-~6Q-S?$+5Rq>o9+g@?Q_m>;4j#dVf7B zx_I-%z5LqO(c&v7J^S?e^Y10G;GrupG4Y$kqD6~t$$h%f_vlg5skdc4Zpz^?m8p+8 z;+J3c4E)RC5pQqbHtX!X_1ok*W^9=Sn>~H25hzmV?CHrVDJfYS+jb%~`_d9m9?46u z;?*IA1elE3bVrWy&Vd}W$EhYkk)f>z3lg`+>+9?9*|X=v*YEkJqF)XqD(P79ys^CT zdlzCH8|1QyV!LD*n0e%kS`O;U8B6uX2nt<#_HDYF@WS9p9fdMa3bu*PzUvZk#%I!F zrj2hsj<347AJJL@HJHwqXfy1yu_(O3JafX978UQyrTO6-3s-MF{51uss&R2~`PIbq zfKMc4O?u(6U;Ff&A&DJI9??CvPtO6$fl@ZkWbK5hm_B97mr`COC8b)o`OOHo8cmQm zH^=hvtJg|U^P$v|=O(OMz@Z2uPB1*Yd!6;f($h~bJtzc)5eUDOWotgT`1s}WNF}99 z^DBQ9`|IW3 z&fa%r>(};_zXu`fdtF>yY|bVaZ25I>3~ zoe?}e_~xcfMxQ=?($LU&Fe`iA!(Fe}DJv*2#K*@sH8nA4XlX54wW{mWr=m4s+Ba|B zY-wpRNIJs7#w+#YfH0TFRlMpvTTTEEO2yWJl-dp{N~0+7Z;ZuvVXQcDX=(k^5nzE z{q|~FTB{0=Z1@uI`~Se4Ns|ugZohNr%F19)KE8LaFF~WwC8a@IN9Ree`Mn47|9`Nb zJb99Zg{9;N%#V@b_TQJ}$6jJAsH?NvxpU`{qem-sHt1?;CEedw+tS`HEGG7BVsh7W zQyN&R6(_UU)o@^r3cr9D`6)4^$ zHSYYpGkM?j`OFE)?*7l7KTqC#)5F8#!;6f&3l=B{2?=eune*iN^XfM{9#!(z7uZ#P zQrUjDEc(8fGAwOQUwY$4M4zlRTgjez`Ip~sQuCiz6PP6|DEQH&-2S`Et;=}~F#!P= zEIw`D9c)*AF z?k}M|4|nV6+N&!mO<%RH=3VEOrDqv-Y}zy_`FP*gs2{gM$@R$5qlHgS2x@6-SFe?Q zX}5PLEDAm9ADshDbWCh?nxA_~Hka+d{JLM7$;bQlYW(-o)6nSHn0y?RWWH5JKian} zU!$rR6j&fU@!x{I@7H_*r3N0CUp158eaidk5E&`?{M_8+M@Krv*LHMtaP-OB`$a}d zHnZ{W%6Q9XA}T7n=ffdxhC9{o_x||(`}>QEy+6}}A|p>q=kGb#DXcDGTV-MC_36ZFi`OSzwi4QcRXy9=HTKwl#x@uH0tHTFvfzsJiUt-FUHRLwR6v&IrjfP z_A{uctC#QOke8QVw0QB!vu9Pcv{s$|z5U7tgKsY`F8=r}ue3`pJTUO!@Av!9e|&s= z%F5EsH`3?ViZ#st^F)1b&|z-rkCL`;GoO9d#nrX&wC?sVJKo;96{V%6wPNMUh0B(;ty-m3R9tLX`AH=- zG?d}V)2D`6S2PYCKK$|P*Q2LTbL;Et|M~k@l&jifbIF!nyJqR{|Fg+kzrgv&@0;oK z3%_0sFW)_3!v+IBS*t5=|3Nzqz-%Jb8I;!K*8pesiskHZrq! z^!KNqnPJ$gxMH~}Z@sPI_)c>zL)+_BE6C)$m&1!FN?>FDB_hwEW zPrbBB%K=%-;L@)A)T04GwGVl<_rDT(KiB@i?2GK8OyDKgpmi+MQ&Lj{gMym&@3#*O z4CIkCVriH(NvKc8^3c!E&nv&*E#LWe+wEW50t5vG&1EeL8hUzq^xg)?#GJ8yzo+^1 z)1*&NPTFSOe_2xW;eq41xz^V$tlc9cCAV(fT2Wca7!VqIbYt>ysm)5w2M>sb#~eIs ze!pk^`uzS|`5Q`KhiPeRM?Xz@Yg=b%`}@u2y!1A)?xoSp-m_H~ySlo@6rVNC>;IQ4 z`42R|6RWqNvA>`HdQ34dD=TYDOH0XbivaUa-;Z<(@0DY!|M9T>&)4;HDk|9QY3 zQ+hS@?7ZFYcD-iU@$FXj?A8N|-TU8t*>T$bC#&k!qcz1ZQs#C25N5DH|5Nk7MSa85 z`G1<8=T$6~zB+C4;d_VL13%lIq`k}R- z#JBBxe7^ksZ?W+2S;w!~UI-R{zjadg+oG!6--ma8YnK8g(kGvaK0P^k?1Q@U#&$c@E zl3Jkm!Bm2$_h3P8ZtnCnwX*PP%gA{CMSCP>)$R=o2)H0|p>)~W59SIA3*3*kw6zue z`tnka{lL9@_x8#$g@=TExE7tySnzyqdC}uub2Gc=@86%FVVEpooW`@e?Cqly6O}== zfn4_POkUl?_uKla-tYZhrNi>>)SgdMr%v7T{a*E-7w-01+m^kb|Nl=qL*1Xp^30`| zZMVlT?=XHp*Ph`(uwZ?b%-i1~N9K1}nzSwc)_-T+M(b6%>^DB14|w`t$YH74;uv|0ERE^IVyIP2B0G`upM+i~WBt+Q7vA!1#;RzN*hDd3$~(-Pt&A zZ&+-#Z}sm|t>>Tlzkj~=J6^!%srwztYnxiL&dFA{GrzC*O1#_pTswY$bM!j%@|DxP zm&%U5tGpZeeS6}uTdUXY>RLX(Zr11L=Z#BV1jtoB znOOEclcVeIT%%peY|RS`y`Hx*+;~}%WFYb3+qY%Qma#3q=uui~8ZiB(>6^zVOZ%4l z&%c-EckSL|@!)(N(c3|r^G~c=wdxL6VYTufRt^r14AZGalqJm-3qX4#ltFUT7=HwEOkn@AuR1>?k~Y=>E1JKYyC8`xzY* zbLZtZhNY&Z*&9vfzS{Zl|L4_yrQ1`?LxL-m<{LR#SHAhbx%_`%;M4C9|Ih!kOUFph z$fZ$3K(_GVYdslWm;D=l9SlwpJ`!>_#CKm-(ASisWvS6i|7zq;ou_|G?61j=l`}$e zSIt{9i+6_3B#pF%y8>cY)Fm#B5EMSZ+uY_j-Eq3)g!l4?4={WdW)t}S)uMg#>$%q7 z_toF4e!lPB@7m+%7XOlxTcy;_x;004yRYjL`K6PjM6CE2Z+^Tpy*NgH{mJLu6WpWc zoc|s1ExvVu0%@e*_F^7ridJHxPEbEBh{$h=EI!Cps?YO~Zt9gGt=J;q#F2P7eSR(5f$96csLp;pV|k0*ufBxiw|126n=$)T&7^SE#bE~)T)%kf zQtPKZcQgc@I6fZQEdE7Sd+*-86_u4A-`q5gtNWRHZEf`N{eN%oUl_D9Vq+4kt*vd% zOYitc|Nj22`SGybrs@lazrX*UJ$rsF?llU}w{@c(D~|DSi5KH6RW zepB7wUx}yBD%ZDXWo11&%x}Nt=g*3duih=#w`bDq?ed>Q0Ou|Q7ByZ+qM zYX3$fKY4xTrV7(XoZF>zr~9gBIvd#@eZFGm))tLgUejKydEY7)a&;zs+;r5%hw;U; zi*vcwh1`Ao@UonPqp5Avj#Tf9K5rjf)35gn^_N*4w*Qn#@uOY0cf|gdDD}B=z-aa9 z+ZzAgZMWEJ(H*M0+@kiYo>jBciKft$l=KZI91i|}e-_W_jyUve>B1l1YM;MZB|kaS z;@rK(;TN^;KXBjwM_Q@$sLVObqf>9GUFI^oy%_HeC`IPFYn3kdzyvh=>0 zf8ei{X|IY-WzVX}VbBld2rTsOyzFyyw)!1SnOkZ)x5MvmT=845Tx(rGsQrfdtj=+n zZw=Olea^`J?|l17!ME>EedfspR(^Ya#eGfE+eZuj3HyHk%l+rKYsKT;+B2TM&ADk2 z%zo`t-s<(bhjwRW%%A6Xscq?tbJkv)jZ0G(ye-q+dRZw#z;J86^)j=fwaZr4Z+U)Z z#ZjH!`A0=|XU2A=e&v(cWUFuQB(~&}+Z&TTveT|V_~P5!k@`SzS>}qQX9b_{)mrg1 ztT%ppe2ZW16)&Ocynv{yE%&r1O}!s?iYMRw=eF3eYriM2-J>qNcDK*V4OV~Eq-IYy z3H$ce#lGa&FQ+}EW(PU_yRqagg ztV>HvZEAmAdHHwN%;p0ZFJ9EEFV`skQ2OG}%f2%+43n??-p2EfsZ4swR?D-;i!v(1 z!>3=pxW{>UgBdqJf4PK)|GuB5|86IBJ=d>KsonBnx_wpW&wm@I=@3`)r^& zb?fP65AS|$c-4J0=HG$t(EMY0INR&yoRWwEW^q{JC0xx)72^fz~AA8ul`SFv2tEWPu-`g3!^9E&f( z*W9$W+_CXHcP}bnjlBqC?3L&B^S7U8-Dvh({mWflqcb*Z;buqo1Fuby-~`{a!DSM>tFquP^Ql*%NA`SF`+PO-#rykDPCc#qGNZnu>~dJ7&&OQR?n&2$ zR<<4gerjjLH%8mw>ys>)7qlNY72Tra`Sfh6n*QqI$>DC>7bw$+g%GPw8$GgL~AwkEg#E;ZzRr;`t^3Ju@YeO(>@wSUInuj}j2 ze&7H9ub{4cw*LMt>e(r4pac zYcIaFZtmkhzO6q`uJ+&!OuX>=!fKy`(G1RiMPG@lOx|V5GS%_;*+-vabi)KU78(XO zZp(gd8E-vRb)|GiNb|mbTF<-BCr9kwn7^Tc@$T8v8I!{|nptwhTdmNyJO1=h_TSqA zP8^1nzDGC`3|Q-`tE+$ixBLI6_|M7&2_{DOz&%%p$ z)c!Nux{FmOl;;aW#c#u-*Trkn1up*oov5|G?sN4XtBmB>ny9-T=g*|1`4*;G8k8GL zo)la*`(to?YVI?wbM^0S(qEf@Hea7K)p38r8fHnIEqhkY-!a`Kw&@XFWbW~Y|ERy%$^lk@&JXQOG~{;uG<(_qz z#G86=PhiZzQZrY@vY^mRq~rMDjPEQHn8f<6Hi$s{66zc=Uh+M!ua2h6t8||V-nMq zzR|DNxO9Hho8y5|%PW$%``*Z&e2tI0?0f5Do1K@^-%RTjE@d$Ll(&9;Z@~1)rKu~U zPxnUIG8V3^^$%wbPKumXF#r20t<0X^YM)~~v$s!^-u{(EC(8TLo_%k9XQxRy-Y>m> z^3$ei+u1|n_j&mGi{vjk#>e-_`eI!b&q5vFZ58dI-)oQml)L38`*nG$?Y7V7G}8GC zm*p)#`@DDS#B2NCFWn)*@YTt**y_~Ys&(<-l~PVd?YkGR;Ga>wz&-GM!mE_5PWHEZ=pFy-(uVI0(!FkWKc7tg zR~jpP6~>wiwKXFR4a@#gK@v)=l9TNY{9)cuj*=jV^Bd@5Q~ zQ}f}=mz0Z(T)%wzGGWGyjcKBxO1Aql-o1CP&ueMXj(OV36}xxu{=K~6+vm^9MwgDAbrGM* zydi4swWomx7N_#Pd3S$*{e_~_3ahs^ysp?2a_jo_>F4eL-&tAyiz#F4Elysa*_Etk zB>uc}I4Z6`uP?)7;`A)3uA}?+hHefBJiWM2?!u7`CeIkB>+e7A&vdAB)_<+f%FZ*h zUeEZpWa2CTy)!l&rF=M>7k!#h)r9GE+!N_d9RcSqE-`KBW!PY3Kl7)v+{-sB^q(F1 zxH)F!)kW@(hA%EIOj2xEH_t6ZXU6(%cZ3&mJ0A#Rh=}&zoA{z!L8C}ean3V0Z}F9m z&P9*U)NR>%McQHa_t`4%WH+5(Y2{;lGfIE`x^32X_5^xAcD7~P^Wl}@2a%&DM=xDA zll!jGa&AM8z8G1HdrX`eoeT-QERpR9WM{nVhcuS(aKE!$*q zW%|0`PiqPS&o9bfuU2KWH97oLTFmKa4p8;r({gonIB0B#t0BMUv9xlW-L+@u=6V+w z8-r?xrAwFY`F1P&@B2T0-)uhr#+Igvl^ucl_lGQ?HA zRNa<;|J+1n_aA@X*ZbGi?YrG{AT~BOulHRv_rG1)zdt`a`}klpd(7UdsrEl7+ZUcT zi)Sf*es1Z$ee>v)(|fB5|=NBly=kK3-hTj%9*NlWbfr`E{TGZxi2 z6n?Da@$?S7Zg%j@l6~bm{>#d2s*;25Ie`*Yl2c22`{!%X`Mp&?D=Pkez5esX;{G3? z1oY!^f9|^QxH!M0q(>V951pGKC3W)A1rIU(9S3g~AC2j|aVASTIb;`4?1O8T`65ce z*Egx8oUj$H`FQkSZGvKpK+=*cS*CS$btUEH#jmgFzIy%o7B6Pj*Vq5|+5W%q z-Z=mKeEqn%xF0`%3W_}WH~l<6@26SI>$YwE<7)I`+lKY)_5J7B6#iJM8N95=Q{czP z$H#yC+Vz|%U8i|J!^e*wL&Cy>;^X~GOHDU!+!%KK_m9W@nK?N!*A+Hap8M1(ATEA< zrg3^lPmhcV*Ns~m_uc#D3ctUL-S_+M`@VD`_hZ~IB!#|g*v9js@(+XU!oR^Q%Ix!= z7;+Uai@I~;+g!IJtGzordY+s*-@S5GeT!Pzi9Pe~=H6LX>*L@vMU&%sMy0%SvTl@^ z(8cfX*B#R~S)^p?a?q>f#;SG4PG1o^*T-9XFn+=6rDYH9PI|@RbTK%7eS7%X+HKr# z&x$$N)-*FHe(ntUa^>2q2Ui=Hr`>+Fez9s(>%y>K`;32ccB%v!2E=D8WUQRJyfAl4 z`1i-vHYyFShJt@j@BYgFvVQlDcmYOvy5ML%J@x2;60xggTT-}C-wB;@DkFY}%4 z77-z_aN)w5FBjcy>i$%OI3_SODRG3xF5h^TVdApqA9ie(%e}6u|{@l;c&pkan3aWO! z=zQFJ-^9Km#y|PC@UD3_3s1k=WcO=!%*s9I7puqGWM(f|v_;O@LFDt*dlxQx+@1S- zOR3Gm)w{d-?lQ|s?g?1wbNTa?zn|3qJej`z1;Z}+YXSK){LaidDE?#HwC|VaDX9OK z>dlqiay4G9{Qde1?dy|rmwXogwa;TWBEyplb1=qKZgY`vhU z>xUNish8MfEnfOitX$6Wr(e*00kLy|7h?67?poTc9_ycxz2=eE-vf0rORpx*-f&&5 zy&yu*?_=^Y9#-eaxpr@@bxXG1U9=}G|9`f#WgxrR=e+IfBVR+az_Ds8?&s_ucDypW zE_J)&($^OE@2fS}UU(!fnJ@M9<)K2x`vPKazdru>mAcN<=0V_bn^+h&q@CuPuIF%voBxxcgK|XiT4XH%zyLr?mfesl91}(XXC%;um6~~l^>8v(`0+4 zot;^EiMQnAlDBrfxzB2CpZ)vmzHGac|FW_-U4_t&q2e6V@^>-Qbfb^S|NkhzIq4{u zkgzZ(KmYOL$J?*R*Uz0EU$@hqBgaHaHh;t7iP`3P7jIm0b9ZN#&DFgUztd-JoNLOH zkOZxT3%S~kMM?dxJ5aLq?xR-=UVje|b6s^IR`*%d;!NvY-CmPz7QegIr?7s$`XYbc z^G|EVtgLpuc#*Mq=|{1zvg@Wz5OC@^dC2C%C8M;b9hG+*8X5xM|G&98U8C#J^?lz= zo0^+He))3b_U+yFKe)f_=f83IaPxx)3H!cnUB6I+>-;=h>97CJ=CD@IZ-4N9WAgDE z`|I}y*B|ebmA+`lcGr=chv&()wb2qhY$B;IwkRBql;+%1{QR7t>X8J455MpKpBEli znd)+XyUDeK@y4H5#1~K4zHeXM4Xb_o_AObubm!8`H}Zb&ip*7bJd5@O2@6R^kZhJ zvaRAt=e#wyqwE~Mx?BHPJgsKm|FgSa1ad@fnC5)*<&G~4(vPrh+J1HO_ZQJMpA9q~ zdf%8fvp3%_?><*>E&7RuRbIFQB9*xRr{}& z#{S4N=d~I3d*E^du*2Pyoa*5*QyWR5F z>}A$Yi^H=eyC-#47qwpc-go)&)7E$g7DLX7HtPzWiZ5Giwc)z_o3EzQwYL&y&0V3b zohm4@e^SVPu60xAFaMSqAGK&wq@?_^f%A8*~a$v5Vx^eNGGp*0R`89xLW76)oc zEwi|omb=-s=-Se6kAwEDtv_B?ziE28bm^;-gd&wvYo~k09uYfP)_lb7tl zMWNmiH_Q*GURV?&_ENw2r;8n%tK-tHgoBrUZi$uTU}D#eJ+1ZBJZ5K2-)uIAK*5a} zqJj(i-rr?n(TzJAbv0D)zRmfUtC?R$O!)Px;}mEt_Org7-MoIgUme2gei46b{{Q=H zw*PhCjNawT)%WfNEmhc@a#ASo&W?kBe}Aw1^u)7%&$`{aXKMy8GswQCBc>PAv46k) z-o1PC>e)A}Re0ZR^XdAT#XEQIyk2xreSXcMH#axWG*0ikEM58O38#CX3}eFeb+O7` zC-zo<|M51z{`ItDq2b}|2Fnh{d;8C~Te@k}B)qS8Z~s?+dm~x@HN5`l%gf*H|F^pGe15%OXsBrU`+INYpZ))I zTHm<*UCg6LkLJkzoL%!d`%n4u=I@)n{oMa2dB>gu-+o6OyC(cjWS{%dEg@z)+@-Ix zTjySO`&ho;Gw;amKfm6K@A{f+nB)+CSl_btYX249)10;M*cbYi%$AX!yqZt#-ig!M zYi^(KzG(*@&u$S&PCwkn`{%O#-{Aipil60oJdc~E?6!F0|Js9$jEpL(syj=6gBq}^ z)z59+*Tw8Sq&~mq(U&({7#SHsy&#>~T_q--a!a;v7w6~a?{QP!|MzYF%604HM6|nl zdsDx?x%uPAk1y-3Z{CnzV0p3aZvI@`YBTfvdnwn}MEdnIv0e6fFp;h9pvkZA&(6-) ziP(^Egvj8UEturkeQkJc*-h9{k>m= z*6;skwSNDs?CUE3oj!f~qt?3DSx*jCPrn!? zdF_p<@yz^sTPL|mh3cA+!N8BKiIze)Y+9EJIB|Tmnbk4lYJi-a+?Q|PKy9Txm7ix= z7OTy#`NWwZmHFoVdwzq==Kbe)Co(2X^>Pge5Ga3l=i$}x1n9UK5oMJ_U+p{`)X&euYH@Hyh~oOrJ&b5 zuB-9bs?#C7mH*R{{+P^MR~F+TyCZGWlXC)E;PIvvrEc?q9rC-I4rS}O! z>^stZ>Q;v0&grTx0*_o(7pJtYw#ltEsQp!vc7ER3cKN!Fg9!z{`@UA$%GZ7o+?;-1 z?sMR=L#5N$h57mU|NQxL;bn>N3?+zBpwX+3u2-*Jb8~Pwu%S9^+rR%$r^ipLjs#7d z=(<0*Rg~E%$-p+lG+WF#?aYH_e!B&G_ukF5&dtw%{^)2o=_)2ZPMzs(Pvo$u=A_6gK(cs$8Wu|?p}-8r`J zITO3D$Nzg8|8Dd4L#OrkpP8Z={Nu;t{>pD}Brh-XJ$(9fwu`l~1kaVLR|6v>PiC** z>sC{F&1q*3oj;$yXtD~(PY~b574Xa3J^B0n{_;hOntW%Q zJ$(JTyS?50|9sue>F1waSs83o_h-h24F=$#ObU{CS?TY?vp25aYw4^PDG^UE-nsMU zO1B|sT>0JI-R{xR(%j;DDbLQ#^xH3eBf;PUXu;v*W4ujGO*4$s`}TY;7c$sy{PgDL zbWn5t$H(M*_5W+7q@^o=eR;{U+z*;gS_GW-yjbQl6I6Cqem-kH)2dWUPEM|(YL=R* zOqFuXyHrlamKkqiEZ=u_F29<^$;mkr)ZeJ?tlAMwrkg}ia$RL`Q>aLeBb}yHvZS8=`(DrzZFY!ieLNs?OW7e<9f3xG7X5Z zX<7Z|Zu%yfpHDJGrrbF#mIx_!I(zJ2?A=G)DEd3pJ6(~C(pH+Mx$>rR6NH^}gZe0_N>v;V(7<68g@)kl@j z&wZXZ!$LoWA);oZMe#u$kSeHp>&V@b?|8uKl8mHYR{D1=+@o&Am{j!P!-oaix0l~= zbk~~)ErUTRYIo%Bhi^|oO-?eBd<)W{!k{z9>`Ov&r66Q17Gl12@3(!EA^w_q!qRKU zAyyPi-P@jR*zJ&1i_xGPaIXPK) zE{|c$m2ObkSu>%Wfg4HDJngk>*Ou8&S9pA6LKP_6sIf~jB8L&!BmsR6PN=qPXOG;2 ztpz|b=LokG(*aNzLDWN8ADbpHY(NnKY1yNo!hp{TkQ!)U(An4z^IoukY(BT6=I5s9 z?bGMXd2{V8aw*#)ko*wTe2$5V2YXk|l%Jp9#@6=b+qa;M_xC^BiFw21$q3Nch%*m_0QD#65nDq9wyBBefqHdO9R!`-4fkdTlQYo2zzt# zd5$Nis;a7p-2LOzb{v?Pds@BCHl6$Ce3L`(`!nWCT{=JOlHCXMC4R>@oI4g9AAjF? z%fy!4hao35x3&2CY?_m_b{*H}o7?r+(s$o)xw_Q)cjwyJh;RQpUwHqRTu_k_zv+*) z&!sJ$FCL!{{9pR4!dR%$^NqfZwb}E6M8yfBKUGEEbv-(&_fp(qesZnOya~zch1bYc z`_%u`p0|0+t;^Hh3yQBttm=%Qakj~Q zmOpmq-L?And;kC0^?$F|KRs)HA5>zVnQh*0|M#-}(gh0|vahcb6c>NKO<{w7h*kUj zyM4=ETI}AQn|AwLjg-ml%I^=dj+@VovpBfMqM)OEk+j9mV(HoD`+f6TyS6a9pX`u4 z*lU_>JpJ69g)98t|65|UK>OC|ZD(iS+*2u?|K83s`%T$B+YL<*3jI56?T)2UHP z%X8*=`Uln^h&5%XUY^lq5h%5ra5OHQwu+5DTS({5vDuc7Ok^^#|Ke|V}{^liytUTXb$$A#(dpFOsGa&(?@ zcCgLyvd{}JFR|TTsbym=rdfJoLGH4JJ8ypJf5ukyt*!Xi-LFepV;}4&bDE@*V~`P@ z`EK>`Cy|@4IiP>$JX|8ST*- zws^tfbsGJ9D@DKj&*AGy_D-|P{P=Lig~0GD-G^)vH%iQc?1li0Nrk1nOM1O&XYJEz?tXEsYa2bE%=cdY zkbQcruHV;HD)*NYea6eGHeupi&!{b2&D$n4F@?^1hlVM@Sn}g`l;pZis+@rcRjYw-mm!E{*nK+pUx}3E!(vE zRL1Y!GnPF(cjk^)(hjCyYF_5X~cqrQcfHtlZ{m3(INa%Xf^PjjVs#tW0Rv+MJ?O>dh`xSw#uWa-1q zzGHJz-u9&#os(AzWIXY#=45QqwPnU(%;j&Ut=BG{b-lr8S!wE$t!~_%QcSfAZg%`N zlFPEWHDhm`k#5Tw?xTlai(2O@{&kAKz3KA*+N2xlH>b-?IT`VNdEK;^Ssp6?W30}m zYjJqKw0?g@bi(XluZSwOXyLyQ20c=^@NU-6|&{^#_3&U-z_c+$4YlO^jmRN0h#{9&@n>W#Jk z?n`a5aq=wc6E^Bk-m-I9U2MoQC0*as=eGXdnY(4OeRS&6zOq+YcE7LX>#kDP(VSQy z`eN1j37fxLm_B>F;coH63A?oZ+5hqX6#uEd|Jxt)OWD(ut1h)~+x}mD{*wC5m)O1@ z?k_A`|5)bA_Z_mc*M9AvoG4Sa^}OGS(gxmdea+3E-Y!^crESpq=8eb~`x^&udHYI) zC}u2b&b-R}LwNQ)zbMC@znKn{TnY#@JoH{F!)nt^-PW}ag2Q!aD;QjyaS@Ntu{;gTC?EQWQsRtSxw&m~ctUZ06+48|Z zh1_h`O3UpR%b2=$o9nd*IL$aAa>0p1kwNq$r=7^toaEc*VpcU@pD=f-i$a4xk7T=X zXZES|<851W?nN?a-b`6OzW(_(zaF%QA~iJ?)PR%B+B$2}B%yzQ@Bg36Z}+2N z%^ID3pQf(=u)O})a)ye^%HEviTD*-fGBQkgelD20>5t91Yb92JVbhpAPuZOaD;2f8 zedg)3v;Y2;&t6%X9BlA(r}d3(pV>p&mrUGw^pD>@gRuAK)z0qknX`TSM&qm3=qP2+N#_aEzIeS)`Mk&AeUu*4z{G_x`>8 zbDckrB>T3-D^DigZacfDcFoKi<$RMKp8FoZs_EnLhP)R#ePyS&PJY#t#d9&!<@;IT zXYzBMwk({qXqTVDgeh+h?^(Rl_ue+%oC@pywio3VbLKW3Hvb@*ePer;?(WmP0n-oP zx+0q__GfGSKD}!%XI!7kpVceH^R`xbdyMAe!mQ+PzfS(2(!U{2_RD|8pIf5U9$%cF z6SP_9oWsF;XLD{>wy>R*;+tc4VAHk7Z|-dCz03OcNZx(ts12I(i`VO0rzWoM_dW43 z?Zw86zHe_`+xctv+$TNW_hQdXU;8)vRnC{$7v~haooY3Eb7gCYS>`E+{e0ft+jhv? zOnmMd{%cj{-y09Sip-Z!+LdT7+W6XX!rgM;mm$^LR;->M^X&bd!hg~)O;6AI_VDf7 z#?8-DeqS#vdtH5}|LnD2$36O7AJ@tz^e#?rRISdvT4|TXd$297>y%W6xzx*?{AJ4) zb%iA>6z=AmEV^3B?6*v7Yx+&`=lphsZ}t~VD>>_6`NQSyqnw9!XNaQRyyg$Xe@kkD3UL)^W}WG@->%Yf`Sgsu`F); zJ9Wwwi&*!v&pE2|%PyOn=r?jMk+;c?`hKYJ+uA;<8AcTs%Jd3q!j;xXXA4gg5!G__ zFO4;JJ8&b;y_c`%kEr#0*9}jvuzq6ydyPB!?nmw?>p9Bo&Tc!Eyyo@MHjxLi3j8-3 zGz+RFe*J!7<->SiCV^ex*aM4Ii{Ibg%zxwV_y5_2c0XP(_Iw`l(6Q{TeV*3+&A%gM zCm)#Boc{aQF}a{KsZuiztYd!Z5^br%rk+yp;|;5qmzPC#0k`2lvD@~$=YO&NDKc$J zKv2bmQmL8dQ5=dbxk8{8G~)}+vu7U%`7-mGPCs#0_o%?`wjT}$ZXCE7JNxFua5v{{ z>$9e=b21w?>`16#kUuMR?M&{Yh;xOjW<_VN(^N6vKIK~i@2h=lwG~gFu-Y;A!Kb}% zEUiB+|5sgI9k}{x&132N4<7g1Kl}CdwTp|(hNPohT-@A|+w){QJ3Cd>)hADx(z1NH z`p=&~Uwo~)wl$?gRCqbv z->twq<=K;>h3ozNVlOT1dZ&GPgUGcrSA#bE=SbZyov}ho#r*%e?w1#WXH~asn#DHj zwtJBB+>p2T&)jy``siQP&a8f}_~8$`Ye!kFX4+f--u^u{ltWR=wsh%LlPzY&zn%1| zi~9mif9;g^{bRc3#0{4n>*g$4czKDX#`SZrm{xVF>E4q6pl+or<(w*5I@jTbl-aRY z7MtI5r1Gxaa!*e=Kb~>djou{|pP4cj%QZ6|XgFxm_Bid$)b*=Nt&Ww7N^EZHF){U> z-j!kWC`z(FTDtgxzgy7yzF+?rl*&#y8S!0x_m`M6)^0c7rb%UWS=4#5-|~JUyZS+y zGjpiAe^4%my4{)MwqKvF&{=c!Xp2mK+ZSc?t*;}$oxA#YQn~o&)cpU~E?LhiKG(7H zLYr)y_tJ@C>rAJ%?~H$bmG@1S()sRnPd4ZO{WN*{j=OnBZbTiOXmi;#HAlg3+jGUz zr_(;)*H{<1=I#BJCO7x>6-V4p4p^=j?H>>nWb|SB{#%dkK8EDq&0 zA`U*>cwo}pZLgS;FRPx~axo=kt+L*YPhI=xu4?|RaY1Uu?cLL^uD(7qt)=jY`{8TN z?-#7Rb$Zp)(~%n=tNd!IxN^;n<5$bZ)OxW(-pZVaeRH0!w6<8C^T=V^V~1`1^%9)3 zuPwY79(*rlsjPPK%~>;DitnX`t-a+MsQqI0Y0I7I%-Uf(>ZQk3o35u%5Hs7B8Mm*- z(*D=Qem33T7yIjue0q9X_Q{2lHvDIopPTxnb>q7PG0w9)LH1lZn;vK;t6+R?zx{m9 zTQz3O_0oT?I{U`@tD(GQmhjxEGTIk5*Zr3ZQ$I3s(!{f3$&8h$Ys>6@|JTsEAhhq+ zqPgu$Cx~5gNIZJMa_5^RH=`Ohj&O3Z zX;e~Y*zbasdxd2^m&o7pPb%Ti`ur>EvVN6nM03=Ahq-wVe!ms{eKU~phdQH{kg;*# zl-++G?C4!NVQxa*_xy+miGBO_fo9MvDk>g4e0cEka{rq<3YEjx$2~3I|6BI%-Mcnb zUpmsy&%1c>;=%ua&i^;azh@)jdN85jt9nfQObH%|1@`~1-PG6i{&($(6UDYPE#16p5qUyFX=i^XKgCG1jX!SGBF#lJRFX?-Cd1Qa{HKl z(<=RvJO9}&bS9^Lzkbm}@(Y_m#>MaNs~^m;e)Mb8i~W744|&D*I7`cw?0I>9C-=*; zO|ky}i*~#%HnlsC~cU z6?W;X-M+0pu5Qz+5^7qhp6z2iXUp}1XCbn$jn}N5?H1%A`%`_j&;E@)XJf4D+Irou z3rI(#rIze+`tj}ZlpJ;*t68f~pSWAtGb{1>o(3jg^kr2^01 z8z0M*<1pLz^;)zthmqBZ&l75XWtiRcpa0afI)1{}AAS2uqrEMIXZn@RYSVn%snU9- zu*SXh<=;KW!e-5_`fhs0$$$lpG2vn#B}p>(F0sxC|G?QQbf*TX06UM!SbtbV~Wbmg?SosD9* z^`Adk%4XFY5PPpd(N@BA$HUlfP8^DHF5n6?aeh71O!n=h6;M1R*y0iUyDx)Jp z1)P%(8BMyDQk;}6Yky-~H@Dfmfbx_FX^R+}v^_ ztRjy+zH&_F>*PPHimsd8IPdpge%q?OMuqjVy`2-UP0u?~7W1w-`9_*ik=efaK-S@fj;@&9-eM_0nwJzSB)|jz<`3c9`e#igD z8PS<}d2%Kb{pC24Ew|h*#yKhn9hSJn0XE$ta^!{1BV~V`Tm9COad@`yz z&)N8{S^Rrt@b91oo32%Nj$}#Hmup@3?Io^GD80D#lAppsEs1}NPd}>N(I@f6#5`JT zk^QVGYjZrim2R-}tl$XOp3+x2%lFJdx9iP4e4lJg=J#Dn-?+*@K_W|a)|tz#Gm`Ii zEjkpi_DjC|>sP|Mjhrd6=MGHR-x!*@R%4ck(Kq>L6aJf(g=FN^mo1#sw2NoklGebA zOY^s=h)&&k^>9;D+2x*tUVCqwf2#Vq$Y5&b|NS{OTP!;+HV92V*I2ueMSH;t=YSmB z{YeH5N&f{)6tV(!?eD%)V#xTW9r@7S>))d8v8!?&*8B=@*WrPfGn-yQA;xw{J`Z|NqriRaHgo zsW9BTcQ0s?@a@~P>GNx^P3LFT*Vhlx5}h}1p3h99*6_H>*0wgbUAuO_n+KZHnkL`aWZIi?^udNTI+9V+7c>(yE?m5I>(=+>&ew0fEa=Kf&X$c*<>_^u zsV&xDwtG_F#Gs_hmESYeI-9wi`@_;1WDQQi!mnp;xi2R3wcfk$REo~444oZ|_r+w&|DEsu;A5J~ z%WdI)bNS9+ZSF0-T~K~o=B#C@jfGXcM6~n;EvZMkrw(t5@BdzTaqgePk2qiMUMAyd zU(&vDPnsmB``5oVar%Nd(Pz)xxYrZMsd(g*aj8M$mdmgDZl>xqO}8_gDRYKnu}wL9^rg$5 z_a{20jq*^@N=|BKdEY>5SuPfAE7rY60Knj5yt87x$!1bA9{b_m|wqm2<3as%y>tJ6nXSEH~}(vEDZp*G!&m zo&g%BD})TwEl7$?Q`1f|$w&%1amJ_R6qDBNgE!*Zr)8Msc`2!BwN3ewWAyBj{q^}9 z7j_tzAHF$jYu}Cy35SxxCd}MB*P^ugKl3FvW(jG(P46RwH%dk>;i>1G?hM+>SyAz! z-TqJG{XfslRn*jkgoO_;pI>+C>}>O$#n1T|WMyUV>?mxWHA`xqZS}EdXJ=Rbd^#O8 z9l-eE(ltEe#Mm!Q?%?8f7M|>M?BCm#`?iNyS}i`jX;Vs$#siZ$iC z>7>mBN3Wi?4F{ghSLSBMxHJzn^U=jz)XSLW&Ve*0s7D_bo4w|wXprPN&Tc);~O*0NixxNDjodvqB3i@$SD2;s^$VUt?5RpR2} ztJ*Bb+j!sHzv0#F=Ni)U^N!q^OzjiH7@Dc$uIdSk2vt(Uh`LW1mhIu|e`I&3&P|L27gt{Yq`Uv%&Dt!P}d z?>u+IR|lbG2lAdx$hH1eCp&@T$d|uwr9Rbue!nB)m}Njtoq|i?2mWqlT~(P>6Jrt3 z{G}6Q!hylctJ|tl`L)LT6^`MxZFenegH5-`CDrHY{5INTF(u6*I`Y8AZo4&ss}0Xy zy6W?A-rW_(#wYAHin7XHWv#wB^?t*}`=2=LmCvSsFIIWUA{nW@;$9(RczV6D|Nl92 z=bi-}g;M=~ue+BQ7q__HoA~FTMt}U@SK*95;{U&{|JeWkNB@>BTMFLXFg#$A`o%*s z|M}+R?R`C8c<#k6W-7U(YkTN+WvhwwTup87wIc88q>YSkR=r?(pRi!%9~H}=rV>+C z*flek7MzbewAt9Q>Ywa|tA!gko&3Tr7Jk{#X|Acvoo$obzO2o$EV%NeWcNG0rSA9C z*5}9V4}5z5TDf)hjm_3AXL@w{)&(9|uymJ3yG*t|PqF#(Q(GtRT9n1}F~H=-%HLsn zZ|`>2r>V_!zrMif{M}3P8;sviS}89fZ85W$&G(wMj1}XrWksh>m7aN9A92Vd_@Lyf z$=fE^MmWD~lZ`2|Jnc5?{JSJ|$tBC>AFbdr$XKa!D_bkN;Tm_@>FZ0aN;j+xG`{yN zBF<9trsNXQCBZjdE$Cra&#SpLL-=n>#a^o{ZoXgtC)C{1oxE|K@^;C@+Mg}Fx7z-G zOI+G-EB^HHvNGOn=dVU&wkOZ~esSyBhkw(cS;_Fi`px%Zn;oN1E-lhknRWb+&GP52 zt9e4qSvG%skoj!Ynd?(TYoB|B-`YG=`dt0uooNT7sy9zko1Qd_?^QL=ulZJQ8PqSa z>0h3A^UN`(=a=6U-Ss_Tc;#N9LE4F3-)^nq4%xWoe3Wy^{Q&>wcY05cmrV{&tg26s ztYgf)`95fmn}6!Lv~N>Pi`BL_yg0L1WZm_}m$wI(zZCL)#xduknftdt4Qp)KE%wJ9 zT(EZ83m-<`*K1oB%(C2_t-tCFkKdG*1y26KKRwHy^}U;FeXS(yS@D`Y`J2zZ9o8>h z_rgN`wMoXj$0q$f+AlXpY`3^=!n||ctfsxYGc)oZ+*l_wWsQ%Y_-aOGUsvm!)5>pq z&6c>aY2!nQ-+d_)HvX5H9l}sG>s0?n?e%Tyb4$(ajhQ4~Ype*UFh6@><{dWa#rNJW zsbrcb9mK5OrlZa9snL4|)B2e+=1t$l{ifw#vY(;=UrM6XmYU2HWiqw@RhAw2sOV!{ zJ)Ln{e~205RR^;P*{Q#ik4DV(k9%sj$!|V;uIY5GRTs0E4DZ&0rsQKDPnFLQP zQjr^zSXBjWTR32A0aR5hs;a*2x3;jftW?^p9G8&zy06&cpM`W;C{OkKX#!3=rq(mD zpHE+Se`i;%>G{Jc#}CCGx;FQbOO)hnbGh^>`FXPTpt+>e3m(4RDziuT?M2baoA#-1 z7Tk8#viMoS`+Iv0eP$T^KB`~G=#ahouX|g+yglE6!|nXXm*>?ix>5Rz;ncmYZ~imM zJ&##C{q^DQ3wH0Gee9Uqp1pfJJ31H^?AteQ`@O2}OP4M=9*kE! z)>1DKxKT6b{*q-y`CD1)TLqF&+e`T7FeSdwoXmVqMf}XG!|a{<=bu+ZGPi9oF*0wx z5K_ST)KZh5-%$*IcnL$OSY8W-38U&mJD0CrgmD|j^K$dZJ4 zOt&T(H^xT4hD@4(7BQrs6uI#D`OdjazqsF3&I66wwER#iDCNpHZ|FY}v{lv(UvrD@(1ulez()I1~DfN!tmRh70I08;J zf#Am1ktGVjX2=U!S_Jw|ih!nYK(0ZUiMj&i$p7>A{vN+pd++%#lWh_zy@Jza4;G`SPqUM)wW<}L!bT6$@V9&@BjBTj=xz{Mx5b>-5Q97Z7hn9 zuRYnpaNt{zRsFx3-PfBL8sb)8f4x_ZiGhJ(!=X2Ca@MyqFxY-SBJ8i?nYZ`rHPiRy z-`?C*34^<*jcE69G%$kQLq#tRYa<frBkCVC!{e28KyDUkcB(u$y`_ zYVGUg&NuDLEEYH4{cbaP<;j$kpZwP&l`p&Vr93)t(x>Ojx|(vZ&TTx51`J;!l3zs} zQ*$@6vzzy8leFLSA2%ZWec%FmtX8&2v)S=Z3H6^gY8uh<*!%tw$IsaH;MV{ zOOs0{&U{=vbH==rS5k_W8P2%%VWEtz$($&unR52Cjy+7?nR5Ku%*T?m?IwI=UVrTL z=3rsVsz)VRTccimRr&hY(qh-2#Leo*i;602+S_)yS=A~%R$q46GPq!I;Q1FfBKUYp z_huxksUJUXY#ALLv+&N0vu_?W%GhqQm)@Ca3ifn2%K?T9!OfDAGtd24c~j2DTqQ}$yp5C|^Jkz$|!6yD} zpZ@0`I%_S<-rQL2n3t@k-q-W=$BiRL7wnjLS@^h7b%D*}*o6hjRW|MYylIb4d|=Cq z<^@^qki?zA@M7n|=Ho>l&TQn@)6@Nc`(9(zxz znUZ<9pu2L~!oTgsIVnc&YRfjgKT$gGbNS!4;;C%L zRX-x!CYzk|N&j@E;@Glm%YqV}#jgdEzy;n0wP*)s2mQI0GdowBnpLgqe{$eWieG%9 z{)?!hr*9W!H?K5LTVEOd^45a{spb0RZ1>&H&G8G1R)~?7Irq=m-Kef4-cRoB9CdJ+ z+0d)Pz}67A>bh}pQC4q3iJ9@{uUE3}+DERO_A5czcy-E_&CAt|H&6M&mzGjs6uf#* zMDjPEH2vv3{Cz1Eub#Y8{PHHmZ_dsA6?G4ey_{pQ^_0RZWy=XOWAvQBF_Z9@qk(b3 z^sL2}d)~YB$;^*SO?{WMOua8H>wn{$=w0=;&6|yenMAZKgE0Pfm9C*X1viHnyz%;_|Kct-q~j*48IaKKiVa zh)I5y;&-LZxa8(@c2Ec>?45FMzWx1oUlkY@Tz~cT-n<3h&OC8B=0DGGaai=JZ0X*V z`;8lAj|1@)QvSpFh%Ioe%WnU87^z0s-S($8E^~ope>rr;|EM?1*4HJcp*^TQS zT>WltZ8~wWx}W;o>#O*mKlta?H{Wu?$G_d*XWLp%n|%1OrOB69uh03(pWpcSa^{k0 zQM#EXuOwxqPd6@n_w?jt%epre%cQqn$?7$c>NUw)ENNY3@Vlx?D4BtQVcX)Hk?JB$ z4eIkMlst=Guid_`a{uP^^J;<&%np<8v4d*014~&BFciFH+@QMvoHD6dFAij-;Q}ec z%XZ&=ttjHOGUU})0Z;@oRCzJ*FwAy2vHRn-S;-HuH?%me{w`dkjppRXO{oe}24;-c&Eulb;wOIlv7fkw!ifhBb@diSC;l zy8mq2=Ie(aE%H;?e=92o-|h_&E&)^Tw7Cs+$HFdwjbHRt#C-!cc79;{tlY!fD@4mNm^ z07&X}+~3?kdjmuCdG%>uyTtHAVN?dgr+blwF@2j&hFB5e9JLFR3k z3ySNxoC4eVkAs^58d8h~3^@jhkFPz904ZQ_RcByp;N23+bo~3jy|X|4wy%4;J@e#ZX%Fz;;T-Mr|hGr($dSU{R5EMn{3zGvaAhySE&CjAUkn>XkDWc~H0C#;JM z><3q04Gf@=EMz_wbnpAQe|L8OcALL^?#r2J^K#c6pRul(rPbCAWZVJ2u(w|s7#d!G zel~y2)A+q>C&}NA^@@u)kv}i%$;0R3`L{o}{rmH6?_bHAch7zQ_sQwshEJ~^U)z=I zxpWHu{oUI0ckG?BH}iS*`E$>c`*ol6mcKoGoQ6Vhj&?BBO;O7YpU ze~(tW?fY{*%kulw>7Q@jRN1}i=aHvu6;szw^-|sc?_T4ZxmA|G_uV~r;PtPfKmTGY zU;H`!^Udei*6E<2V{lF9&S1E)EUsqX%$MO}`~P3Ny!H(5luhQI|8=kSn23Mc`Cccl z@Xww9v(6uWF1|nh^|riX{q08K>z_5=K7DiYlbg@i*P6b&x-abi>s33eA3D{2e$;he zeE$9k_y3#@y0?A(9BJFD;0%1gFPYVVA;){^p1;d~eZH{I>)W!qU#4%~zO%yVZljka zbFuiRLzjM*-nJ|^+#CCPTi)mN=SBCEYkyv`E`NIdUDnfXf74Gdv+qp$nH8U%uwc&K zv+sVZK99>ue?RY%=^iPtS2{%xFl^9$E4k|FkLbzgYo9*d^Zk3=$@|r-W{T_GGrOLX zx-RJ4y`{y!r)}E)|J3%iU+(Dlx5O~^03bm?bW-PhORpMI6!n{t`|-jw6_ zrq#T(UVC)vuI#(la>GsM|9x<_^4Y=JpTy;*P8_Juf6}e5=4l=OEC1}D8+*;4&WvC2 z^q!aY{+}Vn&-wL# zyzIXJY4eo_MS?@()N}Lg^Xpw1%Jx+4t&8o?-hSIV{`T9lsI_6U&Zdcpi5c13&j)Q4 z%FEMR-2Zp#R~fzQnV)GFP^K54y;R2Vd3=9p21mL|vQ18^NLAPbQ-Ej_( z!!$sx)f@rF$Jd_T0Pz`IRYAp-O2(Zk8DRznh6Ne7z>d82wrqVnQw}4jx=CO0=>7Ad-Cl(0Fdw++TCjqpGkSV5sDKu^ z80>F5wS3QG*_&Il!|Q%dueYrJ_QrE(j;_KR6L5w3w8(O8nD){j&l5XZOXcP3S-{qR zd}hAi(%ZMpz{(ao5+9 zzN4p-Sr`}?0$8}YxmSj0?R?y4{b}p^THWvWs`In9M%BH0UZ)4T|0Is%4QS9HB7JF4 zX6DkBq6eZ+pL+bLUk((~9<$D-%{rU5>S|WqujTbt{kGpC-tB(BkB5inNqYUa^y16D z<}ce1@F{@nsheIqidTkcWp0i7x&Hh939YTICbQ4R>?lxN8>YQBEc@oPi`v`!pWQ0? z|M8OSq3>V6E)80_Bx>!lpqKtjgLXc#00oW6!9$0fR$a|nb@k|v=dtgr!t4HjueX=~ zaezH&_0^*Pf4`@He|PtnVn6{?0>ci+r9ql+%c@^yKTn^_uqkNelJ)EJZ=T=H{NP+N z%K`Ic)zQzVuHImMd_mC4HM@RYpLPKjhD&o7SSxqSYp3o1yZwJz*4A17I7Fs^8ajdBx$YP3+@o{h zZOg>D56ZVPSO_x3uRi^E;U&xOMd}Ri{@vniUOO}nhx7Wt$eh_7fpL_M6 z!%MsM`Q;~W?^UYUTKxZ4GN{Rap$n~ad$Q*eTX+@STp%uF=P2_K84$FzipbjKbv*0(}S&RMQ@bdzb5-*UD?h{ z#h?hw5ubZ?|9SiWHUEC}|F>x8lRc&X?~(p9kaO!kiq{)fe}4xmA?oYv%iiAFx+T>l zKSN;FOu{?R@X_T=p5#mu;V){IucvHBfWQA+Yv+_5IWB_J1Dk`MNg$?9SrnpVt5X zy8qnzzqi&uo&WE0{Ve_ZpQkIo@4i3Rw)$JlC2Pj6r6vFVRG#i-xbgAT*I&ErpP$wX3XhUoimz++yw4|(hFonpT4W3Qx)%$eKwzHPJlaDch;>D2H~{{K$e zpSvubp zgM))JO{B!s91h-Ol439mD8I1dQ~jFO3A0bvfD){0sNVGACnqM}seZqA=ihI)KhL_p zN9}Ey_5MGn_s^;S!T&#TUd^YIe}2yYUs?Aoz0R$lrHld8n>I`1ev$n!K6V{{J*cZC z(yhDT;VV#i^yQNG$`GxaTeGiUvaFNtbyHJU|NLaKf7<uWhIRvE0=Ga6XsEDY@2RIndHa4o^Y&{sH87Y^{cfjve*N#;!CF%{Reyi?0J!c+ZKJ(C4TM7br<;@R)*|aB3Cl&_3OJi;jpw{43NsG*`XknlR+vC zw58wNo&IkA+CA^5&f{))`_k*|$8&E%CGyeG=fB_G&R=qIof+eWT8WoglITZ%=+Ty>(TMVcoT~t7;4ly$TF$ z3}zwa&3iA$tPfkgGVE_Y2SavrM8t_hhYkf9*QPH1TeZ@cA!dE=DqjYM*C*q*GaT3z zy)(w?swN-Dvc_o4U z!K{$gS50Q0U2UiT{%XK%h8=>^fiPc2glmUKl&;^DWj5PZPL||6j<~sMzpG5HT~%YacDU*q-0vaZ_qSaaVSG@vrd&60 zHp7m=A1ZD{{m}l+H7G^k5CB(qY@cLQN?fIEq3PREKt58$dI5djMBKdVX`!6<#lI< z1nFBRel0X(EU>-8kD&;hl+nlM%|dqHjr%6buZrKWKdO zI>x@hfZbhMvg-VEqq0{SYW!D>tKOuznWr1f{t?BHle&5NvCms~-v0E?df)8zz4OnU zdAO11YgGUP1H&7RZ4GP;T+8i>G=5JyGskXnirVAfUYfmg&g4uoSyr?m&g<`i2tMBH z!CJg&IlCsF@q7Mb;YFUSV%sOJC-4hCs14buJ1Cv*16rd-?b zJzKDGt9*N_UPUGGVv1jg~wkJ}mhKc`%lwf8@J=-&7I z!iAYK_v_Q;EN05gsj#X4;@+SB$U%Ak=K~qXrtNy%>mx6D^0&SD)P?=Eiv2cKHtny~ zKc8Ixx8Ur;Gd?}f&awBUm;JAhtNruQre?>ylm7Q6Kis%dl(&k3>+zYBJ@v*rAAk7A z)8Cg`@?f{6onh_C=l{y>zb}-TD|>dMyZlLUIjM7J-rLP!7B-%%ezKE!@y{P8tN3jH zWXRQj;kKNy{>kI_H|8JReI_RMt(0_Z+-^4i)HlWVW6kjVi(WnPG1{a*bMBdoAKyPS{r}+OoLM*a z|JcF&+qfjn;Qjo4cW$T^r@Wb6dG>FA`lin_{w|h0x9`r+nH%R=7)^CYjY4=#!Q5(>?ibVpSTy&yz1R-Hbxce+a#@PFZ;R%GhA>;}>R}nYdAX z@^AUtt$KZYscEmy`N+&Yb8+(Tx!2_w7!qcK2Agi&+xLIxp2u5vZ_2*D?#->Qx9-$E zZ~t`Lxcqszoc+wh&eQ87ax)Cpe|zv+Qtsw-V_|k$;Hf)veEx$Jald^j@~y@__A3Oo5sA$mWChS zK2hg;ejs4d72~Q36XyH&6FWt6! z8+D*E_S?5v^%L6vzmWcU%v?;r{@2{km8oS$$G^p&zI4mjva+DmJ~A4%79jqfeVv-J zyMNj%{e6?)|2e9>vwp#Az22K9LFX@QwR!ty=9x07Uw2J`3blQ6 z@04YjeC=+`%KZ`G_UZ5(nf=q={%0?Kab^CqhliVITK)RB=kd2#P2S$LH!ja*_J>FB z&YFI0VczC+quEcg-~V4N{@?KGBl{J*o@*C(Z`TZEU|_i2r@Mf$;q6+xDHAVFe6xGv zbBkgv_x(oGx7*hkJ)UbjQ#w89b=;lk)yt>3rL9lBm{)7?^~|#~r;eXFmtuA@;P0o^ z?Tk12q-M^unD<`or26|a+4eghJ)8V^<{a6x|5pF~v7Yz&g&!+rr2Ny;)rudzSZMQO z;lwk1b5DYnLdSkJ+4O9``Ks%|=N;Pi7ihV+hx4p4n=#d%iGd;E^=2jsh6S7NrhV^E zQ#1a1IDGx}wr}Yv587wiRPK7culu?DzB#up9PHsa^YqG*kX^2+4>K3fj0tO(I$gG41+VOh69;1a=C4byNKsLqd-_AbH(q|% zf7}cV8~%c(`3x*(F>hC$Z&{PNYj~J!S@A^n=iHCMmYeHebe#{CzBPYhjnRDT0t4sA z$&!+D&VD%(v2UjQ$>VNp>lc>Yon~#n+5Y$I$C9_>&(ECf{`uqjv#RS)UaIYr-K(7c z^NEMs=7`lr&qCDtYSe;%@1HocQxG(8e!vVgNam1h;jS)!^89=2x%dD5V6J@dqNJ_Q zcGCT-@41pWXJTSZLr;I$c+%$Ig#b1AJ?i}eT zGV8G9{3@IMMnzV~?MnRL?R@^%(#Uj5yWGrEKRn(_WnB-EtIbd`-v2kj?#n-CN&C(A z`#-&FToSfh;?1>9?>&}>$({o>w%=QpC~an!JNabC2XO|51Z%Ci_VxSjzIJ4ASbz2P zq8(o^B@b=l8o10gLt$z9XwfEL2 z->p%;(4n9ZuSrYSYrp+*>>@#bNKciq1dz@ge>!^G~OL`(GZ8R9(gPK#a~Vw?71R6)2>iO{{QC2 zJO5uWKGbJmaB$>oU~F)DwdThyKeOc417&ljpG|6I+i=nBzj1{^dHutSf36+3pLbrS z%HPg%I?tW5a=UL!-9JZv|9>L1*FE=@?p96)h8=QD2@DChwW1DJto>fB%llx_+0$u} z>wmJBZPWcO86$u4Vf+4xhxz00AHKTmUeIjN*fnV7#I~thr53to>8;OsRknZoRjGZ} zsc~kfx1O`#u=(wj^9fs5Zoi_&!0;doWw%T{^QZq&dhUv--Yz*7>Y@KxsHWSkuqBmVX^6KTC_cGsYyZzR5_FLCE)6W)d z{d~Vx_D1CuwXK=PD}5Ol4r~SWk)m&9^*(;rR=E7;o?Bjv-fr2oVt3^2%KD{2nJ+H| z>P??+yY9EGSRvSv_2rvm7t5B(ZS~B(#giq>z)-LkR5owBaMvWRGV*3j+-u8iU0bC# zYtP!-Z^{u>tSL$o~OazB(kTY5L|{f5e$I_uBX z@4g#n_TT&ag^YGt$J|%T%)U;$#lpZ4GY`~YzqBiyyEII|boN;l>-7t7=9o>-{e5Ha ztyRY6)}VlR^#1PZ)$60yUc2;>p-gP+%h0Ugd~kSXft<7LLZ*uO?6W#LIw~(;f1O}< z_s}6Ht*NJiCYwjv>391+m}{;-JN4uDcURY1m|kbx>Y4k>6qKGKdiPFeXwXf6`jgrE zzJ7e_*3UXRIy!s*zq5RmV|y!;X|ti#=R39kPNjUkAHJaC%Cf5~q0zrukb#*YI_kMi z)7|I7cUJm-J6HXlPsWP({#+aV*-NYc?bbhVZn4>3FKD`r=mk|uy7{TWl^<)Gto^_L zes6dEk>C93XE%K+->~_r<_6=HzTH=#Y4+-m(+mtZK858a?+BiKa_;xNMRH}o_T)^P z`Z>2%^i59IWhH2eO)v#z2k%{X#M-PYO)s7*)+sBQpFOd+c;|iF+qs9%Ei{WoxBwc) z+cHx0UYT5-yyjL(dUEN1Jub6^^q|>#OQCU50_qLjZcF>L=xSKx#>zA17tW?10@-)Q zoPptjF9Q!lj;7R%)yDd_n;)|reX{@U)tS@Z9xP;HXqf8`lB|@PzIyY~p=-H0+l*~5pV@p?Me}Lx`#0zJ?lylIs({h_%vU=x8-<;}yH^|SfBG}I8{u%q~B@>rFyPlr2^lRm;*O&h9%Cf6|?{M$? ztstZ8XT<}1zdvnV9(QW?{JiJW%z2;i--|xAGu8jXx$E<@o}8{< zJFPgrvT`G5EX!1{y1#pwEC0^lGs$}2Rj+STj0y_9FY-+JywA3H=llOzPj>$EvirL* z%I@p3RvUxKbAJD8{qw3mC*{}FlppKvRz8_KwdSY2>F1p z^S?W_{N9EM?EB(Ru8*Jdyw-pF=I@XRzT$T;*HqS=+q-g_|C^l?e*e4MYIEDC?n~*? zIhPaIyBu<(=7P!}@EQ~bm6!Fg@&EF~KF#*uZan|V%>47uqpMd*-kkj9e$ZKuV#WEt z&po=17;NF^FnZ0ET7{CP| z0|P@gXkbR=WQ_LnxQu7c@pH}_Yv;YXfA>_((m8vlKDn7TY09SU``MGM zI&#O4d+T$~2k0KZf9ur3`_-2B=lK7+A9DKt?{ljw5{jo*zMFHtsQ2+?mGgh!b639j zuJ`0}{)_V;e`ozX@jd?JVg0zf6^z?-wq}-s>YW3#au|6TCZzoP$^G+iR=nNU$=%VW zYTeIY-=3WEZ)d9y@0X_wZ+pM=-}L<2KAR7>E-m%Hl=J+Klcs&;X|3(K!JjvCS8fVA zt6rD%aqsu{T2If0b4akUO)`n@er~m9%BS!5qbf_g&u)!-4KgaE_=j)z=k3q0?UUJO zF+E#${y*ENd!9bxpKpEt%=c&Bk~_X_=i2aeh41R%*$fN}*VGu;7(6DWY0v+6D(2kZ zudzQjv*({P=D#=Pad})0-+A-TtK;`ixW51MvN?4hmf3vU_Qd;sX6n01>Y2~I|F4}X zzx(?#o6p=^??ksujre@_&#Um~#@`_`ftG(4M*VyDZmayKJLS(lAN~2y=A*ZH>aPUd z{JLLG`$|o#Uh zhwq=Cb}8?9|GVFgzkdG?UK<8NT2n9OZJ++EqOQ*F`=9&kUw`$u9;hk*MMuw_)o$B*ECTaisTLoLMx}kN?&uc|_J1g>z+UCDF{jf?q z{`z~y1?`~5UBd2_->MiG7-DXoyRm8Ml=(H;y8HjtPZ8gKeopo?d;8SWJ`HQVKpE`D zEO2`w;rEuOT|3vtSjX2sdRp_fGp_&fsV>v^2flua+%V_XmFT0h${83QxZPlqVz^;u zVkW+J4*Ta#JF!)l+SYpyR_^@1|MK(H%`?&yOs)TJcFcXH`IKL z%RtTsRq_YGt-Wd2ZXVizXZlhbG}E~8?*07IyS%sG1uR^@UVo~W>eVdMsb2Rlna#fI z`z>sB=#9#oI^pL3|9XGEU(1Nmyq3hFnlP=YU%r0T{asmZyz}#nw^w}L z-P=|8bk(MFzt@JXo<1jgqp;1E+iycwUrjw9-U2ez`2XDE$aOJ^skeP^NP-&vo54>1 z3MxHsJ1zehxiVzh-!(UL^h_s3uf3+)f18i@>D5`AwP){{JJn8m`;9mAroT(e7krkw zIp*}Aa;djcuN)Sct@M?42c^$E&8Gh@ANmPzx$F|RcIKR%w{4%E&e}S+ zSgmZ5z6eAd%%Eiubg0X2Vj1cKX-ukIynF19_n z>GPe^`SBa7xldl5bv%0G!aY&V+kW4vz1w@|U8w!t{w|u%Cg>NpvJ;$M^FPW@@}+e+3UQTZMWa1uI{*&C6&Ll?NgNR&3CtV&E9o) z`nkWm&bvo~g2~+KzjiRh+_FZJ3X=ntaLRt4&_>8`EbefHgFj!TOGCw@S^|mOgv?V3lc6x0(KI zS7q4{2@rHXJCHGi;W@2F2uCw%J}1Uc2t{-?DAB z@78dX=_N2Q+^_+MWrKD^gh0Z&)bsQ1W}1m_+Hk>V^UWABw&|yrE)_k*z;NIg#Qd0p z{XF+>y;jW0Jp0UP7B{!%)MuBowoc|a!^p589O{7&SJ&5lZIg@FnrdWjK0R&o%zyv> zefj=<`PHnYH*=QV&0BsqZ~6N5`cI22xw*MBw?=7BKb^V#cBa|vm#<$(FE8IzckAu9 zOW(!yVm#{W>;FC7|7ZHo`gv7G_CF5h%sRVd|Nbeq)!&{Roi3Ga7ruIHSwhU(b$1U% zMMOk={`QG?UPr~=GVGcq)6g~al@2j{Hc$9(=4v~tTg;Wb6ot8e;%)+xpK?Y`=@ zGRE%~XkcsUeD%mZZ@td%KWN36@!eut@5@Ku?SCz{pLO%*%`LZ2X2BAGZ4RyvJ_$`5742xI%+`fAypC>wErs zXVRIk%|bLXEufBrf9 z^ZE(t|DGFHKHvTB)VkQM-3y-|EoQj?pzlIBSHgBLhdRr-4Ld&DS*_m3$dI56^QyA^ z&z;g$f9~xyPpzxdD=zMK%u?5Xm$Lir&!=T)SmWzozy5q@XYtP)5Bs0qulx7eb5bk! zfBWikIkoWEXMg|4rmqgp4u3zFb&|lQMh7M)rQJ;}t|Bsr7AZCJcU$OvSkPx5`7E*R z;z3iLE_>GkNk&%JX$uZCFt#dqH%wsQ^yG-FUcc_uDywSS`Z;#@OWak@C>t&K{(4u@ z(#x^2rK_yM>tFw>+xNZpx5P3}36>XaU+rsJ^Ld3JhXHq(H?tgo9`&o(B4C{ux&H2< zigc~1x8!U6u9ud`E?VI!;3Co1mMXaRV+hj<+}D6x58UzWCJnJ(+;UbLb!G2_K9 zKZ&-AxDRbM|KbmQ-(LS`xzTASMen_F%fnVbG?BV7lSkmZ-MOcq^Dl+|JAX6sz@M;n zkHo-1SzoOJI=BqFh3yCT(xCORCug3O+Of{vD%UXclirzGTdgOn`!Bnh6SOiUV&5N0 zkEI2_*)z?QOYS;dRyt%5@^;~W^WKKWev#;5IK*3_DX3l81i zUvlqleAL0;_J4m^d!;dWvqH{j{*gTa8qghvC)M7ZdnUpKiq$N$#|&4t@fPj0X>Lv} zvXpM9y1Ov$yG7c=-#>oblz;xfnQvM8C6z@6F4C)c-oAhPbfSCR@$miMLc{F#GhH@W z8MazwZgaCj-0V$}-Bov)x1Cr0w&(5JR$gai4y8$ZHr?#8pY9iZC5vy`($zB$FAZue z+S!%*vi{1V3iq9JeAhl(@LHg)$M$;4-JZjtx6M{uf6b6$BpGvDG52s9>c$v?`Pp9>d7s{CU z9^Rw_x?;`l`_A)*Ha2JCs^1=cbhO*hxA@K1j~jHl4R}7*${#jRv#C?!abBbmbbq^X zpvXk8r6CqEtFMM|zj^ZYPw~|KkN5k76GVskENCux^#0rr-s>Ml9qYAz{0*MHxjs{L zqJUG!e%nA1_62>y4=hp{qP%i*ZtiIfT6sWS?}tiwOd;#a5G_9T*}f*R%WX_tR&Jeo z?pe1r^|Lt zzIOF!l3;_|;=b2xD&C8pw=M~KV8J)<^`cCvOl!UaroPIyVmtn=G!41Dg;R0u^U5Wc zGex;}uR9Go=lAFN`o49q_k7>`{^)0$HyeNVFX|AFubJpBSJ_gu(`WI;1?$)Mzk8R* zbNIj}9jRWnnLcSw3a@|L1&S>yra^-OPFP+iqIw#T>KH4cQXMTGr2A zw(?NC!`<{hw~n0mg$8RkB3SFy4@}(<&Y^hZ^+Z4E9eFZm)TZua{=4@{k=gv;f5d-0 z*RK=2UTDD6EUF#$;Q%xLg$xsmzh5p#Zh8`z_RelHGoMAn!-I}>eO?w{8R)0Dl|3~SphLWk+FSdRC>s~K0;XPmactYWwgG*m|v^seQhCX7_iP<4= zd)v#q*G?}wE_N};>|~m5%=PNC&!?Y_atS>0p@5Ykmi=H%xqa4l8glH7Oi0@eNuzh0CKfR^8al{>EpUMH))8&j#s;aUPyvz>{e< zdsWl*&o(}nmn>fF+`2hYV$#_Zb(uF_?~4DFzKMAG`nTQJs<}C4-I=pi`F{SvP$Mt?V&qY;5+gKQ@7|s~b$!b|Cl1AbyKC$N-cHNC zee83LjQRs+d7IAqe~-jDYvyms{k&g)Psi;1oip#{){1aNuG{~ws%raJ#t+T%cMcr? z_fbdctJU?ay}W?{Qf;A+-N-rCeL$0%^9k%t!sK3$#jD-P%t7dG7yz^7DDs zea7c3nh*2Y&vBQloALkG`u~fTFK-9!bC!it?l}9Z*SSMWyN{*+*!5v z!{4rElN`;ZSg&46~@h}kw!t_V%O$dN}B` z2qd{DN`(Krwas^F(BVxbYQFCtZVC2hestjT>hRd3+xKmiXgIgd@6}eVy|;g5Q*r2i8|#t=M;}@%paY&KTB5GxyDno%`kMw?Lg| zE3Rf)*Y@pNx4QCBq6GVjR;N2@R=Mdf?p_n$?#b6=vB7tFW?$=qS<4o_w(50bK5Ss% zTkI5&HEY?bcVBDe?|)Z6bNQ<=+wimBn9Wvk%6;Qwb z`FR>6Xiv7sn!7t;YXO`%K3-RVr^G2Od+Xn2gSNTXx91+$U9fmXwVsWf^%rXDTpUZMXEeQQo^OPt`f zl%uI3ZSzXGQBAdrG*zVp88Z zGrx-eA9en|b&ibWKeK#wwb0d9QKB-@ z)B2VzEx4PYbEc)_)}okoK^iG1pYmu;?ULI6y0Y-~v&MY~?RPy}_fD_o{6PbgS!b`u zy{@qjcvx&UeR-TbQ^NGv<;FHPEr~O7Zr?h6;>3v?Z);86uN&~Z>Xo{gbLZ5qxb?vr zA_l&bHM$IVn%x#Vn$14?y>`}FwQae{x3|q&``Uu9@9~PQ)+^8T##c`UE%w#_|4BbN z^wh_)a3f=jl?HxH_n-VOtC61&Q!aE*s_o!qfBUn!+wZz9zLyaF-pnlLhC_V3eBa{$ zt*JB2^W{Jnu57vNm%M)OHzgkDuX`qE%gC#M(y9~3$23^8=g(cwTLH6{b*4tnShjLi zW6;Vew{-Xp2W(x))8r7!#|df-tqOasHOKds(EHu*_hszz%Pk2BeRXb@>FmBfzH@(W zMDp!f)4PG$9mijPUtbRrMUEx&j2 z)bsE?&pvlAs@P}f@ZdMYncK;7)8oq|f1kPE9{>N>^_s7%;}>7dV3;7ix-Pd(ab-xC z(?SP{Hk-d+F7xp4Y)ClRWFezI?|Ah3>xRCQK}TFZ+4uY1;~$UvpI-^~4=t|sUMjRK zb5+zh5ksyzgY-r>Mt9Uv!{KkgF=BhvU?!|?zi{U)5xZmy+ zulb#Z*SpTlHs?RRX~p%|DVuN3?VAQVhNMN{QLh@bu&9W>R2rMRLAq_>sw$n+hd$ec zUYxw8hDAfHdy1E8RaMmtyIQN_=jT#?eR=ui%a;qcZmo*)>+9=#R4G?mTe~K5a~r5x z!Ygfd;r@O9wPB05Zx`=qPC31)Aa;7%=9R0u8NSYVyk2>w9^dir??s$AKAJ18yuf-w zT$e$v?nk23SF35M7q4FKO_kQEu94hdUm__U_ajnjU320~lNkQ97djd^D!%PZKapbm z=i$fH7GHy{A`9ggye?GDQ+la0C*=99vOQ-XR~Bl#vG{l<#@G9y1#hTm%-U-=i_hCy zeu#aawEyq7#~sRj2@egAGhE1V>&dT~D6-Csaf`@2@khVx%C0R+58_`wXBP*9_S|P( z^?RG%+_)1bdcsWV$>++vT@T&z_Wv!Dt9qg6bNPwz{2wgSV~RL$=1iL&UpKSr>zf{3xB6*4`J{lW;I`b= z&js2P*S#)!KDYeS0cL)IHpS1+&p+S$zE;2Q@dUr+SHCiW&VG4#uloJcix~y?DxVkr z`}v%CL*`|*b$h=>g{_M@`QU+qv$OM)&y~~kdyn+k5+%YznW`^7jLz`eU8xBWH+a$mS~sVOy*hlhtD;kMb$oM}ZneMDTJ6j|=t zwF`9hle=uGh`UT7%jIRh%9Bq{@LPV-q&GyXb=_;1z?S#Fmt4*a{X08H>igHP9}jWs zZ^*lAC0G5%@Y=fA)1cd&UcAs~Se3Kt`s-J_CjD#;6baN33vHbYZkBsiKP$01oA6(u zZQ;i^#-}YGwg~^Y*k5;~iIv+T;eYwZ-|qFtmw4W-`8@mnt%q_-O$VI48y}lUNJt#< zy6wPvc?-vJ*8TN;>!dCEm={C^TKn0&7JsxVA=Z3F7^n$8E3hST){|pSx91x2$e!me zlxa6`Is1Wi#nr4Sr&C39)O7oUSBl90|8e~1LH@j?OG`Yn*6#hiZuiaH?RPES@A;gO znfb6q*zdv4=kt<}c8Q*uYdqa|w%NvB+KJ+i4vHeV6fS9^~>ogRPgtoi*j{q=v6 z`Rslql*ER=XJ6(w_tetqab3B$TM|zkIKZ$nr0eSH@Wq)@;xPq`^PU%;vwZ&HQMdl5 zt?O%f8{8HzWXghcPw(+Sd&V8xWv`bS`c78hkdTxNT)6)At}9ulhYXHv%YAls_VJ7E z@@FTy%bk34v+(rU8oTvot&@EpeVl#ee!U8fsrh*H&%5&eOINS@*~KT^-4&jZuYWP)il&Gc4D{x`NcikM2u=rAWl78bnTCHJ!A&-)xR@2s4^)wT~)O!AnV zw3aS>eX*r-_q5cDJ&z=J37mf#ySq%cTU`H{yZtZ0xpU{{+}$@d|+s+|Av>-ze+)24~peeCqVaPgwzU3>6Y%8}V# zObOt4{J3q(nYX1f?8ghQux&|{I5W?7c5=V%G+}?6i8nW=U%qy2*)1!kta0fuK{_l0?8`~Ur#;EZ)UU%ng>iGNpe!tt|gRidYU%Yh5ss6vfvVXVw z6PjW;wogt?R0*frku2j2onR`%A3i?#G1c?)m&GNte}8V9`>A$s1SpUduF* z%BowJC~-s5du!&p>#ud<_RPp$x06qo_3z)mG9?!rLD!o-`*4_For8(za6o;ymZ;H8 z9#9FyE>plDZJzgJQMX>w$w{gqt3#*h#jaX+)CAPCv&xtn@?Witr)BctxXEh1N*qja zH6LBK<=kAPHG{jA>HGb9d;1>;`5P+M`la!zzn8!Ca*LGt#4QW_R`v59UT`r3)N?I( zHZ%RxgJ%999kHEnHl4Qk^Wm`NmkZA2zkY$nVw^ZWx=n)iQue&Pv90&@u2o&?_uiDf zc=ztvip70N7ZYcL|etY<@@|E zo5WmCEh!PXz3pP@+`c|OKI=CIX=i2}1Z{|uEx&WHncvQ1Yt+$gxwFnL48Yq!PIDZw8=owK7e)90OxOrLwy_`J>G_x1m) z-|hcjH?Qtj=C+)hJV)Bw%yMsaJa7H-oqyu#n-$5gPtO0mar3{4#pf*BL$r>XUXMA< zd;dS<;lrXj-s(IHW7Z`}NWI+B`u?}cY~M@C?NcT>`>j9fCH$rUVoEW|K)JPtF{^0f3LpkPTn9X(xblH3}B-V~$ z>$U7z$CmldZun7q@W26vUF(u>n|-aCTmO4|{o||Q@k;|VE?mFvzA%8{(RUeUX67wh zwmh)l`&kob>+TTxZ`+nF7cN~oRC+!3_{!z;PMw;n4a&a{x#J(K+x>3Q)~%(_|966O zV@pM|2lQ67du5Zl?kve&oH^^vEYt2_Kg(9*^EQ($i=RFCZP)9@e0$r~9OwJr3uD8# z7Mk!hmsr^@T&14LKX=OvAFY`R>;4(?IOiJm_w_ycZ3k+om0pWHGv9uG?YEol(s?@? z7cN}L`7mF|f?KiW$L)}{*EZ%hXI?H(y?iX3@x_a*U@?qt|tlu^!1_##H|9w5z&i+3CjY7%n zKGt<7cQii{nEHBGO!?hXhAUa2&(6&~%U}0_d70l_E{ByNvkL5AmPj2h+@RA99s=31 z?(~(F!7pFETC{m{@YZQ;A=%HLA&CY?qA$*H%nAI zY(vpgFS*Jmf_^q1kIdb73^G!%ClEG5n{VwXFyUm%m1nPa-}|a}&gQdEpY=Nn)64od zC-8yBbUxO~-`;le`Dceavx*7|0=BMS6Sg{Jb!g0W)#;}%UcBg-p02(#hVQU}0grQT zfqP&}=B$Wmt?H^7d~iY7iv>%b!v>< zoc8hN`8u)t-$6G9o&jA`9ar&Cm7!$rT($#Kvsw)}LcEiXa~8~T4ARt?%2hGXTWe|H z>Z9$GZO$M5ZW9-`ds^t~xEn7&cSnb)%OCeFSh;oTw{K-z{md3~oZeLN>*eywUoX>V zSfv`xHp_pw=kvMb?{~|O7s~itUUD&G!pRhd8+$5^gO~XPDhunJ4vPO?JAdZxvrpFT zei!sG&usS5(%7r}D*tq}e-u49@A<>u`>ftfJ(+T&{C@4tZMo8`!`FwkZ(#s6>`pzc zh%0h;XHTDBYqsw7s%)=!`kZGc?>ux;YW|CN@4~KE91(N}UB$s5SM$LU*36uZsOu)5 zewtw-^pK*{PyOiNVjXzPMLMDC;2VksN;QB z@!a#zXXaQ2hw}a0cm8p|z2Dxr@8uu0iidrCn;(CCP2^@!i!@?Kf#UCXyVtJ@vHksK^UIenA6}mSkEgl$ z@08P_Tjri&ICn#`*sE6dX&E^>@n8^gO(7kO_9>4HyQX&F5mZgZq2vN^B+F9 z-(9-={KkNe=9K&W?kZ1;EU)S=zL*iPvhUKZTc?uyZP^YiI~#qY`h9u9ub0c2SA67{ z>BDxs@IvWa&ERDhGEA-{Y8^H>kz(W$*pes_Q*p8N&G&PEe_Wcr@5nOW*(}3eMYp2eoHcN$x-SX5YuP^NeTq%(}X}>T4FLQ+4ast%wZ?jPGlnTU-A7@fdW$ z^eO{Crsq*>-MqcIcdgr;aZ#!4cCPt3>-RQs6%Sc=?b>zajic}75R1QMOJDC=#c;Va z_H3+=+0okj;q$MX@Wx&b-5UDo&*a}8cGo~MVon{~7nfMwOItbRbn?{gs%-41MYtlR z)_I#{3$lEC?{_@&!x3Tsk4J?43*TULjDu3dGyY!Y?* z*30*=j~kdMEV|i}bL~*6t%-l*k999{cdM_bly(Z)0;NrMwc>5?w{9_ z&mOz}y5{uLPnJLRTpHApc;dkW1@rqg#*PB}^#Vm6R?116=eb-qX;MfyHAQpPC3DV2 zliw*e{JM2yesz?rlJ~lY51RR(9h1&yNw~c&7gQtbh+U27cv33v1ezCkwB8ZcYMnN@ zWs^Yuy#Ah^3mGOS(l(pS_O&^meBSo^lRL%dK@Ja=-u?Lbhs;@R?|<+4^=kECVD%c@8uO&v+BRh@O&B&RLfeZIw3W3$GX$c&d$EMt5o~+G~MKvmzK)Zd^k7< zRDI5|oE){bEj4n>mMsA*Lo~#?8Dt6$FxG%-@%#V(-jCc{Wy%1m@c;b?oBDX~)#isw z4siw;%TK;uT~jdskLRrd=Rd`ri#kfIdNXHL%xiyM`Ra9B;)?lu1)TQGJ#uwxA%_IZ z$NQd7-@eF@HR)Ki?ANTsjKb{aQ`{t2K&=^@|9?Kml-*2~DLf)*(RcW_e~rER+!CYj z_jb1w+~K)npPG=+P@t1?*Y3XAKE3O_9!nRPMKK=Oc3dmsc-o7qdF_{1tjsp&;XQ4{ z(NvK0F5lrwkMj$Kju)@8(lat<=tgf_QLtt6=E-i0{k*-o6Gi^}oln!fTDSA2Pw(CO z1#X%u*JrjYJSjD=Mvv3W_wthi%>3XI`(VD%5jMw$%vq~Mi$A^B3|-ANt$(vTnv@P8A_s0UEfcet<9c>K^4mk7M9sxB*ca^>dl|b$Cbrw5g_!161 z+nO3Vr|Q*89$wzUr&Gg?EG$-N&6xb$%#NjQHT(X~C0A27J$zR=?^ch$*@?-kR=Jp% ziC@~Jv(@tbu64g|_U?~YY^kvJatglwb%T!V?QO?zi9}y{E$7m(t+qDXOxeeHo_>7( zm5sU0?Q&6Gi$A)8hLn6RtME93I^1=Izx6kqxz48`d%g4e)Qx)Fjsm^1JzfugGX}D3 zoz=XqIWsD&Z=Kz>od;!C2dumP`2O8pc`N!SKYwn)TO!N$i(PYSSI(_3TIP34gw^NQ z7)hJuEQtGlB`5C2zuofNY({Vt)RVn*8Ll}zVCw2mG)z_2a1_}k6&;%kxV6VE?a zZ&~#Cw!`}$-=lB-5S#7kA;-e_wJP?kvtQHaCttl*t#NaAFO+GITD$DfhmVav=4Y+d zY!S$3Pn76oUGQG$rUi?mi-_sP(&i8^=j)Gk6=JVneV<*M^A~ir(8oO! za`gJw9S=Ql@=Vp?3m!`+m7QnYmMd(kxHOZ+@x;>UF{e_e#~pjzZ{L@gapiTX(aaRH z{FcW%3R^cmUUC2X$;5?Aq$>U}DqS!ApP`#$Hrt|a@j6Y*D^q(qJ@S}u^Czhu%nNd? zxslio8ZBv3SP-KJ8b#-6K6maMXYPDW*)knELhYX=kOb>L!1B zaz@lTa=D!9k5_%9yb+bEjkduPd~w3_aR-}gMXt$C9yzc`}jIZs(>>B84mQ@vdO z*8cr^z4)x@bx@*PEEb}y*Et~!Q=8^BUTOH#yL@t!h^-*)So3B3q{A9o7oJ|g)|J7zccjEY1 zmORU9=bYYk#$tcWW|~%)KRa``*>iGrhFeeQ(_?QN7pwjF_ifsD=fk2>y;iwvT|uK~ zIk(vowpe+s47u_0@#=u9-wW?lJgeF)DcE*9{ToyAUA+Zi-G{F%Y-9wrAQ@tgE6&|^ zERTH`-?UVLHobJMfa$YzgwP1sf-Sp(k&vav|@0va-vb=TM+GA-@NogrlVa1-R zuUVoW)Y{i8@HrfpKjgKpzNWm#ZSlfuub!Ts&K#g2q9N9;<>UM8RDOQ7Y<=CIp1Uev z?rqDJUK+%CO81-Dtl{j|yv2Gqy%8UAwjy)O)P`c9XrseB)%xO`feE z9v$u8`D)eb7jNGl-Ig13ed+e?;jMj7iy~R~dcK$y@~ekGadMXG`OhH^FD>}?y$2nU z{r-1~k)+S%l+)96W2)b7t$A*Je_`Bua7S47^rkCY&(F7?59+7}tu#rrdwhH1^Ge~g zAJ<-&YE9)@ym&FgmDi=BFVu3kP2M)kbN1UO-`2eraxI)4bl4!Ibh?1kp1T!s9-#J1 zfR<>*|4#V_pgD=g-|wH_zFs>!#*R-yn%8|TbEp#$y$poXVNxnv6Rkf$hj7z%x#u`&t-4e;f+3MLC~_8fljquA`(jl{WCi~Z8mrJv8MmIICMI0}^CnPF48sp^dSyox5%>}v_L zmT_&JywxmH{bB!Y2lZ@bhowOe8`>@Vv`q6Vub?oMN`; zAE(>@mJE-t-O80S`PJpL%`2lUXD?g%>`(9f|FgZ88t^b*HaYpU=*6yeT9YSnJy6-< zyEJIa_U*x|uQJRq$rJ(&X6<^t?lGtrraR%Vfy?#MP|+{Oy?(2hD_C zd7WkaGc4iuwyN5ys;U>SUM&jH*zkJY?n_s%9tDj6s!d+Fbg64@*Y>SjFW$R%?#jyG zlg~f<%rt6^+??jSLI%|4T^(~SEHQIu%+jc}n_h3p+)`R%ko`?(*RHAyL4~3p`efx7 zsa<)^dn>BDCGpSiO<}7OZ<{Sk^qX;XxACsTg!CL8Z~5rWCX?0}PVHKq%Ilnb`B-@5 z_B>gJ=kx3BxWC=yZ!qB5u;%UBp2w?FLn^XosW~4ORalo`_v3-{j$f}ELg%$S|Gt8@AM zI;n=JwPt0p2U~8dvG*lBvS@u`wk-3~-MeeG>Z7Bg40xDNZ?gD!MEGX<{MrJU_VD=H zsh|VM*2M3RV?D5bxwCuGgVTjFd3!#(ZOgmcwJZ~qE@Ud7Ocb`N16QFOAFr$Zy$X%? zAiMeLDJd)+=J}vj&q?+9KGoIM4YLeqpJA_iGSU6VsqlSHTccdBmu|gy>)JK9l_87v z?wvbr+O!=;T62#T%4kjHI(+zWPfyPZ-`gq7mORdzZt4Ut_e=fsmJyfF6Di(h{`1ehTt5HY-|zR=zf1p< zRv^Ui-eUTXwQ5tnE@qg7Oue3N_gV7Wz3Ti^PdCl_xx4Of707q#NT^o0)gZZug!$$Jf@*CLy)%&&gNkYwV6+C}>@`&hOsecjc2$rg$t3y0iJo zy#L>}9+_+6RI|Tr-SN-$n{V=bt!h^2IFY7%>Z#Fe^W3y=Z*D&MR0&#yk=*~U&gu0N zm4LHPi>7Fs7Fo_N+UaE`9scrG=4}7kSHTi(2QOR@c)6wZ^)8)=4Go~v;nu|OZ(O&o zY~Aj6)^jQzvER&IzZaBe1kV5R<>SblwT#bIwSAe1uk&S-d2#X8Qc67v1Hb zR^R_UFUwP=P4V}e&HUlU%ulWQv5G+_Tm3f58pXdCwPSO7%V7Q1i10 zwCYYwKhDSBpTF15`RrleTRwUb8yeE*Rl1!u^?Synt~*I_UcHQ~;J){(Cs=nWxw*Sv zER{XIDZ@nSmFel{pR>XeFV$IQ*3aCsqpjky<^1!PGfb|?9Q(Nb_m8aQOWvji$=cd6 z_%FZQlGu?NDO3C9qSl9VDMk!mzI_8tLr*@LQV=^mMC)i`yX>)v?s6-&Hssz;yS66s zPT_G`(4k!>QoKHwk9@BcW$RzxSamPUa_4qeN}t)6gLSx;+^jGR)?YI z`I~F6OHFv=;xOs)H`kbMbBol8 zD&eYrzt?=$vW=y$!$6~lI^M_S#TA$?$dpHTG+(T`GgYZe$>+2Z)25jgE7o4O-Q&f3 z+pMFhL!ry#rB(TzpW1zvWs3XW7oXetyy$ss`Nq1xY$dWh-pj8QbTH_DIKIwMVfyBk zS7l0MckNc+_9G`3DS4?0%l){&8J<-GeQc{h1&A zJm4s>Jz<+pw?WVD$`m8XRadok#`G=qp8jd(`I=e2v&{murb33rE?f|pmb&t|mzz`0 z|H!2w+AlxeHH-2t)X0`-<4TS~s#?`2TNn33GKaQAL$htOAQR~@~l=_KCVl!x^&4YI(qghrFSo0fG+k3 zTIu5L&Hb}R4m9-<+q!mTNEfK8SM{E@f+`{5cQ$ILD}i)yLQKEEt8Xl2NU+W9eh?soIl zr=Om9`e{h&`uD$C92Z1cq#H?!ZhO7U&u;$msI`7O;=!Y7U%q~2T=8n{lB;P!saG>h zIGP;x%6ZP1zvYpS({mrS#p_Of|I7KX;!_pVs!iIJbF;S2YT579vA@fpC+@SqmgxCC zU-$gj5V$hr!KwQH%^>%d$uhsW zUYl=*w3o(QUwkuX)BU>NAD`C$H@bT_mSIiw?rHw@&w^tLkBVl=dL6p&rJAQXmt|F} zQ=@f#sk(T~2hXr|F|Jm!_m_pO_O&=MrDezC!}sl%$LIyG3=3J_CA+#qx|i+$xBUOd ze&7FJXX3kf>C)EswePEI9vtESur|N8J3Ow^Rrb`W6r)#B*VjZI*01}>4eD}F(}`@# zoW;Y>U;JuO@XkM(=S@*?jT{6`g(N z<5r#Sef#X*?fL9ymUm}`(?J!DEjryXdhTYkL#H|joL{r{YSx$U-zT3{B(x)dU zW$OQYyi32Hn1JmdKz8#Koi zTbmy=H+7a;tCQo_|0ce|#|tH7Wka`b&W#T3FxWGB-P9I_N{D5S=obKdh?zao>~;VB1Ai;;2`UhPahkXp4R_wf2Zp8`5(*cf2kao ztJYaMO{g`A(f2ZJI$-zxzk2(Bo?Wjw{qfhFV?B3gT9t~w+yB3=Ng?3s_LH~%RISSP zUMh4pP55}>6|1Q|tqngOT)eU}_~-Tdzu`9LAB*q*!OE~YF5>9)eP2}feV+T?p!!=* z+3nozJG9*-3}fV;tz16u(a-1ek8jHbEy>tb`g+HMChi@tR;^~Za!?PNVtqd8g@9X* zd!DK^rf)iEoqUYP)Lx&n!QI_`qfYly@9CS8j&dpR@l8HpwDN`L^2@87G&m*9^Y5K8 z-~ZEhUiCZ6XJ=*}R=5A@30j-+=H_P5qsU#DX%H@*P04) z&U28nHXPYIC%k zzkKV~sUcde&nvZ7_-YkTetmyOp|bg%0_J}Ee-?d@LCqPam&fI*eOfP`Y^y7h_iQa) z8y4KSB~e1_kKa1O%;kHNe`ptrwF=}ShtSp6Bp_pp^kSVn0EvexBQv8!pSdaNpi#;e@3Z3*tV1jJ+P( zo;>O6!E+H$iYkBoZvU`n$7UA+mo3|;OUUR1YozS_{ciV?}XIx90o*|L-Ey+qvTZz6u2m-QFqstZVc8jB!cnQPF*G-@e`R>D20qdF{Ek zf9&gDmN}>RoaKvM=br2RyPurQUlO*yuCrTzU&r~{cS&l#vktw9-29<=M{m*lZEmb>AG70={p~<&u(n3|?kzjnxFTuek6G)_KX{<9@BQSnX@xTG zy*(a$b5-9Pf?D=(x8FZkzW;aZzCTa(H|^bG>HIwtLCc;h<{kIe-+RRR-bX&r z41IOA_2*}27YArOu;^Q*!*u2NW9D;9o)&-l`q4Ohd+zOH`t?7(`E0)gm|9zK2Iby< zwxF5s5r6#;=BGuGxmR|tJG~|IvV^3h;`GxOZ-Ul4t%=c z1j0YFIUcyRHT&iJ_u=;H*Goe?9{%39%EeD>`~2#6mSJn7mOgXo>jTfAZOgqKGPN`) za*p5f&<8vh?%wr{j+X9qV?JK^p>}?a9shx8y3tq8YfnGD(jXF4?O69cxH~a*>B{T2 zJkG}r9tl)@Ue+5i?Ogc3$J&41ec%85+3fsdn{?dV-A_LMtX1F(8mRu6I=%So)$ru> zZR~A@4N?uJKJ9vJ`NK2D=T&%| zOBvLspJx0Rbuq_Glb;_n-dcD>(7oWOXn4WGSO8 zQi|r3Tw(`Rub`gHa{Ilmck|6=hi3a-dYP0CN>fw4RvmT`+G9T37c$+az!7r2^Z(cV z|HRejmI#^Ot5Dwm`|kUQokdHz=5x0;%~HN|_3F_cN#lz9zwaHdd_K25bJi+nHxbuY zUm?TLkIt&V){36qsKb5#d!~uhmMvR0{QviRwePJZkJRS+1+NULc(rnQ2*<3Dmui!= zt}U5m_H)Pj_5EH;o7TPN;pN?!d0B1MRjrpLvowR3t?0V+anb_wo&P@?*H1p~wW@rv z#-YzP)AV9befVH-_wL=SbsOLR-m-1mri6n`TNCG=e!3z=%V(BJC%68d3G3GBWo?zZ zd-pCV+x$Eo|LN80^`G{A-`k(uZ#(VXyF9a;8wV~e^#-l|irAdS>nISQAp&YlrOzp3 z3tr{}nnDH{Rbtiqywal2S%4*Eb?CLV(Z??>^#%AKzT9)ae-LDO-3e10?Zb&ADX1@c8sSG_em?Af|DaRy7H{kPqF-ByMqEXbb_|K|~3 z+5OsbKC2fBpyd!{H&eyG{?2-PYpczV2hKL1P8`m;vt#DDb7n!BbNB75yA{>V!y8_9 zi|N%fCHvYM(4bzz)m5RONn+5=&^cz!xwp^E zv7G$wT^?uv0d(GlVKSRQ`)yE*4OBNV?0&Q9bW7>iuV)y_VyA-!5o(?&%R62+`F6j) zULo%O=9@cgON)M-FyN8uWovb6)USESJ*WEIPLnxox53NYb61_(30d2B`SRt(yPB_L znQpqd#;SsK#cvTvL3>u|y4|?v-ATy=oH;+B7mb^YXHf3;An1Rt7H* zS{rsUZFA1;ZM_pG3cmVkbzG*Hr~1uCc1Hn&V}n{ zQZBtT0Z;#jNX!ml*uCyFXi3&d_4#M=>wib@`~UZS@p;?t0&R*%lLF5w#%)Mol>c?1 z-QwMj$206|cg<3+Il#znQ2(#y+wFY&u=R0g&&)K=G?9u3i#a*<{PUA3Myo_Kjru=< zCj5^G`-faTBe4BR%(fiKe*1qrepQCA4h1!?WeQo+=a!1G%a%-7wM$Q|TcT~@vw!Di znRYkxS#|JAn-%ef6o;PoC?y2;{T)R==J0X`OWVmSgQ1Ha7YJYp3nrwfjQJ z++Jz($Gg0L-aMbj9Pn`6w5BBQ##0`mx}xoqYHR<3mYn4rTYB7@yP?_ONvHa}p#ORK z`iud3(>a|r#EO$+Wu0`q)u(qqf7h1iu++#&qG{o4o#<~G{Pur1-o91!xx8ro_Wq3a z%_ckN$i^3MocerTb=v{{&RHLm8Ky*evp72JjZ>d~+R)0%%WCei@3o+PLGO0IUw7@| z$NlSPpH}1J}^PX?4`T2=+>b#pd)2jCR+06$n!|1E{vnS@T0ch>Y+qZAE z=GgxEaJaEz^3RRO<$~85PX4+5r0L(4s~$Y5n;hA4^1Et${N5^4cA0_$Eoa}PZT4Il zvS{m8(GK%jlY8GhF`JgU@U_*>m_BBHn+c$`C^v7eyk%`J#d~c{XMQvP74o!I*Sb8eK7tu3!AP=8mARp@>Ku0vA?z_ zXl2X$-&x0!E=hq-j`{NCOMr$*$nP^M9sXutyq5|!H#gtdwszmVlPLuBV=A9cePs#STKlMX zQpov#mfLaz)*m;%UTQmU>+OsynqtL;9bPhX_3cKVJp*N5{eHXd)vMZ>FKx+qPox#+%`Vwtg+Kq zlA1kx_RBYKj%>?)7<1L6H%71h^wUKlTAiNJhYdbd*d$FVyR)OPN7|e(_IhCGR2QX# zcXk$ou2*l(R-bg8*{Tm*G7 z-t7PX&ta$V=1rS~4jX8QbwBxBsdIYKs#RVw?@O$F_t*Wk`2Xi~W?tU2f4|?0&ks}( zSP-C5^RIr+r2jEbZhVnHIZ^o7`;Vpl$DP$CD@t_+X^0v4b{FiZ>EDtoeO@ncbHtU8 zRj1F-{kSwj=iM}`kLx#VXVtI1{XhL~++~w(IX6$;|M$)OSdXN#nDo)dg%`#D-|TyT zS$6+s`Sd-d1!9?hSHJ)7TKMB(`~T>B;ozw3boq4Fjq3n7f<5-#x*~IgHJB|(SN+ES z#|1K`cJui|LysO=qugVq7wj%knzZ=4*}?4F+g^y5$+*4W`(3X1*_p(De|{Bx;qti8Rxpi1)T>FL6J z?KjKs*JfsBCVqW&)kR6LBzF0#Rb9Tb%?f|N-TwLd{(qvkw{f-~mZ|&k@J{9Pxj$;` zF515QS|w?az#u9rYGQ64924S!J3u3z+3WWnJ2h4N=6>Tn&DsC_bNE%;`^V=R9<}U$w^FvcyS;7i|NkFcFYf*31dS=BpL-@S zZEykcCapI+S-#`@G;@o`{N@HrGR>yn-!M~=dD5PZYdV8U>d(z9;yG!5HtF9hJ)5h^ zJ0JYg>{+jwf9uydop2{B>>r{nNU}aZ6W`I?m_IF49gJN%Zf7hd_IgkAmHI}ilvGcwC=ch($bSbeUJhzyek(NH`PG@h~ zE|%TgNBzz$*}Q)H{kqxJ@Apn;uSo-|jTn3$}EueNoKxnAz`nbIuY|TfK49ni! zIJl?sGXqDf(~WJt=bsDz{$91$DMikzWJSTpu&^+rq9-1OXZ%#s76v5T+LCGW<$|+` zscB$*{CUtcf~$C}%AAw)*`9AMopZ1+`Nq?tjpyxt7o1RR7wA7;e*6Bm+}jn8I@NzX zmjCaeHaYR-rKM|PcTel;;&SVg(VTO_FXh{ZhleBgR(;L$E9iVu?A+)3f8rZomy&l2 z{cIa@BUzdlMM71lpG^wx#jstz4rR|{TRDt(yOyJpNb=Dj{DF2`oij%pJd0hn%3Rv zYm!c!uRnga*E4R{$K^i1FI&8`U0!%S+dFg53%xwKhlzg|n-_U!I{f6_^xoj{v`QBJ z9o_DHE#~k3X_nhqwN&d%bbR5j+iB4hyE5dEiSI*+(w1O%7Phit_VV&eCG&mW|GU%K zQTPAv_n(L5|2de=KKlOqVhygHG4G7Of3bX&Tiz&TCuApE_~5bO)Vp&J`{}I6y)DAU zdavR!Z(P+&RiWLxl;x*|8d=&s;|g*Ff09f@BbyL;Nr&FPyH53}XmPP@CS6tn>oG&KC> z?QQY-=hf{N+dllFSYGZhds*kQOddI#2##}Ii#XUn{eHjy{OtUFo@$d1KK^*&+O=ca z>-QW2&0#$_*v#4Ll=LYsG_;LZ`dIOKTX(Ikzv2WnYpag8Ub+{$ zUAM%3H|{^)?0$L2yIrqm7(R}(vYvG1>kCK4`KgaK-hXtEUH;FZ$z1zh@ZBn~@CgqW zUmDaIq2psTQ*G|Kz{tRNZ1;YDeEak3-m8DCo`3&nmyn)wcQ%8Lb(Jcl99Frnf)wLo zvZoA{vo4rO819>R;Fa6H+5lcDgOV82rTf)13KGcz z)!HPGXTO^JwBuzHEiJ7hOEx_&D&2ioq}x?6{N)3S>2vF1jw{~2ckkSzqurVL`OCL$ z6Pte8H9LE?MgIEh-ODn+ytvq0`~B{8(7_R)e!{L@R#MW^ob87f<(tp+5$bel`FzbX z{`963Pm3HPdCKCn#kvov&hcA*)bh%;Ym@wzgBFqA-j=(#{QbSu#$^3R?~kwNulX`F zW0u?gy1yN6i(l;0vuew|y=?8;-f7ds3jfCFiOco3U%M7o_{VSm=G@ynayByxEPUME z+i%Qw`Q)m2eA$1VH~xZxZ#edyD_$I;bn~WXs4p+S?H7Ulf1aLouoT+4a;4<<)pH6i z)av{${}_4P?)J7$x5X@f7=vOn4?Sd9mO0_{^y6al^UntdRChOg`}yt9@qg!I_MJ;w zzL)b&b+H5@H>)G!wufzA|0jLhd3nOsv)V7Mx_PJQc$Sdrg~^;P6SZcxMwrf@GH0f* zil(XUiT?e+AGq81$Td#s+ZQ9^Dk!`$Ha0e8bL7Y3^romlkzZe4HlKg4JagxaDKlYf z0d%@mlq%q%Hetv4?kt9RKp1L`GeSDj4 zuIZ>NWAS-j5gIBQc(E;UL*3shozsgpZx)Wd{_*$U7AHlaPL^evMQ03;7ra`z+^FtP zMOIeUho3bscIlnlx^=5)>~+vm^VeUyG_s!8mc)t+Ub)K}tllIgkhCW?a?94Oi4trt zORBb4y!Lng{`#TC!q8CHKoP|>?JlL3g2M(U(l##%(iFV^w&QDCVnU?Yu65lJFAFUG z@aGlmzyDvqewxt9|GbuFwZVmNRh1(2#W-2YYn#sPz4LhCs%354?^kut|NAC=#VYCT zw_U5NgL0mKSzCWsxnu4}?b)Z3Za&S6j@92?sI9G3@>X@?!F%2RVmEnL*VN`SeLF55 z`!|03bZ8^jW1k}Cc^tyq9r=9_Wu6On>%N}cxRC{w8U%awisKM3h{Vv_~WM_pfJ@dQG#t_1kd!- zs*jfYUOw{pswse|Me7%bKDrABEhvW^RXM~sFSFu zsFf=_FWgD<)cIt#r=I6J zmKUmN`WuLTq zUh1_yrI%8_s$SlE|9WAa)wy7e-9e_li~Z-@wH$tUciV53h3_9vzE`(@e$YylqzT);iTHjo} zSN7xWw`G&hKhMm}6#RI9X%J`Z_0FS7Jd#E&yLRom+w$H);lKjN=9b;p1?#<+f|jHm z*`%YTt!?OAy#Abi=M!(oKHvEKoa*!Zr}Ppuxcd(Vbi|mQJ~Pw!=WB0$;r`l^1^Bwl{Ou|7q>umaI^x%O_U_)&xj=-uKv| z_`Kj?$Jsl79~b{TsQdW@udI`)=O%`YA7e@`a$LLrH~E~+XYoIplFAQqB&5$z(M^{@<~B^R~|VC1^WQv^(C;?|A;okVkXN?=4)t+S^5C_uV`zYirK-!#$G5ZY9s_ zVluYoMq6acruQ4)e8tgox7Bg_X;rHh+3A{7j$RDWa@`nl8FP_=`6aaA*|*juxMSP#O|H5?pMFJHSs-c!1HiZX;SZQ>pWdhPmgQ=eSMcG z^?5fzUE2He12k05-Rvx{d$F*+;_uh%u3w6Cb9IxC_buJEOX{#eOT@hM&kJ|o72#rK zm~?W9KtSXR%5INp@$ z)$N~OW7nU1dy1Fpp@$nfD$7{vZ*Pm-l){;to4ey~9w?0&UB7ar;FRX_3l}apm`JIL zaDnHBZzQ&JKD@p2+wE<+kGEcrJ8Zxs$giioKsBEA$&D|j$CtkO*(iPXHT#_@Jlwa- zK3+In{NwPO_5jn~Z{JkH<0@6{|Go_U@^<(6b%maav(GZ;bsZJzdUW$@>ua&|y4)g1 zn{TgOq#+lx`<{28&7;+~*FGxJj1b!q!=*R9DR+0lPLZyoLVDAiZm&(cttWD{c~QlQ z=iM`wo!wO`zp3nP)xFAe&ePM@CR|>onMyQu;E_FT z^x>z?qGUUP5AUS>eVrWT?dH38Y_ffo_5b0{+*v>Na@9)zF8DBm*|OwLL>rHsi*KpS z`s1ySHU-9*#r1bLoNvyZ^=NhOtQ|j}ASZL>1&|hA&DKueCw-Q}r_W2De|Rrae(w_A zy_0TUw)sOV~f1Tpn%wE@@fsZV86kyL)5y_#Mtv?d`Q_mQI`d zap%0YC;!`&Rm8Yhi+0LrhpiEKr#$_%tKEEc5w3+AT*qb0W$J&Pj`vUzI`sEt$#bi} zJN-;bzH>bFP-(jVUfjN%CD7d^EOcstg-%T1!T^sQA%E*YJ3tQ`aI`v!aItc=G966{ z`#>W~4?w!FJuwY9c(^ZR4;+?}17Ykz%7e0^;#kBr5H_jTWQgEouq zxSLm~6CmdPw{HK7XSun#PoGYYe|CVGUqz^sV|t#3$fFmF`_oQL03EUS>hF`974}wrJ@oqP zqE%YGy}dCN4_m*yzdyfM+WgY?{P<)2^8UHGx+_Dt=AUn0mMOx;3fgV9E%&yX-S>Cb zeUyI2Oh}&mMA(3*IcTNIuQTzrUqkCY&%QswW6It;>T?R1(&tsG zCs%eOaZc^Go1ig~E!(#X_aE03>rOJ9y4gQ8^kQl3on+t3DK|DG%2d5r$RlOa0cu*O z7K8%vwlc|o3k~SKgOquo8dRE8rWELjJZMnA(et7u1 z@XiuX8G~00ZSTyd6j=C}2&qbNUAlAU%&e=~GtBGd*6;bG6>XNUFk3euHn=x;_KanY z3pYIfkqN0KggT#mh7Vf(`+VWL;p=11B?>OO_N@2&aBRL9kDgl|axkOeLqAn{<*kN^Fei>FeWLbW!7IlHg$j4i=`8vNA5mLk2t{p{f!*m#$uI zJ^onm;(`x>PfAvXI9)c`6Suw~{`?HX=6$ulFRc#OH}O@T=<(odRc1!UgC=gh1*=zg zXP9s~q^GMNO`7PT(v&%C&(~|wprxES_xH*EI3cK;Y^EAt`Q*lzt;aoW4S1U8T9+67 ze!G2h)z_@1g9@Rcp)sXbLwV%wV(uKC%fh*w``Y+3T^tB2!Gb#@`o%@Af8PK9rw^LkZgpZ@e_gxk4dcW;7xrrZ>(XAA z@ZrHhotPa08r+BEOJ7eDH{Sd6+3Yj3zEd@gI2cf&z%xpD5Tl5@7-V{YBPJ=3aG ztN6K{t6uoKMf_~FGnP3T&175fzo9Xv@TcgX>nH!W=H9NTwfnSN%p)``G;xZT$(L70 z>wdpI9_TKA^lEtgSHx)cwZDRHDMpd6 zUcb)B%38SB*0Z{LlDGa}!|AbQl7D}F{oQ{4&Yh_Nfw8e?FADc7-n@A5%l$uX>~a+i zec#MB-DH}z?2XW#;`yiV&xALcGT~!^|82Io^;t5#`+IcenG=;Ae3pIM%X<`lytmWq zJn-^asoIX&vu9Vn-FjWZBtt-NI`{O`uHoV0A1mfW=o|yBW%SnHs}d93cOY|?+RdCY zbHl49zDXM;CVI5U*;aMT$ULselgfCj)A?J4&7p@+d=Cnbzfcy}i9(-rtvBf8AScvf}KsLOg7pN0WBk&6}nh?Y1x=;mwVW zE=q!hcDvREYls~AXyteRo$a}EmCrs`UTmLp{yAvy0MxZ#mRa=WqI+;`tnRmmMLRoO zlpgJ}zRnHak^b-Z`}C8ORGog5CLLJHp!4&T^6_Q)EK7qp`;Q;yHNSJ<^LcxJ8@c5n zTHwu%d3P*)F1uVd0abP@LxlX|Lqji`^!D}f1+5e@H8st-wWX6=Z$|@YrDu|liSOiN z$J{`xIK92Ox8E(3UKzp_8d~{uYIw!dso^v1>+Ouw&n;QFFmZbngYV^t{dKmWU5MJ@ z>y|89)O7Bg-?zKv@ohYkP6`4ECnu@ad^pH{apkw{==TGbJ zKLc95bYJXG@5ROLi&trxnwtKovD1Gb2Yh!_hlef1v?^j!k*VXBThk4BxRPKGT zTa0(_?i9{!`v~vgV&R`P^V;U|^4zbt`1|YIQYE?N`_ld8DjqP-t9s?Kul!r&mhIag zf34D->ZLN-)5JIN^Ru-rhZ%h?FIc&P3v@9oO6Gl z?DpHf8X`(FecnBbDBBtHVwazeSn}~cS&c3y6(K>syvrt_3&z`?lnt)uK<&&d#pvu3o*WBE)&l{(lW<{b)%nX!0gFn7QHlYgU2B-H%uF9!=V^Z5wDI z4pSq8ZS}V$J9o|uTW)f z^?Mu8=HOMUSHFDqN=d9cah4jt-46v&c3QTq?b@}lb9TRTmif+hQxI^tye0PCok-Ab z@Ev#aX3d)AGQG-Zrixg1=i{u1fH1zI_J;`!${H#Rcg z-nMepDyQq*HP5Z@KWus2zkJcANy_~;lL{XnGfX`tVr6A@q#{#-ZK8+3_S?P7er9B5 zE?u^4R{XzD)8`c5+c~4nQS0W>+4=iUuHAn3SoM27wdvXkw;vQWe%>fkbz`B=&NoJV zGb?zeWfp$YR2S}@dRh6|`Pt{|=l+TRvf_1Ppb;lq?UKuuuU@}C@ifZfQHS!*=kxAg z*q$H%>8FjfS4Che5CzI#^?kAy{sVKU#NE&t1<*yW21;?_^!_xD%f z{WCLrWGpA`UUt_t-MoA&yrM~k_s)e*h6^oMzm|A%lIouS|9*dYb(QD(iK--FS>yB;GIrMNt!P#Gb>*6Y( zih^3gi!=@uzHw>GyRo5hrg8eB*H%Ak<~b-d9DlrU@7}ql+1EJ4S6?oleg1i%NUMXw z0nlXBs?gOI-)({R;lRdZP-}lp-o_u##Dd=FT605UaqS_IADhxwIL!T5` zF1o0(Gp5hATa2@C@3w8z)<$ptwEO8VcSrk1m_ z%{QO7`@JA@)(g$DJBQxy{VumMgzNOC8@o!ijnmJi+}l$bG0k;hfPw%=fQCrKrWDSX zB~f$cKi+b0N1^ifJH`BBdV$u)9qW}onRdEx zp`Xmk%l2>n_$W>Eu*=`oePCfg2k5Acr&Gg&bi_QDU+$4GY`UGd+xL%OXsBqzi? z-1E8DPYP3nGKo^Mq3C8Ld3x@}qJB56AbuA*Nrmopc9yO}=u zY}!oldd>|cFN5-Sy;OU*_j_E@Mv0j|Z2=lbtl#fpp7MC1zy05mv~zPj&1Q>+GJu-V z>~a+f!fHMXmM(2o?z3q6`|UP=LxfISYUHBm+HY@eg4T#XdzRL85R~bjY&ulIj~ehKZJZ%6;qXI-^ERJ#7Q4$I`0}#6_=IBng{xPO)_%Xc{kG{@(5P@^(nf=| zYdIf%l-U34>f1S`&t@`|Y}x*KcJ;f5&;IXRTH~AjNTl0p>PIb|+bTCNdZzB_x*lH* zT1^C6xn%h7g!0AGxu8zkv}t0XX7(oIliS|jF3^5@)ahYC!?I;!$NKH(NE*LWmFs8z z@Q7Q#=^1Cl#-|s2UKi|z+>K<{;gxB|SneU5f%AKXL;^!VOTc$Q^ z)~vGMv7w9R56$;adJ%L6nzPGsKR_OZfd#xhR}nPZ@yrufCHGkw~+y0}VW(;pw} z1)T|a^l4FGczF9F4G}I@#Te^%t5S?k#{c^y{%}RzOdhBmX$cCCAO?wnuRxjCE;7Bb5sbh>Q$=e;$}zP6$Ab6Q;e-_nQ2_*$JL+8o2fr*}O0R$=4RQFf$edGpP}Rh}wB zC!ZfYes}-2+{-sFp1c|!@0*^kelTG|fyJ3Mk()b?KYmol`SjzN!r!lU=^f*Io*uAo zdRa-yg~jgt-)^SMgW3~!^2}%YxP6&r{r!B6oquhuZQl0TbFIr4tx3@*^F4HY7EnRXs z^Uy`0xOMxsq)CRr<>mg%7cOi}Jw2_nrN?QZf|ypSac0QXv!|w>-tp;_ zcIC&T;wx9LUc7kk+*7fEH|6@>OQfbBEu8wk_Pq?KB1(Mw_hxAL#|LlP3w9oOf89fM zvP7HfqOGF0*?fafqy?oiR;F`C`5a3|( zC|#QQBJ%u~mzQ5&Ue3>8oOb5Hqi%i2%OW;%Q=JYTc-j=P#zxM1?~#KG_|HCn>~8;S z;*Xqp^UUWPpSPJCv(CZh-$VgD@N6?^&5z`XNC8;F4(GeQt<@tta@q`$`iHIJ761Q! zZ{6{{qa|Qofc^J7#XleN*L(EK*)p{3$ey*VgXP@w&r16)ZOhd;tu+69cgKr_4R?0D z{8+)k!nElA^-VfPGkI2qczt0G4-4z!{0o{31f6HD8NBR4*=|D~XP+n5Nl%+txj|DI zkO7!`>qE2{1v*_kmIf(pyYcvAM{>!L2Qhl>nX^htO9lDb3wOqpl$9k(w7obL8anma zvougC9~~|I_U&7dZr3|`=B-YRF?#KbG%EJS744MC&CN~Py=|M>AJC{*REfy#ZMrV^ z&zTKE3_OoW*x^;Rsa{O}r?Kx)JeYdyeDmql#%)4vVVCsALX%XkfYk~)2^~9G3 zc^~PS#*d~-5~Rl zO5uCHR;LxKx~{)=4HS7OQ+8}__PU*I6P4YCdfhT}bDzH5e*f4e9TQ(=37$(=uDDpp zu$}6=7qrsFYOYvvd}*oa(IoIGfUMkNA5JLu8|2-wSfJze9CV_>?UgH6K3uW5Z_(=2 z-S_rZfBx~f-?;FR3xnb>tM2)8;;ObkI<`&s%c6r_qNgo?y;yuQ#VF+1V-YS^L$_L$ zDe00X83y*hF19|J<-h-T-n?I*C$CsFJ3zz1ZvEodYK;wTi*~GB(XrsQ+R;Uz<3|j1 zqRO^?`1^kTdCBxSjjL9%Ffso7bSA#y$HVrMDVJ_+3ym{)(xzQsrOM34vmiw4F2Tg-ME);QnxTst2 z5opZ)#f62B%J;C`YA{IVTm?HwdIT#Ro|2xW16wdb7O>vUa)&h>n3jt5w65p zYCmh{-MSUE@B7~O9}mm_6X-v#thPaxQ6%B)EK{3*KOUQyn|Iev@lq9x=1CQlE)!oS z+rA-DBE?AZ#j}ReDm(N+c$4& z-n%VWAX~n!*zfN5_crFf!5vI}9l7@z-Cwp0vDrl{N8PfQ}d^3)7J# z!v#8G|9?D^H?I9v^6h?o{l*U`BmX>6DYQ707n#9&y3Ir7RCNAc zxe&CCZPR(X-wYoPvde=OL0@_)voK(SkJ|R^=&3P&#|?C>tb=z~HR#6ZncL0xQoHJ^ zu;AnM{dx)4)-#_X?B@4_mL~svI(>0w z+@+T?4+|I$Z_p6oVLE8g>a=tDjmLp6Z*HDf`T3bq(G?95*N4;1?;Z)Y|E-zZ$;Y(N zVCkfTPpA7oTyDR6Rn5P!pMo4L6PzczD1l4OC*4l4^>iwe*2~EEUn}ugei_t(DSqbj z(c16M(nT7erAdK-2SFzVgHESqo2@$6FE}#NGc;86W=>c~(>ax`i4upVzCNOT z*ga{9u>Tv5p3>6NL%cS5cPv0dY3D4T%dA?xx;1)Rh}OjO&kcPi&$TZ9bVS(y!>#P~ zwU1c#E%|SK1-2Fd#3`sltOBU2!Ew`?7-;RhFtYsxgs9LtnRye?yR(Bb-FchOJukkN#w_wPFVGNq1UfkFUiJH@dp@627U2RNQ5hXA zJuS7RXy;-z}=;p-zsuXgFFU5Sp0TCsNR(=V6(pWn(}FS_w^ zt5ai+S@-qVsxy6rxLP;pbk8(S2l=79&mB}**ZeJTIhSD2vF>$+ja=227Y8$!&pkFx zH`+r*2sD?Nd&}hF%+;Avb^GPPD?5_*Waj3&UN(84ygX-R$fAuKCw@L}KR2=t8SW)+R^ijpyS8-EFN*(x_uke$nf>`om26s(`S}RC#X-m z=fffHE!(#Dslj zXXoagUgkUdNJV^XEOW!66(%Mo3{O)gsCrLJkPzGbPxZiCJ^Pc-zsBBwulH}-`nA1@ z5l{ObxUgqmU$@sgqN0Uam=qa6yVw@YvHSR_TR-Wh02k}WDpM}j=5yyn z9u~}Sa7a$~*8czg|6lX{f8X+adwG9;(#8|1(_@e2ZolW3p5E0KXM3@9@~vG}dHa5* zh4i;KAM06I{@yM^EF)^C|Bc5V-+bNW35s@5cK^@yYX5Hr7;jR2n{e<;i>!rjuHD^P ztPa{~^RQsX$;s;6iRJt5%o-e)=c?4z>XN3**Yb!7PLzwdv3o^57M&XXy@eh+UX_b&wv4BqE#Jtcgyulon+ z0L_2D-=`n%lRc7TILY%Sv&KXZm3a3#RZPB@TUM8ynxeVq_q*K;At50Q8!|2`f%78Kx4Hob`GJTqN~H!3T_1V!_!hb>#8;S=g(ROs-2BXUxlQdouztg7b~~ehJ=Gm?{+-qYvYqWwIXow zj&HZJUtV7?|MuWo(~$uy>>0^)~#Eh({ER-VxyT$R+hK$9$&%ds~!LPTwmFthYZo%bDrHT zzn^-fLy)D(@!QSi^6Pc0czr)lIz6?z3)ab-q|c0tvG_6@h+s)=0F#zDg4l zetdZN=hyZ9VttX%>*V{7XXfXt%kaHd`!&@|)x=j>hA&t{q~g;_b!z=FT$pg-+BLPl z^&wglL2H7{>*^Z%Cg^%7r@&K6ThBjt*MH)Uz+Qp^z+n1i|KRD#jd{1v+i+@%pZn|{naI;BVG_4W1QeAnalR(*UnJ3lBq zyghT4iV!DLBSWhb4qUFKNx=kg~r0 z>(=pUa37wm?w|JQ$w?Da(~SuSnf`rQZvXMk=JP`R#{)yBmROx#xqRL!c+OMvo-creoiy-UAlO& ztZU$r!;e2E+?HS3tiiSW*dv*?#CL&zbmQe;TwFXYNA0w1`JIEudS|a(xl&DtGwG&S zr%ThpX7>S_KK7APo@@waXc+X1~tg(f4}Yez~04S67FFb^v^M_-pHr znx`JmU0(Y=`Y5q1^U}3j=Uy=LC+tuBo%k;5%(FSpR&y1@1f4@aSMN!KF3uG?xgU9i z$8%Tr0r}&bboRvQw>mX$zgN`_Is`n$=;V`=lQ~(K93qdDsvVk}an?hn>H6!X8#hig zOg{Djbf~FFw`OL9}Dtg)ECvHy?aV!1ewAOjn1kb-HXK`1j@a->K}NEde#Yg})xu+R0CktJ2h)-hEns|D4j- z*9>!R7`XMz`TF|u*8ch;c=3F0Zmv%3E|LD@pxK}D_xILBZ|^IyI?K#&b6|GFOS zHufy&M0!vg<97c3vpb*9JN@hHYfiT2D_5_A=7%`JXkbDfQ+Q zFRN|5OE2AM+J z^@BA;UfkT=xUcrN(Z3F5(78++Pd=NNnijs>`FvB&O|GPkn^s4M-aVp~v_;jbtXA&B z!(XMK%-9yUcY|(sue3Q+!Yr|s>+~)rL)PDeMnvu*_a_g}+)}2tZlTS_w?`tZlvbU8 z&YbY_($bjPuUA3yaxn!5S--r#?r$+KBvkbFimada<6Q$e*qRru-~PLrq54f!iIoEH z;RDYBZ33j^d zc(ds==rHh37bS*2@5=XsGKd7*s#RTvT0)%*GG__2EVS8YYGSgX;Gxqr-Do$Zi3)T5 zf`fyZ4}kJvyL??oq6Fx~`uzIew@b=Of&wEqUVmJC@9^V~0(|YRZyS_(UhneL5D_|* zuOM(>la9}2m+Pf>^30Qu^*jVE%>iw7zPc(DbXKp9Smpb@-z|PTXkNK;rQq>hRcEt6 z`>B$Xm6ry2?)h(jSTL8nm1$b2T>0UL3>PzcR;|+7xZ>37uao?qe^}uurWfN;T56iV z|L?bT?@~`ZJ#}bfZgZkVUV{0u%-To4t#0jPy>ji^hj+W*FI<)9BV1$0zbsRTgXPEV z`~QxuTt3fBK>*Y{xKnictWx5WbJp*VEMDa^+l)8%dgYgk?vXo_M8AHu^-#OLam}U! zZ#wpWtXOkL{OwocgaZs4a=n&rl8yPq;$0JtNd*d$l zzc^AkYuV1|J6o>57JYy7ZsVJ>-GQN^zL!tETOQlD+(il0P2TbGnDk7;`0zzmMbM5SE0E5 zUX`|d%?HK+x$CE7cS)^Ub?M?o$M^U4?tHiFb<5@J@4s&@dmE*5I%$6Gx5Nhr8Xws_ zJ2$sGQDTw(^_$C$msurmzyIDnSXAfmA)T2&OhnC}dait|R@?pRRo0gz!OI33Vq7iF zc3eMY_W$^Ke&)~H_b;tZXWst*Rk%#S1I8I|12L~Si64x^LG0^6YTa%TfST} z`9sy-9ipwNr>7TRy}Cc)XIJQtW;?4%ZzZO+USI!^`$wT>K=}P;m+DFDO8SERY+GmD ziYnL%Iw{rrzJB-lR;R{<3+gO6piUAfzMp({(=(j{Vu5n@+k!awM6Y~?(JjSa(NElILrH{*?JST5Pr6e<%T->5??3cbkGle7?5yl{f`b36qaQr(QT;IS z!>cQz7LR8>z7`rPx_$MYwD{|#Ik*2UKPkdD)2A)Lz++>C2=|mZQY|%h=Rt>&9P5<^ z?WIs0SFB&ZeC5i{Wy{o>4ld}JC}*6;1DcRs zwaTdcT?}aSfY1IWpGxGpJOTKLb$OI3KM8fbb9oON9lWuf~TRVJ;M?OV(xFnL3OSa$ilJ14)r zy$zb@09$B#;74)r}gwQ0?#Bfr<3@tA+!-9SP_c*ohZXF>f` z(2oE4f1arS`ElGHbkrT_1j-zJ(BN*q9H^m}eQk}R1W!<4;6dH(cbxj=Yzx3UVgf@y zoR?d*s*A7Eonc#U^qyrJT@v*=rw?s9{kU^kX0>QNqvEBq^-=}9?g-;k2(0^;bB7_ z=Gg0?90J;RH_@ZTX`#c)5GA?($!F6%)h1uLa^;Pbd#GK^e#VBHeGSVr@6_D}b<0Bf z+1HCVRI-gRc&oj+*QHM z*qdPBV>MSRZ{Df52b$le-@xcJ3BufldgQVa(Tq|JlS3A9)GNGX;}uU zBKB2+_9{l`xNVF`d39waXacsz?*GbP`3r5#Ea!eXm>{6ByJ_x^^y+Z`HOgD8E}oiS zmKgY*Bct)}#q7gvyv(N_Kl}UrJ}5tT=H5;*k`!!};b8-94nD{(uOh)S3A_XyG;64m zaOL{-;;W(IoXd;!ra#_t*$;GQ#_{K$1-p-CB2t&z)_?P21jAaLNRRy==b>E{!Ni)UDsYSrzR-+ucnXqRM< zmp>e#?XZ)PH+tZ?SIozW;x->tA_ndh=Lint7Rr84G)&bKpx0(L%|xhA-Md z2TnU2G2@$l_KQ{ck&;c%9_cr2*|2b{Am`t-&$2SxPEJ4FX0`Ib_U+y)o4JmcNgyeb^lzurp?2;*QXjAzM;T3RUiv zD=pEnTsvQvfq|i5*$!(~28M>uet*+;E(w1l93wyX=B-<+oE9!vxl+^D*Z1Tmo!-8_ zto!?FyN*BJ^<A6B+N2`L!0a&j)tfh0Uc6ZG?}`6E zm-#=>q=#rtmAb6t_x%39pp`1yZ?By;O)R$TX6mj#pH5Fb{q#xM?x!Cso)lO-DcULZ z`>J%?MG5{`9kJ(cne?W5_3HB7$tz#G`bI4GveQpD9eTLo-@o_&9Nr?A8@ntTD~L=CP{v#_@jn z>*{tNIeUA0UTDYv>oDzDqyaxY)@w_jWP`szRK9KTY3%#lLP-csqZ;*Ce0K&f>8p8}I%5w*B>F^V%T!Umx02 zB-*-;F3Q{e)-3k_!Pj3G^4EJT4f1>%lq=miZJLy=!jpY89FD@?L_2`qf$e)aWr9qzZzkeJr zIsbo;yZ!H*i>vO@neyRJ(z`)R8 zeB`bs0|UdH>8}#=YxNUWn!UR8vgFl~PT?Y}xtC*I`i|}E`8xX|JHOl&;HeR zpML%I)WZ)mT25R#skb(0rONGX(ht|2emd#;>ri)h_vACF8zZKae0pZDynu0mWp7{K ztJwEd)7jYBpMI?h)tfH8@XeXOweh{zUr$})b|Z3Sh}74m5jv+{e>KaBs*Psy>@_I2 z`}$TetxVv0_N3EKFR4zCS>&Oz==r>Azjl84YoDH;{(3gQF4+F(N&hWLN4wl=x9F@E z{8#sYS^mN_-Ds)nxtW=P-rn6gx37WjBdD=kzyH_j{g*B+^)CJKA+h#tcKl_~O_^ZE z<9_>fIcD0I*YsxYt2!IXmB;fcH~aoF^Vqtb%W|U6+x=d%@5@sCmz(GRU1Rp=p!^Dp zzq7oTc3Fj&WtCW6DYaPg|LgvDm$~&*O8?h>Kl%9UtGD^}yZ8P3y8iX`{r|T1$=k0x z+|K{{!NF!wCb_jWd+U{Idej?vsd4{ z`PUDWnnTU19iA3NitEO&N?N%@Jnn?npOqWzME_0s_euYM(EIBDzrQ?a=6~t`|BL_D zqNiT5uXcx+->)fFUQoU>rpRjUu9wUFU!~huhur_^=QP#Jwf@iX`ZeP5Hfz4`)nD*e z`Mk%Zu(i8Fa^L1k+1mW-D!j|Uz;Ixv3j+_h7_t4c_P)j3oyU{5MomqW(3WfBnk*=Igs*U$dp#6qjFKnY3}m$&)9KB~RCjU6r+U6^MP}?9AW7 z%nY-RuL@oLnzgkmDtW=_r7V-}Y+{U72Dd z*FQ}+TFtY_N;Ya=&B|lP`&TYKy7r`JboKXt5!Yir|Cai3sNvrKf8SsG=2uOwv74{A z|4-4{=Tv5`Xt&Xzl;s_pkT8wf^$3zb4}C+qb)3ty-O;x4!k3zs<)M&u@Vcj&QB1$F8TdZOYpo-Rk7{wCLydbF0hWp1D&U zxT;imcg#AsTq?eN_uXDU1qO%DKQB$+x5WO>Vf&DU0Rda1Kv{qB zxPwVfGd0%nd`bp8wlAEd1OV9(qmIhs1yZzp(*Xwrs z-T!&6{L5kae*xmLB@_3=tzr|NrmDzpnlNto!%w|KI;T zCr#6jU#0&4vFF~OtISWo{`%^q`ur=Oo_bHM{k;Ao0qM`V zBCiSB{;vs>mCfC>=JBqQss7t?U(cMlJXB-K)oagcb@z9HGW;Hy$B!RhZH;4LVBlU` zcbPYRxn0`!sI{x2)|y%Qc`Xf6j(Gj%P0WMPM>PjLT=vMl`tSDekFk~2tsClF@2!lV z&ty<6bRcJiZ-maP*p**(+0yb9AC&D5)tV}`fAQDjyJFTId;k08ivM-j@AsH|{!_H` zPQ~FXEBke)pElx2K9@cJ*29`t`&T|Kij?bj=ePOL@bBIGe}4JZw{NFNxFrW2YkWTc zYVmp7<axHtRh=WTc1-HO^9w>>KA_Lonmr&(FuD*5x{ zB&U4bdT&`-*`nQhv-0yV-?*`&Pk#Od*VEHqov3)*8#Q;Xxc2<>*{`pif2IHLk-my2 z=tN$T&O6J_ots+q@#x`CRnOl&n75w$_T!HkKRS~EB z3z?(!@>1yPE0-Q!{rLE}N!=5Vx95MZv|QhP^mR^_@VPT*{vKgu*b(sd?(XnO&;I^@ z{URe*TGXn6kpTpr8QyPc|JgLJ>cgu73#rR0tFC4(-n@Mud%@r2v6+UV)n%PtLp;`XL!*=v7=NrJ+o$LtXO+?^~sY>_clG#mHP8)fsJllX<1p;?{9B^ zJ+J@QskiGz(%vtZW}JFDDX#A3q|1u3>%8=)KPmBWKh_UQgOY6vFJ7Gfb=&s6p|`i? zX4mNd{~G^4^lI0aN8RmDOFWi7x?_L;XWhS_d+xsYv~A7fNlOlecpgpie7fn$6q728 z<5~c-{Es%)6UjOD}OW z`}5|d&ohn}FR)dZceB>w^Q^DgXKmub>;LVXQ*~}-{r9T9MZ53z3T&yXIXOwys_svP z@*h*4?NQOUL$s!v7#b>0KfUzZx3b=T`QV*8mNHwf-@LZZW$C5Br=Nwha&xcN|4vvB zDpJ0#uaDhdf3|AxheP!zUze^7(8zvz%5U$NODlN%b47})cQ4$w&8)Xq_Tt9m%Dqo@ z!(ZnAdzSyCXlICy*w+)v{V&?>Ya*tuDtWn7+tlvgCa%t?xFKh^iR`(3-}v*pqn~aHS$WNB!d$<0uGUFh!K$IF zwm$g%8dsI<5x|NlI-`&z#%-r3oC(=pw@_ul`V*Vgtg z%)0#D73F@LMNSJB-2d~;yec!t=dJgxl8dh5r{C`n0(p6B;bXVGk7eIaP>Fmzjg5W( zvM>9WUcFhlan;pTIlnu6HZR_&{y95T`gQE>^Vi>gTM@N3D=W*(Z@ITzzk6<*;`GyD zTcakP4&5zlZhG|Jeg+1Hidt}0%fP^J=5da@!*s8$=dJ}Gz88Gl?tEF!v$%unpIzyD z@@s1vcYV6Fx$XR4uj{uS*N@!fvMpD8{`u2y%gp2Q?dFHu&Cl;yP`q==NzZ6u;jMfR zZkcAs?v|C!t@@d|`s3El&Zd}k$&;46uPfi)Cu6zjeeL(^O}Wva%2cHPcd)!7)63HgtY^*y6V%U+%TpCx-BZ+o>nQxXF{tWvSqBS){Z+fVX=+{4=&u3p<6}s!^v)Nzw*MHo< zwd$)@?Z<9rtBMZ`_Qb8{Ieg*Bkro@d^Vz@V&G}Wk;(cw5{Q9>gR?_Qt#%P)Ti{pRr z{PuN8P{gg}fEC&wr>?Jgy5?ND)!ff*JD$I~Q?=no)cpK)+2=}LeGOk1vvO_p_N?36 za(f-N1ZbRi{ne}L>(-D{sg|*NQ@dPu+RBBVN}YN-wQ^6~RBzRtX(jgletxUAZVjEQ zZT0oX4mgTeaQkbwvye z3=gitQ{UpV7UJ6j&MkZVdF!0tRpm40?WtQC61X)eBrz-K=i}qcz8~1S^^8fWMY)Gt zcj2??=lxCoz4%xaq9YQza!RP?bWxtX5Q80o!otF!dPr+(7guZ3si&Jj!xK3-jU?L^ zdM#b_r&Cz#%#Hl=qN@5w$1ZymS&6Il#BTeuh_y0~fq}uq9G-Zlcs*Y?`&-SEl5=~* z3s#0)^iFo4;-Rvo{Jp=4q2a=lCp{(IPJj7$Dbn`;nTx0Nre{~J+2VXOC~#>|!x z&c%y;+ zKFMqh3=YPM&}!IS$xU%ZOOH!dsXU1 ze`oQv2g~)lw>s&5{aSISXy+;|vDd#pSUvr^D^%<3TrT|(b^}oRyGj9W?wrp#>Nyf^ z%a$zzH7O>k%K7@<)DrP3+MTU_PF!LByrRXsx8K_sy*A9mF!A(^dy97lt@M*GUlp}> zMbz4itW^r_$?wDq@~(lhrw$*>0kFpzKF`o+$SwQKy5eb(XRA|Wt5alK;H2E^Zg$t3 zZ~puyFwcK!Q0UgGO|Q4h=}h<9I$?W+&fcUin-2&6o_Tfuvw|~oKUCSAX#fSlXShQn zKUPJDtPFWtV)f)>MJT9NyV`WK_-br*k^CdCWdCQsuKV%U$F7U=c=OR`e&Eb%;m5yD zWH2x=ERcjJ!N*SWf^SOB{pGbN(^7-@LxOx?~ zM(CLCtJ9kjuX<2-`sv=}t65J)9p9gsFUhFSz`&rV^5;7%BzQpNEEYykRDhVE#K{Rw zoM3*25X=G)_ks$nBmnUic*6Vx;yFx)1rUhWpymkbK!cbd?AruQh#(HbsD`B?i+*&rL^xmVI2zxv2(k}~)3^BUWAoD3OGkwVn_G{4ymy_4(@i>-)Fm z&)j$J+mdh3?>`Xlx+!_=OZt8$X69GhE_ppyc{+*fyW5m)%a2>kzROiIyXeOuuiHUp zH`mL}S8PA57@zP!)cnO}=fqM;K1&%p)`n2>dw>x-7qt7$I_P9(CKM9hy-jGh^>{!g1TU;Dy!2{B(c z72Pt`mYH&1JZM$m@}yp?r>|v0W*JB^Ffbf20hJ9KUWoSDEp5);p7DI$?=MGr*|%DM zZ22@PWogOzy}!4V-LCz0Z{6-v=Z}d;%hE&lv&PS`(1`u+T3da+_E$`K82_D*4QpO+ z&%VAc|HZXXNmaR9@zpv13h(Y#UinS>{k3(m_b;gB2bEv#Pb}O}?4_P`O5*OTZ)c1C zWcclC+;VI)=hq0%)_KW)xCaJ zRrFQwNtrVlo2=G73~>9qm-*BLM&=oAxw{;0N*--5;`-8l<^KC%E3-8-cdo9rSUSE=oCuZJ&mESi||_J@bh!WBy!&n#K>Sd-OViA#0U<z;ML_hglP^fD$NZE`Xuob3^&fs=ERoR^QFedRw*M=32ztw5;gu zd3WWm@`i8szIXN2zOq)eP1kxpUwgUhonPhNWxJT`wyxa~b}-xO>DRKXyKSOceZ4C+ zH21$xOg*z8?@oYq+1q1ZgPs}6KGOSrXjYY5^!hpXn0I^)`g*Lki|@FoL0aXTQw>T7 z^=7uIY!2@%@wzA%Y_#i&^rzFOo~U?+S*`1-cW8Fp&vSUaLw!K_nIc=Mm8@?IO#$B@UQmU2Z)o*O`5SYsLQKQ|xc($6GB+dH19+IW^#7!FHd+%N;gE zyXmc-qaxYHbNkW>kFaSs7auGMJDm9c<<&I-(|w9}rTNn7q}T17%Y_K)`!fQ*ZA`5iXHk3Wy@`sZd??y;aEt_=PdOqRsY{7Pgm^e zwSRtGN0i@o!TB$?1)mUVOIfk*1wo=dj9331tbaLT4_DbM3Bg!sRm zFmGBug28%)`s79M}oa?vnt$n*!oGrh*Hrr>t+jo~OUptNW_g&AKo_;p>*3R0) zYs@1H>o#5%{OXo_)L5D87f)((>?^NpeKYOmr#wyZEN(ln?EaLwr{~qo$<<7j{PdZd zDM9YaGPShjqTX`XE-se8Qgpm${qeRbZ~M>ueWs+Xy;^%!N?O3COHyxmH6(a5R4gpY z&(2!sy8IuXgk7-i{{P!gEpz_7ZzU%vySBCqUSME&@W(VUbCJf%fRKL)ZuWk%L4mBI z=RX)d+x2?Ovj@&qA1(%pszm<&_Trz)Z=HGD*UZt0o|Jo9N;1smW6!db)6-JEwOpMn z8={lzxyjUM&L!^6TfApBb}-#sq2wHSbJLVgcaxl!EB9@0|H)*S(Rl01mNg+hhkv!m z&0Mo8YVJRag6;Qa_GV|Kyeoctrh&;eQFZgSlpjxwc~5Rjo$q$GOKtO}w`+nvE{U75 zZ=U{z_46h&^75pndY@XF^h!R3AKb+<1+_pP?0Fh1eeK!1HSd0&IlC*>JxKWVwX9a1 zr{}*or8!JIu~o`D=c;dQ?X9B!!BJQDM&0{){)kcvOH$YOG?86JJ8SkfZ(@3XRdiM9 z-&5jYO7|A0B<$qb?EP2M`E=Upl3GPxRpm`=yRN*7Sm&_F`{R`bC+Zo`wBNe2MrUb~ zrsP7#uV>b<{+qy7wW&+}nO{S%gOl^aIZCl>i?)<$u3}VObl2$l>d4NxrOx52wr+L5 zILH6=EAcO_rY0gmW|x+RwLAa&H)U7VZkL%%3=9kko_!xbethMm&&1Hsnl_6k+(vxW z)vU+GTcbjk1_iDR30fHvv@s%NWk^tZ`g5lBLJS4_BxPl%-hK-jroH`k+U>W~F29^| z_~C@ZfwPZB|F6-?5}wsMm+!Q^$&@q4;w7D!BLvceXBVXDoQ`^-%D}MU!MAsJwLL%o z`(Ij85+WoEZ4`I+&kd{h_vjRi-sEl~;(O{H=c?`xpboVA2@&U68%vM-}iZsYTKtpivKacJCeXlP5so_79{lEX)i;EYH zZTUZMn)IsB;>nDUiDm5~=Y8(Wo4%vtsLWrUrANt(k!* zc=-cml%b02KxOvBc`;nRe+Z^A9#JA_`%3Z1Oar#+{8)%O27d2Q#v z#xQ(vTWF@cCnx4$g44c(J;zp0mhyK^;s2&(GG+3VU@fuGq$fIyuWw#yc~kM|{3(5W z$EQ5<^#&C(tl&aNwp3OJ{r)^D zB%thkS?13l zTx+3Up$qHYl-(8W%_y#zY?ga-o$bx0kQ>YA&fflNp|fyR(Q(~fwdYr)%(Yp+ZCgrm z?!#Q`sk7o-azkE}sV3bPdG|Uv-eOhCw4Dn#8}+HJNpR73i}(X!EI;WZAfZ%ocaH2|F0$QbAKH&cK_-x|7E56 zw5fAnPCtKr{jUdH)jPt|t}k#~w*G6?l{phDoObr!zw*3R^JtpLj$0is<6NEY8p-lm zo@rov%{_Uo&zkVM!;0;P1Hui~{R*B_c9w_z>F3rdS!*n>MQmRGU1xa#DE(FVf^zJE zM`@tem*mg<-)&`YZ>^K|@fJS%GWqB6()WE!ZsqTZ-d$GfJbRDl-LDtwMEUI2+<3>C zyQg^izVC1Kv;Q7s7xC`(3iH}{LpW;hQ@gjfO6QxcuX5Trw?ErylA6xUgKvL*JEyzr zR`n?Za_Se1bUyt%e-rfIL@#_1f;+XBm8Rsn7t(TW5E$g|sHt)XVoax@$b~7eQzL=;# zJwRhlkiyL1(odPLZ)Z4N^jT|cF+D)TX3e{W%(LeBXumrB@WILb?x87@9n};x4zZC$}jSNy*fX3+5c~c z=Ufu}e@DE^Hmh%LV2#FdhkB2{f9;kgAD%UH_pSC|DNdCsb87*|ARzM~m=)bPuSppp*6UuYFjVYk+y& zWzF^5gR|F1uNR&7GWoY$*fE}0$9T6UU(butPnEl@SouWrS?P-hGd{fy&%XR^?k?L4 zEC1}1e;ux!cY*irvORIZ*IV*~E1Y+CP1=$(cU}DcsJF}SB}`wETDSK5cJEK8>hJPK z8Gl>xt@qrg9W!6w`(A6CdT)WW`I>3rZ+HFrbv7!#BE){4+{u@*+v3bw{$zch6}9`G ze!r=jREnSB*Pd;0mV2k?zh3&P_qT{_pLW8WgO$_wMHkk`tc>XAA);aV$tEl-Kr=q1 zd7+-9(N*D2?F@cRKXHQs$AxCG3(hnMDQmj+D7Nm7N-beEop5Ge;f|kGS7fSH)+uT) z_$L?qFJXVp%Ndh)PCni{)zS6vT_fK4Ob7EMcdjX#lp)1^);&|FpSe0KS9{N&8A~56 zWdAaA->n;GX8(H=U$SLFc;eC0TibH?9xHP%^}e5WcV0!zwJ%$3maW|Oi}lv}Fog|% zr_ZH0&MTXlD=ejb?(c>_5pnZG=c-?Sn>&5~-W3;bzFShgCupMF>ib5?`uDT8YGtde zY@8QdFTAO%)W3bNTfb0y`aJV>`|t1YG1~pqTt%|&&6S3#-G4s){`*R@!Y%l6_{O4X zPhMZDIeRqh+N6iy=hw_hTy=ZP)U#(x#TwF_b9Xh&w0-5jWXjg#Q{}#Bi@pjos7!Nx zaOb*A^vsB$vIX(B%T($E66@VIhDT3N^!WCL|1PK@yCTO#VgBLe^E@^Q@|=$~{=50# zKX@y4>#aM#-m#b5*am6H-b;Ab3L2C=5Od2n_*C?)2_;#~QxMHp?R=+a{93zTvE}a0 zo;>CL`X_zXCD-4T?z((`-6GS+QLTY*&wH&-d%dR0)YUs#I5+C`%=Ek3w?enLrQ3wZ z-Q43oH@A3xyYbU-mEh1N|H8FbRy>}u@?J&+7f*(T)tY-bE_(x`Kc4AmvU9!}F@4vh z%l%(|s%Wcw&-&c9=cRe-^G)jV>CvYm+Wu_5%gTOX%L-rdWp4r^m~VCnG2b;xS!Hdp zqM|;?_G8bR1^>6p<)4^m`oreA>2W{pX*O#XyW6jL+9w&`&#QS`ex`NCwoRLME%HiZ zQ`KI3@LogH#Rj*g=HlyTUY5??C2}}@)zk0)!)}&j+-r~q)oHKWLGv{mR&0%zy)bLz zl5cO$duzQ2NQ+;5_+(7^+-ov59{hGztD01@@5|kte`me$&32K!f8%WJq9)iZJ7d-# zqH}8VJFB&l-da1)PfE$W?`*v#xjby?PqD%;;lHLY&w8FBSLJb2RC>$0;7K;0R%o1_ z_2X^n`rUEa$IG-ozF5I^O8fU?_9-9pE|mT=-nqDcb7~2{#;vKB9FmrlZN57#<@P4G zHc@|@#VcRV{+#9?VSCf@=%r~Y(aMK4_Zpmztu_`2RFDo$(a?^bX7sV6t#`t&-Op!x z^DdYfFk8>ZZvVm%lQoS`I&?hC%$6Q0@Y|QSpGVRtMSJ?{(rZ%tIZJwPn;NJz zE$_|e>UG(DQ@b)F=3h{rtiC)gg#XUk^0dcNQZs*>-kizET6M@PE%)Sylj%~Ea!=d! z&XV*^OT8Vr^pWS@fd6u=zpfe^EofYLE8|U!*0O(&-@yH*dl{hSd_tiy^RCj*QnrQ1 z&)yQbx9a!z%B#;TD|Li+h9!5d-L-PPfAqV0uhqN4vrq1d7UhhnN_g%2YIo-9GVK-7 z`5#Vavx#(;ybj+OedT(2chb$Tx5Re3eKxbJw2|_?x6ZeAdxm@3)V!XU^;ah?@mssU zZtbymdtE0!IT(Cxuj9nr`Xzsyqf3MDpY2)}mic*lzR33*_cQER*_%)Cx=nr8r+II7 z;EPjFKYisp#kD6qe8sg!)%b|civCHBPmRv#eO=C@J6rei*H)7$Jtw4I1g%cq$<(QL zG`LymKdYX>m1W$ME(!-%X)Ku7D5qO)aiuCX;-!Pr;fs2nb*##asrmatVw;sG>943b zvi!*I>8r1bhg|wFe~tF@Ezcsnjs_VyF~6Gmv$WoW**5a1aIyLUH-&`@3;ZUo3$u*c zEpoL%=wjZ?#>%X;Md2?mOwG!D8))*}+H%t!@oN_XJZ^eSkCNs4`8)X4tG7a_LZE4z zWXog6kFVz5%fY}PHY?L;|JRrmVXJ%3U(E`g>gBpL$a86s=h39Vr9qx^=g#HcbILgQ zgxZ$U-Aiwmxs{ljpI}UI?CI+}^|tKvwQv8+uB6?&W?=lw9UI=jr~O~7P=U?*7wmeo<}wu=^K z1eN&*#I}GY2M;U)59xvW7nhSuR@>_wt%`b@@%CE7-SsJp!p~d=jfsl!yE!m3D7ZPy z*FI~JCd{zmg9IZlLqv`QL8MLF?lf*L`VQT>x zunws|Uke^^OuiK#@nY(Onv`^C(n$~{km61%5 zMGcqBZp~$_66GvCU1IUXfLUtI zb={k%j#NE0mnpK~DP?`UYWmd6>mna6sM$9msMks~`-*1#`vsSLHh{v!fEknkEb1dP z?-u8~{ky$yVeIa0uh}kNaw%LW-g^CPpm%I@=2IQ-m;dIlIT`kz`L$zC4RdC1y6~%w zLR_uETq?z@{Os1QkPX(DHBr}dXN%Lr#8Q6Q3r|v_0^|MM(@&RTv^*P(QVuYH>g<9i z&sG>tdUIH_mqqB5-@X;{ZEhmHD%traQk|M2TTLd+3@No)`oP0wp-b7j*H^Q{5N*hR zE@43r?>WwFR-QG-W`SdJz`@2Xkg>B@;C6nc^8WwFPp#v4bqq2}__p-*)a--DN7ycmD={O=+KU>fE;-L=Of^?60-NJ{qXA!dHBPWmb=hq;_*x+wN2;JJzPV zMn#cNRZbeD+?eL(wrSHDIo@TPrTBjPuTN{;l``wHY4)#5&=}A@M&7opuR10IQ`*`g zgC7Czpyt>)=}K+=nX8YQtrb@|JmvhBDRbXH+m?93k9WoP)B5}GubnRjpnQ>E2yShqm^ZxjgDFHV#9PHZt zZ6~HEOU&Dy_A~wO-c6eNt->jRe z<6L)1mSOV(vsjB~s|<@bL0T6@n~qQB>T?n4={pm@IqljaNuK#Dr``V_y*Fa*s;K`b zRIeEO_kuEP!9%DMzO81CGM;v2-rq`3R@qZ;E=&B@FTS=7agq zWwg~#BdUGPo10W;+9rNYVHfp|o|Mzev;4~;owq@03X2@fR-Fh4+oqHHNRU@r@oRZ; zy6l1c#b&V%&sG=~Z!~7+`qDD>%&kceC!aS_xjn5`%2a#SnN!;~dmWuzmH4Y_pTqtt zH#QT4DN}Vdr+2NapI{4~_MZcu^*AS==CD04Zn65i9g(vSMVJ1!TYu|D`o_ww5~ujS zohXP|#m`rsS)j3KU8SEPli|^7W3JepG5hX0MmBzb#pPT6_tzn>Bh^!Qbfzbkt+Y?g zxS2C^o&J)ADK6I>rbo%17WF96oF^snQ@83s+g5fTP%1Rr%9(y_)3fT;ybKIy z^WWdwJIUnz|9E$Ich!rGJfLETVZ)9anP0!ROp(~ATJ7R|amkx`3wCkTgNoQWY@q2B zP-%Sh$cwQ0h_0_&PF=jUmT`CdNtg9AB0(#~9+W^w+YYSkc{gLz&ek|q1_th<0pT-QGDO2oy*p|9`{bJS7kzitw>w<7 z*T3?st-O2qmek$lqT0v4OxYS&zq7bIEd9Gi*?H%xqBSd0-|q>$t>hScSFhKuZvVTT z_Dkbsb+c~X>g~$8y`=PQkmBqM*D}JguSZn9Iq9sWSH0X$bf@37cfY^>UEX(U^P{NT ze?=~h=UV^GV_*;y+X@^x|;Rf>t`*$b~0P(<2Jv_ zy>oY!J+9LHJcDoN?$X!aR^;v275iyj*!Qj4CKI!)95z2f_Eb=#vT z*7Yl6lc7^uKiKw`FdR^F%>@mJGw39Nn{D0E&r5G@J9~+l->vlYb=CjX`4^s@t=A}? zcllHDw61o!3+cb)EPftMeII)8^~7(gTOO}lZW1)MR2?6|jDaVIa|`!W0YW82%| z%nTW9SJXf$;ee7GsJ;=~{%3|-*xd!W<++nS{hoTKu>IYwy?)l_XKQC6b#wDhh<|&3 zW!hcW+%V8+dIp9IInZS1+5?(SNeI+Vkq`Rvt@`Va498D1jBeWm zZCud=>Bi0YYEyi-G^+T6qV10tE4U`DsjV)lFWS!~JWZ`@5|`^!{#er_`?XbS_jfVZN$mB%U5poa zJc;U6-S%qPKD*qV|25aXid(CiefZX$xmRuH?~L63#v?1~Zq(WdOaDm!zr?`sTr*1; z6c!1F#XbG~;o?<-3=BFZm*?bPx0}nw#PEMF&VD4Xcwe`M?XKZSFp4U1oPT8Edo6eMO&6pNA;bUiJ| zddFd-sOy#+Ym&}C)!A>~RctX+#nn+aa_Y}I*OZi}WuL0|MLuCZfB5rXCI*HDIRW6V zCny{k7#fTm8KEu%37leK1E} z!wZfh!VC--VgreHK-o&r0w%5Y_rI6QF)=J)e|6@EV-6F;9R5e_3=A5rwZFe@eOU=< z$3R@^FmnMYs7tI48+=;F$Y3EpSJ1t~m!aXCLLUP|!@82MSHtID{`?Z;g1P4mc!ZQ0 z8p>Y2h;YhbV%Q?Sk%fVwBpl>vhvgiT6fd@PWPS?gXE?C4`&fU{$E9mQ2K8ME+{nqm zu)z3(ek=pSg~W4Pc%n=sAN{VI-p|c&p_sLBaYWKy-P8F(vl$p<*X{+Y-3<2eTrH2T z8Ot;;n@sgv?rp2W;J`o0Z~0+~OM!PokEk&?RF}BrFflN^@PPRFRCI}@$zg+%FE0Xj zu3LR?Z}nsiMus^PU+)5~v-6u{p?G_nbxEafk}$)Anvyh#PKe75d7SsXZ;uU|mU{Ag z?OcmOC-**?iLZBkvhm;dzWwwH(df3xOD!1})QEUba-V*>=NQlJZK;vdbWU^aUUROb zr?|2{Nti)l)fKSI7lU0ct2HZvKX3Lj&HLX|Bg5_$>z{ACvVtM(EuUHHHH}U!1wY!oYB0rUnBuLxZ2F?=JVrZw~%lmgzOg=KSQ6Rg1fp za57BUf9U-m1vQqFUlttJ^4R4*|F#@R@60J$W{eCBB`RD87#J2D7A=c%6@Gc~zvcVN zxE*JfUHMfst0aNZ;r#Werac?1%{{ibuU{M+mTn!l@v-o128LEINl?XS#SKcx7gll! zzdcy%*dF>&u3P0YCVv%r&QF@W1QUJFGd;g`Hu} zJPZ5FlV-j3+yHXX^F`W8!VC-!?u$X?uT|(qm+FV-g*?j`96mm&+<2tgeGmUePKFC& zv7%sy3xOT}vZ=*mV@h>_y{9lkL&-ChD)-}@Nx}>Z*6xA?jtDq#PK&7B=6=u4upl7) zI0q;t#0V-gFgTREgYtCA&LmFZX*XFIrWh>*yV!Z7I0M5M7qEl3J0!6(T(~O$vXX(p zc4Fi!P!kN2g%}vD*g%ee@kl8KT4KQlc}#+4*dsiLHNFab0@-s{7Zj~qSV2Z#c$`2c`9+YuTSCK+g4Mc!)y_J^QvF3}@A?lr)2+oA7NlE67ui(YG3eRwSnG%7 zuZn7+x1gLFQr-btgC^U{WWd1iLgc8>n|aSYC)u30&b}ne5MaqA{PJRV=B!V(@yjyX z`n{h|&rmmGWVp3zH8>fhFMuQilY??9*K==A%l&*^fWhIl%<+kjEfS6P8eFW~2P$Sh zUyTHNR{7)lXaTXuFOT80+Ze_G<+6SxoNGm5fpMIEqy&mp%8NMKd*lf z3qygOmDMy*biZ}gVPs&qD+$)Wl56@c7KR5gqIw%|#({#cy0io-)3sY({*xRDnNBh3Ckl+28I{wu-FOHiOn3CT!0!ujV~6? z+PdoAghY}3SM;;>zA`W}Ox4=!d|Gba!d(YXPTMhM&DAZf-CIp-_1JGNJ^qSE^6Tm= z&pM{%UDz{a;gv&db1z4O3xHEykPN)#G^_ok|51A!wpNy_neMO)o%NA{K`XjywcNV- zEAHp4zS#focXHK|x(%1Cr@g#bzaw5)T59Xwhly8Jy=^@}u6D2l7k5?LLguEOnYVUV zP(L#RgQvCJ?ByWc%=vFGEc&(Jl6CZEb&sva{~fu*buYA4HhWvSfi+hqb7n9w1ng^C zYLITfgjG1msOMnSi?`SP_UC6uW!+nKlzZ7qvzwb*N{R~his{@d%;G#d`S_~X4=cp{ zR)=0PNRem`-Cr=X?CILgGp}7c%5A##+mlW6S8~q!`=V`|{(Vk{7YEBSJ}&ZKk}Y>p z`RmWzeJeBhGvj)z_pHq&TqZ`I5CH>{b8>^)qp&<7JOaujg!=~~V<=tCK4=GpG zyiC$v;W?)+K6kO$`57yIhkJe&+q)z@zSgrlZTZ(De=mOtaITB`dsEqio%KQBw;_|m&Fp&% z+w_+@eibgc<;HTdO83^&)rB`rR7>qXCWX&VzPj-K-?d`u;x9H%_5NBfx8`!+{d=o_ zwL_h%8NnpQ!0;vK<(65qFMGL5ubt%Sny*&3!$(@|e4gjA<l)M^yptOBEx`LzTp$regl$Vf(#n ztoBu&(qd;bEWh<+&RSsQ`{%54)VG3Wu??@(8K$f+**r^iX;yGn>FoPoeje$bqPE2_ zOf@fJ74PY1nHyBj&Re_d*}+|fAC+%?(AdZY3Rx{i&?=k->9>FD@7fkWb=4}r*r3m5 zPf86`v)SiQ>o~t(e<|nJ(ySO0|F2tDPJ23cb>0bY*}V&qI>D*)GIBl+@XuNZ_Ux}&SqjbXCAl3Hca((*5|(H{Ry*#X0DCe zt?j!8)ZuF2asaKoe{oZ9#_HqYwo7(p#Fl+%xn{lI@A8V!&#y|Z-{Pz)xTvMOYJI2| zZ&k*jy;&Bwy(ep`UR`tS*_J7JA)A9%>Bf9FzB;KRKPM&8mq8=@qO6K_ zvh3zpTZSv*6-SE|M`s6^;Z+`rls)xNo@!*vqG+NXW03m6#~E}d=7EL&Qh zd*Pb1>%3bMv1ywlrNzuOCeK)q**w|n+PUCbrNvvjr9{rIejl+lBL0=v+1UX%@>m%( z^h={Q6s-C3O}Q#3yDr7k+-BL)+uyQ2Y>8TWPCagp_nKQ9wTtd-*`{}IflpFX+7+SI zpy*v7bOAK(V^A?G?YhVQNQ-Fh+2X6>q_@0ysQ#sM3HPkem*393fA-p&cKOSPjoDTg zUR93zaYpf~&5sSsma1gVlB@nA)%)YNXypgUq0-KT57Iy>9D^{(AnmG0flx zRoo~3TwryUTulsjneD3fcfVX^?6F(g*^waXT9CC{mPCPAwseY7k++wdt3eXHqq{*DYv)f z+@6*>%ZSIhEzu*WB6h`^WMPH{DYt}Y7v#;F&27GpongTz6I0Wq`A6Q)LX_~_?Y9Soe}DR z{;%}9)UumD8}lgdVez?qraJbE%<00oU8i=Qt2epnw@7w{%@MVv;BW;{V~fEe9^zI3 zUn%i8uF0p@$}ZlWp=%gD<4Uhuwe5Ls`Tny1Q%>(Gnc6q2o?&Y54VRo(9!JzbfiBw$ zE-1F0o8s`zMt={>cJBGr%aTjgk51Zhah=>@gF`CoGiNyMwC{8L zj~c7B4X2!Pl*~%iAinQ&05@&DkA4gLQX9YS^{LM`vHx63?jQJbB>m?{)t$dSJlE|k zKD|k0uGa^)&yRlBwVw43w>15~@BQ<$^*?xo-a5D{n7Inh_UZ<;&>0?_0oR3jy0>&i zN(6SU(_Z;WXx6&d&vbuFyxqq2Y?;vWrK`96xi|OKzE3v#e{2{+#F8#+!sA(^4eTeu zCYMdGcNNLF2d%l{{Hmz$@rg}q3{Gl4J@4%;wByq=hzU_$lb={IBnfX^c?A*~U5Rg1 z85l0S6?rEw@n_Ec)X++qg8ac3bxl)erSPA#jVj;}+BelkKUUT1|3&VGQ_eY7tv5oVAVGh01B(d*!;5cR zlTYdX<_w$n;-~xfs5M_IUuw1PZ$22boIy)?<4RV9`48jS7#J4Z){Z&0A!zc+gO%dv zoR^;W4%eKMZ?&f3lv_@gBRnxCL4xn4kGDivk$K=lx$ednaosO$(tq7e-s!ubNMN>~ zJGx@sTQ{AQHoHy;nI2;DvhSSe-`FJ^7(>*OF2C%6WeEXSP%M9uP?;Pp@_Lig^~8OQ zE+6M!Xu1&+b;cZ&2{gbNGFq`QQs(m|;}4dMPdn{zA2rmsWu6bpBmtEWcl94hE!6oK z5%njIX=?BLhDRN~OOL)+1trH$aLhGoneMFI_Icfv%9mPa^c${)yeenexN^&kc#x8# z;4;+KtK75X+^@oXU3p#2yv&Q|SAV(uYF*`hJ41a(QU%?`=!3#n%02 zDAB+Bba&$o7jVvIfY{==E49h^b>_wF$h~EIo<4JR&hhOie-|xw&UyQs=|;zDm^)rg zyU%%KS=Zqj(7Zs$B2WgeYI!&N#+R+7(^uQBQ<2>Dc-M}+w^v!;R~6aqdcS9i`7_yu zD|7dAclb{2s00lv32gAT1qIAIrMiV{|JPMJf>FJSDQz!iU;_Ak~=go`aaH-17p#RmA zmIm(SdAVWn|D9%QkMple-SWg2MwtoJz19Un;-|OY`w|@E= z(N#m1|q6|-8__v4oM^$BV)OmjYtpD%( zwyP{W-I)4vewwPugSo=HJ|+9FGMi$tbIA&!W$#v;d-3i6^lObfmd4+oePw-{<*xea zTk7-u{{P5{iuU&qUiW_K((92`|5(G_RaQ=4YW?Q%uG*Q)m8Y%zZ?@iRztp1_|MpJ% z_wtF&_1b5v-*0FMJ7cuzKi|ktyK+DLdC70zBPB(!wE+8{Z#h17U-`m?e^qWU zPGL?8E`(&%3{gyXpZfL7$C@u)n6j|q)HPo9=a#GgROY??d{XB76wjNx z>RVQ3c~Fw7BuDN4*W+T{VC0aa)dw!88P*`WnZ&NSb-(N$$PstTrnb7g_pkUjhNvqh8mDJlm{?fc--#6i{w~O9=)N)onAC%ysqOvpYbX@zig}aYOFQ0ZJ=j~oTi!6^D zQ5I`b|E*#_w&lZoe!$f;ewj*D+T)$@L-Z2eVt>vz6cRqLcI z?ALpixYbR&d^|Vuv(f8U`}e-dc)`2(>(7&wb-FjsZ`yi(`KfF6|Cc=7_x8KmlnVQ` zswEMO8tg}wJ%ZFz7qk|y)ci4>n}K1f_EfK_RUE0fT6*VyO00W*s!%3%bL7(^%Tyyt z-{{NxFP~o?{jqj$)$j7I0 zx$Iv)y-Md&+wJ|qN)rQg#JKI*Pj5<@wT$QRgv2c+Ev(lWtj_JL{he}qThhjeAF?;D z*;gM~=I4^5Wtk)#VD+}s*TVel*|VU*5(d@lSFV)!onH=aG2T6PqH&p?)z0lnUnk5E zTV}J@XCFI5fDaAj#=6^bT-sw|6t3FPBT=j8kQ2*mMr?T%c&e7k;{Yh}P*XljbWI_8st05J(p-0X( zjXCVkmS!8?XIS*ZF9THXJ_9XcbPxfL5iJg>YWnQ+JpSe9OQAE;8IFehDrW{&U+JLg zs})=Y$}JBPo||s{-fQmkb%*{iW%w?wa~GKH)%_FHdkf$J8}oMJ9i4L~KUc?SeyrvU zG26%7rEE4;Z2xqSDUfmN*@}gDD_Xf`mbC6el?idX#6I&XbiHp8JF@Ij(mv22j0-rm z-i_KYWl5rhin+fLkMp!t&q+F`lj3$od?}x})UWZBOOBN+y!o-{M>rz`!;5L>ri7UL zZcY-Oy)0AAcNM$mcaRr~mfg4Ia&UO6U^cf8(Z2bhZwP8hv2vdAdY{u-HfL*@^xVY- z`#je$Pwl;N1=MPQMA*?AOXWaIKyOO436|{$shS@8B}t;K=Kl2ezeR2JW0&6e!@MHq z$TE=QAq{zG1MgasDo=BFYUC#y|NK8MHpm>G_sZ9!-sXQh+fc*i$3Fer+dlV& z^MTs;M*k1SO>316)7i}#!Uk$su7;$xIr`wnkvoUb{AsCA?>^s^H^bwb&HF9azqYg# zZG4iGILZ9Q7tNR?V=MiODfyOXyu&T0|Kt~Xt8#_W1Ju-it_W`GXFxhV(cNX-GndVr zF2grzfuqpQ2&2eX_c)&#t7bRb3OB3dn@p5bsa*V9hmG_515?{tNWWpr3CB&cD`G%~ zr9%QT1LCIWF1?MCccx9*em=IO{@@FtNk=CgziYTKM#oY5?r!~ACwj~Ny2MMz+}@^p z{`0A%xLv1yo~z&ZSJZPG^Hflq>QxRT9%UOrje!^27I}NRxeCwU_x^dQ;MQp-@BBEQ zUYoS(;_*eEcVDPh#Ff~eDw;8U-KBd!_5a8)gz$mFXftRumw}-KGUedjp=Q#Yr{tMf zv~zj6z}9OYgJ*ov{kE%U?(}s<>puG@$u@-iL+;l>dOzF6V)Kl5^(QPaNUT|A%UV6j zSoIQjz1|xK?eCQ@wQ}eFPuk9i8YA4`7`feD#wU7D&&Nt!&7*qNX4T@wckQQ|=*KSA z{mj2$Q|O~|19&F5)dlvU;Ud}agKvwjUaMtjzCG1QKlW+NGkJ&9)k}~%r&~n9nRu~C z8UNgu8;gp!6|V+2XBENCS&)%4oIyD`9Xx^XC1S0r9k=jVTSs@*qSLu?ySO?_7-SdT zLF$hd*nvxqO)iJFSUh88@M?em;L!}w4l;%p5ozEVOptLP{6YfM8w9aHn4~FH$h07X z$gcO#>jPgYF5t2KdE~$DSMZt_1_mogD+6RI0|NsQ}_J7az z=J~S6Io}t@hR=ImdgHfyzwXKx8_%09dy!qV^G@b^&OCShgV{Crr@!9y)&{h*c0oFL z5SoF3;lg3o)}X@%Ds#1Fux+8N+s!#d; z_f&~CoAak%_wcf~2A|%f;yKf2+1>Z~k<(<3bN0*X-eHs7H7)gNuW?1}hdC8CdbhWw z&RSNqGv-Hx*=%0!eHRzy1)M08aqoNlWN!YKKN?KT3=9h{fjd+T3=A(GHuXi{-gY=? zW#%j+Ut^tpUR>QhCv9}|8GS@M2 z8SNL3N@dh_a>U=szp?P!v86;oql_Ku5lB4(vf`Hhi-xIwqV>L)rzA=w3SRwe13D9J z-Ro8L|NnIzP3k)S_-)<$1wU$DTv)h4K|1!6rCfje5{)-0ekwv;#~)X=-b=WDKV$pmB_AX}?EzJAj~^28N3SMuK3(8Y_2Wb0+k1PX ztG~ay3R;@sDIQbMSabjS$H&L7ZqJYZ`=Q-F=R3%cE=mi1)E39+Er0bYYw6|8z2EOu zd#OzZ9kh7m%9SN;ZEWB(7#BD;t85inyV&*C`u+c+u3o(=WsuNNbN~9q#qM8^+y67v z;bCXZy}fO!*V2&S;Khp0Z5~;gOwrRs%lO^7AE7ugfUQYsLu%x$jmhoX^6%>%FEmLw zz`!eQ<}+E%H>k9DGOJ zzeRt2dpmsn{(rmNdZm_v&a$ol_q=}HzS`fLb2}ez_kp0(pDrET$jHFZ z;00SRvfxNm^eT%R(&jt#YJ3Z7-`p_Fy}8MCciG!Z4-Ph)rkzHL8oKH2w2;6p8Bss>rAsZ&oONqo?d~={S*drfd(zL#)&73F{nh2= z{e3c)i)^dEy|}Q@c~h>nO`X~7skygrZAffZ^Pjh-?(eUYrLndDem(~&)!Y4M)1JRQ zk3a5UqE4m+&3k_Gv(4Urzg}nMqru6=fXzW!l@DJN4@Ja@+E z-RZt=a`wYkN5*X%oXslMzj(V@v|;JAq*o^J@j;WJD;r9Ws|R0!{b-_&$rw4 zpo#m+>TrEoivowe)!(PR-qm&du~pfd8S|>&S@KGmc+57>zqZ74a><7Wj!T19?nzzS z{GIce_Koa{J39(@z1eiSEJcQG*BbqILDJI&RMM>$_V`m)K?lPOPjt($amiOS2#{&p8H``fQ|QCetO z{A|U(eRev3)Py)I=ZTBe7w?>-qB+y&RH01dw56bnBi^jy?OJfKn(bDQ4DYl;yTV5< z6~A9xTnq}!h!3_E9~P+j&RUXUv@%9d{r>l_`TxJ=7s}U%NI!N9^3;r_K(t5;A(Ru;4(;MCKiA{lpPc0Qet8W)A{eE+;(ndJMnzUo&_9pPNsZ$HakD-|G&S#{(axSK5((y)4gt&G9PQ~S#KJ>J@0CVpmNDU zR`EGzZ3{ePIKF-1o%h(nuVP)Ni_-hj_j^9~mA$#K@Yk=Z*s7OHE0c?4+_&YnpLU$R zO!Io_)8BPFmVcDa-?Q+%{r?!_v@;hDG%`;;{WL|w?T1CdI_RXsY;Ri@1_rNnD_6dp zGw=NUB2W*AfnnFgjECj|-AAA7T6b+tr1J4X&`ES5+j5_ahBhxM3~1rv+HkPA?A@J} zywYYFmzH?$dbw=&6AQn4ubZ#Ci0)oLV*$tR>hF11uUzq%^bd4A<>s`rmsYRew@Q2c zo}f+_r_$2WqS)}4B~g2;zD|0*%S%P5DAru(7@K!Ed+VJFn{}_(?e?3j=6h+G@9ZtP zx6RJZFm(R=>nnHs^WSwlu9RN*DI)lPQcXxx1y?bB(zq(h_*ln_!FPD73nAPIB?em_WER8*yWH@u# z%BQENdrx|||9{=hZEH)c)`FV}hm*1&{uYxyJ(I=T_xs!1;cbZ;(@(#=>~DWHzy5dh z(#x5>GL}LA|Gode?&jw7>{nM-R((3DKJ{$c*Yf)B<%u67vLfeMPV{IwdjG+nrls?j z`^{a|%+CL+RXpy(jg85sm7ksz^ngmdJs%=K%UE)5PkX&f%A#OF-N)|u7dxNNyKH{H zX7TO3-EX&8f)?waYOMUW98%IO5V`bn3!kjjlBwF^S*NCG&a$c8#B(@6ZSuv9$;S`r zU0bmr*<7sqPi}C?nw9pW_`|P^>-k?c8govI zHuE)(5i7s3A@SAi?dy;A%dcPT-v8>H_4||*xEkP@%q@A55Dpue8oo845(%{yc z3wB>O;E9~Jl#!V&<6sl3Rn3nLVQZt7`lt!($;--UTj<~aKK1m|DW{*RY!#XDe&=(! z(D3lrH`C|yPH$poU|=}K2_BhaIMsdre=+NY&o0xe&3K&Gy*_2)`}XE$_t|E-m-_4f zBrgrp+_`Rbzuhm7`8A(9AAQ^bDt#UvZU+T*qWH$g7F|b^s=nVX|N8Iu`|NjjcD}m2 z{CuXjGW*d>3yLj%6)W75t=abRd6A{5nVHt?vs$yyf?7JiZl14OCaN9Q;u?Sd``1sW z^|N1JTf6JmtJVJ2&kyC@Ntpk@VZ)KFDtBu>pZ)dewEov8ll`;4y}2o6kl=8yqIl;V zP_aV_peS4BH+L1k{ht8uX*w70>?}@=4Etesu%O|a zetyx;IdL@~U2Fe*JPs-*535eOzCM1vb35P5eZSwG)=pu&d+4H5cFE6|FFrS|yO-2@ z)9GN`p6M|~os&*3dGv9|vvYG-SJT z(?OTA^U7ERT#qfEd#qP_`M%oUuV$vtyEwPMU*d7i_ zvrmtH=!$1pAk95Zn~!U)e9ec(d)4o4?-rl8^;#NqYg1}BsEKuQvU>KfFE2q}H=5a# zv~flopX{n<&z^1I*qwLRD%D8xZt3;d#6es*No?C$*s4S5e= zcz1Vq>7O5kKliPV+go+AQ0D8)%kFK7E5g^uZPM}n`}_O#4nbv;f(H&e*GY>-6z`nF zb9h4LtRflpH(q>t;9f_Y?74$~K??8eEZ&-T*Q)m0&Gf{Bzb`CwmNHKBi8!-v?b@sU zb)SU4zP}&;|L6SwE0--(i>>*16jTU;8g`%(=r@P^^PWeb^X;mn{;`2NLktWTcq`_q z-~Ya~`g`8qkH@5cZMOeytSZF0_sb=3a2ne@|F6&CHeT-evprN)JfpYeTwD>jI3;r0 zwRN%Dx3`skK5O3o`_Zp`>kqf{ds|)oDXk+a`$tBnI!B@{X=8-Nv~42wsxOap3V*7N zul@C9Vrt|=p=*xE^R~=3uZRaNF%7Gz|8VDpMe}vG>mMs(w&kwgxG^xk=3{Hp#u=M# zt^w7op!->?zFrOATKl_f=CYN6i``Z(T&O71f8~;8&C{vjuh#8;cL{WC{891vj2|B! z&N4`Bnx+#e)MuSj zwV{=DCa@h1z5gAQuU`Fnz5ek_Z-FuJs2$M+b+7s(ON2pGg}d;tb6t@)Oh7KDPJ-nqX~{-M=%&?`Do! zjm--VGal!8&rcT0>|D1xf8S3xP+9!>=|n8pe!ngn)Tjp~aOu1qj-XTCmjqYyyB`OgKJ!HcHk#md#(*c) zNOJFwN8PiG)B9}BU;cdFetqKMwwJ$NuRs5~<7|r2q$Q=VuVtQ?peSWsw#F>y#sXn= zzl>jBUOuebb+PaE{QrNR@A`0vTXn05Pw~z|nLjVErq`AC$*Q8y@5j~#RS`{THMnAKc9?uDRsyLI>^khgeFZ<^wxHq~$W*4*1>e;@MKUjQ8& zdv|yFX@i~*l?Uw(qzjAWwDU+VTD3~6a^CU^8#%qDGIx_LUaadCD{o%+I7V;z+uPeg zSLA>$7O?yOr`VILd;7tE`)=l#z5nXSUR+T7{cd^o*;%Hb`Uq5)=ib{B+0G}+wYzI^ zu~GH699io!AN~D*Hi61PMd!ARySqv!iM;a$b-8h10FTS|A`0JhG^O;vx z1kSQ3OuBJaI_CF2aMieW`@Kthzu#NEe%~*z_xu0vdv<1~GN=JPDT-^^#t5A^kG|UY zpG*mwmZ~||FZ=nqxuEnvul`>ps2`^6)^kBLJZ539wE3&E=J$Dax2SGi$!sCl-=56P zwfSH+@8J{LKiFDhUS7F$eckJ}YKi(^FPDQ-&ZLt|K<%#O^XsCrudloM@9*!!NhJmI zCLLNjYw5JqwXxSjOG~%D+w<9PZNx^WeeYj`8r0hB_e=^u^R+hqWJ=J!_u0pKB#UI+ z*YEu{D{t3JHB(d5mxuZ7Lv+NrpMx5IFEl}eX$%Y++Kz$>Q4I_Y?-qQh*3{71_y6DT zQz=Hf{{4ErHR&i{?xVa;JiKSUT59iRl4irG3lq3^FUc1RGn?hJ^k5c z@9%fJtx8@5+z{2C`)VGqT>QS8on`Outp!~cJIlU)AL!ilj4v-PN?Dbxcy@mN`nlHS zS?}-deQ0zd_a?Ks#r6^_S-rn8KO#Q-mFW;m&b@u@+1c5t5^Z%~7RzVe*pRsE(NucC4Yu2n!T?a1iOvnfA%P0Zw zO<-V{GBsi6#RZRbc0E^SnBuiDwLf{|j9Ig0eff4f|8<}By9=N;cZJP5&ERD%_hZ}n z<)UH({_0{$N|0N0<&p!L=#>V7LI^OGEx1H9` zzrQcm-}dX2S+i$Nrg3`KuP-k_WgGa?Aj={ZoeAu+M@&sk zcl~(O{j_qP-y93Ub5Eb0oo!nD%m>uYxV1fh{-ci-7VBQr%gi#*p9iYzWvxm)%I_4m zPt%Xr^Gr0f+0|a~q3U?yxvDx)gC<;wn~8y;A@BHyzh!Y(&Ushg-+$?N{H^ZP8Jl>5 z+w^~~Q@{UJr9Ur$VX0`z1Gn$jOJ&?acSnG3f&h(r#MgeEns#>9)a}pn@9(R9x@#S% znI~_*?)$xJ|Kew7EniL~V&&2kPDyc>@H$>cC?k_KES)?LU9?imf>Fw?9?XKybm9FnMpY6}R z4XQyl-OP#mUKo&J%Hu2^TQc$8-tTd~vrIho_k3tF%e^HcR$qHR+}F3a>iaw0)0+=2raMa$nD@es|IMybWl;DdWwJjlcfBua~cr z+Zm%*vwy({={M@2LZ(CmxU(oh+QQp+ag+L&B_OG1sq($JZ?U z|D*r^g&!Xum)_3ZzH-$nujBpl{Qcs(9_pY`hUGqLi=RD91C4pidwz1;TQkvu=0#sO zBp&{>tN!*aMxCu93opMc*|C59^GYujp;J$b65Tgkxir-#=?KT!&e?HZu(bg5?c?41 z}^wc-b_)*i{b?x4*uzF&T6Zj7sZg@iRv| zh1I8cEiF0BYyRTp^7+@UtPBR-`U7g{2YD~FezC6aXi~|4&<3e!C1G$F2lnm<1ZP0h@v{n#$$u#}st^=3}kwA9S^_xAq!^Z7ieB(VK@ zB^cBa3keNfx@wiy&wcWGi{Jd-Cv*Jb!DjZY_5bU9XBxR`hp)RbMKf4s?khXqt}Tx3 zuWsk>Uke(r09`*}QuO4+hmUc4t2A!~N^|T=*#GmH^xnVUZtr^3rG4o5t*8UJ{HHgW z6h3kR6|ug)z7K!1c{{kDH$kH!XPf!Nd-q&E-@Lc~O6QxtS@Rcg%<)k>+?T+h zF?GQOiJ1K#k4ew6DqXcL@9rvYy&VpV-TSXiRCfPzGkw11?6X;aetg`dqpef7@9($U zQucLwzP-7re0q~f+8K$R>sIsI{cxBbUsri!W>)01xT=?`s*^p>&a;iay*+<=<}A?2 z%b}&+#XINZ+~%8ZxGgujolo}CudlD4R?e&Y^H^Scs#ojXjk$s)qVMnRjh-G?wQ|Xy z+Sc>m?!K#>r?>l!5va%X_0?4=ifUv$yGdH)Q#Na z0&0vrIXU?-)5ktp>nnHetnr+z_Hx(jb(b$K^){{hQvpiI)@5%lJe?jdckbZ5z15&0 zzn6!&^+SApdqLND>BjAe0NLKgBf048Y;#aAEwS-l;ha5x`@p@iMSG01L1X(9Z{20h z`t^2qNm2W&o9YL$zh1icvHaJc@^63Uv}Q_e%JrV4f4wwiR$JBgcURv%W^$-zWxWdO zj!sL>ys*IW*ZTjz^zRlPm$fQ*&;Tl6Q;j5du3HVd6l-II&%EcE|Ns33<$`rP9&!Es z*k6C;%F1BXts;)!-`-X~UI-r5^q#I4y1(vk38;fg`jAb*1*Vr7VyOs*l^HgVW*~Qf4y6NKlAc3U(gubvvYG-Gqdx(xEdZG zsv|b}{co?OL0(IPHtBfpt^R%u)JOp}Tu)8W{Pp25|6!+(_x4tAO*<>)d8tp<8dQz_ z+_xT7#r*vA6jc9j&Aq*?;9t{D&>YP!<<}3}523{mH2&UrWyB@$o+0pk3V+u zx4-p^liJ^(G#@PF*=h9TRJNww36Ae2TXLhz?^&)E_7jMGcw=L-k+1Qc%a$5?uKzDP zMF0QHu#t1Ah>rN5cKbh$pbCCh>Fbimz2>LB*V_L7^Lf|rce_oizGU#q+r^wcdlpph zwedk(o9j89KaeyWX^HqX0qXJ@f# z))kGb*RFxCX8Uz{{=X#?mEBL3#!9v+p5C;j>T8y%x%umNyWfZX|M&Os-(1`Cr=$J; z=QKUv`}v%;lv&OUp-z_{>05MNA1v6Ab$gr5`QY5#wR-!0B(06x8?`aQhnbCMLguW* z?eAV)U2R(WD#Uk=MIfl4P?~t*)6>(Xhk4C2&d;;`_3d_kXmIf23Y&F~&1|jjKkt2C z>kk@2`SJ1b)f+b?#OB6VJ{1L(eWj(PpsNO_oK5?BN_+i_TiNTcHZrr9{P>Uv8pr}Q zWV5oeM7ocDn%3m@^yP^gE!UP_ei_8i$j~s!`g+BQ`$3={J+I`Zw=;??-6ttt-twff zZidJ-5w)8&_owstPrG~R=j*DSA1o7@&Y7p4nDkz<>n5kWznec#R=IERM0%2X_$2kmPh5>sezfWQob=qI z&TpCK&Nj{C#;G1gz0>s4&VP6^YhKOgl&{yhkENUp@maQJn$pIJQx~pL@t>D@YOBu9 zZA;fYJUv!UG;o!xk=Fz4^TtV$T!%zo$o5B z#|9cDiQiwBsJ=E)0yNrj3ABx4wrSE4j=lf?{oeKMR<^&k)vtZ))92TQg~t@ON=Zw9 zeY^est9`%Uaa*VH9=`D6;^NW=2O2kgcwIRURQ`AC?eZwUSD7C1gZG|wM3$vQ^@oTr zGK>4I`;-qGOz}}WytlmeKEJ-BdSQWef`r?S{{>(6Wte|BH`jV=;$b$=ARRH#TvbKpU%R~#4wQD8?#vk6mZsAcIZ5$|a_55HcIe|{}G z|LMx*^OA0EO1*OJ8dtgYfddB^a&vQKEQ?x>c8g!Wdet>FRCMXmrH4-P9gTSTe184B zZ{Ny{X7Wr+Exhb&epbLF_IhejQP7UN>gwv1FBY~(?5Qw(eQoXH0F919zw*~?&pBiI z7!O(rx)`rsr6sfRV};D^ZRtA{LqkPp@3^<`8tbF{f-?_(C)_pnoh)lz_MlSkyv=7G zhKm`7*Y0o2z4-iYY3!kg2Ico_&DZbw#N|C*@9CSHo9Eb61|4x^j+o}^?#{k5hR^qM z$I&E}$)3}6A`g9heB3oYzQHv6+62GlFWt=f`;Wk$iZF+dj)jFE3r(4?_dmL6rFh)&`==WgPZ-%nuNq&7 zVZB-yu*aq=DX~H>QQP0u&NJ1n_2sW087ubnJzP0sU+=>xiFy4G8=tMrh%40j@hM)u z)8*4cgTMPEJLWb!LqD3eU~Aw@?0axi#^4VVX+ei(Pu>1ar7vy?%Z8 zv(2ZUf7b6<(EQl%f8DMbGIL(v|Nr-X<=?N@FP6%l-V_izRXTr9V8?+~tAe7VPv6^H z&8Q*5b?9x51l#-{N7OA!UI?6?ru+EBMCC8vzb}4m)!f|t=Js}e-^(D!v-8WPJUun_ z&F$^|*RF-NwYO`Ea3$UATJ&LKe{Ik6dDVTE#m@}P%-kX)CFeaiw6fAVQhJjc9?we^ zS1SlXE>@nTJxQU-P~(MFpRC6gDdoJYT_PCq@-Z~4X2 zxgIJ^4gJwN|FpSoO)1`9p(c89v-tWKA40p*V$BN*wd)MUW+ffj+}643RffiodCkvn zN^J9uRCIS%^FDoq#aCE3B>j^Lm)tJvr$(P`OKM8aJAZZj?C`Z)9&`n?qwt;o%`9CG z4m@?we%q=0%}MzA>8Xru)s)ric6EV5p!D^%g_*Mi92ooLY)^HGYFpI*v)P<>HYp>6 zBldcy+u|ibnrv)rA8P0S`&U<0RkdQ>x?|gN&GPT{yxyf`sNC`K{`P!%Q&UqDQ`3)6 zCi`Eyckf&iD|buwwbIz4oihLbod16YG_N7Zm>YR5x>Gv%@0I4Ctgo3wuJ<~WSRwz9T6b-$HFmUI;Aro6B^-#P{Q^+}qnGo_`KX4>xxdD%aN5 zmXw$8-zw%Co9=u0#>Qm!xpU{9nQJ{gJg$=U{AZ5#!&k0cS)joMN)wlsdSAJ6r6X=# zXlQ86jsnK}-%qA(R=QO6@zK#YH#fIuuirb3nVoM#&P^je84H8tJZM}Cot)Yt(x3|E zh09!i+!`7x`uFdd07JW?i;G-q{(Y`L)oXrFVa|%KN5L9T40xJj^x9wVQVKG9k!@ic z^?Ccly(|y^zk6MO`|;m(mAf}~ClP9(a43 zAy2b$`ne0YZk^g${CtLazT9%Zxr-JqY`k?V>Y>tCn|`N-4ra5LE?wGs?wsE=ok*wj zboJNQ)-o%|^=~eH9TpOr`v2cw6BCnymzPwx<=j-dW*2+iRsZ41lb(Kat&ToBJG=7h z)o{j$?Rl|=lj=`(u3n|JF{0=9yWRcO?{>0l?8+*Q6;CRg!1U4YGjH8H3%;2?Z8>J$ zuXjCC_IOya`?vXxH=;J@Kidd(vVd+xyScA+w?*BCvfum8Z_B;?;?*mqsa_vX`qxdW z{r#;ondLaox$UK|!~Evk`TF|up11#RqpGTUX1;xV$MwzW=bzo!n7n1nmJiQn=NG-* zdcEk!heQ!qMG>yf>@8()qukuwJXC~stn)UJ0_DE5Y4z##(a<8^LuJ4B5(XV;iNEs^ zN7r`8B`GRG2al`H_1j$XGU?sE-~20At`z(@r7zjHJK>9lrlz7;H>aYdM%>}w-AVs) zWw-42JM!0n<=*|U1iohyE_G~r+ZODQ{}Qq1{l4EnKHL8<2HnbAbield$D{gn^QNv2 zYsg>x>t4@e&EUVaj;^lGUu#URGMe^3eipb##xQ@<4CB6c%RbJH3G8rl4mNSx=IyHH zdG?9K)te@zFLl;F&YTr2d8(-LP@lP~#cGW%wpY>br*}1dv)5>fR+{+dyh?}DyuR1F zlKxs2J>k&R)h#J6zkKc5v5m>cZ)`|B+%s=;*P?=VcPuX+Q<#6gTcjs)b6V%wKnBnv z3SM5`lJfH6)4JO`p0GK%DDGZ&y7;{9@wMCUo%-;>;CP>G^6@@dhmUgkv!3uPcpJpX${)Z}-6&%d8hNAI~YsU1skd8p_qm^z`Y| zDO09!Fq#SEG#BUG-#7QTTs2SZ^~~(-#}^hlD;YjnyPsF))albZU#(g_W5x`HxqijZ z&Pehc7C0WgEl1MU*7nRi+u7##YbHnNv@OeAa`~m?>=QQUAHQ0?KJENG+nCa;p?iKl zn|)@sdH=a{eu_EXDzJeM?mpU;Mbh9=IkT6OA5 zdZm;WzEoio=IqF@4tFJf-y*M`onR^}_|cPTTyBv~8Gtv>@okKHn23gXj8Q zp5YZZ-7k3NY2j_54#$rkKX`btMuqmg_%m~+d8ka{pOGLtt8ZB*4-bz(r^}2PGZyUJ zIrH=L^TyTR-bg-L_%1PWIcw%UpLjOy<=eO5HsJGfb4$v~ zCV4GA@_G60#^vjy_r1S-=T6VM*N1FvY~?Ipd|dt7YSuDC6O$v^>-Qc5tRs{k>GYlNcD=SJeAM!SS!T{*6JMRvi}voFTVUan znyPxdUtWFo*{at^QCa!@Q+1bK@SNk4!?0At71C3}Q zwDP;L+WmSd&tZj`K8rG?w8PgWTwLV3B5UIgS&NQkyF+wO3%M2?HsEM=y0Oi7VSs?& zy!+G2g|gSHFn-^zTJVqUx^_Xr%w?XSW~f=N(78Q^+-~d2z;#uBO#h z6|1_}-&k-XxV9>E&&qiRW-UspGJBfU)#ufHHCHYB_F)q@HI3`RGwK3M+^%jY?e+0c z7QeR9lwWqb(CuY5^OxG$I_9eRUfFbUPf~xPJ8O8Yc4O2x#%UfZ@+OyE4KW= z^=kE&?c0kV9%7v}d$wimFB9$Xbt2y{KG?bMy|JaGXLPi*y8pZ-J9o~UI8pG{ty^h3 z^7&;f95ORCFJ?@6_AISX=JckPA1`<5&7C_prvC5OlG4(^xH!MqSlM~cJMZmo@HoYB z?Kmh?9ha}4^ZEJt%_T2`uC0sh&b@8(^U35d-@bKi+&A|C@14t+4?lUbM8J<((L!Jc zcPkTvy8pZmBP(_nO~3@$~fc&Z9|tKAqA&bd_gA#mA&wyLV^iUVy?1%J|L4i`|FrymzkfamhiI7|-kCgWnZ>=|w(oZzRoj30 zabt94mB_Q*w%_OWef8Tj{lK5R@|=vmyf-lFA=%-5AFy^|kLiDE5@38*;lzg} zyhk2SoG9qDaDqkKV~ZdA{B^`0FSq}z$*_L!Hz`q3(Vm{34RwF3d@hST=R4xnuyLc| zr=Or^-=hl)opbK&5Y*t>CoC-NG==xb>4y&!K?9w}78WPe?LKmXrqQCJqE@U~^JG@` zx`)%E^Af+mySraWfjyc37r(igSx``rk+aC$cNSrxQx6_=jH~;Z`fk^2y=!Zu-9tk~ zyTx=LO`iWpMcOPU;ru+?H@CKCyR9iMxOeWHpUrt?5w49zPrb_C-a2Y}Jw`cZ_vP#B zUP|v@x9gSGrI#kk%E~E5lAs31`TBpwQBhG6l9CJe?VI=c`T5}3*t18D9O?OPtnlKY zjhUI7-t@^Rod3s$yv1X&iamx?@Qi%FRuHM!L{S^`R{&8Uv}Hp|BATp z*;A*VbNiS9kD|?rRbG12lmGtusuQ~_WXIat`_FG|Ot$%UBiYBtC*gM4#n7j_esH-s zCx+OF*!Ms02@;Z9z9fZd3TKSEyN=MYv(X{Pm0L~-2dNp(IX$IvdgQHy0KroN{T3;2 zc_!~Vmtk@+z{Jr=Mp2e4@PgylT(7r0S9kJE{mHYm)ut_6=TP;me)XyGoi3jgg^viZ zXNt`9Y16O!*c}oY8WE6Av zu7MF-G6c8fUcP?aePO_Y#fzIWOh8S>ibtL5KTi7B9XhSQUuVva*x1-LF*_$YxAR@R zaz&-;mEG4X!8Lzh$BQR7EL!{nG)!=Mnr_a`O|C}_*k^ChIlXArsxDRUX&cJl$MGB% z;Jf9pg!kI>i4z4wLXQ^86#hxLt0BVG;-vWP?d{{w&dvt+`;Hjq++MbA+cfKUJDO+B zlG^uu@B6}+msAUV=hywp-1l{DKIg{rhlg4#=D8cqT(W9am$15DN3reaGsZR_j|jiH zw|Dl*lb&hk=lQA#E!?tYO8mc1)6dMepWiEOF2vV<^7-d4-@cs_II6C$?y8^Y(6e{* z=E?5zwNpNQDhgX4cUJ!2L-|SPpSNE4^DX1;|NTpvVJYWdx*}@=q(>-pQnaK0`OZUM znFHeE{WCK)A3WTp_pm@B_PV63Z0h%S&vz6o?0<0nw!*ohs`vLL-Rox;f4jc3wmvoG z{Uf$I^Sa50-tU(E{I}<0xndA|Q_H&7Er%0zPA}TFZJKo6j>Z6umefd%E+>C~etx?j z3c|vZ8@krbeo*CNB6|31K(45IwqQ`qs#7|7Klf^x-4jp?GwNEFQV_!(-C3~9{BVU? z&vMBXS@VQan~t>{-NV+pW8#r3GCH@9Upzh2vj}fPUmxGGW5*g6-L|lJ_N5}rHSomKq8GdLj$BaqW+}oo z@$}Pz*y(L;ZIan353cd9JH0A&^^WKBs(&2SuRD0Knf+t!d{F4x|GjLV`tHuoM^Wcz zoA;aFt7zU?{QT10yS=HAHh;fdo-%dn#@yRxvu4l!`O?4s)RQMF+TrU|W}p3ZMA-ks z5n+FUUbmxLe_h+Y&ownwRasdXR53q0GgI>74M*?J{r`XOPd_7QYW5G3k;q5dfo26o14?S?{(YS z+Sa_UzMq_wxKXR zRQAc+pPO5L&(qbFb>DlCAgD?C;e)~2wQFN`m2?(Z_?SqEO0N>ri#aj>@6GvwT&)#P zCc0$mTCrN=RF7rFJon_}#V>wy zb1eV-C7E^hW}EZEwoh%(CnqE{sL!vN1ZoQ1-Cch9{{8dmcAq8L*x4%|wu*Nge+(M- za@e?E|G=fC-aAWP3YnUkig2-(#Hvp}y|LzJkmonrp^zpgCzP!XDAQP}kARaRSD+Yt%onCnZoYymaYjArtjOqtZx#ibXw z$KvsKg&lF1|IdT=Nhf;P`J_m?fbykKr%TaM#Unvi#WzlH)IT`WPg(SI(FdCixzl6T zIV=pAaZ&$5>D}@k=eqdk_0#*mKidCT zHJx+w?a#Mzi&s4EHUIIDzy8FHh)FT)8dkl?SmmggzgU}1(dUGtO_ZP6+$HPc7T5Z5 zvINbGBb0luHG%+$ejN6%ZV2Y_-j>!9&VohS7)M!OHR$N)BFE;Pt%L_ zs;sos-}^-f)N5%=z4HojumS^zmMEv(8%R1?t*;-22!fDevGOCc|Hkj&>*c%vxq>WON90OSoCijRV)#MrUSbF5J9%a_sIh zP=TVRu6}cC_H~|%H^0})9ACI}Y3sXpd0yV$mgVncmSuLCUi@rx>eMNaL#)f+rQF<< zdZ+I9+nhT)CZ0U$8FO7!Q+esqrB8}1g*sVYmi!98cRxU*Ws$~~ZQG12Ej@jGc~^#b z<;Fd?5F8i-1zfa%OSn+U|-r>WC|2$E*e+b%r@w2`D z2m8MNf8Sree!czuZ>2|@Zxja}4HqeibvF(v3gf$K^5W&&=RZ0x|5)elaXMH?_UWzc z)hqKqe3+s#ZT$r0gR{kT+};$)C^s(5Y(b6s8pME-@@vYLdotHiQcxEJgyoq z)a0z%77K06eN;Ky<(z8T&l!3e6%}3W+K@6v=3V_T;m2RR(AXH!bMa!J&t;KCk6y3e-2Xz^mc`FHDqbjbCZ?pc z96RQA?AWo6s;}9TlI6?uIeA& z+}vzg|IfzP*SDv?AJo9TxjFsl`DVFOtxk;#7b<#rdl$;IpF8I_Q6eZb)KzQhp+Xs- z%SX25Uc7DoLt14*pPK zZ?^CMxf{&OzSs7+DD7Bx`osy2ZEuqz`DXg`#jI;+YRhan`SjC`ZO!ksSL|||Wi#1J z>iC(55>_WeEUU|6Q;LqTL?7I!9~fwSa98%@7G-gRJ0@X%icdp|vpkeNIV)Y=LlvK- zXRJ3|!S~!Cl-s?qfM>doN2-QYl8MmKt06r6CE==1oIDSzhZS({w424hj%nMYeb4u( z3Uxl&uDIhr`|JMqzn27QhJ+q9;MsIjr_+T=<6b&*dG3Y$@|+x=^PgY5dbMcNrb#(w zr|;}6{#ZMI;X=iS+j`v=fBF8sd*8lksho}_1qA_jJ_oN9;pOE$^i{g!2q4D^{;QTp9}+(yqT zy>#=Yrp)EO#{u#2`q$Q`7C^me@8rTr`q<$_<2G}^+ zI*X>bj>ZZ}k%{;3d7n4&jk%txWNH_>pe+4}eYZr$`D4o?4qW}B*(mmXuf2cmf{Fzd z`L+B3A@a*y45T`k2}I3ZBm`=W5R`u(`dBv(+hLnySmW!|nXRfq{;-wR;89 znHL%hbTn7?^z?Md9X}W)_Qjd++P50J^Vil!Th{&p^>1686lIPp&OY1qk-=$4UPea3 z@jhA5=t4~S-BQp*Ylv3s>s^cL3tU}W1?DSH?C2=qd$v%6%hc4=WpSWh%nk>$*{XB> zKwb59vAa21omQ;!GLc%kem%eMWe>HX0Kkq_M9?ZkgL^WX%G(&&xN~p&o1?zo{&|t zYSo1E&pF!<8@Ci)=2*N+tJR6|eEEl(b`KRN4Ut7#x6Yh4P0Y*NyVFG}V%pIgHzYu{ z&;I@MJ3BdLt~&;rgxLBlOc1=d=)rD{h#y{>>*Zw^Z#|rF@J|qrt!L(uw2w_%=jKW& zTFyKg?xa$zXM5Oe>siqo_XHI6{a3EPB%;6EXxWAQ^p7FT-dAUKxJaJ8`Q(bHj4xvd z&+$c8#%|XNBsDI7G`wIdZxh)t-9ts*rt!w|Ra)ZuaVm2Clh3BjG|d*fnKSLxt1Je= zUYon3x9{HvC#$+Y7OhT=pFS1ETz`6LsW%TVZ=wVnXv-yNs^nhvd(m|_6VA%W%O5x3 zDcUJB@A<@&DKl)V&32c)b-HX4wl2oAyxiQn?9GFR?efpgS-%%q^!5vHSYt%>t1FsT zR#przUcGvB&iXyey`rCN&-tE7AF;fC^{Qa6+eH&zjjp?m6J%`61(sf47kheN?e81= zYOO;Eb=8}G*u?kR z+UWK~36;s78{OEF$_?fpJLU#jDw1}7-q|BZSQuKJ8a-5u9+x|E9e@rPPwHnvF8@km zmj`GF^v$?abXs>!?Dn<*jh5$?8LQfsY5l0U(dQl<%pCvg()5DZ>2s~?kL|1dy`$=` zRNl^~Vm0^G=lTivAOHETe80Ed?8onRzhAa+q2rO%sB2Pf?d_m74;uRV&(B%EcQNl> z8FALe-}bA>^K)gz$7RbeT)Wn{?)9P{pmlwppG@}O^jf^yfQQ-lGDoXZ&aRJD>vm;X z`uh5==<0eb#u^)Y`Q+2$l+BTSGM0zt*;Y$PNV-{ivv@`&hXxH(29FNoncF zH=EC2x_!I*v6GG5@on7`Z#p_!3(Q}vnpm_`X6n?bpoxO)b&>9=sY^AooG;Eyy}hlY z-LB+?Ks&#D+JjFDD^Gf^(#kr~m)_~BoU+ztg(A<=w!`^6M(Jg&yNo)QJ(&?2?Uw94 zXX9hdnDtDTdkiPZC9hc!xaif7yha1D)Hdf-og)F44uzH2xGE;kSi;-9XW>JUkPsW5 zc*SQ=I<3`qJziA#Kuc@an*H9OSr3O7+9F&pcKNAIR-EW@;p$b@I~#Q zU{q98#Qr+lh5~M9!*v#O{e=12SFT-q)PU#L@86y(LOHj$t=-|7?lpnMCFt0T7aE-| zOt-gL7Cd0sUH(4p_O@IZ+bWUkr6*I2a&B&F1y!WJv&{s1-9Rduo11TJJ6n1^*4@{a zch#y%UQ2h>{4@g9*+<3WQ@*{qdHL5~?fpj2UxKQMYuCaap5Q%l|D|n1^YLfr=AK>| zynM!t83`vRslK_pd-~CC@$MT>=gpG?CD2D7Ex5(?QVuq;e);{6 z%YeuEON^h|iPyXdlp3|DYin47CB z>&6J4^PgL?x0=Lx)y5jG+q8CV@9uZIy02ZkCTYvZdw9XZg^j$@W(g8)1$HyrJl8Cl z;<9Lt^}8R;R#wkC@73>G*Dco&9$#yE_3G7#X|A=kw()-+iQn8;Ypr`Wcaif&5hF+z6Xekva((_(A3mSynFTak3aMONnX$2(-)xO zqBdDjaQ33~rED5}INPNeySF2a9T&FTqMp?vc!`nkwzJ?XbOzjq*9J6c6!Ow?&?3fZdW6N31;|8C1 ztm|DrqbEh?*d@Ld&#v6CQCjAdo7u4<-@kL0)wWfMFWI&&d%S{c-TUT83w|xA7ATT+ zTG!syuAlv0sPhSPT9wM?Rja;y`zF+VwBli_c*TQ8c5sLNRQSF_4-dEh{Bhj=+=B-S z?)`E{H|h9XK4QQVv{GbaL{E*KzppRvu63Zvqfb9=+7b<{tWGU*?PfSqYuVv2Z_XSQ z8NSJW%QG`F9wf{Emgrja;p+OjsUJTUs;R5*todp5v0~1(Yhm-MUTFrc6uG@E_wh05 z{FL+aY#lz@)&KgEX=PDPsMckfPFHv;mY;a6py_nI)Wr92q0C0PtXXEs zwjXW!pFK;HtNGyg>eZ_YCcXdu)iJ24sez`8w%;w2ULC&v*@J`4GBylVM}0j=;^=uU@reUoVaQxHVDY z$>++DP|=gJjMd-XC{Fa)kayRr?nARYXxRDJuV0|NBq=4OB-LwVVxsa)71j}|nS!#m z%c8VtUz=U<-iE1*nBA|J1Ui((xQpyxC}H|?m)^3(q?=+toi3?hl`f_iJ*)oaiL>$=r{od&&*3U;G4lOj;mYi&T z^m*kz_k&sqQfl+w2gb#nTWgb39zv?CiGXc3b!yHrVmF&pKjT z&de8QUsuZQ`Zw*yoYT*{8n4WA-#20TzI~v?8GNVUFz=&Ztc%JDcrKgV+?2{)ez#Oy zR`zYgG~48T2k$h+b<7KY6Pt6}?CaOBe=f?`w$0AJ=i{lulXo$6O{UbUw15pIGU`We z8ZWMhe!Cr1;WJFrjdrWAw_lcNWMkuFA)_|??4s9J(^5NqZIhFer%ai`;Cj)#U=N#L z!eN6J=c}7^YVI#zx3153wwdqJ$cR0EKAk@DxNz6*-8-L7iw4DO=kdom_x4C0HdwJ{ z&5}inn&!=ui@E;v&(F`G^#C=`t?wtEpJ$ttce%3q{4WO?zV`07EKOgXE}Kj=5fu1x z$&{!0*fF<%ALai~oUHC|RR6EWZ;nOdvdlgIe!X53w|7>B&ABy^n|FLZXKh*dh-L5I zy?4rP=f1hWfBx+JeKW7e*T=4L<`&m;2^5hzt|-H2Y-gwUi-p}U?s{ovetvpM320hD z#P#8ypPw17T)Wm)s=Z@dL&uf4Jr#zks;Z#z9sQbz+@O^Z`8AKF&&;=%2hSmhURQJ2 zRS)Z<$+M!YUU0otW9M%--+iIRrCWWy3#FfYvJ7!`4ejEayMRA&VZZ^CvyZ-u#O`?* zuu&j3I9B<{{TMxUuJZvpSLRt1GPwq7h;TKuzu%p)$}Mt{kHw4_@XAb%%Wa7TKRzU` zTBZHth1J(+?Z^gn!5DIK7Wmr4yU>c!IE99Zy#7?%u+m-_JYkk z_ui3hx3?`?VYkZ6H0~;ks*j@l!`$vUe83QRtT ziX3(SSQH|`m%6O|+3p`)5wpDRT{!vDiq-cxb4X2yjnDPPN6I*E>q*%;=4=J6m72g( zo2GkOX|A8Kon7C$*Ai`xX0wlO(s}jjm4WZ%j~@#keY9BjT8OLl#hW)zPE1r*I%YZ3 zXOiFYR_7a^Z4_D9|7JA*-uJxnNs(pDbycCx38$ZS9Dl6Qb?D#U-#h>R`@M3_8qlb4 z%$|ygr>E-|ALcdh@O9`~B*52xbe6!EO`)MvZ|CoiJ)*up_RHLRhb6k4GVAN@Cr_UI zXk$Vy?=Ly)zR%a#^zScUwybUc@7?j6ex9%Q zb9H6Cm@$P{+N|L1*6X0QT%tr$bGU**`sSOGwUZWVc&H0;Zu}CuYY4&~gA}_r8LMhgkXK?RpkzJSno=7?^GK{>hYS zpz%b|K(w7l3O`~(%sn9IYU$i=as5x9^y5L3ch|0^+1yta()+gPYfXP=C#TTDknh(;^dd^UK$+9Xr}Besh1leRTfb)}6A&AO9pBv?_S9s_Rrr z)gY42iKWGjB_-n zmux(rU^icVrccqkJC<#2Z3c%GPn|wJ)4E(wR8&-HTh#2Lfbfuz4XLNa&dswue&R$& z$KH9i)n>Q1t&0UW{q4T*JTKVm#(3iS=P6S~%_V#L`!8R*q;%wt zhsvP`4;1$9-8*H3ao)3q(&&)RWKcePr_{^f<(5-E{NqxpM zdAP;(p6q-+?{WYCAN`dN8rebXFh5M2@Wz7g@#DuawO_B6l$Qs`$M?V96%ro)`D1^* zOhvwWwnCk`iAg|csOjQdCj|v|+ZN_P^BWyoD?g{z{X88HDt5VAnIOx2k9Lb^W@R~D zHu?0^W}-*S*VorKXJ6M_xA$Ar$Dco+&tJZBW#_J4R(|vCde^;nikR=`@6W$7q)Svg zEFe7m`1k$)Yt3?QIAmrPUJfoTHBC-VX2`jb7G%hr;E$)mR-B7_~h-*EcKqg zV*UE(A08f#DL!kusMS@$iv79|c1>^9iEwYH>#(4 z*^T(~CO&R%ZlD&~GNrlqi$1U5+7Z0*qGQXKA3s>^f1dQWtoviJEc4RM%9K;0Pm*S- zwK^?)q2P45P*(8a9N%=%jEQT-QDpAib;cedUZ@ zj^W|ryUX4_Ix{oR=Dc&D$flb*si~6}ZYvX?_zZ-dTO0j<#P>FX1pdum>L=B$v=X~mCw%{NtkPGi_~Q|Dra$obEp z71P<*)+C*uXM1Cta@Q+f-cp7|4(nfAJ$@_6r|;S=DJ6U0V~ouq3AdgcJ(vFu(|%bo$9^vKFj{Tqq>?ky z(|X4$&tun4?9%e{IR3@fL}t+}-$;%vnR#*k!6!1UBAu5W3H@j*dbIRn%~+uOmtXAi(-C_NngjxcL;SuuZEb8Dule}+T)1$7!NF?o zvYk64b6%Z%{uvbWmzVp4I)$fBpYC)6O(=c3;LLBBf6wOIySv(EZ+EOa{o;kjw%p+8 zXwdL=a&qz<%i^|Mx1!qG+jsu^_1d!Lhr!viXF}ea!)-ASAK#@bS6uS* z^`}mqs`Sae;O)N4dlt@63e*tsSQ-QxvX6}HOq57+7F4))=;cev#BiJS>oCINB{<{N@H^oSx_OCeYHF7Z(?Q`SOM1`RC8)?fu=|+a-SQ zEPifL@j=1V)D)B{w`>PDqfVVVB_S!9cyf}eiV)|nUAtUb%C)8{&GZS1j@FjBv}#pS zq}b~4^=VgEg@Pt2bfdR*ym%j@=dL3*Tk)6I$8cx|?^B|(@&Z^xBV1?JGS2M+BHYJ! zE#nRp5x98#K*+?M8ZlLMhMR88eC51aODi@u7Bq@8X_AnjzNE-f6GiM+qEd+1>3e{=7L8@IOXboBwATp zyV{fnw46)Z4C)Ram#gk+Y-9`!&=WfxE0UVV|DeXsK6#zvmQ=mzk58)4PkDZBZp^L{ z&eNNYY~85S{qSKTXdT|XnopiJ_tm9(yCi(?e~;W%qB+rn1w5wycvkkhgM~I1uZLeR zZEJ7;dH(+&f6!4w24-ezT_4uHp5&u;b9cEusQO#(KVM8Q;jqDnn)YSO)WmcmK3t2b zVLu*PFh}F$67DPs-|!D}Jx`tH^;#rlXSQzr!yjsv@dpD2JIJi!utKiJEDN}rMW2BB7@XVSu>&1%~56+t3U$S&*t7-PN3zse( zdU<(y>*pUg)8{{BxBtPInwlzOUpHrc%~NgAE(cNVun#X5_kX&Tz5e3Wt4Ejl&Tjc3 z{e}NriqX;P?avKuY_8w9`l;z-8tcFe)q_S4+cML=0$E! zo9LnPp?1EHn(`!brHLGqCr?%?y8XSD=di-$lN}#JLP8h>`j2O3WC*-ezL^uYC#@=E z8>qDbT0Ze9Q38C+uwf(^b3*=lZ_h0q)XAKDnJ^uav ztH#&E}e& z&sfDI*Y)V~jT;`NrKan$H`n|O;t6igY})m_^3AQS-RAdef;prccgXOyZ`5h`Skl5R zuJ_@~Wq>Ed8Ts z|I4GU{lwOn|Gng>7>f%=jYiMfTz~F7ip+W_5|$!f4BF0oL=m%BWKO; zpNao-G~S^4TTWYB+lA7(bFIrSUAdxi?MA}c4>tWiYQcNzSFd_;-P*{=2{iGam3uoa zC8b3?zGh;Ik>;a5#)q#;W2gW8{G3}nub?l%INWajbI=g=#^Z9rp5hlXM2;6`_A+sEC?^!GIXzwf^C|810=L(J?z~fA@N{tu>2wJYX+3w&@7w$P z{fQEf@;e_y?0X*^8hTWF{hmVy4m4!w1_lK=EesGiKl7gybb6)p$zc~a2gnfH&P^*L z4?o{$HvQG4{wjq@{F7fgy~saQa=hR}sor$qy}y~#FYOlWINP{dbMi@_o!#AgxtfzI zlqM=n^jM&!wJv?JhSsV@MbFMi`pvV^FJjK3(bfN``B}BZj}?~~b$-SwUtjh=o73fd!d!-y2hw+**WOQ0N@_ZG z%&qMGJMc#ryWnYvmTdbocJr_`g@z^pA=cnt9&MD;`=!N-?RLPZ8?&l z#UgEq0$i;tR;@ZzDC6br{qxiG{bxX9J&%rdOUlU|+oWSOvnRq{uJVbXm|jfBvP=^b z6VRAcNv!%rkAk0{Qa}B)d07&*X70gdix0Q+8yguN>Jrsnv2I=3(^FGJ!onU|@FgcF zs|az*RlQJTV`sm)Em!*gxBUOd?(8hSxg}G0TB=~DON+$qYuAoFJPg{}2AXv4uYHre zBuMkt?c0`>pHx<@x^(SY+v{CC{Ge$_MVWI4tK%ahPd4-0Y23L4+AJw6E8ElC3tGil zCw}Ca4m_zkyZjT?0*{bAIi>bf>;AuMr|*0{U>;%dLB8g%^z+CY6Q4X)X1>vx`sdQBl-{8ls?fZ`@2^%e+|Lk9VRfqCnv(D7=Pt)UnOBAP0{J;2MxMOAg zq8BCigc@W^?z%WC&fh%4CpF;0vO5d7_H-Lq#5R=0PVemWwBf(EPI~&ZX+r(S8S{^2 z|N8y=WJ=MI$Avnlog5Dr-!Ec%xvO#2iWj?%KRx|lzB*klFFo}B@AFm1ZRb>;I$1Mm zLdzLuMMXv@4+$2{pswJhUDqbQ5`BH;(!JZuxBj>iHSyl1q`l(pt2%<#Pn+iAB|6nm zSy7nLXwn=Nb@lXnkFD4KK3;w8lpUkXYNMTY=Zojfd9(Na_t^Kh)T`(I+4uVQ-?UwPHK}C zJ>7nr?lN2ZRyU<6@>uWtE6=y*N-L^>Qtw(|5_qaV?bkK+|;qZFl&1QeY7PrJVC~#c5_i?dw zO_sUDR4>(Y*6(d{ZeQD5di8aSz+z9Xmme8chp)f(?*7i==a;TtJzD$yuDi1{Gic*@ zp7Mm#Pa90)Zho)Tz4Y(*{{Pm`=hxe5hpl;FJpU&Ts3URy|DW?ezir=t_S@UrGfgsu zVq;@L<6@xwiJ_~*K0avXH_E$Xu{YBr_noAS%oQdB(BdkP!qd}qlR<|u*{@5D1np{E zxKMF#V%GhAwO_t{>-*M~4_Y67?wnuF?PK3-*X?{JrMu*Q>GjxKhBkS3EX;Cmxx~ia zl}O+C*aFl^5LWlwka1Dz-OlH7b>GYDr$0SC{j>l7Fa9=PE;#Rb>6`!P5V!u5b-Ujs zU0UMFq4?tE%Y}RQ&Q)wTs`1t=J7m7U(%Rhb#<}b7s@fP5KB)isYyURwo%;SW z<@kO}tNX(9XZM#2nTkrEe?rL@TSEUfa+1ql9UtQ5;c>CzDtAvcqm5EmqC9=|s z1z4h{ggUKFUE1WlFhD|hvF5~zdCQM7AK%#V=yKppW@hHawVg}#uC3nJ8|2mG@b|Pw zY*cM+ElZ%!t3z7_%@kB5?aigyUrkUEywnuoX8L}j>8<-W6djdxI(1coxMUtS_{8q< z>^0Flvf_gF8xxM0CI_V@Hh--qDumj6U;jeOT%t}cE%(=3r7opM7S{~VXI-9HbZXW4 zqSKpZSQamP*KSw(DuiM0Gz~?G1pyip&Zc=za``^9T!vkdW#03P7cV+Wv{~s{axndk z2A%F-zp5swEL^#=Ge+bHn#~v0x?|**hE8pjz z*6y#Ll6+8S*PifK>*}Qgo!)bImSyta7I#_p@jzzdx00UC0?Dp7#GjWG?)v8c^oQV$ z6D~??H}0*9pAz^n>eX)n)9>GEva03(E4{dW`tsg>|M=(P%fHEG9WO}pfAoBAdC%%^ ztoy_nIK>o}w6Y#?ViKIDDyZZayEjNds9R&Bhrr@RxlPRnrX{F*YN;_B3U#{nC~UlR z??mRE%}1tjP80gms^T=MZ{IH6w{KqZ@xH=W zS2V-cL@ca+yUK8duj?t(|{Usq{#j`^CrS zP6*N!I%IHV_WVT}kM32!f4b?k-r}W8Tjl@%INsCKV~}}C1+<9nFu(no`F~E%pPPU^>5gt}haVxDi~=Cy74|fNW@&?-|rb)Uw-Wp`j{2F z;FPA;(kp@oymEA=dVv-=C~$ywdlo-G$LiO;_0{L_uZ*C{sl$g4hpY|_TN~wCU2P3I zNmEm-8x(0aHa>RquV>#maDX9rna{=KuE#Te{i=Fou`FusrEAyR{Qdcj)6ao61%g&M zPn;+SIya{3+x!3j-kX@2Z7O=|C0n>=&W3&OA6xM4-Me?ky4CjI29$#mf zo15!1-)^q?o`<|wu3r~!Q{?641ufg{*55bd;lo6|9S@l5-hZ#_KRH=lxJ?nXIVQ;K zoYiZcyX6sUPkR-F-CzBr^WZ_pUAuRe#^3W%bCx-7VrKT~Y<}J3tgT+@>FUwjauRQE z%dPqMdH!?j`#Lo0~y}rp>PxppibK)Ken& z{(akSY-6+Le*M>b+7oxJT$$-}3$#ZnLg&@>)!CYXH=uQRLd8x4rVZetvhBL+LF4$x z)2f~BegCPyY0t^WPioCSZan+4_~$Y;i8o6*&TDU}_N}}#Q~s%ZzUBO7#{O9qk%8x8 zzy9U6{g|WFEdp)i(}z z_*{J+aJ0WG@cZiA+h^uj3STb`E}x+)FinAjxvIKabNXo+`?{Kt4!gUL3l6n#_DGxe z&6{_x#LjK*l~->Aj#kb*Vq$7~@#@v7=hkiLoXl~18V}DGBLjm50kab+U*v@M%;|lu zqGEJF(Op7qinrjTU0-5_na&q(n54CB>apzQe|wyTj8-y7RIFTVA-KbHlAFWi2^&#U#d$!g#OjY=~|KIihi(>RX|K9)qw~S?xi*Jw=yXdOry11#Drr(!uy3E7=F&d#b19d2Jx+

      Nn8l#WFm$BwzRwYL|>hO4K5HpFh(vL!%o`qv-DJMX+mTU3(sv}k6I+3M>T zh1LB&?B4%-w?*G!%ja_rFLLcJiPXwvYol~R4^`<+e|&lVKa=3)epf%QHcL-6l05a)Xy1EbS3&XE5<%~2 zIt$mY@BhB<`(7S?{?{xM+S=II*x0^QYE9)@_ZoDl$g5YcBqSslE=4>y;Bhz4I$Gr$ z!k7A#g|Df>wOh=v^i{|tm4!ho6&7)ZqFoylJSE+8f1=1*bM zY^~&Q>bhH9@j(4J$7e>x3G=tM&D?wc(LCShpY|Qy@VxQtmq}3@W<85Nb>@Gu`2DIB zwfENhn=iflz2o`KnR{N(ikva!?DYBn^HLUReT$kVp}VR7+up5HPrrCxoip{s%3lnx z_th^>S|y>okDrgv*v7`^dCSMe*FBFuoN1g68gbc{f4}dw<>Gg#E4fd3PRjV0aBq+0 zmhId7cV$2QT+Pt^{CI5iwAR&tob;#OVN0?7S%5=_vD0Jjj^kB+m+TE(WYl-8YxiNw+3lq_`)Hx6(FBjvid?!) z3XLpFrdE|1i{0>KnWoYutQ50qqk`mHR^3z{&mQH)R~Y9^u&UQ}%yCr7NqVT%+F5V5 z$IBr5a<IgZEM%|W^MIa8niHK?WB__8e-j`Y-hlenVI?U!b0aOSFgUD z@x-D}bNXo$GqX$Aue-auv;Y13*Jp-7C*v+qX~G==yOgeBYrD9}JcTb%ItKn3$P?cA9y6bN~JO_saF_!7D>v zynFXdc>WKT+}zw>bw)FJl$DiDOieSVe-7XGNwntv^8Neg*Z-Vef3P&Rs=7KeFK^lQ z?bFxS|9x%q{Z4TekFKunt=QT}M>s*p^6H+ucJ=DVxB2z6YwY|N27s1<1+8p(Yyn!3 zp*ZSsZ^ko0#zLnQ zQzK1GOfKBN@4qxi(Njn^c5M}dxvA;IlPMB%a?e1!kxx!iUH_$jJ-7g7Yks($M;X>w zjeT@>Z{v5}e>V01AC^1+j=46+dipo#=9QaQW%8Qe+cEq6zrXD}?Q&9{?Ua3TrO`Kg z$IE4TdB2bM7yiB9zC-xj)9?9F$y{&N3v7L~UdT6iqH*bNCBNM(vNj4tI0>|0%y@6> z@krn_lc&`E9)Sq6#piBb_FH4o_c6!1bf;Hm^35ryQ(FXftXp2KsOA~va(`#Bx^enB zpQCAi{`9>9&27nwo*iy;eJ6aI z(evnv=v23Sw_kCSFILXjUmz#G#%_MQTvdmcW$oH2oQJ$P4oy(;%*e@k(xt7J4mu8P zT>^JB$0ChKH!eP&V{@@vSElUkjk8au?_)e)JfY83N7&~0!%L_2A6A?P9aho(d|7Mm z?X4?YT=(>NOR$1gg<9wD>Z*zDb8+KPEYx*0?W;^W?x*G0(d#R8%p$Kv*X_ld3@4$6 zrwS(vH*NQb=$%m5v_;3}_`;Lr1&g>gN()=)Eev&EsKoJ@<#uPGOOt;04^L5j&k3Hd z#JE=qMe;2Sbq{@VdEX&@g(cEF`sQi5Rk@4rto6DQv#Uh&`P}k(eZF}a84q4uT&xqZ zp}}{yS>eN0@lT88|8{We@0qYRdi$n?gG``h`0noP%*@O`_W3(IGgp6m^RQX|j{>N+ z|M}@DXfWYuxA^At^KxltW;o{O>+gG?eA}$Kx!Gr)&CKQVs=7dnV$;vdJv%e=aInAa z(K(jIpy`d7MyXt_PK_#_pjqM<7Z=A=KAj30omcgq25LHQE_oSL_U_Kf)akLuF8kY` zZQ&H=XmaS@2U^(MEv}z-dYW!b;Zaf0-~wp(bM^N;F};`-*UfHk1D!Ya_0?6-q?c>A z*u{$%4=$Y^cgmUH_Q)dF?i>5-?H?cSPp_zm_--dBCzp0p6FKh0d=( zH^=hL{r&T|Z8Mvu8@;Uh)4SW-`!}Dn>Yi&|{t48z05#In&Pstc(my#lx%7NWL(oc> z>S}Ayd05}x+yt#P0(B_P&NeqLe-{Jt!Xnphi>fax`WA*wyjA_}P2$T-OF`Rxr)r09 z%Dk+Wc6Qd$e}8|^v?|rAt*zxyT(N%r^6lHFXI@^mvHE-7H2wHKSF{+In* z@$I$s{wqV6G8H>_KAW|=;_~b|cFo}J)1IeVRDMzcZ3a~Ln{%M>lDSo1vO@2fZcZ?&cf*DcREr=MDUzf-*P&!^KfEfSRiWqRKV=A_@)nl1kS zw|t&52h+8+yJwW|`#jg`SCB%-WQp6GB;_QZU38a!{_pqu^okV@O3EH8Gke^ttF5QU z6mdSETQ1l4c!J8x4Rg+Q9-muYHx;z^OvN*Hzxka4=I8VGPtxcN-dOYH{+E@(%R!5q zqqpZRjnH{@Tv|%X;`f`)phdBp)6c5;U3!t3((}B^ruG5D_S%nST1T}a&AkKGJ*fQq zpl3Fa2A$9)YGO<3hCla4x_Z2;#9(PYZ z>yy|E~c}8vgnD`R3+y{?E_Of=+n*vCqG@*4DjGCh=I0 zWK>1%qfYgRjY+Jt&GXY99%_AacX#;r>H1T>O3KPWgZoE1g)K{72!KXZ9v|z~iQhNp z?(TBq)KemT^7ek--rSy(0<@-PWM?Pe-&YHA3#iq>$}RQ*wERBfq7tYiUgkgl+{WbN z0!|mMT|0JhvHQzcuP!ycnCx$N66CO5rP|NuRqI)oy-9d=W#tqv)w{yxT}pg%HXH{; z!($FI^V=+7{a{)A>_z3K+}TbGLGwz-`(!UKdNaqe_{OeM?bFls(|><^JE!*B%`e}- zD=)pG_o%Or@7tT3hby1YJ$|fLI&wn-J}`xoNi8 z?QOZqH#en%x^SVZ!$4b1ckS9`QS-w9)c6n43S1eIk)ID*-2$=#v!=;#;lXe{b{5f@{7$ zCamAC^PcYxbo=_Hbc2rjckz(DLQAI{DV+0dx~%QBZMm^qHm}(dpRaW3c<7qN^9w;I zPx9M-5da-6-B-Uwr(1z%M)5ZpHJ=#=4mPt}mc5a9S~Rn*jSUn*M>>U1{>XgqcD!r_ zTWHPsD;dG*!M3^hb1>x_sks2$=|+} zO=<~b-@LS1{N0U>&AGR?z1(+jX;3HV+`5!wJ((pXeau2SiGu2evTtQUo3Pfz?w;1n z&L6ZkY-8?h&&g__A(c%tbpq#f-Jkck>5Jx6uQl=e=S@svynixiRoDp&zQT}&OHVG` ztJ>WoyrHGrwue3+)7oq+dZ; z^@b6P;6sl_0W;C-%icJp2rb}U&wA$8mstll>1a*mij9p0wR0CPR18}ib@T&xOZ=@) ztNeR5Ml*Rfr=NH8I(ajFey>2&)z#s~CMHL^M71?UxImq@`}h6b-Pu1sJG*%2&Y6{; zpG`dd6twQAP-b(+MWsa=N|R55az$n)s8`a~#&*u~xy+`UI-m)$O*+rc&UT-q@}$V} z*RNk0d3m5I*=^g*#B?GYva_|h#r0Sc9v*7lvF`LD*X|V|TA*IL)4~aPMOq>oa%V5~ zp8m*!&p7?ul70K;E%lx*D)O#P@^>~Yf*&Gq?0K#tjqO&*35J57Gu0{ z^=j+uT`@HukAn7uUAW+|HA;2*>6hPwzG}`h&zB4Gnx+%E=((qBlsFe_&HeO;hgzR} zuAHV5+4Oo>NoncB%9r*J40sA-zl;8!X$q>}4kj4<`Ig9%02!>>Ut19yQziK4@%-5H z_ETe|p2wY3&yVu?H&t%>!|QF2Esl8hsLI6Fgt`PSIU4(vMdtOL4HJzNJ(FsECaK)m z)~lNHR?Khl(%|QB{Of-OtNG76Q~6w1{;hjPwtK#_Gc&iCPQu4UM^%hOLxpD^YiD9f zbdWh7<-*E+-0!Z6Q%B&$SzjVf9}*JVHg(?a7|qAO?VN6ax)zlXv!m(M*ZKeSAxF$rKmQwnoMI z$?C#OGF*;u?$fz^GvRR*>m(H~+48t)jf)agiaK1Xa-*Ym7^XD0>Z0Axi!Aq^^!U0zHzR}LQmJ-d@~qjj8NakGsj*vs{cwz)yF}Zr zs+J4vuyX|hDjm_3PQ6j5-#X;yG z)Q6%Zc-m{ND2Xi-p1=RivhXT}w)+A>Tsfzg2CeK7>(7l933t6=(O3HM# z9B7`e_2}0;XC>j54UC>kr6zndKH}-KRZ573F;O7dI_XN|oCiDkCT+2hV`1F(Hi@%c zp`+lg$)lUwLZ2*HD|^yWAR$t0-D}Wk3j6;5t$%zo{rmFoDymnrL{D$}Pz&CD?{n@s zZ+->yTHUoRfv>v0?cLHK*RnEUo`#uo}SYnPZ4C4LyvflPcfBlz$syK5;D<+Q( zdxgH1iat9xuj#134S^$;^DG0B3M~2;a893L6`2?mEL$ct;Y7!cO`UsmZ0~ZW&Quo@ zb5i@UP$7QmlfxYPT^=q@IgK7UPPdmou@tfGUZHmGRzk(sq-)EOF_e0^=9yRR`fHz!k1saMm|HowXs3_a?5p3`uUmW1`>U0z!s-%%``^D-hO}&c zY!RX*YBaNFp1f&TY2Mf8GwsEL3#KxO zwp|}qckT3?^ulSw`{l0Dp=;Kb{ymUcK0&A{_@Rk+dAT`gQ%S$gCy%He_kfil1v$^R zM4R<>KI%~5VX!EC#B%@lz3&!ve=H>Jodwu#OzVBW`oB2tKHjDI8TGgdewz#oSCPOMkui;9ylGuk?Y6fKIP*?CK<^| z{LE5K9XS$@)C9!@9tUi-@#^!wSgK*&bmPzZ;|T_Tqynt|N1qH)lJoJRk3?u%alnA7b=2QjDXIxy13Z=tHqU% zTb(va<-h%T)lKfH#5&PVb~d&zKc)(Y&yBZTc5dyl6)pEH`o7-3TD$7C_VP`$j^FyM zB^V{k-?LMF>$g?UTLoAg7aU)6Pk!pVg)J|g7BVb|Uw!9jmd({`kI9|Mcdznw|c9~`6rzv`8q7N}n zY!C@K#n^FWrAV7%JHPzF&oZ)mZ7eK04!9LWsf1qaJAC+XO7XuHhp#PLzrH`e_I31| zo15D~t&7@UC6g?!wU&m;tP5F{b9YZGue2FxQ}vq7X-1cCYa2z58(#JD(3|h*HC=sM-s0aU0zvbvr>1IWW@b7vtb6<5*2|yTQ@I#w zYimJW3{bE8-MhyvQ@3oGclL_#F~+N24z=f$v!_RFN->&uyFE8_#gVUXtV_C*)xD2w zlAPYa8!Wa z?*_Y%t|7Rgzz^A>T*Wu4S0gtKdvZX$TW=RJb5%p@cd^`hX=GByyD43_ZPFQ=JxgRNzH!M z`S{C^cklAPy|s3zuirm!{w<|FMgE%0BUXkmO`LE#6|^`?+AIe&fthw|OJc)vZ-=myt!HseT2XhiHoM>vmmMJ)OVTC0CN`Jo>Tu4qShO>0k*3B&HAAPSsS!sk zcz)>pjco6-z4br5!GQAuTl2&4BcJyeHa(fCDd@$qMpS*O#Ln{farb`T`~K;ue%(ZG zy`3x#{PjN$*L<2h|H-!7d6yS0`?V+hdf>TBw>mOZy_jO^em-3jy`As$rXP>(|0Vm) zv$0g$wFeASmK<_?^}i!GbHe5`2YrmI zU4JCzdg*bSb?_g(pUWv{wtlgp&fF^38yx*eDKZnn%%Ri0Md;o;^|XuZ4a zz`=CmA7RFcA;-j-eco=!JjK?L!7_>CcK+gYi_`yvogbJgZrCW)DeqXEI%8P^OSGE@ z-FY{d0nl{-oL(7QM+(+SjU>bd)Dz`P$gmR|>aY4|K|2>#*+Fnxy&J)#}yr++~j65{%LQ zv8pnx_}-;UPX7M=a+`|`fA3rWd{LOmx7zsgTdVeco0oMw6S4L~8$RhS!L#1#kbz9; z5w5%WW?f3L1#3gJQ~vOr%Ww?)&MU&V?y<1?!;FhRd@jB}>go`h^Dkf7pL_jQ*7xz> z=B)bh&VsLR_P5)iwcV3l`gX=&ogN^1g>~^?wZ{+km%g2Eu6A_hqW3e`PYg=hZ8kM% zYSEkrmWsKuW~=pQc-H>2*v4#>_wYvHeBIgpf?>BeBxRhhGC5+a^Wv3?e%~V%!--!s zRW14W4s6I+B*0MSq$Xs-Vz~Ax*H=eQZBGteN0kL{Zq7NiizmfK>9m{2>od6wpoLe` zj%x!8ei>gZlwo6Id-3w+!(Fe}9p0q#cGud~s~`7Szq3d#4ydY`r1Iy>a{JWB$9jF{ zSWL`bx0CJs=VM1?uXoMbf8zPx+}l%5r`CPjJbz>1V>eJQZR_MwQ7dquDXgK-J&CMs% zHiO2l<^R5Lk10B-suRC2ru%@`48EoYce%=zwb9!rolUEJ9ev*`I{NmELXGWfy_WyD zUjH||s=B)J|L^(wpWwlO7}w@HG>b_^tV*0cHO9s#9OP#CRJ?pkEHPEGXtiaQQgn}XDC zu`Ze8o+#0`Z{4w8)wNRJ-*bzcbf16y(6fy5_v2?>{QTl|;(WVurFq|Pbk}Nz2g)3G z30xxUrxg|QRX*hV;yX!N=OX+6tFHT;^k+}<`I>i?*OlIK&RoBq`82Db@z&Gnw<5o) zbTU}ZYdqL#^XmkIv$I~H>jYuBvZV+1Xhyzr)t|YcqucqBX>rPtM>qdXU@T&p);-xF z*>cfZi3>q}D_5&=2(9W{@*TG|4#rdP@YqK&hk$E|G%KJTZD`Cua)V&q>U$*+kMq!`1fl4zb?=+ zL6^WI?)JX|&GPT9iC=#0(Cz&Fb3tXok-{_g_Ev+U{nX0fC0P>#O|v=Ol9)rk}%6;CIDkiyvME^4<} zSN{@PX3Npq=M+{rdt2`06I&!|qTc*HI(I|n6654P`^%zVXD_;DIIZi!w0+BO)%7&I zYn@@$xHr)8M%_WBFEbZ?*Dtb9-&Gg?%Jf(1Vy3dCL5H^5E)lRP|Ds}DZlN>h{?UZ` z6X)fu&YiP$J+z>4*P7jIY|L^}}x-aqHQuTekVC!759 z)6>OoW&HAwO$sV{zxVqm&=#V}^Z&SxQWg^vy}oq0-tmvSWL&SS3W;rcW-F#*pMC^XrmYTs?Gk$Nj}}vu ztB7`@;Dx+|)~Y}D{~p`__;K8Ro&Dj%22XBfuV1=$ZSULLps^f(^~66yd=FGSGqSRz zF0cQ7$y* zccc)s2g_05!@uwQ=l}ax2fF?4=ymY&9GAc&Z@1q+H+}z~)VEJ!x8+C*tNC2WuHPBM zwqWPZ$n{_6J>QshRcl_|ugsj=YCO(|3{?7(-|hMAcWq7NVOR0kC9DrsJZBiE_xXvf zj8$JcrK)(Q(6aM$g1`PP-~T(-?%&7$*E?5)Xn{%`(3+?ZhxuRsv?xA&<@DCZGq8xY z5Pr-6YwqvS^89_Tz6G{L+HoNqo2BpWNE| z$U($4d68M@mtp~ykkz4w432EOD>dx^xKwJFFuBpw>sTv*z)PgQr~3;F6m2s zqIY`KZf%+CA#_@4lPy$;Mt^qT4`{cg6a z&p%S}EUAw^|M|=O-kYwB>wPCk~zQz8G3FD zR}J!t?Kzub#Gxo5A>qNj(YaZ~+f{2S*Wts5E8?UY*Th=zxpL%p=-~IW|vqJM8 z#^2G@IrpQgGkkx8^Y(2w*8Fl{O4%IQBEZAP7o;_HMM#igO-03w95ZjV$rsmcj@nr9 zX78Wxq8H|u*Svka_5Sa5{yRgKN->vB3(^pXQ{EWsZ@8gTr#mP>wNoWB(EVcwPb*Jd zkiU~Hdw0`Y+te!WNEKg?mx0q&d}JgOFP#whdX;J08ikGyo$gJq4WFb+etWI4(=y3M zCv#$gqWk~TpI?2dmgZ@@uI%+CM3?iCg&GIbtXZ?RFs!t@e>Hom!$9kj z+oRTIU0?hDchw#6af|0aeAw{sj(y>ymOgvGNiN@4g(pi(NnO$uy_zMe$g=PK=Crd? z54K!b6J(opocqJX{+brhy4vmg|GtfwcJ%wc@3ysXv$lHK&1YW_q7@h(zFhW(*OsvN z?Nu?B?T;) z(EZuf!m`09_FjU)9-b>!KCJ>3^W4+Z)&Kte`|JIx`MbM*hM(kh;@G>=-LfV7H>>u> z;G^EFPb6LC|FLw(`+dJxgsuK_d;j0r@4nx@b7xKU4K>e2#~=Q-TN>oK-q-8Kx7zth z8#|s?{+aw4anphJ6R1wUn27ouggOe!ca>h5N#$wish zzsZKZ-h^l(9sV;d3pO+&S`@XmdlAR+qLtH_`D88Ta82I2Xzdn(Luy>YEfpIrGJe`L zer?r{u70DxSiaFs5!3;Ikd^|xQn;u zMu7=OZZM_DCh_IA_thktL!`%2&5Vp_4U&Q}Vd_8a9sGjET)Gg6$Ri z+=bLbZ2J|{ZS3pv8lJmYAI&oAdY1!y3z9vXTvIA}ep~XH zntX^!p2v89sn!7}C817%%**MTES&}q-PxKSn)eGyE}c@f`O=@CpG&)(?dD&fT^CYQ zQ)CpRF-di?Xc${rmUH=bx+mYVSV>jYR$V@v-X8*6#tom&4<{D0!6vteCwn zcF8GW{=X_&vGA$hKB9}l*TtNC|M%Yei6>J^7RKy6&7ilVK=iC`uf;moIW4>V3nZ4U z(>lIUWBTbcbF0nXS6$z|H=WTfTNJYji}2wrb3Iw@Gd# z@g*0Jp0TZ#YkjCRjaQWO@TJ91wr~FIa%gj{*rnG?q|!Zd_)nL2K5CfIqVYViD2C}_ z(8k(dnm} zg2ZOQ7tZp(1pfa0o9uF-@bR&aKOXnLj@!QOwUDczzs<*%KHspW^+Jx>)vV0P#}+1a z+n&E%crve(hWAEVPL@4>ur$^z z|K6Dc2O9cjg`Hm?w|AEOp9ky=RcEedO$FWldwu2afJfz9qpk+t1~0^Q6nJ6jJ*mZj zXQo-M)c5=K`^zfQH%IE6PCDKv8&hzQwd!7c|NhC){*Of5Yzg)a&@}L{^l6?9EiRa`QcC}W!%ibw^ zCj9&J^UK$-A3q%CPrj`utnQa~tY_wzFJB72-7L1O`Xcf9*;!>zp=~)go!s5oK?{Xf zXLCI*n%URK2U@uC=H}*=VXHx#(?q&mm-)>F&6i6^NhKX>;q=h7d_JexqT+)>b8|DO zEBYke{z(@lY_DFunqgZk=DvIW;^#LC#q{R* z%eabgvC3E<7QS6x@a2i8lH!K~jUSPHTO1?3(p2;!%-UyflF9n=^6br!SZVWZg@P_l zN`|c!%?Cex3erAuZC7^jP8m>$|2)8Mci>2;Fla>>gZcd$houVR=P;E-Kl!L7PQ9QbF$jT)YD?1vK-Vt)-BUs z_@(xJwS4`r<@KjPH*@wEK0X$>Hf-m|W73t6rSE$L2MafpX&ot{qv<|eLANv?d=b}|2Qgq%dH7tAM)4FDBt@!7POr4 z^EqpNO;!2dH;#iABAuM1S~V~G`2|=zu0qw237*nSk8^)}C;RlP0@Lby6AER5b;Jr| zr#rXvf%X?wRaJo&acoXMzbr!Mm0aJp+~RYaROh^UoBpU}CFooT%i?FCGdIfK-}8-+ zmk;v#^wVatx_{d1Yild!9slw1F=#L4OrJK*;AIysUtav!DLOhja%+}oke8H{6h~77 zue6zftKiR?d6U)sH>IDK)7$w(2sHVnIz8r4a=)$H!hnQ~jE8BDB5(i3S)%@rAWM^x~#>T$6xfQfBf0CM+_bh3tm$p~W7w=W?6z+VSq7f-}Jl1ik z;las*9^J~ka(jRBuwGXc zXr0J`0}RIL=bp&_dnkY6Y0)nI4O1p@>+NXR|D${V1OERX_%kyz6B7~|rfP>5oz~r+ zG11(&l4ENJmqFqo7AYyIE!Gke${y<@Ha5Lpzki%u_0PfW9~efYM0|J-B8+K;*TV2`nc*eSQdZ5$sK0h`^WD6zpZ!e-aXTzaFLv|L|YBWIiT`2``Q}C*=IqUQT~06|3CG8?fdE|op9+j zEdsY{?_9j-n4J7rqA;r0oP+6{)oUG47=28y|CWB`>eWE4sh|V`TGzDZ{oAeocDKU{ zu&=EW5)uZP8K8RX$69wwVV?a`UK4^_kEwWeEb7qcDmfGH?tWa`#_Mo)x%aZef9_;w!i=H z-}}q%UV8ugzxug%H}7u|+pILn@x~ z-}!Ox)+X8eH{y@S_uFpGe-v|hW$p14udErfPO9q7b9}j?^NvICt&ZwK{j4=N3VIK% z*(jotp!&AIxa|Djw8(XU&NoFAlYG zceyCVRlNNCv+LQ?(&no%ddvCk{{(=#shd(yPdS^m_tpJFJF8SHzi-{WHplEW>)clP zo=rO5)Ai%8Jv}|W^!3{9UX#qtH{O1iVx)Q5WUALvkzTi}w{NfZxBKa$9k%AfGqbYo zkru}{>|UEbuhQ-8*|V!wtk77sOxMOd@9HM$8M_l#SL?jHe>dUJqodtj#~<%{yY03J zU;EYj_t$%$E8MDG5EC7}+Iza5rofr={S{A7iQX-_?AvuT z@50T^>7ij^%l`eVn>u~^>Q$?}KK@{RT4Wg-8mc+fYvu0U(I-=aHb(e7EU3ufcya#q zsj1pgI|>%Ev9nJ-nKH$1`PZH2YyFrz>%M;ft}Vi)IsNp@WwY}x9qkq`eRzm9a@x}K zweO0#*qXbJKfYHmQ#*WJNO}2oy_g*fUd^7SCBdUL)hqMjBG+F}Cd={i@vU06%xzol z>fO7er%s((wCU%n4M&!q=3@E#Npjhn9JhlB0pY)Xm+rJzy?yGW!JnU%ZM}1t>`tDE zGEzz9ou4CF^kj0f#3{}CxqsUNP5!U%X87^Tm7(W#r?k$mnth8Bf`bAt%@L$=kHG6?Y9moRuK4bulVkL zdGj@TPb~T_z1(u>;f8xPpMCEZpSR^|KYS|1=$_5K#edg{h57DYxU*XB&fgtxOZqRb zy;ORBa_(){sTU8Q_kCz^vDLnKX^>{?;fISFs(ySexn8=y{r0qtZFPFBf}RFuOb>24 zGw?7RIKrIJ*1*QVaG*4O(ZlyH)91e4aHF~%o9e-%G5hSRQ&a0o%m0TJ)p#up^5R=I)oW?W?QKm57wG-lcAi`1-}(Ke75t~1 z7f#TN-?t`0XW6`W-IFE;s|W?&f9icI#pu_P<+r6TU3vfg_2hYZ>$%RHOHF;g>DTo5 zf2+eqzg={fuY7y9{lw3L$ET)h-#dKq^mKjg?5Emm4n5qUqrEo9?^L?r&kNU||46l{ zyV>@{xY>xuJ@a_jt^6m+_ZOa?V#?!bC)xMJyiM+kG}~te<{6=R887*kzxif=G9_rD z#}RI$yNa`%7fujY*p;|U`pmAx#k+mYT}qj69QwZU(8I;t&g$Raw;mSW{hqP)>dAM% zZsvq73^;LnyEV_|YMpo6?ik$Qb+|j>25-&X$2x0x%C499ul-=V)ZmVp?`7-wNnPh6 z69Zx-{_RR!CvCQS>iKu)?>OAHS{JZY9zu%UdeQ}Yim)hjG0z(Un7p+1E69Ve?$1lsQ;(yzG za6!)PZ`;H>UG@YVHfi=!n|$wZ@$GG*oi1H+yLSIByPYEOZ{e$%3(h3$`*cIy`C)^m zq-EsJHAQVxCi_qF@8j`oD>9m5{HbxhrgPnK{lyP*2;~Ik(jYWrtrL3fS>s&yMHH5)oKQH;|H`6Koyl3r+)8ZpHOQbuLVraGkfmgW_RW6v!YYC`u_ZDsOek0X70rE>OX5NQ)Q#=ZgQm- zbKUN%=~JFx&C{nGZ}vY_!eU3U)3Nl}ot<~D7hf0s?Q@d;QH18>+W_ z`)WM$P6XY|-wcd%W&FY}88BWME)0*b9m3 z_chxd$3G1|xAV^55a#ss8_hN8N6ejj7KXd?H{>1;+*fC*9`84)=9J{62F;n4nn}+^ zPI&%XqkQ}MWZRIyHz~z&UAYo%<~?Q%30ZdnMek_cI(X3W?+bVPOMk!Lf4?^^GVEf( zx##EShlhqv73ypOCuPBAbrFf3#Le~1m_nEWR^n(05D@U-r=R8~Ly^Gkh9 z(WjG!HK%^Ht!kdSp6%Q7Palh}sh@oRxrw!W->E}h#ta9J>^%IMz1eZ*vX%Gl#YIkA z+AXes%77>TUd;CQrO(^SW!$^P^{?Ik|M&juD=UNJS~pm~*MF!Fvg_{(22kO>=WxJ; z;@qs~_t!r7Ciil;HX%P>@16HwE#0H7=4WMFZJW%~loJ!qpKRZ4d3Zj5vFyp` z5~qIgrq=vyxG~Y#CWaYo&CSifuCA|J zYW;4EkvjBrfh<>!Fh=K{s>4?B@3?E?{I}XplU# ze-o%kKO^tv_fFwboAs1pJFaQxC9BpdJUA!WCiC;j3Eu9{qEFsUkN)e;YQW&r``7|h zF+Q2>KgDb5l(T7~T&+{irl~%4k1_DQ{5n7Pc9@D#pxWe#xwr5AIne0fU^m}Cd|gan ze*SuMe*;j+zXa9i3=A>rd+xl5FFvz;PL0$}x#JrDr1tIcx0Lkr`?pYk{-=le*9=mA zFIl6nemwo8p^j%+-OZRfzQn_ZPo!^6`|>hoYTgP52A%~WBIok$Zk>h<+l%EMe|UQ5v80?%|F)QicAx+Y za%A9PU|>kNSKu6Deqw4*(*+Cl?Fdfp2-KP^>Lf~P9C zti5?#ZuHHZZ5k1LEKH};Hs6amkhgWi{rBH*%{~3JORGos^ryOa|1u@o#9hRzDqA>TJ|kYG1Bz(T7G$xj`y@w&FQC4Zqi|8Vw|~bWsccuZgIT|$MyH$PtTmi z#n#Nl*1YTEG3lu%Q$oVRmW607mCoDYI7y__Mdj(?n# z`JDw7HtW9MuaB?Wf8V+-#posLg-KI<)b@V!4pN)^(J8q+@_VW0y^S70T2m+8e;=+j zbyA|lz1Qz7b^Zv0d?NZ!eO|?*|Fd7aF)$chKlJcJjQK*9oz5a+b-EE764uRbeSM(+ zzMau^UkA=#x2|tHTPkee$;`|g_u&bjvUN?}^N)O=&sGbs3vYG4ZQZvxL`(JbrY{%W z2cX|4XNH&-)`rJs|a1ZwA35aqnN54t|h{id3Kg5SF6*iwQEBo zBWHpZfrW;KzC0$Ke`S$tcSvC1!sxu6t`{>xxW#k=;^XJvx_x_V%1I$vyP62?ur(L% z|Gj%Z^XaLnR&{@NWMyT2IVPR|qC5W2qPky~=f9d3op*7eb9>2UU-Osg_P=KydbnZN zu3b~krhR=K|37N~&$Ia{k<-r2v0NOWu>=%D-QxOT_4WIk4lXFyJNs7O1;@~ZTZXUt>Op2^=1n@@%*@P1GVU{d+;+zJ+1lDhZOfVY>-X=i1rMFBUc06> z(L-bU>B@yGb8j2@24BnwnY72U?k<1O4$%XxcfN_8JNWwZ&poB5PoFOR`6<=1PxAk@?bhShmh;rcaf#?QYQnfB*jNa#7-H zb&7jhlE}K@w-f^dLjc#0>$+gS9I$!*{df1X{iQRPtt_xu6Qj30Kttttp^E3ifD^N; zugkt&R!|pHKD+g5_e2kug9!oLVmcF2BTuCmMQzELSYtO|{GQmk)6qBdwlBK&v@Sk^ z@#VVLZTsKJ9GfK4eRNCFQ!mTD$E>#=7DTiqik!85!{<2HZ~4>DKlh~G*>HRA_Z=T< zQa48~4bsf7KipoU_J@^$!C~dY_#I%EF)d% z{o!Zx-M2eW?=EK8J$2he50`DZ-ly2l?u=QNvF~Awp892zy>E9MT=m$()%k(gHuKqM zt4>R{J#1Y+(Zj`in$E{Q<+*;U#LASQ1|X0|UbpDR9pVR9imha=v=#)y++tj66SSmEE0ig*VT6;e<;sw=D73 zF8EuwUz}<8!gYxf_Y5xb^74YZ!sd5Ae>f0viv7@}E~Yf|h*IZAhZbDrjRYxm**$f4 z>(yQFjNS!YZ*({y{plue^WldDfv%gRnReHwZH|nb_LTMH)2B~&J)IWqHpgB3^A;us zh6Psy7?{BUbf);Q^QniSYp!0s%GK($tK{V*pUXO2iFY?_+Yoe}xBhPK&dUCz{v z-gc&XZNdG+&G!ynZ`)p2@q67izlYzqFO;HP?6sd1gW?f7z*Y_?V(w5_?(+wYdm7SoMd z;-eO9lDrq|ZOUyu@m4hRLf?#@pLsO=L|i8C-T%r|8@0JexhbwR-o&^nJ7pXdMIBh=aAb9qXl1XugvA{qCWB~g8k zH71|bkm1Wd*u=`!e%MuUz4RfkpQmEBS5++Ak(jGC`J-0NU91A|wCb@}@9&nG{&*pwU1Ev|QE@ArG! zr#C(M{(G-wgYnEB(4mB`N`gQC*4^9|Yw~>k?%o_T>&Fk*tK?f`ng1!hoftWdsj)#N z^Yk=bBc8*n8P=^>apA#(1>16NK59L5GiO`IiS+Un+29aufrjV*IdRGN~?pvFrE8pEa((OKv~?7a134_v+W;t@B^SGcYjJh@HK6+#J$` z0mqJU7u5A&o)-%vs2K@nGcZiyU;-6UP@aY$%xaK8fD$avfOrdBUX3k# zpf;%xq)`Xusx}Q73(xG#13B8@4*&Q4hSz;TY)~2D9Rkg{Ac5iHS7KswhNpPk&L9FI~;RFh6qomv8c> zuMP&6zs|q!f68;;`s;T8xBYvu+W$qZ-Fy~MFG0=_l#A2XNh77_8CH+q+}sQ{7vw5X zdxS}X3Dhoua`7keXBA>rWp8GHZY~N8Ul%j;dn6pBSVOX#v z)|lbnN&mV<6*lYa{~WfzvMKfSlkdON7snnbeR*eRanx z-RI}#UIwikG&MIrUm6TEiNWiZDf0u+CZ(*btV_E}Ux&oS>CNvCT-=yF)BozH&kJ=o zM)>Ui`!@giE>IZ<(Wd%-R%V{k#DLUPRq!AHM3mu7@#9&{H{O32{>LQzz~Wqt`9b6P zw?JVHmT#Epx{4dj0u!o9F`@?;)Y9xi@19$}4J-sA64C-0LA@{#n}LA=nqg;r*HK;T zzkmC&C=rOn{7jYu2Y3o((&K8*Zr{eh&~S1?$+H8-RnNW#d#wmR9#`e1FaLJlYd1*b zB+P@fcM{^bSESu$t~#+QEQHbYO`XTri>r3#L5+O2QZtMp{>sI>`hR@!`4F*rmKH0O+NhYe%{u-SJvde z{r_cFnS8CM|Nd+1S|(ZjJ$AY3VL?sI_1jk8r^Vf<_BxqqHL274h0pEms$DxH*O#9A zZe603yYrk zzh={>O_4YMgYJ-78nn{z`^#;HLY*(p|9f*jZE5TdzsS2*+un=rEjC+o`+9!Z^G@v{@cls_m`agdX>u~XiFTgY2w^Betp_1FY@w(!`C?aZe`5e zVmfKA)t>L|uU6z-Sl@sUOxdGCLSH)dk(3YWdf8Xn{l`_XI&Yt>feOGB!ZiJR> z*7cn!&0+kZ9Z|9BS2Dd{SuX6m$9pTla7)D^@8wlXcIjTdXWDC;bMf1+C|A+Ix69t{ z(l(m+I#;u9Q*iC7`JK(Xwz(|tdt<*q_@tKW^JT1$%Wb!oIxX8>FY$KXub!`t;Dok7 zCHM9=-;*gpZ{NP1v}D;bHP4?PzCSrRIcj^}T(kUpHc$Whcr(bHiMeob`o9qSirvn8 zC!GqfiRAxxefgKIx1A;}`EuO->;3uvrT^|(?7dggQ*?F7ck}sIlj9?`Ue5XV%Kpuj zi~4`J)_pm9TSV$s+OH#WfB((*{{J?;`l`gP6^nPjzj)uoZs~6Of6{v^-#C9wYl`~R zy8G+d^!+RKb^TsE_kVw7vi;ksUwZcasy^=#wKTo{ll_;em#TKP357}g(~I8bGpXd? zpP!NZjmK}LCrXE}i7?cDJ99_Nxh=BS9&Y3NxouIWekU`L|cRWKCiJ zw%cp1Zd_VuS3Gr}#JdaouiGuie;@VlrSsF2<=^bL``?Y8cOh9?YtLJ`%-0u=YkEHP zx_fVjul2TT{I*Brb8o-?a$);+uSq_;{ol5KU-i{x`Y+Yi=~p9e?qXmNG4gbA3|V(^ znyl}x%~l3|WzT26y4K0;e&yG_<6b92)~pLGe|u}$)r%kHtD|ctOZ~oe<=V%MzusQF zWf-edy8Yc{>-6MXKQ1WWii+OxH|wgN{=T%u^LNXx;*EK|=k_LD(LJ+OOW)n7d;7j4 z^D#5;stcwOg>x;gEnYfX%Jfyvtdqu8o67h5g_^ybI5#;re@*fHpg%_nW!Fb7J-hmN zwXRO-cKK@y7r$S*`u;SLur+B@x4pTuaI5J2cjvA3({{cxvtRMs?5XhnjqkT-&wu|> z*8Sd%@2T7S_I=oNE8KRG`u18Wqo}#-U#_gZRD0fj#jgVv?|oN?FTZEGLRo#+75gpo zb!X>nmGM~d^7ihnHBtEwJMZkDboKVSa=xuEOTznq<$69f&APKK`1bX%is#j59>2C* zB_3B7UVAtyaP#NLw~^8pD}J$uZ&~L!HS6NZ9ZRpC{`@^?&)(p&vsG)oWv+Mj#pOzP zHB5ef>+8m>Ei13ddRr`9*EcyU`}ab=s{Q$bSHt?Ro?m-$+U;{Ip8o&hZM7nO7Qff3 zi|5k6XXK_V`n$1O-tSG8>bW^V<)xG5?h0MBKEJoFSL?|i+sZ|0Rlojpep@M={rZW| z@#>>jez&juQhYmQ+ny!z`^^8$yQTYE>vzVB%+Toc{-A9uZ@is-b<1AAkJAo2|27Sc zyS_qp_qLUGQ8jPXw%z-BYd)kT`k8jTPj=Fi)&qTyD;}=@y?N!VX$(95-}rvD=zZ|7 zcN6tjEZXnfKJQ=g-akizYCqQ3Id7fh^wfJx)@$?9@4?$MJuBU0?SJV1`kX%Ry7;~g z;qj3+_x7e-`TFep)sJuD{=Tr@%BAY}I{)9FMBAUs9shnknE%52{?CbVZ~w27dspve z|5H9*bK@$mn0z&>Cm$a?Sn%!L-Pf)A`R)H~P^nCOy?Xt=RkqdNe6(2Rc|^b4|Nr0W zcf}Rb@Av=zr^)x$Mp)-)|Gs6{{g0Gff2V#WK(}GA1|Vd*VXXU4vzKQ8XA`dbn5y4-Hj-K~jB zAH9EhqOtZ@+#^QYZOJ=7t?s>3mg?|o;*?hwizZ9YF8RNGy7sI$mo_s0{_^;*p>BQA z>Q%?C=4pP7>$ckd=F+@e(=L_sE8ZU9|9bekkL|A$VWF(Ys^7GiZhPryyKQxp;OgkN zzvC}1{JYlq?TmBYg4aKOvunL>v*7GwuVOdr^2fIC=X-5=fBm)YrP%&A7w3jPUJ?B! zE4X@9-U}=K$u`TkUH`VywrcvfH+ca^L(R?iy*B?;aeRl^-Q!#T2ehv$e|PcSuNhNb zT-&*>Wz{0*-`1PL*UR&--uRO7?W)dG@48o;iv>GqdS2gk|CrT%VcWj!yVI}lVR>vV zzp3Qi+`U#e;uiLPw_U}1by<~lbZN$a&##$RE6R=Pg!j}lPn?k@wQc3bl~Efzmae;2 zd#n7zgjdt-S8TmlC=-7*%=V{v^xe6ucjvB;%UgZn*HgjR-~Xhp?dz&q+qHM`x9^WO zO}nm@@byJXy4Td`>#H}up5iy}MacU$>rh4SkCS6BUD_S;_+I$rx6fA{URC*6a__vX zOPi~&@#&iH{I{b>=wNusTfV#d!zNwTJiYJQrO>RH_?6|$*PfprG2d$AHotRU_JsSm z|2McEn0U$*z-jP$>d7T}EOZS4mxOaAk^Y|376c5l@;>G(^z-HW4QZm;!o$9FCxdfm43tG5=0 zeciiy`dv$lz3bCUHmpvNTB8JQR|DqO&yZVjX_oKT`P-7Mmi{VP7r!d%Yv$A` zYl^F0zifJKo-^;R;PX7D=Xa<2sHB_@Nr;ip_gb}it#jGmWeZ=eV+xB|yMFJwY5m$; zcfLHgvH8r$dA}bX+au9{EIZqdG)8`g;#$UDIK$tKe;(8_kH-&X>)Hy#V^g+;Pb@fw3ltJpAlkjF6eEZeLKLkWp z-1JK{#NhJ!xT&wZh3}rf6g5@+kL{Kx6mnWjA=wEbL4id z^7r@lX65D0yZEhVo4;qV^gpklpH{Vh|M{-cdb9OSixuCVbzT7MHjC;?-L=zS~e&u_w6mYPP6v$*Q%dL;lt}hsMYHtC$w*`|$+J!ww(Sl-rYp9_N&YmR>Yt+GrK}a>t|EZ6Y)8 zn5E1zN_~3UaIQ};PZ87ATf3eM=5EkE8vXrcK+O%U!{_g^oZG!R>#yG3(r3J~RUcDJ zYjU^GdbeiU-G8>W@{Hn()@AH~J+q&Y`l4ZTIxBee~{$=f{(5#sKaj&JPJzqUxeNkN3cH3ir zpXnJts_{QxC~|jt_)00c^JQJ<+>O@F6Fe>x5L!F+%e^1p4gVeUdGpWr*zK#gs(fUh z|C%yI^RnN{_(ah@5!-e5ZC}rc`nG@dlU?jv?&|vPeO4-Y?^=V_b)E1ZF3Zn-$-DL` zSoYQWnDxK7GzDUp|N6i=_l3`j#L9N7;HOcc^3u1?U-`XLY4Y3t^us0Jer~?H-0#4a zJ>h2p{u{ij%TqcY9k}$+iz_@cg0}2h5pRB&@#MMx`+Q3G7H-Y7`e|3Cix>&H9sFL&i@J+~@)%I{xlzwh~3L-Uy@Q{3__jFVPQ z)MxyBz@^=7-MV$x=Gj(@bh@~$k?wTal73ze)Ymxmv`F~gx0JR_y*tl;ety3G=CMe@ zj#aC6W!+GIw&Ia;6LawDeg9sZNDMr?LCN{>V=bdSue&pTE~}dPyKlAeMz7N4{VyMX zkjh;@+eOPT>2}=ab%`=>_bn^TNv^8;TWF%X?9_%U7jNoj=e`Ya5DnO}Dk?B?liO*% z^=0qWlmgcBez#xwE4Y2@`v=;$((M=8^6vinV)47j)xi@Z_L<&&oBOKEbXDe-omR=x zTdR+U9o@C~RrOEVx7Ev|`g7zhpL|)aR`~ar&7F>E`LzM}Z(dn@`E731_NS$LZ|w52 z{{J~|t!(zz!ra?;k7jWD9-gTE3oZAyOT~8JJ zy|eSoQ=^~T@19(1erC`6^WZo=uqRmJpBUe7o4JY~zVI;Gwtd-IAJCpv@_w)L!}UwP z9G89dbsEPiC5=?0qlYcNm&M3zTzh6GU#!NhZ|6(>p6<%^yl{8Q6g81!U!Oi~m%sM7 z-`*}QG&eGGCg>VM+kZbEZ@#9tU1-OyT~SxBUM&v)X)U-hD|Gg@N3q)$UCj6xp7Lgb za?tj`>_f3ug}c0EkK2b;9%ifDnXty~YMNJU?9pZiwMTPb1y7ykza=Jf(%WsjyW1CT z`E_npbYkf7Gn%r$dpJT?7v}B^QokQq{hg(qsm%A+9`=x}WxLDPaj$;u(q5%3x@y%b zsb8xCOcYLby*{#0E_7YKO!1D34p-UU{`)1R>i_0?V{o`6ONrX~+9h7A&EH&@r!IfN zs&vKDz0qA^tBa<5HcFjr(`WeJduG?HNx9uP zg{5CSHqMF&6#db&C;UvA{dD^;kE*lI#V-E~ZBc~x$ygd?{n(v+oNsOPcE7i8-)80J z&iz!EX2ZazyU$m2*Me#D=U+SO;w0`bf7M(6Z}+dgs#;sJLU;bE|F`X5s>WyEnh(?B ztV$A}9Mk*baQ^>Q&bhm1TsX@A&r#p@@}hsUc3&-t_6YLm&emSCZt<_5?BY{*R1`k? zT*{~sBw=&@_lNLFOr^K>>_gboUKej46sSa_b&f>{_WhZ?`l)FOnTK@zEV9^ORU>tqE&95M)-N_-=$BkSeAY-)2@5A z#jn)wV{HDWnZvFuXIP4_A0x%Z!DI(7_B_AvrN|Rj^)OxmrpWf?Fxb>>VD7s{GscM zXYBM9)7D38{eI*5)g?SLcTGaEY40lY-6fm6S4D;!`~Hn_xOi&CmCNfce{7l5*)r+# zI)ABqPb}YjR$q~IIPGrU{^fsv_pR7#Ja0e0_5aBBcO^mQN6Miqc`R@7N zGJoGZ{mU<^-a-q48lg^?Ep>l?E&6bMD<}=c?~m&i)1CFHF0F3E##_~2-!#j=n0a09 z!nXfB&Ed7{Uq6-ip0x7Q(yzC+tp0fGwV9bl*`L_2x_@U~ z3*r5J^O|jyLREx2-~L69|4uqIb=TgHuWxNGU6a_jeDmGJtEO)+%{sUE*6%yu;fB1u z?{04`UGb_w>$sh>(&?>#FS>_bzqRPGI$vh|>E(wFriWk4@J-%(>|CH))ji=?IhJdh zZCC!Wdvz`QdEeE=I@3eaqubx?y8D=?h-uZ`s`;~a#a&x?{a)bN{I7 z^%8k`sV>38Q+L(=&3h{$CBC)ncm1{6huce@e29Nl;WbI}^4oIT1zVNV*UfD>DRX@5 z`_s2_cW-@qKvA}4UF5dRReOr2n&rkXe|K1z(^n~KUv2-a5(oGA`oQ-dTI(~fT+=mu zm9_KPsmaFoes9m3T$b1QI^lHutDWU4n~SDy%elYwz{10i?}aW}9QuB#%GNz=mUH!~ zZ+jYOyK`k$(D(3?pHZQ&l2ub^JD^Zpk!My^}B+U)hd-{vd# zt#CB{8fWNhdpT0i-FL8Qx!@Eu1Pr24>>~JKo(k z^KThRwg_EUUnjk6`qFpxd4cW;Q(wJaCDI-7>RrawgOfFnnwg357ygkv{$9@D{zd2z z$4qz7B+9d$4QD)pWOaXEy%cT{|Kj@A+U%=S((Kq8Zo1Zk78f!wq}?kOV$i>K?eG63 zYm4vlFfbUXYh8PHVcyo_yIc%2tY99vylygs#EyMumM2bs9vlt!6o@d`T=O_mWBO@9 zB}Nbzj1Sn9pXGW0T5<$h9h#M$9U2yLO3yOv*tjup|Bs{k zDYv(+TD|%y(!@vc-IhvCxqi?}WU$-7<})-*N}pp}{cYCM#{XaZ|1X*U_f5K&iqPhZ zY7DArA0Hk41v+Qz>Xj>JQ07H;AWuLZ_;b8vAH*;aiGK$2N4?I$%_1BnZT~=OJzf1= J);T3K0RS31lD_}| diff --git a/docs/screenshots/web-view.png b/docs/screenshots/web-view.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8aac79730ab1a697e7aa3e54ee739ec442d63f GIT binary patch literal 124513 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

    1. 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 WPCTl3XT!k2z~JfX=d#Wzp$P!2eGeS~ literal 0 HcmV?d00001 From 78578224d0c26955bd3a34ec7bd51ea4a80ee274 Mon Sep 17 00:00:00 2001 From: Milan Chrobok <34645007+rapilodev@users.noreply.github.com> Date: Tue, 15 May 2018 00:10:39 +0200 Subject: [PATCH 012/391] Update README.md --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index cf34370..3cae131 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,20 @@ # racalmas radio calendar management system + +![public calendar](docs/screenshots/web-view.png) + +![management calendar](docs/screenshots/calcms-calendar.png) + +![series](docs/screenshots/calcms-series.png) + +![series-events](docs/screenshots/calcms-series-events.png) + +![edit-event](docs/screenshots/calcms-edit-event.png) + +![studios](docs/screenshots/calcms-studios.png) + +![schedule studios](docs/screenshots/calcms-schedule-studios.png) + +![import playout status](docs/screenshots/calcms-import-playout-status.png) + + From 5087c30dc1f027a8f9712d64bdb9ee9fbd0380fa Mon Sep 17 00:00:00 2001 From: Milan Chrobok <34645007+rapilodev@users.noreply.github.com> Date: Tue, 15 May 2018 00:14:39 +0200 Subject: [PATCH 013/391] Update README.md --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3cae131..8417de7 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,29 @@ # racalmas radio calendar management system +public view ![public calendar](docs/screenshots/web-view.png) +management view ![management calendar](docs/screenshots/calcms-calendar.png) +edit series ![series](docs/screenshots/calcms-series.png) +show events of series ![series-events](docs/screenshots/calcms-series-events.png) +edit event ![edit-event](docs/screenshots/calcms-edit-event.png) +manage studios ![studios](docs/screenshots/calcms-studios.png) +schedule studio broadcast time ![schedule studios](docs/screenshots/calcms-schedule-studios.png) +edit roles per project and studio +![roles](docs/screenshots/calcms-roles.png) + +import and show status of external playout system ![import playout status](docs/screenshots/calcms-import-playout-status.png) - - From a16454d3d2bf2b258d3ec7bf80e9f1d91b7e7518 Mon Sep 17 00:00:00 2001 From: Milan Date: Tue, 15 May 2018 00:17:59 +0200 Subject: [PATCH 014/391] add screenshots --- docs/screenshots/calcms-show-series.png | Bin 0 -> 87627 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/screenshots/calcms-show-series.png diff --git a/docs/screenshots/calcms-show-series.png b/docs/screenshots/calcms-show-series.png new file mode 100644 index 0000000000000000000000000000000000000000..12ae6556518127cdfe965759071a6477e307c0d3 GIT binary patch literal 87627 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≫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%0DiPf?h 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 A@Bjb+ literal 0 HcmV?d00001 From aa648f58ef2680e48831e38735d90f1f974df707 Mon Sep 17 00:00:00 2001 From: Milan Chrobok <34645007+rapilodev@users.noreply.github.com> Date: Tue, 15 May 2018 00:19:50 +0200 Subject: [PATCH 015/391] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8417de7..a5d3a65 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -# racalmas -radio calendar management system +#radio calendar management system public view ![public calendar](docs/screenshots/web-view.png) @@ -7,6 +6,9 @@ public view management view ![management calendar](docs/screenshots/calcms-calendar.png) +show series +![series](docs/screenshots/calcms-show-series.png) + edit series ![series](docs/screenshots/calcms-series.png) From d7e1f021989201434a31559a9687496fa38ef55c Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 18 Jun 2018 00:43:02 +0200 Subject: [PATCH 016/391] reorganize database columns, fix series search, show image licences --- install/migrate.sql | 131 ++++++- lib/calcms/events.pm | 6 +- lib/calcms/images.pm | 2 +- lib/calcms/studios.pm | 5 + website/agenda/.htaccess | 7 + website/agenda/css/agenda.css | 334 +++++++++--------- website/agenda/css/calcms.css | 51 ++- website/agenda/js/calcms.cust.js | 25 ++ website/agenda/planung/calendar.cgi | 2 +- .../planung/css/jquery-ui-timepicker.old.css | 11 - website/agenda/planung/css/list_series.css | 14 +- website/agenda/planung/templates/series.html | 13 +- website/agenda/templates/event_details.html | 20 +- 13 files changed, 387 insertions(+), 234 deletions(-) delete mode 100644 website/agenda/planung/css/jquery-ui-timepicker.old.css diff --git a/install/migrate.sql b/install/migrate.sql index d093177..989ee5f 100644 --- a/install/migrate.sql +++ b/install/migrate.sql @@ -113,4 +113,133 @@ ALTER TABLE `calcms_event_history` ADD COLUMN series_image varchar(200) NULL AFTER draft, ADD COLUMN recurrence_count int(10) unsigned NOT NULL DEFAULT '0' AFTER project_id, ADD COLUMN image_label varchar(200) NULL; - + +-- 2018-06-18 refactor columns + +ALTER TABLE `calcms`.`calcms_audio_recordings` +CHANGE COLUMN `created_by` `created_by` VARCHAR(100) NOT NULL AFTER `processed`, +CHANGE COLUMN `created_at` `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `created_by`; + +ALTER TABLE `calcms`.`calcms_events` +CHANGE COLUMN `program` `program` VARCHAR(40) NULL DEFAULT NULL AFTER `end`, +CHANGE COLUMN `series_name` `series_name` VARCHAR(40) NULL DEFAULT NULL AFTER `program`, +CHANGE COLUMN `episode` `episode` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `title`, +CHANGE COLUMN `html_content` `html_content` LONGTEXT NULL DEFAULT NULL AFTER `content`, +CHANGE COLUMN `end_date` `end_date` DATE NOT NULL AFTER `start_date`, +CHANGE COLUMN `archive_url` `archive_url` VARCHAR(300) NULL DEFAULT NULL AFTER `podcast_url`, +CHANGE COLUMN `html_topic` `html_topic` LONGTEXT NULL DEFAULT NULL AFTER `user_excerpt`, +CHANGE COLUMN `draft` `draft` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `archived`, +CHANGE COLUMN `recurrence` `recurrence` INT(11) NULL DEFAULT '0' AFTER `recurrence_count`, +CHANGE COLUMN `image` `image` VARCHAR(200) NULL DEFAULT NULL AFTER `recurrence`, +CHANGE COLUMN `image_label` `image_label` VARCHAR(200) NULL DEFAULT NULL AFTER `image`, +CHANGE COLUMN `created_at` `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `series_image_label`, +CHANGE COLUMN `modified_by` `modified_by` VARCHAR(20) NULL DEFAULT NULL AFTER `created_at`, +CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `modified_by`, +CHANGE COLUMN `reference` `reference` VARCHAR(300) NULL DEFAULT NULL AFTER `modified_at`, +CHANGE COLUMN `disable_event_sync` `disable_event_sync` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `reference`; + +ALTER TABLE `calcms`.`calcms_images` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `project_id`, +CHANGE COLUMN `filename` `filename` VARCHAR(64) NOT NULL AFTER `studio_id`, +CHANGE COLUMN `name` `name` VARCHAR(300) NULL DEFAULT NULL AFTER `filename`, +CHANGE COLUMN `licence` `licence` VARCHAR(300) NULL DEFAULT NULL AFTER `description`, +CHANGE COLUMN `public` `public` TINYINT(1) UNSIGNED NULL DEFAULT '0' AFTER `licence`, +CHANGE COLUMN `created_at` `created_at` DATETIME NULL DEFAULT CURRENT_TIMESTAMP AFTER `modified_by`; + +ALTER TABLE `calcms`.`calcms_roles` +CHANGE COLUMN `project_id` `project_id` TINYINT(1) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`, +CHANGE COLUMN `level` `level` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `role`, +CHANGE COLUMN `read_role` `read_role` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `level`, +CHANGE COLUMN `update_role` `update_role` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `read_role`, +CHANGE COLUMN `read_user_role` `read_user_role` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `update_role`, +CHANGE COLUMN `delete_user` `delete_user` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `update_user`, +CHANGE COLUMN `update_user_role` `update_user_role` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `delete_user`, +CHANGE COLUMN `create_project` `create_project` TINYINT(1) UNSIGNED NOT NULL AFTER `disable_user`, +CHANGE COLUMN `read_project` `read_project` TINYINT(1) UNSIGNED NOT NULL AFTER `create_project`, +CHANGE COLUMN `update_project` `update_project` TINYINT(1) UNSIGNED NOT NULL AFTER `read_project`, +CHANGE COLUMN `delete_project` `delete_project` TINYINT(1) UNSIGNED NOT NULL AFTER `update_project`, +CHANGE COLUMN `assign_project_studio` `assign_project_studio` TINYINT(1) UNSIGNED NOT NULL AFTER `delete_project`, +CHANGE COLUMN `create_studio` `create_studio` TINYINT(1) UNSIGNED NOT NULL AFTER `assign_project_studio`, +CHANGE COLUMN `read_studio` `read_studio` TINYINT(1) UNSIGNED NOT NULL AFTER `create_studio`, +CHANGE COLUMN `delete_studio` `delete_studio` TINYINT(1) UNSIGNED NOT NULL AFTER `update_studio`, +CHANGE COLUMN `read_studio_timeslot_schedule` `read_studio_timeslot_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `delete_studio`, +CHANGE COLUMN `update_studio_timeslot_schedule` `update_studio_timeslot_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `read_studio_timeslot_schedule`, +CHANGE COLUMN `update_series_template` `update_series_template` TINYINT(1) UNSIGNED NOT NULL AFTER `delete_series`, +CHANGE COLUMN `assign_series_member` `assign_series_member` TINYINT(1) UNSIGNED NOT NULL AFTER `update_series_template`, +CHANGE COLUMN `remove_series_member` `remove_series_member` TINYINT(1) UNSIGNED NOT NULL AFTER `assign_series_member`, +CHANGE COLUMN `scan_series_events` `scan_series_events` TINYINT(1) UNSIGNED NOT NULL AFTER `remove_series_member`, +CHANGE COLUMN `assign_series_events` `assign_series_events` TINYINT(1) UNSIGNED NOT NULL AFTER `scan_series_events`, +CHANGE COLUMN `read_schedule` `read_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `assign_series_events`, +CHANGE COLUMN `update_schedule` `update_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `read_schedule`, +CHANGE COLUMN `delete_schedule` `delete_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `update_schedule`, +CHANGE COLUMN `create_event_from_schedule` `create_event_from_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `create_event`, +CHANGE COLUMN `create_event_of_series` `create_event_of_series` TINYINT(1) UNSIGNED NOT NULL AFTER `create_event_from_schedule`, +CHANGE COLUMN `update_event_after_week` `update_event_after_week` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_time`, +CHANGE COLUMN `update_event_field_title` `update_event_field_title` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_after_week`, +CHANGE COLUMN `update_event_field_title_extension` `update_event_field_title_extension` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_title`, +CHANGE COLUMN `update_event_field_excerpt` `update_event_field_excerpt` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_title_extension`, +CHANGE COLUMN `update_event_field_description` `update_event_field_description` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_content`, +CHANGE COLUMN `update_event_field_topic` `update_event_field_topic` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_description`, +CHANGE COLUMN `update_event_field_episode` `update_event_field_episode` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_topic`, +CHANGE COLUMN `update_event_field_excerpt_extension` `update_event_field_excerpt_extension` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_episode`, +CHANGE COLUMN `update_event_field_image` `update_event_field_image` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_excerpt_extension`, +CHANGE COLUMN `update_event_field_podcast_url` `update_event_field_podcast_url` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_image`, +CHANGE COLUMN `update_event_field_archive_url` `update_event_field_archive_url` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_podcast_url`, +CHANGE COLUMN `update_event_status_draft` `update_event_status_draft` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_rerun`, +CHANGE COLUMN `update_event_status_live` `update_event_status_live` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_draft`, +CHANGE COLUMN `update_event_status_playout` `update_event_status_playout` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_live`, +CHANGE COLUMN `update_event_status_archived` `update_event_status_archived` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_playout`, +CHANGE COLUMN `create_image` `create_image` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_archived`, +CHANGE COLUMN `update_image_own` `update_image_own` TINYINT(1) UNSIGNED NOT NULL AFTER `create_image`, +CHANGE COLUMN `created_at` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP AFTER `read_playout`, +CHANGE COLUMN `create_download` `create_download` TINYINT(1) UNSIGNED NOT NULL AFTER `created_at`, +CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `create_download`; + +ALTER TABLE `calcms`.`calcms_series_dates` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_series_events` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL FIRST, +CHANGE COLUMN `studio_id` `studio_id` INT(12) UNSIGNED NOT NULL AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_series_schedule` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL DEFAULT '1' AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_studios` +CHANGE COLUMN `image` `image` VARCHAR(200) NOT NULL AFTER `stream`; + +ALTER TABLE `calcms`.`calcms_studio_timeslot_dates` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL FIRST, +CHANGE COLUMN `schedule_id` `schedule_id` INT(10) UNSIGNED NOT NULL AFTER `studio_id`, +DROP PRIMARY KEY, +ADD PRIMARY KEY USING BTREE (`project_id`, `studio_id`, `start`, `end`); + +ALTER TABLE `calcms`.`calcms_studio_timeslot_schedule` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`; + +ALTER TABLE `calcms`.`calcms_user_events` +CHANGE COLUMN `modified_by` `modified_by` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `location`, +CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `modified_by`; + +ALTER TABLE `calcms`.`calcms_user_roles` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_users` +CHANGE COLUMN `email` `email` VARCHAR(300) NOT NULL AFTER `full_name`, +CHANGE COLUMN `pass` `pass` VARCHAR(100) NOT NULL AFTER `email`, +CHANGE COLUMN `created_at` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP AFTER `created_by`, +CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `created_at`; + +ALTER TABLE `calcms`.`calcms_user_series` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_user_stats` +ADD COLUMN `upload_file` INT(10) UNSIGNED NULL DEFAULT 0 AFTER `delete_series`, +ADD COLUMN `download_file` INT(10) UNSIGNED NULL DEFAULT 0 AFTER `upload_file`; + diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index b29e742..970692b 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -911,19 +911,19 @@ sub get_query { my $search_cond = ''; if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { my $search = lc $params->{search}; - $search =~ s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; - $search =~ s/\%+/\%/; + $search =~ s/(?=[\\%_])/\\/g; $search =~ s/^[\%\s]+//; $search =~ s/[\%\s]+$//; if ( $search ne '' ) { $search = '%' . $search . '%'; my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content', 'topic' ); - $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; for my $attr (@attr) { push @$bind_values, $search; } } } + #print STDERR $search_cond."\n"; my $project_cond = ''; diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 41b1edb..5d81a33 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -269,7 +269,7 @@ sub delete_files{ return undef; - print log::error($config, 'missing permissions on writing into local media dir ' .$local_media_dir)unless(-w $local_media_dir); + print log::error($config, 'missing permissions on writing into local media dir')unless(-w $local_media_dir); if ($filename=~/[^a-zA-Z0-9\.\_\-]/){ log::error($config, "invalid filename: '$filename'"); diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 2e12935..3cce3c2 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -50,6 +50,11 @@ sub get{ push @bind_values, $condition->{name}; } + if ((defined $condition->{location}) && ($condition->{location} ne '')){ + push @conditions, 's.location=?'; + push @bind_values, $condition->{location}; + } + my $limit=''; if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ $limit= 'limit '.$condition->{limit}; diff --git a/website/agenda/.htaccess b/website/agenda/.htaccess index eb1283d..4e5d090 100644 --- a/website/agenda/.htaccess +++ b/website/agenda/.htaccess @@ -79,6 +79,13 @@ RewriteRule ^future$ events.cgi?template=event_list_image.html&limit=20 RewriteRule ^dt64-festival.html$ events.cgi?location=dt64&template=event_dt64&archive=all RewriteRule ^frrapo-programm.html$ events.cgi?location=potsdam&template=event_frrapo RewriteRule ^upload_playout_piradio$ upload_playout.cgi?project_id=1&studio_id=1 + +RewriteRule ^redaktionen-piradio$ series.cgi?project_id=1&location=piradio +RewriteRule ^redaktionen-studio-ansage$ series.cgi?project_id=1&location=ansage +RewriteRule ^redaktionen-frrapo$ series.cgi?project_id=1&location=potsdam +RewriteRule ^redaktionen-colabo-radio$ series.cgi?project_id=1&location=colabo +RewriteRule ^redaktionen-frb$ series.cgi?project_id=1&location=frb + # MOD_PERL diff --git a/website/agenda/css/agenda.css b/website/agenda/css/agenda.css index 5804f98..f20c48b 100644 --- a/website/agenda/css/agenda.css +++ b/website/agenda/css/agenda.css @@ -4,44 +4,44 @@ /* main structure */ /* - body { +body { - font-size:12px - } + font-size:12px +} */ - #nav { - text-align:center; - margin:0; - height:3em; - z-index:3; - text-align:left; - background:white; - width:100%; - font-size:10px; - } +#nav { + text-align:center; + margin:0; + height:3em; + z-index:3; + text-align:left; + background:white; + width:100%; + font-size:10px; +} - #calcms_body { +#calcms_body { /* - font-size:10px; + font-size:10px; */ - overflow:auto; - background:white; - padding-top:3px;padding-right:5px; - margin:bottom:1px; - text-align:left; - padding:3px; - } + overflow:auto; + background:white; + padding-top:3px;padding-right:5px; + margin:bottom:1px; + text-align:left; + padding:3px; +} - pre { - text-align:left; +pre { + text-align:left; /* - font-size:0.7em; + font-size:0.7em; */ - font-family:Courier; - padding:1em;margin:1em; - border:1px solid black; - background-color:#eee; - } + font-family:Courier; + padding:1em;margin:1em; + border:1px solid black; + background-color:#eee; +} /* end of main structure */ @@ -49,27 +49,27 @@ /* search field */ - #nav form {float:left;} - #nav form input { +#nav form {float:left;} +#nav form input { /* - font-size:12px; + font-size:12px; */ - padding:0;margin:1;border:1px solid gray - } + padding:0;margin:1;border:1px solid gray +} - #nav form select { +#nav form select { /* - font-size:12px; + font-size:12px; */ - padding:0;margin:1;border:1px solid gray;width:130px; - } + padding:0;margin:1;border:1px solid gray;width:130px; +} - #nav form option { +#nav form option { /* - font-size:12px; + font-size:12px; */ - padding:0;margin:0 - } + padding:0;margin:0 +} /* end of search field */ @@ -77,34 +77,34 @@ /* event fields */ - .calcms_date { - background: #ccccff; - padding:6px;margin:0px; - font-weight:bold; - margin-top:1em; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - -webkit-border-top-right-radius: 6px; - -webkit-border-top-left-radius: 6px; - text-align:left - } +.calcms_date { + background: #ccccff; + padding:6px;margin:0px; + font-weight:bold; + margin-top:1em; + -moz-border-radius-topleft:6px; + -moz-border-radius-topright:6px; + -webkit-border-top-right-radius: 6px; + -webkit-border-top-left-radius: 6px; + text-align:left +} - .calcms_title {padding:3px;margin:0px;font-weight:bold;text-align:left;} - .calcms_excerpt {padding:3px;margin:0px;background-color:#eee;} - .calcms_content {padding:3px;margin:0px;clear:left;margin:0} - .calcms_content p {margin-top:10px} - .calcms_content h1 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} - .calcms_content h2 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} - .calcms_content h3 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} - .calcms_content h4 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} - .calcms_content li {clear:left;} - .calcms_content img {text-align:left;font-size:1.5em;float:left;margin-right:10px;}/*width:50;height:50px;*/ - .calcms_event {text-align:left} - .calcms_day {padding:1px;margin:0px;clear:left;text-align:left} - - /* hide microformats */ - .dtstart {display:none;visibility:hidden;} - .dtend {display:none;visibility:hidden;} +.calcms_title {padding:3px;margin:0px;font-weight:bold;text-align:left;} +.calcms_excerpt {padding:3px;margin:0px;background-color:#eee;} +.calcms_content {padding:3px;margin:0px;clear:left;margin:0} +.calcms_content p {margin-top:10px} +.calcms_content h1 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} +.calcms_content h2 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} +.calcms_content h3 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} +.calcms_content h4 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} +.calcms_content li {clear:left;} +.calcms_content img {text-align:left;font-size:1.5em;float:left;margin-right:10px;}/*width:50;height:50px;*/ +.calcms_event {text-align:left} +.calcms_day {padding:1px;margin:0px;clear:left;text-align:left} + +/* hide microformats */ +.dtstart {display:none;visibility:hidden;} +.dtend {display:none;visibility:hidden;} /* end of event fields */ @@ -112,140 +112,140 @@ /* navigation bar */ - table#nav{ - padding:0;margin:0;width:100%; - border-left:1px solid #88f; - border-top: 1px solid #88f; - text-align:left; - } - table#nav table{ - padding:0;margin:0; - border-left:0;border-top:0; - text-align:left;width:100% - } - table#nav table td{ - margin:0;text-align:center; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - } - table#nav table td, - table#nav table a{ - padding:1px; +table#nav{ + padding:0;margin:0;width:100%; + border-left:1px solid #88f; + border-top: 1px solid #88f; + text-align:left; +} +table#nav table{ + padding:0;margin:0; + border-left:0;border-top:0; + text-align:left;width:100% +} +table#nav table td{ + margin:0;text-align:center; + border-bottom:1px solid #88f; + border-right: 1px solid #88f; +} +table#nav table td, +table#nav table a{ + padding:1px; /* - font-size:10px; + font-size:10px; */ - } +} - /* hover effects */ +/* hover effects */ - table#nav table td:hover{ - border-bottom:1px solid #88f; - border-right :1px solid #88f; - background-color:#f0f0f0; - } +table#nav table td:hover{ + border-bottom:1px solid #88f; + border-right :1px solid #88f; + background-color:#f0f0f0; +} - table#nav table td.selected:hover{ - background-color:#eee; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - } +table#nav table td.selected:hover{ + background-color:#eee; + border-bottom:1px solid #88f; + border-right: 1px solid #88f; +} - table#nav table a:hover{ - } +table#nav table a:hover{ +} - /* not selectable columns */ +/* not selectable columns */ - table#nav table td.row_type:hover{ - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - background-color:#ffffff; - } +table#nav table td.row_type:hover{ + border-bottom:1px solid #88f; + border-right: 1px solid #88f; + background-color:#ffffff; +} - .row_type{ - width:100px - } +.row_type{ + width:100px +} - /* selected fields */ - #nav .selected, .night, .morning, .noon, .afternoon, .evening{ - background:#ddd; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - -moz-border-radius-topleft:5px; - -moz-border-radius-topright:5px; - -webkit-border-top-right-radius: 5px; - -webkit-border-top-left-radius: 5px; - } +/* selected fields */ +#nav .selected, .night, .morning, .noon, .afternoon, .evening{ + background:#ddd; + border-bottom:1px solid #88f; + border-right: 1px solid #88f; + -moz-border-radius-topleft:5px; + -moz-border-radius-topright:5px; + -webkit-border-top-right-radius: 5px; + -webkit-border-top-left-radius: 5px; +} /* end of navigation bar */ /* calendar weeks */ - #nav td.week_1, - #nav td.week_2, - #nav td.week_3, - #nav td.week_4, - #nav td.week_5 { - border-right:1px solid #88f ; - } +#nav td.week_1, +#nav td.week_2, +#nav td.week_3, +#nav td.week_4, +#nav td.week_5 { + border-right:1px solid #88f ; +} /* end of calendar weeks */ - + /* calendar days */ - /* replaces the original wp css*/ +/* replaces the original wp css*/ - #wp-calendar {} - #wp-calendar a {padding:2px} - #wp-calendar table {padding:2px} +#wp-calendar {} +#wp-calendar a {padding:2px} +#wp-calendar table {padding:2px} - #wp-calendar td { +#wp-calendar td { /* - font-size:8px; + font-size:8px; */ - text-align:center; - background-color:#fefeff; - } - #wp-calendar td a { - padding:2px; + text-align:center; + background-color:#fefeff; +} +#wp-calendar td a { + padding:2px; /* - font-size:8px; + font-size:8px; */ - font-weight:normal; - } + font-weight:normal; +} - #wp-calendar a:hover { - background:#eeeeff; - } +#wp-calendar a:hover { + background:#eeeeff; +} - /* additional css to mark today and all dates matching to the request */ +/* additional css to mark today and all dates matching to the request */ - #wp-calendar .calcms_today { - padding:2px;margin:0px;background:#eeeeee; - } +#wp-calendar .calcms_today { + padding:2px;margin:0px;background:#eeeeee; +} - #wp-calendar td.calcms_match { - background:#ccffcc; - } - #wp-calendar td .selected .calcms_match { - background:#ddeedd; - } +#wp-calendar td.calcms_match { + background:#ccffcc; +} +#wp-calendar td .selected .calcms_match { + background:#ddeedd; +} /* end of calendar days */ - div.update { - position:absolute; - bottom:0px; - } +div.update { + position:absolute; + bottom:0px; +} - div.update , div.update a{ - text-align:left; - font-size:6px; - color:#bbb; - } +div.update , div.update a{ + text-align:left; + font-size:6px; + color:#bbb; +} diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index ad968aa..4ccb52a 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -1,41 +1,30 @@ -/* -include in your web page: - -* {font-size:1em !important;} -*/ -/* latin-ext */ +/* roboto-regular - latin_latin-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; - src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 400; - src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url('../fonts/roboto-v18-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ + src: local('Roboto'), local('Roboto-Regular'), + url('../fonts/roboto-v18-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/roboto-v18-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/roboto-v18-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/roboto-v18-latin_latin-ext-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/roboto-v18-latin_latin-ext-regular.svg#Roboto') format('svg'); /* Legacy iOS */ } -/* latin-ext */ +/* open-sans-regular - latin_latin-ext */ @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; - src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url('../fonts/open-sans-v15-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ + src: local('Open Sans Regular'), local('OpenSans-Regular'), + url('../fonts/open-sans-v15-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ } #page * { @@ -51,6 +40,10 @@ input{ max-width:20em; } +body.custom-background{ + image-rendering: pixelated; +} + a{ text-decoration:none; box-shadow:none !important; @@ -507,12 +500,12 @@ a{ } #calcms_comments input{ - max-width:20em; + max-width:40rem; height:32px; } #calcms_comments input[type=submit]{ - max-width:10em; + max-width:10rem; background:#ddd; } diff --git a/website/agenda/js/calcms.cust.js b/website/agenda/js/calcms.cust.js index 148761d..4979ed2 100644 --- a/website/agenda/js/calcms.cust.js +++ b/website/agenda/js/calcms.cust.js @@ -157,6 +157,31 @@ var calcms_settings = new Array(); return false; } + + calcms.insertEditors = function insertEditors() { + var url=document.location.href; + + var mapping={ + "studio\-ansage" : "/agenda/redaktionen-studio-ansage", + "studio\-pi\-radio" : "/agenda/redaktionen-piradio", + "studio\-frb" : "/agenda/redaktionen-frb", + "studio\-colabo" : "/agenda/redaktionen-colabo-radio", + "studio\-frrapo" : "/agenda/redaktionen-frrapo" + }; + + for (var key in mapping){ + var editorsUrl = mapping[key]; + var pattern = new RegExp(key); + var matchs = pattern.exec(url); + if ((matchs != null) && (matchs.length > 0) ) { + console.log("matchs "+url) + $('div.entry-content').append('
      ') + $("#result").load(editorsUrl) + } + } + + } + /* function insertDeskDetails() { var pattern = new RegExp(/redaktion\/(.*)$/); diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 0559479..a68eeff 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -500,7 +500,7 @@ sub showCalendar { next unless defined $event->{uploaded_at}; print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; next if (defined $event->{playout_updated_at}) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); - print STDERR Dumper($event); + #print STDERR Dumper($event); $event->{upload} ='pending' ; #$event->{title}.='
      pending'; } diff --git a/website/agenda/planung/css/jquery-ui-timepicker.old.css b/website/agenda/planung/css/jquery-ui-timepicker.old.css deleted file mode 100644 index 6ef513c..0000000 --- a/website/agenda/planung/css/jquery-ui-timepicker.old.css +++ /dev/null @@ -1,11 +0,0 @@ -.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; } -.ui-timepicker-div dl { text-align: left; } -.ui-timepicker-div dl dt { float: left; clear:left; padding: 0 0 0 5px; } -.ui-timepicker-div dl dd { margin: 0 10px 10px 40%; } -.ui-timepicker-div td { font-size: 90%; } -.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; } - -.ui-timepicker-rtl{ direction: rtl; } -.ui-timepicker-rtl dl { text-align: right; padding: 0 5px 0 0; } -.ui-timepicker-rtl dl dt{ float: right; clear: right; } -.ui-timepicker-rtl dl dd { margin: 0 40% 10px 10px; } diff --git a/website/agenda/planung/css/list_series.css b/website/agenda/planung/css/list_series.css index 1280e6f..c828035 100644 --- a/website/agenda/planung/css/list_series.css +++ b/website/agenda/planung/css/list_series.css @@ -10,15 +10,16 @@ div#oldSeries{ clear:both; } -div#newSeries, div#oldSeries{ +div#newSeries, +div#oldSeries{ display: flex; flex-wrap: wrap; align-items: center; justify-content: center; } -div#newSeries div, -div#oldSeries div{ +div#newSeries a, +div#oldSeries a{ color:#fff; background:#1abc9c; padding:6px; @@ -35,12 +36,11 @@ div#oldSeries div{ height:3rem; line-height:2em; } -/* -*/ -div#newSeries div:hover, -div#oldSeries div:hover{ +div#newSeries a:hover, +div#oldSeries a:hover{ background:#1dd2af; + text-decoration:none; } div#search{ diff --git a/website/agenda/planung/templates/series.html b/website/agenda/planung/templates/series.html index f9096c2..7e3f0ab 100644 --- a/website/agenda/planung/templates/series.html +++ b/website/agenda/planung/templates/series.html @@ -37,10 +37,13 @@ var region='';
      @@ -50,10 +53,12 @@ var region=''; diff --git a/website/agenda/templates/event_details.html b/website/agenda/templates/event_details.html index 8e30a74..a5bb161 100644 --- a/website/agenda/templates/event_details.html +++ b/website/agenda/templates/event_details.html @@ -22,18 +22,18 @@
      ... Diese Sendung läuft gerade ...

      -

      - - «» - - +

      + + «» + +
      , , bis Uhr
      -

      +

      ()
      @@ -44,7 +44,7 @@ -
      +
      <TMPL_VAR series_name>
      Bild:
      @@ -56,9 +56,9 @@
      <TMPL_VAR series_name> -
      Bild:
      +
      Bild:
      -
      +
      @@ -66,7 +66,7 @@ Wiederholung vom - +
      From a13180d64942cb15dc94cf6a3449ce60e61cfaf6 Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 18 Jun 2018 00:44:44 +0200 Subject: [PATCH 017/391] add series external view --- website/agenda/checkip.cgi | 4 + website/agenda/planung/css/images/chess.gif | Bin 0 -> 601 bytes .../css/images/ui-icons_444444_256x240.png | Bin 0 -> 7006 bytes .../css/images/ui-icons_555555_256x240.png | Bin 0 -> 7074 bytes .../css/images/ui-icons_777620_256x240.png | Bin 0 -> 4676 bytes .../css/images/ui-icons_777777_256x240.png | Bin 0 -> 7013 bytes .../css/images/ui-icons_cc0000_256x240.png | Bin 0 -> 4632 bytes .../css/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6313 bytes website/agenda/planung/image/128/radio.png | Bin 0 -> 880 bytes website/agenda/planung/image/16/radio.png | Bin 0 -> 310 bytes website/agenda/planung/image/32/radio.png | Bin 0 -> 466 bytes website/agenda/planung/image/64/radio.png | Bin 0 -> 745 bytes .../agenda/planung/templates/seriesNames.html | 6 + website/agenda/series.cgi | 116 ++++++++++++++++++ website/agenda/templates/series.html | 55 +++++++++ 15 files changed, 181 insertions(+) create mode 100755 website/agenda/checkip.cgi create mode 100644 website/agenda/planung/css/images/chess.gif create mode 100644 website/agenda/planung/css/images/ui-icons_444444_256x240.png create mode 100644 website/agenda/planung/css/images/ui-icons_555555_256x240.png create mode 100644 website/agenda/planung/css/images/ui-icons_777620_256x240.png create mode 100644 website/agenda/planung/css/images/ui-icons_777777_256x240.png create mode 100644 website/agenda/planung/css/images/ui-icons_cc0000_256x240.png create mode 100644 website/agenda/planung/css/images/ui-icons_ffffff_256x240.png create mode 100644 website/agenda/planung/image/128/radio.png create mode 100644 website/agenda/planung/image/16/radio.png create mode 100644 website/agenda/planung/image/32/radio.png create mode 100644 website/agenda/planung/image/64/radio.png create mode 100644 website/agenda/planung/templates/seriesNames.html create mode 100644 website/agenda/series.cgi create mode 100644 website/agenda/templates/series.html diff --git a/website/agenda/checkip.cgi b/website/agenda/checkip.cgi new file mode 100755 index 0000000..b86e9d9 --- /dev/null +++ b/website/agenda/checkip.cgi @@ -0,0 +1,4 @@ +#!/bin/perl + +print "Content-type:text/plain\n\nCurrent IP Address:".$ENV{REMOTE_ADDR}."\n"; + diff --git a/website/agenda/planung/css/images/chess.gif b/website/agenda/planung/css/images/chess.gif new file mode 100644 index 0000000000000000000000000000000000000000..506823f8d6e36da0f928bf3b3ef1b15bb9c7b5cb GIT binary patch literal 601 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 O(`TNpelF{r5}E)Lfmmh$ literal 0 HcmV?d00001 diff --git a/website/agenda/planung/css/images/ui-icons_555555_256x240.png b/website/agenda/planung/css/images/ui-icons_555555_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..47849283f84f7026932bf50282ee8af51444c26e GIT binary patch literal 7074 zcmeAS@N?(olHy`uVBq!ia0y~yU}RumVEDkn!oa}bI`sf19o0kDYM6I5^f9(QmvjYjv*Dd-p;M=QE{(5Zl7ztk>le{ z#UplaKF{4Cl*2UR&bqZ7?kYM@&Zu2dZKyeSXAuMA^J|SCM0Uo`iT(f3_RP6S67~fp z={H#-Z@IsdQP?JOKB;FSr}}|6vga*S4yN(9TmMjQdE9@(amQ!({i}ApzIxZ#dh_M4 zwr|h+{9m=|^~blXUj6#}D*Rxa&8(iyY;zg=4;~U;@bCl6go|oRY+v}~sM#>OY>8wH zo8{6NC!Fx%y#MSCMQ214C*8bOz#G3Eh%zED5^HdJg zcD(XuwIQpIW`BUZqR;|y*$4ZiG*t>GKi^>U>PTxtLukU(h659d<{I(IHkHUKXeND< zc_HAmu*${dCCk)D>i#p|{o7XEZu6GspStGGaCT{f zAE#Dk^BcVQlW(-gYRAJ5+>R)&M)JfQ;}<+UvWFPgeYzg6tvmOB@hjK&-l{xC>hP|Jk{ZwgPwCrmgw|LMDl9&bz&^cK!^Sg2}tLoP}4|0971Q8jb7_U)b2 zBvo~UMnlguf|R~?mfT#f`a+-xl_;mk?7dTv*3-2K}khb&cc`* zk#8l-v+o>GEDdJfxg>fkn@|4&?_1xjG)|n}!T^nv1k)Vi^-Lh z?U$Cn{1-am>F!rDhf2QJZZwfRcvX(Y=evK>s^<*brWoJnUH13v&zNaj*bPD(Y#I$k z@6WLe7WB>RaNRt+cIB)Ceh$H$Va0qZVcyFhumyi!x9s@69Zx51a&DMy8JbZlm?+2k z`bgR8xKhhI#~%Dr%UxEoN~n2JsbM$ z?Zd{>->dgFmVWeI$tV`xB7A7j(2b9V%vu9ZTH{F9qKtF z=8zkdxb9buz@=(&PbW6jrAZyD*i361qoh~NKGx8^Da4%fP3xwsXR|iGa=Dx;)TziG z{lP$TJ>N7#li1H`2iLQl%82+}&152nl+`)tY_5a~1c+ zMY}cECpCX-HZak6u6NH@)HqPtK2~VbmY#>JcC9&Y;H2Jgz0rr^v)0zit=5&RqD!WV za9nN;`g(8gir4c!oJ&kUPR_qNXI1xJ|H|H{97@U!Z{F?g@R46vJX22K$l3kN_DtWI z-M{OfsTxmp`sCfK-|I(L&#Y1lqSjn85eLN}gMJ71qsqk>jtjyZ?iS;(YN0>w+UGWs%=iy0@C-PQQNQz{jYj&_8S9I}?pL49_## zRP`lVTV5$YKfCAQW!8!uEu_RMp~`e-nKtj{TF?JR#~#&B=iRkpud_>obK%k4f)zzx z{ZS@=&01^}Be|#K9*KN*`TgfpH#Tp5Q7GwOsQY?Nv97D9&R!m+r+eXYV9gul4fJ+XPSFY zwVuyyfBc|Ok!Aa;J8z$F_)^_fz2ts!%xR{_2ds>34i)C|u6Y0Okxx|pr{!-0-e|al zecooY%)5@0QH=4&9+4Vfk3Aj}Ccn89@;)#iNFl}M@4j^!kFM|V`k^bVaEZld*`_~Y z8z)$HG8Lc6wv~8cwy)QF|7S~?yG_#^+nj~owxH-qF$UT)ODzbhep0*-chIW_Hzjsxi&v|NRe+AB(mL-Pj5; zRpii#$cn@@r@2MH*$CF%o$ya3-uT}CLZj5LiE{b^3X2^!e(t|;s#dJHe6Hbg<3GaX zOz#ujB>$Uy*z#d-hvl=&`_H;w`t$vx%}l0s-UnAbJO7xKVb0OwTLR(?8EP8a63xC|cU30JBgues8D-Ib&3+56O2f^3Vw-8-MS^JjY}gBS){BRdo9qsA8Zk!k zNpJpIU|D&Yce7XTuQ>}&>+O3guQcV~Q(fu4Cr{i(zKd>s`un#6`;VrjbyhpSwi;E$ z{yE>HIxWJhu48?p?yfV8pSf=T;k_rZ-of^i@}3!*ORc_Veq(a4Gz@<_W$S}~?`FUF z_Vh#X9ijN%pxu!R-&@c6cPqN%{i^={upeT-l>85|9GJA^9ovh72F_gvSnmG$ZKb>G zK;XLP9Mz6H>mRYdVVL(Y$oZ|_(QePvHS>PEFu9zS&%E3v!f|u@?a1J7Up{2mKU`iR zJpYle%@H|Y*0V(uoP9(~svceQzbYHkm;Ya1@1c9l5#u)(ept*{=%v7_zep~YiCnJt zkmvZ;SF@hHoE_q&z9i~$?u6j=cmB2=7HzO+IQLkWVN1kmjt?zcX4##W@z1!r%xXBON@}HY5ygWRn>m}w$uF+qlR~r1>{`}cP>t}QSJt-1+{C@9g zgQXK@*B!RY{d{%0e)Md6qf1>@-#CLN>vCrMG^8>AJ^$0i=KcP8{vV26J8XS6&FO!= zif`V!jW!Ph*<>{ge-^u&xQJ@Jc*`iox1JlNC7U6~sI+zCtGUZ2uPVC#cEY*JQ>&fJ zZT9dgF)q8zwc?*t&|Q0n*ex8F-$otZ8pb=n`~H7^5seRldG?wUVE{@wo2Pb-8%CS*L&EUN*nY2R!B2 z?j75?^48`V9dD=PzL7ZPW&9$n;B@?5y5aL(OXF)G}f%nS67PCXR9^#1t| zvPYv{aPB)LVqEg55-Bvb{d*5q`o_w}7eCqErd3r7rq)wgDj;U+&;V=v;EnCJH z*Ad>?U#xdt?Au-*X0=AvbtytKbOau->~6f9`FVc8l7hfLEAP$wC9?mFf8*z$_Dlb) zzH>rE-=p-`)88joKmK}J;OeU9I-g&zbGoX$-npNek)&F{Mp0$pPCHzPkFgs z8ZP5#EW7jPXzJa3rp-Ys{SE?Ksr+k2(>6Yo+BvpP)7Sm zJ+JHo2J4G2zica9Rx;BlW>TFU$DfHxN8%YL@+Eh9yjNFNSseQD<4o2%jz3MCZysE0 zBNcn@8H3{aqP&<=={IW6OQv)usjZ)r|L|V=I^j20F+*TvO%wmrdCYfMHi{k#3fp~Cz~Jys zo73TzN7$@IV{@Km#J(+x-Lr~I@X5cKOIKOz9O<22D?ZVr-bCQd2{%gx*6z(WkLr~%nyV^qQdIa}W9EMT!o%4*8fNb9XaDmgZ_LfP$L((wcTjGZELA1K5#pUt@FYyD4tgYt6I@bkN`?hJo!KP%qmwESi<>9m~3 z={t9<{$uUGY1P`L6BO?17wmY@`i6gIzwf7KKc2_P7keb`SJ?gLbi0Ptm*8LeA6_L0 zR{zL;aCp}8iq6kFte1s$C-2$iU?`}?)R9(LW|hZf!zk7F>?Mbdi_%A?e(467bL&G;C-_6LH*;R2cUZs96XeJ1Q-{Uf;}`_7p3a0f1DalN|o*GXP>7p5%@oN5}Y zq~h21tlqWD_FwShKR-Skm2FKys@_L<;(bMHPhGo zUGm-gLFDQCr)9@>%>6D^lbc^YspkxjqNRzKa<6^<g{5D~#)6Mn0J3ek$vOu}PZr>a? z{aF$EyrQ?)Z`Zgo`M_iysWnw!EKVlf`qS;i%BpiLynN#c&vucL4M*?G^tfDh*AP<3 zYWifgQzfpOSByJ7&qsK}2{zqjTYF!WJ%4#h#o(u0$CB=2I~JLkwA>Av(9Ur8#{AX` z^EC|q7?gh!+_clH^5wLa9fn8ZHXN{gVsJ?H`sEot*UnzjYOK%VwT5VzqHa3c`mxiy=dNn z{+vyBoSRb=Us&w^X|!JHNpXz#ijsDjg-31QY_XcGyG!fb|7o(S-=g0wbaZJDi>*83 zdO%qweU^OT!X*BDjyVtV-X%BBoyF|4xIioZ>f?>pUvuXqMjxDCcEZ%=m}%4D(yf0s zUJ>8#Wp}RXPy3GS+#F;nD z-7HcqsQldMwk3Ck-^a3|!awD#ALc0ieS5$=>8JOf+r8RKOg4;roOb-``Z24AufRSw zFHKzi#$q4;e6_-bUtT9~O#jVuyK=un_o6>e_vHW2eB_?EP5X(Qmr8L1Z`rch%cjo= zu`2AGa-e<2Ber#EUa$G1O<80duUS2P+xtuR`vnC>hZ4DC{XfOlKXAID&X#hGq5A;i zQ_Jv&8InG|c1MyQ|I_&<{3Z5ZT}V!xZO(^p47~00b;;ixt~9+bF<=KuBa>F@0gb_>o_GJ>t$FK`9hTtM`6hTQ!MSGZ5Gtk{1}%*gvh&i&7K(_D)f9tH{; zF@8H*-`w{0W#6p&(hE0bSWmD-DBiqo?r~#Y-u*weE!q46m-PNjb&mM4-0jMqDk-(I z@1HZ+Hs%O!Ii#h1DqWi)thoN^gJ=6}Gym1P{aiJl`3sj3qmS)@eOodo?JrW9p&z3u z_wth1rSPSC=KJMYsu~hsF&=rwzoqE@AKTV!{s8%J%5zSc)<+AUTP)J{Qdc3t^q;oV z)jxH77no1nK74!4CAm}QOna>V{#owsTk)TP_xQD|tQB8a{`1eMo#XZP_O=%c3=FCz zt`Q|Ei6yC4$wjG&C8-QX28L$329~;pCLxB#R>sCwAg+m(fq^0~9}|j(-29Zxv`VN3 zb6rE@5Cc;yBQq;g6I}z41_Phmg$xV~k{}y`^V3So6N^$A98>a>QWZRN6Vp?JQWH}u U3s0tkCe9c*7#JE}Fff!FFfhDIU|_JC!N4G1FlSew4FdzCPJmB{ zYk8T%C?YZh&a+Ox%D}*oToU9L%n;#TqhvJW;oj5bX>&Gpu38%9SM}V%AvLWvxZ7>w zl;q?@-vt@DRkMqi?yo(t=keO7FP}8_#ooXBVCS{lmyTS$ay{u*!9U(}Gc$i!Xo<-j zt-Sbnd1J(h$ro;{|8RD~@{SF=kFP#{aN27I1_s6?Z+91l4pvzY1_lQ95>H=O_6O{| ztWsu=+a%l=82B4KT^vIyZoQ4=PL@6@cyD*Niq3I$NtFy{&aQ)+Dy328p7B$hq?A0k z4Krs8%$gDO?EnAvclWZ>)4wfzoboc~{qrN=?$|xweRJ>3yS9-X9UUEV3XLhZV{dHw zccGZgs$8FO|3A(&htzvIibt3n52`eLJMIy_l5-!^0VxK5<|Q>BU%UA>MJcE&Ec|PD z>7{H6%Y{dK7^hj@RA657zf9ETgWfNWgr$u$JC>IvHO-#S9QNR`&wQp5j@*Bm8%kr!+%=TIV9{}lV*i5EbpeMK znJze2?c{yoja$R~4Qw^98FL&xuI&r-(veMI*}!A6TT)ML4Wn0s`mT_z`9=~+f46_X zF*zqP(9`CqYXYYL7n9jGnFG2JH*&6ZTnmff_c(K_Mmg)YSc2=LmxbTIGT1q7vtn;4 zyf~jp5DIQPn;*A-F^lc>dzp%oH4Hz>w6>hMyR-g}1;gur1!f=OAHJHH@*wieqX%A_ z%^$pNP`!G8-&!_#N1eH$$4nlaW%OimPdclyx?hAL{1MmN&jpfBEFV}EK4c5%y*rtt z74cLpJ1ng%YTJLDU;t5@dhw%--jXKdX3 z@K9Eo9owEis?(m%JMgJl@Z7bB1+|TD=L&NtJ=~xwmA*cwL)0q4f2)yC*7B#iW)Jkv zaU|G2xNCg*r2w~Z!uy8LV(X@yVM;S+ytcP=pY!`Yj5!<=6oq7%z6H*+C^l%@+s<4e z*WJjundxBJ3ucxHo)eaA%GBJ_d&T*f!a46TiybijUTvFj`~7hjF!&;s z{#)dEA6I4QwVT&c66T`21Ug~yAQ`)OuVRBnXDqPw~ddn^_u*j*Y4s1 z;<5Wd`K+V6_sbmn6FPb9Kenx2Vg9H1%lpe=4W+Y>e%W{FL7u{rB|+;oT-KX8-?*6C z_(*hV7MCVh+nFDFt(TZe>JslVrL%lXy}{5Q_u^yK%Kd_KC0QIin*`4X3BI1~u%BZ? z&i>-2Af;fY5B`arcQ0&RBAHYx$)p{@a5{h94Gqqs2nO5r0hjMe|DD;F!>3@mM%!fN zHX$qa2)+|vj{PZ}&%^n@z~`q%eO5S!&VJ3D51Wmm4Gz4_D4+bo_(J=Vc9s%X>A%XL zw5KO-^i(}%_4EBk6LxG`d5<^sxtnu*pE=V!={Hl>P4Yh4qn2K0x30tRKtzn9=mMeL zL3c#?W~z0q7WHV1QoV8dvtrS=uKT=BT-!4a`P*NAwB=Gk){EO;W}M1N&))8}zS>se za00{Q#*2&xn>eekUDKK(uC`5Vwu0{Y&s$g&Q&I#PBp6Z`G2eaE=h(2ODt=Mn(uLa? zuGf`E&Rti)&}@FchTDK~^UX8=+1d`UbTBaPW@}s!;x4YD$f>sE%>vIKHUGZVyxYVe z!SrjP)VgO34zeayHu_!XO&Rm|eeRBzVu{&Z)+^gze)93wdTIwuG$;I;ZN~O~ z=__v23g3g7jK94~CEmR*ZCJD6e;Y%neN>Y6>dT_16bt@Z$uSu#<~RPiCvu`|{d~`c zOaEW>mfvMjdD66JlFDyRuEYm_j~=pRKd>*w;Z;AU#y?XQk;w{550+`weom`>xL^(o ze}~ly2K9!$ixfE+Z*O1VJ0;R#o4w4b{3;HSO|u&g z3teqZ;d$S4e0xIAeL*K@kGLP9A6vi51~9R;Fc|10Ec*Ig;6ljvK*pq^<~D{b#+!AG zzr+kBugF-lB>VIoKO3A7v)#Tdia}k$gr%U$lKq+Qv$lpaIqO%h`@;Ny_aVbZhF>>M zNBo`qN$!D`(cc$r>k1Ms{oWy9FV@FBrJ<=YW(|L&neK%{*OO&tt@F09-V(KL;f>hU z|G;Ia?eVv_|9uhJ^ZFLUw#EG{Gx^Hji}bIw-WtJr+qcJdV0%>`$98D?fFW>utZqe{*8&yf-F&bEbCr#P1K@`N))c(*~xSnMSs= zHx{vmPdoklV#WmRbiLepZ&yAlYkL1OwqdtR{nH(~TmGFg&tDW@Wi`h#jj2v~|F?p6 zqssZlQ|{l8Ub3oci6`<)$!L)h_64wrFDJ&35y>SHhyGS z>VK9m>|9M&{`)fBMU@FG)xjqnHQ$7stJ?NhX~8Vk39N4p&VR7&-GnRhx;I;OADn+A z{84=Gk`fP{2NNO=EZo$vbJ}vZH;V2KmY${`bu-^z4*Ip_WrEdPS>}de{%i#iz6+D$GCs$DlPt!^vA2_g~EcqcR`DtkJPcW zS)M+epdseA$AjYp$6=TM&sv739j#~L)*UwJIERety5gsX1(&9KKCMf{s+Np_V4)LI_IBS z{GEJ`36Jf+PD$_byP=Y$w`r4W-6Qr3srgE`?HG@#`>*`>#ZcpvbF9_Q8-hD#nLlm3 znvkG#PVti%&7qomH1l-{38dO!7#nTF7~C#eI{uiv>T9 zBpmqvFiFuTH8xo!w<#sTbMMF2Z+rf&`@sLUORs%XlO}iGtP*9jRQ<^CgR9Re#~$}# zv#u)M;B(>N)S{m0AC447eM=Ww5ThI7^fK;`Ij@88hp*=S^7Ws$zB?b_V0ZPMl=^}m zw^wtQB^h$bR(QDX44Ie}Zyo&Fu%m%JYdxR&j*vCGITk!r4WGVb`tIsmi>9@%`Raf6 zPr!{|dBJ~H`ba63i?Tg&Xp7u;gWXlqfpwnIJmDKmYQi;fwKYYH4te`FT!~+xYH-Se zSL}_F;m2kFxAH3dJ#8Ivo^k%cbu2cyMo)GI$~~)N;(M~5{Z;(jH9R>S+$oGIRka@y z{vYI&F%`87+$+7dpCOC!zSt+@;QF->Dk2jS#jdwF{<>FVXU?(WUCz(sjS+kP7i_HX z;Iq-0TYTVTrxZhlP>qpH-!%))NtO?8XYs9&2>A8f&7#WtYx%-%{qGMr3>RowIb4oo zQ)85`4f(6g_Gk`s+s%_FIp-v>y+|&&>))9ENV4yL=8J7}e7-bIox}Kae~2-|vHoAz z@BU({<F`~Dw(zJ~Yr z-Y8pc)-jzyU;5$is%wAiZr{Bnu}-^mefXj7Po0bRWlPUE$Rqxv|L9D?*VdJ0+CS!( zuFnYF6T%ph%e3Bvas4crBe@%X3hrFil52Z`JEU!9)w1(@zRp)%H=Qfqy*K!J^H=qy z;zhY4PoL=qO^BOu==H(u;__*x+dY|{@GNk8G2QKPn!H*?@|r90`TEb6{oA&9_vMnV zuhqKy_nH}<+2-L8cmMqzUkAT7n*)VimpA+~V+uN)($)NoS$U2b$B6{9*}3N~U*+1( z`5<+|zo7Eupf@>;v*)sKGi$`p(k!W1$63*5^zsRx9 zj;ixU=WUKmK3qObr?xCRfAsCdR~LEM7%k=sJ2boQlSq&|c9(1)?eBcv zKjy1AEVz8KYpP&!!@kH>=U;E1{JTx0ul0wa`0*dPub(=(ZF%;4Yt+PpH46Vtk8e-R zo0lGLG~<&)EpOGUdudm9{#34QKNcLY{Oxxc77_X0X>YF2U(e2|(zz?(^zT>R_5bF1 zO%I>+cb-r{M8groeUG!^BBYj27G&)AGEuu1^iJ08sBuBpxjiQmN;tX~HaBpabM`Uz z_4j?;60hg}VuHxEKjM17+dg_%*2m2|z5N*|xhh#T?~@mp^ipxvwxZkLcAZkZ@SWMo z$ky$8Sl;cpaLbDS3lDaOrc_PXwD!)nz3YkuzWi+n-_;al7rO6Zrs{O}%a@Js{AT@e zyzre_XL6J+=PS=1zaWRy?@O}gs$~8ynPhr7yDnyv6mzf4k!AA9vGR*^pBk9GJyBA+ zmO)YEwI$m%2Q@g-US+H^6 zItPZm_n&+IFO6Wh`aR}lew0Jup1nVc1TMVUJM)*6%&JS`Wqc>HX8d|=9rvofE@#1N z)+s;Fum2aT`{2&&`(HI5T=;+J93x}K-}C*vEV>JLr`-GczoTQ`)HxF%Kx28z6VOeh+1^HVa@ zDxn(8bq$R}3{0(z%&bgJbPYfn4197IGB7Ymf@}!RPb(=;EJ|f?Ovz75Rq)JBOiv9; XO-!jQJeg_(8YJ>`^>bP0l+XkKik)H& literal 0 HcmV?d00001 diff --git a/website/agenda/planung/css/images/ui-icons_777777_256x240.png b/website/agenda/planung/css/images/ui-icons_777777_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1d532588b989c5fd03e7a63f7e829b017c35d3cf GIT binary patch literal 7013 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 OnFvo;KbLh*2~7YnE6Qd7 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/image/128/radio.png b/website/agenda/planung/image/128/radio.png new file mode 100644 index 0000000000000000000000000000000000000000..79126d722cbadfe5724ead3c493556b2c5882fdf GIT binary patch literal 880 zcmeAS@N?(olHy`uVBq!ia0y~yU}ykg4h9AWhG(I6;tUK7oCO|{#S9GG!XV7ZFl&wk z0|NtliKnkC`y*BfJ|#u%fZ4GO3=EPbt`Q~9`MJ5Nc_j?aMX8A;sVNHOnI#zt?w-B@ z;f;La3=B-KJY5_^DsH`K;(G5-}Yd`hk6V6A`=e_hwy}&9XoJnmZ0HN<&@P| zG>eztIdP-Mpt9wq*#ho+0fO=hJSR=dca?X}y>Y(1LT*)D_Wj>4=YRkA?eo?^=EUPn z5)F(9r0^j^=xAi^p4y+Ultd1^`o+fZfSrw@_kEyRu0mwio9lIqC7QQicvfa~xiiEb ziT#q5FipRqRPWY{Oj{elJ#Ob;UEKMOG2|MX_)Mdj?<5xZ?SAp|Rza(G!>VpM@mn<$ zjT^Fd+_7c;l9s$zL}r$+X{x1#(d;d=e(*UYn#D0xZ4TUQ(o&h09P>_(@zw95cxw%X z1qRaT48doQ@g6vqGigaSR%)2Z|PKuy`c0ucu?3e#AL1 zM)v+}Nek8qG6G?Dw-&5#;9J|UCCFh{xWh%Q1ECvcTz{h}-|x^C<`5*txU7L|uXNK- z_xPm`cbcA0IdFG_?e^Cq{v{#@zO2YE+O8R}ljA+-_NY5&WE8gVDYmlV`qI@A&?x(e zhcTi@yZlAh0hN6W5p&m>tv~m2wS!sji_Za(8Vnyh7}CN|Z)cePsOa;nY6f|UvyF-k zS<@J0JVkxJH2$9WHoW=V8ipq8hd1H`OdqRn{CN7+#=9S0-o1Wz^W>^Jlf8=nJ)a9Q zvi!gCu6aRsR02c#`x6{bCLces@y{dinnj)UpML!bywCCJ|13iWW&;@d^PQodQIL-( UOiW5e8l|2y&d|Tjz`!6`;u=xnoS&PUnpeW$T$GwvlA5AWo>`Ki;O^-g z5Z=fq&cML1!PCVtMB;MtpYsh|GbBE6{JHnNp|O$m*zdXr#@%x{d>(xMH~&rF9v%?r z`Cq>8N7aOr^Mn`q-D~`~|57bm=(gG6+xG6*E9a%=r_Mck z;75Gm-ARp&4}U3^v9Y!FOC67pkXRxqAtAA3zVe-qvlpbie{SQ%1^J8uHw{wVb@f?60pjWE=d#Wz Gp$Py5KytGH literal 0 HcmV?d00001 diff --git a/website/agenda/planung/image/32/radio.png b/website/agenda/planung/image/32/radio.png new file mode 100644 index 0000000000000000000000000000000000000000..0b33adb9979c14e7a65b5d311fc5ea79707ed9d9 GIT binary patch literal 466 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4h9AWhA=@@4F(1V&H|6fVg?3oVGw3ym^DX& zfq{X&#M9T6{Sm7KpR&?wr{BvM7#Ji=Tq8=H^K)}k^GX<;i&7IyQd1PlGfOfQ+&z5* z!W;R-85kISJY5_^EKVo?Io}{}V8|24y8gMliID*aBz->m*q5D!DK@fDW5@PqQ%WZA z8uxTBdvNMj_o{Gj)$I$g{PzUgDW{Trx#soZ~TwT&x9cAh$LvYSJr?XY=? z=*{={cJpq3HKG5^A9o%Q`2XMff#1dnCyFfFz2{wIabF~x6Uom|%N5bqeSazoD6%|V L{an^LB{Ts5uOhn# literal 0 HcmV?d00001 diff --git a/website/agenda/planung/image/64/radio.png b/website/agenda/planung/image/64/radio.png new file mode 100644 index 0000000000000000000000000000000000000000..e0afb4fc692562ec7d648e84887a930d95a68e69 GIT binary patch literal 745 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4h9AWhJGeJCI$uu&H|6fVg?3oVGw3ym^DX& zfq{X&#M9T6{Sm7KpE4_-hu>KS1_sFz*N775{M_8syb=cIqSVBa)D(sC%#sWRcTeAd z@J2py1_q{NPZ!6Kh{JEE+h+&|N*t(P`A}nF35S%*H9p7g3kRdDS`;drdH9a%^)a%m zI*S}+nSSZvk_TZE6I!h-rsz!NyUNiT*5b4x#q;1Xt!)|}KE4wd9Q2T$@H*k_{L{O? z#2S^HeB4(3zWV+5eebL9f4^%z+pl_UH{Swg3#kLIqtoACD=GEP)fX&!RQqG8RT67J z7rX3_QLVn(@=+I+=qNo(hu~YPw^Wm`}MO?9I=dx}kgGNng(YNkTfS9`0DmxU}NJ!51ZtR=aYn z4xG|TWiZk|&C{nDWLda){Uq*g-KP&fY+LubO8mg?X$&v-Gn6$X`!2Jbv*=>d$N#fs zACwC_B=|j<_wm~s~(n||Mt7&PeT9WQzC)oeC2svFZLgwd$^hNLD%#mE!G`M zPmjBvR`r$qeyv1lRcM1zT>d(#2@F?e72MYN^4DW?H~%7mqsI>lx2`HRlijhNaRt*< z(>diXzmIV_d<&V&)^*~^fgs1pUmN{ZzC{)+a@Y8Ng85hLr@G7rPcH3C4S5^)L`x+I zZFjAd7rD)v!}&D&Q$xQ}q2Gdo7c31QT<&9-kkfPa&#m^YjEQFZvSR*ME>_$iq$lCU z!5BZiXY=XJyeDSc$1^b3CE7;#N~YOoU0M14Epx- + +
      +
      +
      + diff --git a/website/agenda/series.cgi b/website/agenda/series.cgi new file mode 100644 index 0000000..763c272 --- /dev/null +++ b/website/agenda/series.cgi @@ -0,0 +1,116 @@ +#!/usr/bin/perl -w + +use warnings "all"; +use strict; +use Data::Dumper; + +use params; +use config; +#use log; +use template; +#use auth; +#use uac; +#use roles; +#use project; +use studios; +#use events; +use series; +#use series_schedule; +#use series_events; +#use series_dates; +#use user_stats; +#use markup; +#use URI::Escape; +#use Encode; +#use localization; + +binmode STDOUT, ":utf8"; +print "Content-Type: text/html; charset=utf-8\n\n"; + +my $r = shift; +( my $cgi, my $params, my $error ) = params::get($r); + +my $config = config::get('config/config.cgi'); + +$params = check_params($params); + +list_series( $config, $params ); + +sub list_series { + my $config = shift; + my $params = shift; + + $config->{access}->{write} = 0; + + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $location = $params->{location}; + + if (defined $location){ + my $studios = studios::get( + $config, + { + project_id => $project_id, + location => $location + } + ); + + $studio_id = $studios->[0]->{id}; + } + + my $conditions = {}; + $conditions->{project_id} = $project_id if defined $project_id; + $conditions->{studio_id} = $studio_id if defined $studio_id; + + if (scalar (keys %$conditions) == 0){ + $params->{info} .= "missing parameters"; + return; + } + $params->{info}.= Dumper($conditions); + + my $series = series::get_event_age( $config, $conditions ); + my $series2 = []; + for my $serie ( sort { lc $a->{series_name} cmp lc $b->{series_name} } (@$series) ) { + next if $serie->{days_over} > 80 ; + next if $serie->{days_over} == 0 ; + next unless defined $serie->{series_name}; + next if $serie->{series_name} eq '_single_'; + push @$series2, $serie; + } + $params->{series} = $series2; + + $params->{info}.="no results found" if scalar(@$series)==0; + $params->{info}=''; + + template::process( 'print', 'templates/series.html', $params ); +} + + +sub check_params { + my $params = shift; + + my $checked = {}; + + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; + + for my $param ('project_id', 'studio_id') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } + + for my $param ( 'location') { + if ( defined $params->{$param} ) { + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^\s+//g; + $checked->{$param} =~ s/\s+$//g; + } + } + + return $checked; +} + diff --git a/website/agenda/templates/series.html b/website/agenda/templates/series.html new file mode 100644 index 0000000..c7b2be9 --- /dev/null +++ b/website/agenda/templates/series.html @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + +
      +

      aktuelle Sendereihen

      +
      + +
      + +
      + + - +
      + + + +
      + + +
      +
      +
      + + + From bfcf56f05a72091dc4136c577f321ade3b22107f Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Jul 2018 22:46:29 +0200 Subject: [PATCH 018/391] separate time conditions --- lib/calcms/events.pm | 2760 +++++++++++++++++++++--------------------- 1 file changed, 1397 insertions(+), 1363 deletions(-) diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 970692b..ad8a10e 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -17,22 +17,22 @@ use project; use studios; require Exporter; -our @ISA = qw(Exporter); +our @ISA = qw(Exporter); our @EXPORT_OK = qw( - init - get_cached_or_render - get - modify_results - get_query - render - get_running_event_id - delete - check_params - configure_cache - get_duration - calc_dates - get_keys - add_recordings + init + get_cached_or_render + get + modify_results + get_query + render + get_running_event_id + delete + check_params + configure_cache + get_duration + calc_dates + get_keys + add_recordings ); our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); @@ -41,973 +41,1003 @@ sub init { sub get_cached_or_render { - # my $response=$_[0]; - my $config = $_[1]; - my $request = $_[2]; + # my $response=$_[0]; + my $config = $_[1]; + my $request = $_[2]; - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $cache = {}; - if ( $config->{cache}->{use_cache} == 1 ) { - events::configure_cache($config); - $cache = cache::load( $config, $params ); - log::write( $config, 'cache', $cache->{action} ); - if ( defined $cache->{content} ) { - $_[0] = $cache->{content}; - return; - } - } + my $cache = {}; + if ( $config->{cache}->{use_cache} == 1 ) { + events::configure_cache($config); + $cache = cache::load( $config, $params ); + log::write( $config, 'cache', $cache->{action} ); + if ( defined $cache->{content} ) { + $_[0] = $cache->{content}; + return; + } + } - my $results = events::get( $config, $request ); - events::render( $_[0], $config, $request, $results ); + my $results = events::get( $config, $request ); + events::render( $_[0], $config, $request, $results ); - #write to cache - if ( $config->{cache}->{use_cache} == 1 ) { + #write to cache + if ( $config->{cache}->{use_cache} == 1 ) { - #todo:put out reference only - log::write( $config, 'cache', $cache ); - $cache->{content} = $_[0]; - cache::save($cache); - } - log::mem( $config, 'events not_cached' ) if ( $debug > 2 ); - return $_[0]; + #todo:put out reference only + log::write( $config, 'cache', $cache ); + $cache->{content} = $_[0]; + cache::save($cache); + } + log::mem( $config, 'events not_cached' ) if ( $debug > 2 ); + return $_[0]; } sub get { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $debug = $config->{system}->{debug}; + my $debug = $config->{system}->{debug}; - my $dbh = db::connect( $config, $request ); + my $dbh = db::connect( $config, $request ); - ( my $query, my $bind_values ) = events::get_query( $dbh, $config, $request ); + ( my $query, my $bind_values ) = events::get_query( $dbh, $config, $request ); - #print STDERR Dumper($query).Dumper($bind_values)."\n"; + #print STDERR Dumper($query).Dumper($bind_values)."\n"; - my $results = db::get( $dbh, $$query, $bind_values ); + my $results = db::get( $dbh, $$query, $bind_values ); #$results = events::add_recordings($dbh, $config, $request, $results); - #print STDERR Dumper($results); - $results = events::modify_results( $dbh, $config, $request, $results ); + #print STDERR Dumper($results); + $results = events::modify_results( $dbh, $config, $request, $results ); - return $results; + return $results; } sub modify_results { - my $dbh = shift; - my $config = shift; - my $request = shift; - my $results = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; + my $results = shift; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $running_event_id = 0; - my $projects = {}; - my $studios = {}; + my $running_event_id = 0; + my $projects = {}; + my $studios = {}; - # print $running_event_id." ".$running_events->[0]->{start}." ".$running_events->[0]->{title} if ($debug ne''); - my $time_diff = ''; - if ( scalar @$results > 0 ) { - $results->[0]->{__first__} = 1; - $results->[-1]->{__last__} = 1; - $running_event_id = events::get_running_event_id($dbh); - } + # print $running_event_id." ".$running_events->[0]->{start}." ".$running_events->[0]->{title} if ($debug ne''); + my $time_diff = ''; + if ( scalar @$results > 0 ) { + $results->[0]->{__first__} = 1; + $results->[-1]->{__last__} = 1; + $running_event_id = events::get_running_event_id($dbh); + } - if ( ( defined $params->{template} ) && ( $params->{template} =~ /\.xml/ ) ) { - $time_diff = time::utc_offset( $config->{date}->{time_zone} ); - $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; - } + if ( ( defined $params->{template} ) && ( $params->{template} =~ /\.xml/ ) ) { + $time_diff = time::utc_offset( $config->{date}->{time_zone} ); + $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; + } - my $previous_result = { start_date => '' }; - my $counter = 1; - for my $result (@$results) { - if ( defined $params->{template} ) { - if ( $params->{template} =~ /\.ics$/ ) { - $result->{content_ical} = - markup::plain_to_ical( $result->{content} ); - $result->{title_ical} = - markup::plain_to_ical( $result->{title} ); - $result->{user_title_ical} = - markup::plain_to_ical( $result->{user_title} ); - $result->{excerpt_ical} = - markup::plain_to_ical( $result->{excerpt} ); - $result->{user_excerpt_ical} = - markup::plain_to_ical( $result->{user_excerpt} ); - $result->{series_name} = - markup::plain_to_ical( $result->{series_name} ); - $result->{created_at} =~ s/ /T/gi; - $result->{created_at} =~ s/[\:\-]//gi; - $result->{modified_at} =~ s/ /T/gi; - $result->{modified_at} =~ s/[\:\-]//gi; + my $previous_result = { start_date => '' }; + my $counter = 1; + for my $result (@$results) { + if ( defined $params->{template} ) { + if ( $params->{template} =~ /\.ics$/ ) { + $result->{content_ical} = + markup::plain_to_ical( $result->{content} ); + $result->{title_ical} = + markup::plain_to_ical( $result->{title} ); + $result->{user_title_ical} = + markup::plain_to_ical( $result->{user_title} ); + $result->{excerpt_ical} = + markup::plain_to_ical( $result->{excerpt} ); + $result->{user_excerpt_ical} = + markup::plain_to_ical( $result->{user_excerpt} ); + $result->{series_name} = + markup::plain_to_ical( $result->{series_name} ); + $result->{created_at} =~ s/ /T/gi; + $result->{created_at} =~ s/[\:\-]//gi; + $result->{modified_at} =~ s/ /T/gi; + $result->{modified_at} =~ s/[\:\-]//gi; - } elsif ( $params->{template} =~ /\.atom\.xml/ ) { - $result->{excerpt} = '' unless defined( $result->{excerpt} ); - $result->{excerpt} = "lass dich ueberraschen" - if ( $result->{excerpt} eq '' ); + } elsif ( $params->{template} =~ /\.atom\.xml/ ) { + $result->{excerpt} = '' unless defined( $result->{excerpt} ); + $result->{excerpt} = "lass dich ueberraschen" + if ( $result->{excerpt} eq '' ); - # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); - # $result->{title} =markup::plain_to_xml($result->{title}); - # $result->{series_name} =markup::plain_to_xml($result->{series_name}); - # $result->{program} =markup::plain_to_xml($result->{program}); + # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); + # $result->{title} =markup::plain_to_xml($result->{title}); + # $result->{series_name} =markup::plain_to_xml($result->{series_name}); + # $result->{program} =markup::plain_to_xml($result->{program}); - $result->{created_at} =~ s/ /T/gi; - $result->{created_at} .= $time_diff; - $result->{modified_at} =~ s/ /T/gi; - $result->{modified_at} .= $time_diff; - } elsif ( $params->{template} =~ /\.rss\.xml/ ) { - $result->{excerpt} = '' unless defined( $result->{excerpt} ); - $result->{excerpt} = "lass dich ueberraschen" - if ( $result->{excerpt} eq '' ); + $result->{created_at} =~ s/ /T/gi; + $result->{created_at} .= $time_diff; + $result->{modified_at} =~ s/ /T/gi; + $result->{modified_at} .= $time_diff; + } elsif ( $params->{template} =~ /\.rss\.xml/ ) { + $result->{excerpt} = '' unless defined( $result->{excerpt} ); + $result->{excerpt} = "lass dich ueberraschen" + if ( $result->{excerpt} eq '' ); - # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); - # $result->{title} =markup::plain_to_xml($result->{title}); - # $result->{series_name} =markup::plain_to_xml($result->{series_name}); - # $result->{program} =markup::plain_to_xml($result->{program}); - #print STDERR "created:$result->{created_at} modified:$result->{modified_at}\n"; - $result->{modified_at} = - time::datetime_to_rfc822( $result->{modified_at} ); - if ( $result->{created_at} =~ /[1-9]/ ) { - $result->{created_at} = - time::datetime_to_rfc822( $result->{created_at} ); - } else { - $result->{created_at} = $result->{modified_at}; - } + # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); + # $result->{title} =markup::plain_to_xml($result->{title}); + # $result->{series_name} =markup::plain_to_xml($result->{series_name}); + # $result->{program} =markup::plain_to_xml($result->{program}); + #print STDERR "created:$result->{created_at} modified:$result->{modified_at}\n"; + $result->{modified_at} = + time::datetime_to_rfc822( $result->{modified_at} ); + if ( $result->{created_at} =~ /[1-9]/ ) { + $result->{created_at} = + time::datetime_to_rfc822( $result->{created_at} ); + } else { + $result->{created_at} = $result->{modified_at}; + } - } - } - $result->{series_name} ||= ''; - $result->{series_name} = '' if $result->{series_name} eq '_single_'; + } + } + $result->{series_name} ||= ''; + $result->{series_name} = '' if $result->{series_name} eq '_single_'; - $result->{rerun} = '' unless defined $result->{rerun}; + $result->{rerun} = '' unless defined $result->{rerun}; - if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { - $result->{episode} = $1 unless defined $result->{episode}; - $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); - $result->{title} =~ s/\#\d+[a-z]?\s*$//; - $result->{title} =~ s/\s+$//; - } - $result->{rerun} = '' if ( $result->{rerun} eq '0' ); + if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { + $result->{episode} = $1 unless defined $result->{episode}; + $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); + $result->{title} =~ s/\#\d+[a-z]?\s*$//; + $result->{title} =~ s/\s+$//; + } + $result->{rerun} = '' if ( $result->{rerun} eq '0' ); - if ( ( defined $result->{recurrence_count} ) - && ( $result->{recurrence_count} > 0 ) ) - { - $result->{recurrence_count_alpha} = - markup::base26( $result->{recurrence_count} + 1 ); - $result->{recurrence_id} = $result->{recurrence}; - } else { - $result->{recurrence_count_alpha} = ''; - $result->{recurrence_count} = ''; - } + if ( ( defined $result->{recurrence_count} ) + && ( $result->{recurrence_count} > 0 ) ) + { + $result->{recurrence_count_alpha} = + markup::base26( $result->{recurrence_count} + 1 ); + $result->{recurrence_id} = $result->{recurrence}; + } else { + $result->{recurrence_count_alpha} = ''; + $result->{recurrence_count} = ''; + } - # set title keys - my $keys = get_keys($result); - for my $key ( keys %$keys ) { - $result->{$key} = $keys->{$key}; - } + # set title keys + my $keys = get_keys($result); + for my $key ( keys %$keys ) { + $result->{$key} = $keys->{$key}; + } - $result = calc_dates( $config, $result, $params, $previous_result, $time_diff ); + $result = calc_dates( $config, $result, $params, $previous_result, $time_diff ); - $result->{event_uri} = ''; - if ( ( defined $result->{program} ) && ( $result->{program} ne '' ) ) { - $result->{event_uri} .= $result->{program}; - $result->{event_uri} .= '-' - if ( ( $result->{series_name} ne '' ) - || ( $result->{title} ne '' ) ); - } - if ( $result->{series_name} ne '' ) { - $result->{event_uri} .= $result->{series_name}; - $result->{event_uri} .= '-' if ( $result->{title} ne '' ); - } - $result->{event_uri} .= $result->{title} if ( $result->{title} ne '' ); - $result->{event_uri} =~ s/\#/Nr./g; - $result->{event_uri} =~ s/\&/und/g; - $result->{event_uri} =~ s/\//\%2f/g; - $result->{event_uri} =~ s/[?]//g; + $result->{event_uri} = ''; + if ( ( defined $result->{program} ) && ( $result->{program} ne '' ) ) { + $result->{event_uri} .= $result->{program}; + $result->{event_uri} .= '-' + if ( ( $result->{series_name} ne '' ) + || ( $result->{title} ne '' ) ); + } + if ( $result->{series_name} ne '' ) { + $result->{event_uri} .= $result->{series_name}; + $result->{event_uri} .= '-' if ( $result->{title} ne '' ); + } + $result->{event_uri} .= $result->{title} if ( $result->{title} ne '' ); + $result->{event_uri} =~ s/\#/Nr./g; + $result->{event_uri} =~ s/\&/und/g; + $result->{event_uri} =~ s/\//\%2f/g; + $result->{event_uri} =~ s/[?]//g; - $result->{rds_title} = $result->{event_uri}; - $result->{rds_title} =~ s/[^a-zA-Z0-9\-]/\_/gi; - $result->{rds_title} =~ s/\_{2,99}/\_/gi; - $result->{rds_title} = substr( $result->{rds_title}, 0, 63 ); + $result->{rds_title} = $result->{event_uri}; + $result->{rds_title} =~ s/[^a-zA-Z0-9\-]/\_/gi; + $result->{rds_title} =~ s/\_{2,99}/\_/gi; + $result->{rds_title} = substr( $result->{rds_title}, 0, 63 ); - #$result->{event_id}=$result->{id}; + #$result->{event_id}=$result->{id}; - $result->{base_url} = $request->{base_url}; - $result->{base_domain} = $config->{locations}->{base_domain}; - $result->{static_files_url} = $config->{locations}->{static_files_url}; - $result->{source_base_url} = $config->{locations}->{source_base_url}; - $result->{cache_base_url} = $config->{cache}->{base_url}; + $result->{base_url} = $request->{base_url}; + $result->{base_domain} = $config->{locations}->{base_domain}; + $result->{static_files_url} = $config->{locations}->{static_files_url}; + $result->{source_base_url} = $config->{locations}->{source_base_url}; + $result->{cache_base_url} = $config->{cache}->{base_url}; - $result->{is_running} = 1 - if ( $running_event_id eq $result->{event_id} ); - $result->{one_comment} = 1 if ( $result->{comment_count} == 1 ); - $result->{no_comment} = 1 if ( $result->{comment_count} == 0 ); + $result->{is_running} = 1 + if ( $running_event_id eq $result->{event_id} ); + $result->{one_comment} = 1 if ( $result->{comment_count} == 1 ); + $result->{no_comment} = 1 if ( $result->{comment_count} == 0 ); - #fix image url - #$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; - #if ($params->{exclude_event_images}==1){ - # if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ - # $result->{image} = $result->{series_image}; + #fix image url + #$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; + #if ($params->{exclude_event_images}==1){ + # if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ + # $result->{image} = $result->{series_image}; # $result->{image_label} = $result->{series_image_label}; - # } + # } #} - - if ( defined $result->{image} ) { - my $url = $config->{locations}->{local_media_url}||''; - my $image = $result->{image}; - $result->{thumb_url} = $url.'/thumbs/'.$image; - $result->{icon_url} = $url.'/icons/'.$image; - $result->{image_url} = $url.'/images/'.$image; - } - if ( defined $result->{series_image} ) { - my $url = $config->{locations}->{local_media_url}||''; - my $image = $result->{series_image}; - $result->{series_thumb_url} = $url.'/thumbs/'.$image; - $result->{series_icon_url} = $url.'/icons/'.$image; - $result->{series_image_url} = $url.'/images/'.$image; - } + if ( defined $result->{image} ) { + my $url = $config->{locations}->{local_media_url} || ''; + my $image = $result->{image}; + $result->{thumb_url} = $url . '/thumbs/' . $image; + $result->{icon_url} = $url . '/icons/' . $image; + $result->{image_url} = $url . '/images/' . $image; + } - $result->{location_css} = $result->{location} || ''; - $result->{location_css} = lc( $result->{location_css} ); - $result->{location_css} =~ s/\.//g; - $result->{location_css} =~ s/\s//g; - $result->{ 'location_label_' . $result->{location_css} } = 1; + if ( defined $result->{series_image} ) { + my $url = $config->{locations}->{local_media_url} || ''; + my $image = $result->{series_image}; + $result->{series_thumb_url} = $url . '/thumbs/' . $image; + $result->{series_icon_url} = $url . '/icons/' . $image; + $result->{series_image_url} = $url . '/images/' . $image; + } - # add project by name - my $project_name = $result->{project}; - if ( defined $project_name ) { + $result->{location_css} = $result->{location} || ''; + $result->{location_css} = lc( $result->{location_css} ); + $result->{location_css} =~ s/\.//g; + $result->{location_css} =~ s/\s//g; + $result->{ 'location_label_' . $result->{location_css} } = 1; - #print STDERR "found project:$project_name\n"; - unless ( defined $projects->{$project_name} ) { - my $results = project::get( $config, { name => $project_name } ); - $projects->{$project_name} = $results->[0] || {}; - } - my $project = $projects->{$project_name}; - for my $key ( keys %$project ) { - $result->{ 'project_' . $key } = $project->{$key}; - } - } else { - print STDERR "events::get - unknown project for event $result->{id}\n"; - } + # add project by name + my $project_name = $result->{project}; + if ( defined $project_name ) { - #if project_id is set add columns from project (cached) - my $project_id = $result->{project_id}; - if ( defined $project_id ) { - unless ( defined $projects->{$project_id} ) { - my $results = project::get( $config, { project_id => $project_id } ); - $projects->{$project_id} = $results->[0] || {}; - } - my $project = $projects->{$project_id}; - for my $key ( keys %$project ) { - $result->{ 'project_' . $key } = $project->{$key}; - } - } + #print STDERR "found project:$project_name\n"; + unless ( defined $projects->{$project_name} ) { + my $results = project::get( $config, { name => $project_name } ); + $projects->{$project_name} = $results->[0] || {}; + } + my $project = $projects->{$project_name}; + for my $key ( keys %$project ) { + $result->{ 'project_' . $key } = $project->{$key}; + } + } else { + print STDERR "events::get - unknown project for event $result->{id}\n"; + } - #if studio_id is set add columns from studio (cached) - my $studio_id = $result->{studio_id}; - if ( defined $studio_id ) { - unless ( defined $studios->{$studio_id} ) { - my $results = studios::get( $config, { studio_id => $studio_id } ); - $studios->{$studio_id} = $results->[0] || {}; - } - my $studio = $studios->{$studio_id}; - for my $key ( keys %$studio ) { - $result->{ 'studio_' . $key } = $studio->{$key}; - } - } + #if project_id is set add columns from project (cached) + my $project_id = $result->{project_id}; + if ( defined $project_id ) { + unless ( defined $projects->{$project_id} ) { + my $results = project::get( $config, { project_id => $project_id } ); + $projects->{$project_id} = $results->[0] || {}; + } + my $project = $projects->{$project_id}; + for my $key ( keys %$project ) { + $result->{ 'project_' . $key } = $project->{$key}; + } + } - #$result->{'project_title'}=$project->{title} if (defined $project->{title} && $project->{title} ne ''); + #if studio_id is set add columns from studio (cached) + my $studio_id = $result->{studio_id}; + if ( defined $studio_id ) { + unless ( defined $studios->{$studio_id} ) { + my $results = studios::get( $config, { studio_id => $studio_id } ); + $studios->{$studio_id} = $results->[0] || {}; + } + my $studio = $studios->{$studio_id}; + for my $key ( keys %$studio ) { + $result->{ 'studio_' . $key } = $studio->{$key}; + } + } - #print STDERR "project:'$project_name'\n"; - #print STDERR "title:'$result->{project_title}'\n"; - #use Data::Dumper;print STDERR Dumper($result); + #$result->{'project_title'}=$project->{title} if (defined $project->{title} && $project->{title} ne ''); - for my $name ( keys %{ $config->{mapping}->{events} } ) { - my $val = ''; - if ( ( defined $name ) - && ( defined $config->{mapping}->{events}->{$name} ) - && ( defined $result->{$name} ) ) - { - $val = $config->{mapping}->{events}->{$name}->{ $result->{$name} } - || ''; - $result->{ $name . '_mapped' } = $val if ( $val ne '' ); - } - } + #print STDERR "project:'$project_name'\n"; + #print STDERR "title:'$result->{project_title}'\n"; + #use Data::Dumper;print STDERR Dumper($result); - #for my $name (keys %{$config->{controllers}}){ - # $result->{"controller_$name"}=$config->{controllers}->{$name}; - #} + for my $name ( keys %{ $config->{mapping}->{events} } ) { + my $val = ''; + if ( ( defined $name ) + && ( defined $config->{mapping}->{events}->{$name} ) + && ( defined $result->{$name} ) ) + { + $val = $config->{mapping}->{events}->{$name}->{ $result->{$name} } + || ''; + $result->{ $name . '_mapped' } = $val if ( $val ne '' ); + } + } - $previous_result = $result; + #for my $name (keys %{$config->{controllers}}){ + # $result->{"controller_$name"}=$config->{controllers}->{$name}; + #} - #print "Content-type:text/text\n\n"; - #use Data::Dumper;print STDERR Dumper($result); - $result->{ 'counter_' . $counter } = 1; - $counter++; + $previous_result = $result; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(list|details)/ ) ){ - if ( ( defined $result->{excerpt} ) && ( length($result->{excerpt}) > 250) ){ - $result->{excerpt} = substr($result->{excerpt}, 0, 250).'...'; - } + #print "Content-type:text/text\n\n"; + #use Data::Dumper;print STDERR Dumper($result); + $result->{ 'counter_' . $counter } = 1; + $counter++; - if ( (defined $result->{user_excerpt}) && (length($result->{user_excerpt}) > 250) ){ - $result->{user_excerpt} = substr($result->{user_excerpt}, 0, 250).'...'; - } - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(list|details)/ ) ) + { + if ( ( defined $result->{excerpt} ) && ( length( $result->{excerpt} ) > 250 ) ) { + $result->{excerpt} = substr( $result->{excerpt}, 0, 250 ) . '...'; + } - #build content - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /\.html/ ) ) - { - if ( defined $result->{content} ) { - $result->{content} = - markup::fix_line_ends( $result->{content} ); - $result->{content} = - markup::creole_to_html( $result->{content} ); - $result->{html_content} = $result->{content}; + if ( ( defined $result->{user_excerpt} ) && ( length( $result->{user_excerpt} ) > 250 ) ) { + $result->{user_excerpt} = substr( $result->{user_excerpt}, 0, 250 ) . '...'; + } + } - } - if ( defined $result->{topic} ) { - $result->{topic} = markup::fix_line_ends( $result->{topic} ); - $result->{topic} = markup::creole_to_html( $result->{topic} ); - $result->{html_topic} = $result->{topic}; - } - } + #build content + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /\.html/ ) ) + { + if ( defined $result->{content} ) { + $result->{content} = + markup::fix_line_ends( $result->{content} ); + $result->{content} = + markup::creole_to_html( $result->{content} ); + $result->{html_content} = $result->{content}; - #detect if images are in content or topic field - my $image_in_text = 0; - $image_in_text = 1 - if ( ( defined $result->{content} ) - && ( $result->{content} =~ /{topic} ) - && ( $result->{topic} =~ /{no_image_in_text} = 1 if $image_in_text == 0; + } + if ( defined $result->{topic} ) { + $result->{topic} = markup::fix_line_ends( $result->{topic} ); + $result->{topic} = markup::creole_to_html( $result->{topic} ); + $result->{html_topic} = $result->{topic}; + } + } - if ( - ( defined $params->{template} ) - && ( ( $params->{template} =~ /event_perl\.txt$/ ) - || ( $params->{template} =~ /event_file_export\.txt$/ ) ) + #detect if images are in content or topic field + my $image_in_text = 0; + $image_in_text = 1 + if ( ( defined $result->{content} ) + && ( $result->{content} =~ /{topic} ) + && ( $result->{topic} =~ /{no_image_in_text} = 1 if $image_in_text == 0; - ) - { - for my $key ( keys %$result ) { - $result->{$key} =~ s/\|/\\\|/g if ( defined $result->{$key} ); - } + if ( + ( defined $params->{template} ) + && ( ( $params->{template} =~ /event_perl\.txt$/ ) + || ( $params->{template} =~ /event_file_export\.txt$/ ) ) - # $result->{content}='no'; - } + ) + { + for my $key ( keys %$result ) { + $result->{$key} =~ s/\|/\\\|/g if ( defined $result->{$key} ); + } - } # end for results - add_recurrence_dates( $config, $results ); - return $results; + # $result->{content}='no'; + } + + } # end for results + add_recurrence_dates( $config, $results ); + return $results; } sub add_recurrence_dates { - my $config = shift; - my $results = shift; + my $config = shift; + my $results = shift; - # get unique list of recurrence ids from results - my $recurrence_dates = {}; - for my $result (@$results) { - next unless defined $result->{recurrence}; - next if $result->{recurrence} == 0; - $recurrence_dates->{ $result->{recurrence} } = 0; - } + # get unique list of recurrence ids from results + my $recurrence_dates = {}; + for my $result (@$results) { + next unless defined $result->{recurrence}; + next if $result->{recurrence} == 0; + $recurrence_dates->{ $result->{recurrence} } = 0; + } - my @event_ids = keys %$recurrence_dates; - return if @event_ids == 0; + my @event_ids = keys %$recurrence_dates; + return if @event_ids == 0; - # query start date of recurrences - my $conditions = []; - my $bind_values = []; - for my $id (@event_ids) { - push @$conditions, '?'; - push @$bind_values, $id; - } - $conditions = join( ',', @$conditions ); + # query start date of recurrences + my $conditions = []; + my $bind_values = []; + for my $id (@event_ids) { + push @$conditions, '?'; + push @$bind_values, $id; + } + $conditions = join( ',', @$conditions ); - my $query = qq{ + my $query = qq{ select id event_id, start from calcms_events where id in ($conditions) }; - #print STDERR Dumper($query); - #return; - my $dbh = db::connect($config); - my $events = db::get( $dbh, $query, $bind_values ); + #print STDERR Dumper($query); + #return; + my $dbh = db::connect($config); + my $events = db::get( $dbh, $query, $bind_values ); - # store start dates by recurrence id - for my $event (@$events) { - $recurrence_dates->{ $event->{event_id} } = $event->{start}; - } + # store start dates by recurrence id + for my $event (@$events) { + $recurrence_dates->{ $event->{event_id} } = $event->{start}; + } - # set start dates to results - for my $result (@$results) { - next unless defined $result->{recurrence}; - next if $result->{recurrence} == 0; - $result->{recurrence_date} = - $recurrence_dates->{ $result->{recurrence} }; - } + # set start dates to results + for my $result (@$results) { + next unless defined $result->{recurrence}; + next if $result->{recurrence} == 0; + $result->{recurrence_date} = + $recurrence_dates->{ $result->{recurrence} }; + } - #print STDERR Dumper($recurrence_dates); + #print STDERR Dumper($recurrence_dates); } sub calc_dates { - my $config = shift; - my $result = shift; - my $params = shift || {}; - my $previous_result = shift || {}; - my $time_diff = shift || ''; + my $config = shift; + my $result = shift; + my $params = shift || {}; + my $previous_result = shift || {}; + my $time_diff = shift || ''; - $result->{utc_offset} = $time_diff; - $result->{time_zone} = $config->{date}->{time_zone}; - my $language = $config->{date}->{language} || 'en'; + $result->{utc_offset} = $time_diff; + $result->{time_zone} = $config->{date}->{time_zone}; + my $language = $config->{date}->{language} || 'en'; - $result->{start_datetime} = $result->{start}; - $result->{start_datetime} =~ s/ /T/gi; - if ( $result->{start_datetime} =~ /(\d\d\d\d)\-(\d\d)\-(\d\d)T(\d\d)\:(\d\d)/ ) { - $result->{start_year} = $1; - $result->{start_month} = $2; - $result->{start_day} = $3; - $result->{start_hour} = $4; - $result->{start_minute} = $5; - } + $result->{start_datetime} = $result->{start}; + $result->{start_datetime} =~ s/ /T/gi; + if ( $result->{start_datetime} =~ /(\d\d\d\d)\-(\d\d)\-(\d\d)T(\d\d)\:(\d\d)/ ) { + $result->{start_year} = $1; + $result->{start_month} = $2; + $result->{start_day} = $3; + $result->{start_hour} = $4; + $result->{start_minute} = $5; + } - unless ( defined $result->{day} ) { - my $d = time::datetime_to_array( $result->{start} ); - my $hour = $d->[3]; - if ( ( defined $hour ) && ( $hour < 6 ) ) { - $result->{day} = time::add_days_to_date( $result->{start}, -1 ); - } else { - $result->{day} = time::datetime_to_date( $result->{start} ); - } - } - unless ( defined $result->{start_date} ) { - $result->{start_date} = time::datetime_to_date( $result->{start} ); - } - unless ( defined $result->{end_date} ) { - $result->{end_date} = time::datetime_to_date( $result->{end} ); - } + unless ( defined $result->{day} ) { + my $d = time::datetime_to_array( $result->{start} ); + my $hour = $d->[3]; + if ( ( defined $hour ) && ( $hour < 6 ) ) { + $result->{day} = time::add_days_to_date( $result->{start}, -1 ); + } else { + $result->{day} = time::datetime_to_date( $result->{start} ); + } + } + unless ( defined $result->{start_date} ) { + $result->{start_date} = time::datetime_to_date( $result->{start} ); + } + unless ( defined $result->{end_date} ) { + $result->{end_date} = time::datetime_to_date( $result->{end} ); + } - $result->{dtstart} = $result->{start_datetime}; - $result->{dtstart} =~ s/[\:\-]//gi; + $result->{dtstart} = $result->{start_datetime}; + $result->{dtstart} =~ s/[\:\-]//gi; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.txt|\.json)/ ) ) - { - $result->{start_utc_epoch} = time::datetime_to_utc( $result->{start_datetime}, $config->{date}->{time_zone} ); - } - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $result->{start_datetime_utc} = time::datetime_to_utc_datetime( $result->{start_datetime}, $config->{date}->{time_zone} ); - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.txt|\.json)/ ) ) + { + $result->{start_utc_epoch} = time::datetime_to_utc( $result->{start_datetime}, $config->{date}->{time_zone} ); + } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $result->{start_datetime_utc} = time::datetime_to_utc_datetime( $result->{start_datetime}, $config->{date}->{time_zone} ); + } - $result->{end_datetime} = $result->{end}; - $result->{end_datetime} =~ s/ /T/gi; + $result->{end_datetime} = $result->{end}; + $result->{end_datetime} =~ s/ /T/gi; - $result->{dtend} = $result->{end_datetime}; - $result->{dtend} =~ s/[\:\-]//gi; + $result->{dtend} = $result->{end_datetime}; + $result->{dtend} =~ s/[\:\-]//gi; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.txt|\.json)/ ) ) - { - $result->{end_utc_epoch} = time::datetime_to_utc( $result->{end_datetime}, $config->{date}->{time_zone} ); - } - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $result->{end_datetime_utc} = time::datetime_to_utc_datetime( $result->{end_datetime}, $config->{date}->{time_zone} ); - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.txt|\.json)/ ) ) + { + $result->{end_utc_epoch} = time::datetime_to_utc( $result->{end_datetime}, $config->{date}->{time_zone} ); + } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $result->{end_datetime_utc} = time::datetime_to_utc_datetime( $result->{end_datetime}, $config->{date}->{time_zone} ); + } - if ( ( defined $previous_result ) - && ( defined $previous_result->{start_date} ) - && ( $result->{start_date} ne $previous_result->{start_date} ) ) - { - $result->{is_first_of_day} = 1; - $previous_result->{is_last_of_day} = 1; - } + if ( ( defined $previous_result ) + && ( defined $previous_result->{start_date} ) + && ( $result->{start_date} ne $previous_result->{start_date} ) ) + { + $result->{is_first_of_day} = 1; + $previous_result->{is_last_of_day} = 1; + } - $result->{start_date_name} = - time::date_format( $result->{start_date}, $language ); - $result->{end_date_name} = - time::date_format( $result->{end_date}, $language ); + $result->{start_date_name} = + time::date_format( $result->{start_date}, $language ); + $result->{end_date_name} = + time::date_format( $result->{end_date}, $language ); - if ( $result->{start} =~ /(\d\d\:\d\d)\:\d\d/ ) { - $result->{start_time_name} = $1; - $result->{start_time} = $1; - } + if ( $result->{start} =~ /(\d\d\:\d\d)\:\d\d/ ) { + $result->{start_time_name} = $1; + $result->{start_time} = $1; + } - if ( $result->{end} =~ /(\d\d\:\d\d)\:\d\d/ ) { - $result->{end_time_name} = $1; - $result->{end_time} = $1; - } + if ( $result->{end} =~ /(\d\d\:\d\d)\:\d\d/ ) { + $result->{end_time_name} = $1; + $result->{end_time} = $1; + } - if ( defined $result->{weekday} ) { - my $language = $config::config->{date}->{language} || 'en'; + if ( defined $result->{weekday} ) { + my $language = $config::config->{date}->{language} || 'en'; - #my $weekdays=time::get_weekdays(); - my $weekday_index = $time::weekday_index->{ $result->{weekday} . '' } || 0; - $result->{weekday_name} = - $time::names->{$language}->{weekdays}->[$weekday_index]; - $result->{weekday_short_name} = - $time::names->{$language}->{weekdays_abbr}->[$weekday_index]; - } - return $result; + #my $weekdays=time::get_weekdays(); + my $weekday_index = $time::weekday_index->{ $result->{weekday} . '' } || 0; + $result->{weekday_name} = + $time::names->{$language}->{weekdays}->[$weekday_index]; + $result->{weekday_short_name} = + $time::names->{$language}->{weekdays_abbr}->[$weekday_index]; + } + return $result; } -sub add_recordings{ - my $dbh = shift; - my $config = shift; - my $request = shift; - my $events = shift; +sub add_recordings { + my $dbh = shift; + my $config = shift; + my $request = shift; + my $events = shift; -# print STDERR Dumper($results); + # print STDERR Dumper($results); return $events unless defined $events; my $params = $request->{params}->{checked}; return $events unless defined $params; return $events unless defined $params->{recordings}; - my @ids=(); - my $eventsById={}; + my @ids = (); + my $eventsById = {}; + #my $events = $results; - - for my $event (@$events){ + + for my $event (@$events) { my $eventId = $event->{event_id}; push @ids, $eventId; $eventsById->{$eventId} = $event; } + my $qms = join( ', ', ( map { '?' } @$events ) ); + my $bindValues = join( ', ', ( map { $_->{event_id} } @$events ) ); - my $qms = join( ', ', (map { '?' } @$events)); - my $bindValues = join( ', ', (map { $_->{event_id} } @$events)); - - my $query = qq{ + my $query = qq{ select * from calcms_audio_recordings where event_id in ($qms) order by created_at; }; - $dbh = db::connect($config) unless defined $dbh; - my $recordings = db::get( $dbh, $query, $bindValues ); + $dbh = db::connect($config) unless defined $dbh; + my $recordings = db::get( $dbh, $query, $bindValues ); + #print STDERR Dumper($recordings); - for my $entry (@$recordings){ + for my $entry (@$recordings) { my $eventId = $entry->{event_id}; - my $event = $eventsById->{$eventId}; + my $event = $eventsById->{$eventId}; push @{ $event->{recordings} }, $entry; } - - return $events; + + return $events; } -# if recordings is set in params, recordings date and path will be included -sub get_query { - my $dbh = shift; - my $config = shift; - my $request = shift; +sub getDateRange { + my $config = shift; + $config->{date}->{day_starting_hour}; +} - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; +sub getDateQueryConditions { + my $config = shift; + my $params = shift; + my $bind_values = shift; - $params->{recordings} = '' unless defined $params->{recordings}; + # conditions by date + my $date_conds = []; - my $bind_values = []; - my $where_cond = []; - my $order_cond = ''; - my $limit_cond = ''; + #date, today, tomorrow, yesterday + my $date = ''; + $date = time::date_cond( $params->{date} ) if ( $params->{date} ne '' ); - if ( $params->{event_id} ne '' ) { + my $from_date = ''; + $from_date = time::date_cond( $params->{from_date} ) + if ( $params->{from_date} ne '' ); - # conditions by event id - push @$where_cond, 'e.id=?'; - $bind_values = [ $params->{event_id} ]; + my $till_date = ''; + $till_date = time::date_cond( $params->{till_date} ) + if ( $params->{till_date} ne '' ); - #filter by published, default=1 to see published only, set published='all' to see all - my $published = $params->{published} || '1'; - if ( ( $published eq '0' ) || ( $published eq '1' ) ) { - push @$where_cond, 'published=?'; - push @$bind_values, $published; - } + my $from_time = ''; + $from_time = time::time_cond( $params->{from_time} ) + if ( $params->{from_time} ne '' ); - my $draft = $params->{draft} || '0'; - if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { - push @$where_cond, 'draft=?'; - push @$bind_values, $draft; - } + my $till_time = ''; + $till_time = time::time_cond( $params->{till_time} ) + if ( $params->{till_time} ne '' ); - } else { + my $date_range_include = $params->{date_range_include}; - # conditions by date - my @date_conds = (); + #from_time is defined + if ( ( $params->{from_date} ne '' ) && ( $params->{from_time} ne '' ) ) { + my $datetime = time::datetime_cond( $from_date . 'T' . $from_time ); + if ( $datetime ne '' ) { + if ( $date_range_include eq '1' ) { + push @$date_conds, ' end > ? '; + push @$bind_values, $datetime; + $from_date = ''; + } else { + push @$date_conds, ' start >= ? '; + push @$bind_values, $datetime; + $from_date = ''; + } + } + } - #date, today, tomorrow, yesterday - my $date = ''; - $date = time::date_cond( $params->{date} ) if ( $params->{date} ne '' ); + #till_time is defined + if ( ( $params->{till_date} ne '' ) && ( $params->{till_time} ne '' ) ) { + my $datetime = time::datetime_cond( $till_date . 'T' . $till_time ); + if ( $datetime ne '' ) { + push @$date_conds, ' start < ? '; + push @$bind_values, $datetime; + $till_date = ''; + } + } - my $from_date = ''; - $from_date = time::date_cond( $params->{from_date} ) - if ( $params->{from_date} ne '' ); + #time is defined + if ( ( defined $params->{time} ) + && ( $params->{time} ne '' ) + && ( $params->{time} ne 'now' ) + && ( $params->{time} ne 'future' ) ) + { + my $time = time::time_cond( $params->{time} ); + if ( $time ne '' ) { + push @$date_conds, ' time(start) = ? '; + push @$bind_values, $time; + } + return $date_conds; + } - my $till_date = ''; - $till_date = time::date_cond( $params->{till_date} ) - if ( $params->{till_date} ne '' ); - - my $from_time = ''; - $from_time = time::time_cond( $params->{from_time} ) - if ( $params->{from_time} ne '' ); - - my $till_time = ''; - $till_time = time::time_cond( $params->{till_time} ) - if ( $params->{till_time} ne '' ); - - my $date_range_include = $params->{date_range_include}; - - #from_time is defined - if ( ( $params->{from_date} ne '' ) && ( $params->{from_time} ne '' ) ) { - my $datetime = time::datetime_cond( $from_date . 'T' . $from_time ); - if ( $datetime ne '' ) { - if ( $date_range_include eq '1' ) { - push @date_conds, ' end > ? '; - push @$bind_values, $datetime; - $from_date = ''; - } else { - push @date_conds, ' start >= ? '; - push @$bind_values, $datetime; - $from_date = ''; - } - } - } - - #till_time is defined - if ( ( $params->{till_date} ne '' ) && ( $params->{till_time} ne '' ) ) { - my $datetime = time::datetime_cond( $till_date . 'T' . $till_time ); - if ( $datetime ne '' ) { - push @date_conds, ' start < ? '; - push @$bind_values, $datetime; - $till_date = ''; - } - } - - #time is defined - if ( ( defined $params->{time} ) - && ( $params->{time} ne '' ) - && ( $params->{time} ne 'now' ) - && ( $params->{time} ne 'future' ) ) - { - my $time = time::time_cond( $params->{time} ); - if ( $time ne '' ) { - push @date_conds, ' time(start) = ? '; - push @$bind_values, $time; - } - } - - #event is not over - if ( ( defined $params->{time} ) && ( $params->{time} eq 'now' ) ) { - push @date_conds, qq{ + #event is not over + elsif ( ( defined $params->{time} ) && ( $params->{time} eq 'now' ) ) { + push @$date_conds, qq{ ( ( unix_timestamp(end) > unix_timestamp(now() ) ) and ( unix_timestamp(start) <= unix_timestamp(now() ) ) ) }; - - } elsif ( ( defined $params->{time} ) && ( $params->{time} eq 'future' ) ) { - push @date_conds, qq{ + return $date_conds; + } elsif ( ( defined $params->{time} ) && ( $params->{time} eq 'future' ) ) { + push @$date_conds, qq{ ( ( unix_timestamp(end) > unix_timestamp(now() ) ) and ( unix_timestamp(end) - unix_timestamp(now() ) ) < 7*24*3600 ) }; + return $date_conds; + } elsif ( $date ne '' ) { + if ( $date eq 'today' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( start_date = ? ) '; + push @$bind_values, $date; + } - } elsif ( $date ne '' ) { - if ( $date eq 'today' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @date_conds, ' ( start_date = ? ) '; - push @$bind_values, $date; - } + } else { - } else { - if ( $date ne '' ) { - push @date_conds, ' ( start_date = ? ) '; - push @$bind_values, $date; - } - } - } else { - if ( $from_date ne '' ) { - if ( $date_range_include eq '1' ) { + #push @$date_conds, ' ( start_date = ? ) '; + #push @$bind_values, $date; + my $start = time::datetime_cond( $date . 'T00:00:00' ); + if ( $start ne '' ) { + $start = time::add_hours_to_datetime( $start, $config->{date}->{day_starting_hour} ); + my $end = time::add_hours_to_datetime( $start, 24 ); - # end is after start - push @date_conds, ' ( end_date >= ? )'; - push @$bind_values, $from_date; - } else { - push @date_conds, ' ( start_date >= ? ) '; - push @$bind_values, $from_date; - } - } + if ( $date_range_include eq '1' ) { + push @$date_conds, ' end > ? '; + push @$bind_values, $start; + } else { + push @$date_conds, ' start >= ? '; + push @$bind_values, $start; + } - if ( $till_date ne '' ) { - if ( $date_range_include eq '1' ) { + if ( $end ne '' ) { + push @$date_conds, ' start < ? '; + push @$bind_values, $end; + } + } + } + return $date_conds; + } else { + if ( $from_date ne '' ) { + if ( $date_range_include eq '1' ) { - # start is before end - push @date_conds, ' ( start_date <= ? )'; - push @$bind_values, $till_date; - } else { - push @date_conds, ' ( end_date <= ? ) '; - push @$bind_values, $till_date; - } - } + # end is after start + push @$date_conds, ' ( end_date >= ? )'; + push @$bind_values, $from_date; + } else { + push @$date_conds, ' ( start_date >= ? ) '; + push @$bind_values, $from_date; + } + } - if ( $params->{weekday} ne '' ) { - my $weekday = $params->{weekday}; - $weekday += 1; - $weekday -= 7 if ( $weekday > 7 ); - push @date_conds, ' (dayofweek(start_date)= ?) '; - push @$bind_values, $weekday; - } + if ( $till_date ne '' ) { + if ( $date_range_include eq '1' ) { - if ( $params->{archive} eq 'past' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @date_conds, ' ( start_date < ? ) '; - push @$bind_values, $date; - } + # start is before end + push @$date_conds, ' ( start_date <= ? )'; + push @$bind_values, $till_date; + } else { + push @$date_conds, ' ( end_date <= ? ) '; + push @$bind_values, $till_date; + } + } - } elsif ( $params->{archive} eq 'future' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @date_conds, ' ( start_date >= ? ) '; - push @$bind_values, $date; - } - } + if ( $params->{weekday} ne '' ) { + my $weekday = $params->{weekday}; + $weekday += 1; + $weekday -= 7 if ( $weekday > 7 ); + push @$date_conds, ' (dayofweek(start_date)= ?) '; + push @$bind_values, $weekday; + } - } + if ( $params->{archive} eq 'past' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( start_date < ? ) '; + push @$bind_values, $date; + } - if ( ( defined $params->{time_of_day} ) - && ( $params->{time_of_day} ne '' ) ) - { - push @date_conds, ' ( time_of_day = ? ) '; - push @$bind_values, $params->{time_of_day}; + } elsif ( $params->{archive} eq 'future' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( start_date >= ? ) '; + push @$bind_values, $date; + } + } - } + } - my $date_cond = join " and ", @date_conds; - push @$where_cond, $date_cond if ( $date_cond ne '' ); - } + return $date_conds; - # location - my $location_cond = ''; - if ( $params->{location} ne '' ) { - my $location = ( split( /\,/, $params->{location} ) )[0]; - $location =~ s/[^a-zA-Z0-9]/%/g; - $location =~ s/%{2,99}/%/g; - if ( $location ne '' ) { - $location_cond = ' location like ? '; - push @$bind_values, $location; - } - } +} - # exclude location - my $exclude_location_cond = ''; - if ( $params->{exclude_locations} eq '1' ) { - if ( $params->{locations_to_exclude} ne '' ) { - my @locations_to_exclude = split( /,/, $params->{locations_to_exclude} ); - $exclude_location_cond = 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; - for my $location (@locations_to_exclude) { - $location =~ s/^\s+//g; - $location =~ s/\s+$//g; - push @$bind_values, $location; - } - } - } +# if recordings is set in params, recordings date and path will be included +sub get_query { + my $dbh = shift; + my $config = shift; + my $request = shift; - # exclude project - my $exclude_project_cond = ''; - if ( $params->{exclude_projects} eq '1' ) { - if ( $params->{projects_to_exclude} ne '' ) { - my @projects_to_exclude = split( /,/, $params->{projects_to_exclude} ); - $exclude_project_cond = 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; - for my $project (@projects_to_exclude) { - $project =~ s/^\s+//g; - $project =~ s/\s+$//g; - push @$bind_values, $project; - } - } - } + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - #filter for category - my $category_cond = ''; - if ( $params->{category} ne '' ) { - my $category = ( split( /\,/, $params->{category} ) )[0]; - $category =~ s/[^a-zA-Z0-9]/%/g; - $category =~ s/%{2,99}/%/g; - if ( $category ne '' ) { - $category_cond = qq{ + $params->{recordings} = '' unless defined $params->{recordings}; + + my $bind_values = []; + my $where_cond = []; + my $order_cond = ''; + my $limit_cond = ''; + + if ( $params->{event_id} ne '' ) { + + # conditions by event id + push @$where_cond, 'e.id=?'; + $bind_values = [ $params->{event_id} ]; + + #filter by published, default=1 to see published only, set published='all' to see all + my $published = $params->{published} || '1'; + if ( ( $published eq '0' ) || ( $published eq '1' ) ) { + push @$where_cond, 'published=?'; + push @$bind_values, $published; + } + + my $draft = $params->{draft} || '0'; + if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { + push @$where_cond, 'draft=?'; + push @$bind_values, $draft; + } + + } else { + + my $date_conds = getDateQueryConditions( $config, $params, $bind_values ); + my $date_cond = join " and ", @$date_conds; + + push @$where_cond, $date_cond if ( $date_cond ne '' ); + } + + # location + my $location_cond = ''; + if ( $params->{location} ne '' ) { + my $location = ( split( /\,/, $params->{location} ) )[0]; + $location =~ s/[^a-zA-Z0-9]/%/g; + $location =~ s/%{2,99}/%/g; + if ( $location ne '' ) { + $location_cond = ' location like ? '; + push @$bind_values, $location; + } + } + + # exclude location + my $exclude_location_cond = ''; + if ( $params->{exclude_locations} eq '1' ) { + if ( $params->{locations_to_exclude} ne '' ) { + my @locations_to_exclude = split( /,/, $params->{locations_to_exclude} ); + $exclude_location_cond = 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; + for my $location (@locations_to_exclude) { + $location =~ s/^\s+//g; + $location =~ s/\s+$//g; + push @$bind_values, $location; + } + } + } + + # exclude project + my $exclude_project_cond = ''; + if ( $params->{exclude_projects} eq '1' ) { + if ( $params->{projects_to_exclude} ne '' ) { + my @projects_to_exclude = split( /,/, $params->{projects_to_exclude} ); + $exclude_project_cond = 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; + for my $project (@projects_to_exclude) { + $project =~ s/^\s+//g; + $project =~ s/\s+$//g; + push @$bind_values, $project; + } + } + } + + #filter for category + my $category_cond = ''; + if ( $params->{category} ne '' ) { + my $category = ( split( /\,/, $params->{category} ) )[0]; + $category =~ s/[^a-zA-Z0-9]/%/g; + $category =~ s/%{2,99}/%/g; + if ( $category ne '' ) { + $category_cond = qq{ id in( select event_id from calcms_categories where name like ? ) }; - } - push @$bind_values, $category; - } + } + push @$bind_values, $category; + } - my $series_name_cond = ''; - if ( ( defined $params->{series_name} ) - && ( $params->{series_name} ne '' ) ) - { - my $series_name = ( split( /\,/, $params->{series_name} ) )[0]; - $series_name =~ s/[^a-zA-Z0-9]/%/g; - $series_name =~ s/%{2,99}/%/g; - if ( $series_name ne '' ) { - $series_name_cond = ' series_name like ? '; - push @$bind_values, $series_name; - } - } + my $series_name_cond = ''; + if ( ( defined $params->{series_name} ) + && ( $params->{series_name} ne '' ) ) + { + my $series_name = ( split( /\,/, $params->{series_name} ) )[0]; + $series_name =~ s/[^a-zA-Z0-9]/%/g; + $series_name =~ s/%{2,99}/%/g; + if ( $series_name ne '' ) { + $series_name_cond = ' series_name like ? '; + push @$bind_values, $series_name; + } + } - #filter for tags - my $tag_cond = ''; - if ( ( defined $params->{tag} ) && ( $params->{tag} ne '' ) ) { - my @tags = ( split( /\,/, $params->{tag} ) ); - if ( scalar @tags > 0 ) { - my $tags = join ",", ( map { '?' } @tags ); - for my $tag (@tags) { - push @$bind_values, $tag; - } - $tag_cond = qq{ + #filter for tags + my $tag_cond = ''; + if ( ( defined $params->{tag} ) && ( $params->{tag} ne '' ) ) { + my @tags = ( split( /\,/, $params->{tag} ) ); + if ( scalar @tags > 0 ) { + my $tags = join ",", ( map { '?' } @tags ); + for my $tag (@tags) { + push @$bind_values, $tag; + } + $tag_cond = qq{ id in( select event_id from calcms_tags where name in($tags) ) }; - } - } - $tag_cond = ''; + } + } + $tag_cond = ''; - my $title_cond = ''; - if ( ( defined $params->{title} ) && ( $params->{title} ne '' ) ) { - my $title = ( split( /\,/, $params->{title} ) )[0]; - $title =~ s/[^a-zA-Z0-9]/%/g; - $title =~ s/%{2,99}/%/g; - $title =~ s/^\%//; - $title =~ s/\%$//; - $title = '%' . $title . '%'; - if ( $title ne '' ) { - $title_cond = ' title like ? '; - push @$bind_values, $title; - } - } + my $title_cond = ''; + if ( ( defined $params->{title} ) && ( $params->{title} ne '' ) ) { + my $title = ( split( /\,/, $params->{title} ) )[0]; + $title =~ s/[^a-zA-Z0-9]/%/g; + $title =~ s/%{2,99}/%/g; + $title =~ s/^\%//; + $title =~ s/\%$//; + $title = '%' . $title . '%'; + if ( $title ne '' ) { + $title_cond = ' title like ? '; + push @$bind_values, $title; + } + } - my $search_cond = ''; - if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { - my $search = lc $params->{search}; + my $search_cond = ''; + if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { + my $search = lc $params->{search}; $search =~ s/(?=[\\%_])/\\/g; - $search =~ s/^[\%\s]+//; - $search =~ s/[\%\s]+$//; - if ( $search ne '' ) { - $search = '%' . $search . '%'; - my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content', 'topic' ); - $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; - for my $attr (@attr) { - push @$bind_values, $search; - } - } - } + $search =~ s/^[\%\s]+//; + $search =~ s/[\%\s]+$//; + if ( $search ne '' ) { + $search = '%' . $search . '%'; + my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content', 'topic' ); + $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + for my $attr (@attr) { + push @$bind_values, $search; + } + } + } + #print STDERR $search_cond."\n"; - my $project_cond = ''; + my $project_cond = ''; - # if ($filter_by_project eq'1'){ - my $project = undef; #$params->{default_project}; - $project = $params->{project} - if ( ( defined $params->{project} ) && ( $params->{project} ne '' ) ); - my $project_name = ''; - $project_name = $project->{name} - if ( ( defined $project ) - && ( defined $project->{name} ) - && ( $project->{name} ne '' ) ); - if ( ( $project_name ne '' ) && ( $project_name ne 'all' ) ) { - $project_cond = '(project=?)'; - push @$bind_values, $project_name; - } + # if ($filter_by_project eq'1'){ + my $project = undef; #$params->{default_project}; + $project = $params->{project} + if ( ( defined $params->{project} ) && ( $params->{project} ne '' ) ); + my $project_name = ''; + $project_name = $project->{name} + if ( ( defined $project ) + && ( defined $project->{name} ) + && ( $project->{name} ne '' ) ); + if ( ( $project_name ne '' ) && ( $project_name ne 'all' ) ) { + $project_cond = '(project=?)'; + push @$bind_values, $project_name; + } - # } + # } - #filter by published, default =1, set to 'all' to see all - my $published_cond = ''; - my $published = $params->{published} || '1'; - if ( ( $published eq '0' ) || ( $published eq '1' ) ) { - $published_cond = 'published=?'; - push @$bind_values, $published; - } + #filter by published, default =1, set to 'all' to see all + my $published_cond = ''; + my $published = $params->{published} || '1'; + if ( ( $published eq '0' ) || ( $published eq '1' ) ) { + $published_cond = 'published=?'; + push @$bind_values, $published; + } - #filter by draft, default =1, set to 'all' to see all - my $draft_cond = ''; - my $draft = $params->{draft} || '0'; - if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { - $draft_cond = 'draft=?'; - push @$bind_values, $draft; - } + #filter by draft, default =1, set to 'all' to see all + my $draft_cond = ''; + my $draft = $params->{draft} || '0'; + if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { + $draft_cond = 'draft=?'; + push @$bind_values, $draft; + } - my $disable_event_sync_cond = ''; - my $disable_event_sync = $params->{disable_event_sync} || ''; - if ( ( $disable_event_sync eq '0' ) || ( $disable_event_sync eq '1' ) ) { - $disable_event_sync_cond = 'disable_event_sync=?'; - push @$bind_values, $disable_event_sync; - } + my $disable_event_sync_cond = ''; + my $disable_event_sync = $params->{disable_event_sync} || ''; + if ( ( $disable_event_sync eq '0' ) || ( $disable_event_sync eq '1' ) ) { + $disable_event_sync_cond = 'disable_event_sync=?'; + push @$bind_values, $disable_event_sync; + } - #print STDERR $disable_event_sync_cond." ".$bind_values->[-1]."\n"; + #print STDERR $disable_event_sync_cond." ".$bind_values->[-1]."\n"; - #combine date, location, category, series_name, tag, search and project + #combine date, location, category, series_name, tag, search and project - push @$where_cond, $location_cond if ( $location_cond =~ /\S/ ); - push @$where_cond, $exclude_location_cond - if ( $exclude_location_cond =~ /\S/ ); - push @$where_cond, $exclude_project_cond - if ( $exclude_project_cond =~ /\S/ ); - push @$where_cond, $category_cond if ( $category_cond =~ /\S/ ); - push @$where_cond, $series_name_cond if ( $series_name_cond =~ /\S/ ); - push @$where_cond, $tag_cond if ( $tag_cond =~ /\S/ ); - push @$where_cond, $title_cond if ( $title_cond =~ /\S/ ); - push @$where_cond, $search_cond if ( $search_cond =~ /\S/ ); - push @$where_cond, $project_cond if ( $project_cond =~ /\S/ ); - push @$where_cond, $published_cond if ( $published_cond =~ /\S/ ); - push @$where_cond, $draft_cond if ( $draft_cond =~ /\S/ ); - push @$where_cond, $disable_event_sync_cond - if ( $disable_event_sync_cond ne '' ); + push @$where_cond, $location_cond if ( $location_cond =~ /\S/ ); + push @$where_cond, $exclude_location_cond + if ( $exclude_location_cond =~ /\S/ ); + push @$where_cond, $exclude_project_cond + if ( $exclude_project_cond =~ /\S/ ); + push @$where_cond, $category_cond if ( $category_cond =~ /\S/ ); + push @$where_cond, $series_name_cond if ( $series_name_cond =~ /\S/ ); + push @$where_cond, $tag_cond if ( $tag_cond =~ /\S/ ); + push @$where_cond, $title_cond if ( $title_cond =~ /\S/ ); + push @$where_cond, $search_cond if ( $search_cond =~ /\S/ ); + push @$where_cond, $project_cond if ( $project_cond =~ /\S/ ); + push @$where_cond, $published_cond if ( $published_cond =~ /\S/ ); + push @$where_cond, $draft_cond if ( $draft_cond =~ /\S/ ); + push @$where_cond, $disable_event_sync_cond + if ( $disable_event_sync_cond ne '' ); - #print STDERR Dumper($where_cond); + #print STDERR Dumper($where_cond); - #order is forced - if ( $params->{order} eq 'asc' ) { - $order_cond = 'order by start'; - } elsif ( $params->{order} eq 'desc' ) { - $order_cond = 'order by start desc'; - } else { + #order is forced + if ( $params->{order} eq 'asc' ) { + $order_cond = 'order by start'; + } elsif ( $params->{order} eq 'desc' ) { + $order_cond = 'order by start desc'; + } else { - #derivate order from archive flag - if ( $params->{archive} eq 'past' ) { - $order_cond = 'order by start desc'; - } else { - $order_cond = 'order by start'; - } - } + #derivate order from archive flag + if ( $params->{archive} eq 'past' ) { + $order_cond = 'order by start desc'; + } else { + $order_cond = 'order by start'; + } + } - if ( ( defined $params->{limit} ne '' ) && ( $params->{limit} ne '' ) ) { - $limit_cond = 'limit ' . $params->{limit}; - } + if ( ( defined $params->{limit} ne '' ) && ( $params->{limit} ne '' ) ) { + $limit_cond = 'limit ' . $params->{limit}; + } - my $query = qq{ + my $query = qq{ select date(e.start) start_date ,date(e.end) end_date @@ -1050,179 +1080,183 @@ sub get_query { ,e.disable_event_sync ,e.episode }; - my $template = $params->{template} || ''; + my $template = $params->{template} || ''; - $query .= ',e.excerpt' unless ( $template =~ /menu/ ); + $query .= ',e.excerpt' unless ( $template =~ /menu/ ); - # $query.=',e.project' unless ($template=~/menu/ || $template=~/list/); + # $query.=',e.project' unless ($template=~/menu/ || $template=~/list/); - my $get = $params->{get} || ''; - unless ( $get eq 'no_content' ) { - if ( $template =~ /\.html/ ) { - unless ( $template =~ /menu/ || $template =~ /list/ ) { - $query .= ', e.content, e.topic, e.html_content, e.html_topic'; + my $get = $params->{get} || ''; + unless ( $get eq 'no_content' ) { + if ( $template =~ /\.html/ ) { + unless ( $template =~ /menu/ || $template =~ /list/ ) { + $query .= ', e.content, e.topic, e.html_content, e.html_topic'; - #$query.=',html_content content, html_topic topic' ; - } - } else { - unless ( $template =~ /menu/ || $template =~ /list/ ) { - $query .= ', e.content, e.topic, e.html_content, e.html_topic'; - } - } - } + #$query.=',html_content content, html_topic topic' ; + } + } else { + unless ( $template =~ /menu/ || $template =~ /list/ ) { + $query .= ', e.content, e.topic, e.html_content, e.html_topic'; + } + } + } - # add project id and series id - if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { - if ( $params->{project_id} ne '' ) { - push @$where_cond, 'se.project_id=?'; - push @$bind_values, $params->{project_id}; - $query .= ', se.project_id'; - } - if ( $params->{studio_id} ne '' ) { - push @$where_cond, 'se.studio_id=?'; - push @$bind_values, $params->{studio_id}; - $query .= ', se.studio_id'; - } - #push @$where_cond, 'se.event_id=e.id'; - } + # add project id and series id + if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { + if ( $params->{project_id} ne '' ) { + push @$where_cond, 'se.project_id=?'; + push @$bind_values, $params->{project_id}; + $query .= ', se.project_id'; + } + if ( $params->{studio_id} ne '' ) { + push @$where_cond, 'se.studio_id=?'; + push @$bind_values, $params->{studio_id}; + $query .= ', se.studio_id'; + } - # add recordings field and conditions - if ($params->{recordings} eq '1' ) { - $query .= ', ar.path'; - $query .= ', ar.size'; - $query .= ', ar.created_by uploaded_by'; - $query .= ', ar.modified_at uploaded_at'; - #push @$where_cond, 'e.id=ar.event_id'; - } - - $query .= "\n from"; - - # add tables - if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { - # prepent series_events - $query .= "\n calcms_series_events se inner join calcms_events e on se.event_id=e.id"; - }else{ - $query .= "\n calcms_events e"; - } + #push @$where_cond, 'se.event_id=e.id'; + } - # add recordings table - if ( $params->{recordings} eq '1' ) { - $query .= "\n left join calcms_audio_recordings ar on e.id=ar.event_id"; - } + # add recordings field and conditions + if ( $params->{recordings} eq '1' ) { + $query .= ', ar.path'; + $query .= ', ar.size'; + $query .= ', ar.created_by uploaded_by'; + $query .= ', ar.modified_at uploaded_at'; - if ( scalar @$where_cond > 0 ) { - $query .= "\nwhere " . join( ' and ', @$where_cond ); - } + #push @$where_cond, 'e.id=ar.event_id'; + } - $query .= "\n" . $order_cond if ( $order_cond ne '' ); - $query .= "\n" . $limit_cond if ( $limit_cond ne '' ); + $query .= "\n from"; - #print STDERR Dumper($query).Dumper($bind_values)."\n"; + # add tables + if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { - return ( \$query, $bind_values ); + # prepent series_events + $query .= "\n calcms_series_events se inner join calcms_events e on se.event_id=e.id"; + } else { + $query .= "\n calcms_events e"; + } + + # add recordings table + if ( $params->{recordings} eq '1' ) { + $query .= "\n left join calcms_audio_recordings ar on e.id=ar.event_id"; + } + + if ( scalar @$where_cond > 0 ) { + $query .= "\nwhere " . join( ' and ', @$where_cond ); + } + + $query .= "\n" . $order_cond if ( $order_cond ne '' ); + $query .= "\n" . $limit_cond if ( $limit_cond ne '' ); + + #print STDERR Dumper($query).Dumper($bind_values)."\n"; + + return ( \$query, $bind_values ); } sub render { - # my $response = $_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $results = $_[3]; - my $root_params = $_[4]; + # my $response = $_[0]; + my $config = $_[1]; + my $request = $_[2]; + my $results = $_[3]; + my $root_params = $_[4]; - my $params = $request->{params}->{checked}; - if ( ref($root_params) eq 'HASH' ) { - for my $param ( keys %$root_params ) { - $params->{$param} = $root_params->{$param}; - } - } - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + if ( ref($root_params) eq 'HASH' ) { + for my $param ( keys %$root_params ) { + $params->{$param} = $root_params->{$param}; + } + } + my $debug = $config->{system}->{debug}; - my %template_parameters = %$params; - my $template_parameters = \%template_parameters; - $template_parameters->{events} = $results; - $template_parameters->{debug} = $debug; - $template_parameters->{server_cache} = $config->{cache}->{server_cache} - if ( $config->{cache}->{server_cache} ); - $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} - if ( $config->{cache}->{use_client_cache} ); + my %template_parameters = %$params; + my $template_parameters = \%template_parameters; + $template_parameters->{events} = $results; + $template_parameters->{debug} = $debug; + $template_parameters->{server_cache} = $config->{cache}->{server_cache} + if ( $config->{cache}->{server_cache} ); + $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} + if ( $config->{cache}->{use_client_cache} ); - if ( scalar @$results > 0 ) { - my $result = $results->[0]; - $template_parameters->{event_id} = $result->{event_id}; - $template_parameters->{event_dtstart} = $result->{dtstart}; - } + if ( scalar @$results > 0 ) { + my $result = $results->[0]; + $template_parameters->{event_id} = $result->{event_id}; + $template_parameters->{event_dtstart} = $result->{dtstart}; + } - # $template_parameters->{print} =1 if ($params->{print} eq '1'); - $template_parameters->{base_url} = $config->{locations}->{base_url}; - $template_parameters->{base_domain} = $config->{locations}->{base_domain}; - $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; - $template_parameters->{modified_at} = time::time_to_datetime( time() ); - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $template_parameters->{modified_at_datetime_utc} = - time::datetime_to_utc_datetime( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); - } + # $template_parameters->{print} =1 if ($params->{print} eq '1'); + $template_parameters->{base_url} = $config->{locations}->{base_url}; + $template_parameters->{base_domain} = $config->{locations}->{base_domain}; + $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; + $template_parameters->{modified_at} = time::time_to_datetime( time() ); + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $template_parameters->{modified_at_datetime_utc} = + time::datetime_to_utc_datetime( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); + } - #$template_parameters->{tags} = $tags; + #$template_parameters->{tags} = $tags; - if ( @$results == 0 ) { - if ( ( $params->{search} ne '' ) - || ( $params->{category} ne '' ) - || ( $params->{series_name} ne '' ) ) - { - $template_parameters->{no_search_result} = '1'; - } else { - $template_parameters->{no_result} = '1'; - } - } else { - if ( ( !defined $params->{event_id} ) || ( $params->{event_id} eq '' ) ) { - $template_parameters->{event_count} = @$results . ''; - $template_parameters->{first_of_list} = $results->[0]->{event_id}; - } - my $start = $results->[0]->{start_datetime} || ''; - if ( $start =~ /(\d{4}\-\d{2})/ ) { - $template_parameters->{month} = $1; - } - } + if ( @$results == 0 ) { + if ( ( $params->{search} ne '' ) + || ( $params->{category} ne '' ) + || ( $params->{series_name} ne '' ) ) + { + $template_parameters->{no_search_result} = '1'; + } else { + $template_parameters->{no_result} = '1'; + } + } else { + if ( ( !defined $params->{event_id} ) || ( $params->{event_id} eq '' ) ) { + $template_parameters->{event_count} = @$results . ''; + $template_parameters->{first_of_list} = $results->[0]->{event_id}; + } + my $start = $results->[0]->{start_datetime} || ''; + if ( $start =~ /(\d{4}\-\d{2})/ ) { + $template_parameters->{month} = $1; + } + } - my $time_diff = time::utc_offset( $config->{date}->{time_zone} ); - $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; - $template_parameters->{time_zone} = $config->{date}->{time_zone}; - $template_parameters->{utc_offset} = $time_diff; + my $time_diff = time::utc_offset( $config->{date}->{time_zone} ); + $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; + $template_parameters->{time_zone} = $config->{date}->{time_zone}; + $template_parameters->{utc_offset} = $time_diff; - if ( $params->{template} =~ /\.atom\.xml/ ) { - $template_parameters->{modified_at} =~ s/ /T/gi; - $template_parameters->{modified_at} .= $time_diff; - } elsif ( $params->{template} =~ /\.rss\.xml/ ) { - $template_parameters->{modified_at} = - time::datetime_to_rfc822( $template_parameters->{modified_at} ); - } elsif ( $params->{template} =~ /\.txt/ ) { - $template_parameters->{modified_at_utc} = - time::datetime_to_utc( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); - } + if ( $params->{template} =~ /\.atom\.xml/ ) { + $template_parameters->{modified_at} =~ s/ /T/gi; + $template_parameters->{modified_at} .= $time_diff; + } elsif ( $params->{template} =~ /\.rss\.xml/ ) { + $template_parameters->{modified_at} = + time::datetime_to_rfc822( $template_parameters->{modified_at} ); + } elsif ( $params->{template} =~ /\.txt/ ) { + $template_parameters->{modified_at_utc} = + time::datetime_to_utc( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); + } - my $project = $params->{default_project}; - foreach my $key ( keys %$project ) { - $template_parameters->{ 'project_' . $key } = $project->{$key}; - } - $template_parameters->{ 'project_' . $project->{name} } = 1 - if ( $project->{name} ne '' ); + my $project = $params->{default_project}; + foreach my $key ( keys %$project ) { + $template_parameters->{ 'project_' . $key } = $project->{$key}; + } + $template_parameters->{ 'project_' . $project->{name} } = 1 + if ( $project->{name} ne '' ); - $template_parameters->{controllers} = $config->{controllers}; - $template_parameters->{hide_event_images}=1 if (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} == 1); + $template_parameters->{controllers} = $config->{controllers}; + $template_parameters->{hide_event_images} = 1 + if ( defined $config->{permissions}->{hide_event_images} ) && ( $config->{permissions}->{hide_event_images} == 1 ); - # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; + # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; template::process( $_[0], $params->{template}, $template_parameters ); - return $_[0]; + return $_[0]; } sub get_running_event_id { - my $dbh = shift; + my $dbh = shift; - my $query = qq{ + my $query = qq{ select id event_id, start, title from calcms_events where @@ -1238,108 +1272,106 @@ sub get_running_event_id { limit 1 }; - my $running_events = db::get( $dbh, $query ); - my @running_events = @$running_events; + my $running_events = db::get( $dbh, $query ); + my @running_events = @$running_events; - return $running_events->[0]->{event_id} if ( scalar @running_events > 0 ); - return 0; + return $running_events->[0]->{event_id} if ( scalar @running_events > 0 ); + return 0; } # add filters to query sub setDefaultEventConditions { - my $config = shift; - my $conditions = $_[0]; - my $bind_values = $_[1]; + my $config = shift; + my $conditions = $_[0]; + my $bind_values = $_[1]; my $options = $_[2]; - $options={} unless defined $options; + $options = {} unless defined $options; - # exclude projects - if ( - ( defined $options->{exclude_projects} ) + # exclude projects + if ( ( defined $options->{exclude_projects} ) && ( $options->{exclude_projects} == 1 ) && ( defined $config->{filter} ) - && ( defined $config->{filter}->{projects_to_exclude} ) ) - { - my @projects_to_exclude = - split( /,/, $config->{filter}->{projects_to_exclude} ); - push @$conditions, 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; - for my $project (@projects_to_exclude) { - push @$bind_values, $project; - } - } + && ( defined $config->{filter}->{projects_to_exclude} ) ) + { + my @projects_to_exclude = + split( /,/, $config->{filter}->{projects_to_exclude} ); + push @$conditions, 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; + for my $project (@projects_to_exclude) { + push @$bind_values, $project; + } + } - # exclude locations - if ( - ( defined $options->{exclude_locations} ) + # exclude locations + if ( ( defined $options->{exclude_locations} ) && ( $options->{exclude_locations} == 1 ) - && ( defined $config->{filter} ) - && ( defined $config->{filter}->{locations_to_exclude} ) ) - { - my @locations_to_exclude = - split( /,/, $config->{filter}->{locations_to_exclude} ); - push @$conditions, 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; - for my $location (@locations_to_exclude) { - push @$bind_values, $location; - } - } + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) + { + my @locations_to_exclude = + split( /,/, $config->{filter}->{locations_to_exclude} ); + push @$conditions, 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; + for my $location (@locations_to_exclude) { + push @$bind_values, $location; + } + } } # for local use only or add support for exclude_projects and exclude_locations sub getEventById { - my $dbh = shift; - my $config = shift; - my $event_id = shift; + my $dbh = shift; + my $config = shift; + my $event_id = shift; my $options = shift; - $dbh = db::connect($config) unless defined $dbh; + $dbh = db::connect($config) unless defined $dbh; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "id=?"; - push @$bind_values, $event_id; + push @$conditions, "id=?"; + push @$bind_values, $event_id; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select * from calcms_events where $conditions }; - my $events = db::get( $dbh, $query, $bind_values ); - return $events; + my $events = db::get( $dbh, $query, $bind_values ); + return $events; } sub get_next_event_of_series { - my $dbh = shift; - my $config = shift; + my $dbh = shift; + my $config = shift; my $options = shift; my $eventId = $options->{event_id}; return undef unless defined $eventId; - $dbh = db::connect($config) unless defined $dbh; + $dbh = db::connect($config) unless defined $dbh; - my $events = getEventById( $dbh, $config, $eventId, $options ); - return undef unless scalar(@$events) == 1; - my $event = $events->[0]; + my $events = getEventById( $dbh, $config, $eventId, $options ); + return undef unless scalar(@$events) == 1; + my $event = $events->[0]; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "start>?"; - push @$bind_values, $event->{start}; + push @$conditions, "start>?"; + push @$bind_values, $event->{start}; - push @$conditions, "series_name=?"; - push @$bind_values, $event->{series_name}; + push @$conditions, "series_name=?"; + push @$bind_values, $event->{series_name}; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select id from calcms_events where $conditions @@ -1347,495 +1379,497 @@ sub get_next_event_of_series { limit 1 }; - $events = db::get( $dbh, $query, $bind_values ); - return undef unless @$events == 1; + $events = db::get( $dbh, $query, $bind_values ); + return undef unless @$events == 1; - return $events->[0]->{id}; + return $events->[0]->{id}; } sub get_previous_event_of_series { - my $dbh = shift; - my $config = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $options = shift; my $eventId = $options->{event_id}; return undef unless defined $eventId; - $dbh = db::connect($config) unless defined $dbh; - my $events = getEventById( $dbh, $config, $eventId, $options ); - return undef unless scalar(@$events) == 1; - my $event = $events->[0]; + $dbh = db::connect($config) unless defined $dbh; + my $events = getEventById( $dbh, $config, $eventId, $options ); + return undef unless scalar(@$events) == 1; + my $event = $events->[0]; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "start{start}; + push @$conditions, "start{start}; - push @$conditions, "series_name=?"; - push @$bind_values, $event->{series_name}; + push @$conditions, "series_name=?"; + push @$bind_values, $event->{series_name}; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select id from calcms_events where $conditions order by start desc limit 1 }; - $events = db::get( $dbh, $query, $bind_values ); + $events = db::get( $dbh, $query, $bind_values ); - return undef unless scalar(@$events) == 1; - return $events->[0]->{id}; + return undef unless scalar(@$events) == 1; + return $events->[0]->{id}; } +# used by calendar sub get_by_date_range { - my $dbh = shift; - my $config = shift; - my $start_date = shift; - my $end_date = shift; + my $dbh = shift; + my $config = shift; + my $start_date = shift; + my $end_date = shift; my $options = shift; - my $conditions = []; - push @$conditions, 'start_date between ? and ?'; - my $bind_values = [ $start_date, $end_date ]; + my $conditions = []; + push @$conditions, 'start_date between ? and ?'; + my $bind_values = [ $start_date, $end_date ]; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select start_date from calcms_events where $conditions group by start_date }; - my $events = db::get( $dbh, $query, $bind_values ); + my $events = db::get( $dbh, $query, $bind_values ); - return $events; + return $events; } sub get_by_image { - my $dbh = shift; - my $config = shift; - my $filename = shift; + my $dbh = shift; + my $config = shift; + my $filename = shift; - #$filename=$dbh->quote('%'.$filename.'%'); + #$filename=$dbh->quote('%'.$filename.'%'); - #$filename='%'.$filename.'%'; - my $query = qq{ + #$filename='%'.$filename.'%'; + my $query = qq{ select * from calcms_events where content like ? order by start desc limit 1 }; - my $bind_values = [ '%' . $filename . '%' ]; + my $bind_values = [ '%' . $filename . '%' ]; - my $events = db::get( $dbh, $query, $bind_values ); + my $events = db::get( $dbh, $query, $bind_values ); - # print STDERR Dumper($events); - return undef if ( @$events == 0 ); - return $events->[0]; + # print STDERR Dumper($events); + return undef if ( @$events == 0 ); + return $events->[0]; } sub delete { - return; - my $request = shift; - my $config = shift; - my $event_id = shift; + return; + my $request = shift; + my $config = shift; + my $event_id = shift; - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = 'delete from calcms_events where id=?'; - db::put( $dbh, $query, [$event_id] ); + my $query = 'delete from calcms_events where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_categories where id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_categories where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_tags where id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_tags where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_series_events where event_id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_series_events where event_id=?'; + db::put( $dbh, $query, [$event_id] ); } #TODO: add location to cache map sub configure_cache { - my $config = shift; - my $debug = $config->{system}->{debug}; + my $config = shift; + my $debug = $config->{system}->{debug}; - my $date_pattern = $cache::date_pattern; - my $controllers = $config->{controllers}; + my $date_pattern = $cache::date_pattern; + my $controllers = $config->{controllers}; - cache::init(); - cache::add_map( '', 'index.html' ); + cache::init(); + cache::add_map( '', 'index.html' ); - my $name = ''; - my $extension = ''; - my $templates = $config->{templates}->{events}; + my $name = ''; + my $extension = ''; + my $templates = $config->{templates}->{events}; - for my $template (@$templates) { - if ( $template =~ /^(.+)\.([^\.]+)$/ ) { - $name = $1; - $extension = $2; - } - cache::add_map( 'template=' . $template, $controllers->{events} . '/' . $name . '.' . $extension ); - cache::add_map( 'template=' . $template . '&date=today', $controllers->{events} . '/' . $template . '_today.' . $extension ); - cache::add_map( 'template=' . $template . '&date=' . $date_pattern, - $controllers->{events} . '/' . $name . '_date_$1-$2-$3.' . $extension ); - cache::add_map( 'template=' . $template . '&time=now', $controllers->{events} . '/' . $template . '_now.html' ); - cache::add_map( 'template=' . $template . '&time=now&limit=(\d+)', - $controllers->{events} . '/' . $name . '_now_limit_$1.' . $extension ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern, - $controllers->{events} . '/' . $name . '_from_$1-$2-$3_till_$4_$5_$6.' . $extension - ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&weekday=(\d)', - $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_weekday_$7.' . $extension - ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&limit=(\d)', - $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_limit_$7.' . $extension - ); - cache::add_map( 'template=' . $template . '&weekday=(\d)', $controllers->{events} . '/' . $name . '_weekday_$1.' . $extension ); - cache::add_map( 'template=' . $template . '&event_id=(\d+)', $controllers->{event} . '/' . $name . '_page_$1.' . $extension ); - } + for my $template (@$templates) { + if ( $template =~ /^(.+)\.([^\.]+)$/ ) { + $name = $1; + $extension = $2; + } + cache::add_map( 'template=' . $template, $controllers->{events} . '/' . $name . '.' . $extension ); + cache::add_map( 'template=' . $template . '&date=today', $controllers->{events} . '/' . $template . '_today.' . $extension ); + cache::add_map( 'template=' . $template . '&date=' . $date_pattern, + $controllers->{events} . '/' . $name . '_date_$1-$2-$3.' . $extension ); + cache::add_map( 'template=' . $template . '&time=now', $controllers->{events} . '/' . $template . '_now.html' ); + cache::add_map( 'template=' . $template . '&time=now&limit=(\d+)', + $controllers->{events} . '/' . $name . '_now_limit_$1.' . $extension ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern, + $controllers->{events} . '/' . $name . '_from_$1-$2-$3_till_$4_$5_$6.' . $extension + ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&weekday=(\d)', + $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_weekday_$7.' . $extension + ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&limit=(\d)', + $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_limit_$7.' . $extension + ); + cache::add_map( 'template=' . $template . '&weekday=(\d)', $controllers->{events} . '/' . $name . '_weekday_$1.' . $extension ); + cache::add_map( 'template=' . $template . '&event_id=(\d+)', $controllers->{event} . '/' . $name . '_page_$1.' . $extension ); + } } sub get_duration { - my $config = shift; - my $event = shift; - my $timezone = $config->{date}->{time_zone}; - my $start = time::get_datetime( $event->{start}, $timezone ); - my $end = time::get_datetime( $event->{end}, $timezone ); - #my $seconds = $end->subtract($start)->in_units("minutes"); - #return $seconds; - return undef unless defined $start; - return undef unless defined $end; - my $duration = $end->epoch() - $start->epoch(); - #print STDERR "duration=$duration, end=".$end->datetime()." start=".$start->datetime()."\n"; - return $duration / 60; + my $config = shift; + my $event = shift; + my $timezone = $config->{date}->{time_zone}; + my $start = time::get_datetime( $event->{start}, $timezone ); + my $end = time::get_datetime( $event->{end}, $timezone ); + + #my $seconds = $end->subtract($start)->in_units("minutes"); + #return $seconds; + return undef unless defined $start; + return undef unless defined $end; + my $duration = $end->epoch() - $start->epoch(); + + #print STDERR "duration=$duration, end=".$end->datetime()." start=".$start->datetime()."\n"; + return $duration / 60; } sub check_params { - my $config = shift; - my $params = shift; + my $config = shift; + my $params = shift; - #define running at - my $running_at = $params->{running_at} || ''; - if ( ( defined $running_at ) && ( $running_at ne '' ) ) { - my $run_date = time::check_date($running_at); - my $run_time = time::check_time($running_at); - if ( ( $run_date ne '' ) && ( $run_time ne '' ) ) { - $params->{till_date} = $run_date; - $params->{till_time} = $run_time; - $params->{order} = 'asc'; - $params->{limit} = 1; - $params->{archive} = 'all'; - } - } + #define running at + my $running_at = $params->{running_at} || ''; + if ( ( defined $running_at ) && ( $running_at ne '' ) ) { + my $run_date = time::check_date($running_at); + my $run_time = time::check_time($running_at); + if ( ( $run_date ne '' ) && ( $run_time ne '' ) ) { + $params->{till_date} = $run_date; + $params->{till_time} = $run_time; + $params->{order} = 'asc'; + $params->{limit} = 1; + $params->{archive} = 'all'; + } + } - #set time - my $time = time::check_time( $params->{time} ); - my $from_time = time::check_time( $params->{from_time} ); - my $till_time = time::check_time( $params->{till_time} ); + #set time + my $time = time::check_time( $params->{time} ); + my $from_time = time::check_time( $params->{from_time} ); + my $till_time = time::check_time( $params->{till_time} ); - #set date - my $date = ''; - my $from_date = time::check_date( $params->{from_date} ); - my $till_date = time::check_date( $params->{till_date} ); - if ( ( $from_date eq '' ) && ( $till_date eq '' ) ) { - $date = time::check_date( $params->{date} ); - } + #set date + my $date = ''; + my $from_date = time::check_date( $params->{from_date} ); + my $till_date = time::check_date( $params->{till_date} ); + if ( ( $from_date eq '' ) && ( $till_date eq '' ) ) { + $date = time::check_date( $params->{date} ); + } - #set date interval (including) - my $date_range_include = 0; - $date_range_include = 1 - if ( defined $params->{date_range_include} ) - && ( $params->{date_range_include} eq '1' ); + #set date interval (including) + my $date_range_include = 0; + $date_range_include = 1 + if ( defined $params->{date_range_include} ) + && ( $params->{date_range_include} eq '1' ); - my $order = ''; - if ( defined $params->{order} ) { - $order = 'desc' if ( $params->{order} eq 'desc' ); - $order = 'asc' if ( $params->{order} eq 'asc' ); - } + my $order = ''; + if ( defined $params->{order} ) { + $order = 'desc' if ( $params->{order} eq 'desc' ); + $order = 'asc' if ( $params->{order} eq 'asc' ); + } - my $weekday = $params->{weekday} || ''; + my $weekday = $params->{weekday} || ''; - if ( ( defined $weekday ) && ( $weekday ne '' ) ) { - if ( $weekday =~ /\d/ ) { - $weekday = int($weekday); - log::error( $config, 'invalid weekday' ) - if ( $weekday < 1 || $weekday > 7 ); - } else { - log::error( $config, 'invalid weekday' ); - } - } + if ( ( defined $weekday ) && ( $weekday ne '' ) ) { + if ( $weekday =~ /\d/ ) { + $weekday = int($weekday); + log::error( $config, 'invalid weekday' ) + if ( $weekday < 1 || $weekday > 7 ); + } else { + log::error( $config, 'invalid weekday' ); + } + } - my $time_of_day = $params->{time_of_day} || ''; - my $found = 0; - if ( defined $time_of_day ) { - for my $key ( 'night', 'morning', 'noon', 'afternoon', 'evening' ) { - $found = 1 if ( $key eq $time_of_day ); - } - log::error( $config, 'invalid time_of_day' ) - if ( ( $time_of_day ne '' ) && ( $found == 0 ) ); - } + my $time_of_day = $params->{time_of_day} || ''; + my $found = 0; + if ( defined $time_of_day ) { + for my $key ( 'night', 'morning', 'noon', 'afternoon', 'evening' ) { + $found = 1 if ( $key eq $time_of_day ); + } + log::error( $config, 'invalid time_of_day' ) + if ( ( $time_of_day ne '' ) && ( $found == 0 ) ); + } - my $tag = $params->{tag} || ''; - if ( ( defined $tag ) && ( $tag ne '' ) ) { - log::error( $config, "invalid tag" ) if ( $tag =~ /\s/ ); - log::error( $config, "invalid tag" ) if ( $tag =~ /\;/ ); - $tag =~ s/\'//gi; - } + my $tag = $params->{tag} || ''; + if ( ( defined $tag ) && ( $tag ne '' ) ) { + log::error( $config, "invalid tag" ) if ( $tag =~ /\s/ ); + log::error( $config, "invalid tag" ) if ( $tag =~ /\;/ ); + $tag =~ s/\'//gi; + } - my $category = $params->{category} || ''; - if ( ( defined $category ) && ( $category ne '' ) ) { - log::error( $config, "invalid category" ) if ( $category =~ /\;/ ); - $category =~ s/^\s+//gi; - $category =~ s/\s+$//gi; - $category =~ s/\'//gi; - } + my $category = $params->{category} || ''; + if ( ( defined $category ) && ( $category ne '' ) ) { + log::error( $config, "invalid category" ) if ( $category =~ /\;/ ); + $category =~ s/^\s+//gi; + $category =~ s/\s+$//gi; + $category =~ s/\'//gi; + } - my $series_name = $params->{series_name} || ''; - if ( ( defined $series_name ) && ( $series_name ne '' ) ) { - log::error( $config, "invalid series_name" ) - if ( $series_name =~ /\;/ ); - $series_name =~ s/^\s+//gi; - $series_name =~ s/\s+$//gi; - $series_name =~ s/\'//gi; - } + my $series_name = $params->{series_name} || ''; + if ( ( defined $series_name ) && ( $series_name ne '' ) ) { + log::error( $config, "invalid series_name" ) + if ( $series_name =~ /\;/ ); + $series_name =~ s/^\s+//gi; + $series_name =~ s/\s+$//gi; + $series_name =~ s/\'//gi; + } - my $title = $params->{title} || ''; - if ( ( defined $title ) && ( $title ne '' ) ) { - log::error( $config, "invalid title" ) if ( $title =~ /\;/ ); - $title =~ s/^\s+//gi; - $title =~ s/\s+$//gi; - $title =~ s/\'//gi; - } + my $title = $params->{title} || ''; + if ( ( defined $title ) && ( $title ne '' ) ) { + log::error( $config, "invalid title" ) if ( $title =~ /\;/ ); + $title =~ s/^\s+//gi; + $title =~ s/\s+$//gi; + $title =~ s/\'//gi; + } - my $location = $params->{location} || ''; - if ( ( defined $location ) && ( $location ne '' ) ) { - log::error( $config, "invalid location" ) if ( $location =~ /\;/ ); - $location =~ s/^\s+//gi; - $location =~ s/\s+$//gi; - $location =~ s/\'//gi; - } + my $location = $params->{location} || ''; + if ( ( defined $location ) && ( $location ne '' ) ) { + log::error( $config, "invalid location" ) if ( $location =~ /\;/ ); + $location =~ s/^\s+//gi; + $location =~ s/\s+$//gi; + $location =~ s/\'//gi; + } - #if no location is set, use exclude location filter from default config - my $locations_to_exclude = ''; - if ( ( $location eq '' ) - && ( defined $config->{filter} ) - && ( defined $config->{filter}->{locations_to_exclude} ) ) - { - $locations_to_exclude = $config->{filter}->{locations_to_exclude} || ''; - $locations_to_exclude =~ s/\s+/ /g; - } + #if no location is set, use exclude location filter from default config + my $locations_to_exclude = ''; + if ( ( $location eq '' ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) + { + $locations_to_exclude = $config->{filter}->{locations_to_exclude} || ''; + $locations_to_exclude =~ s/\s+/ /g; + } - my $projects_to_exclude = ''; - if ( ( defined $config->{filter} ) - && ( defined $config->{filter}->{projects_to_exclude} ) ) - { - $projects_to_exclude = $config->{filter}->{projects_to_exclude} || ''; - $projects_to_exclude =~ s/\s+/ /g; - } + my $projects_to_exclude = ''; + if ( ( defined $config->{filter} ) + && ( defined $config->{filter}->{projects_to_exclude} ) ) + { + $projects_to_exclude = $config->{filter}->{projects_to_exclude} || ''; + $projects_to_exclude =~ s/\s+/ /g; + } + #enable exclude locations filter + my $exclude_locations = 0; + $exclude_locations = 1 if ( defined $params->{exclude_locations} ) && ( $params->{exclude_locations} eq '1' ); - #enable exclude locations filter - my $exclude_locations = 0; - $exclude_locations = 1 if ( defined $params->{exclude_locations} ) && ( $params->{exclude_locations} eq '1' ) ; + my $exclude_projects = 0; + $exclude_projects = 1 if ( defined $params->{exclude_projects} ) && ( $params->{exclude_projects} eq '1' ); - my $exclude_projects = 0; - $exclude_projects = 1 if ( defined $params->{exclude_projects} ) && ( $params->{exclude_projects} eq '1' ) ; + my $exclude_event_images = 0; + $exclude_event_images = 1 if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ); - my $exclude_event_images = 0; - $exclude_event_images = 1 if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ) ; + #show future events by default + my $archive = 'future'; + if ( defined $params->{archive} ) { + $archive = 'all' if ( $params->{archive} eq 'all' ); + $archive = 'past' if ( $params->{archive} eq 'gone' ); + $archive = 'future' if ( $params->{archive} eq 'coming' ); + } - #show future events by default - my $archive = 'future'; - if ( defined $params->{archive} ) { - $archive = 'all' if ( $params->{archive} eq 'all' ); - $archive = 'past' if ( $params->{archive} eq 'gone' ); - $archive = 'future' if ( $params->{archive} eq 'coming' ); - } + my $disable_event_sync = ''; + if ( ( defined $params->{disable_event_sync} ) + && ( $params->{disable_event_sync} =~ /([01])/ ) ) + { + $disable_event_sync = $1; + } - my $disable_event_sync = ''; - if ( ( defined $params->{disable_event_sync} ) - && ( $params->{disable_event_sync} =~ /([01])/ ) ) - { - $disable_event_sync = $1; - } + #show all on defined timespans + if ( ( $from_date ne '' ) && ( $till_date ne '' ) ) { + $archive = 'all'; + } - #show all on defined timespans - if ( ( $from_date ne '' ) && ( $till_date ne '' ) ) { - $archive = 'all'; - } + my $event_id = $params->{event_id} || ''; + if ( ( defined $event_id ) && ( $event_id ne '' ) ) { + if ( $event_id =~ /(\d+)/ ) { + $event_id = $1; + } else { + log::error( $config, "invalid event_id" ); + } + } - my $event_id = $params->{event_id} || ''; - if ( ( defined $event_id ) && ( $event_id ne '' ) ) { - if ( $event_id =~ /(\d+)/ ) { - $event_id = $1; - } else { - log::error( $config, "invalid event_id" ); - } - } + my $get = 'all'; + $get = 'no_content' + if ( ( defined $params->{get} ) && ( $params->{get} eq 'no_content' ) ); - my $get = 'all'; - $get = 'no_content' - if ( ( defined $params->{get} ) && ( $params->{get} eq 'no_content' ) ); + my $search = $params->{search} || ''; + if ( ( defined $search ) && ( $search ne '' ) ) { + $search = substr( $search, 0, 100 ); + $search =~ s/^\s+//gi; + $search =~ s/\s+$//gi; + } - my $search = $params->{search} || ''; - if ( ( defined $search ) && ( $search ne '' ) ) { - $search = substr( $search, 0, 100 ); - $search =~ s/^\s+//gi; - $search =~ s/\s+$//gi; - } + #print STDERR $params->{template}."\n"; + my $template = '.html'; + if ( ( defined $params->{template} ) && ( $params->{template} eq 'no' ) ) { + $template = 'no'; + } else { + $template = template::check( $params->{template}, 'event_list.html' ); + } - #print STDERR $params->{template}."\n"; - my $template = '.html'; - if ( ( defined $params->{template} ) && ($params->{template} eq 'no') ) { - $template = 'no'; - } else { - $template = template::check( $params->{template}, 'event_list.html' ); - } + my $limit_config = $config->{permissions}->{result_limit} || 100; + my $limit = $params->{limit} || $limit_config; + log::error( $config, 'invalid limit!' ) if ( $limit =~ /\D/ ); + $limit = $limit_config if ( $limit_config < $limit ); - my $limit_config = $config->{permissions}->{result_limit} || 100; - my $limit = $params->{limit} || $limit_config; - log::error( $config, 'invalid limit!' ) if ( $limit =~ /\D/ ); - $limit = $limit_config if ( $limit_config < $limit ); + #read project from configuration file + my $project_name = $config->{project} || ''; + log::error( $config, 'no default project configured' ) + if ( $project_name eq '' ); - #read project from configuration file - my $project_name = $config->{project} || ''; - log::error( $config, 'no default project configured' ) - if ( $project_name eq '' ); + #get default project + my $default_project = undef; + my $projects = project::get( $config, { name => $project_name } ); + log::error( $config, "no configuration found for project '$project_name'" ) + unless ( scalar(@$projects) == 1 ); + $default_project = $projects->[0]; - #get default project - my $default_project = undef; - my $projects = project::get( $config, { name => $project_name } ); - log::error( $config, "no configuration found for project '$project_name'" ) - unless ( scalar(@$projects) == 1 ); - $default_project = $projects->[0]; + # get project from parameter (by name) + my $project = ''; + if ( ( defined $params->{project} ) + && ( $params->{project} =~ /\w+/ ) + && ( $params->{project} ne 'all' ) ) + { + my $project_name = $params->{project}; + my $projects = project::get( $config, { name => $project_name } ); + log::error( $config, 'invalid project ' . $project_name ) + unless scalar(@$projects) == 1; + $project = $projects->[0]; + } - # get project from parameter (by name) - my $project = ''; - if ( ( defined $params->{project} ) - && ( $params->{project} =~ /\w+/ ) - && ( $params->{project} ne 'all' ) ) - { - my $project_name = $params->{project}; - my $projects = project::get( $config, { name => $project_name } ); - log::error( $config, 'invalid project ' . $project_name ) - unless scalar(@$projects) == 1; - $project = $projects->[0]; - } + $project_name = $params->{project_name} || ''; + my $studio_name = $params->{studio_name} || ''; - $project_name = $params->{project_name} || ''; - my $studio_name = $params->{studio_name} || ''; + my $project_id = $params->{project_id} || ''; + my $studio_id = $params->{studio_id} || ''; - my $project_id = $params->{project_id} || ''; - my $studio_id = $params->{studio_id} || ''; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } + my $json_callback = $params->{json_callback} || ''; + if ( $json_callback ne '' ) { + $json_callback =~ s/[^a-zA-Z0-9\_]//g; + } - my $json_callback = $params->{json_callback} || ''; - if ( $json_callback ne '' ) { - $json_callback =~ s/[^a-zA-Z0-9\_]//g; - } + # use relative links + my $extern = 0; + $extern = 1 if ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); - # use relative links - my $extern = 0; - $extern = 1 if ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); - - my $recordings = 0; - $recordings = 1 if ( defined $params->{recordings} ) && ( $params->{recordings} eq '1' ); + my $recordings = 0; + $recordings = 1 if ( defined $params->{recordings} ) && ( $params->{recordings} eq '1' ); - my $checked = { - date => $date, - time => $time, - time_of_day => $time_of_day, - from_date => $from_date, - till_date => $till_date, - date_range_include => $date_range_include, - from_time => $from_time, - till_time => $till_time, - weekday => $weekday, - limit => $limit, - template => $template, - location => $location, - category => $category, - series_name => $series_name, - tag => $tag, - title => $title, - event_id => $event_id, - search => $search, - debug => $debug, - archive => $archive, - order => $order, - project => $project, - default_project => $default_project, - project_name => $project_name, - project_id => $project_id, - studio_name => $studio_name, - studio_id => $studio_id, - json_callback => $json_callback, - get => $get, - locations_to_exclude => $locations_to_exclude, - projects_to_exclude => $projects_to_exclude, - exclude_locations => $exclude_locations, - exclude_projects => $exclude_projects, - exclude_event_images => $exclude_event_images, - disable_event_sync => $disable_event_sync, - extern => $extern, - recordings => $recordings, - }; + my $checked = { + date => $date, + time => $time, + time_of_day => $time_of_day, + from_date => $from_date, + till_date => $till_date, + date_range_include => $date_range_include, + from_time => $from_time, + till_time => $till_time, + weekday => $weekday, + limit => $limit, + template => $template, + location => $location, + category => $category, + series_name => $series_name, + tag => $tag, + title => $title, + event_id => $event_id, + search => $search, + debug => $debug, + archive => $archive, + order => $order, + project => $project, + default_project => $default_project, + project_name => $project_name, + project_id => $project_id, + studio_name => $studio_name, + studio_id => $studio_id, + json_callback => $json_callback, + get => $get, + locations_to_exclude => $locations_to_exclude, + projects_to_exclude => $projects_to_exclude, + exclude_locations => $exclude_locations, + exclude_projects => $exclude_projects, + exclude_event_images => $exclude_event_images, + disable_event_sync => $disable_event_sync, + extern => $extern, + recordings => $recordings, + }; - #print STDERR Dumper($checked); - return $checked; + #print STDERR Dumper($checked); + return $checked; } sub get_keys { - my $event = shift; + my $event = shift; - my $program = $event->{program} || ''; - my $series_name = $event->{series_name} || ''; - my $title = $event->{title} || ''; - my $user_title = $event->{user_title} || ''; - my $episode = $event->{episode} || ''; - my $recurrence_count_alpha = $event->{recurrence_count_alpha} || ''; + my $program = $event->{program} || ''; + my $series_name = $event->{series_name} || ''; + my $title = $event->{title} || ''; + my $user_title = $event->{user_title} || ''; + my $episode = $event->{episode} || ''; + my $recurrence_count_alpha = $event->{recurrence_count_alpha} || ''; - my $skey = ''; - $skey .= $series_name if $series_name ne ''; - $skey .= ' - ' - if ( $series_name ne '' ) - && ( ( $title ne '' ) || ( $user_title ne '' ) ); + my $skey = ''; + $skey .= $series_name if $series_name ne ''; + $skey .= ' - ' + if ( $series_name ne '' ) + && ( ( $title ne '' ) || ( $user_title ne '' ) ); - my $tkey = ''; - $tkey = $title if $title ne ''; - $tkey .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); - $tkey .= $user_title if $user_title ne ''; - $tkey .= ' #' . $episode if $episode ne ''; - $tkey .= $recurrence_count_alpha if $recurrence_count_alpha ne ''; + my $tkey = ''; + $tkey = $title if $title ne ''; + $tkey .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); + $tkey .= $user_title if $user_title ne ''; + $tkey .= ' #' . $episode if $episode ne ''; + $tkey .= $recurrence_count_alpha if $recurrence_count_alpha ne ''; - my $pkey = ''; - $pkey = ' (' . $program . ')' if $program ne ''; + my $pkey = ''; + $pkey = ' (' . $program . ')' if $program ne ''; - return { - key => $skey . $tkey . $pkey, - full_title => $skey . $tkey . $pkey, - full_title_no_series => $tkey . $pkey, - full_title_no_program => $skey . $tkey, - full_title_no_program_no_series => $tkey - }; + return { + key => $skey . $tkey . $pkey, + full_title => $skey . $tkey . $pkey, + full_title_no_series => $tkey . $pkey, + full_title_no_program => $skey . $tkey, + full_title_no_program_no_series => $tkey + }; } #do not delete last line! From c37c71f29e7ed6124045971de278ed91c5f9d27e Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 27 Aug 2018 00:21:39 +0200 Subject: [PATCH 019/391] optimize imports --- lib/calcms/events.pm | 248 ++++++++-------- lib/calcms/time.pm | 4 + website/agenda/add_comment.cgi | 18 +- website/agenda/aggregate.cgi | 14 +- website/agenda/cal.cgi | 8 +- website/agenda/category.cgi | 16 +- website/agenda/comments.cgi | 17 +- website/agenda/css/calcms.css | 8 +- website/agenda/events.cgi | 17 +- website/agenda/planung/assign_series.cgi | 39 +-- website/agenda/planung/assignments.cgi | 37 +-- website/agenda/planung/audio_recordings.cgi | 30 +- website/agenda/planung/calendar.cgi | 94 ++++--- website/agenda/planung/comment.cgi | 42 ++- website/agenda/planung/create_events.cgi | 264 ++++-------------- website/agenda/planung/error_log.cgi | 20 +- website/agenda/planung/event.cgi | 52 ++-- website/agenda/planung/event_history.cgi | 43 ++- website/agenda/planung/help.cgi | 27 +- website/agenda/planung/image.cgi | 64 +++-- website/agenda/planung/imageUpload.cgi | 21 +- website/agenda/planung/js/calendar.js | 8 +- website/agenda/planung/localization.cgi | 18 +- website/agenda/planung/notify_events.cgi | 39 +-- website/agenda/planung/playout.cgi | 38 +-- website/agenda/planung/projects.cgi | 20 +- website/agenda/planung/requestPassword.cgi | 10 +- website/agenda/planung/roles.cgi | 19 +- website/agenda/planung/selectEvent.cgi | 27 +- website/agenda/planung/selectSeries.cgi | 16 +- website/agenda/planung/series.cgi | 42 +-- website/agenda/planung/showImage.cgi | 33 +-- website/agenda/planung/studio_timeslots.cgi | 33 +-- website/agenda/planung/studios.cgi | 20 +- .../planung/templates/create_events.html | 97 +++---- .../agenda/planung/templates/image_edit.html | 7 +- website/agenda/planung/user_settings.cgi | 22 +- website/agenda/planung/user_stats.cgi | 24 +- website/agenda/planung/users.cgi | 20 +- website/agenda/planung/work_time.cgi | 31 +- website/agenda/series.cgi | 24 +- website/agenda/series_names.cgi | 16 +- website/agenda/templates/event_details.html | 4 - website/agenda/upload_playout.cgi | 12 +- 44 files changed, 721 insertions(+), 942 deletions(-) mode change 100755 => 100644 website/agenda/planung/calendar.cgi mode change 100644 => 100755 website/agenda/series.cgi diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index ad8a10e..e03d6ea 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -183,6 +183,7 @@ sub modify_results { $result->{rerun} = '' unless defined $result->{rerun}; + $result->{title} = '' unless defined $result->{title}; if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { $result->{episode} = $1 unless defined $result->{episode}; $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); @@ -221,7 +222,7 @@ sub modify_results { $result->{event_uri} .= $result->{series_name}; $result->{event_uri} .= '-' if ( $result->{title} ne '' ); } - $result->{event_uri} .= $result->{title} if ( $result->{title} ne '' ); + $result->{event_uri} .= $result->{title} if $result->{title} ne ''; $result->{event_uri} =~ s/\#/Nr./g; $result->{event_uri} =~ s/\&/und/g; $result->{event_uri} =~ s/\//\%2f/g; @@ -611,11 +612,6 @@ sub add_recordings { return $events; } -sub getDateRange { - my $config = shift; - $config->{date}->{day_starting_hour}; -} - sub getDateQueryConditions { my $config = shift; my $params = shift; @@ -626,28 +622,76 @@ sub getDateQueryConditions { #date, today, tomorrow, yesterday my $date = ''; - $date = time::date_cond( $params->{date} ) if ( $params->{date} ne '' ); + $date = time::date_cond( $params->{date} ) if $params->{date} ne ''; my $from_date = ''; - $from_date = time::date_cond( $params->{from_date} ) - if ( $params->{from_date} ne '' ); + $from_date = time::date_cond( $params->{from_date} ) if $params->{from_date} ne ''; my $till_date = ''; - $till_date = time::date_cond( $params->{till_date} ) - if ( $params->{till_date} ne '' ); + $till_date = time::date_cond( $params->{till_date} ) if $params->{till_date} ne ''; my $from_time = ''; - $from_time = time::time_cond( $params->{from_time} ) - if ( $params->{from_time} ne '' ); + $from_time = time::time_cond( $params->{from_time} ) if $params->{from_time} ne ''; my $till_time = ''; - $till_time = time::time_cond( $params->{till_time} ) - if ( $params->{till_time} ne '' ); + $till_time = time::time_cond( $params->{till_time} ) if $params->{till_time} ne ''; + + my $time = $params->{time}; + $time = '' unless defined $time; my $date_range_include = $params->{date_range_include}; + my $day_starting_hour = $config->{date}->{day_starting_hour}; - #from_time is defined - if ( ( $params->{from_date} ne '' ) && ( $params->{from_time} ne '' ) ) { + if ( $date eq 'today' ) { + my $date = time::get_event_date($config); + push @$date_conds, ' ( start_date = ? ) '; + push @$bind_values, $date; + return $date_conds; + } + + # given date + my $start = time::datetime_cond( $date . 'T00:00:00' ); + if ( $start ne '' ) { + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + my $end = time::add_hours_to_datetime( $start, 24 ); + + if ( $date_range_include eq '1' ) { + push @$date_conds, ' end > ? '; + push @$bind_values, $start; + } else { + push @$date_conds, ' start >= ? '; + push @$bind_values, $start; + } + + push @$date_conds, ' start < ? '; + push @$bind_values, $end; + return $date_conds; + } + + if ( $time eq 'now' ) { + push @$date_conds, qq{ + ( + ( unix_timestamp(end) > unix_timestamp(now() ) ) + and + ( unix_timestamp(start) <= unix_timestamp(now() ) ) + ) + }; + return $date_conds; + } + + if ( $time eq 'future' ) { + push @$date_conds, qq{ + ( + ( unix_timestamp(end) > unix_timestamp(now() ) ) + and + ( unix_timestamp(end) - unix_timestamp(now() ) ) < 7*24*3600 + ) + }; + return $date_conds; + } + + #from_date and from_time is defined + if ( ( $from_date ne '' ) && ( $from_time ne '' ) ) { my $datetime = time::datetime_cond( $from_date . 'T' . $from_time ); if ( $datetime ne '' ) { if ( $date_range_include eq '1' ) { @@ -662,8 +706,8 @@ sub getDateQueryConditions { } } - #till_time is defined - if ( ( $params->{till_date} ne '' ) && ( $params->{till_time} ne '' ) ) { + #till_date and till_time is defined + if ( ( $till_date ne '' ) && ( $till_time ne '' ) ) { my $datetime = time::datetime_cond( $till_date . 'T' . $till_time ); if ( $datetime ne '' ) { push @$date_conds, ' start < ? '; @@ -672,119 +716,59 @@ sub getDateQueryConditions { } } - #time is defined - if ( ( defined $params->{time} ) - && ( $params->{time} ne '' ) - && ( $params->{time} ne 'now' ) - && ( $params->{time} ne 'future' ) ) - { - my $time = time::time_cond( $params->{time} ); - if ( $time ne '' ) { - push @$date_conds, ' time(start) = ? '; - push @$bind_values, $time; + # after start of daily broadcast + if ( ( $from_date ne '' ) && ( $from_time eq '' ) ) { + my $start = time::datetime_cond( $from_date . 'T00:00:00' ); + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + + if ( $date_range_include eq '1' ) { + + # end is after start + push @$date_conds, ' ( end >= ? )'; + push @$bind_values, $start; + } else { + push @$date_conds, ' ( start >= ? ) '; + push @$bind_values, $start; } - return $date_conds; } - #event is not over - elsif ( ( defined $params->{time} ) && ( $params->{time} eq 'now' ) ) { - push @$date_conds, qq{ - ( - ( unix_timestamp(end) > unix_timestamp(now() ) ) - and - ( unix_timestamp(start) <= unix_timestamp(now() ) ) - ) - }; - return $date_conds; - } elsif ( ( defined $params->{time} ) && ( $params->{time} eq 'future' ) ) { - push @$date_conds, qq{ - ( - ( unix_timestamp(end) > unix_timestamp(now() ) ) - and - ( unix_timestamp(end) - unix_timestamp(now() ) ) < 7*24*3600 - ) - }; - return $date_conds; - } elsif ( $date ne '' ) { - if ( $date eq 'today' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @$date_conds, ' ( start_date = ? ) '; - push @$bind_values, $date; - } + # before end of daily broadcast + if ( ( $till_date ne '' ) && ( $till_time eq '' ) ) { + my $end = time::datetime_cond( $till_date . 'T00:00:00' ); + $end = time::add_hours_to_datetime( $end, $day_starting_hour ); + if ( $date_range_include eq '1' ) { + # start is before end + push @$date_conds, ' ( start <= ? )'; + push @$bind_values, $end; } else { - - #push @$date_conds, ' ( start_date = ? ) '; - #push @$bind_values, $date; - my $start = time::datetime_cond( $date . 'T00:00:00' ); - if ( $start ne '' ) { - $start = time::add_hours_to_datetime( $start, $config->{date}->{day_starting_hour} ); - my $end = time::add_hours_to_datetime( $start, 24 ); - - if ( $date_range_include eq '1' ) { - push @$date_conds, ' end > ? '; - push @$bind_values, $start; - } else { - push @$date_conds, ' start >= ? '; - push @$bind_values, $start; - } - - if ( $end ne '' ) { - push @$date_conds, ' start < ? '; - push @$bind_values, $end; - } - } + push @$date_conds, ' ( end <= ? ) '; + push @$bind_values, $end; } - return $date_conds; - } else { - if ( $from_date ne '' ) { - if ( $date_range_include eq '1' ) { + } - # end is after start - push @$date_conds, ' ( end_date >= ? )'; - push @$bind_values, $from_date; - } else { - push @$date_conds, ' ( start_date >= ? ) '; - push @$bind_values, $from_date; - } + if ( $params->{weekday} ne '' ) { + my $weekday = $params->{weekday}; + $weekday += 1; + $weekday -= 7 if ( $weekday > 7 ); + push @$date_conds, ' (dayofweek(start)= ?) '; + push @$bind_values, $weekday; + } + + if ( $params->{archive} eq 'past' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( start < ? ) '; + push @$bind_values, $date; } - if ( $till_date ne '' ) { - if ( $date_range_include eq '1' ) { - - # start is before end - push @$date_conds, ' ( start_date <= ? )'; - push @$bind_values, $till_date; - } else { - push @$date_conds, ' ( end_date <= ? ) '; - push @$bind_values, $till_date; - } + } + if ( $params->{archive} eq 'future' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( end >= ? ) '; + push @$bind_values, $date; } - - if ( $params->{weekday} ne '' ) { - my $weekday = $params->{weekday}; - $weekday += 1; - $weekday -= 7 if ( $weekday > 7 ); - push @$date_conds, ' (dayofweek(start_date)= ?) '; - push @$bind_values, $weekday; - } - - if ( $params->{archive} eq 'past' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @$date_conds, ' ( start_date < ? ) '; - push @$bind_values, $date; - } - - } elsif ( $params->{archive} eq 'future' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @$date_conds, ' ( start_date >= ? ) '; - push @$bind_values, $date; - } - } - } return $date_conds; @@ -1430,21 +1414,33 @@ sub get_by_date_range { my $end_date = shift; my $options = shift; + my $day_starting_hour = $config->{date}->{day_starting_hour}; + + my $start = time::datetime_cond( $start_date . 'T00:00:00' ); + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + + my $end = time::datetime_cond( $end_date . 'T00:00:00' ); + $end = time::add_hours_to_datetime( $end, $day_starting_hour ); + my $conditions = []; - push @$conditions, 'start_date between ? and ?'; - my $bind_values = [ $start_date, $end_date ]; + push @$conditions, 'start between ? and ?'; + my $bind_values = [ $start, $end ]; setDefaultEventConditions( $config, $conditions, $bind_values, $options ); $conditions = join( ' and ', @$conditions ); + my $select = qq{distinct date(start) 'start_date'}; + $select = qq{distinct date(DATE_SUB(start, INTERVAL $day_starting_hour HOUR)) 'start_date'} if defined $day_starting_hour; + my $query = qq{ - select start_date + select $select from calcms_events where $conditions - group by start_date }; + #print STDERR Dumper($query); + my $events = db::get( $dbh, $query, $bind_values ); return $events; diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index cf79561..6b976f3 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -185,6 +185,7 @@ sub datetime_to_utc_datetime{ sub add_hours_to_datetime{ my $datetime=shift; my $hours=shift; + $hours=0 unless defined $hours; return time_to_datetime(datetime_to_time($datetime)+(3600*$hours)); }; @@ -192,6 +193,7 @@ sub add_hours_to_datetime{ sub add_minutes_to_datetime{ my $datetime=shift; my $minutes=shift; + $minutes=0 unless defined $minutes; return time_to_datetime(datetime_to_time($datetime)+(60*$minutes)); }; @@ -199,6 +201,7 @@ sub add_minutes_to_datetime{ sub add_days_to_datetime{ my $datetime=shift; my $days=shift; + $days=0 unless defined $days; my $time=datetime_to_array($datetime); #print STDERR Dumper($time); ($time->[0], $time->[1], $time->[2]) =Date::Calc::Add_Delta_Days($time->[0]+0, $time->[1]+0, $time->[2]+0, $days); @@ -208,6 +211,7 @@ sub add_days_to_datetime{ sub add_days_to_date{ my $datetime=shift; my $days=shift; + $days=0 unless defined $days; my $date=date_to_array($datetime); ($date->[0], $date->[1], $date->[2]) =Date::Calc::Add_Delta_Days($date->[0]+0, $date->[1]+0, $date->[2]+0, $days); return array_to_date($date); diff --git a/website/agenda/add_comment.cgi b/website/agenda/add_comment.cgi index ae773ca..6cc1285 100755 --- a/website/agenda/add_comment.cgi +++ b/website/agenda/add_comment.cgi @@ -8,15 +8,15 @@ use Data::Dumper; use CGI qw(header param Vars escapeHTML uploadInfo cgi_error); $CGI::POST_MAX=1024 * 100; -use params; -use config; -use db; -use markup; -use cache; -use comments; -use template; -use log; -use time; +use params(); +use config(); +use db(); +use markup(); +use cache(); +use comments(); +use template(); +use log(); +use time(); binmode STDOUT, ":utf8"; diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 022471a..e91480f 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -12,13 +12,13 @@ use CGI qw(header param Vars); #use Benchmark; #use Devel::Profiler; -use db; -use events; -use time; -use aggregator; -use markup; -use log; -use config; +use db(); +use events(); +use time(); +use aggregator(); +use markup(); +use log(); +use config(); #use params; #my $r=shift; diff --git a/website/agenda/cal.cgi b/website/agenda/cal.cgi index 84b61b3..298e77c 100755 --- a/website/agenda/cal.cgi +++ b/website/agenda/cal.cgi @@ -9,10 +9,10 @@ $CGI::POST_MAX = 1000; $CGI::DISABLE_UPLOADS = 1; use Data::Dumper; -use params; -use config; -use log; -use calendar; +use params(); +use config(); +use log(); +use calendar(); my $r = shift; diff --git a/website/agenda/category.cgi b/website/agenda/category.cgi index 1cb2a18..2971875 100755 --- a/website/agenda/category.cgi +++ b/website/agenda/category.cgi @@ -8,14 +8,14 @@ use CGI qw(header param Vars); $CGI::POST_MAX = 1000; $CGI::DISABLE_UPLOADS = 1; -use params; -use db; -use markup; -use cache; -use log; -use config; -use template; -use project; +use params(); +use db(); +use markup(); +use cache(); +use log(); +use config(); +use template(); +use project(); binmode STDOUT, ":utf8"; diff --git a/website/agenda/comments.cgi b/website/agenda/comments.cgi index caeb58d..972dd4a 100755 --- a/website/agenda/comments.cgi +++ b/website/agenda/comments.cgi @@ -8,14 +8,15 @@ $CGI::POST_MAX = 1000; $CGI::DISABLE_UPLOADS = 1; use Data::Dumper; -use params; -use config; -use comments; -use db; -use markup; -use time; -use cache; -use log; + +use params(); +use config(); +use comments(); +use db(); +use markup(); +use time(); +use cache(); +use log(); my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index 4ccb52a..29359e2 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -273,6 +273,10 @@ a{ #calcms_list .submitted{ } +#calcms_list h2{ + clear:none !important; +} + #calcms_list .content img{ border:0; } @@ -286,6 +290,7 @@ a{ #calcms_list .content figcaption{ font-size:12px; margin-left: 1em; + max-width:12em; } @@ -740,7 +745,7 @@ a#calcms_search_show_details #plus{ #player{ border:0; padding:0; - height:3rem; + height:5rem; } #player:hover{ opacity:0.9; @@ -842,6 +847,7 @@ div.update, div.update a{ } #listen_radio iframe{ margin-top:1em; + max-width:none; } #listen_radio td{ border:0; diff --git a/website/agenda/events.cgi b/website/agenda/events.cgi index bf717ea..d23bc57 100755 --- a/website/agenda/events.cgi +++ b/website/agenda/events.cgi @@ -1,10 +1,9 @@ #! /usr/bin/perl -w -use warnings "all"; - -#no warnings 'redefine'; -#use diagnostics; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; #use utf8; @@ -13,11 +12,11 @@ use CGI qw(header param Vars); $CGI::POST_MAX = 1000; $CGI::DISABLE_UPLOADS = 1; -use params; -use config; -use log; -use events; -use time; +use params(); +use config(); +use log(); +use events(); +use time(); #binmode STDOUT, ":utf8"; binmode STDOUT, ":encoding(UTF-8)"; diff --git a/website/agenda/planung/assign_series.cgi b/website/agenda/planung/assign_series.cgi index 08458f4..2d38276 100755 --- a/website/agenda/planung/assign_series.cgi +++ b/website/agenda/planung/assign_series.cgi @@ -2,26 +2,27 @@ use warnings "all"; use strict; -use Data::Dumper; -use params; -use config; -use log; -use template; -use auth; -use uac; -use roles; -use project; -use studios; -use events; -use series; -use series_schedule; -use series_events; -use series_dates; -use markup; -use URI::Escape; -use Encode; -use localization; +use Data::Dumper; +use URI::Escape(); +use Encode(); + +use params(); +use config(); +use log(); +use template(); +use auth(); +use uac(); +use roles(); +use project(); +use studios(); +use events(); +use series(); +use series_schedule(); +use series_events(); +use series_dates(); +use markup(); +use localization(); binmode STDOUT, ":utf8"; diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index 5bd1bb4..c75f687 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -4,24 +4,25 @@ use warnings "all"; use strict; use Data::Dumper; -use params; -use config; -use log; -use template; -use auth; -use uac; -use roles; -use project; -use studios; -use events; -use series; -use series_schedule; -use series_events; -use series_dates; -use markup; -use URI::Escape; -use Encode; -use localization; +use URI::Escape(); +use Encode(); + +use params(); +use config(); +use log(); +use template(); +use auth(); +use uac(); +use roles(); +use project(); +use studios(); +use events(); +use series(); +use series_schedule(); +use series_events(); +use series_dates(); +use markup(); +use localization(); binmode STDOUT, ":utf8"; diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index a51573a..8bf83cd 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -6,25 +6,23 @@ use warnings; use strict; use Data::Dumper; - use CGI::Simple (); use ModPerl::Util (); +use Date::Calc(); +use Time::Local(); +use File::Temp(); -use Date::Calc; -use Time::Local; -use File::Temp; - -use config; -use log; -use localization; -use auth; -use uac; -use studios; -use series; -use template; -use audio_recordings; -use events; -use time; +use config(); +use log(); +use localization(); +use auth(); +use uac(); +use studios(); +use series(); +use template(); +use audio_recordings(); +use events(); +use time(); #$|=1; binmode STDOUT, ":utf8"; diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi old mode 100755 new mode 100644 index a68eeff..8509410 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -3,32 +3,32 @@ use warnings "all"; use strict; use Data::Dumper; -use URI::Escape; -use Encode; -use utf8; +use URI::Escape(); +use Encode(); +use utf8(); -use params; -use config; -use log; -use template; -use calendar; -use auth; -use uac; -use roles; -use project; -use studios; -use events; -use series; -use markup; -use series_dates; -use studio_timeslot_dates; -use work_dates; -use playout; -use markup; -use user_settings; -use localization; -use DateTime; -use audio_recordings; +use params(); +use config(); +use log(); +use template(); +use calendar(); +use auth(); +use uac(); +use roles(); +use project(); +use studios(); +use events(); +use series(); +use markup(); +use series_dates(); +use studio_timeslot_dates(); +use work_dates(); +use playout(); +use markup(); +use user_settings(); +use localization(); +use DateTime(); +use audio_recordings(); binmode STDOUT, ":utf8"; @@ -404,7 +404,7 @@ sub showCalendar { #print STDERR Dumper($date) if $date->{file}=~/180503/; #$date->{title}.= 'rms_image: ' .($date->{rms_image}||'').'
      ' if defined $date->{rms_image}; - $date->{rms_image} = uri_unescape( $date->{rms_image} ) if defined $date->{rms_image}; + $date->{rms_image} = URI::Escape::uri_unescape( $date->{rms_image} ) if defined $date->{rms_image}; $date->{origStart} = $date->{start}; @@ -490,18 +490,17 @@ sub showCalendar { # calculate positions and find schedule errors (depending on position) for my $date ( sort ( keys %$events_by_day ) ) { - for my $events ( $events_by_day->{$date} ) { - calc_positions( $events, $cal_options ); - find_errors($events); - } + my $events = $events_by_day->{$date} ; + calc_positions( $events, $cal_options ); + find_errors($events); } for my $event (@$events){ next unless defined $event->{uploaded_at}; - print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; + #print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; next if (defined $event->{playout_updated_at}) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); #print STDERR Dumper($event); - $event->{upload} ='pending' ; + #$event->{upload} ='pending' ; #$event->{title}.='
      pending'; } @@ -904,7 +903,7 @@ sub calcCalendarTable { project_id => $project_id, studio_id => $studio_id, class => 'time', - time => sprintf( '%02d', $hour % 24 ) + 'time' => sprintf( '%02d', $hour % 24 ) }; } @@ -927,7 +926,7 @@ sub calcCalendarTable { project_id => -1, studio_id => -1, class => 'time now', - time => $time, + 'time' => $time, }; calc_positions( $events_by_day->{0}, $cal_options ); @@ -1404,9 +1403,7 @@ sub print_event { $height = ''; } - my $date = $event->{origStart} || $event->{start} || ''; - $date = $event->{time} if defined $event->{time}; - $date = $event->{date} if defined $event->{date}; +# my $date = $event->{origStart} || $event->{start} || ''; my $content = $event->{content} || ''; if ( $class =~ /schedule/ ) { @@ -1428,14 +1425,18 @@ sub print_event { $content = '
      ' . $content . '
      '; } - return - q{
      $content
      } . "\n"; + my $time=''; + $time= qq{ time="$event->{time}"} if $class=~m/time/; + + my $date=''; + $date= qq{ date="$event->{date}"} if $class=~m/date/; + + my $line= q{
      $content
      } ; + $line.= "\n"; + return $line; } sub getFrequency { @@ -1470,7 +1471,7 @@ sub calc_positions { my ( $end_hour, $end_min ) = getTime( $event->{end_time} ); $start_hour += 24 if $start_hour < $start_of_day; - $end_hour += 24 if $end_hour <= $start_of_day; + $end_hour += 24 if $end_hour < $start_of_day; $event->{ystart} = $start_hour * 60 + $start_min; $event->{yend} = $end_hour * 60 + $end_min; } @@ -1882,3 +1883,4 @@ sub check_params { return $checked; } + diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 64af386..4c8c795 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -2,33 +2,27 @@ use warnings "all"; use strict; -use URI::Escape; -use Encode; + +use URI::Escape(); +use Encode(); use Data::Dumper; -use MIME::Base64; -use Encode::Locale; +use MIME::Base64(); +use Encode::Locale(); -use params; -use config; -use log; -use template; -use db; -use auth; -use uac; +use params(); +use config(); +use log(); +use template(); +use db(); +use auth(); +use uac(); -#use roles; -use time; -use markup; -use project; -use studios; -use comments; - -#use events; -#use series; -#use series_dates; -#use series_events; -#use user_stats; -use localization; +use time(); +use markup(); +use project(); +use studios(); +use comments(); +use localization(); binmode STDOUT, ":utf8"; diff --git a/website/agenda/planung/create_events.cgi b/website/agenda/planung/create_events.cgi index f1bf347..2d68254 100755 --- a/website/agenda/planung/create_events.cgi +++ b/website/agenda/planung/create_events.cgi @@ -4,29 +4,19 @@ use warnings "all"; use strict; use Data::Dumper; -use params; -use config; +use params(); +use config(); +use template(); -#use log; -#use template; -use auth; -use uac; -use time; +use auth(); +use uac(); +use time(); -#use roles; -#use project; -#use studios; -#use events; -use series; -use eventOps; +use series(); +use eventOps(); -#use series_schedule; -#use series_events; -use series_dates; -#use markup; -#use URI::Escape; -#use Encode; -use localization; +use series_dates(); +use localization(); binmode STDOUT, ":utf8"; @@ -85,14 +75,12 @@ unless ( $permissions->{create_event_from_schedule} == 1 ) { return; } -if ( defined $params->{action} ) { - - # assign_s ($config, $request) if ($params->{action} eq 'assign_series'); +if ( $params->{action} eq 'create_events') { + create_events( $config, $request ); +}else{ + show_events( $config, $request ); } -#print Dumper($params); -show_events( $config, $request ); - sub show_events{ my $config = shift; my $request = shift; @@ -103,25 +91,44 @@ sub show_events{ uac::permissions_denied('assign_series_events'); return; } + template::process( 'print', $params->{template}, $params ); + +} + +sub create_events{ + my $config = shift; + my $request = shift; + + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return; + } + + print STDERR "create events\n"; my $project_id = $params->{project_id}; my $studio_id = $params->{studio_id}; my $from_date = $params->{from_date}; my $till_date = $params->{till_date}; + my $duration = $params->{duration}; $from_date = time::time_to_datetime(); if ($from_date=~/(\d\d\d\d\-\d\d\-\d\d \d\d)/){ $from_date = $1.':00'; } - $till_date = time::add_days_to_datetime($from_date, 28); + $till_date = time::add_days_to_datetime($from_date, $duration); if ($from_date=~/(\d\d\d\d\-\d\d\-\d\d)/){ $from_date = $1; } if ($till_date=~/(\d\d\d\d\-\d\d\-\d\d)/){ $till_date = $1; } + $params->{from_date}=$from_date; + $params->{till_date}=$till_date; - print "update from $from_date to $till_date\n"; + print STDERR "create events from $from_date to $till_date\n"; my $dates = series_dates::getDatesWithoutEvent( $config, { @@ -131,12 +138,15 @@ sub show_events{ till => $till_date } ); - print "
      found ".(scalar @$dates)." dates\n";
      +    print STDERR "
      found ".(scalar @$dates)." dates\n";
      +    my $events=[];
           for my $date (@$dates){
      -        print $date->{start}."\n";
      -        createEvent($config, $request, $date);
      -        #return;
      +        #print STDERR $date->{start}."\n";
      +        push @$events, createEvent($config, $request, $date);
           }
      +    $params->{created_events} = $events;
      +    $params->{created_total} = scalar(@$events);
      +    template::process( 'print', $params->{template}, $params );
       }
       
       sub createEvent{
      @@ -159,7 +169,9 @@ sub createEvent{
           return undef unless defined $event;
       
           $event->{start_date} = $event->{start};
      -    return eventOps::createEvent($request, $event, 'create_event_from_schedule');
      +    eventOps::createEvent($request, $event, 'create_event_from_schedule');
      +    print STDERR Dumper($date);
      +    return $event;
       
       }
       
      @@ -184,7 +196,8 @@ sub check_params {
       
       	#numeric values
       	$checked->{exclude} = 0;
      -	for my $param ( 'id', 'project_id', 'studio_id', 'series_id' ) {
      +	$checked->{duration} = 28;
      +	for my $param ( 'id', 'project_id', 'studio_id', 'duration' ) {
       		if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
       			$checked->{$param} = $params->{$param};
       		}
      @@ -196,192 +209,9 @@ sub check_params {
       		$checked->{studio_id} = -1;
       	}
       
      -	for my $param ( 'date', 'from_date', 'till_date' ) {
      -		$checked->{$param} = time::check_date( $params->{$param} );
      -	}
      -
       	$checked->{template} = template::check( $params->{template}, 'create_events' );
       
       	return $checked;
       }
       
      -__DATA__
      -
      -https://piradio.de/agenda/planung/create_events.cgi?project_id=1&studio_id=1&from_date=2016-09-01&till_date=2016-10-01
      -
      -sub show_events2 {
      -	my $config  = shift;
      -	my $request = shift;
      -
      -	my $params      = $request->{params}->{checked};
      -	my $permissions = $request->{permissions};
      -	unless ( $permissions->{assign_series_events} == 1 ) {
      -		uac::permissions_denied('assign_series_events');
      -		return;
      -	}
      -
      -	#print STDERR Dumper($params);
      -	#print '
      '.Dumper($eventsByStart);
      -	#return;
      -
      -	my $scheduleDates = getScheduleDates( $config, $request );
      -	my $schedulesByStart = getEventsByDate($scheduleDates);
      -
      -	my $events = getEvents( $config, $request );
      -	my $eventsByStart = getEventsByDate($events);
      -
      -	print "
      \n";
      -	for my $date ( sort keys %$schedulesByStart ) {
      -		my $schedules     = $schedulesByStart->{$date};
      -		my $scheduleCount = scalar(@$schedules);
      -		if ( $scheduleCount == 0 ) {
      -			print "skip datetime $date, no schedule found\n";
      -			next;
      -		}
      -		if ( $scheduleCount > 1 ) {
      -			print "skip datetime $date, $scheduleCount schedules found\n";
      -			next;
      -		}
      -		my $schedule = $schedules->[0];
      -
      -		if ( defined $eventsByStart->{$date} ) {
      -			my $events     = $eventsByStart->{$date};
      -			my $eventCount = scalar(@$events);
      -			if ( $eventCount > 0 ) {
      -				print "skip datetime $date, $eventCount events already exist\n";
      -				next;
      -			}
      -		}
      -		print "found schedule without event for $date" . " - " . $schedule->{series_name} . " - " . $schedule->{title} . "\n";
      -
      -		#createEvent($config, $request, $schedule);
      -	}
      -}
      -
      -# get a list of events with given start datetime
      -sub getEventsByDate {
      -	my $events = shift;
      -
      -	my $eventsByDate = {};
      -	for my $event (@$events) {
      -		my $startDate = $event->{start};
      -		push @{ $eventsByDate->{$startDate} }, $event;
      -	}
      -	return $eventsByDate;
      -}
      -
      -sub getScheduleDates {
      -	my $config  = shift;
      -	my $request = shift;
      -
      -	my $params      = $request->{params}->{checked};
      -	my $permissions = $request->{permissions};
      -
      -	my $options = {};
      -
      -	my $from       = $params->{from_date};
      -	my $till       = $params->{till_date};
      -	my $project_id = $params->{project_id};
      -	my $studio_id  = $params->{studio_id};
      -
      -	#build series filter
      -	$options = {
      -		project_id         => $project_id,
      -		studio_id          => $studio_id,
      -		from               => $from,
      -		till               => $till,
      -		date_range_include => 1,
      -		exclude            => 0
      -	};
      -
      -	#get all series dates
      -	my $series_dates = series_dates::get_series( $config, $options );
      -	return $series_dates;
      -}
      -
      -sub getEvents {
      -	my $config  = shift;
      -	my $request = shift;
      -
      -	my $params      = $request->{params}->{checked};
      -	my $permissions = $request->{permissions};
      -
      -	my $options = {};
      -
      -	my $from       = $params->{from_date};
      -	my $till       = $params->{till_date};
      -	my $project_id = $params->{project_id};
      -	my $studio_id  = $params->{studio_id};
      -
      -	#build event filter
      -	$options = {
      -		project_id         => $project_id,
      -		template           => 'no',
      -		limit              => 600,
      -		get                => 'no_content',
      -		from_date          => $from,
      -		till_date          => $till,
      -		date_range_include => 1,
      -		archive            => 'all',
      -		#exclude_locations         => '1',
      -	};
      -
      -	my $events = getSeriesEvents( $config, $request, $options, $params );
      -	return $events;
      -}
      -
      -sub getSeriesEvents {
      -	my $config  = shift;
      -	my $request = shift;
      -	my $options = shift;
      -	my $params  = shift;
      -
      -	#get events by series id
      -	my $series_id = $request->{params}->{checked}->{series_id};
      -	if ( defined $series_id ) {
      -		my $events = series::get_events( $request->{config}, $options );
      -		return $events;
      -	}
      -
      -	#get events (directly from database to get the ones, not assigned, yet)
      -	delete $options->{studio_id};
      -	delete $options->{project_id};
      -
      -	my $request2 = {
      -		params => {
      -			checked => events::check_params( $config, $options )
      -		},
      -		config      => $request->{config},
      -		permissions => $request->{permissions}
      -	};
      -	$request2->{params}->{checked}->{published} = 'all';
      -
      -    #$request2->{params}->{checked}->{exclude_locations} = 1;
      -	#delete $request2->{params}->{checked}->{locations_to_exclude}
      -	#  if ( ( $params->{studio_id} == -1 ) && ( defined $request2->{params}->{checked}->{locations_to_exclude} ) );
      -
      -	my $events = events::get( $config, $request2 );
      -
      -	#print STDERR Dumper($request2->{params}->{checked});
      -	#print STDERR Dumper($events);
      -	series::add_series_ids_to_events( $request->{config}, $events );
      -
      -	my $studios = studios::get(
      -		$request->{config},
      -		{
      -			project_id => $options->{project_id}
      -		}
      -	);
      -	my $studio_id_by_location = {};
      -	for my $studio (@$studios) {
      -		$studio_id_by_location->{ $studio->{location} } = $studio->{id};
      -	}
      -
      -	for my $event (@$events) {
      -		$event->{project_id} = $options->{project_id} unless defined $event->{project_id};
      -		$event->{studio_id} = $studio_id_by_location->{ $event->{location} } unless defined $event->{studio_id};
      -	}
      -
      -	return $events;
      -}
       
      diff --git a/website/agenda/planung/error_log.cgi b/website/agenda/planung/error_log.cgi
      index 31a3de9..ea761cd 100755
      --- a/website/agenda/planung/error_log.cgi
      +++ b/website/agenda/planung/error_log.cgi
      @@ -3,19 +3,17 @@
       use warnings "all";
       use strict;
       use Data::Dumper;
      -use HTML::Template;
      +use HTML::Template();
       
      -#use URI::Escape;
      -#use Encode;
      +use config();
      +use log();
      +use template();
      +use params();
      +use config();
      +use auth();
      +use localization();
      +use studios();
       
      -use config;
      -use log;
      -use template;
      -use params;
      -use config;
      -use auth;
      -use localization;
      -use studios;
       binmode STDOUT, ":utf8";
       my $r = shift;
       ( my $cgi, my $params, my $error ) = params::get($r);
      diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi
      index be6cf6a..8268644 100755
      --- a/website/agenda/planung/event.cgi
      +++ b/website/agenda/planung/event.cgi
      @@ -1,34 +1,36 @@
       #! /usr/bin/perl -w 
       
      -use warnings "all";
       use strict;
      -use URI::Escape;
      -use Encode;
      -use Data::Dumper;
      -use MIME::Base64;
      -use Encode::Locale;
      +use warnings;
      +no warnings 'redefine';
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use db;
      -use auth;
      -use uac;
      +use URI::Escape();
      +use Encode();
      +use Data::Dumper;
      +use MIME::Base64();
      +use Encode::Locale();
      +
      +use params();
      +use config();
      +use log();
      +use template();
      +use db();
      +use auth();
      +use uac();
       
       #use roles;
      -use time;
      -use markup;
      -use project;
      -use studios;
      -use events;
      -use series;
      -use series_dates;
      -use series_events;
      -use user_stats;
      -use localization;
      -use eventOps;
      -use images;
      +use time();
      +use markup();
      +use project();
      +use studios();
      +use events();
      +use series();
      +use series_dates();
      +use series_events();
      +use user_stats();
      +use localization();
      +use eventOps();
      +use images();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/event_history.cgi b/website/agenda/planung/event_history.cgi
      index fb729df..1dcae56 100755
      --- a/website/agenda/planung/event_history.cgi
      +++ b/website/agenda/planung/event_history.cgi
      @@ -2,33 +2,28 @@
       
       use warnings "all";
       use strict;
      -use URI::Escape;
      -use Encode;
      +
      +use URI::Escape();
      +use Encode();
       use Data::Dumper;
      -use MIME::Base64;
      +use MIME::Base64();
      +use Text::Diff::FormattedHTML();
       
      -#use Text::Diff ();
      -use Text::Diff::FormattedHTML;
      +use params();
      +use config();
      +use log();
      +use template();
      +use db();
      +use auth();
      +use uac();
      +use time();
      +use markup();
      +use studios();
      +use event_history();
      +use events();
      +use series_events();
      +use localization();
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use db;
      -use auth;
      -use uac;
      -
      -#use roles;
      -use time;
      -use markup;
      -use studios;
      -use event_history;
      -use events;
      -
      -#use series;
      -#use series_dates;
      -use series_events;
      -use localization;
       binmode STDOUT, ":utf8";
       
       my $r = shift;
      diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi
      index 261efbe..5eedaba 100755
      --- a/website/agenda/planung/help.cgi
      +++ b/website/agenda/planung/help.cgi
      @@ -2,20 +2,21 @@
       
       use warnings "all";
       use strict;
      -use Data::Dumper;
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use auth;
      -use uac;
      -use roles;
      -use studios;
      -use markup;
      -use URI::Escape;
      -use Encode;
      -use localization;
      +use Data::Dumper;
      +use URI::Escape();
      +use Encode();
      +
      +use params();
      +use config();
      +use log();
      +use template();
      +use auth();
      +use uac();
      +use roles();
      +use studios();
      +use markup();
      +use localization();
       
       #binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi
      index 0f83de0..4fc9709 100755
      --- a/website/agenda/planung/image.cgi
      +++ b/website/agenda/planung/image.cgi
      @@ -1,29 +1,31 @@
       #! /usr/bin/perl -w
       
      -use warnings "all";
       use strict;
      +use warnings;
      +no warnings 'redefine';
      +
       use Data::Dumper;
       
      -use File::stat;
      -use Time::localtime;
      +use File::stat();
      +use Time::localtime();
       use CGI::Simple;# qw(header param Vars escapeHTML uploadInfo cgi_error);
      -use URI::Escape;
      +use URI::Escape();
       
      -use time;
      -use images;
      -use params;
      -use config;
      -use log;
      -use template;
      -use db;
      -use auth;
      -use uac;
      -use project;
      -use time;
      -use markup;
      -use studios;
      -use series;
      -use localization;
      +use time();
      +use images();
      +use params();
      +use config();
      +use log();
      +use template();
      +use db();
      +use auth();
      +use uac();
      +use project();
      +use time();
      +use markup();
      +use studios();
      +use series();
      +use localization();
       
       binmode STDOUT, ":utf8";
       
      @@ -175,7 +177,7 @@ sub show_image {
       		# put selected image first
       		$selectedFilename = 'not-found';
       		if ( defined $selectedImage ) {
      -			$finalResults = [ $selectedImage ];
      +			push @$finalResults, $selectedImage;
       			$selectedFilename = $selectedImage->{filename};
       		}
       
      @@ -186,13 +188,13 @@ sub show_image {
       		$results = $finalResults;
       	}
       
      -	if ( $params->{template} =~ /edit/ ) {
      -	    my $result = $results->[0];
      -        $result->{missing_licence}=1 if (! defined $result->{licence} ) || ( $result->{licence}!~/\S/);
      -		$results = [ $result ] ;
      -	}
      +	if ( scalar @$results !=0 ) {
      +	    if ( $params->{template} =~ /edit/ ) {
      +	        my $result = $results->[0];
      +            $result->{missing_licence}=1 if (! defined $result->{licence} ) || ( $result->{licence}!~/\S/);
      +		    $results = [ $result ] ;
      +	    }
       
      -	if ( defined $results ) {
       		$results = modify_results( $results, $permissions, $user, $local_media_url );
       	}
       
      @@ -202,7 +204,7 @@ sub show_image {
       	my $template_params = {
       		'search'     => $search,
       		'images'     => $results,
      -		'count'      => @$results . '',
      +		'count'      => scalar @$results,
       		'projects'   => project::get_with_dates($config),
       		'project_id' => $params->{project_id},
       		'studio_id'  => $params->{studio_id},
      @@ -211,8 +213,8 @@ sub show_image {
       
       	#    print STDERR
       	$template_params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'image' } );
      -	$template_params = uac::set_template_permissions( $permissions, $template_params );
      -
      +	$template_params= uac::set_template_permissions( $permissions, $template_params );
      +    $template_params->{no_results}=1 if scalar @$results==0;
       	#set global values for update and delete, per image values are evaluated later
       	$template_params->{allow}->{update_image} =
       	  $template_params->{allow}->{update_image_own} || $template_params->{allow}->{seriesupdate_image_others};
      @@ -266,7 +268,7 @@ sub save_image {
       	my $dbh = db::connect($config);
       
       	print STDERR "going to save\n";
      -	print STDERR Dumper($image);
      +	#print STDERR Dumper($image);
       
       	my $entries = images::get(
       		$config,
      @@ -321,7 +323,7 @@ sub delete_image {
       		filename   => $params->{delete_image},
       	};
       	my $result = images::delete( $dbh, $image );
      -	print STDERR "delete result=" . Dumper($result);
      +	#print STDERR "delete result=" . Dumper($result);
       
       	return;
       	my $action_result = '';
      diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi
      index e7a6236..c9dc52a 100755
      --- a/website/agenda/planung/imageUpload.cgi
      +++ b/website/agenda/planung/imageUpload.cgi
      @@ -9,17 +9,18 @@ use Apache2::Upload;
       
       delete $INC{CGI};
       require 'CGI.pm';
      -use Date::Calc;
      -use Time::Local;
      -use Image::Magick;
      -use Image::Magick::Square;
       
      -use config;
      -use auth;
      -use uac;
      -use studios;
      -use template;
      -use images;
      +use Date::Calc();
      +use Time::Local();
      +use Image::Magick();
      +use Image::Magick::Square();
      +
      +use config();
      +use auth();
      +use uac();
      +use studios();
      +use template();
      +use images();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js
      index b5ccfd2..f59fcf4 100644
      --- a/website/agenda/planung/js/calendar.js
      +++ b/website/agenda/planung/js/calendar.js
      @@ -320,7 +320,7 @@ function getNearestDatetime(){
                   var distance=Math.abs(delta);
                   if (distance0 ) return;
      -        handleSchedule($(this).attr("id"), $(this).attr("date"), event);
      +        handleSchedule($(this).attr("id"), $(this).attr("start"), event);
           });
       
           //create schedule within studio timeslots
      @@ -1031,7 +1031,7 @@ function handleWorktime(id, event){
           if (project_id<0)   return;
           if (studio_id<0)    return;
           if (schedule_id<0)  return;
      -    var start_date=$(this).attr("date");
      +    var start_date=$(this).attr("start");
       
           var url="work_time.cgi?action=show_new_event_from_schedule&project_id="+project_id+"&studio_id="+studio_id+"&schedule_id="+schedule_id+"&start_date="+start_date;
           if(event.which==1){
      diff --git a/website/agenda/planung/localization.cgi b/website/agenda/planung/localization.cgi
      index 012b361..bd312c7 100755
      --- a/website/agenda/planung/localization.cgi
      +++ b/website/agenda/planung/localization.cgi
      @@ -1,15 +1,17 @@
       #! /usr/bin/perl -w 
       
      -use warnings "all";
       use strict;
      -use Data::Dumper;
      +use warnings;
      +no warnings 'redefine';
       
      -use config;
      -use params;
      -use log;
      -use JSON;
      -use auth;
      -use localization;
      +use Data::Dumper;
      +use JSON();
      +
      +use config();
      +use params();
      +use log();
      +use auth();
      +use localization();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/notify_events.cgi b/website/agenda/planung/notify_events.cgi
      index a70fc31..9a2a187 100755
      --- a/website/agenda/planung/notify_events.cgi
      +++ b/website/agenda/planung/notify_events.cgi
      @@ -2,33 +2,24 @@
       
       use warnings "all";
       use strict;
      -use URI::Escape;
      -use Encode;
      +use URI::Escape();
      +use Encode();
       use Data::Dumper;
      +use MIME::Lite();
       
      -#use Text::Diff::FormattedHTML;
      -use MIME::Lite;
      +use params();
      +use config();
      +use log();
      +use template();
      +use db();
      +use auth();
      +use uac();
      +use time();
      +use markup();
      +use studios();
      +use series();
      +use localization();
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use db;
      -use auth;
      -use uac;
      -
      -#use roles;
      -use time;
      -use markup;
      -use studios;
      -
      -#use event_history;
      -#use events;
      -use series;
      -
      -#use series_dates;
      -#use series_events;
      -use localization;
       binmode STDOUT, ":utf8";
       
       my $r = shift;
      diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi
      index f441306..4b491a1 100644
      --- a/website/agenda/planung/playout.cgi
      +++ b/website/agenda/planung/playout.cgi
      @@ -4,26 +4,26 @@ use warnings "all";
       use strict;
       use Data::Dumper;
       
      -use URI::Escape;
      -use Encode;
      -use localization;
      +use URI::Escape();
      +use Encode();
      +use localization();
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use auth;
      -use uac;
      -use roles;
      -use project;
      -use studios;
      -use events;
      -use series;
      -use series_schedule;
      -use series_events;
      -use series_dates;
      -use markup;
      -use playout;
      +use params();
      +use config();
      +use log();
      +use template();
      +use auth();
      +use uac();
      +use roles();
      +use project();
      +use studios();
      +use events();
      +use series();
      +use series_schedule();
      +use series_events();
      +use series_dates();
      +use markup();
      +use playout();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi
      index e35234d..71eefff 100755
      --- a/website/agenda/planung/projects.cgi
      +++ b/website/agenda/planung/projects.cgi
      @@ -4,16 +4,16 @@ use warnings "all";
       use strict;
       use Data::Dumper;
       
      -use config;
      -use params;
      -use log;
      -use template;
      -use auth;
      -use roles;
      -use uac;
      -use studios;
      -use series;
      -use localization;
      +use config();
      +use params();
      +use log();
      +use template();
      +use auth();
      +use roles();
      +use uac();
      +use studios();
      +use series();
      +use localization();
       
       my $r = shift;
       ( my $cgi, my $params, my $error ) = params::get($r);
      diff --git a/website/agenda/planung/requestPassword.cgi b/website/agenda/planung/requestPassword.cgi
      index 3b99163..79debb6 100644
      --- a/website/agenda/planung/requestPassword.cgi
      +++ b/website/agenda/planung/requestPassword.cgi
      @@ -5,11 +5,11 @@ use strict;
       
       use Data::Dumper;
       
      -use params;
      -use config;
      -use db;
      -use auth;
      -use password_requests;
      +use params();
      +use config();
      +use db();
      +use auth();
      +use password_requests();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi
      index 71ee003..7c5b246 100755
      --- a/website/agenda/planung/roles.cgi
      +++ b/website/agenda/planung/roles.cgi
      @@ -4,15 +4,16 @@ use warnings "all";
       use strict;
       use Data::Dumper;
       
      -use config;
      -use params;
      -use log;
      -use template;
      -use auth;
      -use roles;
      -use uac;
      -use studios;
      -use localization;
      +use config();
      +use params();
      +use log();
      +use template();
      +use auth();
      +use roles();
      +use uac();
      +use studios();
      +use localization();
      +
       binmode STDOUT, ":utf8";
       
       my $r = shift;
      diff --git a/website/agenda/planung/selectEvent.cgi b/website/agenda/planung/selectEvent.cgi
      index e862750..0bed64c 100755
      --- a/website/agenda/planung/selectEvent.cgi
      +++ b/website/agenda/planung/selectEvent.cgi
      @@ -4,26 +4,15 @@ use warnings "all";
       use strict;
       use Data::Dumper;
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use auth;
      -use uac;
      +use params();
      +use config();
      +use log();
      +use template();
      +use auth();
      +use uac();
       
      -#use roles;
      -#use project;
      -#use studios;
      -#use events;
      -use series;
      -
      -#use series_schedule;
      -#use series_events;
      -#use series_dates;
      -#use markup;
      -#use URI::Escape;
      -#use Encode;
      -use localization;
      +use series();
      +use localization();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/selectSeries.cgi b/website/agenda/planung/selectSeries.cgi
      index a027fac..df9fe2e 100755
      --- a/website/agenda/planung/selectSeries.cgi
      +++ b/website/agenda/planung/selectSeries.cgi
      @@ -4,14 +4,14 @@ use warnings "all";
       use strict;
       use Data::Dumper;
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use auth;
      -use uac;
      -use series;
      -use localization;
      +use params();
      +use config();
      +use log();
      +use template();
      +use auth();
      +use uac();
      +use series();
      +use localization();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi
      index 17a32b4..ef103f6 100755
      --- a/website/agenda/planung/series.cgi
      +++ b/website/agenda/planung/series.cgi
      @@ -1,28 +1,30 @@
       #! /usr/bin/perl -w 
       
      -use warnings "all";
       use strict;
      -use Data::Dumper;
      +use warnings;
      +no warnings 'redefine';
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use auth;
      -use uac;
      -use roles;
      -use project;
      -use studios;
      -use events;
      -use series;
      -use series_schedule;
      -use series_events;
      -use series_dates;
      -use user_stats;
      -use markup;
      +use Data::Dumper;
       use URI::Escape;
      -use Encode;
      -use localization;
      +use Encode();
      +
      +use params();
      +use config();
      +use log();
      +use template();
      +use auth();
      +use uac();
      +use roles();
      +use project();
      +use studios();
      +use events();
      +use series();
      +use series_schedule();
      +use series_events();
      +use series_dates();
      +use user_stats();
      +use markup();
      +use localization();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/showImage.cgi b/website/agenda/planung/showImage.cgi
      index 2266cd3..e699f64 100644
      --- a/website/agenda/planung/showImage.cgi
      +++ b/website/agenda/planung/showImage.cgi
      @@ -1,30 +1,19 @@
       #! /usr/bin/perl -w 
       
      -use warnings "all";
       use strict;
      +use warnings;
      +no warnings 'redefine';
      +
       use Data::Dumper;
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use auth;
      -use uac;
      -
      -#use roles;
      -#use project;
      -#use studios;
      -#use events;
      -#use series;
      -use images;
      -
      -#use series_schedule;
      -#use series_events;
      -#use series_dates;
      -#use markup;
      -#use URI::Escape;
      -#use Encode;
      -use localization;
      +use params();
      +use config();
      +use log();
      +use template();
      +use auth();
      +use uac();
      +use images();
      +use localization();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio_timeslots.cgi
      index bb5db68..501720d 100755
      --- a/website/agenda/planung/studio_timeslots.cgi
      +++ b/website/agenda/planung/studio_timeslots.cgi
      @@ -2,23 +2,24 @@
       
       use warnings "all";
       use strict;
      -use Data::Dumper;
       
      -use params;
      -use config;
      -use log;
      -use template;
      -use auth;
      -use uac;
      -use roles;
      -use project;
      -use studios;
      -use studio_timeslot_schedule;
      -use studio_timeslot_dates;
      -use markup;
      -use URI::Escape;
      -use Encode;
      -use localization;
      +use Data::Dumper;
      +use URI::Escape();
      +use Encode();
      +
      +use params();
      +use config();
      +use log();
      +use template();
      +use auth();
      +use uac();
      +use roles();
      +use project();
      +use studios();
      +use studio_timeslot_schedule();
      +use studio_timeslot_dates();
      +use markup();
      +use localization();
       
       binmode STDOUT, ":utf8";
       
      diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi
      index 485d15a..581173f 100755
      --- a/website/agenda/planung/studios.cgi
      +++ b/website/agenda/planung/studios.cgi
      @@ -4,16 +4,16 @@ use warnings "all";
       use strict;
       use Data::Dumper;
       
      -use config;
      -use params;
      -use log;
      -use template;
      -use auth;
      -use roles;
      -use uac;
      -use studios;
      -use series;
      -use localization;
      +use config();
      +use params();
      +use log();
      +use template();
      +use auth();
      +use roles();
      +use uac();
      +use studios();
      +use series();
      +use localization();
       
       my $r = shift;
       ( my $cgi, my $params, my $error ) = params::get($r);
      diff --git a/website/agenda/planung/templates/create_events.html b/website/agenda/planung/templates/create_events.html
      index 4784d38..1602aab 100644
      --- a/website/agenda/planung/templates/create_events.html
      +++ b/website/agenda/planung/templates/create_events.html
      @@ -1,65 +1,54 @@
       
       
      -    
      +    );
      +
       
      -    
      +function assign_series(project_id, studio_id){
      +    if (project_id == '') return false;
      +    if (studio_id  == '')  return false;
       
      -    assign series to project  and studio 
      +    var url="create_events.cgi?project_id="+project_id+'&studio_id='+studio_id+'&action=create_events';
      +    $('#create_event_form').submit();
      +    return false;
      +}
      +
       
      -    
      -    
      -
      -
      Series
      - +

      create events from schedule

      - - - - - - - -
      -
      +
      + + + - - - + duration + + + +
      + +
      +created events from till
      + events created +
      +
      + + + + + diff --git a/website/agenda/planung/templates/image_edit.html b/website/agenda/planung/templates/image_edit.html index ab0a747..433b3f0 100644 --- a/website/agenda/planung/templates/image_edit.html +++ b/website/agenda/planung/templates/image_edit.html @@ -1,8 +1,5 @@ - - - + +found no image + +
      diff --git a/website/agenda/planung/user_settings.cgi b/website/agenda/planung/user_settings.cgi index e73da01..1939c7c 100755 --- a/website/agenda/planung/user_settings.cgi +++ b/website/agenda/planung/user_settings.cgi @@ -4,17 +4,17 @@ use warnings "all"; use strict; use Data::Dumper; -use config; -use log; -use template; -use auth; -use uac; -use roles; -use project; -use studios; -use params; -use user_settings; -use localization; +use config(); +use log(); +use template(); +use auth(); +use uac(); +use roles(); +use project(); +use studios(); +use params(); +use user_settings(); +use localization(); my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); diff --git a/website/agenda/planung/user_stats.cgi b/website/agenda/planung/user_stats.cgi index 27678b7..05a5bdf 100755 --- a/website/agenda/planung/user_stats.cgi +++ b/website/agenda/planung/user_stats.cgi @@ -4,18 +4,18 @@ use warnings "all"; use strict; use Data::Dumper; -use config; -use log; -use template; -use auth; -use uac; -use roles; -use project; -use studios; -use params; -use user_settings; -use user_stats; -use localization; +use config(); +use log(); +use template(); +use auth(); +use uac(); +use roles(); +use project(); +use studios(); +use params(); +use user_settings(); +use user_stats(); +use localization(); my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index 42c026a..bc14783 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -4,16 +4,16 @@ use warnings "all"; use strict; use Data::Dumper; -use config; -use log; -use template; -use auth; -use uac; -use roles; -use studios; -use params; -use localization; -use password_requests; +use config(); +use log(); +use template(); +use auth(); +use uac(); +use roles(); +use studios(); +use params(); +use localization(); +use password_requests(); my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); diff --git a/website/agenda/planung/work_time.cgi b/website/agenda/planung/work_time.cgi index 4b45c22..e04305a 100755 --- a/website/agenda/planung/work_time.cgi +++ b/website/agenda/planung/work_time.cgi @@ -2,22 +2,23 @@ use warnings "all"; use strict; -use Data::Dumper; -use params; -use config; -use log; -use template; -use auth; -use uac; -use roles; -use project; -use studios; -use work_schedule; -use work_dates; -use URI::Escape; -use Encode; -use localization; +use Data::Dumper; +use URI::Escape(); +use Encode(); + +use params(); +use config(); +use log(); +use template(); +use auth(); +use uac(); +use roles(); +use project(); +use studios(); +use work_schedule(); +use work_dates(); +use localization(); binmode STDOUT, ":utf8"; diff --git a/website/agenda/series.cgi b/website/agenda/series.cgi old mode 100644 new mode 100755 index 763c272..3eadc5c --- a/website/agenda/series.cgi +++ b/website/agenda/series.cgi @@ -4,25 +4,11 @@ use warnings "all"; use strict; use Data::Dumper; -use params; -use config; -#use log; -use template; -#use auth; -#use uac; -#use roles; -#use project; -use studios; -#use events; -use series; -#use series_schedule; -#use series_events; -#use series_dates; -#use user_stats; -#use markup; -#use URI::Escape; -#use Encode; -#use localization; +use params(); +use config(); +use template(); +use studios(); +use series(); binmode STDOUT, ":utf8"; print "Content-Type: text/html; charset=utf-8\n\n"; diff --git a/website/agenda/series_names.cgi b/website/agenda/series_names.cgi index 90f8f12..ef50def 100755 --- a/website/agenda/series_names.cgi +++ b/website/agenda/series_names.cgi @@ -11,14 +11,14 @@ use CGI qw(header param Vars); $CGI::POST_MAX = 1000; $CGI::DISABLE_UPLOADS = 1; -use params; -use db; -use markup; -use cache; -use log; -use config; -use template; -use project; +use params(); +use db(); +use markup(); +use cache(); +use log(); +use config(); +use template(); +use project(); binmode STDOUT, ":utf8"; diff --git a/website/agenda/templates/event_details.html b/website/agenda/templates/event_details.html index a5bb161..df493ad 100644 --- a/website/agenda/templates/event_details.html +++ b/website/agenda/templates/event_details.html @@ -43,23 +43,19 @@ -
      <TMPL_VAR series_name>
      Bild:
      -
      -
      <TMPL_VAR series_name>
      Bild:
      -
      diff --git a/website/agenda/upload_playout.cgi b/website/agenda/upload_playout.cgi index de6b2c7..9bdbda8 100755 --- a/website/agenda/upload_playout.cgi +++ b/website/agenda/upload_playout.cgi @@ -11,11 +11,11 @@ $CGI::DISABLE_UPLOADS = 1; use Data::Dumper; #use Apache2::Request; -use JSON; -use params; -use config; -use log; -use playout; +use JSON(); +use params(); +use config(); +use log(); +use playout(); my $r = shift; @@ -39,7 +39,7 @@ if ( $0 =~ /upload_playout.*?\.cgi$/ ) { my $len = $r->headers_in()->get('Content-Length'); print "Content-type:text/plain\n\n"; - my $json = decode_json($content); + my $json = JSON::decode_json($content); $json->{project_id} = $params->{project_id} if defined $params->{project_id}; $json->{studio_id} = $params->{studio_id} if defined $params->{studio_id}; $config->{access}->{write} = 1; From 05b1251c1ad7c5f24299a025ff7b11704a143075 Mon Sep 17 00:00:00 2001 From: Milan Date: Wed, 29 Aug 2018 00:10:15 +0200 Subject: [PATCH 020/391] refactoring optimize imports reformat source code remove unused cpu and memory log functionality --- lib/calcms/UTF8DBI.pm | 43 +- lib/calcms/aggregator.pm | 483 ++- lib/calcms/audio_recordings.pm | 186 +- lib/calcms/auth.pm | 326 +- lib/calcms/cache.pm | 206 +- lib/calcms/calendar.pm | 835 ++--- lib/calcms/comments.pm | 966 +++--- lib/calcms/config.pm | 25 +- lib/calcms/creole_wiki.pm | 331 +- lib/calcms/db.pm | 338 +- lib/calcms/eventOps.pm | 268 +- lib/calcms/event_history.pm | 182 +- lib/calcms/events.pm | 2758 ++++++++--------- lib/calcms/images.pm | 729 ++--- lib/calcms/localization.pm | 165 +- lib/calcms/log.pm | 188 +- lib/calcms/mail.pm | 30 +- lib/calcms/markup.pm | 689 ++-- lib/calcms/params.pm | 88 +- lib/calcms/password_requests.pm | 199 +- lib/calcms/playout.pm | 495 +-- lib/calcms/project.pm | 550 ++-- lib/calcms/projects.pm | 1 + lib/calcms/roles.pm | 224 +- lib/calcms/series.pm | 1503 ++++----- lib/calcms/series_dates.pm | 687 ++-- lib/calcms/series_events.pm | 671 ++-- lib/calcms/series_schedule.pm | 169 +- lib/calcms/startup.pl | 37 +- lib/calcms/studio_timeslot_dates.pm | 561 ++-- lib/calcms/studio_timeslot_schedule.pm | 141 +- lib/calcms/studios.pm | 208 +- lib/calcms/template.pm | 321 +- lib/calcms/time.pm | 876 +++--- lib/calcms/uac.pm | 913 +++--- lib/calcms/user_settings.pm | 318 +- lib/calcms/user_stats.pm | 284 +- lib/calcms/work_dates.pm | 470 +-- lib/calcms/work_schedule.pm | 138 +- website/agenda/add_comment.cgi | 1 - website/agenda/aggregate.cgi | 6 - website/agenda/cal.cgi | 2 - website/agenda/category.cgi | 4 - website/agenda/comments.cgi | 3 - website/agenda/events.cgi | 3 - website/agenda/planung/assign_series.cgi | 1 - website/agenda/planung/assignments.cgi | 9 +- website/agenda/planung/audio_recordings.cgi | 7 +- website/agenda/planung/calendar.cgi | 92 +- website/agenda/planung/comment.cgi | 1 - website/agenda/planung/create_events.cgi | 120 +- website/agenda/planung/error_log.cgi | 1 - website/agenda/planung/event.cgi | 62 +- website/agenda/planung/event_history.cgi | 1 - website/agenda/planung/help.cgi | 1 - website/agenda/planung/image.cgi | 94 +- website/agenda/planung/imageUpload.cgi | 11 +- website/agenda/planung/localization.cgi | 2 +- website/agenda/planung/notify_events.cgi | 5 +- website/agenda/planung/playout.cgi | 1 - website/agenda/planung/projects.cgi | 1 - website/agenda/planung/requestPassword.cgi | 154 +- website/agenda/planung/roles.cgi | 2 - website/agenda/planung/selectEvent.cgi | 1 - website/agenda/planung/selectSeries.cgi | 1 - website/agenda/planung/series.cgi | 90 +- website/agenda/planung/show-playout.cgi | 2 - website/agenda/planung/showImage.cgi | 40 +- website/agenda/planung/studio_timeslots.cgi | 2 - website/agenda/planung/studios.cgi | 2 - .../agenda/planung/templates/.old/.htaccess | 1 - .../.old/event_edit_user_content.ok.html | 378 --- .../planung/templates/.old/event_manager.html | 152 - .../agenda/planung/templates/.old/menu.html | 283 -- .../planung/templates/.old/select_studio.html | 24 - website/agenda/planung/user_settings.cgi | 1 - website/agenda/planung/user_stats.cgi | 2 - website/agenda/planung/users.cgi | 33 +- website/agenda/planung/work_time.cgi | 2 - website/agenda/series.cgi | 1 - website/agenda/series_names.cgi | 3 - 81 files changed, 9242 insertions(+), 9962 deletions(-) delete mode 100644 website/agenda/planung/templates/.old/.htaccess delete mode 100644 website/agenda/planung/templates/.old/event_edit_user_content.ok.html delete mode 100644 website/agenda/planung/templates/.old/event_manager.html delete mode 100644 website/agenda/planung/templates/.old/menu.html delete mode 100644 website/agenda/planung/templates/.old/select_studio.html diff --git a/lib/calcms/UTF8DBI.pm b/lib/calcms/UTF8DBI.pm index 2d070d4..daaff4c 100644 --- a/lib/calcms/UTF8DBI.pm +++ b/lib/calcms/UTF8DBI.pm @@ -4,15 +4,18 @@ use DBI 1.21; use utf8; -use Encode; +use Encode(); + +package UTF8DBI; +use base DBI; -package UTF8DBI; use base DBI; sub _utf8_ { - if (ref $_ eq 'ARRAY') { _utf8_() foreach @$_ } - elsif (ref $_ eq 'HASH' ) { _utf8_() foreach values %$_ } - else { + if ( ref $_ eq 'ARRAY' ) { _utf8_() foreach @$_ } + elsif ( ref $_ eq 'HASH' ) { _utf8_() foreach values %$_ } + else { Encode::_utf8_on($_); - if (Encode::is_utf8($_) && ! Encode::is_utf8($_, 1)) { + if ( Encode::is_utf8($_) && !Encode::is_utf8( $_, 1 ) ) { + #$_ = '⁂malformed-UTF8‼' #die "Malformed utf8 string in database" #print data_string_desc($_)."\n" #data_string_desc(STRING); @@ -21,25 +24,25 @@ sub _utf8_ { #Encode::_utf8_off($_); #Encode::decode_utf8($_); #Encode::encode_utf8($_); - } - }; + } + } $_; -}; +} +package UTF8DBI::db; +use base DBI::db; -package UTF8DBI::db; use base DBI::db; +sub selectrow_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectrow_arrayref(@_) } +sub selectrow_hashref { return UTF8DBI::_utf8_ for shift->SUPER::selectrow_hashref(@_) } +sub selectall_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectall_arrayref(@_) } +sub selectall_hashref { return UTF8DBI::_utf8_ for shift->SUPER::selectall_hashref(@_) } +sub selectcol_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectcol_arrayref(@_) } -sub selectrow_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectrow_arrayref(@_) }; -sub selectrow_hashref { return UTF8DBI::_utf8_ for shift->SUPER::selectrow_hashref (@_) }; -sub selectall_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectall_arrayref(@_) }; -sub selectall_hashref { return UTF8DBI::_utf8_ for shift->SUPER::selectall_hashref (@_) }; -sub selectcol_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectcol_arrayref(@_) }; +sub selectrow_array { @{ shift->selectrow_arrayref(@_) } } -sub selectrow_array { @{shift->selectrow_arrayref(@_)} }; +package UTF8DBI::st; +use base DBI::st; - -package UTF8DBI::st; use base DBI::st; - -sub fetch { return UTF8DBI::_utf8_ for shift->SUPER::fetch (@_) }; +sub fetch { return UTF8DBI::_utf8_ for shift->SUPER::fetch(@_) } 1; diff --git a/lib/calcms/aggregator.pm b/lib/calcms/aggregator.pm index 634a4b5..4781e33 100644 --- a/lib/calcms/aggregator.pm +++ b/lib/calcms/aggregator.pm @@ -1,301 +1,292 @@ use warnings "all"; use strict; -use events; -use comments; -use calendar; -use project; +use events(); +use comments(); +use calendar(); +use project(); package aggregator; require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_cache configure_cache put_cache get_list check_params); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_cache configure_cache put_cache get_list check_params); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); #my $cgi=undef; -sub get_list{ - my $config = shift; - my $request=shift; - - my $params=$request->{params}->{checked}; - my $debug=$config->{system}->{debug}; +sub get_list { + my $config = shift; + my $request = shift; - #customize prefiltered request parameters - $request->{params}->{original}->{date}=$request->{params}->{checked}->{date}; - if ($params->{event_id}ne''){ - $request->{params}->{original}->{template}='event_details.html'; - }else{ - $request->{params}->{original}->{template}='event_list.html'; - } - $request->{params}->{checked} = events::check_params($config, $request->{params}->{original}); - log::write($config, 'params',$request->{params}->{checked}) if ($debug); + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $content=''; - my $results=events::get($config, $request); - events::render($content, $config, $request, $results); -# calendar::get_cached_or_render($content,$request); + #customize prefiltered request parameters + $request->{params}->{original}->{date} = $request->{params}->{checked}->{date}; + if ( $params->{event_id} ne '' ) { + $request->{params}->{original}->{template} = 'event_details.html'; + } else { + $request->{params}->{original}->{template} = 'event_list.html'; + } + $request->{params}->{checked} = events::check_params( $config, $request->{params}->{original} ); + + my $content = ''; + my $results = events::get( $config, $request ); + events::render( $content, $config, $request, $results ); + # calendar::get_cached_or_render($content,$request); - #set url to embed as last loaded url in javascript - my $date=$params->{date}||''; - $date='heute' if ($params->{date}eq'today'); - $date=$results->[0]->{day} if ($params->{event_id}ne''); - my $url=''; - #$config->{controllers}->{events}.'/'.$date.'/'; - if ($params->{from_date}ne'' && $params->{till_date}ne''){ - $url=$config->{controllers}->{events}.'/'.$params->{from_date}.'/'.$params->{till_date} ; - }else{ - $url=$config->{controllers}->{events}.'/'.$params->{from_date}.'/'.$params->{till_date} ; - } + #set url to embed as last loaded url in javascript + my $date = $params->{date} || ''; + $date = 'heute' if ( $params->{date} eq 'today' ); + $date = $results->[0]->{day} if ( $params->{event_id} ne '' ); + my $url = ''; - #count most projects - my $used_projects={}; - for my $result (@$results){ - my $project=$result->{project_title}||''; - $used_projects->{$project}++; - } - my @used_projects=reverse sort {$used_projects->{$a} <=> $used_projects->{$b}} (keys %$used_projects); - my $most_used_project=$used_projects[0]; - #use Data::Dumper;print STDERR Dumper(\@used_projects); - - return { - day => $results->[0]->{day}, - start_datetime => $results->[0]->{start_datetime}, - event_id => $results->[0]->{event_id}, - program => $results->[0]->{program}, - project_title => $most_used_project, - series_name => $results->[0]->{series_name}, - title => $results->[0]->{title}, - content => $content, - results => $results, - url => $url, - }; + #$config->{controllers}->{events}.'/'.$date.'/'; + if ( $params->{from_date} ne '' && $params->{till_date} ne '' ) { + $url = $config->{controllers}->{events} . '/' . $params->{from_date} . '/' . $params->{till_date}; + } else { + $url = $config->{controllers}->{events} . '/' . $params->{from_date} . '/' . $params->{till_date}; + } + + #count most projects + my $used_projects = {}; + for my $result (@$results) { + my $project = $result->{project_title} || ''; + $used_projects->{$project}++; + } + my @used_projects = reverse sort { $used_projects->{$a} <=> $used_projects->{$b} } ( keys %$used_projects ); + my $most_used_project = $used_projects[0]; + + #use Data::Dumper;print STDERR Dumper(\@used_projects); + + return { + day => $results->[0]->{day}, + start_datetime => $results->[0]->{start_datetime}, + event_id => $results->[0]->{event_id}, + program => $results->[0]->{program}, + project_title => $most_used_project, + series_name => $results->[0]->{series_name}, + title => $results->[0]->{title}, + content => $content, + results => $results, + url => $url, + }; } -sub get_menu{ - my $config = shift; - my $request=shift; - my $date=shift; - my $results=shift; - - my $params=$request->{params}->{checked}; +sub get_menu { + my $config = shift; + my $request = shift; + my $date = shift; + my $results = shift; - #load details only on demand - if ($params->{event_id}ne''){ - $request->{params}->{original}->{template}='event_menu.html'; - $request->{params}->{original}->{event_id}=undef; - $request->{params}->{original}->{date}=$date; - $request->{params}->{checked} =events::check_params($config, $request->{params}->{original}); - $results=events::get($config, $request); - }else{ - $request->{params}->{checked}->{template}=template::check('event_menu.html'); - } + my $params = $request->{params}->{checked}; - #events menu - my $output=''; - events::render($output, $config, $request, $results); + #load details only on demand + if ( $params->{event_id} ne '' ) { + $request->{params}->{original}->{template} = 'event_menu.html'; + $request->{params}->{original}->{event_id} = undef; + $request->{params}->{original}->{date} = $date; + $request->{params}->{checked} = events::check_params( $config, $request->{params}->{original} ); + $results = events::get( $config, $request ); + } else { + $request->{params}->{checked}->{template} = template::check('event_menu.html'); + } - return { - content => $output - }; + #events menu + my $output = ''; + events::render( $output, $config, $request, $results ); + + return { content => $output }; } -sub get_calendar{ - my $config = shift; - my $request=shift; - my $date=shift; - - my $params=$request->{params}->{checked}; - my $debug=$config->{system}->{debug}; +sub get_calendar { + my $config = shift; + my $request = shift; + my $date = shift; - $request->{params}->{original}->{template} = 'calendar.html'; - $request->{params}->{original}->{date} = $date if (defined $date); - $request->{params}->{checked} = calendar::check_params($config, $request->{params}->{original}); - $params = $request->{params}->{checked}; - log::write($config, 'params',$params) if ($debug); + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - #set query string for caching - my $options=[]; - push (@$options,'date='.$params->{date}) if ($params->{date} ne''); - push (@$options,'from_date='.$params->{from_date}) if ($params->{from_date} ne''); - push (@$options,'till_date='.$params->{till_date}) if ($params->{till_date} ne''); - $ENV{QUERY_STRING}=''.join("&",@$options); + $request->{params}->{original}->{template} = 'calendar.html'; + $request->{params}->{original}->{date} = $date if ( defined $date ); + $request->{params}->{checked} = calendar::check_params( $config, $request->{params}->{original} ); + $params = $request->{params}->{checked}; - my $content=''; - calendar::get_cached_or_render($content, $config, $request); + #set query string for caching + my $options = []; + push( @$options, 'date=' . $params->{date} ) if ( $params->{date} ne '' ); + push( @$options, 'from_date=' . $params->{from_date} ) if ( $params->{from_date} ne '' ); + push( @$options, 'till_date=' . $params->{till_date} ) if ( $params->{till_date} ne '' ); + $ENV{QUERY_STRING} = '' . join( "&", @$options ); - return { - content => $content - }; + my $content = ''; + calendar::get_cached_or_render( $content, $config, $request ); + + return { content => $content }; } -sub get_newest_comments{ - my $config = shift; - my $request=shift; +sub get_newest_comments { + my $config = shift; + my $request = shift; - my $params={ - template =>'comments_newest.html', - limit => 10, - type =>'list', - show_max => 3 - }; - $request={ - url => $ENV{QUERY_STRING}, - params => { - original => $params, - checked => comments::check_params($config, $params), - }, - config => $config, - connection => $request->{connection} - }; - my $content=''; - comments::get_cached_or_render($content, $config, $request); - return { - content => $content - }; + my $params = { + template => 'comments_newest.html', + limit => 10, + type => 'list', + show_max => 3 + }; + $request = { + url => $ENV{QUERY_STRING}, + params => { + original => $params, + checked => comments::check_params( $config, $params ), + }, + config => $config, + connection => $request->{connection} + }; + my $content = ''; + comments::get_cached_or_render( $content, $config, $request ); + return { content => $content }; } -sub get_cache{ - my $config = shift; - my $request = shift; +sub get_cache { + my $config = shift; + my $request = shift; - my $params =$request->{params}->{checked}; - my $debug=$config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - if ($config->{cache}->{use_cache} == 1){ - configure_cache($config); - log::write($config, 'cache_files',cache::get_map()) if ($debug); - my $cache=cache::load($config, $params); - log::write($config, 'cache_files',$cache->{action}) if ($debug); - return $cache; - } - return{}; + if ( $config->{cache}->{use_cache} == 1 ) { + configure_cache($config); + my $cache = cache::load( $config, $params ); + return $cache; + } + return {}; } -sub configure_cache{ - my $config = shift; +sub configure_cache { + my $config = shift; - cache::init(); - my $controllers=$config->{controllers}; + cache::init(); + my $controllers = $config->{controllers}; - my $date_pattern=$cache::date_pattern; -# cache::add_map('' ,'programm/index.html'); - cache::add_map('date=today' ,'programm/'.$controllers->{events}.'/today.html'); - cache::add_map('date='.$date_pattern ,'programm/'.$controllers->{events}.'/$1-$2-$3.html'); - cache::add_map('from_date='.$date_pattern.'&till_date='.$date_pattern ,'programm/'.$controllers->{events}.'/$1-$2-$3_$4-$5-$6.html'); - cache::add_map('event_id=(\d+)' ,'programm/'.$controllers->{event}.'/$1.html'); + my $date_pattern = $cache::date_pattern; + + # cache::add_map('' ,'programm/index.html'); + cache::add_map( 'date=today', 'programm/' . $controllers->{events} . '/today.html' ); + cache::add_map( 'date=' . $date_pattern, 'programm/' . $controllers->{events} . '/$1-$2-$3.html' ); + cache::add_map( 'from_date=' . $date_pattern . '&till_date=' . $date_pattern, + 'programm/' . $controllers->{events} . '/$1-$2-$3_$4-$5-$6.html' ); + cache::add_map( 'event_id=(\d+)', 'programm/' . $controllers->{event} . '/$1.html' ); } +sub put_cache { + my $config = shift; + my $request = shift; + my $cache = shift; -sub put_cache{ - my $config = shift; - my $request = shift; - my $cache = shift; - - #write to cache - if ($config->{cache}->{use_cache} == 1){ - cache::save($cache); - } + #write to cache + if ( $config->{cache}->{use_cache} == 1 ) { + cache::save($cache); + } } -sub check_params{ - my $config = shift; - my $params = shift; +sub check_params { + my $config = shift; + my $params = shift; - #get start and stop from projects - my $range= project::get_date_range($config); - my $start_date = $range->{start_date}; - my $end_date = $range->{end_date}; - -# my $project_name=$config->{project}||''; -# log::error($config, 'no default project configured') if($project_name eq ''); -# log::error($config, "no configuration found for project '$project_name'") unless(exists($config->{projects}->{$project_name})); -# my $project=$config->{projects}->{$project_name}||''; -# log::erorr($config, 'no configuration found for project') if($project eq''); -# if ((defined $params->{project}) && ($params->{project}=~/(\w+)/)){ -# $project=$config->{projects}->{$1} if exists($config->{projects}->{$1}); -# } + #get start and stop from projects + my $range = project::get_date_range($config); + my $start_date = $range->{start_date}; + my $end_date = $range->{end_date}; - #filter for date - my $date=time::check_date($params->{date}); - #print STDERR $date."\n"; - if ($date eq ''){ - $date=time::time_to_date(time()) ; - } - # - if ($date eq 'today'){ - $date=time::get_event_date($config); - } + #filter for date + my $date = time::check_date( $params->{date} ); -# $date =$config->{date}->{start_date} if ($date lt $config->{date}->{start_date}); -# $date =$config->{date}->{end_date} if ($date gt $config->{date}->{end_date}); - $date =$start_date if $date lt $start_date; - $date =$end_date if $date gt $end_date; + #print STDERR $date."\n"; + if ( $date eq '' ) { + $date = time::time_to_date( time() ); + } + # + if ( $date eq 'today' ) { + $date = time::get_event_date($config); + } - #filter for date -# my $date=time::check_date($params->{date}); - my $time=time::check_time($params->{time}); - if ((defined $params->{today}) && ($params->{today}eq'1')){ - $date =time::time_to_date(time()); - $params->{date}=$date; - }; + # $date =$config->{date}->{start_date} if ($date lt $config->{date}->{start_date}); + # $date =$config->{date}->{end_date} if ($date gt $config->{date}->{end_date}); + $date = $start_date if $date lt $start_date; + $date = $end_date if $date gt $end_date; - my $from_date=time::check_date($params->{from_date}); - my $till_date=time::check_date($params->{till_date}); + #filter for date + # my $date=time::check_date($params->{date}); + my $time = time::check_time( $params->{time} ); + if ( ( defined $params->{today} ) && ( $params->{today} eq '1' ) ) { + $date = time::time_to_date( time() ); + $params->{date} = $date; + } - my $previous_series=$params->{previous_series} || ''; - if(($previous_series)&&($previous_series=~/(\d+)/)){ - $params->{event_id}=events::get_previous_event_of_series(undef, $config, { - event_id => $1, - exclude_projects => 1, - exclude_locations => 1, - }); - } + my $from_date = time::check_date( $params->{from_date} ); + my $till_date = time::check_date( $params->{till_date} ); - my $next_series=$params->{next_series} || ''; - if(($next_series)&&($next_series=~/(\d+)/)){ - $params->{event_id}=events::get_next_event_of_series(undef, $config, { - event_id => $1, - exclude_projects => 1, - exclude_locations => 1, - }); - } + my $previous_series = $params->{previous_series} || ''; + if ( ($previous_series) && ( $previous_series =~ /(\d+)/ ) ) { + $params->{event_id} = events::get_previous_event_of_series( + undef, $config, + { + event_id => $1, + exclude_projects => 1, + exclude_locations => 1, + } + ); + } - my $event_id=$params->{event_id}||''; - unless ($event_id eq''){ - if ($event_id=~/(\d+)/){ - $event_id=$1; - }else{ - log::error($config, "invalid event_id"); - } - } + my $next_series = $params->{next_series} || ''; + if ( ($next_series) && ( $next_series =~ /(\d+)/ ) ) { + $params->{event_id} = events::get_next_event_of_series( + undef, $config, + { + event_id => $1, + exclude_projects => 1, + exclude_locations => 1, + } + ); + } - my $debug=$params->{debug}||''; - if ($debug=~/([a-z\_\,]+)/){ - $debug=$1; - } + my $event_id = $params->{event_id} || ''; + unless ( $event_id eq '' ) { + if ( $event_id =~ /(\d+)/ ) { + $event_id = $1; + } else { + log::error( $config, "invalid event_id" ); + } + } - #set query string for caching - if ((!exists $ENV{QUERY_STRING}) || ($ENV{QUERY_STRING}eq'')){ - my $options=[]; - push (@$options,'date='.$date) if $date ne''; - push (@$options,'from_date='.$from_date) if $from_date ne''; - push (@$options,'till_date='.$till_date) if $till_date ne''; - push (@$options,'event_id='.$event_id) if $event_id ne''; - $ENV{QUERY_STRING}=''.join("&",@$options); - } + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } - return { - date => $date, - time => $time, - from_date => $from_date, - till_date => $till_date, - event_id => $event_id, -# project => $project, - debug => $debug, - }; -; + #set query string for caching + if ( ( !exists $ENV{QUERY_STRING} ) || ( $ENV{QUERY_STRING} eq '' ) ) { + my $options = []; + push( @$options, 'date=' . $date ) if $date ne ''; + push( @$options, 'from_date=' . $from_date ) if $from_date ne ''; + push( @$options, 'till_date=' . $till_date ) if $till_date ne ''; + push( @$options, 'event_id=' . $event_id ) if $event_id ne ''; + $ENV{QUERY_STRING} = '' . join( "&", @$options ); + } + + return { + date => $date, + time => $time, + from_date => $from_date, + till_date => $till_date, + event_id => $event_id, + + # project => $project, + debug => $debug, + }; } #do not delete last line! diff --git a/lib/calcms/audio_recordings.pm b/lib/calcms/audio_recordings.pm index 802251a..5b51cd9 100644 --- a/lib/calcms/audio_recordings.pm +++ b/lib/calcms/audio_recordings.pm @@ -1,18 +1,18 @@ #!/bin/perl - -package audio_recordings; + +package audio_recordings; use warnings "all"; use strict; use Data::Dumper; -use db; +use db(); require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); # columns: # id, project_id, studio_id, event_id @@ -22,68 +22,68 @@ our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_audio_recordings'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_audio_recordings' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } -# get playout entries -sub get{ +# get playout entries +sub get { my $config = shift; my $condition = shift; - return undef unless defined $condition->{project_id}; - return undef unless defined $condition->{studio_id}; + return undef unless defined $condition->{project_id}; + return undef unless defined $condition->{studio_id}; - my $date_range_include=0; - $date_range_include=1 if (defined $condition->{date_range_include}) && ($condition->{date_range_include}==1); + my $date_range_include = 0; + $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $conditions=[]; - my $bind_values=[]; + my $conditions = []; + my $bind_values = []; - if ((defined $condition->{id}) && ($condition->{id} ne '')){ - push @$conditions, 'id=?'; + if ( ( defined $condition->{id} ) && ( $condition->{id} ne '' ) ) { + push @$conditions, 'id=?'; push @$bind_values, $condition->{id}; } - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @$conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @$conditions, 'project_id=?'; push @$bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @$conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @$conditions, 'studio_id=?'; push @$bind_values, $condition->{studio_id}; } - if ((defined $condition->{event_id}) && ($condition->{event_id} ne '')){ - push @$conditions, 'event_id=?'; + if ( ( defined $condition->{event_id} ) && ( $condition->{event_id} ne '' ) ) { + push @$conditions, 'event_id=?'; push @$bind_values, $condition->{event_id}; } - if ((defined $condition->{path}) && ($condition->{path} ne '')){ - push @$conditions, 'path=?'; + if ( ( defined $condition->{path} ) && ( $condition->{path} ne '' ) ) { + push @$conditions, 'path=?'; push @$bind_values, $condition->{path}; } - my $limit=''; - if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ - $limit= 'limit '.$condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $whereClause=''; - $whereClause=" where ".join(" and ",@$conditions) if (scalar @$conditions>0); + my $whereClause = ''; + $whereClause = " where " . join( " and ", @$conditions ) if ( scalar @$conditions > 0 ); - my $query=qq{ + my $query = qq{ select id ,project_id ,studio_id @@ -104,33 +104,32 @@ sub get{ order by created_at desc }; - #print STDERR Dumper($query).Dumper($bind_values); - my $entries=db::get($dbh, $query, $bind_values); + #print STDERR Dumper($query).Dumper($bind_values); + my $entries = db::get( $dbh, $query, $bind_values ); return $entries; } - # update playout entry if differs to old values -sub update{ - my $config = shift; - my $dbh = shift; - my $entry = shift; - - #print STDERR "update:".Dumper($entry); +sub update { + my $config = shift; + my $dbh = shift; + my $entry = shift; - my $day_start=$config->{date}->{day_starting_hour}; + #print STDERR "update:".Dumper($entry); - my $bind_values=[ - $entry->{path}, $entry->{size}, - $entry->{created_by}, $entry->{created_at}, - $entry->{modified_at} || time::time_to_datetime(time()), - $entry->{processed}, $entry->{mastered}, - $entry->{eventDuration}, $entry->{audioDuration}, - $entry->{rmsLeft}, $entry->{rmsRight}, - $entry->{project_id}, $entry->{studio_id}, $entry->{event_id} - ]; - - my $query=qq{ + my $day_start = $config->{date}->{day_starting_hour}; + + my $bind_values = [ + $entry->{path}, $entry->{size}, + $entry->{created_by}, $entry->{created_at}, + $entry->{modified_at} || time::time_to_datetime( time() ), $entry->{processed}, + $entry->{mastered}, $entry->{eventDuration}, + $entry->{audioDuration}, $entry->{rmsLeft}, + $entry->{rmsRight}, $entry->{project_id}, + $entry->{studio_id}, $entry->{event_id} + ]; + + my $query = qq{ update calcms_audio_recordings set path=?, size=?, created_by=?, created_at=?, @@ -140,64 +139,69 @@ sub update{ rmsLeft=?, rmsRight=? where project_id=? and studio_id=? and event_id=? }; - if (defined $entry->{id}){ - $query.=' and id=?'; - push @$bind_values, $entry->{id}; - } - #print STDERR Dumper($query).Dumper($bind_values); - return db::put($dbh, $query, $bind_values); + if ( defined $entry->{id} ) { + $query .= ' and id=?'; + push @$bind_values, $entry->{id}; + } + + #print STDERR Dumper($query).Dumper($bind_values); + return db::put( $dbh, $query, $bind_values ); } # insert playout entry -sub insert{ - my $config = shift; - my $dbh = shift; - my $entry = shift; +sub insert { + my $config = shift; + my $dbh = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{event_id}; return undef unless defined $entry->{path}; - #print STDERR "insert into audio_recordings:".Dumper($entry); - return db::insert($dbh, 'calcms_audio_recordings', { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - event_id => $entry->{event_id}, - path => $entry->{path}, - size => $entry->{size}, - created_by => $entry->{created_by}, - eventDuration => $entry->{eventDuration}, - audioDuration => $entry->{audioDuration}, - rmsLeft => $entry->{rmsLeft}, - rmsRight => $entry->{rmsRight}, - processed => $entry->{processed}, - mastered => $entry->{mastered} || '0', - }); + #print STDERR "insert into audio_recordings:".Dumper($entry); + return db::insert( + $dbh, + 'calcms_audio_recordings', + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + event_id => $entry->{event_id}, + path => $entry->{path}, + size => $entry->{size}, + created_by => $entry->{created_by}, + eventDuration => $entry->{eventDuration}, + audioDuration => $entry->{audioDuration}, + rmsLeft => $entry->{rmsLeft}, + rmsRight => $entry->{rmsRight}, + processed => $entry->{processed}, + mastered => $entry->{mastered} || '0', + } + ); } # delete playout entry -sub delete{ - my $config = shift; +sub delete { + my $config = shift; my $dbh = shift; my $entry = shift; - + return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{event_id}; return undef unless defined $entry->{path}; - my $query=qq{ + my $query = qq{ delete from calcms_audio_recordings where project_id=? and studio_id=? and event_id=? and path=? }; my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{event_id}, $entry->{path} ]; - return db::put($dbh, $query, $bind_values); + return db::put( $dbh, $query, $bind_values ); } -sub error{ +sub error { my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index 32f84c9..b6f19be 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -1,279 +1,284 @@ #!/bin/perl use CGI; -#use CGI::Carp qw(warningsToBrowser fatalsToBrowser); use CGI::Session qw(-ip-match); -use CGI::Cookie; +use CGI::Cookie(); + #$CGI::Session::IP_MATCH=1; -package auth; +package auth; use warnings "all"; use strict; use Data::Dumper; -use Authen::Passphrase::BlowfishCrypt; -use time; +use Authen::Passphrase::BlowfishCrypt(); +use time(); require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_user login logout crypt_password); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_user login logout crypt_password); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); - -my $defaultExpiration=60; -my $tmp_dir='/var/tmp/'; -my $debug=0; +my $defaultExpiration = 60; +my $tmp_dir = '/var/tmp/'; +my $debug = 0; sub debug; -sub get_user{ - my $cgi=shift; - my $config=shift; +sub get_user { + my $cgi = shift; + my $config = shift; - my %parms=$cgi->Vars(); - my $parms=\%parms; + my %parms = $cgi->Vars(); + my $parms = \%parms; - debug("get_user")if ($debug); + debug("get_user") if ($debug); - # login or logout on action - if (defined $parms->{action}){ - if ($parms->{action} eq 'login'){ - my $user=login($cgi, $config, $parms->{user}, $parms->{password}); - $cgi->delete('user','password','uri','action'); + # login or logout on action + if ( defined $parms->{action} ) { + if ( $parms->{action} eq 'login' ) { + my $user = login( $cgi, $config, $parms->{user}, $parms->{password} ); + $cgi->delete( 'user', 'password', 'uri', 'action' ); return $user; - }elsif($parms->{action} eq 'logout'){ + } elsif ( $parms->{action} eq 'logout' ) { logout($cgi); - $cgi->delete('user','password','uri','action'); + $cgi->delete( 'user', 'password', 'uri', 'action' ); return undef; } } - # read session id from cookie - my $session_id=read_cookie($cgi); + # read session id from cookie + my $session_id = read_cookie($cgi); - # login if no cookie found - return show_login_form($parms->{user}, 'Please login') unless defined $session_id; + # login if no cookie found + return show_login_form( $parms->{user}, 'Please login' ) unless defined $session_id; - # read session - my $session=read_session($session_id); + # read session + my $session = read_session($session_id); - # login if user not found - return show_login_form($parms->{user}, 'unknown User') unless defined $session; + # login if user not found + return show_login_form( $parms->{user}, 'unknown User' ) unless defined $session; $parms->{user} = $session->{user}; $parms->{expires} = $session->{expires}; - debug($parms->{expires}); + debug( $parms->{expires} ); return $session->{user}, $session->{expires}; } -sub crypt_password{ - my $password=shift; +sub crypt_password { + my $password = shift; my $ppr = Authen::Passphrase::BlowfishCrypt->new( - cost => 8, + cost => 8, salt_random => 1, - passphrase => $password + passphrase => $password ); - return{ - salt => $ppr->salt_base64, - crypt => $ppr->as_crypt + return { + salt => $ppr->salt_base64, + crypt => $ppr->as_crypt }; } -sub login{ - my $cgi=shift; - my $config=shift; - my $user=shift; - my $password=shift; - debug("login")if ($debug); - +sub login { + my $cgi = shift; + my $config = shift; + my $user = shift; + my $password = shift; + debug("login") if ($debug); + #print STDERR "login $user $password\n"; - my $result = authenticate($config, $user, $password); - #print STDERR Dumper($result); + my $result = authenticate( $config, $user, $password ); - return show_login_form($user,'Could not authenticate you') unless defined $result; - return unless defined $result->{login}eq '1'; + #print STDERR Dumper($result); - my $timeout=$result->{timeout} || $defaultExpiration; - $timeout='+'.$timeout.'m'; + return show_login_form( $user, 'Could not authenticate you' ) unless defined $result; + return unless defined $result->{login} eq '1'; - my $session_id=create_session($user, $password, $timeout); - return $user if(create_cookie($cgi, $session_id, $timeout)); + my $timeout = $result->{timeout} || $defaultExpiration; + $timeout = '+' . $timeout . 'm'; + + my $session_id = create_session( $user, $password, $timeout ); + return $user if ( create_cookie( $cgi, $session_id, $timeout ) ); return undef; } -sub logout{ - my $cgi=shift; - my $session_id=read_cookie($cgi); - debug("logout")if ($debug); - unless(delete_session($session_id)){ - return show_login_form('Cant delete session', 'logged out'); - }; - unless(delete_cookie($cgi)){ - return show_login_form('Cant remove cookie', 'logged out'); +sub logout { + my $cgi = shift; + my $session_id = read_cookie($cgi); + debug("logout") if ($debug); + unless ( delete_session($session_id) ) { + return show_login_form( 'Cant delete session', 'logged out' ); } - my $uri=$ENV{HTTP_REFERER}||''; - $uri=~s/action=logout//g; + unless ( delete_cookie($cgi) ) { + return show_login_form( 'Cant remove cookie', 'logged out' ); + } + my $uri = $ENV{HTTP_REFERER} || ''; + $uri =~ s/action=logout//g; print $cgi->redirect($uri); -# return show_login_form('', 'logged out'); + + # return show_login_form('', 'logged out'); } #read and write data from browser, http://perldoc.perl.org/CGI/Cookie.html -sub create_cookie{ - my $cgi=shift; - my $session_id=shift; - my $timeout=shift; +sub create_cookie { + my $cgi = shift; + my $session_id = shift; + my $timeout = shift; + #debug("create_cookie")if ($debug); my $cookie = CGI::Cookie->new( - -name => 'sessionID', - -value => $session_id, - -expires => $timeout, -# -domain => '.capricorn.com', -# -path => '/agenda/admin/', - -secure => 1 + -name => 'sessionID', + -value => $session_id, + -expires => $timeout, + + # -domain => '.capricorn.com', + # -path => '/agenda/admin/', + -secure => 1 ); - print "Set-Cookie: ",$cookie->as_string,"\n"; - print STDERR "#Set-Cookie: ",$cookie->as_string,"\n"; -# print $cgi->header( -cookie => $cookie ); + print "Set-Cookie: ", $cookie->as_string, "\n"; + print STDERR "#Set-Cookie: ", $cookie->as_string, "\n"; + + # print $cgi->header( -cookie => $cookie ); return 1; } -sub read_cookie{ - my $cgi=shift; +sub read_cookie { + my $cgi = shift; - debug("read_cookie")if ($debug); + debug("read_cookie") if ($debug); my %cookie = CGI::Cookie->fetch; - debug("cookies: ".Dumper(\%cookie))if ($debug); - my $cookie=$cookie{'sessionID'}; - debug("cookie: ".$cookie)if ($debug); - return undef unless (defined $cookie); - my $session_id= $cookie->value || undef; - debug("sid: ".$session_id)if ($debug); + debug( "cookies: " . Dumper( \%cookie ) ) if ($debug); + my $cookie = $cookie{'sessionID'}; + debug( "cookie: " . $cookie ) if ($debug); + return undef unless ( defined $cookie ); + my $session_id = $cookie->value || undef; + debug( "sid: " . $session_id ) if ($debug); return $session_id; - #return $cgi->cookie('sessionID') || undef; -}; -sub delete_cookie{ - my $cgi=shift; + #return $cgi->cookie('sessionID') || undef; +} - debug("delete_cookie")if ($debug); +sub delete_cookie { + my $cgi = shift; + + debug("delete_cookie") if ($debug); my $cookie = $cgi->cookie( - -name => 'sessionID', - -value => '', - -expires => '+1s' + -name => 'sessionID', + -value => '', + -expires => '+1s' ); print $cgi->header( -cookie => $cookie ); return 1; } #read and write server-side session data -sub create_session{ - my $user=shift; - my $password=shift; - my $expiration=shift; +sub create_session { + my $user = shift; + my $password = shift; + my $expiration = shift; - debug("create_session")if ($debug); - my $session = new CGI::Session(undef, undef, {Directory=>$tmp_dir}); + debug("create_session") if ($debug); + my $session = new CGI::Session( undef, undef, { Directory => $tmp_dir } ); $session->expire($expiration); - $session->param("user", $user); - $session->param("pid", $$); -# $session->param("password", $password); + $session->param( "user", $user ); + $session->param( "pid", $$ ); + + # $session->param("password", $password); return $session->id(); } -sub read_session{ - my $session_id=shift; +sub read_session { + my $session_id = shift; - debug("read_session")if $debug; - return undef unless(defined $session_id); + debug("read_session") if $debug; + return undef unless ( defined $session_id ); - debug("read_session2")if $debug; - my $session = new CGI::Session(undef, $session_id, {Directory=>$tmp_dir}); + debug("read_session2") if $debug; + my $session = new CGI::Session( undef, $session_id, { Directory => $tmp_dir } ); return undef unless defined $session; - debug("read_session3")if $debug; + debug("read_session3") if $debug; my $user = $session->param("user") || undef; return undef unless defined $user; - my $expires = time::time_to_datetime($session->param("_SESSION_ATIME")+$session->param("_SESSION_ETIME")); + my $expires = time::time_to_datetime( $session->param("_SESSION_ATIME") + $session->param("_SESSION_ETIME") ); return { - user => $user, - expires => $expires - } + user => $user, + expires => $expires + }; } -sub delete_session{ - my $session_id=shift; +sub delete_session { + my $session_id = shift; - debug("delete_session")if ($debug); - return undef unless(defined $session_id); - my $session = new CGI::Session(undef, $session_id, {Directory=>$tmp_dir}); + debug("delete_session") if ($debug); + return undef unless ( defined $session_id ); + my $session = new CGI::Session( undef, $session_id, { Directory => $tmp_dir } ); $session->delete(); return 1; } - #check user authentication -sub authenticate{ - my $config=shift; - my $user=shift; - my $password=shift; +sub authenticate { + my $config = shift; + my $user = shift; + my $password = shift; - $config->{access}->{write}=0; - my $dbh = db::connect($config); + $config->{access}->{write} = 0; + my $dbh = db::connect($config); my $query = qq{ select * from calcms_users where name=? }; my $bind_values = [$user]; + #print STDERR "query:".Dumper($query).Dumper($bind_values); - my $users = db::get($dbh,$query,$bind_values); + my $users = db::get( $dbh, $query, $bind_values ); + #print STDERR "result:".Dumper($users); - - if (scalar(@$users) != 1){ + + if ( scalar(@$users) != 1 ) { print STDERR "auth: did not find user '$user'\n"; return undef; } + #print STDERR Dumper($users); - my $salt=$users->[0]->{salt}; - my $ppr = Authen::Passphrase::BlowfishCrypt->from_crypt( - $users->[0]->{pass}, - $users->[0]->{salt} - ); + my $salt = $users->[0]->{salt}; + my $ppr = Authen::Passphrase::BlowfishCrypt->from_crypt( $users->[0]->{pass}, $users->[0]->{salt} ); return undef unless $ppr->match($password); - if($users->[0]->{disabled} == 1){ + if ( $users->[0]->{disabled} == 1 ) { print STDERR "user '$user' is disabled\n"; - return undef; - } + return undef; + } - my $timeout = $users->[0]->{session_timeout} || 120; - $timeout =10 if $timeout < 10; - $timeout =12*60 if $timeout > 12*60; + my $timeout = $users->[0]->{session_timeout} || 120; + $timeout = 10 if $timeout < 10; + $timeout = 12 * 60 if $timeout > 12 * 60; - return { - timeout => $timeout, - login => 1 - } + return { + timeout => $timeout, + login => 1 + }; } -sub show_login_form{ - my $user= shift || ''; - my $uri = $ENV{HTTP_REFERER} || ''; - my $message = shift || ''; - my $requestReset = ''; +sub show_login_form { + my $user = shift || ''; + my $uri = $ENV{HTTP_REFERER} || ''; + my $message = shift || ''; + my $requestReset = ''; - if (($user ne '') && ($message ne '')){ - $requestReset = qq{ + if ( ( $user ne '' ) && ( $message ne '' ) ) { + $requestReset = qq{ forgotten }; - } + } - debug("show_login_form")if ($debug); + debug("show_login_form") if ($debug); print qq{Content-type:text/html @@ -375,11 +380,10 @@ sub show_login_form{ return undef; } -sub debug{ - my $message=shift; - print STDERR "$message\n" if $debug>0; +sub debug { + my $message = shift; + print STDERR "$message\n" if $debug > 0; } - #do not delete last line! 1; diff --git a/lib/calcms/cache.pm b/lib/calcms/cache.pm index dc00789..c3af0e5 100644 --- a/lib/calcms/cache.pm +++ b/lib/calcms/cache.pm @@ -1,125 +1,125 @@ use warnings "all"; use strict; -#use Data::Dumper; -use config; -use time; -use log; -use markup; +use config(); +use time(); +use log(); +use markup(); package cache; require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(init add_map get_map get_map_keys load save get_filename escape_regexp escape_regexp_line); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(init add_map get_map get_map_keys load save get_filename escape_regexp escape_regexp_line); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); -my $cache_map ={}; -my $cache_map_keys =[]; -my $header_printed =0; +my $cache_map = {}; +my $cache_map_keys = []; +my $header_printed = 0; -our $date_pattern ='(\d{4})\-(\d{2})\-(\d{2})'; -our $datetime_pattern ='(\d{4})\-(\d{2})\-(\d{2})[T\+](\d{2})\:(\d{2})(\:\d{2})?'; +our $date_pattern = '(\d{4})\-(\d{2})\-(\d{2})'; +our $datetime_pattern = '(\d{4})\-(\d{2})\-(\d{2})[T\+](\d{2})\:(\d{2})(\:\d{2})?'; -sub init{ - $cache_map ={}; - $cache_map_keys =[]; - $header_printed =0; +sub init { + $cache_map = {}; + $cache_map_keys = []; + $header_printed = 0; } -sub add_map{ - my $key =$_[0]; - my $value =$_[1]; +sub add_map { + my $key = $_[0]; + my $value = $_[1]; - $key='^'.$key.'$'; - push @$cache_map_keys,$key; - $cache_map->{$key}=$value; + $key = '^' . $key . '$'; + push @$cache_map_keys, $key; + $cache_map->{$key} = $value; } -sub get_map{ +sub get_map { return $cache_map; } -sub get_map_keys{ +sub get_map_keys { return $cache_map_keys; } #get cache from params -sub load{ - my $params=shift; +sub load { + my $params = shift; - my $filename=get_filename($params); + my $filename = get_filename($params); - my $result={ - filename=>$filename - }; + my $result = { filename => $filename }; + + if ( defined $filename ) { + my @file_info = stat($filename); + my $modified = $file_info[9] || ''; + if ( $modified ne '' ) { - if (defined $filename){ - my @file_info=stat($filename); - my $modified=$file_info[9]||''; - if ($modified ne ''){ #file exists - my @now =localtime(time()); - my @modified =localtime($modified); - if ($now[2]==$modified[2]){ + my @now = localtime( time() ); + my @modified = localtime($modified); + if ( $now[2] == $modified[2] ) { + #file is elder than a hour - my $content=log::load_file($filename); - if (defined $content){ - $result->{content} =$content; - $result->{action} ='read'; + my $content = log::load_file($filename); + if ( defined $content ) { + $result->{content} = $content; + $result->{action} = 'read'; return $result; } } } } - $result->{action}='save'; + $result->{action} = 'save'; return $result; } #get filename from params -sub get_filename{ - my $config = shift; +sub get_filename { + my $config = shift; my $params = shift; -# my $url=$ENV{REQUEST_URI}; - my $url=$ENV{QUERY_STRING}||''; - if ($url ne''){ - $url=~s/(^|\&)update\=\d//gi; - $url=~s/(^|\&)debug\=.*//gi; - $url=~s/\?\&/\?/g; - $url=~s/\&{2,99}/\&/g; - $url=~s/\&$//g; - $url=~s/^\/\//\//g; + # my $url=$ENV{REQUEST_URI}; + my $url = $ENV{QUERY_STRING} || ''; + if ( $url ne '' ) { + $url =~ s/(^|\&)update\=\d//gi; + $url =~ s/(^|\&)debug\=.*//gi; + $url =~ s/\?\&/\?/g; + $url =~ s/\&{2,99}/\&/g; + $url =~ s/\&$//g; + $url =~ s/^\/\//\//g; } - foreach my $pattern (@$cache_map_keys){ + foreach my $pattern (@$cache_map_keys) { - my $filename=$url; - log::write($config, 'cache_trace',"look at \"$filename\" for $pattern") if ($config->{system}->{debug}); - if ($filename =~/$pattern/){ - my $m1=$1; - my $m2=$2; - my $m3=$3; - my $m4=$4; - my $m5=$5; - my $m6=$6; - my $m7=$7; - my $m8=$8; -# my $m9=$9; + my $filename = $url; + if ( $filename =~ /$pattern/ ) { + my $m1 = $1; + my $m2 = $2; + my $m3 = $3; + my $m4 = $4; + my $m5 = $5; + my $m6 = $6; + my $m7 = $7; + my $m8 = $8; - my $result=$cache_map->{$pattern}; + # my $m9=$9; - $filename=~s/$pattern/$result/; - $filename=~s/\$1/$m1/ if (defined $m1); - $filename=~s/\$2/$m2/ if (defined $m2); - $filename=~s/\$3/$m3/ if (defined $m3); - $filename=~s/\$4/$m4/ if (defined $m4); - $filename=~s/\$5/$m5/ if (defined $m5); - $filename=~s/\$6/$m6/ if (defined $m6); - $filename=~s/\$7/$m7/ if (defined $m7); - $filename=~s/\$8/$m8/ if (defined $m8); -# $filename=~s/\$9/$m9/ if (defined $m9); - $filename=$config->{cache}->{cache_dir}.$filename; + my $result = $cache_map->{$pattern}; + + $filename =~ s/$pattern/$result/; + $filename =~ s/\$1/$m1/ if ( defined $m1 ); + $filename =~ s/\$2/$m2/ if ( defined $m2 ); + $filename =~ s/\$3/$m3/ if ( defined $m3 ); + $filename =~ s/\$4/$m4/ if ( defined $m4 ); + $filename =~ s/\$5/$m5/ if ( defined $m5 ); + $filename =~ s/\$6/$m6/ if ( defined $m6 ); + $filename =~ s/\$7/$m7/ if ( defined $m7 ); + $filename =~ s/\$8/$m8/ if ( defined $m8 ); + + # $filename=~s/\$9/$m9/ if (defined $m9); + $filename = $config->{cache}->{cache_dir} . $filename; return $filename; } } @@ -127,53 +127,51 @@ sub get_filename{ } #deprecated: set file from params -sub set{ - my $params=shift; - my $content=shift; +sub set { + my $params = shift; + my $content = shift; - my $filename=get_filename($params); - my $cache={ + my $filename = get_filename($params); + my $cache = { filename => $filename, content => $content }; -# print $filename.":file\n"; - if (defined $filename){ + # print $filename.":file\n"; + + if ( defined $filename ) { cache::save($cache); } } +sub save { + my $cache = shift; -sub save{ - my $cache=shift; + return if ( $cache->{action} ne 'save' ); + return if ( ( !defined $cache->{filename} ) || ( $cache->{filename} eq '' ) ); - return if ($cache->{action}ne'save'); - return if ((!defined $cache->{filename}) || ($cache->{filename}eq'')); - - log::save_file($cache->{filename},$cache->{content}); + log::save_file( $cache->{filename}, $cache->{content} ); chmod 0664, $cache->{filename}; } - -sub escape_regexp{ - my $reg_exp=shift; - $reg_exp=~s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi; +sub escape_regexp { + my $reg_exp = shift; + $reg_exp =~ s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi; return $reg_exp; } -sub escape_regexp_line{ - my $reg_exp=shift; - $reg_exp=~s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi; - return '^'.$reg_exp.'$'; +sub escape_regexp_line { + my $reg_exp = shift; + $reg_exp =~ s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi; + return '^' . $reg_exp . '$'; } -sub configure{ - my $file_name=shift; +sub configure { + my $file_name = shift; cache::init(); - cache::add_map('',$file_name); + cache::add_map( '', $file_name ); } - #do not delete last line! 1; diff --git a/lib/calcms/calendar.pm b/lib/calcms/calendar.pm index 3a3a60f..07ca9be 100644 --- a/lib/calcms/calendar.pm +++ b/lib/calcms/calendar.pm @@ -1,519 +1,526 @@ -#use Calendar::Simple qw(date_span); -use Date::Calc; -use config; -use template; -use markup; -use cache; -use log; -use time; -use project; -use events; +#use config(); +use template(); -package calendar; +#use markup(); +use cache(); + +#use log(); +#use time(); +#use project(); +#use events(); + +package calendar; use warnings "all"; use strict; use Data::Dumper; +use Date::Calc(); require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(init get_cached_or_render get render get_calendar_weeks configure_cache); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(init get_cached_or_render get render get_calendar_weeks configure_cache); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); #my $debug=''; -sub init{ +sub init { } -sub get_cached_or_render{ -# my $output = $_[0] - my $config = $_[1]; - my $request = $_[2]; +sub get_cached_or_render { - my $parms =$request->{params}->{checked}; - my $debug=$config->{system}->{debug}; + # my $output = $_[0] + my $config = $_[1]; + my $request = $_[2]; - my $cache={}; - if ($config->{cache}->{use_cache} == 1){ - calendar::configure_cache($config); - $cache=cache::load($config, $parms); - log::write($config, 'cache',$cache->{action}) if ($debug); - if (defined $cache->{content}){ - $_[0]=$cache->{content}; - return; - } - } + my $parms = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $calendar=calendar::get($config, $request); - log::write($config, 'calendar',$calendar) if ($debug); - #print STDERR Dumper($calendar); + my $cache = {}; + if ( $config->{cache}->{use_cache} == 1 ) { + calendar::configure_cache($config); + $cache = cache::load( $config, $parms ); + if ( defined $cache->{content} ) { + $_[0] = $cache->{content}; + return; + } + } - calendar::render($_[0], $config, $request, $calendar); + my $calendar = calendar::get( $config, $request ); - #write to cache - if ($config->{cache}->{use_cache} == 1){ - #todo:put out reference only - $cache->{content}=$_[0]; - log::write($config, 'cache_files',$cache) if ($debug); - cache::save($cache); - } + calendar::render( $_[0], $config, $request, $calendar ); + + #write to cache + if ( $config->{cache}->{use_cache} == 1 ) { + + #todo:put out reference only + $cache->{content} = $_[0]; + cache::save($cache); + } } +sub get { + my $config = shift; + my $request = shift; -sub get{ - my $config = shift; - my $request = shift; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $params=$request->{params}->{checked}; - my $debug=$config->{system}->{debug}; + my $language = $config->{date}->{language} || 'en'; - my $language = $config->{date}->{language} || 'en'; + my $date = $params->{date} || ''; + my $template = $params->{template} || ''; + my $from_time = $params->{from_time} || ''; + my $till_time = $params->{till_time} || ''; - my $date = $params->{date}||''; - my $template = $params->{template}||''; - my $from_time = $params->{from_time}||''; - my $till_time = $params->{till_time}||''; + my @today = localtime( time() ); + my $today = sprintf( '%04d-%02d-%02d', 1900 + $today[5], $today[4] + 1, $today[3] ); - my @today=localtime(time()); - my $today=sprintf('%04d-%02d-%02d', 1900+$today[5], $today[4]+1, $today[3]); - - my $weekday_names = $time::names->{$language}->{weekdays}; - my $weekday_short_names = $time::names->{$language}->{weekdays_abbr}; - my $week_label={}; - my $c=0; - for my $weekday (@$weekday_short_names){ - $week_label->{$weekday}=$weekday_names->[$c]||''; - $c++; - } + my $weekday_names = $time::names->{$language}->{weekdays}; + my $weekday_short_names = $time::names->{$language}->{weekdays_abbr}; + my $week_label = {}; + my $c = 0; + for my $weekday (@$weekday_short_names) { + $week_label->{$weekday} = $weekday_names->[$c] || ''; + $c++; + } - $template=~s/\'//gi; - $from_time=~s/\'//gi; - $till_time=~s/\'//gi; + $template =~ s/\'//gi; + $from_time =~ s/\'//gi; + $till_time =~ s/\'//gi; - #put "clear all" filter into final results - my $day_result={}; - my $clear_filter=$day_result; + #put "clear all" filter into final results + my $day_result = {}; + my $clear_filter = $day_result; - #put "week day" filter into final results - my $days=[]; - $c=0; - for my $weekday (@$weekday_short_names){ - my $day_result={ - label => $week_label->{$weekday}, - weekday => $c+1, - weekday_parameter => 'weekday='.$c, - weekday_short_name => $weekday_short_names->[$c] ||'', - weekday_name => $weekday_names->[$c] ||'', - description => qq{alle $week_label->{$weekday}-Termine anzeigen}, - }; - push @$days,$day_result; - $c++; - } + #put "week day" filter into final results + my $days = []; + $c = 0; + for my $weekday (@$weekday_short_names) { + my $day_result = { + label => $week_label->{$weekday}, + weekday => $c + 1, + weekday_parameter => 'weekday=' . $c, + weekday_short_name => $weekday_short_names->[$c] || '', + weekday_name => $weekday_names->[$c] || '', + description => qq{alle $week_label->{$weekday}-Termine anzeigen}, + }; + push @$days, $day_result; + $c++; + } - #weeks and days array - my $weekAndDayResults=[]; + #weeks and days array + my $weekAndDayResults = []; - #weekday array - my $weekdayResults=$days; + #weekday array + my $weekdayResults = $days; - #week array - my $weekResults=[]; + #week array + my $weekResults = []; - #info hash by timedate - my $dateInfo={}; + #info hash by timedate + my $dateInfo = {}; - #generate content for each day in a week in a month in a year - #get today - my $start_date=''; - my $end_date=''; - if ($date=~/(\d{4})\-(\d{2})/){ - my $year=$1; - my $month=$2; - $start_date = "$year-$month-01"; - $end_date = "$year-$month-".Date::Calc::Days_in_Month($year,$month); - }else{ - $start_date = $params->{start_date}; - $end_date = $params->{end_date}; - } + #generate content for each day in a week in a month in a year + #get today + my $start_date = ''; + my $end_date = ''; + if ( $date =~ /(\d{4})\-(\d{2})/ ) { + my $year = $1; + my $month = $2; + $start_date = "$year-$month-01"; + $end_date = "$year-$month-" . Date::Calc::Days_in_Month( $year, $month ); + } else { + $start_date = $params->{start_date}; + $end_date = $params->{end_date}; + } - my $previous_month=$start_date; - if ($previous_month=~/(\d{4})\-(\d{2})/){ - my $year =$1; - my $month=$2-1; - $month='0'.$month if (length($month)<2); - if ($month lt '01'){ - $year-=1; - $month='12'; - } - $previous_month="$year-$month-01"; - $previous_month=$params->{start_date} if ($previous_month lt $params->{start_date}); - } + my $previous_month = $start_date; + if ( $previous_month =~ /(\d{4})\-(\d{2})/ ) { + my $year = $1; + my $month = $2 - 1; + $month = '0' . $month if ( length($month) < 2 ); + if ( $month lt '01' ) { + $year -= 1; + $month = '12'; + } + $previous_month = "$year-$month-01"; + $previous_month = $params->{start_date} if ( $previous_month lt $params->{start_date} ); + } - my $next_month=$end_date; - if ($next_month=~/(\d{4})\-(\d{2})/){ - my $year=$1; - my $month=$2+1; - $month='0'.$month if (length($month)<2); - if ($month gt '12'){ - $year+=1; - $month='01'; - } - $next_month="$year-$month-01"; - $next_month=$params->{end_date} if ($next_month gt $params->{end_date}); - } + my $next_month = $end_date; + if ( $next_month =~ /(\d{4})\-(\d{2})/ ) { + my $year = $1; + my $month = $2 + 1; + $month = '0' . $month if ( length($month) < 2 ); + if ( $month gt '12' ) { + $year += 1; + $month = '01'; + } + $next_month = "$year-$month-01"; + $next_month = $params->{end_date} if ( $next_month gt $params->{end_date} ); + } - my $start_year=undef; - my $start_month=undef; - if ($start_date=~/(\d{4})\-(\d{2})/){ - $start_year=$1; - $start_month=$2; - } - my $start_month_name=$time::names->{$language}->{months_abbr}->[$start_month-1]; + my $start_year = undef; + my $start_month = undef; + if ( $start_date =~ /(\d{4})\-(\d{2})/ ) { + $start_year = $1; + $start_month = $2; + } + my $start_month_name = $time::names->{$language}->{months_abbr}->[ $start_month - 1 ]; - if($params->{month_only}eq'1'){ - return { - next_month => $next_month, - previous_month => $previous_month, - start_year => $start_year, - start_month => $start_month, - start_month_name => $start_month_name - }; - } + if ( $params->{month_only} eq '1' ) { + return { + next_month => $next_month, + previous_month => $previous_month, + start_year => $start_year, + start_month => $start_month, + start_month_name => $start_month_name + }; + } - my $years=calendar::get_calendar_weeks($config, $start_date, $end_date); + my $years = calendar::get_calendar_weeks( $config, $start_date, $end_date ); - my $dbh=db::connect($config, $request); + my $dbh = db::connect( $config, $request ); - my $used_days=events::get_by_date_range($dbh, $config, $start_date, $end_date,{ - exclude_projects => 1, - exclude_locations => 1, - }); - my $used_day={}; - for my $day(@$used_days){ - $used_day->{$day->{start_date}}=1; - } + my $used_days = events::get_by_date_range( + $dbh, $config, + $start_date, + $end_date, + { + exclude_projects => 1, + exclude_locations => 1, + } + ); + my $used_day = {}; + for my $day (@$used_days) { + $used_day->{ $day->{start_date} } = 1; + } - for my $year (sort {$a <=> $b} keys %$years){ - my $months=$years->{$year}; + for my $year ( sort { $a <=> $b } keys %$years ) { + my $months = $years->{$year}; - for my $month (sort {$a <=> $b} keys %$months){ - my $weeks=$months->{$month}; + for my $month ( sort { $a <=> $b } keys %$months ) { + my $weeks = $months->{$month}; - my $weekCounter=1; - for my $week (@$weeks){ - my $dayResults=[]; + my $weekCounter = 1; + for my $week (@$weeks) { + my $dayResults = []; - my $week_end =undef; - my $week_start=undef; + my $week_end = undef; + my $week_start = undef; - my $week_of_year=undef; - my $woy_year = undef; + my $week_of_year = undef; + my $woy_year = undef; - for my $date (@$week){ - my ($year, $month, $day)=split(/\-/,$date); - my $weekday=0; - my $day_result=undef; + for my $date (@$week) { + my ( $year, $month, $day ) = split( /\-/, $date ); + my $weekday = 0; + my $day_result = undef; - ($week_of_year,$woy_year) = Date::Calc::Week_of_Year($year,$month,$day) unless defined $week_of_year; + ( $week_of_year, $woy_year ) = Date::Calc::Week_of_Year( $year, $month, $day ) unless defined $week_of_year; - $day_result={ - date => $date, - date_parameter => 'date='.$date, - day => $day, - year => $year, - month => $month, - }; - $day_result->{time} =$from_time if defined $from_time; + $day_result = { + date => $date, + date_parameter => 'date=' . $date, + day => $day, + year => $year, + month => $month, + }; + $day_result->{time} = $from_time if defined $from_time; - $day_result->{class}.= ' calcms_today' if $date eq $today; - $day_result->{class}.= ' selected' if defined $used_day->{$date}; - $day_result->{class}.= " week_$weekCounter"; - $day_result->{class}.= " other_month" if ($weekCounter<2) && ($day gt "15"); - $day_result->{class}.= " other_month" if ($weekCounter>3) && ($day lt "15"); - $day_result->{class}=~s/^\s+//g; + $day_result->{class} .= ' calcms_today' if $date eq $today; + $day_result->{class} .= ' selected' if defined $used_day->{$date}; + $day_result->{class} .= " week_$weekCounter"; + $day_result->{class} .= " other_month" if ( $weekCounter < 2 ) && ( $day gt "15" ); + $day_result->{class} .= " other_month" if ( $weekCounter > 3 ) && ( $day lt "15" ); + $day_result->{class} =~ s/^\s+//g; - $week_start =$day unless defined $week_start; - $week_end =$day; + $week_start = $day unless defined $week_start; + $week_end = $day; - log::write($config, 'day_results',$day_result)if ($debug); + $day_result->{weekday_name} = $weekday_names->[$weekday]; + $day_result->{weekday_short_name} = $weekday_short_names->[$weekday]; + $day_result->{weekday} = $weekday + 1; - $day_result->{weekday_name}=$weekday_names->[$weekday]; - $day_result->{weekday_short_name}=$weekday_short_names->[$weekday]; - $day_result->{weekday}=$weekday+1; + $dateInfo->{ $day_result->{date} } = $day_result->{weekday} if defined $day_result->{date}; - $dateInfo->{$day_result->{date}}=$day_result->{weekday} if defined $day_result->{date}; + push @$dayResults, $day_result; + $weekday++; - push @$dayResults, $day_result; - $weekday++; + } #end for days - }#end for days + #week filter + my $start_date = $week->[0]; + my $end_date = $week->[-1]; - #week filter - my $start_date=$week->[0]; - my $end_date =$week->[-1]; + my $week_result = { + from_date => $start_date, + till_date => $end_date, + week_start => $week_start, + week_end => $week_end, + week_month => sprintf( "%2d", $month ), + week_year => $year, + week_of_year => $week_of_year, + }; - my $week_result={ - from_date => $start_date, - till_date => $end_date, - week_start => $week_start, - week_end => $week_end, - week_month => sprintf("%2d",$month), - week_year => $year, - week_of_year => $week_of_year, - }; + $week_result->{class} .= ' selected' + if ( ( ( defined $params->{from_date} ) && ( $start_date eq $params->{from_date} ) ) + || ( ( defined $params->{till_date} ) && ( $end_date eq $params->{till_date} ) ) ); + $week_result->{class} .= " week_$weekCounter"; + $week_result->{class} =~ s/^\s+//g; - $week_result->{class}.= ' selected' if ( - ((defined $params->{from_date}) && ($start_date eq $params->{from_date})) - || ((defined $params->{till_date}) && ($end_date eq $params->{till_date})) - ); - $week_result->{class}.= " week_$weekCounter"; - $week_result->{class}=~s/^\s+//g; + push @$weekResults, $week_result; - push @$weekResults, $week_result; - - push @$weekAndDayResults,{ - days=>$dayResults, - week=>[$week_result] - }; - $weekCounter++; + push @$weekAndDayResults, + { + days => $dayResults, + week => [$week_result] + }; + $weekCounter++; - }#end week + } #end week - }#end month + } #end month - }#end year + } #end year - for my $weekday (@$weekdayResults){ - $weekday->{start_date} = $start_date; - $weekday->{end_date} = $end_date; - } - - return { - week_and_days => $weekAndDayResults, - weekdays => $weekdayResults, - weeks => $weekResults, - days => $dateInfo, - next_month => $next_month, - previous_month => $previous_month, - start_date => $start_date, - end_date => $end_date, - start_month_name => $start_month_name, - start_month => $start_month, - start_year => $start_year, - base_url => $config->{locations}->{base_url}, - cache_base_url => $config->{cache}->{base_url}, - controllers => $config->{controllers}, - }; + for my $weekday (@$weekdayResults) { + $weekday->{start_date} = $start_date; + $weekday->{end_date} = $end_date; + } + + return { + week_and_days => $weekAndDayResults, + weekdays => $weekdayResults, + weeks => $weekResults, + days => $dateInfo, + next_month => $next_month, + previous_month => $previous_month, + start_date => $start_date, + end_date => $end_date, + start_month_name => $start_month_name, + start_month => $start_month, + start_year => $start_year, + base_url => $config->{locations}->{base_url}, + cache_base_url => $config->{cache}->{base_url}, + controllers => $config->{controllers}, + }; } -sub render{ -# my $out = $_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $calendar = $_[3]; +sub render { - my $parms =$request->{params}->{checked}; - my $debug=$config->{system}->{debug}; + # my $out = $_[0]; + my $config = $_[1]; + my $request = $_[2]; + my $calendar = $_[3]; - my $template_parameters=$calendar; - $template_parameters->{debug} = $config->{system}->{debug}; - $template_parameters->{base_url} = $config->{locations}->{base_url}; - $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; - $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ($config->{cache}->{server_cache}); - $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ($config->{cache}->{use_client_cache}); + my $parms = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - template::process($_[0], $parms->{template}, $template_parameters); + my $template_parameters = $calendar; + $template_parameters->{debug} = $config->{system}->{debug}; + $template_parameters->{base_url} = $config->{locations}->{base_url}; + $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; + $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} ); + $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} ); + + template::process( $_[0], $parms->{template}, $template_parameters ); } -sub get_calendar_weeks{ - my $config = shift; - my $start = shift; - my $end = shift; +sub get_calendar_weeks { + my $config = shift; + my $start = shift; + my $end = shift; - my $debug = $config->{system}->{debug}; + my $debug = $config->{system}->{debug}; - $start = time::date_to_array($start); - $end = time::date_to_array($end); + $start = time::date_to_array($start); + $end = time::date_to_array($end); - my $start_year = int($start->[0]); - my $end_year = int($end->[0]); + my $start_year = int( $start->[0] ); + my $end_year = int( $end->[0] ); - my $start_month = int($start->[1]); - my $end_month = int($end->[1]); + my $start_month = int( $start->[1] ); + my $end_month = int( $end->[1] ); - my $years={}; - for my $year ($start_year..$end_year){ - my $months={}; - for my $month ($start_month..$end_month){ - #get week arrays of days of the month - my $weeks=getWeeksOfMonth($year, $month); - $months->{$month}=$weeks; - } - $years->{$year}=$months; - } - log::write($config, 'years',$years)if ($debug); - return $years; + my $years = {}; + for my $year ( $start_year .. $end_year ) { + my $months = {}; + for my $month ( $start_month .. $end_month ) { + + #get week arrays of days of the month + my $weeks = getWeeksOfMonth( $year, $month ); + $months->{$month} = $weeks; + } + $years->{$year} = $months; + } + return $years; } -sub getWeeksOfMonth{ - my $thisYear = shift; - my $thisMonth = shift; - my $thisDay = 1; +sub getWeeksOfMonth { + my $thisYear = shift; + my $thisMonth = shift; + my $thisDay = 1; - # get weekday of 1st of month - my $thisMonthWeekday = Date::Calc::Day_of_Week($thisYear,$thisMonth,1); - - # get next month date - my($nextYear, $nextMonth, $nextDay)=Date::Calc::Add_Delta_YM($thisYear,$thisMonth,$thisDay, 0,1); - # get weekday of 1st of next month - my $nextMonthWeekday = Date::Calc::Day_of_Week($nextYear, $nextMonth, $nextDay); - my($lastYear, $lastMonth, $lastDayOfMonth)=Date::Calc::Add_Delta_Days($nextYear,$nextMonth,$nextDay, -1); + # get weekday of 1st of month + my $thisMonthWeekday = Date::Calc::Day_of_Week( $thisYear, $thisMonth, 1 ); - # get date of 1st of row - my( $week,$year) = Date::Calc::Week_of_Year($thisYear,$thisMonth,$thisDay); - ($year,my $month, my $day) = Date::Calc::Monday_of_Week($week,$year); - - my @weeks=(); - my $weekday=1; + # get next month date + my ( $nextYear, $nextMonth, $nextDay ) = Date::Calc::Add_Delta_YM( $thisYear, $thisMonth, $thisDay, 0, 1 ); - { - # first week - my @days=(); - for $weekday(0 .. $thisMonthWeekday-2){ - push @days, sprintf("%04d-%02d-%02d",$year,$month,$day); - $day++; - } - # set current month - $month = $thisMonth; - $year = $thisYear; - $day = 1; - for $weekday($thisMonthWeekday..7){ - push @days, sprintf("%04d-%02d-%02d",$year,$month,$day); - $day++; - } - # next week - push @weeks, \@days; - } - - # weeks until end of month - while(scalar(@weeks)<6){ - my @days=(); - $weekday=1; - while($weekday<=7){ - push @days, sprintf("%04d-%02d-%02d",$year,$month,$day); - $day++; - $weekday++; - last if $day>$lastDayOfMonth; - } + # get weekday of 1st of next month + my $nextMonthWeekday = Date::Calc::Day_of_Week( $nextYear, $nextMonth, $nextDay ); + my ( $lastYear, $lastMonth, $lastDayOfMonth ) = Date::Calc::Add_Delta_Days( $nextYear, $nextMonth, $nextDay, -1 ); - if ($day>$lastDayOfMonth){ - # set next month - $month=$nextMonth; - $year=$nextYear; - $day=1; + # get date of 1st of row + my ( $week, $year ) = Date::Calc::Week_of_Year( $thisYear, $thisMonth, $thisDay ); + ( $year, my $month, my $day ) = Date::Calc::Monday_of_Week( $week, $year ); - if ($nextMonthWeekday!=1){ - # finish end week - if($weekday<=7){ - while( $weekday<=7){ - push @days, sprintf("%04d-%02d-%02d",$year,$month,$day); - $day++; - $weekday++; - } - } - } - push @weeks, \@days; - last; - }; - push @weeks, \@days if $weeks[-1]->[-1] ne $days[-1]; - } - - #coming weeks - while(scalar(@weeks)<6){ - my @days=(); - for $weekday(1..7){ - push @days, sprintf("%04d-%02d-%02d",$year,$month,$day); - $day++; - } - push @weeks, \@days; - } - return \@weeks; + my @weeks = (); + my $weekday = 1; + + { + # first week + my @days = (); + for $weekday ( 0 .. $thisMonthWeekday - 2 ) { + push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day ); + $day++; + } + + # set current month + $month = $thisMonth; + $year = $thisYear; + $day = 1; + for $weekday ( $thisMonthWeekday .. 7 ) { + push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day ); + $day++; + } + + # next week + push @weeks, \@days; + } + + # weeks until end of month + while ( scalar(@weeks) < 6 ) { + my @days = (); + $weekday = 1; + while ( $weekday <= 7 ) { + push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day ); + $day++; + $weekday++; + last if $day > $lastDayOfMonth; + } + + if ( $day > $lastDayOfMonth ) { + + # set next month + $month = $nextMonth; + $year = $nextYear; + $day = 1; + + if ( $nextMonthWeekday != 1 ) { + + # finish end week + if ( $weekday <= 7 ) { + while ( $weekday <= 7 ) { + push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day ); + $day++; + $weekday++; + } + } + } + push @weeks, \@days; + last; + } + push @weeks, \@days if $weeks[-1]->[-1] ne $days[-1]; + } + + #coming weeks + while ( scalar(@weeks) < 6 ) { + my @days = (); + for $weekday ( 1 .. 7 ) { + push @days, sprintf( "%04d-%02d-%02d", $year, $month, $day ); + $day++; + } + push @weeks, \@days; + } + return \@weeks; } -sub configure_cache{ - my $config = shift; - my $debug=$config->{system}->{debug}; +sub configure_cache { + my $config = shift; + my $debug = $config->{system}->{debug}; - cache::init(); + cache::init(); - my $date_pattern = $cache::date_pattern; - my $controllers = $config->{controllers}; + my $date_pattern = $cache::date_pattern; + my $controllers = $config->{controllers}; - cache::add_map('' , $controllers->{calendar}.'/cal.html'); - cache::add_map('date='.$date_pattern , $controllers->{calendar}.'/$1-$2.html'); - cache::add_map('from_date='.$date_pattern.'&till_date='.$date_pattern , $controllers->{calendar}.'/$1-$2_$5-$6.html'); + cache::add_map( '', $controllers->{calendar} . '/cal.html' ); + cache::add_map( 'date=' . $date_pattern, $controllers->{calendar} . '/$1-$2.html' ); + cache::add_map( 'from_date=' . $date_pattern . '&till_date=' . $date_pattern, $controllers->{calendar} . '/$1-$2_$5-$6.html' ); - log::write($config, 'cache_files',cache::get_map()) if ($debug); } -sub check_params{ - my $config=shift; - my $params=shift; +sub check_params { + my $config = shift; + my $params = shift; - #get start and stop from projects - my $range= project::get_date_range($config); - my $start_date = $range->{start_date}; - my $end_date = $range->{end_date}; + #get start and stop from projects + my $range = project::get_date_range($config); + my $start_date = $range->{start_date}; + my $end_date = $range->{end_date}; - #switch off limiting end date by project - my $open_end=0; - if((defined $params->{'open_end'})&&($params->{'open_end'}=~/(\d+)/)){ - $open_end = $1; - $end_date = time::add_days_to_datetime(time::time_to_datetime(), 365); - } + #switch off limiting end date by project + my $open_end = 0; + if ( ( defined $params->{'open_end'} ) && ( $params->{'open_end'} =~ /(\d+)/ ) ) { + $open_end = $1; + $end_date = time::add_days_to_datetime( time::time_to_datetime(), 365 ); + } - my $month_only=$params->{month_only}||''; + my $month_only = $params->{month_only} || ''; - #filter for date - my $date=time::check_date($params->{date}); + #filter for date + my $date = time::check_date( $params->{date} ); - $date =$start_date if ($date lt $start_date); - $date =$end_date if ($date gt $end_date); - log::error($config, "no valid year-month format given!") if ($date eq"-1"); + $date = $start_date if ( $date lt $start_date ); + $date = $end_date if ( $date gt $end_date ); + log::error( $config, "no valid year-month format given!" ) if ( $date eq "-1" ); - my $time=time::check_time($params->{time}); - log::error($config, "no valid time format given!") if ($time eq"-1"); + my $time = time::check_time( $params->{time} ); + log::error( $config, "no valid time format given!" ) if ( $time eq "-1" ); - my $from_date=time::check_date($params->{from_date})||''; - log::error($config, "no valid date format given!") if (defined $from_date && $from_date eq"-1"); - $from_date =$start_date if ($from_date lt $start_date); - $from_date =$end_date if ($from_date gt $end_date); + my $from_date = time::check_date( $params->{from_date} ) || ''; + log::error( $config, "no valid date format given!" ) if ( defined $from_date && $from_date eq "-1" ); + $from_date = $start_date if ( $from_date lt $start_date ); + $from_date = $end_date if ( $from_date gt $end_date ); - my $till_date=time::check_date($params->{till_date}||''); - log::error($config, "no valid date format given!") if (defined $till_date && $till_date eq"-1"); - $till_date =$start_date if ($till_date lt $start_date); - $till_date =$end_date if ($till_date gt $end_date); + my $till_date = time::check_date( $params->{till_date} || '' ); + log::error( $config, "no valid date format given!" ) if ( defined $till_date && $till_date eq "-1" ); + $till_date = $start_date if ( $till_date lt $start_date ); + $till_date = $end_date if ( $till_date gt $end_date ); - my $template=template::check($params->{template},'calendar.html'); + my $template = template::check( $params->{template}, 'calendar.html' ); - my $debug=$params->{debug}; - if ((defined $debug) && ($debug=~/([a-z\_\,]+)/)){ - $debug=$1; - } + my $debug = $params->{debug}; + if ( ( defined $debug ) && ( $debug =~ /([a-z\_\,]+)/ ) ) { + $debug = $1; + } - return { - template => $template, - date => $date, - from_date => $from_date, - till_date => $till_date, - debug => $debug, - month_only => $month_only, - open_end => $open_end, - start_date => $start_date, - end_date => $end_date - } + return { + template => $template, + date => $date, + from_date => $from_date, + till_date => $till_date, + debug => $debug, + month_only => $month_only, + open_end => $open_end, + start_date => $start_date, + end_date => $end_date + }; } + #do not delete last line! 1; diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 2f3927c..938a41b 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -1,258 +1,265 @@ use warnings "all"; use strict; use Data::Dumper; -use config; -use template; -use time; +use config(); +use template(); +use time(); -package comments; +package comments; use warnings "all"; use strict; use Data::Dumper; require Exporter; our @ISA = qw(Exporter); + #our @EXPORT = qw(all); -our @EXPORT_OK = qw(init get_cached_or_render get modify_results render configure_cache get_query get_by_event get_level get_events check insert set_lock_status set_news_status lock update_comment_count sort); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @EXPORT_OK = + qw(init get_cached_or_render get modify_results render configure_cache get_query get_by_event get_level get_events check insert set_lock_status set_news_status lock update_comment_count sort); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); -sub init{ +sub init { } -sub get_cached_or_render{ -# my $response=$_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $mark_locked = $_[3]; +sub get_cached_or_render { - my $params=$request->{params}->{checked}; - #print STDERR Dumper($params); - $config->{app_name}=$config->{controllers}->{comments}; + # my $response=$_[0]; + my $config = $_[1]; + my $request = $_[2]; + my $mark_locked = $_[3]; - my $comment=$request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $filename=''; - my $cache={}; + #print STDERR Dumper($params); + $config->{app_name} = $config->{controllers}->{comments}; - my $results=comments::get($config, $request); + my $comment = $request->{params}->{checked}; - if((defined $mark_locked) && ($mark_locked eq 'mark_locked')){ - for my $result(@$results){ - if($result->{lock_status}ne'show'){ - $result->{author}='Zensur'; - $result->{content}='Dieser Eintrag wurde gelöscht.'; - } - } - }elsif((defined $mark_locked) && ($mark_locked eq 'filter_locked')){ - my @results2=(); - for my $result(@$results){ - push @results2, $result if($result->{lock_status}eq'show'); - } - $results=\@results2; - } + my $filename = ''; + my $cache = {}; - comments::modify_results($results, $config, $request); + my $results = comments::get( $config, $request ); - #print STDERR Dumper($results); - $results=comments::sort($config, $results) if ($comment->{type}eq'tree'); + if ( ( defined $mark_locked ) && ( $mark_locked eq 'mark_locked' ) ) { + for my $result (@$results) { + if ( $result->{lock_status} ne 'show' ) { + $result->{author} = 'Zensur'; + $result->{content} = 'Dieser Eintrag wurde gelöscht.'; + } + } + } elsif ( ( defined $mark_locked ) && ( $mark_locked eq 'filter_locked' ) ) { + my @results2 = (); + for my $result (@$results) { + push @results2, $result if ( $result->{lock_status} eq 'show' ); + } + $results = \@results2; + } - #print STDERR Dumper($results); -# if ($comment->{sort_order}eq'desc'){ -# my @results= reverse(@$results); -# $results=\@results; -# } + comments::modify_results( $results, $config, $request ); - if ( - ($params->{show_max} ne'') - && ($params->{limit} ne'') - && ($params->{show_max}<$params->{limit}) - ){ - my @results2=(); - my $c=0; - for my $result(@$results){ - push @results2,$result; - $c++; - last if ($c>=$params->{show_max}); - } - $results=\@results2; - } + #print STDERR Dumper($results); + $results = comments::sort( $config, $results ) if ( $comment->{type} eq 'tree' ); - comments::render($_[0], $config, $request, $results); + #print STDERR Dumper($results); + # if ($comment->{sort_order}eq'desc'){ + # my @results= reverse(@$results); + # $results=\@results; + # } + + if ( ( $params->{show_max} ne '' ) + && ( $params->{limit} ne '' ) + && ( $params->{show_max} < $params->{limit} ) ) + { + my @results2 = (); + my $c = 0; + for my $result (@$results) { + push @results2, $result; + $c++; + last if ( $c >= $params->{show_max} ); + } + $results = \@results2; + } + + comments::render( $_[0], $config, $request, $results ); } -sub get{ - my $config = shift; - my $request= shift; +sub get { + my $config = shift; + my $request = shift; - my $params=$request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $dbh=db::connect($config, $request); + my $dbh = db::connect( $config, $request ); - (my $query, my $bind_values)=comments::get_query($dbh, $config, $request); - #print STDERR Dumper($$query); - #print STDERR Dumper($bind_values); - my $results=db::get($dbh, $$query, $bind_values); - #print STDERR Dumper($results); - return $results; + ( my $query, my $bind_values ) = comments::get_query( $dbh, $config, $request ); + + #print STDERR Dumper($$query); + #print STDERR Dumper($bind_values); + my $results = db::get( $dbh, $$query, $bind_values ); + + #print STDERR Dumper($results); + return $results; } -sub get_query{ - my $dbh = shift; - my $config = shift; - my $request=shift; +sub get_query { + my $dbh = shift; + my $config = shift; + my $request = shift; - my $params=$request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $event_id = undef; - my $event_start = undef; - my $from = 'calcms_comments c'; - my $where = ''; - my $limit = ''; - my @conditions=(); - my $bind_values=[]; + my $event_id = undef; + my $event_start = undef; + my $from = 'calcms_comments c'; + my $where = ''; + my $limit = ''; + my @conditions = (); + my $bind_values = []; - #exclude comments from config filter/locations_to_exclude - if ( - (defined $config->{filter}) - && (defined $config->{filter}->{locations_to_exclude}) - ){ - my @locations_to_exclude=split(/[,\s]+/,$config->{filter}->{locations_to_exclude}); - my $locations_to_exclude=join(', ',map {'?'} @locations_to_exclude); - - $from.=',calcms_events e'; - push @conditions,'e.id=c.event_id'; - push @conditions,'e.location not in ('.$locations_to_exclude.')'; - for my $location (@locations_to_exclude){ - push @$bind_values, $location; - } - } + #exclude comments from config filter/locations_to_exclude + if ( ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) + { + my @locations_to_exclude = split( /[,\s]+/, $config->{filter}->{locations_to_exclude} ); + my $locations_to_exclude = join( ', ', map { '?' } @locations_to_exclude ); - if ( - (defined $params->{event_id} && $params->{event_id}ne'') && - (defined $params->{event_start} && $params->{event_start}ne'') - ){ - #$where =qq{ and (event_id=? or event_start=?) }; - push @conditions, q{ (event_id=? or event_start=?) }; - push @$bind_values, $params->{event_id}; - push @$bind_values, $params->{event_start}; - } + $from .= ',calcms_events e'; + push @conditions, 'e.id=c.event_id'; + push @conditions, 'e.location not in (' . $locations_to_exclude . ')'; + for my $location (@locations_to_exclude) { + push @$bind_values, $location; + } + } - my $sort_order=$params->{sort_order}; + if ( ( defined $params->{event_id} && $params->{event_id} ne '' ) + && ( defined $params->{event_start} && $params->{event_start} ne '' ) ) + { + #$where =qq{ and (event_id=? or event_start=?) }; + push @conditions, q{ (event_id=? or event_start=?) }; + push @$bind_values, $params->{event_id}; + push @$bind_values, $params->{event_start}; + } - if ($params->{limit} ne''){ - $limit ='limit ?'; - push @$bind_values,$params->{limit}; - } + my $sort_order = $params->{sort_order}; - if (@conditions>0){ - $where= 'where '.join(' and ',@conditions); - } + if ( $params->{limit} ne '' ) { + $limit = 'limit ?'; + push @$bind_values, $params->{limit}; + } - my $dbcols=['id', 'event_start', 'event_id', 'content', 'ip', 'author', 'email', - 'lock_status', 'created_at', 'title', 'parent_id', 'level', 'news_status', 'project']; - my $cols=join(', ',map { 'c.'.$_ } @$dbcols); - my $query=qq{ + if ( @conditions > 0 ) { + $where = 'where ' . join( ' and ', @conditions ); + } + + my $dbcols = [ + 'id', 'event_start', 'event_id', 'content', 'ip', 'author', 'email', 'lock_status', + 'created_at', 'title', 'parent_id', 'level', 'news_status', 'project' + ]; + my $cols = join( ', ', map { 'c.' . $_ } @$dbcols ); + my $query = qq{ select $cols from $from $where order by created_at $sort_order $limit }; -# where lock_status='show' -# use Data::Dumper;print STDERR Dumper($query); - return (\$query, $bind_values); + # where lock_status='show' + # use Data::Dumper;print STDERR Dumper($query); + + return ( \$query, $bind_values ); } -sub modify_results{ - my $results = $_[0]; - my $config = $_[1]; - my $request = $_[2]; +sub modify_results { + my $results = $_[0]; + my $config = $_[1]; + my $request = $_[2]; - my $params=$request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $time_diff=''; - if ($params->{template}=~/\.xml/){ - $time_diff=time::utc_offset($config->{date}->{time_zone}); - $time_diff=~s/(\d\d)(\d\d)/$1\:$2/g; - } + my $time_diff = ''; + if ( $params->{template} =~ /\.xml/ ) { + $time_diff = time::utc_offset( $config->{date}->{time_zone} ); + $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; + } - my $language = $config->{date}->{language} || 'en'; - - for my $result (@$results){ - $result->{allow}->{new_comments} = 1 if ($params->{allow}->{new_comments}); - $result->{start_date_name} = time::date_format($result->{created_at}, $language); - $result->{start_time_name} = time::time_format($result->{created_at}); - my $comment_limit=100; - if (length($result->{content})>$comment_limit){ - $result->{short_content} = substr($result->{content},0,$comment_limit).'...' ; - }else{ - $result->{short_content} = $result->{content}; - } - $result->{base_url} = $config->{locations}->{base_url}; - $result->{cache_base_url} = $config->{cache}->{base_url}; + my $language = $config->{date}->{language} || 'en'; - if($params->{template}=~/\.xml/){ -# $result->{content} =~s/(\[\[.*?\]\])//gi; -# $result->{content} =markup::plain_to_xml($result->{content}); -# $result->{content} =$result->{html_content}; + for my $result (@$results) { + $result->{allow}->{new_comments} = 1 if ( $params->{allow}->{new_comments} ); + $result->{start_date_name} = time::date_format( $result->{created_at}, $language ); + $result->{start_time_name} = time::time_format( $result->{created_at} ); + my $comment_limit = 100; + if ( length( $result->{content} ) > $comment_limit ) { + $result->{short_content} = substr( $result->{content}, 0, $comment_limit ) . '...'; + } else { + $result->{short_content} = $result->{content}; + } + $result->{base_url} = $config->{locations}->{base_url}; + $result->{cache_base_url} = $config->{cache}->{base_url}; - $result->{content} = markup::html_to_plain($result->{html_content}); - $result->{short_content}= markup::html_to_plain($result->{short_content}); - $result->{excerpt} = "lass dich ueberraschen" if ((defined $result->{excerpt}) && ($result->{excerpt}eq'')); - $result->{excerpt} = markup::html_to_plain($result->{excerpt}); - $result->{title} = markup::html_to_plain($result->{title}); - $result->{series_name} = markup::html_to_plain($result->{series_name}); - $result->{program} = markup::html_to_plain($result->{program}); + if ( $params->{template} =~ /\.xml/ ) { - if (defined $result->{created_at}){ - $result->{created_at}=~s/ /T/gi; - $result->{created_at}.=$time_diff; - } + # $result->{content} =~s/(\[\[.*?\]\])//gi; + # $result->{content} =markup::plain_to_xml($result->{content}); + # $result->{content} =$result->{html_content}; - if (defined $result->{modified_at}){ - $result->{modified_at}=~s/ /T/gi; - $result->{modified_at}.=$time_diff; - } - } - } - return $results; + $result->{content} = markup::html_to_plain( $result->{html_content} ); + $result->{short_content} = markup::html_to_plain( $result->{short_content} ); + $result->{excerpt} = "lass dich ueberraschen" if ( ( defined $result->{excerpt} ) && ( $result->{excerpt} eq '' ) ); + $result->{excerpt} = markup::html_to_plain( $result->{excerpt} ); + $result->{title} = markup::html_to_plain( $result->{title} ); + $result->{series_name} = markup::html_to_plain( $result->{series_name} ); + $result->{program} = markup::html_to_plain( $result->{program} ); + + if ( defined $result->{created_at} ) { + $result->{created_at} =~ s/ /T/gi; + $result->{created_at} .= $time_diff; + } + + if ( defined $result->{modified_at} ) { + $result->{modified_at} =~ s/ /T/gi; + $result->{modified_at} .= $time_diff; + } + } + } + return $results; } +sub render { -sub render{ -# my $response =$_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $results = $_[3]; + # my $response =$_[0]; + my $config = $_[1]; + my $request = $_[2]; + my $results = $_[3]; - my $params =$request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my %template_parameters=%$params; - my $template_parameters=\%template_parameters; + my %template_parameters = %$params; + my $template_parameters = \%template_parameters; - $template_parameters->{comments} = $results; - $template_parameters->{comment_count} =(@$results)+0; - $template_parameters->{one_result} =1 if($template_parameters->{comment_count}==1); - $template_parameters->{allow}->{new_comments} =1 if ($params->{allow}->{new_comments}); + $template_parameters->{comments} = $results; + $template_parameters->{comment_count} = (@$results) + 0; + $template_parameters->{one_result} = 1 if ( $template_parameters->{comment_count} == 1 ); + $template_parameters->{allow}->{new_comments} = 1 if ( $params->{allow}->{new_comments} ); - $template_parameters->{event_id} = $params->{event_id}; - $template_parameters->{event_start} = $params->{event_start}; + $template_parameters->{event_id} = $params->{event_id}; + $template_parameters->{event_start} = $params->{event_start}; - $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ($config->{cache}->{server_cache}); - $template_parameters->{use_client_cache}= $config->{cache}->{use_client_cache} if ($config->{cache}->{use_client_cache}); - $template_parameters->{controllers} = $config->{controllers}; - template::process($_[0],$params->{template},$template_parameters); + $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} ); + $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} ); + $template_parameters->{controllers} = $config->{controllers}; + template::process( $_[0], $params->{template}, $template_parameters ); } #check if comment exists already -sub check{ - my $dbh = shift; - my $config = shift; - my $comment = shift; +sub check { + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $query=qq{ + my $query = qq{ select id from calcms_comments where ( @@ -264,38 +271,32 @@ sub check{ and ip=? and content=? }; - my $bind_values=[ - $comment->{event_start}, - $comment->{event_id}, - $comment->{parent_id}, - $comment->{author}, - $comment->{ip}, - $comment->{content} - ]; + my $bind_values = + [ $comment->{event_start}, $comment->{event_id}, $comment->{parent_id}, $comment->{author}, $comment->{ip}, $comment->{content} ]; - my $comments=db::get($dbh,$query,$bind_values); + my $comments = db::get( $dbh, $query, $bind_values ); - my @comments=@$comments; - return 0 if (@comments>0); - return 1; + my @comments = @$comments; + return 0 if ( @comments > 0 ); + return 1; } #used for insert -sub get_level{ - my $dbh = shift; - my $config = shift; - my $comment = shift; +sub get_level { + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $parent_id=$comment->{parent_id}; - return 0 unless defined $parent_id; - if($parent_id=~/(\d+)/){ - $parent_id=$1; - } - return 0 unless $parent_id=~/^\d+$/; - return 0 if $parent_id==0; + my $parent_id = $comment->{parent_id}; + return 0 unless defined $parent_id; + if ( $parent_id =~ /(\d+)/ ) { + $parent_id = $1; + } + return 0 unless $parent_id =~ /^\d+$/; + return 0 if $parent_id == 0; - #get level from parent node - my $query=qq{ + #get level from parent node + my $query = qq{ select level from calcms_comments where ( @@ -305,58 +306,49 @@ sub get_level{ and id=? limit 1 }; - my $bind_values=[ - $comment->{event_start}, - $comment->{event_id}, - $parent_id - ]; + my $bind_values = [ $comment->{event_start}, $comment->{event_id}, $parent_id ]; - my $comments=db::get($dbh,$query,$bind_values); + my $comments = db::get( $dbh, $query, $bind_values ); - my @comments=@$comments; - if (@comments>0){ - return $comments->[0]->{level}+1; - } - return 0; + my @comments = @$comments; + if ( @comments > 0 ) { + return $comments->[0]->{level} + 1; + } + return 0; } -sub get_by_event{ - my $dbh = shift; - my $config = shift; - my $request =$_[0]; +sub get_by_event { + my $dbh = shift; + my $config = shift; + my $request = $_[0]; - my $params = $request->{params}->{checked}->{comment}; + my $params = $request->{params}->{checked}->{comment}; - my $event_id = undef; - my $search = undef; - my $where = ''; - my $limit = ''; - my $bind_values=[]; + my $event_id = undef; + my $search = undef; + my $where = ''; + my $limit = ''; + my $bind_values = []; - if ($params->{event_id}ne''){ - $where =qq{ event_id=? }; - $bind_values=[$params->{event_id}]; - } + if ( $params->{event_id} ne '' ) { + $where = qq{ event_id=? }; + $bind_values = [ $params->{event_id} ]; + } - if ((defined $params->{search}) && ($params->{search}ne'')){ - $search ='%'.$params->{search}.'%'; - $where =qq{ (content like ?) or (email like ?) or (author like ?) or (ip like ?)}; - $bind_values=[ - $search, - $search, - $search, - $search - ]; - } + if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { + $search = '%' . $params->{search} . '%'; + $where = qq{ (content like ?) or (email like ?) or (author like ?) or (ip like ?)}; + $bind_values = [ $search, $search, $search, $search ]; + } - my $sort_order=$params->{sort_order} || 'desc'; + my $sort_order = $params->{sort_order} || 'desc'; - if ((defined $params->{limit}) && ($params->{limit} ne'')){ - $limit ='limit ?'; - push @$bind_values,$params->{limit}; - } + if ( ( defined $params->{limit} ) && ( $params->{limit} ne '' ) ) { + $limit = 'limit ?'; + push @$bind_values, $params->{limit}; + } - my $query=qq{ + my $query = qq{ select * from calcms_comments where $where @@ -364,21 +356,21 @@ sub get_by_event{ $limit }; - #print STDERR $query."\n"; - my $comments=db::get($dbh, $query, $bind_values); + #print STDERR $query."\n"; + my $comments = db::get( $dbh, $query, $bind_values ); - return $comments; + return $comments; } -sub get_by_time{ - my $dbh = shift; - my $config = shift; - my $comment = shift; +sub get_by_time { + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $where=''; - my $bind_values=[]; - if ($comment->{age} ne ''){ - $where=qq{ + my $where = ''; + my $bind_values = []; + if ( $comment->{age} ne '' ) { + $where = qq{ where event_id in ( select distinct event_id from calcms_comments @@ -387,11 +379,9 @@ sub get_by_time{ ) ) }; - $bind_values=[ - $comment->{age}*3600, - ]; - }elsif (($comment->{from} ne '') && ($comment->{till} ne '')){ - $where=qq{ + $bind_values = [ $comment->{age} * 3600, ]; + } elsif ( ( $comment->{from} ne '' ) && ( $comment->{till} ne '' ) ) { + $where = qq{ where event_id in ( select distinct event_id from calcms_comments @@ -399,313 +389,309 @@ sub get_by_time{ and created_at <= ? ) }; - $bind_values=[ - $comment->{from}, - $comment->{till} - ]; - } - my $query=qq{ + $bind_values = [ $comment->{from}, $comment->{till} ]; + } + my $query = qq{ select * from calcms_comments $where order by event_id, id }; - my $comments=db::get($dbh, $query, $bind_values); - return $comments; + my $comments = db::get( $dbh, $query, $bind_values ); + return $comments; } -sub get_events{ - my $dbh=shift; - my $config = shift; - my $request=shift; - my $comments=shift; +sub get_events { + my $dbh = shift; + my $config = shift; + my $request = shift; + my $comments = shift; - my $params=$request->{params}->{checked}->{comment}; + my $params = $request->{params}->{checked}->{comment}; - #get event_ids from comments - my $event_ids={}; - for my $comment (@$comments){ - my $event_id=$comment->{event_id}; - $event_ids->{$event_id}=1; - } + #get event_ids from comments + my $event_ids = {}; + for my $comment (@$comments) { + my $event_id = $comment->{event_id}; + $event_ids->{$event_id} = 1; + } - #get events from comment's event ids - return [] if ((keys %{$event_ids})==0); + #get events from comment's event ids + return [] if ( ( keys %{$event_ids} ) == 0 ); - #my $quoted_event_ids=join "," ,(map {$dbh->quote($_)}(keys %{$event_ids})); - my @bind_values=keys %{$event_ids}; - my $event_id_values=join "," ,(map {'?'}(keys %{$event_ids})); + #my $quoted_event_ids=join "," ,(map {$dbh->quote($_)}(keys %{$event_ids})); + my @bind_values = keys %{$event_ids}; + my $event_id_values = join ",", ( map { '?' } ( keys %{$event_ids} ) ); - my $query=qq{ + my $query = qq{ select id, start, program, series_name, title, excerpt from calcms_events where id in ($event_id_values) }; - my $events=db::get($dbh, $query, \@bind_values); + my $events = db::get( $dbh, $query, \@bind_values ); - #build lookup table for events by id - my $events_by_id={}; - for my $event (@$events){ - $events_by_id->{$event->{id}}=$event; - $event->{max_comment_id}=0; - } + #build lookup table for events by id + my $events_by_id = {}; + for my $event (@$events) { + $events_by_id->{ $event->{id} } = $event; + $event->{max_comment_id} = 0; + } - #add unassigned events -# for my $event_id (keys %{$event_ids}){ -# if ($events_by_id->{$event_id}eq''){ -# my $event={ -# title => "not assigned", -# max_comment_id => 0 -# -# }; -# push @$events,$event; -# $events_by_id->{$event_id}=$event; -# } -# } + #add unassigned events + # for my $event_id (keys %{$event_ids}){ + # if ($events_by_id->{$event_id}eq''){ + # my $event={ + # title => "not assigned", + # max_comment_id => 0 + # + # }; + # push @$events,$event; + # $events_by_id->{$event_id}=$event; + # } + # } - for my $comment (@$comments){ - my $event_id=$comment->{event_id}; - my $event=$events_by_id->{$event_id}; - next unless (defined $event); - $event->{comment_count}++; - push @{$event->{comments}},$comment;# if ($params->{event_id}ne''); - $event->{max_comment_id}=$comment->{id} if ($comment->{id} > $event->{max_comment_id}); - for my $name (keys %{$config->{controllers}}){ - $comment->{"controller_".$name}=$config->{controllers}->{$name}||''; -# $event->{"controller_$name"}=$config->{controllers}->{$name}; - } - } - my @sorted_events=reverse sort {$a->{max_comment_id} <=> $b->{max_comment_id}} @$events; - return \@sorted_events; + for my $comment (@$comments) { + my $event_id = $comment->{event_id}; + my $event = $events_by_id->{$event_id}; + next unless ( defined $event ); + $event->{comment_count}++; + push @{ $event->{comments} }, $comment; # if ($params->{event_id}ne''); + $event->{max_comment_id} = $comment->{id} if ( $comment->{id} > $event->{max_comment_id} ); + for my $name ( keys %{ $config->{controllers} } ) { + $comment->{ "controller_" . $name } = $config->{controllers}->{$name} || ''; + + # $event->{"controller_$name"}=$config->{controllers}->{$name}; + } + } + my @sorted_events = reverse sort { $a->{max_comment_id} <=> $b->{max_comment_id} } @$events; + return \@sorted_events; } -sub insert{ - my $dbh = shift; - my $config = shift; - my $comment = shift; +sub insert { + my $dbh = shift; + my $config = shift; + my $comment = shift; - $comment->{level}=comments::get_level($dbh, $config, $comment); + $comment->{level} = comments::get_level( $dbh, $config, $comment ); - my $entry={ - event_start => $comment->{event_start}, - event_id => $comment->{event_id}, - parent_id => $comment->{parent_id}, - level => $comment->{level}, - title => $comment->{title}, - content => $comment->{content}, - author => $comment->{author}, - email => $comment->{email}, - ip => $comment->{ip} - }; + my $entry = { + event_start => $comment->{event_start}, + event_id => $comment->{event_id}, + parent_id => $comment->{parent_id}, + level => $comment->{level}, + title => $comment->{title}, + content => $comment->{content}, + author => $comment->{author}, + email => $comment->{email}, + ip => $comment->{ip} + }; - my $comment_id=db::insert($dbh, 'calcms_comments', $entry); - return $comment_id; + my $comment_id = db::insert( $dbh, 'calcms_comments', $entry ); + return $comment_id; } -sub set_lock_status{ - my $dbh=shift; - my $config = shift; - my $comment=shift; +sub set_lock_status { + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $id = $comment->{id}; - my $lock_status = $comment->{set_lock_status}; - my $query=qq{ + my $id = $comment->{id}; + my $lock_status = $comment->{set_lock_status}; + my $query = qq{ update calcms_comments set lock_status = ? where id = ? }; - my $bind_values=[ - $lock_status, - $id - ]; - db::put($dbh,$query,$bind_values); + my $bind_values = [ $lock_status, $id ]; + db::put( $dbh, $query, $bind_values ); - $query=qq{ + $query = qq{ select event_id from calcms_comments where id=? }; - $bind_values=[$id]; - my $comments=db::get($dbh,$query,$bind_values); - if (@$comments>0){ - $comment->{event_id}=$comments->[0]->{event_id}; - update_comment_count($dbh,$comment); - } + $bind_values = [$id]; + my $comments = db::get( $dbh, $query, $bind_values ); + if ( @$comments > 0 ) { + $comment->{event_id} = $comments->[0]->{event_id}; + update_comment_count( $dbh, $comment ); + } } -sub set_news_status{ - my $dbh=shift; - my $config = shift; - my $comment=shift; +sub set_news_status { + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $id = $comment->{id}; - my $news_status = $comment->{set_news_status}; - my $query=qq{ + my $id = $comment->{id}; + my $news_status = $comment->{set_news_status}; + my $query = qq{ update calcms_comments set news_status= ? where id = ? }; - my $bind_values=[$news_status,$id]; - db::put($dbh,$query,$bind_values); + my $bind_values = [ $news_status, $id ]; + db::put( $dbh, $query, $bind_values ); } -sub update_comment_count{ - my $dbh=shift; - my $config = shift; - my $comment=shift; +sub update_comment_count { + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $query=qq{ + my $query = qq{ select count(id) count from calcms_comments where lock_status='show' and event_id=? }; - my $bind_values=[$comment->{event_id}]; - my $comments=db::get($dbh,$query,$bind_values); + my $bind_values = [ $comment->{event_id} ]; + my $comments = db::get( $dbh, $query, $bind_values ); - my $count=0; - $count=$comments->[0]->{count} if (@$comments>0); - $query=qq{ + my $count = 0; + $count = $comments->[0]->{count} if ( @$comments > 0 ); + $query = qq{ update calcms_events set comment_count=? where id=? }; - $bind_values=[ - $count, - $comment->{event_id} - ]; - db::put($dbh,$query,$bind_values); + $bind_values = [ $count, $comment->{event_id} ]; + db::put( $dbh, $query, $bind_values ); } #precondition: results are presorted by creation date (by sql) -sub sort{ - my $config = shift; - my $results=shift; +sub sort { + my $config = shift; + my $results = shift; - #define parent nodes - my $nodes={}; - for my $node (@$results){ - $nodes->{$node->{id}}=$node; - } - my @root_nodes=(); - for my $node (@$results){ - #fill childs into parent nodes - push @{$nodes->{$node->{parent_id}}->{childs}},$node; - #define root nodes - push @root_nodes,$node if ($node->{level}==0); - } - #print STDERR Dumper(\@root_nodes); + #define parent nodes + my $nodes = {}; + for my $node (@$results) { + $nodes->{ $node->{id} } = $node; + } + my @root_nodes = (); + for my $node (@$results) { - #sort root nodes from newest to oldest - my $sorted_nodes=[]; - for my $node (@root_nodes){ - #for my $node (reverse @root_nodes){ - sort_childs($node,$nodes,$sorted_nodes); - } - return $sorted_nodes; + #fill childs into parent nodes + push @{ $nodes->{ $node->{parent_id} }->{childs} }, $node; + + #define root nodes + push @root_nodes, $node if ( $node->{level} == 0 ); + } + + #print STDERR Dumper(\@root_nodes); + + #sort root nodes from newest to oldest + my $sorted_nodes = []; + for my $node (@root_nodes) { + + #for my $node (reverse @root_nodes){ + sort_childs( $node, $nodes, $sorted_nodes ); + } + return $sorted_nodes; } -sub sort_childs{ - my $node=shift; - my $nodes=shift; - my $sorted_nodes=shift; +sub sort_childs { + my $node = shift; + my $nodes = shift; + my $sorted_nodes = shift; - #push node into list of sorted nodes - push @{$sorted_nodes},$node; + #push node into list of sorted nodes + push @{$sorted_nodes}, $node; - #return if node is leaf - return $sorted_nodes unless (defined $node->{childs}); + #return if node is leaf + return $sorted_nodes unless ( defined $node->{childs} ); - #process child nodes - for my $child (@{$node->{childs}}){ - $sorted_nodes=sort_childs($child,$nodes,$sorted_nodes); - } - return $sorted_nodes; + #process child nodes + for my $child ( @{ $node->{childs} } ) { + $sorted_nodes = sort_childs( $child, $nodes, $sorted_nodes ); + } + return $sorted_nodes; } -sub configure_cache{ - my $config = shift; +sub configure_cache { + my $config = shift; - cache::init(); - - my $date_pattern = $cache::date_pattern; - my $datetime_pattern = $cache::datetime_pattern; - my $controllers = $config->{controllers}; + cache::init(); - cache::add_map('template=comments_newest&limit=3&type=list' ,$controllers->{comments}.'/neueste.html'); - cache::add_map('template=comments_atom.xml&limit=20' ,$controllers->{comments}.'/feed.xml'); - cache::add_map('template=comments.html&event_id=(\d+)&event_start='.$datetime_pattern ,$controllers->{comments}.'/$1_$2-$3-$4_$5-$6.html'); + my $date_pattern = $cache::date_pattern; + my $datetime_pattern = $cache::datetime_pattern; + my $controllers = $config->{controllers}; + + cache::add_map( 'template=comments_newest&limit=3&type=list', $controllers->{comments} . '/neueste.html' ); + cache::add_map( 'template=comments_atom.xml&limit=20', $controllers->{comments} . '/feed.xml' ); + cache::add_map( 'template=comments.html&event_id=(\d+)&event_start=' . $datetime_pattern, + $controllers->{comments} . '/$1_$2-$3-$4_$5-$6.html' ); } -sub check_params{ - my $config = shift; - my $params = shift; +sub check_params { + my $config = shift; + my $params = shift; - my $comment={}; + my $comment = {}; - $comment->{event_start}=''; - if ( (defined $params->{event_start}) && ($params->{event_start}=~/(\d\d\d\d\-\d\d\-\d\d[T ]\d\d\:\d\d)(\:\d\d)?/) ){ - $comment->{event_start}=$1; - } + $comment->{event_start} = ''; + if ( ( defined $params->{event_start} ) && ( $params->{event_start} =~ /(\d\d\d\d\-\d\d\-\d\d[T ]\d\d\:\d\d)(\:\d\d)?/ ) ) { + $comment->{event_start} = $1; + } - $comment->{sort_order}='desc'; - $comment->{limit}=''; - if ( (defined $params->{limit}) && ($params->{limit}=~/(\d+)/) ){ - $comment->{limit}=$1; - } + $comment->{sort_order} = 'desc'; + $comment->{limit} = ''; + if ( ( defined $params->{limit} ) && ( $params->{limit} =~ /(\d+)/ ) ) { + $comment->{limit} = $1; + } - $comment->{show_max}=''; - if ( (defined $params->{show_max}) && ($params->{show_max}=~/(\d+)/) ){ - $comment->{show_max}=$1; - } + $comment->{show_max} = ''; + if ( ( defined $params->{show_max} ) && ( $params->{show_max} =~ /(\d+)/ ) ) { + $comment->{show_max} = $1; + } - if ( (defined $params->{sort_order}) && ($params->{sort_order}eq'asc') ){ - $comment->{sort_order}='asc'; - } + if ( ( defined $params->{sort_order} ) && ( $params->{sort_order} eq 'asc' ) ) { + $comment->{sort_order} = 'asc'; + } - $comment->{event_id}=''; - if ( (defined $params->{event_id}) && ($params->{event_id}=~/(\d+)/) ){ - $comment->{event_id}=$1; - } + $comment->{event_id} = ''; + if ( ( defined $params->{event_id} ) && ( $params->{event_id} =~ /(\d+)/ ) ) { + $comment->{event_id} = $1; + } - if ( (defined $params->{parent_id}) && ($params->{parent_id}=~/(\d+)/) ){ - $comment->{parent_id}=$1; - } + if ( ( defined $params->{parent_id} ) && ( $params->{parent_id} =~ /(\d+)/ ) ) { + $comment->{parent_id} = $1; + } - if ((defined $params->{type}) && ($params->{type} eq 'list')){ - $comment->{type}='list'; - }else{ - $comment->{type}='tree'; - } + if ( ( defined $params->{type} ) && ( $params->{type} eq 'list' ) ) { + $comment->{type} = 'list'; + } else { + $comment->{type} = 'tree'; + } - my $debug=$params->{debug}||''; - if ($debug=~/([a-z\_\,]+)/){ - $comment->{debug}=$1; - } + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $comment->{debug} = $1; + } - log::error($config, 'missing parameter a') if ( (defined $params->{limit}) && ($comment->{limit} eq'') ); - log::error($config, 'missing parameter b') if ( (defined $params->{event_id}) && ($comment->{event_id} eq'') ); - log::error($config, 'missing parameter c') if ( (defined $params->{event_start}) && ($comment->{event_start} eq'') ); + log::error( $config, 'missing parameter a' ) if ( ( defined $params->{limit} ) && ( $comment->{limit} eq '' ) ); + log::error( $config, 'missing parameter b' ) if ( ( defined $params->{event_id} ) && ( $comment->{event_id} eq '' ) ); + log::error( $config, 'missing parameter c' ) if ( ( defined $params->{event_start} ) && ( $comment->{event_start} eq '' ) ); - my $delta_days=1; - if ($comment->{event_start}ne''){ - my $today = time::datetime_to_array(time::time_to_datetime()); - my $date = time::datetime_to_array($comment->{event_start}); - $delta_days = time::days_between($today,$date); - } - if( - ($delta_days > $config->{permissions}->{no_new_comments_before} ) - || ($delta_days < -1*$config->{permissions}->{no_new_comments_after} ) - ){ - $comment->{allow}->{new_comments}=0; - }else{ - $comment->{allow}->{new_comments}=1; - } + my $delta_days = 1; + if ( $comment->{event_start} ne '' ) { + my $today = time::datetime_to_array( time::time_to_datetime() ); + my $date = time::datetime_to_array( $comment->{event_start} ); + $delta_days = time::days_between( $today, $date ); + } + if ( ( $delta_days > $config->{permissions}->{no_new_comments_before} ) + || ( $delta_days < -1 * $config->{permissions}->{no_new_comments_after} ) ) + { + $comment->{allow}->{new_comments} = 0; + } else { + $comment->{allow}->{new_comments} = 1; + } - $comment->{template}=template::check($params->{template},'comments.html'); + $comment->{template} = template::check( $params->{template}, 'comments.html' ); - return $comment; + return $comment; } #do not delete last line! diff --git a/lib/calcms/config.pm b/lib/calcms/config.pm index 64e5cd3..6dc81c9 100644 --- a/lib/calcms/config.pm +++ b/lib/calcms/config.pm @@ -1,17 +1,17 @@ package config; require Exporter; -my @ISA = qw(Exporter); -my @EXPORT_OK = qw(get $config); -my %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +my @ISA = qw(Exporter); +my @EXPORT_OK = qw(get $config); +my %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); -use Config::General; +use Config::General(); -our $modified_at=-999; -our $config= undef; +our $modified_at = -999; +our $config = undef; -sub get{ - my $filename=shift; +sub get { + my $filename = shift; #return config if known #my $age=(-M $filename); @@ -19,11 +19,12 @@ sub get{ #reload config if changed my $configuration = new Config::General( - -ConfigFile=>$filename, - -UTF8=>1 + -ConfigFile => $filename, + -UTF8 => 1 ); - $config::config=$configuration->{DefaultConfig}->{config}; - $config::modified_at=$age; + $config::config = $configuration->{DefaultConfig}->{config}; + $config::modified_at = $age; + #print STDERR "reload $filename\n"; return $config::config; diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index e3fe386..708be3f 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -1,259 +1,272 @@ use warnings; use strict; use Data::Dumper; -use markup; +use markup(); -package creole_wiki; +package creole_wiki; require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(extractEventFromWikiText removeMeta eventToWikiText extractMeta removeMeta metaToWiki); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(extractEventFromWikiText removeMeta eventToWikiText extractMeta removeMeta metaToWiki); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); -#convert creole wiki text to event -sub extractEventFromWikiText{ - my $params=shift; - my $event=shift; - $event={} unless (defined $event); +#convert creole wiki text to event +sub extractEventFromWikiText { + my $params = shift; + my $event = shift; + $event = {} unless ( defined $event ); - my $title =$params->{title}||''; - my $content =$params->{content}||''; - my $local_media_url =$params->{local_media_url}||''; + my $title = $params->{title} || ''; + my $content = $params->{content} || ''; + my $local_media_url = $params->{local_media_url} || ''; #split content into excerpt, content and comments - $content=~s/\s*\,\s*/, /g; - my @lines=split(/\s*\-{10,99}\s*/,$content); - my $lines=\@lines; - for my $line (@$lines){ - $line=~s/^\s+|\s+$//g; + $content =~ s/\s*\,\s*/, /g; + my @lines = split( /\s*\-{10,99}\s*/, $content ); + my $lines = \@lines; + for my $line (@$lines) { + $line =~ s/^\s+|\s+$//g; } - if (@lines==1){ - $event->{content}=shift @lines; - }elsif(@lines==2){ - $event->{excerpt}=shift @lines; - $event->{content}=shift @lines; - }else{ - $event->{excerpt}=shift @lines; - $event->{content}=shift @lines; - $event->{comments}=join("--------------------\n",@lines); + if ( @lines == 1 ) { + $event->{content} = shift @lines; + } elsif ( @lines == 2 ) { + $event->{excerpt} = shift @lines; + $event->{content} = shift @lines; + } else { + $event->{excerpt} = shift @lines; + $event->{content} = shift @lines; + $event->{comments} = join( "--------------------\n", @lines ); } - if (defined $event->{excerpt}){ - $event->{excerpt}=markup::html_to_plain($event->{excerpt}); + if ( defined $event->{excerpt} ) { + $event->{excerpt} = markup::html_to_plain( $event->{excerpt} ); } - #extract program from title - $event->{program}=''; - if ($title=~/^(.*?)\:/){ - my $program=$1; - unless ($program=~/\s\-\s/){ - $event->{program}=$program; - $event->{program}=~s/^\s+|\s+$//g; - $event->{program}=~s/\s+/ /g; - $title=~s/^.*?\:\s+//gi; + #extract program from title + $event->{program} = ''; + + if ( $title =~ /^(.*?)\:/ ) { + my $program = $1; + unless ( $program =~ /\s\-\s/ ) { + $event->{program} = $program; + $event->{program} =~ s/^\s+|\s+$//g; + $event->{program} =~ s/\s+/ /g; + $title =~ s/^.*?\:\s+//gi; } } #extract series_name from title - $event->{series_name}=''; - if ($title=~/^(.*?)\s+\-\s+/){ - $event->{series_name}=$1; - $event->{series_name}=~s/^\s+|\s+$//g; - $event->{series_name}=~s/\s+/ /g; - $title=~s/^(.*?)\s+\-\s+//gi; + $event->{series_name} = ''; + if ( $title =~ /^(.*?)\s+\-\s+/ ) { + $event->{series_name} = $1; + $event->{series_name} =~ s/^\s+|\s+$//g; + $event->{series_name} =~ s/\s+/ /g; + $title =~ s/^(.*?)\s+\-\s+//gi; } - + #extract categories from title - my @categories=(); - while ($title=~/\((.*?),(.*?)\)/){ - my $category=$1; - $category =~s/\s+/ /g; - $category =~s/^\s+|\s+$//g; - $category =~s/\&/\+/g; - push @categories,$category if (defined $category && $category=~/\S/); + my @categories = (); + while ( $title =~ /\((.*?),(.*?)\)/ ) { + my $category = $1; + $category =~ s/\s+/ /g; + $category =~ s/^\s+|\s+$//g; + $category =~ s/\&/\+/g; + push @categories, $category if ( defined $category && $category =~ /\S/ ); - $category=''; - $category=$2 if (defined $2); - $category =~s/\s+/ /g; - $category =~s/^\s+|\s+$//g; - $category =~s/\&/\+/g; - push @categories,$category if (defined $category && $category=~/\S/); - $title=~s/\((.*?),(.*?)\)/\($2\)/; + $category = ''; + $category = $2 if ( defined $2 ); + $category =~ s/\s+/ /g; + $category =~ s/^\s+|\s+$//g; + $category =~ s/\&/\+/g; + push @categories, $category if ( defined $category && $category =~ /\S/ ); + $title =~ s/\((.*?),(.*?)\)/\($2\)/; } - if ($title=~/\((.*?)\)/){ - my $category=$1; - $category =~s/\s+/ /g; - $category =~s/^\s+|\s+$//g; - $category =~s/\&/\+/g; + if ( $title =~ /\((.*?)\)/ ) { + my $category = $1; + $category =~ s/\s+/ /g; + $category =~ s/^\s+|\s+$//g; + $category =~ s/\&/\+/g; -# print $category."\n"; - push @categories,$category if (defined $category && $category=~/\S/); - $title=~s/\((.*?)\)//; + # print $category."\n"; + push @categories, $category if ( defined $category && $category =~ /\S/ ); + $title =~ s/\((.*?)\)//; } - $event->{categories} = \@categories if (@categories>0); - $event->{title} = $title; - $event->{title} =~s/^\s+|\s+$//g; + $event->{categories} = \@categories if ( @categories > 0 ); + $event->{title} = $title; + $event->{title} =~ s/^\s+|\s+$//g; + + if ( defined $event->{content} ) { - if (defined $event->{content}){ #extract podcast_url from content link 'podcast' - my $podcast_url=''; - if ($event->{content}=~/\[\[\s*([^\|\]]+)\s*\|\s*podcast\s*\]\]/i){ - $podcast_url=$1; - # $podcast_url=~s/\|.*//g; - # print "found podcast:".$podcast_url."\n"; + my $podcast_url = ''; + if ( $event->{content} =~ /\[\[\s*([^\|\]]+)\s*\|\s*podcast\s*\]\]/i ) { + $podcast_url = $1; + + # $podcast_url=~s/\|.*//g; + # print "found podcast:".$podcast_url."\n"; } - $event->{podcast_url} = $podcast_url; + $event->{podcast_url} = $podcast_url; #extract media_url from content link 'download' - my $media_url=''; - if ($event->{content}=~/\[\[\s*([^\|\]]+)\s*\|\s*(direct\s+)?download\s*\]\]/i){ - $media_url=$1; - # $podcast_url=~s/\|.*//g; - # print "found media:".$media_url."\n"; + my $media_url = ''; + if ( $event->{content} =~ /\[\[\s*([^\|\]]+)\s*\|\s*(direct\s+)?download\s*\]\]/i ) { + $media_url = $1; + + # $podcast_url=~s/\|.*//g; + # print "found media:".$media_url."\n"; } - $event->{media_url} = $media_url; + $event->{media_url} = $media_url; #replace "thumbs/xxx" link by link to local media URI - $event->{content}=~s/\{\{\s*thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}/\[\[$local_media_url\/images\/$1\|\{\{$local_media_url\/thumbs\/$1\|$2\}\}\]\]/g; + $event->{content} =~ + s/\{\{\s*thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}/\[\[$local_media_url\/images\/$1\|\{\{$local_media_url\/thumbs\/$1\|$2\}\}\]\]/g; #extract image from content - if ($event->{content}=~/\{\{(.*?)(\||\}\})/){ - $event->{image}=$1; + if ( $event->{content} =~ /\{\{(.*?)(\||\}\})/ ) { + $event->{image} = $1; } } #meta - if (defined $event->{comments}){ - my $meta=extractMeta($event->{comments}); - $event->{meta} = $meta if (@$meta>0); + if ( defined $event->{comments} ) { + my $meta = extractMeta( $event->{comments} ); + $event->{meta} = $meta if ( @$meta > 0 ); } return $event; } -sub eventToWikiText{ - my $event=shift; - my $local_media_url =$event->{local_media_url}||''; +sub eventToWikiText { + my $event = shift; + my $local_media_url = $event->{local_media_url} || ''; - $event->{program} =~s/^\s+|\s+$//g; - $event->{series_name} =~s/^\s+|\s+$//g; - $event->{title} =~s/^\s+|\s+$//g; - $event->{excerpt} =~s/^\s+|\s+$//g; - $event->{content} =~s/^\s+|\s+$//g; - $event->{comments} =~s/^\s+|\s+$//g; + $event->{program} =~ s/^\s+|\s+$//g; + $event->{series_name} =~ s/^\s+|\s+$//g; + $event->{title} =~ s/^\s+|\s+$//g; + $event->{excerpt} =~ s/^\s+|\s+$//g; + $event->{content} =~ s/^\s+|\s+$//g; + $event->{comments} =~ s/^\s+|\s+$//g; - my $title=''; - if($event->{program} ne''){ - $title=$event->{program}; - $title.=': ' if (($event->{series_name} ne'') || ($event->{title} ne'')); + my $title = ''; + if ( $event->{program} ne '' ) { + $title = $event->{program}; + $title .= ': ' if ( ( $event->{series_name} ne '' ) || ( $event->{title} ne '' ) ); } - if($event->{series_name} ne''){ - $title.=$event->{series_name}; - $title.=' - ' if ($event->{title} ne''); + if ( $event->{series_name} ne '' ) { + $title .= $event->{series_name}; + $title .= ' - ' if ( $event->{title} ne '' ); } - $title.=$event->{title}; - if ($event->{categories}){ - $title.=' ('.join(",", @{$event->{categories}} ).')' if (@{$event->{categories}}>0); + $title .= $event->{title}; + if ( $event->{categories} ) { + $title .= ' (' . join( ",", @{ $event->{categories} } ) . ')' if ( @{ $event->{categories} } > 0 ); } - my $meta=extractMeta($event->{comments}, $event->{meta}); + my $meta = extractMeta( $event->{comments}, $event->{meta} ); + #use Data::Dumper;print "extracted meta".Dumper($meta); - $event->{comments}=removeMeta($event->{comments}); - $event->{wiki_comments}=$event->{comments}."\n\n".metaToWiki($meta); + $event->{comments} = removeMeta( $event->{comments} ); + $event->{wiki_comments} = $event->{comments} . "\n\n" . metaToWiki($meta); + #use Data::Dumper;print "event content".Dumper($event->{content}); #rich content editors: #$event->{wiki_content}=markup::html_to_creole($event->{content}); - #markup editors - $event->{wiki_content}=$event->{content}; - + #markup editors + $event->{wiki_content} = $event->{content}; # [[http://localhost/agenda_files/media/images/Vl8X7YmaWrmm9RMN_OMywA.jpg|{{http://localhost/agenda_files/media/thumbs/Vl8X7YmaWrmm9RMN_OMywA.jpg|}}]] - #replace "thumbs/xxx" link by link to local media URI +#replace "thumbs/xxx" link by link to local media URI # while ($event->{wiki_content}=~/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/){ - $event->{wiki_content}=~s/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/\{\{thumbs\/$1\|$3\}\}/g; -# } + $event->{wiki_content} =~ + s/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/\{\{thumbs\/$1\|$3\}\}/g; - my $wiki_content=join("\n".("-"x20)."\n",($event->{excerpt}, $event->{wiki_content}) ); - $wiki_content.="\n".("-"x20)."\n".$event->{wiki_comments} if ($event->{wiki_comments}=~/\S/); + # } + + my $wiki_content = join( "\n" . ( "-" x 20 ) . "\n", ( $event->{excerpt}, $event->{wiki_content} ) ); + $wiki_content .= "\n" . ( "-" x 20 ) . "\n" . $event->{wiki_comments} if ( $event->{wiki_comments} =~ /\S/ ); return { - title => $title, - content => $event->{content}, - wiki_content => $wiki_content + title => $title, + content => $event->{content}, + wiki_content => $wiki_content }; - + } #extrace meta tags from comment text -sub extractMeta{ - my $comments =shift; - my $meta =shift; +sub extractMeta { + my $comments = shift; + my $meta = shift; - $meta=[] unless (defined $meta); + $meta = [] unless ( defined $meta ); #push meta tags into meta list - if (defined $comments){ + if ( defined $comments ) { + #build index for meta already defined - my $meta_keys={}; - for my $pair (@$meta){ - $meta_keys->{$pair->{name}.'='.$pair->{value}}=1; + my $meta_keys = {}; + for my $pair (@$meta) { + $meta_keys->{ $pair->{name} . '=' . $pair->{value} } = 1; } - while ($comments=~/\~\~META\:(.+?)\=(.+?)\~\~/g){ - my $name=$1; - my $value=$2; + while ( $comments =~ /\~\~META\:(.+?)\=(.+?)\~\~/g ) { + my $name = $1; + my $value = $2; #fix meta values - $name=lc($name); - $name=~s/^\s+|\s+$//g; - $value=~s/^\s+|\s+$//g; + $name = lc($name); + $name =~ s/^\s+|\s+$//g; + $value =~ s/^\s+|\s+$//g; #insert into list, if not defined yet - unless( ($name eq'') || ($value eq'') || (exists $meta_keys->{$name.'='.$value}) ){ - push @$meta,{ - name=>$name, - value=>$value, - }; - $meta_keys->{$name.'='.$value}=1; + unless ( ( $name eq '' ) || ( $value eq '' ) || ( exists $meta_keys->{ $name . '=' . $value } ) ) { + push @$meta, + { + name => $name, + value => $value, + }; + $meta_keys->{ $name . '=' . $value } = 1; } - }; + } } -# use Data::Dumper;print Dumper($meta); + + # use Data::Dumper;print Dumper($meta); return $meta; } #remove meta tags from comment text -sub removeMeta{ - my $comments=shift||''; +sub removeMeta { + my $comments = shift || ''; - my $result=''; - for my $line (split(/\n/,$comments)){ - $result.=$line unless ($line=~/\~\~META\:(.+?)\=(.+?)\~\~/g); + my $result = ''; + for my $line ( split( /\n/, $comments ) ) { + $result .= $line unless ( $line =~ /\~\~META\:(.+?)\=(.+?)\~\~/g ); } + #use Data::Dumper;print "removed metsas:".Dumper($result); - $result=~s/^\s+//g; - $result=~s/\s+$//g; + $result =~ s/^\s+//g; + $result =~ s/\s+$//g; return $result; } #add meta tags to comment text -sub metaToWiki{ - my $meta =shift; +sub metaToWiki { + my $meta = shift; - my $result=''; - for my $pair (@$meta){ -# use Data::Dumper;print Dumper($pair); - $result.='~~META:'.$pair->{name}.'='.$pair->{value}.'~~'."\n"; + my $result = ''; + for my $pair (@$meta) { + + # use Data::Dumper;print Dumper($pair); + $result .= '~~META:' . $pair->{name} . '=' . $pair->{value} . '~~' . "\n"; } return $result; + #use Data::Dumper;print Dumper($meta); } - #test: #perl -e 'use creole_wiki;$a=creole_wiki::extractEventFromWikiText("teaser\n----------------------\nbody[[asd|download]][[bsd|hallo]][[csd|podcast]]{{a|b}}[[dsd|wer]]\n----------------------\ncomments",{title=>" a : b - c ( d e - f , g h i - j, k - m - l) "});use Data::Dumper;print Dumper($a)'; diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index 087a919..efdce4f 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -1,118 +1,120 @@ use warnings "all"; use strict; -#use DBI; -#use Apache::DBI; -use DBD::mysql; +use DBD::mysql(); -package db; +package db; use Data::Dumper; require Exporter; -our @ISA = qw(Exporter); +our @ISA = qw(Exporter); our @EXPORT_OK = qw( - connect disconnect - get insert put - next_id get_max_id - shift_date_by_hours shift_datetime_by_minutes - get_columns get_columns_hash - $write - $read + connect disconnect + get insert put + next_id get_max_id + shift_date_by_hours shift_datetime_by_minutes + get_columns get_columns_hash + $write + $read ); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); #debug settings -our $debug_read=0; -our $debug_write=0; +our $debug_read = 0; +our $debug_write = 0; #database control -our $read=1; -our $write=1; +our $read = 1; +our $write = 1; # connect to database -sub connect{ - my $options=shift; - my $request=shift; +sub connect { + my $options = shift; + my $request = shift; - return $request->{connection} if ((defined $request) && (defined $request->{connection})); + return $request->{connection} if ( ( defined $request ) && ( defined $request->{connection} ) ); - my $access_options=$options->{access}; + my $access_options = $options->{access}; - my $hostname =$access_options->{hostname}; - my $port =$access_options->{port}; - my $database =$access_options->{database}; - my $username =$access_options->{username}; - my $password =$access_options->{password}; + my $hostname = $access_options->{hostname}; + my $port = $access_options->{port}; + my $database = $access_options->{database}; + my $username = $access_options->{username}; + my $password = $access_options->{password}; - if ((defined $access_options->{write}) && ($access_options->{write}eq'1')){ - $username =$access_options->{username_write}; - $password =$access_options->{password_write}; + if ( ( defined $access_options->{write} ) && ( $access_options->{write} eq '1' ) ) { + $username = $access_options->{username_write}; + $password = $access_options->{password_write}; } - my $dbh=undef; + my $dbh = undef; my $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port"; -# if ($db::utf8dbi eq '1'){ -# use UTF8DBI; -# $dbh = UTF8DBI->connect( $dsn,$username,$password) || die "Database connection not made: $DBI::errstr"; # \nfor $dsn, $username -# }else{ -# use DBI; - $dbh = DBI->connect( $dsn,$username,$password,{mysql_enable_utf8 => 1}) || die "could not connect to database: $DBI::errstr"; # \nfor $dsn, $username -# } + + # if ($db::utf8dbi eq '1'){ + # use UTF8DBI; + # $dbh = UTF8DBI->connect( $dsn,$username,$password) || die "Database connection not made: $DBI::errstr"; # \nfor $dsn, $username + # }else{ + # use DBI; + $dbh = DBI->connect( $dsn, $username, $password, { mysql_enable_utf8 => 1 } ) + || die "could not connect to database: $DBI::errstr"; # \nfor $dsn, $username + + # } #print STDERR "db connect $username\n" if ($debug_read==1); - #print STDERR "db connect $username\n"; + #print STDERR "db connect $username\n"; $dbh->{RaiseError} = 1; $dbh->{'mysql_enable_utf8'} = 1; - put($dbh,"set character set utf8"); - put($dbh,"set names utf8"); - put($dbh,"set time_zone='".$options->{date}->{time_zone}."'"); + put( $dbh, "set character set utf8" ); + put( $dbh, "set names utf8" ); + put( $dbh, "set time_zone='" . $options->{date}->{time_zone} . "'" ); - $request->{connection}=$dbh; + $request->{connection} = $dbh; return $dbh; } -sub disconnect{ - my $request=shift; - my $dbh=$request->{connection}; +sub disconnect { + my $request = shift; + my $dbh = $request->{connection}; $dbh->disconnect; delete $request->{connection}; } # get all database entries of an sql query (as list of hashs) -sub get{ - my $dbh=shift; - my $sql=shift; - my $bind_values=shift; +sub get { + my $dbh = shift; + my $sql = shift; + my $bind_values = shift; - if ($debug_read==1){ - print STDERR $sql."\n"; - print STDERR Dumper($bind_values)."\n" if defined $bind_values; - } - - my $sth = $dbh->prepare( $sql ); - if ((defined $bind_values)&&(ref($bind_values)eq'ARRAY')){ -# print STDERR Dumper($bind_values)."\n"; - my $result = $sth->execute(@$bind_values); - unless ($result){ - print STDERR $sql."\n"; - die "db: $DBI::errstr $sql" if ($read==1); - } - }else{ - $sth->execute() || die "db: $DBI::errstr $sql" if ($read==1); + if ( $debug_read == 1 ) { + print STDERR $sql . "\n"; + print STDERR Dumper($bind_values) . "\n" if defined $bind_values; } - my @results=(); - while ( my $row=$sth->fetchrow_hashref){ - my $result={}; - foreach my $key (keys %$row){ - $result->{$key}=$row->{$key}; - } - push @results, $result; - } + my $sth = $dbh->prepare($sql); + if ( ( defined $bind_values ) && ( ref($bind_values) eq 'ARRAY' ) ) { - if ($debug_read==1){ - print STDERR Dumper($results[0])."\n" if (@results==1); - print STDERR @results."\n" if (@results!=1); + # print STDERR Dumper($bind_values)."\n"; + my $result = $sth->execute(@$bind_values); + unless ($result) { + print STDERR $sql . "\n"; + die "db: $DBI::errstr $sql" if ( $read == 1 ); + } + } else { + $sth->execute() || die "db: $DBI::errstr $sql" if ( $read == 1 ); + } + + my @results = (); + while ( my $row = $sth->fetchrow_hashref ) { + my $result = {}; + foreach my $key ( keys %$row ) { + $result->{$key} = $row->{$key}; + } + push @results, $result; + } + + if ( $debug_read == 1 ) { + print STDERR Dumper( $results[0] ) . "\n" if ( @results == 1 ); + print STDERR @results . "\n" if ( @results != 1 ); } $sth->finish; @@ -120,157 +122,157 @@ sub get{ } # get list of table columns -sub get_columns{ - my $dbh=shift; - my $table=shift; +sub get_columns { + my $dbh = shift; + my $table = shift; - my $columns=db::get($dbh, 'select column_name from information_schema.columns where table_name=?',[$table]); - my @result=map {$_->{column_name}} (@$columns); + my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] ); + my @result = map { $_->{column_name} } (@$columns); return \@result; } # get hash with table columns as keys -sub get_columns_hash{ - my $dbh=shift; - my $table=shift; +sub get_columns_hash { + my $dbh = shift; + my $table = shift; - my $columns=db::get_columns($dbh, $table); - my $result={}; - for my $column (@$columns){ - $result->{$column}=1; - } + my $columns = db::get_columns( $dbh, $table ); + my $result = {}; + for my $column (@$columns) { + $result->{$column} = 1; + } return $result; } - # insert an entry into database (select from where) -sub insert_old{ - my $dbh=shift; - my $tablename=shift; - my $entry=shift; - my $do_not_quote=shift; +sub insert_old { + my $dbh = shift; + my $tablename = shift; + my $entry = shift; + my $do_not_quote = shift; - my $keys =join(",", map {$_} (keys %$entry)); - my $values =undef; - if (defined $do_not_quote && $do_not_quote ne ''){ - $values =join("\n,", map {$entry->{$_}} (keys %$entry)); - }else{ - $values =join("\n,", map {$dbh->quote($entry->{$_})} (keys %$entry)); + my $keys = join( ",", map { $_ } ( keys %$entry ) ); + my $values = undef; + if ( defined $do_not_quote && $do_not_quote ne '' ) { + $values = join( "\n,", map { $entry->{$_} } ( keys %$entry ) ); + } else { + $values = join( "\n,", map { $dbh->quote( $entry->{$_} ) } ( keys %$entry ) ); } - my $sql ="insert into $tablename \n ($keys) \n values ($values);\n"; - print STDERR $sql."\n" if ($debug_write==1); - put($dbh,$sql); - + my $sql = "insert into $tablename \n ($keys) \n values ($values);\n"; + print STDERR $sql . "\n" if ( $debug_write == 1 ); + put( $dbh, $sql ); + } #returns last inserted id -sub insert{ - my $dbh=shift; - my $tablename=shift; - my $entry=shift; -# my $do_not_quote=shift; +sub insert { + my $dbh = shift; + my $tablename = shift; + my $entry = shift; - my $keys =join(",", map {$_} (keys %$entry)); - my $values =join(",", map {'?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); + # my $do_not_quote=shift; - my $sql ="insert into $tablename \n ($keys) \n values ($values);\n"; + my $keys = join( ",", map { $_ } ( keys %$entry ) ); + my $values = join( ",", map { '?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); - if ($debug_write==1){ - print STDERR $sql."\n"; - print STDERR Dumper(\@bind_values)."\n" if (@bind_values); - } + my $sql = "insert into $tablename \n ($keys) \n values ($values);\n"; - put($dbh, $sql, \@bind_values); - my $result=get($dbh, 'SELECT LAST_INSERT_ID() id;'); - return $result->[0]->{id} if $result->[0]->{id}>0; + if ( $debug_write == 1 ) { + print STDERR $sql . "\n"; + print STDERR Dumper( \@bind_values ) . "\n" if (@bind_values); + } + + put( $dbh, $sql, \@bind_values ); + my $result = get( $dbh, 'SELECT LAST_INSERT_ID() id;' ); + return $result->[0]->{id} if $result->[0]->{id} > 0; return undef; } -# execute a modifying database command (update,insert,...) -sub put{ - my $dbh=shift; - my $sql=shift; - my $bind_values=shift; +# execute a modifying database command (update,insert,...) +sub put { + my $dbh = shift; + my $sql = shift; + my $bind_values = shift; - if ($debug_write==1){ - print STDERR $sql."\n"; - print STDERR Dumper($bind_values)."\n" if defined $bind_values; - } + if ( $debug_write == 1 ) { + print STDERR $sql . "\n"; + print STDERR Dumper($bind_values) . "\n" if defined $bind_values; + } - my $sth = $dbh->prepare( $sql ); - if ($write==1){ - if ((defined $bind_values)&&(ref($bind_values)eq'ARRAY')){ + my $sth = $dbh->prepare($sql); + if ( $write == 1 ) { + if ( ( defined $bind_values ) && ( ref($bind_values) eq 'ARRAY' ) ) { $sth->execute(@$bind_values); - }else{ + } else { $sth->execute(); } - }; + } $sth->finish; - print STDERR "1\n" if ($debug_write==1); + print STDERR "1\n" if ( $debug_write == 1 ); - my $result=get($dbh, 'SELECT ROW_COUNT() changes;'); - return $result->[0]->{changes} if $result->[0]->{changes}>0; + my $result = get( $dbh, 'SELECT ROW_COUNT() changes;' ); + return $result->[0]->{changes} if $result->[0]->{changes} > 0; return undef; } -sub quote{ - my $dbh=shift; - my $sql=shift; - - $sql=~s/\_/\\\_/g; +sub quote { + my $dbh = shift; + my $sql = shift; + + $sql =~ s/\_/\\\_/g; return $dbh->quote($sql); } #subtract hours, deprecated(!) -sub shift_date_by_hours{ - my $dbh=shift; - my $date=shift; - my $offset=shift; +sub shift_date_by_hours { + my $dbh = shift; + my $date = shift; + my $offset = shift; - my $query='select date(? - INTERVAL ? HOUR) date'; - my $bind_values=[$date,$offset]; - my $results=db::get($dbh, $query, $bind_values); + my $query = 'select date(? - INTERVAL ? HOUR) date'; + my $bind_values = [ $date, $offset ]; + my $results = db::get( $dbh, $query, $bind_values ); return $results->[0]->{date}; } #add minutes, deprecated(!) -sub shift_datetime_by_minutes{ - my $dbh=shift; - my $datetime=shift; - my $offset=shift; +sub shift_datetime_by_minutes { + my $dbh = shift; + my $datetime = shift; + my $offset = shift; - my $query="select ? + INTERVAL ? MINUTE date"; - my $bind_values=[$datetime,$offset]; - my $results=db::get($dbh, $query, $bind_values); + my $query = "select ? + INTERVAL ? MINUTE date"; + my $bind_values = [ $datetime, $offset ]; + my $results = db::get( $dbh, $query, $bind_values ); return $results->[0]->{date}; } # get next free id of a database table -sub next_id{ - my $dbh=shift; - my $table=shift; +sub next_id { + my $dbh = shift; + my $table = shift; - my $query=qq{ + my $query = qq{ select max(id) id from $table where 1 }; - my $results=get($dbh,$query); - return $results->[0]->{id}+1; + my $results = get( $dbh, $query ); + return $results->[0]->{id} + 1; } # get max id from table -sub get_max_id{ - my $dbh=shift; - my $table=shift; +sub get_max_id { + my $dbh = shift; + my $table = shift; - my $query=qq{ + my $query = qq{ select max(id) id from $table where 1 }; - my $results=get($dbh,$query); + my $results = get( $dbh, $query ); return $results->[0]->{id}; } diff --git a/lib/calcms/eventOps.pm b/lib/calcms/eventOps.pm index 12ae8dc..87d5bb2 100644 --- a/lib/calcms/eventOps.pm +++ b/lib/calcms/eventOps.pm @@ -1,151 +1,156 @@ -package eventOps; +package eventOps; use warnings "all"; use strict; -use uac; -use events; -use series; -use series_dates; -use time; -use studios; -use series_events; -use user_stats; +use uac(); +use events(); +use series(); +use series_dates(); +use time(); +use studios(); +use series_events(); +use user_stats(); require Exporter; -our @ISA = qw(Exporter); +our @ISA = qw(Exporter); our @EXPORT_OK = qw( - setAttributesFromSeriesTemplate - setAttributesFromSchedule - setAttributesFromOtherEvent - setAttributesForCurrentTime - getRecurrenceBaseId + setAttributesFromSeriesTemplate + setAttributesFromSchedule + setAttributesFromOtherEvent + setAttributesForCurrentTime + getRecurrenceBaseId ); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); # functions: to be separated -sub setAttributesFromSeriesTemplate{ - my $config=shift; - my $params=shift; - my $event=shift; - - #get attributes from series - my $series=series::get( - $config,{ - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - series_id => $params->{series_id}, - } - ); - if(@$series!=1){ - uac::print_error("series not found"); - return undef; - } +sub setAttributesFromSeriesTemplate { + my $config = shift; + my $params = shift; + my $event = shift; - #copy fields from series template - my $serie=$series->[0]; - for my $attr( - 'program','series_name','title', - 'excerpt', 'topic', 'content', 'html_content', - 'project','category','location','image', 'live', - 'archive_url', 'podcast_url' - ){ - $event->{$attr}=$serie->{$attr}; - } - $event->{series_image} = $serie->{image}; - $event->{series_image_label} = $serie->{licence}; - return $serie; + #get attributes from series + my $series = series::get( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + series_id => $params->{series_id}, + } + ); + if ( @$series != 1 ) { + uac::print_error("series not found"); + return undef; + } + + #copy fields from series template + my $serie = $series->[0]; + for my $attr ( + 'program', 'series_name', 'title', 'excerpt', 'topic', 'content', 'html_content', 'project', + 'category', 'location', 'image', 'live', 'archive_url', 'podcast_url' + ) + { + $event->{$attr} = $serie->{$attr}; + } + $event->{series_image} = $serie->{image}; + $event->{series_image_label} = $serie->{licence}; + return $serie; } -sub setAttributesFromSchedule{ - my $config = shift; - my $params = shift; - my $event = shift; +sub setAttributesFromSchedule { + my $config = shift; + my $params = shift; + my $event = shift; - #print 'setAttributesFromSchedule:'.Dumper($params); - #set attributes from schedule - my $schedules=series_dates::get( - $config, { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - series_id => $params->{series_id}, - start_at => $params->{start_date} - } - ); + #print 'setAttributesFromSchedule:'.Dumper($params); + #set attributes from schedule + my $schedules = series_dates::get( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + series_id => $params->{series_id}, + start_at => $params->{start_date} + } + ); - if(@$schedules!=1){ - uac::print_error("schedule not found"); - return undef; - } + if ( @$schedules != 1 ) { + uac::print_error("schedule not found"); + return undef; + } - my $schedule=$schedules->[0]; - for my $attr( - 'start','end', - 'day', 'weekday', - 'start_date', 'end_date' - ){ - $event->{$attr}=$schedule->{$attr}; - } + my $schedule = $schedules->[0]; + for my $attr ( 'start', 'end', 'day', 'weekday', 'start_date', 'end_date' ) { + $event->{$attr} = $schedule->{$attr}; + } - my $timezone=$config->{date}->{time_zone}; - $event->{duration} = time::get_duration($event->{start}, $event->{end}, $timezone); + my $timezone = $config->{date}->{time_zone}; + $event->{duration} = time::get_duration( $event->{start}, $event->{end}, $timezone ); - return $event; + return $event; } -sub setAttributesFromOtherEvent{ - my $config=shift; - my $params=shift; - my $event=shift; +sub setAttributesFromOtherEvent { + my $config = shift; + my $params = shift; + my $event = shift; - my $event2=series::get_event($config, { - allow_any => 1, - #project_id => $params->{project_id}, - #studio_id => $params->{studio_id}, - #series_id => $params->{series_id}, - event_id => $params->{source_event_id} - }); - if (defined $event2){ - for my $attr ('title', 'user_title', 'excerpt', 'user_excerpt', 'content', 'html_content', 'topics', 'image', 'series_image', 'live', 'no_event_sync', 'podcast_url', 'archive_url', 'image_label', 'series_image_label'){ - $event->{$attr}=$event2->{$attr}; - } - $event->{rerun}=1; - $event->{recurrence}=getRecurrenceBaseId($event2); - } + my $event2 = series::get_event( + $config, + { + allow_any => 1, - return $event; + #project_id => $params->{project_id}, + #studio_id => $params->{studio_id}, + #series_id => $params->{series_id}, + event_id => $params->{source_event_id} + } + ); + if ( defined $event2 ) { + for my $attr ( + 'title', 'user_title', 'excerpt', 'user_excerpt', 'content', 'html_content', + 'topics', 'image', 'series_image', 'live', 'no_event_sync', 'podcast_url', + 'archive_url', 'image_label', 'series_image_label' + ) + { + $event->{$attr} = $event2->{$attr}; + } + $event->{rerun} = 1; + $event->{recurrence} = getRecurrenceBaseId($event2); + } + + return $event; } -sub setAttributesForCurrentTime{ - my $serie=shift; - my $event=shift; - - #on new event not from schedule use current time - if($event->{start}eq''){ - $event->{start}=time::time_to_datetime(); - if ($event->{start}=~/(\d\d\d\d\-\d\d\-\d\d \d\d)/){ - $event->{start}=$1.':00'; - } - } - $event->{duration}=$serie->{duration}||60; - $event->{end} =time::add_minutes_to_datetime($event->{start}, $event->{duration}); - $event->{end}=~s/(\d\d:\d\d)\:\d\d/$1/; +sub setAttributesForCurrentTime { + my $serie = shift; + my $event = shift; - return $event; + #on new event not from schedule use current time + if ( $event->{start} eq '' ) { + $event->{start} = time::time_to_datetime(); + if ( $event->{start} =~ /(\d\d\d\d\-\d\d\-\d\d \d\d)/ ) { + $event->{start} = $1 . ':00'; + } + } + $event->{duration} = $serie->{duration} || 60; + $event->{end} = time::add_minutes_to_datetime( $event->{start}, $event->{duration} ); + $event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/; + + return $event; } -# get recurrence base id -sub getRecurrenceBaseId{ - my $event = shift; - return $event->{recurrence} if (defined $event->{recurrence}) && ($event->{recurrence} ne '') && ($event->{recurrence} ne '0'); - return $event->{event_id}; +# get recurrence base id +sub getRecurrenceBaseId { + my $event = shift; + return $event->{recurrence} if ( defined $event->{recurrence} ) && ( $event->{recurrence} ne '' ) && ( $event->{recurrence} ne '0' ); + return $event->{event_id}; } # get a new event for given series -sub getNewEvent{ - my $config = shift; - my $params = shift; - my $action = shift; - +sub getNewEvent { + my $config = shift; + my $params = shift; + my $action = shift; # check for missing parameters my $required_fields = [ 'project_id', 'studio_id', 'series_id' ]; @@ -162,7 +167,7 @@ sub getNewEvent{ my $serie = eventOps::setAttributesFromSeriesTemplate( $config, $params, $event ); - #print Dumper($params); + #print Dumper($params); if ( $action eq 'show_new_event_from_schedule' ) { eventOps::setAttributesFromSchedule( $config, $params, $event ); } else { @@ -198,30 +203,31 @@ sub getNewEvent{ $event->{published} = 1; $event->{new_event} = 1; - return $event; + return $event; } # add user, action -sub createEvent{ - my $request = shift; - my $event = shift; - my $action = shift; - - my $config = $request->{config}; - my $permissions = $request->{permissions}; - my $user = $request->{user}; +sub createEvent { + my $request = shift; + my $event = shift; + my $action = shift; + + my $config = $request->{config}; + my $permissions = $request->{permissions}; + my $user = $request->{user}; my $checklist = [ 'studio', 'user', 'create_events', 'studio_timeslots' ]; if ( $action eq 'create_event_from_schedule' ) { push @$checklist, 'schedule' if $action eq 'create_event_from_schedule'; } + #use Data::Dumper; #print Dumper($checklist); #print Dumper($request); #print Dumper($event); - my $start = $event->{start_date}, - my $end = time::add_minutes_to_datetime( $event->{start_date}, $event->{duration} ); + my $start = $event->{start_date}, my $end = time::add_minutes_to_datetime( $event->{start_date}, $event->{duration} ); + #print Dumper($start); #print Dumper($end); diff --git a/lib/calcms/event_history.pm b/lib/calcms/event_history.pm index 72ad67b..e2666bc 100644 --- a/lib/calcms/event_history.pm +++ b/lib/calcms/event_history.pm @@ -1,174 +1,176 @@ #!/bin/perl - -package event_history; + +package event_history; use warnings "all"; use strict; use Data::Dumper; require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get get_by_id insert insert_by_event_id delete); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get get_by_id insert insert_by_event_id delete); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_event_history'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_event_history' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - return undef unless defined $condition->{studio_id}; + return undef unless defined $condition->{studio_id}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'series_id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{event_id}) && ($condition->{event_id} ne '')){ - push @conditions, 'event_id=?'; + if ( ( defined $condition->{event_id} ) && ( $condition->{event_id} ne '' ) ) { + push @conditions, 'event_id=?'; push @bind_values, $condition->{event_id}; } - if ((defined $condition->{change_id}) && ($condition->{change_id} ne '')){ - push @conditions, 'id=?'; + if ( ( defined $condition->{change_id} ) && ( $condition->{change_id} ne '' ) ) { + push @conditions, 'id=?'; push @bind_values, $condition->{change_id}; } - my $limit=''; - if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ - $limit= 'limit '.$condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_event_history $conditions order by modified_at desc $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $changes=db::get($dbh, $query, \@bind_values); - #print STDERR Dumper($changes); + #print STDERR Dumper($query).Dumper(\@bind_values); - for my $change (@$changes){ - $change->{change_id}=$change->{id}; + my $changes = db::get( $dbh, $query, \@bind_values ); + + #print STDERR Dumper($changes); + + for my $change (@$changes) { + $change->{change_id} = $change->{id}; delete $change->{id}; } return $changes; } -sub get_by_id{ - my $config=shift; - my $id=shift; +sub get_by_id { + my $config = shift; + my $id = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $query=qq{ + my $query = qq{ select * from calcms_event_history where event_id=? }; - my $studios=db::get($dbh,$query,[$id]); - return undef if (@$studios!=1); + my $studios = db::get( $dbh, $query, [$id] ); + return undef if ( @$studios != 1 ); return $studios->[0]; } -sub insert{ - my $config=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $entry = shift; - $entry->{modified_at}= time::time_to_datetime(time()); + $entry->{modified_at} = time::time_to_datetime( time() ); - $entry->{event_id}=$entry->{id} if((defined $entry->{id})&&(!(defined $entry->{event_id}))); - delete $entry->{id}; + $entry->{event_id} = $entry->{id} if ( ( defined $entry->{id} ) && ( !( defined $entry->{event_id} ) ) ); + delete $entry->{id}; - #TODO:filter for existing attributes - my $columns=get_columns($config); - my $event={}; - for my $column (keys %$columns){ - $event->{$column}=$entry->{$column} if defined $entry->{$column}; - } + #TODO:filter for existing attributes + my $columns = get_columns($config); + my $event = {}; + for my $column ( keys %$columns ) { + $event->{$column} = $entry->{$column} if defined $entry->{$column}; + } - my $dbh=db::connect($config); - my $id=db::insert($dbh, 'calcms_event_history', $event); - return $id; + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_event_history', $event ); + return $id; } # insert event -sub insert_by_event_id{ - my $config=shift; - my $options=shift; +sub insert_by_event_id { + my $config = shift; + my $options = shift; - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{series_id}; - return undef unless defined $options->{event_id}; - return undef unless defined $options->{user}; + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{series_id}; + return undef unless defined $options->{event_id}; + return undef unless defined $options->{user}; - my $sql=q{ + my $sql = q{ select * from calcms_events where id=? }; - my $bind_values=[$options->{event_id}]; - my $dbh=db::connect($config); - my $results=db::get($dbh, $sql, $bind_values); - if(@$results!=1){ - print STDERR "cannot find event with event_id=$options->{event_id}"; - return 0; - } + my $bind_values = [ $options->{event_id} ]; + my $dbh = db::connect($config); + my $results = db::get( $dbh, $sql, $bind_values ); + if ( @$results != 1 ) { + print STDERR "cannot find event with event_id=$options->{event_id}"; + return 0; + } - # add to history - my $event=$results->[0]; + # add to history + my $event = $results->[0]; $event->{project_id} = $options->{project_id}; $event->{studio_id} = $options->{studio_id}; $event->{series_id} = $options->{series_id}; $event->{event_id} = $options->{event_id}; $event->{user} = $options->{user}; $event->{deleted} = 1; - event_history::insert($config, $event); + event_history::insert( $config, $event ); } -sub delete{ - my $config=shift; - my $entry=shift; - - my $dbh=db::connect($config); - db::put($dbh, 'delete from calcms_event_history where event_id=?', [$entry->{id}]); +sub delete { + my $config = shift; + my $entry = shift; + + my $dbh = db::connect($config); + db::put( $dbh, 'delete from calcms_event_history where event_id=?', [ $entry->{id} ] ); } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index e03d6ea..317b12f 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -1,15 +1,15 @@ use warnings "all"; use strict; -use DBI; -use template; +use DBI(); +use template(); -use config; -use time; -use db; -use cache; -use markup; -use log; +use config(); +use time(); +use db(); +use cache(); +use markup(); +use log(); package events; use Data::Dumper; @@ -41,987 +41,985 @@ sub init { sub get_cached_or_render { - # my $response=$_[0]; - my $config = $_[1]; - my $request = $_[2]; + # my $response=$_[0]; + my $config = $_[1]; + my $request = $_[2]; - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $cache = {}; - if ( $config->{cache}->{use_cache} == 1 ) { - events::configure_cache($config); - $cache = cache::load( $config, $params ); - log::write( $config, 'cache', $cache->{action} ); - if ( defined $cache->{content} ) { - $_[0] = $cache->{content}; - return; - } - } + my $cache = {}; + if ( $config->{cache}->{use_cache} == 1 ) { + events::configure_cache($config); + $cache = cache::load( $config, $params ); + if ( defined $cache->{content} ) { + $_[0] = $cache->{content}; + return; + } + } - my $results = events::get( $config, $request ); - events::render( $_[0], $config, $request, $results ); + my $results = events::get( $config, $request ); + events::render( $_[0], $config, $request, $results ); - #write to cache - if ( $config->{cache}->{use_cache} == 1 ) { + #write to cache + if ( $config->{cache}->{use_cache} == 1 ) { - #todo:put out reference only - log::write( $config, 'cache', $cache ); - $cache->{content} = $_[0]; - cache::save($cache); - } - log::mem( $config, 'events not_cached' ) if ( $debug > 2 ); - return $_[0]; + #todo:put out reference only + $cache->{content} = $_[0]; + cache::save($cache); + } + + return $_[0]; } sub get { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $debug = $config->{system}->{debug}; + my $debug = $config->{system}->{debug}; - my $dbh = db::connect( $config, $request ); + my $dbh = db::connect( $config, $request ); - ( my $query, my $bind_values ) = events::get_query( $dbh, $config, $request ); + ( my $query, my $bind_values ) = events::get_query( $dbh, $config, $request ); - #print STDERR Dumper($query).Dumper($bind_values)."\n"; + #print STDERR Dumper($query).Dumper($bind_values)."\n"; - my $results = db::get( $dbh, $$query, $bind_values ); + my $results = db::get( $dbh, $$query, $bind_values ); - #$results = events::add_recordings($dbh, $config, $request, $results); + #$results = events::add_recordings($dbh, $config, $request, $results); - #print STDERR Dumper($results); - $results = events::modify_results( $dbh, $config, $request, $results ); + #print STDERR Dumper($results); + $results = events::modify_results( $dbh, $config, $request, $results ); - return $results; + return $results; } sub modify_results { - my $dbh = shift; - my $config = shift; - my $request = shift; - my $results = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; + my $results = shift; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $running_event_id = 0; - my $projects = {}; - my $studios = {}; + my $running_event_id = 0; + my $projects = {}; + my $studios = {}; - # print $running_event_id." ".$running_events->[0]->{start}." ".$running_events->[0]->{title} if ($debug ne''); - my $time_diff = ''; - if ( scalar @$results > 0 ) { - $results->[0]->{__first__} = 1; - $results->[-1]->{__last__} = 1; - $running_event_id = events::get_running_event_id($dbh); - } + # print $running_event_id." ".$running_events->[0]->{start}." ".$running_events->[0]->{title} if ($debug ne''); + my $time_diff = ''; + if ( scalar @$results > 0 ) { + $results->[0]->{__first__} = 1; + $results->[-1]->{__last__} = 1; + $running_event_id = events::get_running_event_id($dbh); + } - if ( ( defined $params->{template} ) && ( $params->{template} =~ /\.xml/ ) ) { - $time_diff = time::utc_offset( $config->{date}->{time_zone} ); - $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; - } + if ( ( defined $params->{template} ) && ( $params->{template} =~ /\.xml/ ) ) { + $time_diff = time::utc_offset( $config->{date}->{time_zone} ); + $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; + } - my $previous_result = { start_date => '' }; - my $counter = 1; - for my $result (@$results) { - if ( defined $params->{template} ) { - if ( $params->{template} =~ /\.ics$/ ) { - $result->{content_ical} = - markup::plain_to_ical( $result->{content} ); - $result->{title_ical} = - markup::plain_to_ical( $result->{title} ); - $result->{user_title_ical} = - markup::plain_to_ical( $result->{user_title} ); - $result->{excerpt_ical} = - markup::plain_to_ical( $result->{excerpt} ); - $result->{user_excerpt_ical} = - markup::plain_to_ical( $result->{user_excerpt} ); - $result->{series_name} = - markup::plain_to_ical( $result->{series_name} ); - $result->{created_at} =~ s/ /T/gi; - $result->{created_at} =~ s/[\:\-]//gi; - $result->{modified_at} =~ s/ /T/gi; - $result->{modified_at} =~ s/[\:\-]//gi; + my $previous_result = { start_date => '' }; + my $counter = 1; + for my $result (@$results) { + if ( defined $params->{template} ) { + if ( $params->{template} =~ /\.ics$/ ) { + $result->{content_ical} = + markup::plain_to_ical( $result->{content} ); + $result->{title_ical} = + markup::plain_to_ical( $result->{title} ); + $result->{user_title_ical} = + markup::plain_to_ical( $result->{user_title} ); + $result->{excerpt_ical} = + markup::plain_to_ical( $result->{excerpt} ); + $result->{user_excerpt_ical} = + markup::plain_to_ical( $result->{user_excerpt} ); + $result->{series_name} = + markup::plain_to_ical( $result->{series_name} ); + $result->{created_at} =~ s/ /T/gi; + $result->{created_at} =~ s/[\:\-]//gi; + $result->{modified_at} =~ s/ /T/gi; + $result->{modified_at} =~ s/[\:\-]//gi; - } elsif ( $params->{template} =~ /\.atom\.xml/ ) { - $result->{excerpt} = '' unless defined( $result->{excerpt} ); - $result->{excerpt} = "lass dich ueberraschen" - if ( $result->{excerpt} eq '' ); + } elsif ( $params->{template} =~ /\.atom\.xml/ ) { + $result->{excerpt} = '' unless defined( $result->{excerpt} ); + $result->{excerpt} = "lass dich ueberraschen" + if ( $result->{excerpt} eq '' ); - # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); - # $result->{title} =markup::plain_to_xml($result->{title}); - # $result->{series_name} =markup::plain_to_xml($result->{series_name}); - # $result->{program} =markup::plain_to_xml($result->{program}); + # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); + # $result->{title} =markup::plain_to_xml($result->{title}); + # $result->{series_name} =markup::plain_to_xml($result->{series_name}); + # $result->{program} =markup::plain_to_xml($result->{program}); - $result->{created_at} =~ s/ /T/gi; - $result->{created_at} .= $time_diff; - $result->{modified_at} =~ s/ /T/gi; - $result->{modified_at} .= $time_diff; - } elsif ( $params->{template} =~ /\.rss\.xml/ ) { - $result->{excerpt} = '' unless defined( $result->{excerpt} ); - $result->{excerpt} = "lass dich ueberraschen" - if ( $result->{excerpt} eq '' ); + $result->{created_at} =~ s/ /T/gi; + $result->{created_at} .= $time_diff; + $result->{modified_at} =~ s/ /T/gi; + $result->{modified_at} .= $time_diff; + } elsif ( $params->{template} =~ /\.rss\.xml/ ) { + $result->{excerpt} = '' unless defined( $result->{excerpt} ); + $result->{excerpt} = "lass dich ueberraschen" + if ( $result->{excerpt} eq '' ); - # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); - # $result->{title} =markup::plain_to_xml($result->{title}); - # $result->{series_name} =markup::plain_to_xml($result->{series_name}); - # $result->{program} =markup::plain_to_xml($result->{program}); - #print STDERR "created:$result->{created_at} modified:$result->{modified_at}\n"; - $result->{modified_at} = - time::datetime_to_rfc822( $result->{modified_at} ); - if ( $result->{created_at} =~ /[1-9]/ ) { - $result->{created_at} = - time::datetime_to_rfc822( $result->{created_at} ); - } else { - $result->{created_at} = $result->{modified_at}; - } + # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); + # $result->{title} =markup::plain_to_xml($result->{title}); + # $result->{series_name} =markup::plain_to_xml($result->{series_name}); + # $result->{program} =markup::plain_to_xml($result->{program}); + #print STDERR "created:$result->{created_at} modified:$result->{modified_at}\n"; + $result->{modified_at} = + time::datetime_to_rfc822( $result->{modified_at} ); + if ( $result->{created_at} =~ /[1-9]/ ) { + $result->{created_at} = + time::datetime_to_rfc822( $result->{created_at} ); + } else { + $result->{created_at} = $result->{modified_at}; + } - } - } - $result->{series_name} ||= ''; - $result->{series_name} = '' if $result->{series_name} eq '_single_'; + } + } + $result->{series_name} ||= ''; + $result->{series_name} = '' if $result->{series_name} eq '_single_'; - $result->{rerun} = '' unless defined $result->{rerun}; + $result->{rerun} = '' unless defined $result->{rerun}; - $result->{title} = '' unless defined $result->{title}; - if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { - $result->{episode} = $1 unless defined $result->{episode}; - $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); - $result->{title} =~ s/\#\d+[a-z]?\s*$//; - $result->{title} =~ s/\s+$//; - } - $result->{rerun} = '' if ( $result->{rerun} eq '0' ); + $result->{title} = '' unless defined $result->{title}; + if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { + $result->{episode} = $1 unless defined $result->{episode}; + $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); + $result->{title} =~ s/\#\d+[a-z]?\s*$//; + $result->{title} =~ s/\s+$//; + } + $result->{rerun} = '' if ( $result->{rerun} eq '0' ); - if ( ( defined $result->{recurrence_count} ) - && ( $result->{recurrence_count} > 0 ) ) - { - $result->{recurrence_count_alpha} = - markup::base26( $result->{recurrence_count} + 1 ); - $result->{recurrence_id} = $result->{recurrence}; - } else { - $result->{recurrence_count_alpha} = ''; - $result->{recurrence_count} = ''; - } + if ( ( defined $result->{recurrence_count} ) + && ( $result->{recurrence_count} > 0 ) ) + { + $result->{recurrence_count_alpha} = + markup::base26( $result->{recurrence_count} + 1 ); + $result->{recurrence_id} = $result->{recurrence}; + } else { + $result->{recurrence_count_alpha} = ''; + $result->{recurrence_count} = ''; + } - # set title keys - my $keys = get_keys($result); - for my $key ( keys %$keys ) { - $result->{$key} = $keys->{$key}; - } + # set title keys + my $keys = get_keys($result); + for my $key ( keys %$keys ) { + $result->{$key} = $keys->{$key}; + } - $result = calc_dates( $config, $result, $params, $previous_result, $time_diff ); + $result = calc_dates( $config, $result, $params, $previous_result, $time_diff ); - $result->{event_uri} = ''; - if ( ( defined $result->{program} ) && ( $result->{program} ne '' ) ) { - $result->{event_uri} .= $result->{program}; - $result->{event_uri} .= '-' - if ( ( $result->{series_name} ne '' ) - || ( $result->{title} ne '' ) ); - } - if ( $result->{series_name} ne '' ) { - $result->{event_uri} .= $result->{series_name}; - $result->{event_uri} .= '-' if ( $result->{title} ne '' ); - } - $result->{event_uri} .= $result->{title} if $result->{title} ne ''; - $result->{event_uri} =~ s/\#/Nr./g; - $result->{event_uri} =~ s/\&/und/g; - $result->{event_uri} =~ s/\//\%2f/g; - $result->{event_uri} =~ s/[?]//g; + $result->{event_uri} = ''; + if ( ( defined $result->{program} ) && ( $result->{program} ne '' ) ) { + $result->{event_uri} .= $result->{program}; + $result->{event_uri} .= '-' + if ( ( $result->{series_name} ne '' ) + || ( $result->{title} ne '' ) ); + } + if ( $result->{series_name} ne '' ) { + $result->{event_uri} .= $result->{series_name}; + $result->{event_uri} .= '-' if ( $result->{title} ne '' ); + } + $result->{event_uri} .= $result->{title} if $result->{title} ne ''; + $result->{event_uri} =~ s/\#/Nr./g; + $result->{event_uri} =~ s/\&/und/g; + $result->{event_uri} =~ s/\//\%2f/g; + $result->{event_uri} =~ s/[?]//g; - $result->{rds_title} = $result->{event_uri}; - $result->{rds_title} =~ s/[^a-zA-Z0-9\-]/\_/gi; - $result->{rds_title} =~ s/\_{2,99}/\_/gi; - $result->{rds_title} = substr( $result->{rds_title}, 0, 63 ); + $result->{rds_title} = $result->{event_uri}; + $result->{rds_title} =~ s/[^a-zA-Z0-9\-]/\_/gi; + $result->{rds_title} =~ s/\_{2,99}/\_/gi; + $result->{rds_title} = substr( $result->{rds_title}, 0, 63 ); - #$result->{event_id}=$result->{id}; + #$result->{event_id}=$result->{id}; - $result->{base_url} = $request->{base_url}; - $result->{base_domain} = $config->{locations}->{base_domain}; - $result->{static_files_url} = $config->{locations}->{static_files_url}; - $result->{source_base_url} = $config->{locations}->{source_base_url}; - $result->{cache_base_url} = $config->{cache}->{base_url}; + $result->{base_url} = $request->{base_url}; + $result->{base_domain} = $config->{locations}->{base_domain}; + $result->{static_files_url} = $config->{locations}->{static_files_url}; + $result->{source_base_url} = $config->{locations}->{source_base_url}; + $result->{cache_base_url} = $config->{cache}->{base_url}; - $result->{is_running} = 1 - if ( $running_event_id eq $result->{event_id} ); - $result->{one_comment} = 1 if ( $result->{comment_count} == 1 ); - $result->{no_comment} = 1 if ( $result->{comment_count} == 0 ); + $result->{is_running} = 1 + if ( $running_event_id eq $result->{event_id} ); + $result->{one_comment} = 1 if ( $result->{comment_count} == 1 ); + $result->{no_comment} = 1 if ( $result->{comment_count} == 0 ); - #fix image url - #$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; - #if ($params->{exclude_event_images}==1){ - # if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ - # $result->{image} = $result->{series_image}; - # $result->{image_label} = $result->{series_image_label}; - # } - #} + #fix image url + #$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; + #if ($params->{exclude_event_images}==1){ + # if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ + # $result->{image} = $result->{series_image}; + # $result->{image_label} = $result->{series_image_label}; + # } + #} - if ( defined $result->{image} ) { - my $url = $config->{locations}->{local_media_url} || ''; - my $image = $result->{image}; - $result->{thumb_url} = $url . '/thumbs/' . $image; - $result->{icon_url} = $url . '/icons/' . $image; - $result->{image_url} = $url . '/images/' . $image; - } + if ( defined $result->{image} ) { + my $url = $config->{locations}->{local_media_url} || ''; + my $image = $result->{image}; + $result->{thumb_url} = $url . '/thumbs/' . $image; + $result->{icon_url} = $url . '/icons/' . $image; + $result->{image_url} = $url . '/images/' . $image; + } - if ( defined $result->{series_image} ) { - my $url = $config->{locations}->{local_media_url} || ''; - my $image = $result->{series_image}; - $result->{series_thumb_url} = $url . '/thumbs/' . $image; - $result->{series_icon_url} = $url . '/icons/' . $image; - $result->{series_image_url} = $url . '/images/' . $image; - } + if ( defined $result->{series_image} ) { + my $url = $config->{locations}->{local_media_url} || ''; + my $image = $result->{series_image}; + $result->{series_thumb_url} = $url . '/thumbs/' . $image; + $result->{series_icon_url} = $url . '/icons/' . $image; + $result->{series_image_url} = $url . '/images/' . $image; + } - $result->{location_css} = $result->{location} || ''; - $result->{location_css} = lc( $result->{location_css} ); - $result->{location_css} =~ s/\.//g; - $result->{location_css} =~ s/\s//g; - $result->{ 'location_label_' . $result->{location_css} } = 1; + $result->{location_css} = $result->{location} || ''; + $result->{location_css} = lc( $result->{location_css} ); + $result->{location_css} =~ s/\.//g; + $result->{location_css} =~ s/\s//g; + $result->{ 'location_label_' . $result->{location_css} } = 1; - # add project by name - my $project_name = $result->{project}; - if ( defined $project_name ) { + # add project by name + my $project_name = $result->{project}; + if ( defined $project_name ) { - #print STDERR "found project:$project_name\n"; - unless ( defined $projects->{$project_name} ) { - my $results = project::get( $config, { name => $project_name } ); - $projects->{$project_name} = $results->[0] || {}; - } - my $project = $projects->{$project_name}; - for my $key ( keys %$project ) { - $result->{ 'project_' . $key } = $project->{$key}; - } - } else { - print STDERR "events::get - unknown project for event $result->{id}\n"; - } + #print STDERR "found project:$project_name\n"; + unless ( defined $projects->{$project_name} ) { + my $results = project::get( $config, { name => $project_name } ); + $projects->{$project_name} = $results->[0] || {}; + } + my $project = $projects->{$project_name}; + for my $key ( keys %$project ) { + $result->{ 'project_' . $key } = $project->{$key}; + } + } else { + print STDERR "events::get - unknown project for event $result->{id}\n"; + } - #if project_id is set add columns from project (cached) - my $project_id = $result->{project_id}; - if ( defined $project_id ) { - unless ( defined $projects->{$project_id} ) { - my $results = project::get( $config, { project_id => $project_id } ); - $projects->{$project_id} = $results->[0] || {}; - } - my $project = $projects->{$project_id}; - for my $key ( keys %$project ) { - $result->{ 'project_' . $key } = $project->{$key}; - } - } + #if project_id is set add columns from project (cached) + my $project_id = $result->{project_id}; + if ( defined $project_id ) { + unless ( defined $projects->{$project_id} ) { + my $results = project::get( $config, { project_id => $project_id } ); + $projects->{$project_id} = $results->[0] || {}; + } + my $project = $projects->{$project_id}; + for my $key ( keys %$project ) { + $result->{ 'project_' . $key } = $project->{$key}; + } + } - #if studio_id is set add columns from studio (cached) - my $studio_id = $result->{studio_id}; - if ( defined $studio_id ) { - unless ( defined $studios->{$studio_id} ) { - my $results = studios::get( $config, { studio_id => $studio_id } ); - $studios->{$studio_id} = $results->[0] || {}; - } - my $studio = $studios->{$studio_id}; - for my $key ( keys %$studio ) { - $result->{ 'studio_' . $key } = $studio->{$key}; - } - } + #if studio_id is set add columns from studio (cached) + my $studio_id = $result->{studio_id}; + if ( defined $studio_id ) { + unless ( defined $studios->{$studio_id} ) { + my $results = studios::get( $config, { studio_id => $studio_id } ); + $studios->{$studio_id} = $results->[0] || {}; + } + my $studio = $studios->{$studio_id}; + for my $key ( keys %$studio ) { + $result->{ 'studio_' . $key } = $studio->{$key}; + } + } - #$result->{'project_title'}=$project->{title} if (defined $project->{title} && $project->{title} ne ''); + #$result->{'project_title'}=$project->{title} if (defined $project->{title} && $project->{title} ne ''); - #print STDERR "project:'$project_name'\n"; - #print STDERR "title:'$result->{project_title}'\n"; - #use Data::Dumper;print STDERR Dumper($result); + #print STDERR "project:'$project_name'\n"; + #print STDERR "title:'$result->{project_title}'\n"; + #use Data::Dumper;print STDERR Dumper($result); - for my $name ( keys %{ $config->{mapping}->{events} } ) { - my $val = ''; - if ( ( defined $name ) - && ( defined $config->{mapping}->{events}->{$name} ) - && ( defined $result->{$name} ) ) - { - $val = $config->{mapping}->{events}->{$name}->{ $result->{$name} } - || ''; - $result->{ $name . '_mapped' } = $val if ( $val ne '' ); - } - } + for my $name ( keys %{ $config->{mapping}->{events} } ) { + my $val = ''; + if ( ( defined $name ) + && ( defined $config->{mapping}->{events}->{$name} ) + && ( defined $result->{$name} ) ) + { + $val = $config->{mapping}->{events}->{$name}->{ $result->{$name} } + || ''; + $result->{ $name . '_mapped' } = $val if ( $val ne '' ); + } + } - #for my $name (keys %{$config->{controllers}}){ - # $result->{"controller_$name"}=$config->{controllers}->{$name}; - #} + #for my $name (keys %{$config->{controllers}}){ + # $result->{"controller_$name"}=$config->{controllers}->{$name}; + #} - $previous_result = $result; + $previous_result = $result; - #print "Content-type:text/text\n\n"; - #use Data::Dumper;print STDERR Dumper($result); - $result->{ 'counter_' . $counter } = 1; - $counter++; + #print "Content-type:text/text\n\n"; + #use Data::Dumper;print STDERR Dumper($result); + $result->{ 'counter_' . $counter } = 1; + $counter++; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(list|details)/ ) ) - { - if ( ( defined $result->{excerpt} ) && ( length( $result->{excerpt} ) > 250 ) ) { - $result->{excerpt} = substr( $result->{excerpt}, 0, 250 ) . '...'; - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(list|details)/ ) ) + { + if ( ( defined $result->{excerpt} ) && ( length( $result->{excerpt} ) > 250 ) ) { + $result->{excerpt} = substr( $result->{excerpt}, 0, 250 ) . '...'; + } - if ( ( defined $result->{user_excerpt} ) && ( length( $result->{user_excerpt} ) > 250 ) ) { - $result->{user_excerpt} = substr( $result->{user_excerpt}, 0, 250 ) . '...'; - } - } + if ( ( defined $result->{user_excerpt} ) && ( length( $result->{user_excerpt} ) > 250 ) ) { + $result->{user_excerpt} = substr( $result->{user_excerpt}, 0, 250 ) . '...'; + } + } - #build content - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /\.html/ ) ) - { - if ( defined $result->{content} ) { - $result->{content} = - markup::fix_line_ends( $result->{content} ); - $result->{content} = - markup::creole_to_html( $result->{content} ); - $result->{html_content} = $result->{content}; + #build content + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /\.html/ ) ) + { + if ( defined $result->{content} ) { + $result->{content} = + markup::fix_line_ends( $result->{content} ); + $result->{content} = + markup::creole_to_html( $result->{content} ); + $result->{html_content} = $result->{content}; - } - if ( defined $result->{topic} ) { - $result->{topic} = markup::fix_line_ends( $result->{topic} ); - $result->{topic} = markup::creole_to_html( $result->{topic} ); - $result->{html_topic} = $result->{topic}; - } - } + } + if ( defined $result->{topic} ) { + $result->{topic} = markup::fix_line_ends( $result->{topic} ); + $result->{topic} = markup::creole_to_html( $result->{topic} ); + $result->{html_topic} = $result->{topic}; + } + } - #detect if images are in content or topic field - my $image_in_text = 0; - $image_in_text = 1 - if ( ( defined $result->{content} ) - && ( $result->{content} =~ /{topic} ) - && ( $result->{topic} =~ /{no_image_in_text} = 1 if $image_in_text == 0; + #detect if images are in content or topic field + my $image_in_text = 0; + $image_in_text = 1 + if ( ( defined $result->{content} ) + && ( $result->{content} =~ /{topic} ) + && ( $result->{topic} =~ /{no_image_in_text} = 1 if $image_in_text == 0; - if ( - ( defined $params->{template} ) - && ( ( $params->{template} =~ /event_perl\.txt$/ ) - || ( $params->{template} =~ /event_file_export\.txt$/ ) ) + if ( + ( defined $params->{template} ) + && ( ( $params->{template} =~ /event_perl\.txt$/ ) + || ( $params->{template} =~ /event_file_export\.txt$/ ) ) - ) - { - for my $key ( keys %$result ) { - $result->{$key} =~ s/\|/\\\|/g if ( defined $result->{$key} ); - } + ) + { + for my $key ( keys %$result ) { + $result->{$key} =~ s/\|/\\\|/g if ( defined $result->{$key} ); + } - # $result->{content}='no'; - } + # $result->{content}='no'; + } - } # end for results - add_recurrence_dates( $config, $results ); - return $results; + } # end for results + add_recurrence_dates( $config, $results ); + return $results; } sub add_recurrence_dates { - my $config = shift; - my $results = shift; + my $config = shift; + my $results = shift; - # get unique list of recurrence ids from results - my $recurrence_dates = {}; - for my $result (@$results) { - next unless defined $result->{recurrence}; - next if $result->{recurrence} == 0; - $recurrence_dates->{ $result->{recurrence} } = 0; - } + # get unique list of recurrence ids from results + my $recurrence_dates = {}; + for my $result (@$results) { + next unless defined $result->{recurrence}; + next if $result->{recurrence} == 0; + $recurrence_dates->{ $result->{recurrence} } = 0; + } - my @event_ids = keys %$recurrence_dates; - return if @event_ids == 0; + my @event_ids = keys %$recurrence_dates; + return if @event_ids == 0; - # query start date of recurrences - my $conditions = []; - my $bind_values = []; - for my $id (@event_ids) { - push @$conditions, '?'; - push @$bind_values, $id; - } - $conditions = join( ',', @$conditions ); + # query start date of recurrences + my $conditions = []; + my $bind_values = []; + for my $id (@event_ids) { + push @$conditions, '?'; + push @$bind_values, $id; + } + $conditions = join( ',', @$conditions ); - my $query = qq{ + my $query = qq{ select id event_id, start from calcms_events where id in ($conditions) }; - #print STDERR Dumper($query); - #return; - my $dbh = db::connect($config); - my $events = db::get( $dbh, $query, $bind_values ); + #print STDERR Dumper($query); + #return; + my $dbh = db::connect($config); + my $events = db::get( $dbh, $query, $bind_values ); - # store start dates by recurrence id - for my $event (@$events) { - $recurrence_dates->{ $event->{event_id} } = $event->{start}; - } + # store start dates by recurrence id + for my $event (@$events) { + $recurrence_dates->{ $event->{event_id} } = $event->{start}; + } - # set start dates to results - for my $result (@$results) { - next unless defined $result->{recurrence}; - next if $result->{recurrence} == 0; - $result->{recurrence_date} = - $recurrence_dates->{ $result->{recurrence} }; - } + # set start dates to results + for my $result (@$results) { + next unless defined $result->{recurrence}; + next if $result->{recurrence} == 0; + $result->{recurrence_date} = + $recurrence_dates->{ $result->{recurrence} }; + } - #print STDERR Dumper($recurrence_dates); + #print STDERR Dumper($recurrence_dates); } sub calc_dates { - my $config = shift; - my $result = shift; - my $params = shift || {}; - my $previous_result = shift || {}; - my $time_diff = shift || ''; + my $config = shift; + my $result = shift; + my $params = shift || {}; + my $previous_result = shift || {}; + my $time_diff = shift || ''; - $result->{utc_offset} = $time_diff; - $result->{time_zone} = $config->{date}->{time_zone}; - my $language = $config->{date}->{language} || 'en'; + $result->{utc_offset} = $time_diff; + $result->{time_zone} = $config->{date}->{time_zone}; + my $language = $config->{date}->{language} || 'en'; - $result->{start_datetime} = $result->{start}; - $result->{start_datetime} =~ s/ /T/gi; - if ( $result->{start_datetime} =~ /(\d\d\d\d)\-(\d\d)\-(\d\d)T(\d\d)\:(\d\d)/ ) { - $result->{start_year} = $1; - $result->{start_month} = $2; - $result->{start_day} = $3; - $result->{start_hour} = $4; - $result->{start_minute} = $5; - } + $result->{start_datetime} = $result->{start}; + $result->{start_datetime} =~ s/ /T/gi; + if ( $result->{start_datetime} =~ /(\d\d\d\d)\-(\d\d)\-(\d\d)T(\d\d)\:(\d\d)/ ) { + $result->{start_year} = $1; + $result->{start_month} = $2; + $result->{start_day} = $3; + $result->{start_hour} = $4; + $result->{start_minute} = $5; + } - unless ( defined $result->{day} ) { - my $d = time::datetime_to_array( $result->{start} ); - my $hour = $d->[3]; - if ( ( defined $hour ) && ( $hour < 6 ) ) { - $result->{day} = time::add_days_to_date( $result->{start}, -1 ); - } else { - $result->{day} = time::datetime_to_date( $result->{start} ); - } - } - unless ( defined $result->{start_date} ) { - $result->{start_date} = time::datetime_to_date( $result->{start} ); - } - unless ( defined $result->{end_date} ) { - $result->{end_date} = time::datetime_to_date( $result->{end} ); - } + unless ( defined $result->{day} ) { + my $d = time::datetime_to_array( $result->{start} ); + my $hour = $d->[3]; + if ( ( defined $hour ) && ( $hour < 6 ) ) { + $result->{day} = time::add_days_to_date( $result->{start}, -1 ); + } else { + $result->{day} = time::datetime_to_date( $result->{start} ); + } + } + unless ( defined $result->{start_date} ) { + $result->{start_date} = time::datetime_to_date( $result->{start} ); + } + unless ( defined $result->{end_date} ) { + $result->{end_date} = time::datetime_to_date( $result->{end} ); + } - $result->{dtstart} = $result->{start_datetime}; - $result->{dtstart} =~ s/[\:\-]//gi; + $result->{dtstart} = $result->{start_datetime}; + $result->{dtstart} =~ s/[\:\-]//gi; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.txt|\.json)/ ) ) - { - $result->{start_utc_epoch} = time::datetime_to_utc( $result->{start_datetime}, $config->{date}->{time_zone} ); - } - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $result->{start_datetime_utc} = time::datetime_to_utc_datetime( $result->{start_datetime}, $config->{date}->{time_zone} ); - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.txt|\.json)/ ) ) + { + $result->{start_utc_epoch} = time::datetime_to_utc( $result->{start_datetime}, $config->{date}->{time_zone} ); + } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $result->{start_datetime_utc} = time::datetime_to_utc_datetime( $result->{start_datetime}, $config->{date}->{time_zone} ); + } - $result->{end_datetime} = $result->{end}; - $result->{end_datetime} =~ s/ /T/gi; + $result->{end_datetime} = $result->{end}; + $result->{end_datetime} =~ s/ /T/gi; - $result->{dtend} = $result->{end_datetime}; - $result->{dtend} =~ s/[\:\-]//gi; + $result->{dtend} = $result->{end_datetime}; + $result->{dtend} =~ s/[\:\-]//gi; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.txt|\.json)/ ) ) - { - $result->{end_utc_epoch} = time::datetime_to_utc( $result->{end_datetime}, $config->{date}->{time_zone} ); - } - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $result->{end_datetime_utc} = time::datetime_to_utc_datetime( $result->{end_datetime}, $config->{date}->{time_zone} ); - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.txt|\.json)/ ) ) + { + $result->{end_utc_epoch} = time::datetime_to_utc( $result->{end_datetime}, $config->{date}->{time_zone} ); + } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $result->{end_datetime_utc} = time::datetime_to_utc_datetime( $result->{end_datetime}, $config->{date}->{time_zone} ); + } - if ( ( defined $previous_result ) - && ( defined $previous_result->{start_date} ) - && ( $result->{start_date} ne $previous_result->{start_date} ) ) - { - $result->{is_first_of_day} = 1; - $previous_result->{is_last_of_day} = 1; - } + if ( ( defined $previous_result ) + && ( defined $previous_result->{start_date} ) + && ( $result->{start_date} ne $previous_result->{start_date} ) ) + { + $result->{is_first_of_day} = 1; + $previous_result->{is_last_of_day} = 1; + } - $result->{start_date_name} = - time::date_format( $result->{start_date}, $language ); - $result->{end_date_name} = - time::date_format( $result->{end_date}, $language ); + $result->{start_date_name} = + time::date_format( $result->{start_date}, $language ); + $result->{end_date_name} = + time::date_format( $result->{end_date}, $language ); - if ( $result->{start} =~ /(\d\d\:\d\d)\:\d\d/ ) { - $result->{start_time_name} = $1; - $result->{start_time} = $1; - } + if ( $result->{start} =~ /(\d\d\:\d\d)\:\d\d/ ) { + $result->{start_time_name} = $1; + $result->{start_time} = $1; + } - if ( $result->{end} =~ /(\d\d\:\d\d)\:\d\d/ ) { - $result->{end_time_name} = $1; - $result->{end_time} = $1; - } + if ( $result->{end} =~ /(\d\d\:\d\d)\:\d\d/ ) { + $result->{end_time_name} = $1; + $result->{end_time} = $1; + } - if ( defined $result->{weekday} ) { - my $language = $config::config->{date}->{language} || 'en'; + if ( defined $result->{weekday} ) { + my $language = $config::config->{date}->{language} || 'en'; - #my $weekdays=time::get_weekdays(); - my $weekday_index = $time::weekday_index->{ $result->{weekday} . '' } || 0; - $result->{weekday_name} = - $time::names->{$language}->{weekdays}->[$weekday_index]; - $result->{weekday_short_name} = - $time::names->{$language}->{weekdays_abbr}->[$weekday_index]; - } - return $result; + #my $weekdays=time::get_weekdays(); + my $weekday_index = $time::weekday_index->{ $result->{weekday} . '' } || 0; + $result->{weekday_name} = + $time::names->{$language}->{weekdays}->[$weekday_index]; + $result->{weekday_short_name} = + $time::names->{$language}->{weekdays_abbr}->[$weekday_index]; + } + return $result; } sub add_recordings { - my $dbh = shift; - my $config = shift; - my $request = shift; - my $events = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; + my $events = shift; - # print STDERR Dumper($results); - return $events unless defined $events; + # print STDERR Dumper($results); + return $events unless defined $events; - my $params = $request->{params}->{checked}; - return $events unless defined $params; - return $events unless defined $params->{recordings}; + my $params = $request->{params}->{checked}; + return $events unless defined $params; + return $events unless defined $params->{recordings}; - my @ids = (); - my $eventsById = {}; + my @ids = (); + my $eventsById = {}; - #my $events = $results; + #my $events = $results; - for my $event (@$events) { - my $eventId = $event->{event_id}; - push @ids, $eventId; - $eventsById->{$eventId} = $event; - } + for my $event (@$events) { + my $eventId = $event->{event_id}; + push @ids, $eventId; + $eventsById->{$eventId} = $event; + } - my $qms = join( ', ', ( map { '?' } @$events ) ); - my $bindValues = join( ', ', ( map { $_->{event_id} } @$events ) ); + my $qms = join( ', ', ( map { '?' } @$events ) ); + my $bindValues = join( ', ', ( map { $_->{event_id} } @$events ) ); - my $query = qq{ + my $query = qq{ select * from calcms_audio_recordings where event_id in ($qms) order by created_at; }; - $dbh = db::connect($config) unless defined $dbh; - my $recordings = db::get( $dbh, $query, $bindValues ); + $dbh = db::connect($config) unless defined $dbh; + my $recordings = db::get( $dbh, $query, $bindValues ); - #print STDERR Dumper($recordings); + #print STDERR Dumper($recordings); - for my $entry (@$recordings) { - my $eventId = $entry->{event_id}; - my $event = $eventsById->{$eventId}; - push @{ $event->{recordings} }, $entry; - } + for my $entry (@$recordings) { + my $eventId = $entry->{event_id}; + my $event = $eventsById->{$eventId}; + push @{ $event->{recordings} }, $entry; + } - return $events; + return $events; } sub getDateQueryConditions { - my $config = shift; - my $params = shift; - my $bind_values = shift; + my $config = shift; + my $params = shift; + my $bind_values = shift; - # conditions by date - my $date_conds = []; + # conditions by date + my $date_conds = []; - #date, today, tomorrow, yesterday - my $date = ''; - $date = time::date_cond( $params->{date} ) if $params->{date} ne ''; + #date, today, tomorrow, yesterday + my $date = ''; + $date = time::date_cond( $params->{date} ) if $params->{date} ne ''; - my $from_date = ''; - $from_date = time::date_cond( $params->{from_date} ) if $params->{from_date} ne ''; + my $from_date = ''; + $from_date = time::date_cond( $params->{from_date} ) if $params->{from_date} ne ''; - my $till_date = ''; - $till_date = time::date_cond( $params->{till_date} ) if $params->{till_date} ne ''; + my $till_date = ''; + $till_date = time::date_cond( $params->{till_date} ) if $params->{till_date} ne ''; - my $from_time = ''; - $from_time = time::time_cond( $params->{from_time} ) if $params->{from_time} ne ''; + my $from_time = ''; + $from_time = time::time_cond( $params->{from_time} ) if $params->{from_time} ne ''; - my $till_time = ''; - $till_time = time::time_cond( $params->{till_time} ) if $params->{till_time} ne ''; + my $till_time = ''; + $till_time = time::time_cond( $params->{till_time} ) if $params->{till_time} ne ''; - my $time = $params->{time}; - $time = '' unless defined $time; + my $time = $params->{time}; + $time = '' unless defined $time; - my $date_range_include = $params->{date_range_include}; - my $day_starting_hour = $config->{date}->{day_starting_hour}; + my $date_range_include = $params->{date_range_include}; + my $day_starting_hour = $config->{date}->{day_starting_hour}; - if ( $date eq 'today' ) { - my $date = time::get_event_date($config); - push @$date_conds, ' ( start_date = ? ) '; - push @$bind_values, $date; - return $date_conds; - } + if ( $date eq 'today' ) { + my $date = time::get_event_date($config); + push @$date_conds, ' ( start_date = ? ) '; + push @$bind_values, $date; + return $date_conds; + } - # given date - my $start = time::datetime_cond( $date . 'T00:00:00' ); - if ( $start ne '' ) { - $start = time::add_hours_to_datetime( $start, $day_starting_hour ); - my $end = time::add_hours_to_datetime( $start, 24 ); + # given date + my $start = time::datetime_cond( $date . 'T00:00:00' ); + if ( $start ne '' ) { + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + my $end = time::add_hours_to_datetime( $start, 24 ); - if ( $date_range_include eq '1' ) { - push @$date_conds, ' end > ? '; - push @$bind_values, $start; - } else { - push @$date_conds, ' start >= ? '; - push @$bind_values, $start; - } + if ( $date_range_include eq '1' ) { + push @$date_conds, ' end > ? '; + push @$bind_values, $start; + } else { + push @$date_conds, ' start >= ? '; + push @$bind_values, $start; + } - push @$date_conds, ' start < ? '; - push @$bind_values, $end; - return $date_conds; - } + push @$date_conds, ' start < ? '; + push @$bind_values, $end; + return $date_conds; + } - if ( $time eq 'now' ) { - push @$date_conds, qq{ + if ( $time eq 'now' ) { + push @$date_conds, qq{ ( ( unix_timestamp(end) > unix_timestamp(now() ) ) and ( unix_timestamp(start) <= unix_timestamp(now() ) ) ) }; - return $date_conds; - } + return $date_conds; + } - if ( $time eq 'future' ) { - push @$date_conds, qq{ + if ( $time eq 'future' ) { + push @$date_conds, qq{ ( ( unix_timestamp(end) > unix_timestamp(now() ) ) and ( unix_timestamp(end) - unix_timestamp(now() ) ) < 7*24*3600 ) }; - return $date_conds; - } + return $date_conds; + } - #from_date and from_time is defined - if ( ( $from_date ne '' ) && ( $from_time ne '' ) ) { - my $datetime = time::datetime_cond( $from_date . 'T' . $from_time ); - if ( $datetime ne '' ) { - if ( $date_range_include eq '1' ) { - push @$date_conds, ' end > ? '; - push @$bind_values, $datetime; - $from_date = ''; - } else { - push @$date_conds, ' start >= ? '; - push @$bind_values, $datetime; - $from_date = ''; - } - } - } + #from_date and from_time is defined + if ( ( $from_date ne '' ) && ( $from_time ne '' ) ) { + my $datetime = time::datetime_cond( $from_date . 'T' . $from_time ); + if ( $datetime ne '' ) { + if ( $date_range_include eq '1' ) { + push @$date_conds, ' end > ? '; + push @$bind_values, $datetime; + $from_date = ''; + } else { + push @$date_conds, ' start >= ? '; + push @$bind_values, $datetime; + $from_date = ''; + } + } + } - #till_date and till_time is defined - if ( ( $till_date ne '' ) && ( $till_time ne '' ) ) { - my $datetime = time::datetime_cond( $till_date . 'T' . $till_time ); - if ( $datetime ne '' ) { - push @$date_conds, ' start < ? '; - push @$bind_values, $datetime; - $till_date = ''; - } - } + #till_date and till_time is defined + if ( ( $till_date ne '' ) && ( $till_time ne '' ) ) { + my $datetime = time::datetime_cond( $till_date . 'T' . $till_time ); + if ( $datetime ne '' ) { + push @$date_conds, ' start < ? '; + push @$bind_values, $datetime; + $till_date = ''; + } + } - # after start of daily broadcast - if ( ( $from_date ne '' ) && ( $from_time eq '' ) ) { - my $start = time::datetime_cond( $from_date . 'T00:00:00' ); - $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + # after start of daily broadcast + if ( ( $from_date ne '' ) && ( $from_time eq '' ) ) { + my $start = time::datetime_cond( $from_date . 'T00:00:00' ); + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); - if ( $date_range_include eq '1' ) { + if ( $date_range_include eq '1' ) { - # end is after start - push @$date_conds, ' ( end >= ? )'; - push @$bind_values, $start; - } else { - push @$date_conds, ' ( start >= ? ) '; - push @$bind_values, $start; - } - } + # end is after start + push @$date_conds, ' ( end >= ? )'; + push @$bind_values, $start; + } else { + push @$date_conds, ' ( start >= ? ) '; + push @$bind_values, $start; + } + } - # before end of daily broadcast - if ( ( $till_date ne '' ) && ( $till_time eq '' ) ) { - my $end = time::datetime_cond( $till_date . 'T00:00:00' ); - $end = time::add_hours_to_datetime( $end, $day_starting_hour ); - if ( $date_range_include eq '1' ) { + # before end of daily broadcast + if ( ( $till_date ne '' ) && ( $till_time eq '' ) ) { + my $end = time::datetime_cond( $till_date . 'T00:00:00' ); + $end = time::add_hours_to_datetime( $end, $day_starting_hour ); + if ( $date_range_include eq '1' ) { - # start is before end - push @$date_conds, ' ( start <= ? )'; - push @$bind_values, $end; - } else { - push @$date_conds, ' ( end <= ? ) '; - push @$bind_values, $end; - } - } + # start is before end + push @$date_conds, ' ( start <= ? )'; + push @$bind_values, $end; + } else { + push @$date_conds, ' ( end <= ? ) '; + push @$bind_values, $end; + } + } - if ( $params->{weekday} ne '' ) { - my $weekday = $params->{weekday}; - $weekday += 1; - $weekday -= 7 if ( $weekday > 7 ); - push @$date_conds, ' (dayofweek(start)= ?) '; - push @$bind_values, $weekday; - } + if ( $params->{weekday} ne '' ) { + my $weekday = $params->{weekday}; + $weekday += 1; + $weekday -= 7 if ( $weekday > 7 ); + push @$date_conds, ' (dayofweek(start)= ?) '; + push @$bind_values, $weekday; + } - if ( $params->{archive} eq 'past' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @$date_conds, ' ( start < ? ) '; - push @$bind_values, $date; - } + if ( $params->{archive} eq 'past' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( start < ? ) '; + push @$bind_values, $date; + } - } - if ( $params->{archive} eq 'future' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @$date_conds, ' ( end >= ? ) '; - push @$bind_values, $date; - } - } + } + if ( $params->{archive} eq 'future' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( end >= ? ) '; + push @$bind_values, $date; + } + } - return $date_conds; + return $date_conds; } # if recordings is set in params, recordings date and path will be included sub get_query { - my $dbh = shift; - my $config = shift; - my $request = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - $params->{recordings} = '' unless defined $params->{recordings}; + $params->{recordings} = '' unless defined $params->{recordings}; - my $bind_values = []; - my $where_cond = []; - my $order_cond = ''; - my $limit_cond = ''; + my $bind_values = []; + my $where_cond = []; + my $order_cond = ''; + my $limit_cond = ''; - if ( $params->{event_id} ne '' ) { + if ( $params->{event_id} ne '' ) { - # conditions by event id - push @$where_cond, 'e.id=?'; - $bind_values = [ $params->{event_id} ]; + # conditions by event id + push @$where_cond, 'e.id=?'; + $bind_values = [ $params->{event_id} ]; - #filter by published, default=1 to see published only, set published='all' to see all - my $published = $params->{published} || '1'; - if ( ( $published eq '0' ) || ( $published eq '1' ) ) { - push @$where_cond, 'published=?'; - push @$bind_values, $published; - } + #filter by published, default=1 to see published only, set published='all' to see all + my $published = $params->{published} || '1'; + if ( ( $published eq '0' ) || ( $published eq '1' ) ) { + push @$where_cond, 'published=?'; + push @$bind_values, $published; + } - my $draft = $params->{draft} || '0'; - if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { - push @$where_cond, 'draft=?'; - push @$bind_values, $draft; - } + my $draft = $params->{draft} || '0'; + if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { + push @$where_cond, 'draft=?'; + push @$bind_values, $draft; + } - } else { + } else { - my $date_conds = getDateQueryConditions( $config, $params, $bind_values ); - my $date_cond = join " and ", @$date_conds; + my $date_conds = getDateQueryConditions( $config, $params, $bind_values ); + my $date_cond = join " and ", @$date_conds; - push @$where_cond, $date_cond if ( $date_cond ne '' ); - } + push @$where_cond, $date_cond if ( $date_cond ne '' ); + } - # location - my $location_cond = ''; - if ( $params->{location} ne '' ) { - my $location = ( split( /\,/, $params->{location} ) )[0]; - $location =~ s/[^a-zA-Z0-9]/%/g; - $location =~ s/%{2,99}/%/g; - if ( $location ne '' ) { - $location_cond = ' location like ? '; - push @$bind_values, $location; - } - } + # location + my $location_cond = ''; + if ( $params->{location} ne '' ) { + my $location = ( split( /\,/, $params->{location} ) )[0]; + $location =~ s/[^a-zA-Z0-9]/%/g; + $location =~ s/%{2,99}/%/g; + if ( $location ne '' ) { + $location_cond = ' location like ? '; + push @$bind_values, $location; + } + } - # exclude location - my $exclude_location_cond = ''; - if ( $params->{exclude_locations} eq '1' ) { - if ( $params->{locations_to_exclude} ne '' ) { - my @locations_to_exclude = split( /,/, $params->{locations_to_exclude} ); - $exclude_location_cond = 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; - for my $location (@locations_to_exclude) { - $location =~ s/^\s+//g; - $location =~ s/\s+$//g; - push @$bind_values, $location; - } - } - } + # exclude location + my $exclude_location_cond = ''; + if ( $params->{exclude_locations} eq '1' ) { + if ( $params->{locations_to_exclude} ne '' ) { + my @locations_to_exclude = split( /,/, $params->{locations_to_exclude} ); + $exclude_location_cond = 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; + for my $location (@locations_to_exclude) { + $location =~ s/^\s+//g; + $location =~ s/\s+$//g; + push @$bind_values, $location; + } + } + } - # exclude project - my $exclude_project_cond = ''; - if ( $params->{exclude_projects} eq '1' ) { - if ( $params->{projects_to_exclude} ne '' ) { - my @projects_to_exclude = split( /,/, $params->{projects_to_exclude} ); - $exclude_project_cond = 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; - for my $project (@projects_to_exclude) { - $project =~ s/^\s+//g; - $project =~ s/\s+$//g; - push @$bind_values, $project; - } - } - } + # exclude project + my $exclude_project_cond = ''; + if ( $params->{exclude_projects} eq '1' ) { + if ( $params->{projects_to_exclude} ne '' ) { + my @projects_to_exclude = split( /,/, $params->{projects_to_exclude} ); + $exclude_project_cond = 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; + for my $project (@projects_to_exclude) { + $project =~ s/^\s+//g; + $project =~ s/\s+$//g; + push @$bind_values, $project; + } + } + } - #filter for category - my $category_cond = ''; - if ( $params->{category} ne '' ) { - my $category = ( split( /\,/, $params->{category} ) )[0]; - $category =~ s/[^a-zA-Z0-9]/%/g; - $category =~ s/%{2,99}/%/g; - if ( $category ne '' ) { - $category_cond = qq{ + #filter for category + my $category_cond = ''; + if ( $params->{category} ne '' ) { + my $category = ( split( /\,/, $params->{category} ) )[0]; + $category =~ s/[^a-zA-Z0-9]/%/g; + $category =~ s/%{2,99}/%/g; + if ( $category ne '' ) { + $category_cond = qq{ id in( select event_id from calcms_categories where name like ? ) }; - } - push @$bind_values, $category; - } + } + push @$bind_values, $category; + } - my $series_name_cond = ''; - if ( ( defined $params->{series_name} ) - && ( $params->{series_name} ne '' ) ) - { - my $series_name = ( split( /\,/, $params->{series_name} ) )[0]; - $series_name =~ s/[^a-zA-Z0-9]/%/g; - $series_name =~ s/%{2,99}/%/g; - if ( $series_name ne '' ) { - $series_name_cond = ' series_name like ? '; - push @$bind_values, $series_name; - } - } + my $series_name_cond = ''; + if ( ( defined $params->{series_name} ) + && ( $params->{series_name} ne '' ) ) + { + my $series_name = ( split( /\,/, $params->{series_name} ) )[0]; + $series_name =~ s/[^a-zA-Z0-9]/%/g; + $series_name =~ s/%{2,99}/%/g; + if ( $series_name ne '' ) { + $series_name_cond = ' series_name like ? '; + push @$bind_values, $series_name; + } + } - #filter for tags - my $tag_cond = ''; - if ( ( defined $params->{tag} ) && ( $params->{tag} ne '' ) ) { - my @tags = ( split( /\,/, $params->{tag} ) ); - if ( scalar @tags > 0 ) { - my $tags = join ",", ( map { '?' } @tags ); - for my $tag (@tags) { - push @$bind_values, $tag; - } - $tag_cond = qq{ + #filter for tags + my $tag_cond = ''; + if ( ( defined $params->{tag} ) && ( $params->{tag} ne '' ) ) { + my @tags = ( split( /\,/, $params->{tag} ) ); + if ( scalar @tags > 0 ) { + my $tags = join ",", ( map { '?' } @tags ); + for my $tag (@tags) { + push @$bind_values, $tag; + } + $tag_cond = qq{ id in( select event_id from calcms_tags where name in($tags) ) }; - } - } - $tag_cond = ''; + } + } + $tag_cond = ''; - my $title_cond = ''; - if ( ( defined $params->{title} ) && ( $params->{title} ne '' ) ) { - my $title = ( split( /\,/, $params->{title} ) )[0]; - $title =~ s/[^a-zA-Z0-9]/%/g; - $title =~ s/%{2,99}/%/g; - $title =~ s/^\%//; - $title =~ s/\%$//; - $title = '%' . $title . '%'; - if ( $title ne '' ) { - $title_cond = ' title like ? '; - push @$bind_values, $title; - } - } + my $title_cond = ''; + if ( ( defined $params->{title} ) && ( $params->{title} ne '' ) ) { + my $title = ( split( /\,/, $params->{title} ) )[0]; + $title =~ s/[^a-zA-Z0-9]/%/g; + $title =~ s/%{2,99}/%/g; + $title =~ s/^\%//; + $title =~ s/\%$//; + $title = '%' . $title . '%'; + if ( $title ne '' ) { + $title_cond = ' title like ? '; + push @$bind_values, $title; + } + } - my $search_cond = ''; - if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { - my $search = lc $params->{search}; - $search =~ s/(?=[\\%_])/\\/g; - $search =~ s/^[\%\s]+//; - $search =~ s/[\%\s]+$//; - if ( $search ne '' ) { - $search = '%' . $search . '%'; - my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content', 'topic' ); - $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; - for my $attr (@attr) { - push @$bind_values, $search; - } - } - } + my $search_cond = ''; + if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { + my $search = lc $params->{search}; + $search =~ s/(?=[\\%_])/\\/g; + $search =~ s/^[\%\s]+//; + $search =~ s/[\%\s]+$//; + if ( $search ne '' ) { + $search = '%' . $search . '%'; + my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content', 'topic' ); + $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + for my $attr (@attr) { + push @$bind_values, $search; + } + } + } - #print STDERR $search_cond."\n"; + #print STDERR $search_cond."\n"; - my $project_cond = ''; + my $project_cond = ''; - # if ($filter_by_project eq'1'){ - my $project = undef; #$params->{default_project}; - $project = $params->{project} - if ( ( defined $params->{project} ) && ( $params->{project} ne '' ) ); - my $project_name = ''; - $project_name = $project->{name} - if ( ( defined $project ) - && ( defined $project->{name} ) - && ( $project->{name} ne '' ) ); - if ( ( $project_name ne '' ) && ( $project_name ne 'all' ) ) { - $project_cond = '(project=?)'; - push @$bind_values, $project_name; - } + # if ($filter_by_project eq'1'){ + my $project = undef; #$params->{default_project}; + $project = $params->{project} + if ( ( defined $params->{project} ) && ( $params->{project} ne '' ) ); + my $project_name = ''; + $project_name = $project->{name} + if ( ( defined $project ) + && ( defined $project->{name} ) + && ( $project->{name} ne '' ) ); + if ( ( $project_name ne '' ) && ( $project_name ne 'all' ) ) { + $project_cond = '(project=?)'; + push @$bind_values, $project_name; + } - # } + # } - #filter by published, default =1, set to 'all' to see all - my $published_cond = ''; - my $published = $params->{published} || '1'; - if ( ( $published eq '0' ) || ( $published eq '1' ) ) { - $published_cond = 'published=?'; - push @$bind_values, $published; - } + #filter by published, default =1, set to 'all' to see all + my $published_cond = ''; + my $published = $params->{published} || '1'; + if ( ( $published eq '0' ) || ( $published eq '1' ) ) { + $published_cond = 'published=?'; + push @$bind_values, $published; + } - #filter by draft, default =1, set to 'all' to see all - my $draft_cond = ''; - my $draft = $params->{draft} || '0'; - if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { - $draft_cond = 'draft=?'; - push @$bind_values, $draft; - } + #filter by draft, default =1, set to 'all' to see all + my $draft_cond = ''; + my $draft = $params->{draft} || '0'; + if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { + $draft_cond = 'draft=?'; + push @$bind_values, $draft; + } - my $disable_event_sync_cond = ''; - my $disable_event_sync = $params->{disable_event_sync} || ''; - if ( ( $disable_event_sync eq '0' ) || ( $disable_event_sync eq '1' ) ) { - $disable_event_sync_cond = 'disable_event_sync=?'; - push @$bind_values, $disable_event_sync; - } + my $disable_event_sync_cond = ''; + my $disable_event_sync = $params->{disable_event_sync} || ''; + if ( ( $disable_event_sync eq '0' ) || ( $disable_event_sync eq '1' ) ) { + $disable_event_sync_cond = 'disable_event_sync=?'; + push @$bind_values, $disable_event_sync; + } - #print STDERR $disable_event_sync_cond." ".$bind_values->[-1]."\n"; + #print STDERR $disable_event_sync_cond." ".$bind_values->[-1]."\n"; - #combine date, location, category, series_name, tag, search and project + #combine date, location, category, series_name, tag, search and project - push @$where_cond, $location_cond if ( $location_cond =~ /\S/ ); - push @$where_cond, $exclude_location_cond - if ( $exclude_location_cond =~ /\S/ ); - push @$where_cond, $exclude_project_cond - if ( $exclude_project_cond =~ /\S/ ); - push @$where_cond, $category_cond if ( $category_cond =~ /\S/ ); - push @$where_cond, $series_name_cond if ( $series_name_cond =~ /\S/ ); - push @$where_cond, $tag_cond if ( $tag_cond =~ /\S/ ); - push @$where_cond, $title_cond if ( $title_cond =~ /\S/ ); - push @$where_cond, $search_cond if ( $search_cond =~ /\S/ ); - push @$where_cond, $project_cond if ( $project_cond =~ /\S/ ); - push @$where_cond, $published_cond if ( $published_cond =~ /\S/ ); - push @$where_cond, $draft_cond if ( $draft_cond =~ /\S/ ); - push @$where_cond, $disable_event_sync_cond - if ( $disable_event_sync_cond ne '' ); + push @$where_cond, $location_cond if ( $location_cond =~ /\S/ ); + push @$where_cond, $exclude_location_cond + if ( $exclude_location_cond =~ /\S/ ); + push @$where_cond, $exclude_project_cond + if ( $exclude_project_cond =~ /\S/ ); + push @$where_cond, $category_cond if ( $category_cond =~ /\S/ ); + push @$where_cond, $series_name_cond if ( $series_name_cond =~ /\S/ ); + push @$where_cond, $tag_cond if ( $tag_cond =~ /\S/ ); + push @$where_cond, $title_cond if ( $title_cond =~ /\S/ ); + push @$where_cond, $search_cond if ( $search_cond =~ /\S/ ); + push @$where_cond, $project_cond if ( $project_cond =~ /\S/ ); + push @$where_cond, $published_cond if ( $published_cond =~ /\S/ ); + push @$where_cond, $draft_cond if ( $draft_cond =~ /\S/ ); + push @$where_cond, $disable_event_sync_cond + if ( $disable_event_sync_cond ne '' ); - #print STDERR Dumper($where_cond); + #print STDERR Dumper($where_cond); - #order is forced - if ( $params->{order} eq 'asc' ) { - $order_cond = 'order by start'; - } elsif ( $params->{order} eq 'desc' ) { - $order_cond = 'order by start desc'; - } else { + #order is forced + if ( $params->{order} eq 'asc' ) { + $order_cond = 'order by start'; + } elsif ( $params->{order} eq 'desc' ) { + $order_cond = 'order by start desc'; + } else { - #derivate order from archive flag - if ( $params->{archive} eq 'past' ) { - $order_cond = 'order by start desc'; - } else { - $order_cond = 'order by start'; - } - } + #derivate order from archive flag + if ( $params->{archive} eq 'past' ) { + $order_cond = 'order by start desc'; + } else { + $order_cond = 'order by start'; + } + } - if ( ( defined $params->{limit} ne '' ) && ( $params->{limit} ne '' ) ) { - $limit_cond = 'limit ' . $params->{limit}; - } + if ( ( defined $params->{limit} ne '' ) && ( $params->{limit} ne '' ) ) { + $limit_cond = 'limit ' . $params->{limit}; + } - my $query = qq{ + my $query = qq{ select date(e.start) start_date ,date(e.end) end_date @@ -1064,183 +1062,183 @@ sub get_query { ,e.disable_event_sync ,e.episode }; - my $template = $params->{template} || ''; + my $template = $params->{template} || ''; - $query .= ',e.excerpt' unless ( $template =~ /menu/ ); + $query .= ',e.excerpt' unless ( $template =~ /menu/ ); - # $query.=',e.project' unless ($template=~/menu/ || $template=~/list/); + # $query.=',e.project' unless ($template=~/menu/ || $template=~/list/); - my $get = $params->{get} || ''; - unless ( $get eq 'no_content' ) { - if ( $template =~ /\.html/ ) { - unless ( $template =~ /menu/ || $template =~ /list/ ) { - $query .= ', e.content, e.topic, e.html_content, e.html_topic'; + my $get = $params->{get} || ''; + unless ( $get eq 'no_content' ) { + if ( $template =~ /\.html/ ) { + unless ( $template =~ /menu/ || $template =~ /list/ ) { + $query .= ', e.content, e.topic, e.html_content, e.html_topic'; - #$query.=',html_content content, html_topic topic' ; - } - } else { - unless ( $template =~ /menu/ || $template =~ /list/ ) { - $query .= ', e.content, e.topic, e.html_content, e.html_topic'; - } - } - } + #$query.=',html_content content, html_topic topic' ; + } + } else { + unless ( $template =~ /menu/ || $template =~ /list/ ) { + $query .= ', e.content, e.topic, e.html_content, e.html_topic'; + } + } + } - # add project id and series id - if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { - if ( $params->{project_id} ne '' ) { - push @$where_cond, 'se.project_id=?'; - push @$bind_values, $params->{project_id}; - $query .= ', se.project_id'; - } - if ( $params->{studio_id} ne '' ) { - push @$where_cond, 'se.studio_id=?'; - push @$bind_values, $params->{studio_id}; - $query .= ', se.studio_id'; - } + # add project id and series id + if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { + if ( $params->{project_id} ne '' ) { + push @$where_cond, 'se.project_id=?'; + push @$bind_values, $params->{project_id}; + $query .= ', se.project_id'; + } + if ( $params->{studio_id} ne '' ) { + push @$where_cond, 'se.studio_id=?'; + push @$bind_values, $params->{studio_id}; + $query .= ', se.studio_id'; + } - #push @$where_cond, 'se.event_id=e.id'; - } + #push @$where_cond, 'se.event_id=e.id'; + } - # add recordings field and conditions - if ( $params->{recordings} eq '1' ) { - $query .= ', ar.path'; - $query .= ', ar.size'; - $query .= ', ar.created_by uploaded_by'; - $query .= ', ar.modified_at uploaded_at'; + # add recordings field and conditions + if ( $params->{recordings} eq '1' ) { + $query .= ', ar.path'; + $query .= ', ar.size'; + $query .= ', ar.created_by uploaded_by'; + $query .= ', ar.modified_at uploaded_at'; - #push @$where_cond, 'e.id=ar.event_id'; - } + #push @$where_cond, 'e.id=ar.event_id'; + } - $query .= "\n from"; + $query .= "\n from"; - # add tables - if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { + # add tables + if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { - # prepent series_events - $query .= "\n calcms_series_events se inner join calcms_events e on se.event_id=e.id"; - } else { - $query .= "\n calcms_events e"; - } + # prepent series_events + $query .= "\n calcms_series_events se inner join calcms_events e on se.event_id=e.id"; + } else { + $query .= "\n calcms_events e"; + } - # add recordings table - if ( $params->{recordings} eq '1' ) { - $query .= "\n left join calcms_audio_recordings ar on e.id=ar.event_id"; - } + # add recordings table + if ( $params->{recordings} eq '1' ) { + $query .= "\n left join calcms_audio_recordings ar on e.id=ar.event_id"; + } - if ( scalar @$where_cond > 0 ) { - $query .= "\nwhere " . join( ' and ', @$where_cond ); - } + if ( scalar @$where_cond > 0 ) { + $query .= "\nwhere " . join( ' and ', @$where_cond ); + } - $query .= "\n" . $order_cond if ( $order_cond ne '' ); - $query .= "\n" . $limit_cond if ( $limit_cond ne '' ); + $query .= "\n" . $order_cond if ( $order_cond ne '' ); + $query .= "\n" . $limit_cond if ( $limit_cond ne '' ); - #print STDERR Dumper($query).Dumper($bind_values)."\n"; + #print STDERR Dumper($query).Dumper($bind_values)."\n"; - return ( \$query, $bind_values ); + return ( \$query, $bind_values ); } sub render { - # my $response = $_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $results = $_[3]; - my $root_params = $_[4]; + # my $response = $_[0]; + my $config = $_[1]; + my $request = $_[2]; + my $results = $_[3]; + my $root_params = $_[4]; - my $params = $request->{params}->{checked}; - if ( ref($root_params) eq 'HASH' ) { - for my $param ( keys %$root_params ) { - $params->{$param} = $root_params->{$param}; - } - } - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + if ( ref($root_params) eq 'HASH' ) { + for my $param ( keys %$root_params ) { + $params->{$param} = $root_params->{$param}; + } + } + my $debug = $config->{system}->{debug}; - my %template_parameters = %$params; - my $template_parameters = \%template_parameters; - $template_parameters->{events} = $results; - $template_parameters->{debug} = $debug; - $template_parameters->{server_cache} = $config->{cache}->{server_cache} - if ( $config->{cache}->{server_cache} ); - $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} - if ( $config->{cache}->{use_client_cache} ); + my %template_parameters = %$params; + my $template_parameters = \%template_parameters; + $template_parameters->{events} = $results; + $template_parameters->{debug} = $debug; + $template_parameters->{server_cache} = $config->{cache}->{server_cache} + if ( $config->{cache}->{server_cache} ); + $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} + if ( $config->{cache}->{use_client_cache} ); - if ( scalar @$results > 0 ) { - my $result = $results->[0]; - $template_parameters->{event_id} = $result->{event_id}; - $template_parameters->{event_dtstart} = $result->{dtstart}; - } + if ( scalar @$results > 0 ) { + my $result = $results->[0]; + $template_parameters->{event_id} = $result->{event_id}; + $template_parameters->{event_dtstart} = $result->{dtstart}; + } - # $template_parameters->{print} =1 if ($params->{print} eq '1'); - $template_parameters->{base_url} = $config->{locations}->{base_url}; - $template_parameters->{base_domain} = $config->{locations}->{base_domain}; - $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; - $template_parameters->{modified_at} = time::time_to_datetime( time() ); - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $template_parameters->{modified_at_datetime_utc} = - time::datetime_to_utc_datetime( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); - } + # $template_parameters->{print} =1 if ($params->{print} eq '1'); + $template_parameters->{base_url} = $config->{locations}->{base_url}; + $template_parameters->{base_domain} = $config->{locations}->{base_domain}; + $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; + $template_parameters->{modified_at} = time::time_to_datetime( time() ); + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $template_parameters->{modified_at_datetime_utc} = + time::datetime_to_utc_datetime( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); + } - #$template_parameters->{tags} = $tags; + #$template_parameters->{tags} = $tags; - if ( @$results == 0 ) { - if ( ( $params->{search} ne '' ) - || ( $params->{category} ne '' ) - || ( $params->{series_name} ne '' ) ) - { - $template_parameters->{no_search_result} = '1'; - } else { - $template_parameters->{no_result} = '1'; - } - } else { - if ( ( !defined $params->{event_id} ) || ( $params->{event_id} eq '' ) ) { - $template_parameters->{event_count} = @$results . ''; - $template_parameters->{first_of_list} = $results->[0]->{event_id}; - } - my $start = $results->[0]->{start_datetime} || ''; - if ( $start =~ /(\d{4}\-\d{2})/ ) { - $template_parameters->{month} = $1; - } - } + if ( @$results == 0 ) { + if ( ( $params->{search} ne '' ) + || ( $params->{category} ne '' ) + || ( $params->{series_name} ne '' ) ) + { + $template_parameters->{no_search_result} = '1'; + } else { + $template_parameters->{no_result} = '1'; + } + } else { + if ( ( !defined $params->{event_id} ) || ( $params->{event_id} eq '' ) ) { + $template_parameters->{event_count} = @$results . ''; + $template_parameters->{first_of_list} = $results->[0]->{event_id}; + } + my $start = $results->[0]->{start_datetime} || ''; + if ( $start =~ /(\d{4}\-\d{2})/ ) { + $template_parameters->{month} = $1; + } + } - my $time_diff = time::utc_offset( $config->{date}->{time_zone} ); - $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; - $template_parameters->{time_zone} = $config->{date}->{time_zone}; - $template_parameters->{utc_offset} = $time_diff; + my $time_diff = time::utc_offset( $config->{date}->{time_zone} ); + $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; + $template_parameters->{time_zone} = $config->{date}->{time_zone}; + $template_parameters->{utc_offset} = $time_diff; - if ( $params->{template} =~ /\.atom\.xml/ ) { - $template_parameters->{modified_at} =~ s/ /T/gi; - $template_parameters->{modified_at} .= $time_diff; - } elsif ( $params->{template} =~ /\.rss\.xml/ ) { - $template_parameters->{modified_at} = - time::datetime_to_rfc822( $template_parameters->{modified_at} ); - } elsif ( $params->{template} =~ /\.txt/ ) { - $template_parameters->{modified_at_utc} = - time::datetime_to_utc( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); - } + if ( $params->{template} =~ /\.atom\.xml/ ) { + $template_parameters->{modified_at} =~ s/ /T/gi; + $template_parameters->{modified_at} .= $time_diff; + } elsif ( $params->{template} =~ /\.rss\.xml/ ) { + $template_parameters->{modified_at} = + time::datetime_to_rfc822( $template_parameters->{modified_at} ); + } elsif ( $params->{template} =~ /\.txt/ ) { + $template_parameters->{modified_at_utc} = + time::datetime_to_utc( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); + } - my $project = $params->{default_project}; - foreach my $key ( keys %$project ) { - $template_parameters->{ 'project_' . $key } = $project->{$key}; - } - $template_parameters->{ 'project_' . $project->{name} } = 1 - if ( $project->{name} ne '' ); + my $project = $params->{default_project}; + foreach my $key ( keys %$project ) { + $template_parameters->{ 'project_' . $key } = $project->{$key}; + } + $template_parameters->{ 'project_' . $project->{name} } = 1 + if ( $project->{name} ne '' ); - $template_parameters->{controllers} = $config->{controllers}; - $template_parameters->{hide_event_images} = 1 - if ( defined $config->{permissions}->{hide_event_images} ) && ( $config->{permissions}->{hide_event_images} == 1 ); + $template_parameters->{controllers} = $config->{controllers}; + $template_parameters->{hide_event_images} = 1 + if ( defined $config->{permissions}->{hide_event_images} ) && ( $config->{permissions}->{hide_event_images} == 1 ); - # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; - template::process( $_[0], $params->{template}, $template_parameters ); + # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; + template::process( $_[0], $params->{template}, $template_parameters ); - return $_[0]; + return $_[0]; } sub get_running_event_id { - my $dbh = shift; + my $dbh = shift; - my $query = qq{ + my $query = qq{ select id event_id, start, title from calcms_events where @@ -1256,106 +1254,106 @@ sub get_running_event_id { limit 1 }; - my $running_events = db::get( $dbh, $query ); - my @running_events = @$running_events; + my $running_events = db::get( $dbh, $query ); + my @running_events = @$running_events; - return $running_events->[0]->{event_id} if ( scalar @running_events > 0 ); - return 0; + return $running_events->[0]->{event_id} if ( scalar @running_events > 0 ); + return 0; } # add filters to query sub setDefaultEventConditions { - my $config = shift; - my $conditions = $_[0]; - my $bind_values = $_[1]; - my $options = $_[2]; - $options = {} unless defined $options; + my $config = shift; + my $conditions = $_[0]; + my $bind_values = $_[1]; + my $options = $_[2]; + $options = {} unless defined $options; - # exclude projects - if ( ( defined $options->{exclude_projects} ) - && ( $options->{exclude_projects} == 1 ) - && ( defined $config->{filter} ) - && ( defined $config->{filter}->{projects_to_exclude} ) ) - { - my @projects_to_exclude = - split( /,/, $config->{filter}->{projects_to_exclude} ); - push @$conditions, 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; - for my $project (@projects_to_exclude) { - push @$bind_values, $project; - } - } + # exclude projects + if ( ( defined $options->{exclude_projects} ) + && ( $options->{exclude_projects} == 1 ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{projects_to_exclude} ) ) + { + my @projects_to_exclude = + split( /,/, $config->{filter}->{projects_to_exclude} ); + push @$conditions, 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; + for my $project (@projects_to_exclude) { + push @$bind_values, $project; + } + } - # exclude locations - if ( ( defined $options->{exclude_locations} ) - && ( $options->{exclude_locations} == 1 ) - && ( defined $config->{filter} ) - && ( defined $config->{filter}->{locations_to_exclude} ) ) - { - my @locations_to_exclude = - split( /,/, $config->{filter}->{locations_to_exclude} ); - push @$conditions, 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; - for my $location (@locations_to_exclude) { - push @$bind_values, $location; - } - } + # exclude locations + if ( ( defined $options->{exclude_locations} ) + && ( $options->{exclude_locations} == 1 ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) + { + my @locations_to_exclude = + split( /,/, $config->{filter}->{locations_to_exclude} ); + push @$conditions, 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; + for my $location (@locations_to_exclude) { + push @$bind_values, $location; + } + } } # for local use only or add support for exclude_projects and exclude_locations sub getEventById { - my $dbh = shift; - my $config = shift; - my $event_id = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $event_id = shift; + my $options = shift; - $dbh = db::connect($config) unless defined $dbh; + $dbh = db::connect($config) unless defined $dbh; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "id=?"; - push @$bind_values, $event_id; + push @$conditions, "id=?"; + push @$bind_values, $event_id; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select * from calcms_events where $conditions }; - my $events = db::get( $dbh, $query, $bind_values ); - return $events; + my $events = db::get( $dbh, $query, $bind_values ); + return $events; } sub get_next_event_of_series { - my $dbh = shift; - my $config = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $options = shift; - my $eventId = $options->{event_id}; - return undef unless defined $eventId; + my $eventId = $options->{event_id}; + return undef unless defined $eventId; - $dbh = db::connect($config) unless defined $dbh; + $dbh = db::connect($config) unless defined $dbh; - my $events = getEventById( $dbh, $config, $eventId, $options ); - return undef unless scalar(@$events) == 1; - my $event = $events->[0]; + my $events = getEventById( $dbh, $config, $eventId, $options ); + return undef unless scalar(@$events) == 1; + my $event = $events->[0]; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "start>?"; - push @$bind_values, $event->{start}; + push @$conditions, "start>?"; + push @$bind_values, $event->{start}; - push @$conditions, "series_name=?"; - push @$bind_values, $event->{series_name}; + push @$conditions, "series_name=?"; + push @$bind_values, $event->{series_name}; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select id from calcms_events where $conditions @@ -1363,509 +1361,509 @@ sub get_next_event_of_series { limit 1 }; - $events = db::get( $dbh, $query, $bind_values ); - return undef unless @$events == 1; + $events = db::get( $dbh, $query, $bind_values ); + return undef unless @$events == 1; - return $events->[0]->{id}; + return $events->[0]->{id}; } sub get_previous_event_of_series { - my $dbh = shift; - my $config = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $options = shift; - my $eventId = $options->{event_id}; - return undef unless defined $eventId; + my $eventId = $options->{event_id}; + return undef unless defined $eventId; - $dbh = db::connect($config) unless defined $dbh; - my $events = getEventById( $dbh, $config, $eventId, $options ); - return undef unless scalar(@$events) == 1; - my $event = $events->[0]; + $dbh = db::connect($config) unless defined $dbh; + my $events = getEventById( $dbh, $config, $eventId, $options ); + return undef unless scalar(@$events) == 1; + my $event = $events->[0]; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "start{start}; + push @$conditions, "start{start}; - push @$conditions, "series_name=?"; - push @$bind_values, $event->{series_name}; + push @$conditions, "series_name=?"; + push @$bind_values, $event->{series_name}; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select id from calcms_events where $conditions order by start desc limit 1 }; - $events = db::get( $dbh, $query, $bind_values ); + $events = db::get( $dbh, $query, $bind_values ); - return undef unless scalar(@$events) == 1; - return $events->[0]->{id}; + return undef unless scalar(@$events) == 1; + return $events->[0]->{id}; } # used by calendar sub get_by_date_range { - my $dbh = shift; - my $config = shift; - my $start_date = shift; - my $end_date = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $start_date = shift; + my $end_date = shift; + my $options = shift; - my $day_starting_hour = $config->{date}->{day_starting_hour}; + my $day_starting_hour = $config->{date}->{day_starting_hour}; - my $start = time::datetime_cond( $start_date . 'T00:00:00' ); - $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + my $start = time::datetime_cond( $start_date . 'T00:00:00' ); + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); - my $end = time::datetime_cond( $end_date . 'T00:00:00' ); - $end = time::add_hours_to_datetime( $end, $day_starting_hour ); + my $end = time::datetime_cond( $end_date . 'T00:00:00' ); + $end = time::add_hours_to_datetime( $end, $day_starting_hour ); - my $conditions = []; - push @$conditions, 'start between ? and ?'; - my $bind_values = [ $start, $end ]; + my $conditions = []; + push @$conditions, 'start between ? and ?'; + my $bind_values = [ $start, $end ]; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + $conditions = join( ' and ', @$conditions ); - my $select = qq{distinct date(start) 'start_date'}; - $select = qq{distinct date(DATE_SUB(start, INTERVAL $day_starting_hour HOUR)) 'start_date'} if defined $day_starting_hour; + my $select = qq{distinct date(start) 'start_date'}; + $select = qq{distinct date(DATE_SUB(start, INTERVAL $day_starting_hour HOUR)) 'start_date'} if defined $day_starting_hour; - my $query = qq{ + my $query = qq{ select $select from calcms_events where $conditions }; - #print STDERR Dumper($query); + #print STDERR Dumper($query); - my $events = db::get( $dbh, $query, $bind_values ); + my $events = db::get( $dbh, $query, $bind_values ); - return $events; + return $events; } sub get_by_image { - my $dbh = shift; - my $config = shift; - my $filename = shift; + my $dbh = shift; + my $config = shift; + my $filename = shift; - #$filename=$dbh->quote('%'.$filename.'%'); + #$filename=$dbh->quote('%'.$filename.'%'); - #$filename='%'.$filename.'%'; - my $query = qq{ + #$filename='%'.$filename.'%'; + my $query = qq{ select * from calcms_events where content like ? order by start desc limit 1 }; - my $bind_values = [ '%' . $filename . '%' ]; + my $bind_values = [ '%' . $filename . '%' ]; - my $events = db::get( $dbh, $query, $bind_values ); + my $events = db::get( $dbh, $query, $bind_values ); - # print STDERR Dumper($events); - return undef if ( @$events == 0 ); - return $events->[0]; + # print STDERR Dumper($events); + return undef if ( @$events == 0 ); + return $events->[0]; } sub delete { - return; - my $request = shift; - my $config = shift; - my $event_id = shift; + return; + my $request = shift; + my $config = shift; + my $event_id = shift; - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = 'delete from calcms_events where id=?'; - db::put( $dbh, $query, [$event_id] ); + my $query = 'delete from calcms_events where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_categories where id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_categories where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_tags where id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_tags where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_series_events where event_id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_series_events where event_id=?'; + db::put( $dbh, $query, [$event_id] ); } #TODO: add location to cache map sub configure_cache { - my $config = shift; - my $debug = $config->{system}->{debug}; + my $config = shift; + my $debug = $config->{system}->{debug}; - my $date_pattern = $cache::date_pattern; - my $controllers = $config->{controllers}; + my $date_pattern = $cache::date_pattern; + my $controllers = $config->{controllers}; - cache::init(); - cache::add_map( '', 'index.html' ); + cache::init(); + cache::add_map( '', 'index.html' ); - my $name = ''; - my $extension = ''; - my $templates = $config->{templates}->{events}; + my $name = ''; + my $extension = ''; + my $templates = $config->{templates}->{events}; - for my $template (@$templates) { - if ( $template =~ /^(.+)\.([^\.]+)$/ ) { - $name = $1; - $extension = $2; - } - cache::add_map( 'template=' . $template, $controllers->{events} . '/' . $name . '.' . $extension ); - cache::add_map( 'template=' . $template . '&date=today', $controllers->{events} . '/' . $template . '_today.' . $extension ); - cache::add_map( 'template=' . $template . '&date=' . $date_pattern, - $controllers->{events} . '/' . $name . '_date_$1-$2-$3.' . $extension ); - cache::add_map( 'template=' . $template . '&time=now', $controllers->{events} . '/' . $template . '_now.html' ); - cache::add_map( 'template=' . $template . '&time=now&limit=(\d+)', - $controllers->{events} . '/' . $name . '_now_limit_$1.' . $extension ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern, - $controllers->{events} . '/' . $name . '_from_$1-$2-$3_till_$4_$5_$6.' . $extension - ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&weekday=(\d)', - $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_weekday_$7.' . $extension - ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&limit=(\d)', - $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_limit_$7.' . $extension - ); - cache::add_map( 'template=' . $template . '&weekday=(\d)', $controllers->{events} . '/' . $name . '_weekday_$1.' . $extension ); - cache::add_map( 'template=' . $template . '&event_id=(\d+)', $controllers->{event} . '/' . $name . '_page_$1.' . $extension ); - } + for my $template (@$templates) { + if ( $template =~ /^(.+)\.([^\.]+)$/ ) { + $name = $1; + $extension = $2; + } + cache::add_map( 'template=' . $template, $controllers->{events} . '/' . $name . '.' . $extension ); + cache::add_map( 'template=' . $template . '&date=today', $controllers->{events} . '/' . $template . '_today.' . $extension ); + cache::add_map( 'template=' . $template . '&date=' . $date_pattern, + $controllers->{events} . '/' . $name . '_date_$1-$2-$3.' . $extension ); + cache::add_map( 'template=' . $template . '&time=now', $controllers->{events} . '/' . $template . '_now.html' ); + cache::add_map( 'template=' . $template . '&time=now&limit=(\d+)', + $controllers->{events} . '/' . $name . '_now_limit_$1.' . $extension ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern, + $controllers->{events} . '/' . $name . '_from_$1-$2-$3_till_$4_$5_$6.' . $extension + ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&weekday=(\d)', + $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_weekday_$7.' . $extension + ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&limit=(\d)', + $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_limit_$7.' . $extension + ); + cache::add_map( 'template=' . $template . '&weekday=(\d)', $controllers->{events} . '/' . $name . '_weekday_$1.' . $extension ); + cache::add_map( 'template=' . $template . '&event_id=(\d+)', $controllers->{event} . '/' . $name . '_page_$1.' . $extension ); + } } sub get_duration { - my $config = shift; - my $event = shift; - my $timezone = $config->{date}->{time_zone}; - my $start = time::get_datetime( $event->{start}, $timezone ); - my $end = time::get_datetime( $event->{end}, $timezone ); + my $config = shift; + my $event = shift; + my $timezone = $config->{date}->{time_zone}; + my $start = time::get_datetime( $event->{start}, $timezone ); + my $end = time::get_datetime( $event->{end}, $timezone ); - #my $seconds = $end->subtract($start)->in_units("minutes"); - #return $seconds; - return undef unless defined $start; - return undef unless defined $end; - my $duration = $end->epoch() - $start->epoch(); + #my $seconds = $end->subtract($start)->in_units("minutes"); + #return $seconds; + return undef unless defined $start; + return undef unless defined $end; + my $duration = $end->epoch() - $start->epoch(); - #print STDERR "duration=$duration, end=".$end->datetime()." start=".$start->datetime()."\n"; - return $duration / 60; + #print STDERR "duration=$duration, end=".$end->datetime()." start=".$start->datetime()."\n"; + return $duration / 60; } sub check_params { - my $config = shift; - my $params = shift; + my $config = shift; + my $params = shift; - #define running at - my $running_at = $params->{running_at} || ''; - if ( ( defined $running_at ) && ( $running_at ne '' ) ) { - my $run_date = time::check_date($running_at); - my $run_time = time::check_time($running_at); - if ( ( $run_date ne '' ) && ( $run_time ne '' ) ) { - $params->{till_date} = $run_date; - $params->{till_time} = $run_time; - $params->{order} = 'asc'; - $params->{limit} = 1; - $params->{archive} = 'all'; - } - } + #define running at + my $running_at = $params->{running_at} || ''; + if ( ( defined $running_at ) && ( $running_at ne '' ) ) { + my $run_date = time::check_date($running_at); + my $run_time = time::check_time($running_at); + if ( ( $run_date ne '' ) && ( $run_time ne '' ) ) { + $params->{till_date} = $run_date; + $params->{till_time} = $run_time; + $params->{order} = 'asc'; + $params->{limit} = 1; + $params->{archive} = 'all'; + } + } - #set time - my $time = time::check_time( $params->{time} ); - my $from_time = time::check_time( $params->{from_time} ); - my $till_time = time::check_time( $params->{till_time} ); + #set time + my $time = time::check_time( $params->{time} ); + my $from_time = time::check_time( $params->{from_time} ); + my $till_time = time::check_time( $params->{till_time} ); - #set date - my $date = ''; - my $from_date = time::check_date( $params->{from_date} ); - my $till_date = time::check_date( $params->{till_date} ); - if ( ( $from_date eq '' ) && ( $till_date eq '' ) ) { - $date = time::check_date( $params->{date} ); - } + #set date + my $date = ''; + my $from_date = time::check_date( $params->{from_date} ); + my $till_date = time::check_date( $params->{till_date} ); + if ( ( $from_date eq '' ) && ( $till_date eq '' ) ) { + $date = time::check_date( $params->{date} ); + } - #set date interval (including) - my $date_range_include = 0; - $date_range_include = 1 - if ( defined $params->{date_range_include} ) - && ( $params->{date_range_include} eq '1' ); + #set date interval (including) + my $date_range_include = 0; + $date_range_include = 1 + if ( defined $params->{date_range_include} ) + && ( $params->{date_range_include} eq '1' ); - my $order = ''; - if ( defined $params->{order} ) { - $order = 'desc' if ( $params->{order} eq 'desc' ); - $order = 'asc' if ( $params->{order} eq 'asc' ); - } + my $order = ''; + if ( defined $params->{order} ) { + $order = 'desc' if ( $params->{order} eq 'desc' ); + $order = 'asc' if ( $params->{order} eq 'asc' ); + } - my $weekday = $params->{weekday} || ''; + my $weekday = $params->{weekday} || ''; - if ( ( defined $weekday ) && ( $weekday ne '' ) ) { - if ( $weekday =~ /\d/ ) { - $weekday = int($weekday); - log::error( $config, 'invalid weekday' ) - if ( $weekday < 1 || $weekday > 7 ); - } else { - log::error( $config, 'invalid weekday' ); - } - } + if ( ( defined $weekday ) && ( $weekday ne '' ) ) { + if ( $weekday =~ /\d/ ) { + $weekday = int($weekday); + log::error( $config, 'invalid weekday' ) + if ( $weekday < 1 || $weekday > 7 ); + } else { + log::error( $config, 'invalid weekday' ); + } + } - my $time_of_day = $params->{time_of_day} || ''; - my $found = 0; - if ( defined $time_of_day ) { - for my $key ( 'night', 'morning', 'noon', 'afternoon', 'evening' ) { - $found = 1 if ( $key eq $time_of_day ); - } - log::error( $config, 'invalid time_of_day' ) - if ( ( $time_of_day ne '' ) && ( $found == 0 ) ); - } + my $time_of_day = $params->{time_of_day} || ''; + my $found = 0; + if ( defined $time_of_day ) { + for my $key ( 'night', 'morning', 'noon', 'afternoon', 'evening' ) { + $found = 1 if ( $key eq $time_of_day ); + } + log::error( $config, 'invalid time_of_day' ) + if ( ( $time_of_day ne '' ) && ( $found == 0 ) ); + } - my $tag = $params->{tag} || ''; - if ( ( defined $tag ) && ( $tag ne '' ) ) { - log::error( $config, "invalid tag" ) if ( $tag =~ /\s/ ); - log::error( $config, "invalid tag" ) if ( $tag =~ /\;/ ); - $tag =~ s/\'//gi; - } + my $tag = $params->{tag} || ''; + if ( ( defined $tag ) && ( $tag ne '' ) ) { + log::error( $config, "invalid tag" ) if ( $tag =~ /\s/ ); + log::error( $config, "invalid tag" ) if ( $tag =~ /\;/ ); + $tag =~ s/\'//gi; + } - my $category = $params->{category} || ''; - if ( ( defined $category ) && ( $category ne '' ) ) { - log::error( $config, "invalid category" ) if ( $category =~ /\;/ ); - $category =~ s/^\s+//gi; - $category =~ s/\s+$//gi; - $category =~ s/\'//gi; - } + my $category = $params->{category} || ''; + if ( ( defined $category ) && ( $category ne '' ) ) { + log::error( $config, "invalid category" ) if ( $category =~ /\;/ ); + $category =~ s/^\s+//gi; + $category =~ s/\s+$//gi; + $category =~ s/\'//gi; + } - my $series_name = $params->{series_name} || ''; - if ( ( defined $series_name ) && ( $series_name ne '' ) ) { - log::error( $config, "invalid series_name" ) - if ( $series_name =~ /\;/ ); - $series_name =~ s/^\s+//gi; - $series_name =~ s/\s+$//gi; - $series_name =~ s/\'//gi; - } + my $series_name = $params->{series_name} || ''; + if ( ( defined $series_name ) && ( $series_name ne '' ) ) { + log::error( $config, "invalid series_name" ) + if ( $series_name =~ /\;/ ); + $series_name =~ s/^\s+//gi; + $series_name =~ s/\s+$//gi; + $series_name =~ s/\'//gi; + } - my $title = $params->{title} || ''; - if ( ( defined $title ) && ( $title ne '' ) ) { - log::error( $config, "invalid title" ) if ( $title =~ /\;/ ); - $title =~ s/^\s+//gi; - $title =~ s/\s+$//gi; - $title =~ s/\'//gi; - } + my $title = $params->{title} || ''; + if ( ( defined $title ) && ( $title ne '' ) ) { + log::error( $config, "invalid title" ) if ( $title =~ /\;/ ); + $title =~ s/^\s+//gi; + $title =~ s/\s+$//gi; + $title =~ s/\'//gi; + } - my $location = $params->{location} || ''; - if ( ( defined $location ) && ( $location ne '' ) ) { - log::error( $config, "invalid location" ) if ( $location =~ /\;/ ); - $location =~ s/^\s+//gi; - $location =~ s/\s+$//gi; - $location =~ s/\'//gi; - } + my $location = $params->{location} || ''; + if ( ( defined $location ) && ( $location ne '' ) ) { + log::error( $config, "invalid location" ) if ( $location =~ /\;/ ); + $location =~ s/^\s+//gi; + $location =~ s/\s+$//gi; + $location =~ s/\'//gi; + } - #if no location is set, use exclude location filter from default config - my $locations_to_exclude = ''; - if ( ( $location eq '' ) - && ( defined $config->{filter} ) - && ( defined $config->{filter}->{locations_to_exclude} ) ) - { - $locations_to_exclude = $config->{filter}->{locations_to_exclude} || ''; - $locations_to_exclude =~ s/\s+/ /g; - } + #if no location is set, use exclude location filter from default config + my $locations_to_exclude = ''; + if ( ( $location eq '' ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) + { + $locations_to_exclude = $config->{filter}->{locations_to_exclude} || ''; + $locations_to_exclude =~ s/\s+/ /g; + } - my $projects_to_exclude = ''; - if ( ( defined $config->{filter} ) - && ( defined $config->{filter}->{projects_to_exclude} ) ) - { - $projects_to_exclude = $config->{filter}->{projects_to_exclude} || ''; - $projects_to_exclude =~ s/\s+/ /g; - } + my $projects_to_exclude = ''; + if ( ( defined $config->{filter} ) + && ( defined $config->{filter}->{projects_to_exclude} ) ) + { + $projects_to_exclude = $config->{filter}->{projects_to_exclude} || ''; + $projects_to_exclude =~ s/\s+/ /g; + } - #enable exclude locations filter - my $exclude_locations = 0; - $exclude_locations = 1 if ( defined $params->{exclude_locations} ) && ( $params->{exclude_locations} eq '1' ); + #enable exclude locations filter + my $exclude_locations = 0; + $exclude_locations = 1 if ( defined $params->{exclude_locations} ) && ( $params->{exclude_locations} eq '1' ); - my $exclude_projects = 0; - $exclude_projects = 1 if ( defined $params->{exclude_projects} ) && ( $params->{exclude_projects} eq '1' ); + my $exclude_projects = 0; + $exclude_projects = 1 if ( defined $params->{exclude_projects} ) && ( $params->{exclude_projects} eq '1' ); - my $exclude_event_images = 0; - $exclude_event_images = 1 if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ); + my $exclude_event_images = 0; + $exclude_event_images = 1 if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ); - #show future events by default - my $archive = 'future'; - if ( defined $params->{archive} ) { - $archive = 'all' if ( $params->{archive} eq 'all' ); - $archive = 'past' if ( $params->{archive} eq 'gone' ); - $archive = 'future' if ( $params->{archive} eq 'coming' ); - } + #show future events by default + my $archive = 'future'; + if ( defined $params->{archive} ) { + $archive = 'all' if ( $params->{archive} eq 'all' ); + $archive = 'past' if ( $params->{archive} eq 'gone' ); + $archive = 'future' if ( $params->{archive} eq 'coming' ); + } - my $disable_event_sync = ''; - if ( ( defined $params->{disable_event_sync} ) - && ( $params->{disable_event_sync} =~ /([01])/ ) ) - { - $disable_event_sync = $1; - } + my $disable_event_sync = ''; + if ( ( defined $params->{disable_event_sync} ) + && ( $params->{disable_event_sync} =~ /([01])/ ) ) + { + $disable_event_sync = $1; + } - #show all on defined timespans - if ( ( $from_date ne '' ) && ( $till_date ne '' ) ) { - $archive = 'all'; - } + #show all on defined timespans + if ( ( $from_date ne '' ) && ( $till_date ne '' ) ) { + $archive = 'all'; + } - my $event_id = $params->{event_id} || ''; - if ( ( defined $event_id ) && ( $event_id ne '' ) ) { - if ( $event_id =~ /(\d+)/ ) { - $event_id = $1; - } else { - log::error( $config, "invalid event_id" ); - } - } + my $event_id = $params->{event_id} || ''; + if ( ( defined $event_id ) && ( $event_id ne '' ) ) { + if ( $event_id =~ /(\d+)/ ) { + $event_id = $1; + } else { + log::error( $config, "invalid event_id" ); + } + } - my $get = 'all'; - $get = 'no_content' - if ( ( defined $params->{get} ) && ( $params->{get} eq 'no_content' ) ); + my $get = 'all'; + $get = 'no_content' + if ( ( defined $params->{get} ) && ( $params->{get} eq 'no_content' ) ); - my $search = $params->{search} || ''; - if ( ( defined $search ) && ( $search ne '' ) ) { - $search = substr( $search, 0, 100 ); - $search =~ s/^\s+//gi; - $search =~ s/\s+$//gi; - } + my $search = $params->{search} || ''; + if ( ( defined $search ) && ( $search ne '' ) ) { + $search = substr( $search, 0, 100 ); + $search =~ s/^\s+//gi; + $search =~ s/\s+$//gi; + } - #print STDERR $params->{template}."\n"; - my $template = '.html'; - if ( ( defined $params->{template} ) && ( $params->{template} eq 'no' ) ) { - $template = 'no'; - } else { - $template = template::check( $params->{template}, 'event_list.html' ); - } + #print STDERR $params->{template}."\n"; + my $template = '.html'; + if ( ( defined $params->{template} ) && ( $params->{template} eq 'no' ) ) { + $template = 'no'; + } else { + $template = template::check( $params->{template}, 'event_list.html' ); + } - my $limit_config = $config->{permissions}->{result_limit} || 100; - my $limit = $params->{limit} || $limit_config; - log::error( $config, 'invalid limit!' ) if ( $limit =~ /\D/ ); - $limit = $limit_config if ( $limit_config < $limit ); + my $limit_config = $config->{permissions}->{result_limit} || 100; + my $limit = $params->{limit} || $limit_config; + log::error( $config, 'invalid limit!' ) if ( $limit =~ /\D/ ); + $limit = $limit_config if ( $limit_config < $limit ); - #read project from configuration file - my $project_name = $config->{project} || ''; - log::error( $config, 'no default project configured' ) - if ( $project_name eq '' ); + #read project from configuration file + my $project_name = $config->{project} || ''; + log::error( $config, 'no default project configured' ) + if ( $project_name eq '' ); - #get default project - my $default_project = undef; - my $projects = project::get( $config, { name => $project_name } ); - log::error( $config, "no configuration found for project '$project_name'" ) - unless ( scalar(@$projects) == 1 ); - $default_project = $projects->[0]; + #get default project + my $default_project = undef; + my $projects = project::get( $config, { name => $project_name } ); + log::error( $config, "no configuration found for project '$project_name'" ) + unless ( scalar(@$projects) == 1 ); + $default_project = $projects->[0]; - # get project from parameter (by name) - my $project = ''; - if ( ( defined $params->{project} ) - && ( $params->{project} =~ /\w+/ ) - && ( $params->{project} ne 'all' ) ) - { - my $project_name = $params->{project}; - my $projects = project::get( $config, { name => $project_name } ); - log::error( $config, 'invalid project ' . $project_name ) - unless scalar(@$projects) == 1; - $project = $projects->[0]; - } + # get project from parameter (by name) + my $project = ''; + if ( ( defined $params->{project} ) + && ( $params->{project} =~ /\w+/ ) + && ( $params->{project} ne 'all' ) ) + { + my $project_name = $params->{project}; + my $projects = project::get( $config, { name => $project_name } ); + log::error( $config, 'invalid project ' . $project_name ) + unless scalar(@$projects) == 1; + $project = $projects->[0]; + } - $project_name = $params->{project_name} || ''; - my $studio_name = $params->{studio_name} || ''; + $project_name = $params->{project_name} || ''; + my $studio_name = $params->{studio_name} || ''; - my $project_id = $params->{project_id} || ''; - my $studio_id = $params->{studio_id} || ''; + my $project_id = $params->{project_id} || ''; + my $studio_id = $params->{studio_id} || ''; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } - my $json_callback = $params->{json_callback} || ''; - if ( $json_callback ne '' ) { - $json_callback =~ s/[^a-zA-Z0-9\_]//g; - } + my $json_callback = $params->{json_callback} || ''; + if ( $json_callback ne '' ) { + $json_callback =~ s/[^a-zA-Z0-9\_]//g; + } - # use relative links - my $extern = 0; - $extern = 1 if ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); + # use relative links + my $extern = 0; + $extern = 1 if ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); - my $recordings = 0; - $recordings = 1 if ( defined $params->{recordings} ) && ( $params->{recordings} eq '1' ); + my $recordings = 0; + $recordings = 1 if ( defined $params->{recordings} ) && ( $params->{recordings} eq '1' ); - my $checked = { - date => $date, - time => $time, - time_of_day => $time_of_day, - from_date => $from_date, - till_date => $till_date, - date_range_include => $date_range_include, - from_time => $from_time, - till_time => $till_time, - weekday => $weekday, - limit => $limit, - template => $template, - location => $location, - category => $category, - series_name => $series_name, - tag => $tag, - title => $title, - event_id => $event_id, - search => $search, - debug => $debug, - archive => $archive, - order => $order, - project => $project, - default_project => $default_project, - project_name => $project_name, - project_id => $project_id, - studio_name => $studio_name, - studio_id => $studio_id, - json_callback => $json_callback, - get => $get, - locations_to_exclude => $locations_to_exclude, - projects_to_exclude => $projects_to_exclude, - exclude_locations => $exclude_locations, - exclude_projects => $exclude_projects, - exclude_event_images => $exclude_event_images, - disable_event_sync => $disable_event_sync, - extern => $extern, - recordings => $recordings, - }; + my $checked = { + date => $date, + time => $time, + time_of_day => $time_of_day, + from_date => $from_date, + till_date => $till_date, + date_range_include => $date_range_include, + from_time => $from_time, + till_time => $till_time, + weekday => $weekday, + limit => $limit, + template => $template, + location => $location, + category => $category, + series_name => $series_name, + tag => $tag, + title => $title, + event_id => $event_id, + search => $search, + debug => $debug, + archive => $archive, + order => $order, + project => $project, + default_project => $default_project, + project_name => $project_name, + project_id => $project_id, + studio_name => $studio_name, + studio_id => $studio_id, + json_callback => $json_callback, + get => $get, + locations_to_exclude => $locations_to_exclude, + projects_to_exclude => $projects_to_exclude, + exclude_locations => $exclude_locations, + exclude_projects => $exclude_projects, + exclude_event_images => $exclude_event_images, + disable_event_sync => $disable_event_sync, + extern => $extern, + recordings => $recordings, + }; - #print STDERR Dumper($checked); - return $checked; + #print STDERR Dumper($checked); + return $checked; } sub get_keys { - my $event = shift; + my $event = shift; - my $program = $event->{program} || ''; - my $series_name = $event->{series_name} || ''; - my $title = $event->{title} || ''; - my $user_title = $event->{user_title} || ''; - my $episode = $event->{episode} || ''; - my $recurrence_count_alpha = $event->{recurrence_count_alpha} || ''; + my $program = $event->{program} || ''; + my $series_name = $event->{series_name} || ''; + my $title = $event->{title} || ''; + my $user_title = $event->{user_title} || ''; + my $episode = $event->{episode} || ''; + my $recurrence_count_alpha = $event->{recurrence_count_alpha} || ''; - my $skey = ''; - $skey .= $series_name if $series_name ne ''; - $skey .= ' - ' - if ( $series_name ne '' ) - && ( ( $title ne '' ) || ( $user_title ne '' ) ); + my $skey = ''; + $skey .= $series_name if $series_name ne ''; + $skey .= ' - ' + if ( $series_name ne '' ) + && ( ( $title ne '' ) || ( $user_title ne '' ) ); - my $tkey = ''; - $tkey = $title if $title ne ''; - $tkey .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); - $tkey .= $user_title if $user_title ne ''; - $tkey .= ' #' . $episode if $episode ne ''; - $tkey .= $recurrence_count_alpha if $recurrence_count_alpha ne ''; + my $tkey = ''; + $tkey = $title if $title ne ''; + $tkey .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); + $tkey .= $user_title if $user_title ne ''; + $tkey .= ' #' . $episode if $episode ne ''; + $tkey .= $recurrence_count_alpha if $recurrence_count_alpha ne ''; - my $pkey = ''; - $pkey = ' (' . $program . ')' if $program ne ''; + my $pkey = ''; + $pkey = ' (' . $program . ')' if $program ne ''; - return { - key => $skey . $tkey . $pkey, - full_title => $skey . $tkey . $pkey, - full_title_no_series => $tkey . $pkey, - full_title_no_program => $skey . $tkey, - full_title_no_program_no_series => $tkey - }; + return { + key => $skey . $tkey . $pkey, + full_title => $skey . $tkey . $pkey, + full_title_no_series => $tkey . $pkey, + full_title_no_program => $skey . $tkey, + full_title_no_program_no_series => $tkey + }; } #do not delete last line! diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 5d81a33..664442d 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -1,536 +1,537 @@ use warnings "all"; use strict; -use config; -use template; +use config(); +use template(); -package images; +package images; use warnings "all"; use strict; use Data::Dumper; require Exporter; our @ISA = qw(Exporter); + #our @EXPORT = qw(all); our @EXPORT_OK = qw(get insert update insert_or_update delete delete_files); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); #column 'created_at' will be set at insert #column 'modified_at' will be set by default (do not update) -my $sql_columns =['filename', 'name', 'description', 'created_by', 'modified_by', 'modified_at', 'studio_id', 'project_id', 'public', 'licence']; +my $sql_columns = + [ 'filename', 'name', 'description', 'created_by', 'modified_by', 'modified_at', 'studio_id', 'project_id', 'public', 'licence' ]; -sub get{ - my $config=shift; - my $options=shift; +sub get { + my $config = shift; + my $options = shift; - my @cond=(); - my $bind_values=[]; - if ((defined $options->{project_id}) && ($options->{project_id}ne'')){ - push @cond, 'project_id = ?'; + my @cond = (); + my $bind_values = []; + if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { + push @cond, 'project_id = ?'; push @$bind_values, $options->{project_id}; } - if ((defined $options->{studio_id}) && ($options->{studio_id}ne'')){ - push @cond, 'studio_id = ?'; + if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { + push @cond, 'studio_id = ?'; push @$bind_values, $options->{studio_id}; } - if ((defined $options->{filename}) && ($options->{filename}ne'')){ - push @cond, 'filename = ?'; - push @$bind_values,$options->{filename}; + if ( ( defined $options->{filename} ) && ( $options->{filename} ne '' ) ) { + push @cond, 'filename = ?'; + push @$bind_values, $options->{filename}; } - if ((defined $options->{from}) && ($options->{from}ne'')){ - push @cond, 'date(created_at) >= ?'; - push @$bind_values,$options->{from}; + if ( ( defined $options->{from} ) && ( $options->{from} ne '' ) ) { + push @cond, 'date(created_at) >= ?'; + push @$bind_values, $options->{from}; } - if ((defined $options->{till}) && ($options->{till}ne'')){ - push @cond, 'date(created_at) <= ?'; - push @$bind_values,$options->{till}; + if ( ( defined $options->{till} ) && ( $options->{till} ne '' ) ) { + push @cond, 'date(created_at) <= ?'; + push @$bind_values, $options->{till}; } - if ((defined $options->{created_by}) && ($options->{created_by}ne'')){ - push @cond, 'created_by = ?'; - push @$bind_values,$options->{created_by}; + if ( ( defined $options->{created_by} ) && ( $options->{created_by} ne '' ) ) { + push @cond, 'created_by = ?'; + push @$bind_values, $options->{created_by}; } - if ((defined $options->{modified_by}) && ($options->{modified_by}ne'')){ - push @cond, 'modified_by = ?'; - push @$bind_values,$options->{modified_by}; + if ( ( defined $options->{modified_by} ) && ( $options->{modified_by} ne '' ) ) { + push @cond, 'modified_by = ?'; + push @$bind_values, $options->{modified_by}; } - if ((defined $options->{licence}) && ($options->{licence}ne'')){ - push @cond, 'licence = ?'; - push @$bind_values,$options->{licence}; + if ( ( defined $options->{licence} ) && ( $options->{licence} ne '' ) ) { + push @cond, 'licence = ?'; + push @$bind_values, $options->{licence}; } - if ((defined $options->{public}) && ($options->{public}ne'')){ - push @cond, 'public = ?'; - push @$bind_values,$options->{public}; - } - - if ((defined $options->{search}) && ($options->{search}ne'')){ - push @cond, '(filename like ?' - .' or name like ?' - .' or description like ?' - .' or created_by like ?' - .')'; - my $search='%'.$options->{search}.'%'; - push @$bind_values,$search; - push @$bind_values,$search; - push @$bind_values,$search; - push @$bind_values,$search; -# push @$bind_values,$search; + if ( ( defined $options->{public} ) && ( $options->{public} ne '' ) ) { + push @cond, 'public = ?'; + push @$bind_values, $options->{public}; } - my $where=''; - if (@cond>0){ - $where = 'where '.join (' and ', @cond); + if ( ( defined $options->{search} ) && ( $options->{search} ne '' ) ) { + push @cond, '(filename like ?' . ' or name like ?' . ' or description like ?' . ' or created_by like ?' . ')'; + my $search = '%' . $options->{search} . '%'; + push @$bind_values, $search; + push @$bind_values, $search; + push @$bind_values, $search; + push @$bind_values, $search; + + # push @$bind_values,$search; } - my $limit=''; - if ( (defined $options->{limit}) && ($options->{limit}=~/(\d+)/) ){ - $limit=' limit '.$1; + my $where = ''; + if ( @cond > 0 ) { + $where = 'where ' . join( ' and ', @cond ); } - my $query=qq{ + my $limit = ''; + if ( ( defined $options->{limit} ) && ( $options->{limit} =~ /(\d+)/ ) ) { + $limit = ' limit ' . $1; + } + + my $query = qq{ select * from calcms_images $where order by created_at desc $limit }; + #print STDERR Dumper($query).Dumper($bind_values); - my $dbh = db::connect($config); - my $results = db::get($dbh, $query, $bind_values); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); - #print STDERR @$results."\n"; + #print STDERR @$results."\n"; return $results; } -sub insert_or_update{ - my $dbh=shift; - my $image=shift; +sub insert_or_update { + my $dbh = shift; + my $image = shift; - $image->{name} = 'new' if $image->{name} eq '' ; - my $entry = get_by_filename($dbh, $image->{filename}); - if (defined $entry){ - update($dbh, $image); - }else{ - insert($dbh, $image); + $image->{name} = 'new' if $image->{name} eq ''; + my $entry = get_by_filename( $dbh, $image->{filename} ); + if ( defined $entry ) { + update( $dbh, $image ); + } else { + insert( $dbh, $image ); } } -sub insert{ - my $dbh=shift; - my $image=shift; +sub insert { + my $dbh = shift; + my $image = shift; - my @sql_columns=@$sql_columns; + my @sql_columns = @$sql_columns; - #set created at timestamp - push @sql_columns,'created_at'; - $image->{created_at}=time::time_to_datetime(); + #set created at timestamp + push @sql_columns, 'created_at'; + $image->{created_at} = time::time_to_datetime(); - unless (defined $image->{created_by}){ - print STDERR "missing created_by at image::insert\n"; - return undef; - } - unless (defined $image->{studio_id}){ - print STDERR "missing studio_id at image::insert\n"; - return undef; - } - unless (defined $image->{project_id}){ - print STDERR "missing project_id at image::insert\n"; - return undef; - } - - for my $attr ('public'){ - $image->{$attr} = 0 unless (defined $image->{$attr}) && ($image->{$attr} eq '1'); - } - - my $query=q{ + unless ( defined $image->{created_by} ) { + print STDERR "missing created_by at image::insert\n"; + return undef; + } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at image::insert\n"; + return undef; + } + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at image::insert\n"; + return undef; + } + + for my $attr ('public') { + $image->{$attr} = 0 unless ( defined $image->{$attr} ) && ( $image->{$attr} eq '1' ); + } + + my $query = q{ insert into calcms_images( - }.join(',',@sql_columns).qq{ + } . join( ',', @sql_columns ) . qq{ ) - values( }.join(', ', (map {'?'} @sql_columns)).q{ ) + values( } . join( ', ', ( map { '?' } @sql_columns ) ) . q{ ) }; - my @bind_values=map { $image->{$_} } @sql_columns; + my @bind_values = map { $image->{$_} } @sql_columns; #print STDERR Dumper($query).Dumper(\@bind_values); - my $result = db::put($dbh, $query, \@bind_values); - - images::setSeriesLabels($dbh, $image); - images::setEventLabels($dbh, $image); + my $result = db::put( $dbh, $query, \@bind_values ); - return $result; + images::setSeriesLabels( $dbh, $image ); + images::setEventLabels( $dbh, $image ); + + return $result; } +sub update { + my $dbh = shift; + my $image = shift; -sub update{ - my $dbh=shift; - my $image=shift; + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at images::update\n"; + return undef; + } + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at image::update\n"; + return undef; + } + unless ( defined $image->{filename} ) { + print STDERR "missing filename at image::update\n"; + return undef; + } - unless (defined $image->{studio_id}){ - print STDERR "missing studio_id at images::update\n"; - return undef; - } - unless (defined $image->{project_id}){ - print STDERR "missing project_id at image::update\n"; - return undef; - } - unless (defined $image->{filename}){ - print STDERR "missing filename at image::update\n"; - return undef; - } + $image->{modified_at} = time::time_to_datetime(); - $image->{modified_at}=time::time_to_datetime(); + for my $attr ('public') { + $image->{$attr} = 0 unless ( defined $image->{$attr} ) && ( $image->{$attr} eq '1' ); + } - for my $attr ('public'){ - $image->{$attr} = 0 unless (defined $image->{$attr}) && ($image->{$attr} eq '1'); - } - - my @set=(); - my $bind_values=[]; - for my $column (@$sql_columns){ - if (defined $image->{$column}){ - push @set, $column.' = ?'; - push @$bind_values,$image->{$column}; + my @set = (); + my $bind_values = []; + for my $column (@$sql_columns) { + if ( defined $image->{$column} ) { + push @set, $column . ' = ?'; + push @$bind_values, $image->{$column}; } } - - #conditions - my $conditions=['filename=?']; - push @$bind_values,$image->{filename}; - push @$conditions, 'project_id=?'; - push @$bind_values, $image->{project_id}||0; + #conditions + my $conditions = ['filename=?']; + push @$bind_values, $image->{filename}; - push @$conditions, 'studio_id=?'; - push @$bind_values, $image->{studio_id}||0; + push @$conditions, 'project_id=?'; + push @$bind_values, $image->{project_id} || 0; - return if (@set==0); - - my $set=join (",",@set); - $conditions=join(' and ', @$conditions); - my $query=qq{ + push @$conditions, 'studio_id=?'; + push @$bind_values, $image->{studio_id} || 0; + + return if ( @set == 0 ); + + my $set = join( ",", @set ); + $conditions = join( ' and ', @$conditions ); + my $query = qq{ update calcms_images set $set where $conditions }; - print STDERR Dumper($query).Dumper($bind_values); - my $result= db::put($dbh,$query,$bind_values); - - images::setSeriesLabels($dbh, $image); - images::setEventLabels($dbh, $image); - - return $result; + print STDERR Dumper($query) . Dumper($bind_values); + my $result = db::put( $dbh, $query, $bind_values ); + + images::setSeriesLabels( $dbh, $image ); + images::setEventLabels( $dbh, $image ); + + return $result; } +sub delete { + my $dbh = shift; + my $image = shift; -sub delete{ - my $dbh=shift; - my $image=shift; + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at images::delete\n"; + return undef; + } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at images::delete\n"; + return undef; + } + unless ( defined $image->{filename} ) { + print STDERR "missing filename at images::delete\n"; + return undef; + } - unless (defined $image->{project_id}){ - print STDERR "missing project_id at images::delete\n"; - return undef; - } - unless (defined $image->{studio_id}){ - print STDERR "missing studio_id at images::delete\n"; - return undef; - } - unless (defined $image->{filename}){ - print STDERR "missing filename at images::delete\n"; - return undef; - } - - my $project_id = $image->{project_id}; - my $studio_id = $image->{studio_id}; - my $filename = $image->{filename}; + my $project_id = $image->{project_id}; + my $studio_id = $image->{studio_id}; + my $filename = $image->{filename}; - my $conditions = ['filename=?']; + my $conditions = ['filename=?']; my $bind_values = [$filename]; - - push @$conditions, 'project_id=?'; - push @$bind_values, $studio_id; - push @$conditions, 'studio_id=?'; - push @$bind_values, $project_id; + push @$conditions, 'project_id=?'; + push @$bind_values, $studio_id; - $conditions=join(' and ', @$conditions); - my $query=qq{ + push @$conditions, 'studio_id=?'; + push @$bind_values, $project_id; + + $conditions = join( ' and ', @$conditions ); + my $query = qq{ delete from calcms_images where $conditions }; + #print STDERR Dumper($query).Dumper($bind_values); - return db::put($dbh, $query, $bind_values); + return db::put( $dbh, $query, $bind_values ); } # deactivated -sub delete_files{ - my $config = $_[0]; - my $local_media_dir = $_[1]; - my $filename = $_[2]; - my $action_result = $_[3]; - my $errors = $_[4]; +sub delete_files { + my $config = $_[0]; + my $local_media_dir = $_[1]; + my $filename = $_[2]; + my $action_result = $_[3]; + my $errors = $_[4]; - return undef; - - print log::error($config, 'missing permissions on writing into local media dir')unless(-w $local_media_dir); + return undef; - if ($filename=~/[^a-zA-Z0-9\.\_\-]/){ - log::error($config, "invalid filename: '$filename'"); + print log::error( $config, 'missing permissions on writing into local media dir' ) unless ( -w $local_media_dir ); + + if ( $filename =~ /[^a-zA-Z0-9\.\_\-]/ ) { + log::error( $config, "invalid filename: '$filename'" ); return; } - if ($filename=~/\.\./ || $filename=~/^\// || $filename=~/\//){ - log::error($config, "invalid filename: '$filename'"); + if ( $filename =~ /\.\./ || $filename =~ /^\// || $filename =~ /\// ) { + log::error( $config, "invalid filename: '$filename'" ); return; } - log::error($config, 'missing permissions on writing into local_media_dir/images/')unless(-w $local_media_dir.'images/'); - log::error($config, 'missing permissions on writing into local_media_dir/thumbs/')unless(-w $local_media_dir.'thumbs/'); - log::error($config, 'missing permissions on writing into local_media_dir/icons/') unless(-w $local_media_dir.'icons/'); + log::error( $config, 'missing permissions on writing into local_media_dir/images/' ) unless ( -w $local_media_dir . 'images/' ); + log::error( $config, 'missing permissions on writing into local_media_dir/thumbs/' ) unless ( -w $local_media_dir . 'thumbs/' ); + log::error( $config, 'missing permissions on writing into local_media_dir/icons/' ) unless ( -w $local_media_dir . 'icons/' ); + + my $path = $local_media_dir . '/upload/' . $filename; - my $path=$local_media_dir.'/upload/'.$filename; #delete_file($path,"Upload $filename",$action_result,$errors); - $path=$local_media_dir.'/images/'.$filename; - delete_file($path,"Image $filename",$action_result,$errors); + $path = $local_media_dir . '/images/' . $filename; + delete_file( $path, "Image $filename", $action_result, $errors ); - $path=$local_media_dir.'/thumbs/'.$filename; - delete_file($path,"Thumb $filename",$action_result,$errors); + $path = $local_media_dir . '/thumbs/' . $filename; + delete_file( $path, "Thumb $filename", $action_result, $errors ); - $path=$local_media_dir.'/icons/'.$filename; - delete_file($path,"Icon $filename",$action_result,$errors); + $path = $local_media_dir . '/icons/' . $filename; + delete_file( $path, "Icon $filename", $action_result, $errors ); } # deactivated -sub delete_file{ - my $path = $_[0]; - my $type = $_[1]; +sub delete_file { + my $path = $_[0]; + my $type = $_[1]; my $action_result = $_[2]; - my $errors = $_[3]; + my $errors = $_[3]; - return undef; + return undef; - unless (-e $path){ - $errors.= qq{Error: File does not exist!
      }; + unless ( -e $path ) { + $errors .= qq{Error: File does not exist!
      }; return; } - unless (-w $path){ - $errors.= qq{Error: Cannot write $type
      }; + unless ( -w $path ) { + $errors .= qq{Error: Cannot write $type
      }; return; } unlink($path); - if ($?==0){ - $action_result.= qq{$type deleted
      }; - }else{ - $errors.= qq{Error on deleting $type
      }; + if ( $? == 0 ) { + $action_result .= qq{$type deleted
      }; + } else { + $errors .= qq{Error on deleting $type
      }; } } -sub getPath{ - my $config=shift; - my $options=shift; +sub getPath { + my $config = shift; + my $options = shift; - my $dir = $config->{locations}->{local_media_dir}; - return undef unless defined $dir; - return undef unless -e $dir; - - my $filename=$options->{filename}; - return undef unless defined $filename; - $filename=~s/^.*\///g; + my $dir = $config->{locations}->{local_media_dir}; + return undef unless defined $dir; + return undef unless -e $dir; - my $type='thumbs'; - $type=$options->{type} if (defined $options->{type}) && ($options->{type}=~/^(images|thumbs|icons)$/); + my $filename = $options->{filename}; + return undef unless defined $filename; + $filename =~ s/^.*\///g; - my $path = $dir.'/'.$type.'/'.$filename; - $path=~s/\/+/\//g; - return $path; + my $type = 'thumbs'; + $type = $options->{type} if ( defined $options->{type} ) && ( $options->{type} =~ /^(images|thumbs|icons)$/ ); + + my $path = $dir . '/' . $type . '/' . $filename; + $path =~ s/\/+/\//g; + return $path; } -sub getInternalPath{ - my $config=shift; - my $options=shift; +sub getInternalPath { + my $config = shift; + my $options = shift; - my $dir=$config->{locations}->{local_media_dir}; - return undef unless defined $dir; - return undef unless -e $dir; - - my $filename=$options->{filename}; - return undef unless defined $filename; - $filename=~s/^.*\///g; + my $dir = $config->{locations}->{local_media_dir}; + return undef unless defined $dir; + return undef unless -e $dir; - my $type='thumbs'; - $type=$options->{type} if (defined $options->{type}) && ($options->{type}=~/^(images|thumbs|icons)$/); + my $filename = $options->{filename}; + return undef unless defined $filename; + $filename =~ s/^.*\///g; - my $path = $dir.'/internal/'.$type.'/'.$filename; - $path=~s/\/+/\//g; - return $path; + my $type = 'thumbs'; + $type = $options->{type} if ( defined $options->{type} ) && ( $options->{type} =~ /^(images|thumbs|icons)$/ ); + + my $path = $dir . '/internal/' . $type . '/' . $filename; + $path =~ s/\/+/\//g; + return $path; } -sub normalizeName{ - my $name = shift; - return undef unless defined $name; - $name =~s/.*\///g; - return $name; +sub normalizeName { + my $name = shift; + return undef unless defined $name; + $name =~ s/.*\///g; + return $name; } -sub readFile{ - my $path=shift; - my $content=''; +sub readFile { + my $path = shift; + my $content = ''; - print STDERR "read '$path'\n"; - return { error=> "source '$path' does not exist"} unless -e $path; - return { error=> "cannot read source '$path'"} unless -r $path; + print STDERR "read '$path'\n"; + return { error => "source '$path' does not exist" } unless -e $path; + return { error => "cannot read source '$path'" } unless -r $path; open my $file, '< :raw', $path or return { error => 'could not open image file. ' . $! . " $path" }; binmode $file; - $content = join("",<$file>); + $content = join( "", <$file> ); close $file; - return {content => $content}; + return { content => $content }; } -sub writeFile{ - my $path=shift; - my $content=shift; - - print STDERR "save '$path'\n"; +sub writeFile { + my $path = shift; + my $content = shift; + + print STDERR "save '$path'\n"; open my $fh, '> :raw', $path or return { error => 'could not save image. ' . $! . " $path" }; binmode $fh; print $fh $content; close $fh; - return {}; + return {}; } -sub deleteFile{ - my $path=shift; - return { error=> "source '$path' does not exist"} unless -e $path; - #unlink $path; - return {}; - +sub deleteFile { + my $path = shift; + return { error => "source '$path' does not exist" } unless -e $path; + + #unlink $path; + return {}; + } -sub copyFile{ - my $source = shift; - my $target = shift; - my $errors = shift; - - my $read=images::readFile($source); - return $read if defined $read->{error}; +sub copyFile { + my $source = shift; + my $target = shift; + my $errors = shift; - my $write=images::writeFile($target, $read->{content}); - return $write; + my $read = images::readFile($source); + return $read if defined $read->{error}; + + my $write = images::writeFile( $target, $read->{content} ); + return $write; } -sub publish{ - my $config=shift; - my $filename=shift; +sub publish { + my $config = shift; + my $filename = shift; - print STDERR "publish\n"; - return undef unless defined $config; - return undef unless defined $filename; - my $errors=[]; - for my $type ('images','thumbs','icons'){ - my $source = getInternalPath($config, {filename=>$filename, type=>$type}); - my $target = getPath($config, {filename=>$filename, type=>$type}); - my $result = copyFile($source, $target, $errors); - if (defined $result->{error}){ - push @$errors, $result->{error} ; - print STDERR "error on copy '$source' to '$target': $result->{error}\n"; - } - } - return $errors; + print STDERR "publish\n"; + return undef unless defined $config; + return undef unless defined $filename; + my $errors = []; + for my $type ( 'images', 'thumbs', 'icons' ) { + my $source = getInternalPath( $config, { filename => $filename, type => $type } ); + my $target = getPath( $config, { filename => $filename, type => $type } ); + my $result = copyFile( $source, $target, $errors ); + if ( defined $result->{error} ) { + push @$errors, $result->{error}; + print STDERR "error on copy '$source' to '$target': $result->{error}\n"; + } + } + return $errors; } -sub depublish{ - my $config=shift; - my $filename=shift; +sub depublish { + my $config = shift; + my $filename = shift; - print STDERR "depublish\n"; - return undef unless defined $config; - return undef unless defined $filename; - my $errors=[]; - for my $type ('images','thumbs','icons'){ - my $path = getPath($config, {filename=>$filename, type=>$type}); - next unless defined $path; - print STDERR "remove '$path'\n"; - unlink $path; - #push @$errors, $result->{error} if defined $result->{error}; - } - return $errors; + print STDERR "depublish\n"; + return undef unless defined $config; + return undef unless defined $filename; + my $errors = []; + for my $type ( 'images', 'thumbs', 'icons' ) { + my $path = getPath( $config, { filename => $filename, type => $type } ); + next unless defined $path; + print STDERR "remove '$path'\n"; + unlink $path; + + #push @$errors, $result->{error} if defined $result->{error}; + } + return $errors; } -sub checkLicence{ - my $config = shift; - my $result = shift; +sub checkLicence { + my $config = shift; + my $result = shift; - print STDERR "depublish\n"; - return undef unless defined $config; - return undef unless defined $result; + print STDERR "depublish\n"; + return undef unless defined $config; + return undef unless defined $result; - return if $result->{licence}=~/\S/; - if ((defined $result->{public}) && ($result->{public}eq'1')){ - depublish($config, $result->{filename}); - $result->{public}=0; - } + return if $result->{licence} =~ /\S/; + if ( ( defined $result->{public} ) && ( $result->{public} eq '1' ) ) { + depublish( $config, $result->{filename} ); + $result->{public} = 0; + } } -sub setEventLabels{ - my $dbh = shift; - my $image = shift; - - unless (defined $image->{project_id}){ - print STDERR "missing project_id at images::setEventLabels\n"; - return undef; - } - unless (defined $image->{studio_id}){ - print STDERR "missing studio_id at images::setEventLabels\n"; - return undef; - } - unless (defined $image->{filename}){ - print STDERR "missing filename at images::setEventLabels\n"; - return undef; - } +sub setEventLabels { + my $dbh = shift; + my $image = shift; - my $query=qq{ + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at images::setEventLabels\n"; + return undef; + } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at images::setEventLabels\n"; + return undef; + } + unless ( defined $image->{filename} ) { + print STDERR "missing filename at images::setEventLabels\n"; + return undef; + } + + my $query = qq{ update calcms_events set image_label=? where image=? }; - my $bind_values=[$image->{licence}, $image->{filename}]; - print STDERR Dumper($query).Dumper($bind_values); + my $bind_values = [ $image->{licence}, $image->{filename} ]; + print STDERR Dumper($query) . Dumper($bind_values); - my $results= db::put($dbh, $query, $bind_values); - print STDERR Dumper($results)." changes\n"; - return $results; + my $results = db::put( $dbh, $query, $bind_values ); + print STDERR Dumper($results) . " changes\n"; + return $results; } -sub setSeriesLabels{ - my $dbh = shift; - my $image = shift; - - unless (defined $image->{project_id}){ - print STDERR "missing project_id at images::setSeriesLabels\n"; - return undef; - } - unless (defined $image->{studio_id}){ - print STDERR "missing studio_id at images::setSeriesLabels\n"; - return undef; - } - unless (defined $image->{filename}){ - print STDERR "missing filename at images::setSeriesLabels\n"; - return undef; - } +sub setSeriesLabels { + my $dbh = shift; + my $image = shift; - my $query=qq{ + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at images::setSeriesLabels\n"; + return undef; + } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at images::setSeriesLabels\n"; + return undef; + } + unless ( defined $image->{filename} ) { + print STDERR "missing filename at images::setSeriesLabels\n"; + return undef; + } + + my $query = qq{ update calcms_events set series_image_label=? where series_image=? }; - my $bind_values=[$image->{licence}, $image->{filename}]; - print STDERR Dumper($query).Dumper($bind_values); - - my $results= db::put($dbh, $query, $bind_values); - print STDERR Dumper($results)." changes\n"; - return $results; -} + my $bind_values = [ $image->{licence}, $image->{filename} ]; + print STDERR Dumper($query) . Dumper($bind_values); + my $results = db::put( $dbh, $query, $bind_values ); + print STDERR Dumper($results) . " changes\n"; + return $results; +} #do not delete last line! 1; diff --git a/lib/calcms/localization.pm b/lib/calcms/localization.pm index f1ee00a..b79d029 100644 --- a/lib/calcms/localization.pm +++ b/lib/calcms/localization.pm @@ -1,15 +1,15 @@ -package localization; +package localization; use warnings "all"; use strict; use Data::Dumper; -use uac; -use user_settings; +use uac(); +use user_settings(); require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get getJavascript); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get getJavascript); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; @@ -18,93 +18,98 @@ sub debug; # language : get for selected language # user : get from user settings # loc : add to existing localization, optional -sub get{ - my $config =shift; - my $options=shift; +sub get { + my $config = shift; + my $options = shift; - #print STDERR Dumper($options); + #print STDERR Dumper($options); - #get pot file - unless (defined $options->{file}){ - print STDERR "missing po file\n"; - return $options->{loc}||{}; - } + #get pot file + unless ( defined $options->{file} ) { + print STDERR "missing po file\n"; + return $options->{loc} || {}; + } - my $language=undef; - #get language from options - $language=$options->{language} if (defined $options->{language}); + my $language = undef; - #get language from user - if ( (!(defined $language)) && (defined $options->{user})){ - my $user_settings=user_settings::get($config, {user=>$options->{user}}); - $language=$user_settings->{language}; - } - $language='en' unless defined $language; - $language='en' unless $language eq 'de'; + #get language from options + $language = $options->{language} if ( defined $options->{language} ); - my $loc={}; - $loc=$options->{loc} if defined $options->{loc}; + #get language from user + if ( ( !( defined $language ) ) && ( defined $options->{user} ) ) { + my $user_settings = user_settings::get( $config, { user => $options->{user} } ); + $language = $user_settings->{language}; + } + $language = 'en' unless defined $language; + $language = 'en' unless $language eq 'de'; - my $files=$options->{file}; - $files=~s/[^a-zA-Z\,\_\-]//g; - #get all comma separated po files - for my $file (split/\,/,$files){ - #read default language - #my $po_file=$config->{locations}->{admin_pot_dir}.'/en/'.$file.'.po'; - #$loc=read_po_file($po_file, $loc); + my $loc = {}; + $loc = $options->{loc} if defined $options->{loc}; - #read selected language - #if($language ne 'en'){ - my $po_file=$config->{locations}->{admin_pot_dir}.'/'.$language.'/'.$file.'.po'; - $loc=read_po_file($po_file, $loc); - #} - } - return $loc; + my $files = $options->{file}; + $files =~ s/[^a-zA-Z\,\_\-]//g; + + #get all comma separated po files + for my $file ( split /\,/, $files ) { + + #read default language + #my $po_file=$config->{locations}->{admin_pot_dir}.'/en/'.$file.'.po'; + #$loc=read_po_file($po_file, $loc); + + #read selected language + #if($language ne 'en'){ + my $po_file = $config->{locations}->{admin_pot_dir} . '/' . $language . '/' . $file . '.po'; + $loc = read_po_file( $po_file, $loc ); + + #} + } + return $loc; } -sub read_po_file{ - my $po_file=shift; - my $loc =shift; +sub read_po_file { + my $po_file = shift; + my $loc = shift; - unless (-e $po_file){ - print STDERR "po file $po_file does not exist\n"; - return $loc; - } - unless (-r $po_file){ - print STDERR "cannot read po file $po_file\n"; - return $loc; - } - - my $key=''; - open my $file, '<:encoding(UTF-8)', $po_file; - while (<$file>){ - my $line=$_; - #print STDERR $line; - if ($line=~/^msgid\s*\"(.*)\"\s*$/){ - $key=$1; - $key=~s/\'//g; - $key=~s/\"//g; - } - if ($line=~/^msgstr\s*\"(.*)\"\s*$/){ - my $val=$1; - $val=~s/\'//g; - $val=~s/\"//g; - $loc->{$key}=$val; - } - } - return $loc; + unless ( -e $po_file ) { + print STDERR "po file $po_file does not exist\n"; + return $loc; + } + unless ( -r $po_file ) { + print STDERR "cannot read po file $po_file\n"; + return $loc; + } + + my $key = ''; + open my $file, '<:encoding(UTF-8)', $po_file; + while (<$file>) { + my $line = $_; + + #print STDERR $line; + if ( $line =~ /^msgid\s*\"(.*)\"\s*$/ ) { + $key = $1; + $key =~ s/\'//g; + $key =~ s/\"//g; + } + if ( $line =~ /^msgstr\s*\"(.*)\"\s*$/ ) { + my $val = $1; + $val =~ s/\'//g; + $val =~ s/\"//g; + $loc->{$key} = $val; + } + } + return $loc; } -sub getJavascript{ - my $loc=shift; +sub getJavascript { + my $loc = shift; - my $out='\n"; - return $out; + my $out = '\n"; + return $out; } 1; diff --git a/lib/calcms/log.pm b/lib/calcms/log.pm index 758d3ef..6881425 100644 --- a/lib/calcms/log.pm +++ b/lib/calcms/log.pm @@ -1,166 +1,92 @@ use warnings "all"; use strict; -use template; -use config; +use template(); +use config(); package log; -use Data::Dumper; -require Exporter; -our @ISA = qw(Exporter); -#our @EXPORT = qw(all); -our @EXPORT_OK = qw(init write read error mem); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +sub error { + my $config = $_[0]; + my $message = "Error: $_[1]\n"; -#our $debug=0; -our $debug_params=''; -our $header="Content-type:text/html\n\n"; - -our $gtop = undef; -our $proc = undef; - -sub init{ - my $request =$_[0]; - $log::debug_params =$request->{params}->{checked}->{debug}||''; - $log::header =$request->{header}if (defined $request->{header}); - - #if ($config->{system}->{debug_memory}>0){ - #use GTop(); - #$log::gtop=GTop->new; - #$log::proc=$gtop->proc_mem($$); - #} -} - -sub write{ - my $config = shift; - my $key = shift; - my $data = shift; - my $dump = shift; - - return unless(defined $config::config->{system}->{debug}); - return unless(($config::config->{system}->{debug}>0) &&($log::debug_params=~/$key/)); - - my $line=Dumper($data); - $line=~s/^\$VAR1 = \{\n//g; - $line=~s/\};\n$/<\/code>/g; - $line=~s/\n/\\n/g; - my $msg=localtime()." [$key] ".$ENV{REQUEST_URI}."\\n".$line; - $msg.=Dumper($dump) if (defined $dump); - $msg.="\n"; - - log::print($config, $msg); -} - -sub print{ - my $config = $_[0]; - my $message= $_[1]; - - unless (defined $config){ - print STDERR "missing config at log::error\n"; - return; - } - - my $filename=$config->{system}->{log_debug_file}||''; - if ($filename eq ''){ - print STDERR "calcms config parameter 'system/log_debug_file' not set!\n"; - return; - }; - - open my $FILE, ">>:utf8", $filename or warn("cant write log file '$filename'"); - print $FILE $message; - close $FILE; -} - -sub error{ - my $config = $_[0]; - my $message="Error: $_[1]\n"; - - unless (defined $config){ - print STDERR "missing config at log::error\n"; - } - - print STDERR $message."\n"; - if($config::config->{system}->{debug}){ - log::write($config, '', $message);# if ($config::config->{system}->{debug}>1); - - my $out=''; - #do not call template::check to avoid deep recursion! - template::process('print','templates/default.html', { - static_files_url => $config::config->{locations}->{static_files_url}, - error=>$message - }); + print STDERR $message; + unless ( defined $config ) { + print STDERR "missing config at log::error\n"; + die(); } - # TODO: remove exit - die(); - #exit; + + #do not call template::check to avoid deep recursion! + if ( $config::config->{system}->{debug} ) { + + template::process( + 'print', + 'templates/default.html', + { + static_files_url => $config::config->{locations}->{static_files_url}, + error => $message + } + ); + } + + die(); } -sub mem{ - my $config = $_[0]; - return unless $config::config->{system}->{debug_memory}; - my $size=$log::gtop->proc_mem($$)->size(); - my $format_size=$size; - $format_size=~s/(\d)(\d\d\d)$/$1\.$2/g; - $format_size=~s/(\d)(\d\d\d)(\d\d\d)$/$1\.$2\.$3/g; - my $line=localtime(time())."\t".$$."\t".$format_size."\t".$_[0]; - $line.="\t\t".($size-$_[1]) if(defined $_[1]); - log::error($config, "log_memory_file is not defined!") if (!defined $config::config->{system}->{log_debug_memory_file}); - log::append_file($config::config->{system}->{log_debug_memory_file} , $line); -} +#do not delete last line! +1; -sub load_file{ - my $filename=$_[0]; -# my $content=$_[1]; +sub load_file { + my $filename = $_[0]; -# binmode STDOUT, ":utf8"; - my $content=''; - if (-e $filename){ - my $FILE=undef; + # my $content=$_[1]; + + # binmode STDOUT, ":utf8"; + my $content = ''; + if ( -e $filename ) { + my $FILE = undef; open $FILE, "<:utf8", $filename || warn "cant read file '$filename'"; - $content=join "",(<$FILE>); + $content = join "", (<$FILE>); close $FILE; return $content; } } -sub save_file{ - my $filename=$_[0]; - my $content=$_[1]; +sub save_file { + my $filename = $_[0]; + my $content = $_[1]; #check if directory is writeable - if ($filename=~/^(.+?)\/[^\/]+$/){ - my $dir=$1; - unless (-w $dir){ + if ( $filename =~ /^(.+?)\/[^\/]+$/ ) { + my $dir = $1; + unless ( -w $dir ) { print STDERR `pwd;id -a;`; print STDERR "log::save_file : cannot write to directory ($dir)\n"; return; } } - open my $FILE, ">:utf8", $filename || warn("cant write file '$filename'"); - if (defined $FILE){ - print $FILE $content."\n"; - close $FILE; + open my $FILE, ">:utf8", $filename || warn("cant write file '$filename'"); + if ( defined $FILE ) { + print $FILE $content . "\n"; + close $FILE; } } -sub append_file{ - my $filename =$_[0]; - my $content =$_[1]; +sub append_file { + my $filename = $_[0]; + my $content = $_[1]; - unless ( (defined $filename) && ($filename ne'') && (-e $filename) ){ - print STDERR "cannot append, file '$filename' does not exist\n"; - return; - } + unless ( ( defined $filename ) && ( $filename ne '' ) && ( -e $filename ) ) { + print STDERR "cannot append, file '$filename' does not exist\n"; + return; + } - if (defined $content){ - open my $FILE, ">>:utf8", $filename or warn("cant write file '$filename'"); - print $FILE $content."\n"; - close $FILE; + if ( defined $content ) { + open my $FILE, ">>:utf8", $filename or warn("cant write file '$filename'"); + print $FILE $content . "\n"; + close $FILE; } } - #do not delete last line! -1; +return 1; diff --git a/lib/calcms/mail.pm b/lib/calcms/mail.pm index fe44a04..e945285 100644 --- a/lib/calcms/mail.pm +++ b/lib/calcms/mail.pm @@ -1,26 +1,26 @@ package mail; -use MIME::Lite; +use MIME::Lite(); sub send { - my $mail = shift; + my $mail = shift; - my $msg = MIME::Lite->new( - 'From' => $mail->{'From'}, - 'To' => $mail->{'To'}, - 'Cc' => $mail->{'Cc'}, - 'Reply-To' => $mail->{'Reply-To'}, - 'Subject' => $mail->{'Subject'}, - 'Data' => $mail->{'Data'}, - ); + my $msg = MIME::Lite->new( + 'From' => $mail->{'From'}, + 'To' => $mail->{'To'}, + 'Cc' => $mail->{'Cc'}, + 'Reply-To' => $mail->{'Reply-To'}, + 'Subject' => $mail->{'Subject'}, + 'Data' => $mail->{'Data'}, + ); - #print '
      ';
      -    $msg->print( \*STDERR );
      -    #print '
      '; + #print '
      ';
      +	$msg->print( \*STDERR );
       
      -    $msg->send;
      +	#print '
      '; + + $msg->send; } - # do not delete next line return 1; diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index 48f3f09..59dc5cf 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -1,10 +1,10 @@ use warnings "all"; use strict; use Data::Dumper; -use Text::WikiCreole; +use Text::WikiCreole(); -use HTML::Parse; -use HTML::FormatText; +use HTML::Parse(); +use HTML::FormatText(); use log; @@ -14,454 +14,477 @@ use Encode; require Exporter; our @ISA = qw(Exporter); -#our @EXPORT = qw(all); -our @EXPORT_OK = qw(fix_line_ends html_to_creole creole_to_html creole_to_plain plain_to_ical ical_to_plain ical_to_xml html_to_plain fix_utf8 uri_encode compress base26); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); -sub fix_line_ends{ - my $s=shift; - $s=~s/\r?\n|\r/\n/g; - return $s; +#our @EXPORT = qw(all); +our @EXPORT_OK = + qw(fix_line_ends html_to_creole creole_to_html creole_to_plain plain_to_ical ical_to_plain ical_to_xml html_to_plain fix_utf8 uri_encode compress base26); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); + +sub fix_line_ends { + my $s = shift; + $s =~ s/\r?\n|\r/\n/g; + return $s; } # convert 1..26 to a..z, 27 to aa, inspired by ConvertAA -sub base26{ - my $num = shift ; - return '' if $num <= 0; +sub base26 { + my $num = shift; + return '' if $num <= 0; - my $s = ""; - while($num){ - $s= chr (--$num % 26 + ord "a").$s; - $num = int $num/26; + my $s = ""; + while ($num) { + $s = chr( --$num % 26 + ord "a" ) . $s; + $num = int $num / 26; } - return $s; + return $s; } -sub html_to_creole{ - my $s=shift; +sub html_to_creole { + my $s = shift; #remove elements -# $s=~s/[\r\f\n]+/\n/gi; -# $s=~s/<\/p.*?>//gi; -# $s=~s/<\/br.*?>//gi; - $s=~s/\<\!\-\-[\s\S]*?\-\-\>//gi; - $s=~s/.*?<\/script.*?>//gi; -# $s=~s/<\/?span.*?>//gi; -# $s=~s/<\/?font.*?>//gi; -# $s=~s/<\/?meta.*?>//gi; -# $s=~s/<\/?title.*?>//gi; -# $s=~s/<\/?style.*?>//gi; -# $s=~s/<\/?col.*?>//gi; -# $s=~s/<\/?thead.*?>//gi; -# $s=~s/<\/?tbody.*?>//gi; - $s=~s/<\/?form.*?>//gi; - $s=~s/<\/?select.*?>//gi; - $s=~s/<\/?option.*?//gi; - $s=~s/<\/?input.*?>//gi; -# $s=~s/<\/?button.*?>//gi; -# $s=~s/<\/?textarea.*?>//gi; - $s=~s/<\/?script.*?>//gi; + # $s=~s/[\r\f\n]+/\n/gi; + # $s=~s/<\/p.*?>//gi; + # $s=~s/<\/br.*?>//gi; + $s =~ s/\<\!\-\-[\s\S]*?\-\-\>//gi; + $s =~ s/.*?<\/script.*?>//gi; + + # $s=~s/<\/?span.*?>//gi; + # $s=~s/<\/?font.*?>//gi; + # $s=~s/<\/?meta.*?>//gi; + # $s=~s/<\/?title.*?>//gi; + # $s=~s/<\/?style.*?>//gi; + # $s=~s/<\/?col.*?>//gi; + # $s=~s/<\/?thead.*?>//gi; + # $s=~s/<\/?tbody.*?>//gi; + $s =~ s/<\/?form.*?>//gi; + $s =~ s/<\/?select.*?>//gi; + $s =~ s/<\/?option.*?//gi; + $s =~ s/<\/?input.*?>//gi; + + # $s=~s/<\/?button.*?>//gi; + # $s=~s/<\/?textarea.*?>//gi; + $s =~ s/<\/?script.*?>//gi; #table elements -# $s=~s/\s*<\/?td.*?>//gi; -# $s=~s/\s*<\/?th.*?>//gi; + # $s=~s/\s*<\/?td.*?>//gi; + # $s=~s/\s*<\/?th.*?>//gi; #remove line breaks - $s=~s/[\r\n]+/ /gi; + $s =~ s/[\r\n]+/ /gi; + + #formats + $s =~ s//{{$1\|}}/gi; + $s =~ s//{{$2\|$1}}/gi; + $s =~ s/]*?title="(.*?)".*?>/{{$1\|$2}}/gi; + $s =~ s/]*?src="(.*?)".*?>/{{$2\|$1}}/gi; + $s =~ s/<\/?img.*?>//gi; - #formats - $s=~s//{{$1\|}}/gi; - $s=~s//{{$2\|$1}}/gi; - $s=~s/]*?title="(.*?)".*?>/{{$1\|$2}}/gi; - $s=~s/]*?src="(.*?)".*?>/{{$2\|$1}}/gi; - $s=~s/<\/?img.*?>//gi; #replace line breaks from images - $s=~s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s=~s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s=~s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s=~s/(.*?)<\/i>/\/\/$1\/\//gi; - $s=~s/<\/?i.*?>//gi; - $s=~s/(.*?)<\/b>/\*\*$1\*\*/gi; -# $s=~s/<\/?b.*?>//gi; + $s =~ s/(.*?)<\/i>/\/\/$1\/\//gi; + $s =~ s/<\/?i.*?>//gi; + $s =~ s/(.*?)<\/b>/\*\*$1\*\*/gi; + + # $s=~s/<\/?b.*?>//gi; + + $s =~ s/(.*?)<\/strong>/\*\*$1\*\*/gi; + $s =~ s/(.*?)<\/em>/\/\/$1\/\//gi; + $s =~ s/((\W+|\w+)*?)<\/blockquote>/{{{$1}}}/gi; + + # $s=~s/((\W+|\w+)*?)<\/a>/\[\[$1\|$2\]\]$3/gi; + $s =~ s/(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; + $s =~ s///gi; - $s=~s/(.*?)<\/strong>/\*\*$1\*\*/gi; - $s=~s/(.*?)<\/em>/\/\/$1\/\//gi; - $s=~s/((\W+|\w+)*?)<\/blockquote>/{{{$1}}}/gi; -# $s=~s/((\W+|\w+)*?)<\/a>/\[\[$1\|$2\]\]$3/gi; - $s=~s/(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; - $s=~s///gi; #replace line breaks from links - $s=~s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s=~s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s=~s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; -# print STDERR Dumper($s) if ($s=~//== /gi; - $s=~s/\s*/=== /gi; - $s=~s/\s*/==== /gi; - $s=~s/\s*/===== /gi; -# $s=~s/\s*<\/h\d.*?>/\n/gi; + $s =~ s/\s*/== /gi; + $s =~ s/\s*/=== /gi; + $s =~ s/\s*/==== /gi; + $s =~ s/\s*/===== /gi; -# $s=~s//\\\\
      /gi; -# $s=~s/\s*//gi; -# $s=~s/\s*<\/div>/\n/gi; + # $s=~s/\s*<\/h\d.*?>/\n/gi; -# $s=~s//\n/gi; -# $s=~s/<\/table>/\n/gi; -# $s=~s/\s*//gi; -# $s=~s/\s*<\/tr>//gi; + # $s=~s//\\\\
      /gi; + # $s=~s/\s*//gi; + # $s=~s/\s*<\/div>/\n/gi; -# $s=~s/\s*/\n/gi; -# $s=~s/\s*<\/ol>/\n/gi; -# $s=~s/\s*/\n/gi; -# $s=~s/\s*<\/ul>/\n/gi; -# $s=~s/\s*/\n\* /gi; -# $s=~s/\s*<\/li>//gi; + # $s=~s//\n/gi; + # $s=~s/<\/table>/\n/gi; + # $s=~s/\s*//gi; + # $s=~s/\s*<\/tr>//gi; -# $s=~s/\s*\s*/\n\n/gi; -# $s=~s/\s*\s*/\n /gi; + # $s=~s/\s*/\n/gi; + # $s=~s/\s*<\/ol>/\n/gi; + # $s=~s/\s*/\n/gi; + # $s=~s/\s*<\/ul>/\n/gi; + # $s=~s/\s*/\n\* /gi; + # $s=~s/\s*<\/li>//gi; + + # $s=~s/\s*\s*/\n\n/gi; + # $s=~s/\s*\s*/\n /gi; + + my $tree = HTML::Parse::parse_html( '' . $s . '' ); + my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 2000 ); + $s = $formatter->format($tree); - my $tree=HTML::Parse::parse_html(''.$s.''); - my $formatter = HTML::FormatText->new(leftmargin => 0, rightmargin => 2000); - $s= $formatter->format($tree); #use Data::Dumper; print "asd:"; - $s=~s/\//gi; + + # $s=~s/<\/a>//gi; return $s; } -sub creole_to_html{ - my $s=$_[0]||''; - +sub creole_to_html { + my $s = $_[0] || ''; + #$s=~s/\n\#\n/\n/g; - #fix_line_ends($s); - $s=~s/(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; - $s=~s///gi; + #fix_line_ends($s); + $s =~ s/(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; + $s =~ s///gi; - $s=~s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s=~s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s=~s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s=~s/^\s+//g; - $s=~s/\s+$//g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/^\s+//g; + $s =~ s/\s+$//g; - $s=Text::WikiCreole::creole_parse($s)||''; -# $s=~s/

      /\n/gi; -# $s=~s/\{\{\{((\W+|\w+)+?)\}\}\}/

      $1<\/blockquote>/g; -# $s=~s/\{\{(.+?)\|(.*?)\}\}//g; -# $s=~s/\[\[(.+?)\|(.*?)\]\]/$2<\/a>/g; -# $s=~s/([^\:])\/\/(.*?[^\:])\/\//$1$2<\/em> /g; -# $s=~s/\n=== (.*?)\n/

      $1<\/h3>\n/g; -# $s=~s/\n== (.*?)\n/

      $1<\/h2>\n/g; + $s = Text::WikiCreole::creole_parse($s) || ''; + + # $s=~s/

      /\n/gi; + # $s=~s/\{\{\{((\W+|\w+)+?)\}\}\}/

      $1<\/blockquote>/g; + # $s=~s/\{\{(.+?)\|(.*?)\}\}//g; + # $s=~s/\[\[(.+?)\|(.*?)\]\]/$2<\/a>/g; + # $s=~s/([^\:])\/\/(.*?[^\:])\/\//$1$2<\/em> /g; + # $s=~s/\n=== (.*?)\n/

      $1<\/h3>\n/g; + # $s=~s/\n== (.*?)\n/

      $1<\/h2>\n/g; #replace line breaks from images - $s=~s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s=~s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s=~s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + #replace line breaks from links -# $s=~s/\n= (.*?)\n/

      $1<\/h1>\n/g; -# $s=~s/\*\*(.*?)\*\*/$1<\/strong> /g; -# $s=~s/^== (.*?)\n/

      $1<\/h2>\n/g; -# $s=~s/\n\* (.*?)([\r\n]+)/
    2. $1<\/li>\n/g; -# $s=~s/\n\- (.*?)\n/$1<\/lo>\n/g; -# $s=~s/\n\n/

      /gi; -# $s=~s/\n+/
      /gi; -# $s=~s/\$1<\/h1>\n/g; + # $s=~s/\*\*(.*?)\*\*/$1<\/strong> /g; + # $s=~s/^== (.*?)\n/

      $1<\/h2>\n/g; + # $s=~s/\n\* (.*?)([\r\n]+)/
    3. $1<\/li>\n/g; + # $s=~s/\n\- (.*?)\n/$1<\/lo>\n/g; + # $s=~s/\n\n/

      /gi; + # $s=~s/\n+/
      /gi; + # $s=~s/\\s*

      |<$elem>|g; - $s=~s|

      \s*||g; - } + #remove whitespaces and break lines at start or end of elements + for my $elem ( 'p', 'li' ) { + $s =~ s|<$elem>\s*

      |<$elem>|g; + $s =~ s|

      \s*||g; + } return $s; } -sub creole_to_plain{ - my $s=shift; - - $s=~s/\/\n/gi; - $s=~s/\{\{\{((\W+|\w+)+?)\}\}\}/

      $1<\/blockquote>/g; - $s=~s/\{\{(.+?)\|(.*?)\}\}//g; - $s=~s/\[\[(.+?)\|(.*?)\]\]/$2/g; - $s=~s/\/\/([^\/\/]*?)\/\//$1<\/em> /g; - $s=~s/\n=== (.*?)\n/\n

      $1<\/h3>\n/g; - $s=~s/\n== (.*?)\n/\n

      $1<\/h2>\n/g; - $s=~s/\*\*(.*?)\*\*/$1<\/strong> /g; - $s=~s/^== (.*?)\n/

      $1<\/h2>\n/g; - $s=~s/\n\* (.*?)\n/\n
    4. $1<\/li>\n/g; - $s=~s/\n\* (.*?)\n/\n
    5. $1<\/li>\n/g; - $s=~s/\n\- (.*?)\n/\n$1<\/lo>\n/g; - $s=~s/\n\- (.*?)\n/\n$1<\/lo>\n/g; - $s=~s/\n\n/\n

      /gi; - $s=~s/\n/\n/gi; +sub creole_to_plain { + my $s = shift; + + $s =~ s/\/\n/gi; + $s =~ s/\{\{\{((\W+|\w+)+?)\}\}\}/

      $1<\/blockquote>/g; + $s =~ s/\{\{(.+?)\|(.*?)\}\}//g; + $s =~ s/\[\[(.+?)\|(.*?)\]\]/$2/g; + $s =~ s/\/\/([^\/\/]*?)\/\//$1<\/em> /g; + $s =~ s/\n=== (.*?)\n/\n

      $1<\/h3>\n/g; + $s =~ s/\n== (.*?)\n/\n

      $1<\/h2>\n/g; + $s =~ s/\*\*(.*?)\*\*/$1<\/strong> /g; + $s =~ s/^== (.*?)\n/

      $1<\/h2>\n/g; + $s =~ s/\n\* (.*?)\n/\n
    6. $1<\/li>\n/g; + $s =~ s/\n\* (.*?)\n/\n
    7. $1<\/li>\n/g; + $s =~ s/\n\- (.*?)\n/\n$1<\/lo>\n/g; + $s =~ s/\n\- (.*?)\n/\n$1<\/lo>\n/g; + $s =~ s/\n\n/\n

      /gi; + $s =~ s/\n/\n/gi; return $s; } -sub html_to_plain{ - my $s=shift; - return '' unless (defined $s); - my $tree=HTML::Parse::parse_html(''.$s.''); - my $formatter = HTML::FormatText->new(leftmargin => 0, rightmargin => 2000); - $s= $formatter->format($tree); +sub html_to_plain { + my $s = shift; + return '' unless ( defined $s ); + my $tree = HTML::Parse::parse_html( '' . $s . '' ); + my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 2000 ); + $s = $formatter->format($tree); return $s; } -sub ical_to_plain{ - return '' unless defined ($_[0]); - $_[0]=~s/\\n/\n/gi; - $_[0]=~s/ /\t/gi; - $_[0]=~s/\\\./\./gi; - $_[0]=~s/\\\,/\,/gi; - $_[0]=~s/\\\\/\\/gi; +sub ical_to_plain { + return '' unless defined( $_[0] ); + $_[0] =~ s/\\n/\n/gi; + $_[0] =~ s/ /\t/gi; + $_[0] =~ s/\\\./\./gi; + $_[0] =~ s/\\\,/\,/gi; + $_[0] =~ s/\\\\/\\/gi; return $_[0]; } -sub plain_to_ical{ - return '' unless defined ($_[0]); +sub plain_to_ical { + return '' unless defined( $_[0] ); + #remove images + links - $_[0]=~s/\[\[.+?\|(.+?)\]\]/$1/g; - $_[0]=~s/\{\{.+?\}\}//g; - $_[0]=~s/^\s+//g; - $_[0]=~s/\\/\\\\/gi; - $_[0]=~s/\,/\\\,/gi; -# $_[0]=~s/\./\\\./gi; - $_[0]=~s/[\r\n]/\\n/gi; - $_[0]=~s/\t/ /gi; + $_[0] =~ s/\[\[.+?\|(.+?)\]\]/$1/g; + $_[0] =~ s/\{\{.+?\}\}//g; + $_[0] =~ s/^\s+//g; + $_[0] =~ s/\\/\\\\/gi; + $_[0] =~ s/\,/\\\,/gi; + + # $_[0]=~s/\./\\\./gi; + $_[0] =~ s/[\r\n]/\\n/gi; + $_[0] =~ s/\t/ /gi; return $_[0]; } -sub plain_to_xml{ - return '' unless defined ($_[0]); - $_[0]=~s/\n\={1,6} (.*?)\s+/\n\[\[$1\]\]\n/gi; - #remove images + links - $_[0]=~s/\[\[.+?\|(.+?)\]\]/$1/g; - $_[0]=~s/\{\{.+?\}\}//g; - return encode_xml_element($_[0]); +sub plain_to_xml { + return '' unless defined( $_[0] ); + $_[0] =~ s/\n\={1,6} (.*?)\s+/\n\[\[$1\]\]\n/gi; -# $_[0]=~s/\ä/ä/gi; -# $_[0]=~s/\ö/ö/gi; -# $_[0]=~s/\ü/ü/gi; -# $_[0]=~s/\Ä/Ä/gi; -# $_[0]=~s/\Ö/Ö/gi; -# $_[0]=~s/\Ü/Ü/gi; -# $_[0]=~s/\ß/ß/gi; -# $_[0]=~s/\&/\&/gi; -# $_[0]=~s/\/\>/gi; -# $_[0]=~s/\"/\"/gi; + #remove images + links + $_[0] =~ s/\[\[.+?\|(.+?)\]\]/$1/g; + $_[0] =~ s/\{\{.+?\}\}//g; + return encode_xml_element( $_[0] ); + + # $_[0]=~s/\ä/ä/gi; + # $_[0]=~s/\ö/ö/gi; + # $_[0]=~s/\ü/ü/gi; + # $_[0]=~s/\Ä/Ä/gi; + # $_[0]=~s/\Ö/Ö/gi; + # $_[0]=~s/\Ü/Ü/gi; + # $_[0]=~s/\ß/ß/gi; + # $_[0]=~s/\&/\&/gi; + # $_[0]=~s/\/\>/gi; + # $_[0]=~s/\"/\"/gi; ## $_[0]=~s/\n//gi; ## $_[0]=~s/\&amp;/\&/gi; ## $_[0]=~s/\&amp;/+/gi; ## $_[0]=~s/\&/+/gi; ## $_[0]=~s/\&/+/gi; -# return $_[0]; + # return $_[0]; } -sub fix_utf8{ +sub fix_utf8 { $_[0] = decode( 'cp1252', $_[0] ); return $_[0]; } -sub uri_encode{ - $_[0] =~s/([^a-zA-Z0-9_\.\-])/sprintf("%%%02lx",ord($1))/esg; +sub uri_encode { + $_[0] =~ s/([^a-zA-Z0-9_\.\-])/sprintf("%%%02lx",ord($1))/esg; return $_[0]; } -sub compress{ - my $header=''; +sub compress { + my $header = ''; + + if ( $_[0] =~ /(Content\-type\:[^\n]+[\n]+)/ ) { + $header = $1; + } else { - if($_[0]=~/(Content\-type\:[^\n]+[\n]+)/){ - $header=$1; - }else{ #return; } - my $start=index($_[0],$header); - return if ($start<0); + my $start = index( $_[0], $header ); + return if ( $start < 0 ); - my $header_length=length($header); - $header =substr($_[0],0,$start+$header_length); -# print $header."\n"; + my $header_length = length($header); + $header = substr( $_[0], 0, $start + $header_length ); - my $content=substr($_[0],$start+$header_length); + # print $header."\n"; -# #remove multiple line breaks - $content=~s/[\r\n]+[\s]*[\r\n]+/\n/g; + my $content = substr( $_[0], $start + $header_length ); + + # #remove multiple line breaks + $content =~ s/[\r\n]+[\s]*[\r\n]+/\n/g; #remove leading whitespaces - $content=~s/[\r\n]+[\s]+/\n/g; + $content =~ s/[\r\n]+[\s]+/\n/g; #remove tailing whitespaces - $content=~s/[\t ]*[\r\n]+/\n/g; + $content =~ s/[\t ]*[\r\n]+/\n/g; #remove whitespaces inside tags - $content=~s/([\n]\<[^\n]+)[\r\n]+/$1 /g; - $content=~s/\"\s+\>/\"\>/g; + $content =~ s/([\n]\<[^\n]+)[\r\n]+/$1 /g; + $content =~ s/\"\s+\>/\"\>/g; #get closing tags closer - $content=~s/[\r\n]+(\<[\/\!])/$1/g; - $content=~s/(\>)[\r\n]+([^\<])/$1$2/g; + $content =~ s/[\r\n]+(\<[\/\!])/$1/g; + $content =~ s/(\>)[\r\n]+([^\<])/$1$2/g; #remove leading whitespaces #$content=~s/[\r\n]+([\d\S])/$1/g; #remove empty lines - $content=~s/[\n\r]+/\n/g; + $content =~ s/[\n\r]+/\n/g; #remove whitespaces between tags - $content=~s/\>[\t ]+\<(^\/T)/\>\<$1/g; + $content =~ s/\>[\t ]+\<(^\/T)/\>\<$1/g; #multiple whitespaces - $content=~s/[\t ]+/ /g; + $content =~ s/[\t ]+/ /g; #restore content-type line break - $_[0]=$header.$content; + $_[0] = $header . $content; + #$_[0]=~s/HTTP_CONTENT_TYPE/\n\n/; -# return $_[0]; + # return $_[0]; } #from XML::RSS.pm my %entity = ( - nbsp => " ", - iexcl => "¡", - cent => "¢", - pound => "£", - curren => "¤", - yen => "¥", - brvbar => "¦", - sect => "§", - uml => "¨", - copy => "©", - ordf => "ª", - laquo => "«", - not => "¬", - shy => "­", - reg => "®", - macr => "¯", - deg => "°", - plusmn => "±", - sup2 => "²", - sup3 => "³", - acute => "´", - micro => "µ", - para => "¶", - middot => "·", - cedil => "¸", - sup1 => "¹", - ordm => "º", - raquo => "»", - frac14 => "¼", - frac12 => "½", - frac34 => "¾", - iquest => "¿", - Agrave => "À", - Aacute => "Á", - Acirc => "Â", - Atilde => "Ã", - Auml => "Ä", - Aring => "Å", - AElig => "Æ", - Ccedil => "Ç", - Egrave => "È", - Eacute => "É", - Ecirc => "Ê", - Euml => "Ë", - Igrave => "Ì", - Iacute => "Í", - Icirc => "Î", - Iuml => "Ï", - ETH => "Ð", - Ntilde => "Ñ", - Ograve => "Ò", - Oacute => "Ó", - Ocirc => "Ô", - Otilde => "Õ", - Ouml => "Ö", - times => "×", - Oslash => "Ø", - Ugrave => "Ù", - Uacute => "Ú", - Ucirc => "Û", - Uuml => "Ü", - Yacute => "Ý", - THORN => "Þ", - szlig => "ß", - agrave => "à", - aacute => "á", - acirc => "â", - atilde => "ã", - auml => "ä", - aring => "å", - aelig => "æ", - ccedil => "ç", - egrave => "è", - eacute => "é", - ecirc => "ê", - euml => "ë", - igrave => "ì", - iacute => "í", - icirc => "î", - iuml => "ï", - eth => "ð", - ntilde => "ñ", - ograve => "ò", - oacute => "ó", - ocirc => "ô", - otilde => "õ", - ouml => "ö", - divide => "÷", - oslash => "ø", - ugrave => "ù", - uacute => "ú", - ucirc => "û", - uuml => "ü", - yacute => "ý", - thorn => "þ", - yuml => "ÿ", - ); + nbsp => " ", + iexcl => "¡", + cent => "¢", + pound => "£", + curren => "¤", + yen => "¥", + brvbar => "¦", + sect => "§", + uml => "¨", + copy => "©", + ordf => "ª", + laquo => "«", + not => "¬", + shy => "­", + reg => "®", + macr => "¯", + deg => "°", + plusmn => "±", + sup2 => "²", + sup3 => "³", + acute => "´", + micro => "µ", + para => "¶", + middot => "·", + cedil => "¸", + sup1 => "¹", + ordm => "º", + raquo => "»", + frac14 => "¼", + frac12 => "½", + frac34 => "¾", + iquest => "¿", + Agrave => "À", + Aacute => "Á", + Acirc => "Â", + Atilde => "Ã", + Auml => "Ä", + Aring => "Å", + AElig => "Æ", + Ccedil => "Ç", + Egrave => "È", + Eacute => "É", + Ecirc => "Ê", + Euml => "Ë", + Igrave => "Ì", + Iacute => "Í", + Icirc => "Î", + Iuml => "Ï", + ETH => "Ð", + Ntilde => "Ñ", + Ograve => "Ò", + Oacute => "Ó", + Ocirc => "Ô", + Otilde => "Õ", + Ouml => "Ö", + times => "×", + Oslash => "Ø", + Ugrave => "Ù", + Uacute => "Ú", + Ucirc => "Û", + Uuml => "Ü", + Yacute => "Ý", + THORN => "Þ", + szlig => "ß", + agrave => "à", + aacute => "á", + acirc => "â", + atilde => "ã", + auml => "ä", + aring => "å", + aelig => "æ", + ccedil => "ç", + egrave => "è", + eacute => "é", + ecirc => "ê", + euml => "ë", + igrave => "ì", + iacute => "í", + icirc => "î", + iuml => "ï", + eth => "ð", + ntilde => "ñ", + ograve => "ò", + oacute => "ó", + ocirc => "ô", + otilde => "õ", + ouml => "ö", + divide => "÷", + oslash => "ø", + ugrave => "ù", + uacute => "ú", + ucirc => "û", + uuml => "ü", + yacute => "ý", + thorn => "þ", + yuml => "ÿ", +); -my $entities = join('|', keys %entity); +my $entities = join( '|', keys %entity ); sub encode_xml_element { my $text = shift; - + my $encoded_text = ''; - + while ( $text =~ s/(.*?)(\<\!\[CDATA\[.*?\]\]\>)//s ) { $encoded_text .= encode_xml_element_text($1) . $2; } @@ -472,7 +495,7 @@ sub encode_xml_element { sub encode_xml_element_text { my $text = shift; - + $text =~ s/&(?!(#[0-9]+|#x[0-9a-fA-F]+|\w+);)/&/g; $text =~ s/&($entities);/$entity{$1}/g; $text =~ s/\ [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get isJson); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -my $isJson=0; +my $isJson = 0; -sub isJson{ - return $isJson; +sub isJson { + return $isJson; } -sub get{ - #get the Apache2::RequestRec - my $r=shift; +sub get { + + #get the Apache2::RequestRec + my $r = shift; my $tmp_dir = '/var/tmp/'; - my $upload_limit = 1000*1024; + my $upload_limit = 1000 * 1024; my $cgi = undef; my $status = undef; my $params = {}; - $isJson=0; + $isJson = 0; + + if ( defined $r ) { - if (defined $r){ #print STDERR "Apache2::Request\n"; - #get Apache2::Request - my $req = Apache2::Request->new($r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir); + #get Apache2::Request + my $req = Apache2::Request->new( $r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir ); - for my $key ($req->param){ - $params->{scalar($key)}=scalar($req->param($key)); - } + for my $key ( $req->param ) { + $params->{ scalar($key) } = scalar( $req->param($key) ); + } #copy params to hash #my $body=$req->body(); @@ -46,38 +48,36 @@ sub get{ # $params->{scalar($key)}=scalar($req->param($key)); # } #} - $status = $req->parse; #parse - }else{ + $status = $req->parse; #parse + } else { + #print STDERR "CGI\n"; - $CGI::POST_MAX = $upload_limit; - $CGI::TMPDIRECTORY=$tmp_dir; - $cgi=new CGI(); - $status=$cgi->cgi_error()||$status; - my %params=$cgi->Vars(); - $params=\%params; + $CGI::POST_MAX = $upload_limit; + $CGI::TMPDIRECTORY = $tmp_dir; + $cgi = new CGI(); + $status = $cgi->cgi_error() || $status; + my %params = $cgi->Vars(); + $params = \%params; } - $cgi=new CGI() unless(defined $cgi); + $cgi = new CGI() unless ( defined $cgi ); - $isJson=1 if (defined $params->{json}) && ($params->{json}eq'1'); + $isJson = 1 if ( defined $params->{json} ) && ( $params->{json} eq '1' ); - if(defined $status){ - $status='' if ($status eq 'Success'); - $status='' if ($status eq 'Missing input data'); - print $cgi->header.$status."\n" if($status ne''); - } - #print STDERR Dumper($params); - #print $cgi->header.Dumper($params).$status; + if ( defined $status ) { + $status = '' if ( $status eq 'Success' ); + $status = '' if ( $status eq 'Missing input data' ); + print $cgi->header . $status . "\n" if ( $status ne '' ); + } - return ($cgi, $params, $status); + #print STDERR Dumper($params); + #print $cgi->header.Dumper($params).$status; + + return ( $cgi, $params, $status ); } -sub debug{ - my $message=shift; - #print "$msg
      \n" if ($debug>0); - #print "$message
      \n"; - #log::print($message."\n") if ($debug); +sub debug { + my $message = shift; } - #do not delete last line! 1; diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm index 7640287..ba0c15c 100644 --- a/lib/calcms/password_requests.pm +++ b/lib/calcms/password_requests.pm @@ -1,16 +1,16 @@ -package password_requests; +package password_requests; use warnings "all"; use strict; use Data::Dumper; -use Session::Token; +use Session::Token(); # table: calcms_password_requests require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get insert delete get_columns); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get insert delete get_columns); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); use mail; use uac; @@ -19,157 +19,159 @@ use auth; sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_password_requests'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_password_requests' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if (defined $condition->{user}){ - push @conditions, 'user=?'; + if ( defined $condition->{user} ) { + push @conditions, 'user=?'; push @bind_values, $condition->{user}; } - if (defined $condition->{token}){ - push @conditions, 'token=?'; + if ( defined $condition->{token} ) { + push @conditions, 'token=?'; push @bind_values, $condition->{token}; } - return undef if (scalar @conditions) == 0; + return undef if ( scalar @conditions ) == 0; - my $conditions=" where ".join(" and ",@conditions); - my $query=qq{ + my $conditions = " where " . join( " and ", @conditions ); + my $query = qq{ select * from calcms_password_requests $conditions }; + #print $query."\n".Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); + my $entries = db::get( $dbh, $query, \@bind_values ); return $entries->[0] || undef; } -sub update{ - my $config=shift; - my $entry=shift; +sub update { + my $config = shift; + my $entry = shift; return unless defined $entry->{user}; - my $dbh=db::connect($config); - my $values = join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values = map {$entry->{$_}} (keys %$entry); + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); push @bind_values, $entry->{token}; - my $query=qq{ + my $query = qq{ update calcms_password_requests set $values where token=? }; - print STDERR $query . Dumper(\@bind_values); - db::put($dbh, $query, \@bind_values); + print STDERR $query . Dumper( \@bind_values ); + db::put( $dbh, $query, \@bind_values ); } - -sub insert{ - my $config=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{user}; - my $dbh=db::connect($config); - print STDERR 'insert ' . Dumper($entry); - return db::insert($dbh, 'calcms_password_requests', $entry); + my $dbh = db::connect($config); + print STDERR 'insert ' . Dumper($entry); + return db::insert( $dbh, 'calcms_password_requests', $entry ); } -sub delete{ - my $config=shift; - my $condition=shift; - - my @conditions=(); - my @bind_values=(); +sub delete { + my $config = shift; + my $condition = shift; - if ((defined $condition->{user}) && ($condition->{user} ne '')){ - push @conditions, 'user=?'; + my @conditions = (); + my @bind_values = (); + + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; push @bind_values, $condition->{user}; } - if ((defined $condition->{token}) && ($condition->{token} ne '')){ - push @conditions, 'token=?'; + if ( ( defined $condition->{token} ) && ( $condition->{token} ne '' ) ) { + push @conditions, 'token=?'; push @bind_values, $condition->{token}; } - return if (scalar @conditions)==0; - my $conditions=" where ".join(" and ", @conditions); + return if ( scalar @conditions ) == 0; + my $conditions = " where " . join( " and ", @conditions ); - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $query=qq{ + my $query = qq{ delete from calcms_password_requests $conditions }; - print STDERR "$query " . Dumper(\@bind_values); - db::put($dbh, $query, \@bind_values); + print STDERR "$query " . Dumper( \@bind_values ); + db::put( $dbh, $query, \@bind_values ); } -sub sendToken{ - my $config=shift; - my $entry=shift; +sub sendToken { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{user}; - my $user = uac::get_user($config, $entry->{user}); - return undef unless defined $user; + my $user = uac::get_user( $config, $entry->{user} ); + return undef unless defined $user; - # check age of existing entry - my $oldEntry = password_requests::get($config, { user => $entry->{user} } ); - if (defined $oldEntry){ - my $createdAt = $oldEntry->{created_at}; - print STDERR Dumper($oldEntry); - print STDERR "createdAt=$createdAt\n"; - my $age = time() - time::datetime_to_time($createdAt); - if ($age < 60) { - print STDERR "too many requests"; - return undef; - } - print STDERR "age=$age\n"; - } - password_requests::delete($config, $entry); + # check age of existing entry + my $oldEntry = password_requests::get( $config, { user => $entry->{user} } ); + if ( defined $oldEntry ) { + my $createdAt = $oldEntry->{created_at}; + print STDERR Dumper($oldEntry); + print STDERR "createdAt=$createdAt\n"; + my $age = time() - time::datetime_to_time($createdAt); + if ( $age < 60 ) { + print STDERR "too many requests"; + return undef; + } + print STDERR "age=$age\n"; + } + password_requests::delete( $config, $entry ); - $entry->{max_attempts} = 0; - $entry->{token} = Session::Token->new->get; + $entry->{max_attempts} = 0; + $entry->{token} = Session::Token->new->get; - my $baseUrl = $config->{locations}->{source_base_url} . $config->{locations}->{editor_base_url}; - my $url = $baseUrl."/requestPassword.cgi?token=" . $entry->{token}; - my $content = "Hi,$user->{full_name}\n\n"; - $content .= "Someone just tried to reset your password for $baseUrl.\n\n"; - $content .= "If you like to set a new password, please follow the link below\n"; - $content .= $url."\n\n"; - $content .= "If you do not like to set a new password, please ignore this mail.\n"; + my $baseUrl = $config->{locations}->{source_base_url} . $config->{locations}->{editor_base_url}; + my $url = $baseUrl . "/requestPassword.cgi?token=" . $entry->{token}; + my $content = "Hi,$user->{full_name}\n\n"; + $content .= "Someone just tried to reset your password for $baseUrl.\n\n"; + $content .= "If you like to set a new password, please follow the link below\n"; + $content .= $url . "\n\n"; + $content .= "If you do not like to set a new password, please ignore this mail.\n"; - mail::send({ - "To" => $user->{email}, - "Subject" => "request to change password for $baseUrl", - "Data" => $content - }); + mail::send( + { + "To" => $user->{email}, + "Subject" => "request to change password for $baseUrl", + "Data" => $content + } + ); - password_requests::insert($config, $entry); + password_requests::insert( $config, $entry ); } sub changePassword { @@ -195,7 +197,7 @@ sub changePassword { } if ( $params->{user_password} ne $params->{user_password2} ) { - return { error => 'entered passwords do not match'}; + return { error => 'entered passwords do not match' }; } #print STDERR "error at changing password:" . Dumper($errors); @@ -207,11 +209,11 @@ sub changePassword { #print '

      '.Dumper($user).'
      '; $config->{access}->{write} = 1; - print STDERR "update user".Dumper($user); + print STDERR "update user" . Dumper($user); my $result = uac::update_user( $config, $user ); - print STDERR "result:".Dumper($result); + print STDERR "result:" . Dumper($result); $config->{access}->{write} = 0; - return { success => "password changed for $userName" }; + return { success => "password changed for $userName" }; } sub checkPassword { @@ -243,9 +245,8 @@ sub checkPassword { return 1; } - -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index 521ee7a..bdc53ba 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -1,95 +1,95 @@ #!/bin/perl - -package playout; + +package playout; use warnings "all"; use strict; use Data::Dumper; -use Date::Calc; -use db; -use time; -use series_events; +use Date::Calc(); +use db(); +use time(); +use series_events(); require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get sync); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get sync); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_playout'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_playout' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } -# get playout entries -sub get{ - my $config=shift; - my $condition=shift; +# get playout entries +sub get { + my $config = shift; + my $condition = shift; - return undef unless defined $condition->{studio_id}; + return undef unless defined $condition->{studio_id}; - my $date_range_include=0; - $date_range_include=1 if (defined $condition->{date_range_include}) && ($condition->{date_range_include}==1); + my $date_range_include = 0; + $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{start_at}) && ($condition->{start_at} ne '')){ - push @conditions, 'start=?'; + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'start=?'; push @bind_values, $condition->{start_at}; } - if ((defined $condition->{from}) && ($condition->{from} ne '')){ - if ($date_range_include==1){ - push @conditions, 'end_date>=?'; - push @bind_values, $condition->{from}; - }else{ - push @conditions, 'start_date>=?'; - push @bind_values, $condition->{from}; - } + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'end_date>=?'; + push @bind_values, $condition->{from}; + } else { + push @conditions, 'start_date>=?'; + push @bind_values, $condition->{from}; + } } - if ((defined $condition->{till}) && ($condition->{till} ne '')){ - if ($date_range_include==1){ - push @conditions, 'start_date<=?'; - push @bind_values, $condition->{till}; - }else{ - push @conditions, 'end_date<=?'; - push @bind_values, $condition->{till}; - } + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'start_date<=?'; + push @bind_values, $condition->{till}; + } else { + push @conditions, 'end_date<=?'; + push @bind_values, $condition->{till}; + } } - my $limit=''; - if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ - $limit= 'limit '.$condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); - - my $order='start'; - $order=$condition->{order} if (defined $condition->{order} ) && ($condition->{order} ne''); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $order = 'start'; + $order = $condition->{order} if ( defined $condition->{order} ) && ( $condition->{order} ne '' ); + + my $query = qq{ select date(start) start_date ,date(end) end_date ,dayname(start) weekday @@ -122,43 +122,42 @@ sub get{ $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); + my $entries = db::get( $dbh, $query, \@bind_values ); return $entries; } # update playout entries for a given date span # insert, update and delete entries -sub sync{ - my $config=shift; - my $options=shift; +sub sync { + my $config = shift; + my $options = shift; - #print STDERR Dumper($config); - print STDERR "upload ".Dumper($options); - return undef unless defined $options->{project_id} ; - return undef unless defined $options->{studio_id} ; - return undef unless defined $options->{from} ; - return undef unless defined $options->{till} ; - return undef unless defined $options->{events} ; + #print STDERR Dumper($config); + print STDERR "upload " . Dumper($options); + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{from}; + return undef unless defined $options->{till}; + return undef unless defined $options->{events}; - my $project_id = $options->{project_id}; - my $studio_id = $options->{studio_id}; - my $updates = $options->{events}; - #print STDERR "sync\n"; - #print STDERR Dumper($updates); - - # get new entries by date - my $update_by_date={}; - for my $entry (@$updates){ - $update_by_date->{$entry->{start}}=$entry; + my $project_id = $options->{project_id}; + my $studio_id = $options->{studio_id}; + my $updates = $options->{events}; + + #print STDERR "sync\n"; + #print STDERR Dumper($updates); + + # get new entries by date + my $update_by_date = {}; + for my $entry (@$updates) { + $update_by_date->{ $entry->{start} } = $entry; } - # get database entries - my $bind_values=[ - $options->{project_id}, $options->{studio_id}, $options->{from}, $options->{till} - ]; - - my $query=qq{ + # get database entries + my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{from}, $options->{till} ]; + + my $query = qq{ select * from calcms_playout where project_id=? @@ -168,110 +167,131 @@ sub sync{ order by start }; print STDERR "from:$options->{from} till:$options->{till}\n"; - my $dbh=db::connect($config); - my $entries=db::get($dbh, $query, $bind_values); - #print STDERR "entries:".Dumper($entries); + my $dbh = db::connect($config); + my $entries = db::get( $dbh, $query, $bind_values ); - # get database entries by date - my $entries_by_date={}; - for my $entry (@$entries){ - # store entry by date - my $start=$entry->{start}; - $entries_by_date->{$start}=$entry; + #print STDERR "entries:".Dumper($entries); - # remove outdated entries - unless (defined $update_by_date->{$start}){ - print STDERR "delete:".Dumper($entry); - playout::delete($config, $dbh, $entry); - my $result=series_events::set_playout_status($config, { - project_id => $project_id, - studio_id => $studio_id, - start => $entry->{start}, - playout => 0, - }); - print STDERR "delete playout_status result=".$result."\n"; - next; - } - # update existing entries - if (defined $update_by_date->{$start}){ - next if has_changed($entry, $update_by_date->{$start})==0; - print STDERR "update:".Dumper($entry); - playout::update($config, $dbh, $entry, $update_by_date->{$start}); - my $result=series_events::set_playout_status($config, { - project_id => $project_id, - studio_id => $studio_id, - start => $entry->{start}, - playout => 1, - }); - print STDERR "update playout_status result=".$result."\n"; - next; - } - } + # get database entries by date + my $entries_by_date = {}; + for my $entry (@$entries) { - # insert new entries - for my $entry (@$updates){ - my $start=$entry->{start}; - unless (defined $entries_by_date->{$start}){ - $entry->{project_id} = $project_id; - $entry->{studio_id} = $studio_id; - print STDERR "insert:".Dumper($entry); - playout::insert($config, $dbh, $entry); - my $result=series_events::set_playout_status($config, { - project_id => $project_id, - studio_id => $studio_id, - start => $entry->{start}, - playout => 1, - }); - print STDERR "insert playout_status result=".$result."\n"; - } + # store entry by date + my $start = $entry->{start}; + $entries_by_date->{$start} = $entry; + + # remove outdated entries + unless ( defined $update_by_date->{$start} ) { + print STDERR "delete:" . Dumper($entry); + playout::delete( $config, $dbh, $entry ); + my $result = series_events::set_playout_status( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + start => $entry->{start}, + playout => 0, + } + ); + print STDERR "delete playout_status result=" . $result . "\n"; + next; + } + + # update existing entries + if ( defined $update_by_date->{$start} ) { + next if has_changed( $entry, $update_by_date->{$start} ) == 0; + print STDERR "update:" . Dumper($entry); + playout::update( $config, $dbh, $entry, $update_by_date->{$start} ); + my $result = series_events::set_playout_status( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + start => $entry->{start}, + playout => 1, + } + ); + print STDERR "update playout_status result=" . $result . "\n"; + next; + } + } + + # insert new entries + for my $entry (@$updates) { + my $start = $entry->{start}; + unless ( defined $entries_by_date->{$start} ) { + $entry->{project_id} = $project_id; + $entry->{studio_id} = $studio_id; + print STDERR "insert:" . Dumper($entry); + playout::insert( $config, $dbh, $entry ); + my $result = series_events::set_playout_status( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + start => $entry->{start}, + playout => 1, + } + ); + print STDERR "insert playout_status result=" . $result . "\n"; + } } return 1; } -sub has_changed{ - my $oldEntry=shift; - my $newEntry=shift; +sub has_changed { + my $oldEntry = shift; + my $newEntry = shift; - my $update=0; - for my $key ('duration', 'errors', 'file', 'channels', 'format', 'format_version', 'format_profile', 'format_settings', 'stream_size', 'bitrate', 'bitrate_mode', 'sampling_rate', 'writing_library', 'modified_at'){ - return 1 if ($oldEntry->{$key}||'') ne ($newEntry->{$key}||''); - } - return 0; + my $update = 0; + for my $key ( + 'duration', 'errors', 'file', 'channels', 'format', 'format_version', + 'format_profile', 'format_settings', 'stream_size', 'bitrate', 'bitrate_mode', 'sampling_rate', + 'writing_library', 'modified_at' + ) + { + return 1 if ( $oldEntry->{$key} || '' ) ne ( $newEntry->{$key} || '' ); + } + return 0; } # update playout entry if differs to old values -sub update{ - my $config=shift; - my $dbh=shift; - my $oldEntry=shift; - my $newEntry=shift; - - return if has_changed($oldEntry, $newEntry)==0; - - for my $key ('duration', 'errors', 'file', 'channels', 'format', 'format_version', 'format_profile', 'format_settings', 'stream_size', 'bitrate', 'bitrate_mode', 'sampling_rate', 'writing_library', 'rms_left', 'rms_right', 'rms_image', 'replay_gain', 'modified_at'){ - if (($oldEntry->{$key}||'') ne ($newEntry->{$key}||'')){ - $oldEntry->{$key}=$newEntry->{$key}; - } - } +sub update { + my $config = shift; + my $dbh = shift; + my $oldEntry = shift; + my $newEntry = shift; - my $entry=$oldEntry; - print STDERR "update:".Dumper($entry); + return if has_changed( $oldEntry, $newEntry ) == 0; - my $day_start=$config->{date}->{day_starting_hour}; - $entry->{end} = playout::getEnd($entry->{start}, $entry->{duration}); - $entry->{start_date} = time::add_hours_to_datetime($entry->{start}, -$day_start); - $entry->{end_date} = time::add_hours_to_datetime($entry->{end}, -$day_start); + for my $key ( + 'duration', 'errors', 'file', 'channels', 'format', 'format_version', + 'format_profile', 'format_settings', 'stream_size', 'bitrate', 'bitrate_mode', 'sampling_rate', + 'writing_library', 'rms_left', 'rms_right', 'rms_image', 'replay_gain', 'modified_at' + ) + { + if ( ( $oldEntry->{$key} || '' ) ne ( $newEntry->{$key} || '' ) ) { + $oldEntry->{$key} = $newEntry->{$key}; + } + } - my $bind_values=[ - $entry->{end}, $entry->{duration}, $entry->{file}, $entry->{errors}, - $entry->{start_date}, $entry->{end_date}, - $entry->{channels}, $entry->{'format'}, $entry->{format_version}, $entry->{format_profile}, $entry->{format_settings}, $entry->{stream_size}, - $entry->{bitrate}, $entry->{bitrate_mode}, $entry->{sampling_rate}, $entry->{writing_library}, - $entry->{rms_left}, $entry->{rms_right}, $entry->{rms_image}, - $entry->{replay_gain}, $entry->{modified_at}, - $entry->{project_id}, $entry->{studio_id}, $entry->{start} - ]; - my $query=qq{ + my $entry = $oldEntry; + print STDERR "update:" . Dumper($entry); + + my $day_start = $config->{date}->{day_starting_hour}; + $entry->{end} = playout::getEnd( $entry->{start}, $entry->{duration} ); + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + + my $bind_values = [ + $entry->{end}, $entry->{duration}, $entry->{file}, $entry->{errors}, + $entry->{start_date}, $entry->{end_date}, $entry->{channels}, $entry->{'format'}, + $entry->{format_version}, $entry->{format_profile}, $entry->{format_settings}, $entry->{stream_size}, + $entry->{bitrate}, $entry->{bitrate_mode}, $entry->{sampling_rate}, $entry->{writing_library}, + $entry->{rms_left}, $entry->{rms_right}, $entry->{rms_image}, $entry->{replay_gain}, + $entry->{modified_at}, $entry->{project_id}, $entry->{studio_id}, $entry->{start} + ]; + my $query = qq{ update calcms_playout set end=?, duration=?, file=?, errors=?, start_date=?, end_date=?, @@ -281,14 +301,14 @@ sub update{ replay_gain=?, modified_at=? where project_id=? and studio_id=? and start=? }; - return db::put($dbh, $query, $bind_values); + return db::put( $dbh, $query, $bind_values ); } # insert playout entry -sub insert{ - my $config=shift; - my $dbh=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $dbh = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; @@ -296,77 +316,84 @@ sub insert{ return undef unless defined $entry->{duration}; return undef unless defined $entry->{file}; - my $day_start=$config->{date}->{day_starting_hour}; - $entry->{end} = playout::getEnd($entry->{start}, $entry->{duration}); - $entry->{start_date} = time::add_hours_to_datetime($entry->{start}, -$day_start); - $entry->{end_date} = time::add_hours_to_datetime($entry->{end}, -$day_start); - - return db::insert($dbh, 'calcms_playout', { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - start => $entry->{start}, - end => $entry->{end}, - start_date => $entry->{start_date}, - end_date => $entry->{end_date}, - duration => $entry->{duration}, - rms_left => $entry->{rms_left}, - rms_right => $entry->{rms_right}, - rms_image => $entry->{rms_image}, - replay_gain => $entry->{replay_gain}, - file => $entry->{file}, - errors => $entry->{errors}, - channels => $entry->{channels}, - "format" => $entry->{"format"}, - format_version => $entry->{format_version}, - format_profile => $entry->{format_profile}, - format_settings => $entry->{format_settings}, - stream_size => $entry->{stream_size}, - bitrate => $entry->{bitrate}, - bitrate_mode => $entry->{bitrate_mode}, - sampling_rate => $entry->{sampling_rate}, - writing_library => $entry->{writing_library}, - modified_at => $entry->{modified_at} - }); + my $day_start = $config->{date}->{day_starting_hour}; + $entry->{end} = playout::getEnd( $entry->{start}, $entry->{duration} ); + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + + return db::insert( + $dbh, + 'calcms_playout', + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + start => $entry->{start}, + end => $entry->{end}, + start_date => $entry->{start_date}, + end_date => $entry->{end_date}, + duration => $entry->{duration}, + rms_left => $entry->{rms_left}, + rms_right => $entry->{rms_right}, + rms_image => $entry->{rms_image}, + replay_gain => $entry->{replay_gain}, + file => $entry->{file}, + errors => $entry->{errors}, + channels => $entry->{channels}, + "format" => $entry->{"format"}, + format_version => $entry->{format_version}, + format_profile => $entry->{format_profile}, + format_settings => $entry->{format_settings}, + stream_size => $entry->{stream_size}, + bitrate => $entry->{bitrate}, + bitrate_mode => $entry->{bitrate_mode}, + sampling_rate => $entry->{sampling_rate}, + writing_library => $entry->{writing_library}, + modified_at => $entry->{modified_at} + } + ); } # delete playout entry -sub delete{ - my $config=shift; - my $dbh=shift; - my $entry=shift; - +sub delete { + my $config = shift; + my $dbh = shift; + my $entry = shift; + return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{start}; - my $query=qq{ + my $query = qq{ delete from calcms_playout where project_id=? and studio_id=? and start=? }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{start}]; - return db::put($dbh, $query, $bind_values); + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{start} ]; + return db::put( $dbh, $query, $bind_values ); } -sub getEnd{ - my $start=shift; - my $duration=shift; - # calculate end from start + duration - my @start = @{time::datetime_to_array($start)}; - next unless @start>=6; - #print STDERR Dumper(\@start); +sub getEnd { + my $start = shift; + my $duration = shift; + + # calculate end from start + duration + my @start = @{ time::datetime_to_array($start) }; + next unless @start >= 6; + + #print STDERR Dumper(\@start); my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, 0, int($duration) # delta days, hours, minutes, seconds + $start[0], $start[1], $start[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, 0, int($duration) # delta days, hours, minutes, seconds ); - #print STDERR Dumper(\@end_datetime); - return time::array_to_datetime(\@end_datetime); + + #print STDERR Dumper(\@end_datetime); + return time::array_to_datetime( \@end_datetime ); } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index 777eb06..8ba35c2 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -1,6 +1,6 @@ #!/bin/perl - -package project; + +package project; use warnings "all"; use strict; @@ -8,487 +8,491 @@ use strict; use Data::Dumper; use Date::Calc; -use config; -use log; -use template; -use images; +use config(); +use log(); +use template(); +use images(); require Exporter; -our @ISA = qw(Exporter); +our @ISA = qw(Exporter); our @EXPORT_OK = qw( - check get_columns get insert delete get_date_range - get_studios assign_studio unassign_studio is_studio_assigned get_studio_assignments - get_series_ids assign_series unassign_series is_series_assigned get_series_assignments - get_with_dates get_sorted + check get_columns get insert delete get_date_range + get_studios assign_studio unassign_studio is_studio_assigned get_studio_assignments + get_series_ids assign_series unassign_series is_series_assigned get_series_assignments + get_with_dates get_sorted ); + #TODO: globally replace get_studios by get_studio_assignments -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; # get project columns -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_projects'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_projects' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } # get projects -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{name}) && ($condition->{name} ne '')){ - push @conditions, 'name=?'; + if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { + push @conditions, 'name=?'; push @bind_values, $condition->{name}; } - my $limit=''; - if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ - $limit= 'limit '.$condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_projects $conditions order by start_date $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $projects=db::get($dbh, $query, \@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); + + my $projects = db::get( $dbh, $query, \@bind_values ); return $projects; } # requires at least project_id -sub getImageById{ +sub getImageById { my $config = shift; - my $conditions = shift; - - return undef unless defined $conditions->{project_id}; - my $projects=project::get($config, $conditions); - return undef if scalar(@$projects) != 1; - return $projects->[0]->{image}; + my $conditions = shift; + + return undef unless defined $conditions->{project_id}; + my $projects = project::get( $config, $conditions ); + return undef if scalar(@$projects) != 1; + return $projects->[0]->{image}; } -sub get_date_range{ - my $config=shift; - my $query=qq{ +sub get_date_range { + my $config = shift; + my $query = qq{ select min(start_date) start_date, max(end_date) end_date from calcms_projects }; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $projects=db::get($dbh, $query); + my $projects = db::get( $dbh, $query ); return $projects->[0]; } # insert project -sub insert{ - my $config=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $entry = shift; - my $columns=get_columns($config); - my $project={}; - for my $column (keys %$columns){ - $project->{$column} = $entry->{$column} if defined $entry->{$column}; - } + my $columns = get_columns($config); + my $project = {}; + for my $column ( keys %$columns ) { + $project->{$column} = $entry->{$column} if defined $entry->{$column}; + } - $project->{image} = images::normalizeName( $project->{image} ) if defined $project->{image}; + $project->{image} = images::normalizeName( $project->{image} ) if defined $project->{image}; - my $dbh=db::connect($config); - my $id=db::insert($dbh, 'calcms_projects', $project); - return $id; + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_projects', $project ); + return $id; } # update project -sub update{ - my $config=shift; - my $project=shift; +sub update { + my $config = shift; + my $project = shift; - my $columns=project::get_columns($config); - my $entry={}; - for my $column (keys %$columns){ - $entry->{$column}=$project->{$column} if defined $project->{$column}; - } + my $columns = project::get_columns($config); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $project->{$column} if defined $project->{$column}; + } - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); - push @bind_values,$entry->{project_id}; + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{project_id}; - my $query=qq{ + my $query = qq{ update calcms_projects set $values where project_id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $dbh=db::connect($config); - db::put($dbh, $query, \@bind_values); + + #print STDERR Dumper($query).Dumper(\@bind_values); + my $dbh = db::connect($config); + db::put( $dbh, $query, \@bind_values ); } # delete project -sub delete{ - my $config=shift; - my $entry=shift; - - my $dbh=db::connect($config); - db::put($dbh, 'delete from calcms_projects where project_id=?', [$entry->{project_id}]); +sub delete { + my $config = shift; + my $entry = shift; + + my $dbh = db::connect($config); + db::put( $dbh, 'delete from calcms_projects where project_id=?', [ $entry->{project_id} ] ); } - # get studios of a project -sub get_studios{ - my $config=shift; - my $options=shift; - - return undef unless defined $options->{project_id}; - my $project_id=$options->{project_id}; +sub get_studios { + my $config = shift; + my $options = shift; - my $query=qq{ + return undef unless defined $options->{project_id}; + my $project_id = $options->{project_id}; + + my $query = qq{ select * from calcms_project_studios where project_id=? }; - my $dbh=db::connect($config); - my $project_studios=db::get($dbh,$query,[$project_id]); + my $dbh = db::connect($config); + my $project_studios = db::get( $dbh, $query, [$project_id] ); return $project_studios; } -sub get_studio_assignments{ - my $config=shift; - my $options=shift; +sub get_studio_assignments { + my $config = shift; + my $options = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $options->{project_id}) && ($options->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $options->{project_id}; } - if ((defined $options->{studio_id}) && ($options->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $options->{studio_id}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_project_studios $conditions }; - my $dbh=db::connect($config); - my $results=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, \@bind_values ); return $results; } # is studio assigned to project -sub is_studio_assigned{ - my $config=shift; - my $entry=shift; +sub is_studio_assigned { + my $config = shift; + my $entry = shift; return 0 unless defined $entry->{project_id}; return 0 unless defined $entry->{studio_id}; - my $project_id=$entry->{project_id}; - my $studio_id= $entry->{studio_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; - my $query=qq{ + my $query = qq{ select * from calcms_project_studios where project_id=? and studio_id=? }; - my $bind_values=[$project_id, $studio_id]; + my $bind_values = [ $project_id, $studio_id ]; - my $dbh=db::connect($config); - my $project_studios=db::get($dbh, $query, $bind_values); - return 1 if @$project_studios==1; + my $dbh = db::connect($config); + my $project_studios = db::get( $dbh, $query, $bind_values ); + return 1 if @$project_studios == 1; return 0; } # assign studio to project -sub assign_studio{ - my $config=shift; - my $entry=shift; +sub assign_studio { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; - my $project_id=$entry->{project_id}; - my $studio_id= $entry->{studio_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; - if (is_studio_assigned($entry)){ - print STDERR "studio $entry->{studio_id} already assigned to project $entry->{project_id}\n"; - return 1; - } - my $dbh=db::connect($config); - my $id=db::insert($dbh, 'calcms_project_studios', $entry); - return $id; + if ( is_studio_assigned($entry) ) { + print STDERR "studio $entry->{studio_id} already assigned to project $entry->{project_id}\n"; + return 1; + } + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_project_studios', $entry ); + return $id; } # unassign studio from project -sub unassign_studio{ - my $config=shift; - my $entry=shift; - +sub unassign_studio { + my $config = shift; + my $entry = shift; + return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; - my $project_id=$entry->{project_id}; - my $studio_id= $entry->{studio_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; - my $sql='delete from calcms_project_studios where project_id=? and studio_id=?'; - my $bind_values=[$project_id, $studio_id]; - my $dbh=db::connect($config); - return db::put($dbh, $sql, $bind_values); + my $sql = 'delete from calcms_project_studios where project_id=? and studio_id=?'; + my $bind_values = [ $project_id, $studio_id ]; + my $dbh = db::connect($config); + return db::put( $dbh, $sql, $bind_values ); } # get series by project and studio -sub get_series{ - my $config=shift; - my $options=shift; - +sub get_series { + my $config = shift; + my $options = shift; + return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; - my $project_id=$options->{project_id}; - my $studio_id= $options->{studio_id}; + my $project_id = $options->{project_id}; + my $studio_id = $options->{studio_id}; - my $query=qq{ + my $query = qq{ select * from calcms_project_series where project_id=? and studio_id=? }; - my $bind_values=[$project_id, $studio_id]; - my $dbh=db::connect($config); - my $project_series=db::get($dbh, $query, $bind_values); + my $bind_values = [ $project_id, $studio_id ]; + my $dbh = db::connect($config); + my $project_series = db::get( $dbh, $query, $bind_values ); return $project_series; } -sub get_series_assignments{ - my $config=shift; - my $options=shift; +sub get_series_assignments { + my $config = shift; + my $options = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $options->{project_id}) && ($options->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $options->{project_id}; } - if ((defined $options->{studio_id}) && ($options->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $options->{studio_id}; } - if ((defined $options->{series_id}) && ($options->{series_id} ne '')){ - push @conditions, 'series_id=?'; + if ( ( defined $options->{series_id} ) && ( $options->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; push @bind_values, $options->{series_id}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_project_series $conditions }; - my $dbh=db::connect($config); - my $results=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, \@bind_values ); return $results; } # is series assigned to project and studio -sub is_series_assigned{ - my $config=shift; - my $entry=shift; +sub is_series_assigned { + my $config = shift; + my $entry = shift; return 0 unless defined $entry->{project_id}; return 0 unless defined $entry->{studio_id}; return 0 unless defined $entry->{series_id}; - my $project_id=$entry->{project_id}; - my $studio_id= $entry->{studio_id}; - my $series_id= $entry->{series_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; + my $series_id = $entry->{series_id}; - my $query=qq{ + my $query = qq{ select * from calcms_project_series where project_id=? and studio_id=? and series_id=? }; - my $bind_values=[$project_id, $studio_id, $series_id]; + my $bind_values = [ $project_id, $studio_id, $series_id ]; - my $dbh=db::connect($config); - my $project_series=db::get($dbh,$query, $bind_values); - return 1 if @$project_series==1; + my $dbh = db::connect($config); + my $project_series = db::get( $dbh, $query, $bind_values ); + return 1 if @$project_series == 1; return 0; } # assign series to project and studio -sub assign_series{ - my $config=shift; - my $entry=shift; +sub assign_series { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{series_id}; - my $project_id=$entry->{project_id}; - my $studio_id= $entry->{studio_id}; - my $series_id= $entry->{series_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; + my $series_id = $entry->{series_id}; - if (is_series_assigned($entry)){ - print STDERR "series $series_id already assigned to project $project_id and studio $studio_id\n"; - return return undef; - } - my $dbh=db::connect($config); - my $id=db::insert($dbh, 'calcms_project_series', $entry); + if ( is_series_assigned($entry) ) { + print STDERR "series $series_id already assigned to project $project_id and studio $studio_id\n"; + return return undef; + } + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_project_series', $entry ); print STDERR "assigned series $series_id to project $project_id and studio $studio_id\n"; - return $id; + return $id; } # unassign series from project # TODO: remove series _single_ if no event is assigned to -sub unassign_series{ - my $config=shift; - my $entry=shift; - +sub unassign_series { + my $config = shift; + my $entry = shift; + return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{series_id}; - my $project_id=$entry->{project_id}; - my $studio_id= $entry->{studio_id}; - my $series_id= $entry->{series_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; + my $series_id = $entry->{series_id}; - my $sql='delete from calcms_project_series where project_id=? and studio_id=? and series_id=?'; - my $bind_values=[$project_id, $studio_id, $series_id]; - my $dbh=db::connect($config); - return db::put($dbh, $sql, $bind_values); + my $sql = 'delete from calcms_project_series where project_id=? and studio_id=? and series_id=?'; + my $bind_values = [ $project_id, $studio_id, $series_id ]; + my $dbh = db::connect($config); + return db::put( $dbh, $sql, $bind_values ); } -sub get_with_dates{ - my $config=shift; - my $options=shift; +sub get_with_dates { + my $config = shift; + my $options = shift; - my $language = $config->{date}->{language} || 'en'; - my $projects=project::get($config, {}); + my $language = $config->{date}->{language} || 'en'; + my $projects = project::get( $config, {} ); - foreach my $project (reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects) ){ - $project->{months} = get_months($config, $project, $language); - $project->{user} = $ENV{REMOTE_USER}; - $project->{current} = 1 if ($project->{name} eq $config::config->{project}); - } + foreach my $project ( reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects) ) { + $project->{months} = get_months( $config, $project, $language ); + $project->{user} = $ENV{REMOTE_USER}; + $project->{current} = 1 if ( $project->{name} eq $config::config->{project} ); + } - return $projects; + return $projects; } #TODO: add config -sub get_sorted{ - my $config=shift; - my $projects=project::get($config, {}); - my @projects=reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects); +sub get_sorted { + my $config = shift; + my $projects = project::get( $config, {} ); + my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects); - unshift @projects,{ - name => 'all', - title => 'alle', - priority => '0', - start_date => $projects[-1]->{start_date}, - end_date => $projects[0]->{end_date}, - }; - return \@projects; + unshift @projects, + { + name => 'all', + title => 'alle', + priority => '0', + start_date => $projects[-1]->{start_date}, + end_date => $projects[0]->{end_date}, + }; + return \@projects; } # internal -sub get_months{ - my $config=shift; - my $project = shift; - my $language = shift || $config->{date}->{language} || 'en'; +sub get_months { + my $config = shift; + my $project = shift; + my $language = shift || $config->{date}->{language} || 'en'; - my $start = $project->{start_date}; - my $end = $project->{end_date}; + my $start = $project->{start_date}; + my $end = $project->{end_date}; - (my $start_year,my $start_month,my $start_day)=split(/\-/,$start); - my $last_day = Date::Calc::Days_in_Month($start_year,$start_month); - $start_day = 1 if ($start_day<1); - $start_day = $last_day if ($start_day gt $last_day); + ( my $start_year, my $start_month, my $start_day ) = split( /\-/, $start ); + my $last_day = Date::Calc::Days_in_Month( $start_year, $start_month ); + $start_day = 1 if ( $start_day < 1 ); + $start_day = $last_day if ( $start_day gt $last_day ); - (my $end_year,my $end_month,my $end_day)=split(/\-/,$end); - $last_day = Date::Calc::Days_in_Month($end_year,$end_month); - $end_day = 1 if ($end_day<1); - $end_day = $last_day if ($end_day gt $last_day); + ( my $end_year, my $end_month, my $end_day ) = split( /\-/, $end ); + $last_day = Date::Calc::Days_in_Month( $end_year, $end_month ); + $end_day = 1 if ( $end_day < 1 ); + $end_day = $last_day if ( $end_day gt $last_day ); - my @months=(); - for my $year($start_year..$end_year){ - my $m1=1; - my $m2=12; - $m1=$start_month if $year eq $start_year; - $m2=$end_month if $year eq $end_year; + my @months = (); + for my $year ( $start_year .. $end_year ) { + my $m1 = 1; + my $m2 = 12; + $m1 = $start_month if $year eq $start_year; + $m2 = $end_month if $year eq $end_year; - for my $month($m1..$m2){ - my $d1=1; - my $d2=Date::Calc::Days_in_Month($year,$month); - $d1=$start_day if $month eq $start_month; - $d2=$end_day if $month eq $end_month; - push @months,{ - start => time::array_to_date($year,$month,$d1), - end => time::array_to_date($year,$month,$d2), - year => $year, - month => $month, - month_name => $time::names->{$language}->{months_abbr}->[$month-1], - title => $project->{title}, - user => $ENV{REMOTE_USER} - }; - } - } - @months=reverse @months; - return \@months; + for my $month ( $m1 .. $m2 ) { + my $d1 = 1; + my $d2 = Date::Calc::Days_in_Month( $year, $month ); + $d1 = $start_day if $month eq $start_month; + $d2 = $end_day if $month eq $end_month; + push @months, + { + start => time::array_to_date( $year, $month, $d1 ), + end => time::array_to_date( $year, $month, $d2 ), + year => $year, + month => $month, + month_name => $time::names->{$language}->{months_abbr}->[ $month - 1 ], + title => $project->{title}, + user => $ENV{REMOTE_USER} + }; + } + } + @months = reverse @months; + return \@months; } # check project_id -sub check{ - my $config=shift; - my $options=shift; - return "missing project_id at checking project" unless defined $options->{project_id}; - return "Please select a project" if($options->{project_id}eq'-1'); - return "Please select a project" if($options->{project_id}eq''); - my $projects=project::get($config, { project_id=>$options->{project_id} } ); - return "Sorry. unknown project" unless defined $projects; - return 1; +sub check { + my $config = shift; + my $options = shift; + return "missing project_id at checking project" unless defined $options->{project_id}; + return "Please select a project" if ( $options->{project_id} eq '-1' ); + return "Please select a project" if ( $options->{project_id} eq '' ); + my $projects = project::get( $config, { project_id => $options->{project_id} } ); + return "Sorry. unknown project" unless defined $projects; + return 1; } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/projects.pm b/lib/calcms/projects.pm index 6630b3e..4c94729 100644 --- a/lib/calcms/projects.pm +++ b/lib/calcms/projects.pm @@ -4,5 +4,6 @@ use strict; package projects; print STDERR "projects.pm is not used anymore!\n"; + #do not delete last line! 1; diff --git a/lib/calcms/roles.pm b/lib/calcms/roles.pm index 2ee7a48..6a78471 100644 --- a/lib/calcms/roles.pm +++ b/lib/calcms/roles.pm @@ -1,145 +1,145 @@ package roles; -use Apache2::Reload; +use Apache2::Reload(); require Exporter; -my @ISA = qw(Exporter); -my @EXPORT_OK = qw($roles get_user get_user_permissions get_template_parameters); -my %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +my @ISA = qw(Exporter); +my @EXPORT_OK = qw($roles get_user get_user_permissions get_template_parameters); +my %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); -our $roles={ +our $roles = { 'admin' => { - access_events => 1, - access_images => 1, - access_comments => 1, - access_sync => 1, - access_system => 1, - read_event_all => 1, - create_event => 1, - delete_event => 1, - update_comment => 1, - create_image => 1, - read_image_own => 1, - read_image_all => 1, - update_image_own => 1, - update_image_all => 1, - delete_image_own => 1, - delete_image_all => 1, - sync_own => 1, - sync_all => 1, - sync_select_range => 1, - upload_playlist => 1, + access_events => 1, + access_images => 1, + access_comments => 1, + access_sync => 1, + access_system => 1, + read_event_all => 1, + create_event => 1, + delete_event => 1, + update_comment => 1, + create_image => 1, + read_image_own => 1, + read_image_all => 1, + update_image_own => 1, + update_image_all => 1, + delete_image_own => 1, + delete_image_all => 1, + sync_own => 1, + sync_all => 1, + sync_select_range => 1, + upload_playlist => 1, }, 'dev' => { - access_events => 1, - access_images => 1, - access_comments => 1, - access_sync => 1, - access_system => 0, - read_event_all => 1, - create_event => 1, - delete_event => 1, - update_comment => 1, - create_image => 1, - read_image_own => 1, - read_image_all => 1, - update_image_own => 1, - update_image_all => 1, - delete_image_own => 1, - delete_image_all => 1, - sync_own => 0, - sync_all => 1, - sync_select_range => 1, - upload_playlist => 1, + access_events => 1, + access_images => 1, + access_comments => 1, + access_sync => 1, + access_system => 0, + read_event_all => 1, + create_event => 1, + delete_event => 1, + update_comment => 1, + create_image => 1, + read_image_own => 1, + read_image_all => 1, + update_image_own => 1, + update_image_all => 1, + delete_image_own => 1, + delete_image_all => 1, + sync_own => 0, + sync_all => 1, + sync_select_range => 1, + upload_playlist => 1, }, 'editor' => { - access_events => 1, - access_images => 1, - access_comments => 1, - access_sync => 1, - access_system => 0, - read_event_all => 0, - create_event => 1, - delete_event => 0, - update_comment => 0, - create_image => 1, - read_image_own => 1, - read_image_all => 1, - update_image_own => 1, - update_image_all => 0, - delete_image_own => 1, - delete_image_all => 0, - sync_own => 1, - sync_all => 0, - sync_select_range => 0, - upload_playlist => 1, + access_events => 1, + access_images => 1, + access_comments => 1, + access_sync => 1, + access_system => 0, + read_event_all => 0, + create_event => 1, + delete_event => 0, + update_comment => 0, + create_image => 1, + read_image_own => 1, + read_image_all => 1, + update_image_own => 1, + update_image_all => 0, + delete_image_own => 1, + delete_image_all => 0, + sync_own => 1, + sync_all => 0, + sync_select_range => 0, + upload_playlist => 1, }, 'nobody' => { - access_events => 0, - access_images => 0, - access_comments => 0, - access_sync => 0, - access_system => 0, - read_event_all => 0, - create_event => 0, - delete_event => 0, - update_comment => 0, - create_image => 0, - read_image_own => 0, - read_image_all => 0, - update_image_own => 0, - update_image_all => 0, - delete_image_own => 0, - delete_image_all => 0, - sync_own => 0, - sync_all => 0, - sync_select_range => 0, - upload_playlist => 0, + access_events => 0, + access_images => 0, + access_comments => 0, + access_sync => 0, + access_system => 0, + read_event_all => 0, + create_event => 0, + delete_event => 0, + update_comment => 0, + create_image => 0, + read_image_own => 0, + read_image_all => 0, + update_image_own => 0, + update_image_all => 0, + delete_image_own => 0, + delete_image_all => 0, + sync_own => 0, + sync_all => 0, + sync_select_range => 0, + upload_playlist => 0, } }; -sub get_user{ - my $user= $ENV{REMOTE_USER}; - my $users=$config::config->{users}; - return $user if (defined $users->{$user}); +sub get_user { + my $user = $ENV{REMOTE_USER}; + my $users = $config::config->{users}; + return $user if ( defined $users->{$user} ); return 'nobody'; } -sub get_user_permissions{ - my $user= $ENV{REMOTE_USER}||''; - return $roles::roles->{nobody} unless ($user=~/\S/); - my $users=$config::config->{users}; - if (defined $users->{$user}){ - my $role=$users->{$user}; - if (defined $roles::roles->{$role}){ +sub get_user_permissions { + my $user = $ENV{REMOTE_USER} || ''; + return $roles::roles->{nobody} unless ( $user =~ /\S/ ); + my $users = $config::config->{users}; + if ( defined $users->{$user} ) { + my $role = $users->{$user}; + if ( defined $roles::roles->{$role} ) { return $roles::roles->{$role}; } } return $roles::roles->{nobody}; } -sub get_user_jobs{ - my $user= $ENV{REMOTE_USER}||''; - return [] unless($user =~/\S/); - my $result=[]; - my $jobs=$config::config->{jobs}->{job}; - - for my $job (@$jobs){ - for my $job_user (split /\,/,$job->{users}){ - push @$result,$job if ($user eq $job_user); +sub get_user_jobs { + my $user = $ENV{REMOTE_USER} || ''; + return [] unless ( $user =~ /\S/ ); + my $result = []; + my $jobs = $config::config->{jobs}->{job}; + + for my $job (@$jobs) { + for my $job_user ( split /\,/, $job->{users} ) { + push @$result, $job if ( $user eq $job_user ); } } return $result; } -sub get_jobs{ +sub get_jobs { return $config::config->{jobs}->{job}; } -sub get_template_parameters{ - my $user_permissions=shift; - $user_permissions=roles::get_user_permissions() unless(defined $user_permissions); - my @user_permissions=(); - for my $usecase (keys %$user_permissions){ - push @user_permissions, $usecase if ($user_permissions->{$usecase}eq'1'); +sub get_template_parameters { + my $user_permissions = shift; + $user_permissions = roles::get_user_permissions() unless ( defined $user_permissions ); + my @user_permissions = (); + for my $usecase ( keys %$user_permissions ) { + push @user_permissions, $usecase if ( $user_permissions->{$usecase} eq '1' ); } return \@user_permissions; } diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 38eea9c..316b81e 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -1,29 +1,28 @@ -package series; +package series; use warnings "all"; use strict; use Data::Dumper; -use events; -use images; - +use events(); +use images(); require Exporter; -our @ISA = qw(Exporter); +our @ISA = qw(Exporter); our @EXPORT_OK = qw( - get_columns get insert update delete - get_users add_user remove_user - get_events get_event get_next_episode search_events - get_event_age is_event_older_than_days - get_images - assign_event unassign_event - add_series_ids_to_events set_event_ids - can_user_update_events can_user_create_events - is_series_assigned_to_user is_event_assigned_to_user - update_recurring_events update_recurring_event + get_columns get insert update delete + get_users add_user remove_user + get_events get_event get_next_episode search_events + get_event_age is_event_older_than_days + get_images + assign_event unassign_event + add_series_ids_to_events set_event_ids + can_user_update_events can_user_create_events + is_series_assigned_to_user is_event_assigned_to_user + update_recurring_events update_recurring_event ); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); #TODO: remove studio_id #TODO: get project_id, studio_id by join with project_series @@ -31,310 +30,327 @@ our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); sub debug; # get series columns -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_series'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_series' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } # get series content -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{series_name}) && ($condition->{series_name} ne '')){ - push @conditions, 'series_name=?'; + if ( ( defined $condition->{series_name} ) && ( $condition->{series_name} ne '' ) ) { + push @conditions, 'series_name=?'; push @bind_values, $condition->{series_name}; } - if ((defined $condition->{title}) && ($condition->{title} ne '')){ - push @conditions, 'title=?'; + if ( ( defined $condition->{title} ) && ( $condition->{title} ne '' ) ) { + push @conditions, 'title=?'; push @bind_values, $condition->{title}; } - if ((defined $condition->{has_single_events}) && ($condition->{has_single_events} ne '')){ - push @conditions, 'has_single_events=?'; + if ( ( defined $condition->{has_single_events} ) && ( $condition->{has_single_events} ne '' ) ) { + push @conditions, 'has_single_events=?'; push @bind_values, $condition->{has_single_events}; } - my $search_cond=''; - if ((defined $condition->{search}) && ($condition->{search} ne'')){ - my $search=lc $condition->{search}; - $search=~s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; - $search=~s/\%+/\%/; - $search=~s/^[\%\s]+//; - $search=~s/[\%\s]+$//; - if ($search ne ''){ - $search='%'.$search.'%'; - my @attr=('title', 'series_name', 'excerpt', 'category', 'content'); - push @conditions, "(".join(" or ", map {'lower('.$_.') like ?'} @attr ).")"; - for my $attr (@attr){ - push @bind_values,$search; + my $search_cond = ''; + if ( ( defined $condition->{search} ) && ( $condition->{search} ne '' ) ) { + my $search = lc $condition->{search}; + $search =~ s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; + $search =~ s/\%+/\%/; + $search =~ s/^[\%\s]+//; + $search =~ s/[\%\s]+$//; + if ( $search ne '' ) { + $search = '%' . $search . '%'; + my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content' ); + push @conditions, "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + for my $attr (@attr) { + push @bind_values, $search; } } } - my $query=''; - my $conditions=''; - - if ((defined $condition->{project_id}) || (defined $condition->{studio_id})){ - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'ps.project_id=?'; - push @bind_values, $condition->{project_id}; - } + my $query = ''; + my $conditions = ''; - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'ps.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } - push @conditions, 'ps.series_id=s.id'; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); - $query=qq{ + if ( ( defined $condition->{project_id} ) || ( defined $condition->{studio_id} ) ) { + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ps.project_id=?'; + push @bind_values, $condition->{project_id}; + } + + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ps.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } + push @conditions, 'ps.series_id=s.id'; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $query = qq{ select * from calcms_series s, calcms_project_series ps $conditions order by has_single_events desc, series_name, title }; - }else{ - # simple query - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); - $query=qq{ + } else { + + # simple query + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $query = qq{ select * from calcms_series $conditions order by has_single_events desc, series_name, title }; - } + } - my $dbh=db::connect($config); - my $series=db::get($dbh, $query, \@bind_values); - #print STDERR Dumper(time()); - for my $serie (@$series){ - $serie->{series_id}=$serie->{id}; + my $dbh = db::connect($config); + my $series = db::get( $dbh, $query, \@bind_values ); + + #print STDERR Dumper(time()); + for my $serie (@$series) { + $serie->{series_id} = $serie->{id}; delete $serie->{id}; } + #print STDERR Dumper($series); return $series; } # insert series -sub insert{ - my $config=shift; - my $series=shift; +sub insert { + my $config = shift; + my $series = shift; - #print STDERR Dumper($series); + #print STDERR Dumper($series); return undef unless defined $series->{project_id}; return undef unless defined $series->{studio_id}; - my $project_id = $series->{project_id}; - my $studio_id = $series->{studio_id}; + my $project_id = $series->{project_id}; + my $studio_id = $series->{studio_id}; - my $columns=series::get_columns($config); + my $columns = series::get_columns($config); - my $entry={}; - for my $column (keys %$columns){ - $entry->{$column} = $series->{$column} if defined $series->{$column}; - } - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $series->{$column} if defined $series->{$column}; + } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - $entry->{created_at} = time::time_to_datetime(time()); - $entry->{modified_at}= time::time_to_datetime(time()); - #print STDERR Dumper($entry); + $entry->{created_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); + + #print STDERR Dumper($entry); + + my $dbh = db::connect($config); + my $series_id = db::insert( $dbh, 'calcms_series', $entry ); - my $dbh=db::connect($config); - my $series_id=db::insert($dbh, 'calcms_series', $entry); - return undef unless defined $series_id; - - my $result=project::assign_series($config, { - project_id => $project_id, - studio_id => $studio_id, - series_id => $series_id - }); - return undef unless defined $result; - return $series_id; + + my $result = project::assign_series( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + } + ); + return undef unless defined $result; + return $series_id; } # update series -sub update{ - my $config=shift; - my $series=shift; +sub update { + my $config = shift; + my $series = shift; return undef unless defined $series->{project_id}; return undef unless defined $series->{studio_id}; return undef unless defined $series->{series_id}; - my $columns=series::get_columns($config); + my $columns = series::get_columns($config); - my $entry={}; - for my $column (keys %$columns){ - $entry->{$column}=$series->{$column} if defined $series->{$column}; - } - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - $entry->{id} = $series->{series_id}; - $entry->{modified_at}= time::time_to_datetime(time()); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $series->{$column} if defined $series->{$column}; + } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + $entry->{id} = $series->{series_id}; + $entry->{modified_at} = time::time_to_datetime( time() ); - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); push @bind_values, $entry->{id}; - my $query=qq{ + my $query = qq{ update calcms_series set $values where id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $dbh=db::connect($config); - return db::put($dbh, $query, \@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); + + my $dbh = db::connect($config); + return db::put( $dbh, $query, \@bind_values ); } # delete series, its schedules and series dates # unassign its users and events -sub delete{ - my $config=shift; - my $series=shift; - +sub delete { + my $config = shift; + my $series = shift; + return undef unless defined $series->{project_id}; return undef unless defined $series->{studio_id}; return undef unless defined $series->{series_id}; - my $project_id = $series->{project_id}; - my $studio_id = $series->{studio_id}; - my $series_id = $series->{series_id}; + my $project_id = $series->{project_id}; + my $studio_id = $series->{studio_id}; + my $series_id = $series->{series_id}; - unless(project::is_series_assigned($config, $series)==1){ - print STDERR "series is not assigned to project $project_id and studio $studio_id\n"; - return undef; - }; + unless ( project::is_series_assigned( $config, $series ) == 1 ) { + print STDERR "series is not assigned to project $project_id and studio $studio_id\n"; + return undef; + } - my $query = undef; - my $bind_values = undef; - my $dbh=db::connect($config); + my $query = undef; + my $bind_values = undef; + my $dbh = db::connect($config); - $bind_values=[$project_id, $studio_id, $series_id]; - #delete schedules - $query=qq{ + $bind_values = [ $project_id, $studio_id, $series_id ]; + + #delete schedules + $query = qq{ delete from calcms_series_schedule where project_id=? and studio_id=? and series_id=? }; - db::put($dbh, $query, $bind_values); + db::put( $dbh, $query, $bind_values ); - #delete series dates - $query=qq{ + #delete series dates + $query = qq{ delete from calcms_series_dates where project_id=? and studio_id=? and series_id=? }; - db::put($dbh, $query, $bind_values); + db::put( $dbh, $query, $bind_values ); - #unassign users - series::remove_user( - $config, { - project_id => $project_id, - studio_id => $studio_id, - series_id => $series_id - } - ); + #unassign users + series::remove_user( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + } + ); - #unassign events - $bind_values=[$project_id, $studio_id, $series_id]; - $query=qq{ + #unassign events + $bind_values = [ $project_id, $studio_id, $series_id ]; + $query = qq{ delete from calcms_series_events where project_id=? and studio_id=? and series_id=? }; + #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put($dbh, $query, $bind_values); - - project::unassign_series($config, { - project_id => $project_id, - studio_id => $studio_id, - series_id => $series_id - }); + db::put( $dbh, $query, $bind_values ); + + project::unassign_series( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + } + ); #delete series - my $series_assignments=project::get_series_assignments( - $config, { - series_id => $series_id - } - ); - if(@$series_assignments>1){ - print STDERR "do not delete series, due to assigned to other project or studio"; - return; - } + my $series_assignments = project::get_series_assignments( + $config, + { + series_id => $series_id + } + ); + if ( @$series_assignments > 1 ) { + print STDERR "do not delete series, due to assigned to other project or studio"; + return; + } - $bind_values=[$series_id]; - $query=qq{ + $bind_values = [$series_id]; + $query = qq{ delete from calcms_series where id=? }; + #print STDERR $query.$query.Dumper($bind_values); - db::put($dbh, $query, $bind_values); + db::put( $dbh, $query, $bind_values ); } - # get users directly assigned to project, studio, series (editors) -sub get_users{ - my $config = shift; +sub get_users { + my $config = shift; my $condition = shift; - - my @conditions=(); - my @bind_values=(); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'us.project_id=?'; + my @conditions = (); + my @bind_values = (); + + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'us.project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'us.studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'us.studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'us.series_id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'us.series_id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{name}) && ($condition->{name} ne '')){ - push @conditions, 'u.name=?'; + if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { + push @conditions, 'u.name=?'; push @bind_values, $condition->{name}; } - my $conditions=''; - $conditions=" and ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select u.id, u.name, u.full_name, u.email, us.modified_by, us.modified_at from calcms_users u, calcms_user_series us where us.user_id=u.id $conditions }; + #print STDERR $query." ".Dumper(\@bind_values)."\n"; - my $dbh =db::connect($config); - my $result=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $result = db::get( $dbh, $query, \@bind_values ); + #print STDERR $query." ".Dumper($result)."\n"; return $result; } # assign user to series -sub add_user{ - my $config = shift; - my $entry = shift; +sub add_user { + my $config = shift; + my $entry = shift; return unless defined $entry->{project_id}; return unless defined $entry->{studio_id}; @@ -342,173 +358,176 @@ sub add_user{ return unless defined $entry->{user_id}; return unless defined $entry->{user}; - my $query=qq{ + my $query = qq{ select id from calcms_user_series where project_id=? and studio_id=? and series_id=? and user_id=? }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id}]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id} ]; - my $dbh =db::connect($config); - my $results=db::get($dbh, $query, $bind_values); - return unless (@$results==0); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); + return unless ( @$results == 0 ); - $query=qq{ + $query = qq{ insert calcms_user_series set project_id=?, studio_id=?, series_id=?, user_id=?, modified_by=?, modified_at=now() }; - $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id}, $entry->{user}]; - db::put($dbh, $query, $bind_values); + $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id}, $entry->{user} ]; + db::put( $dbh, $query, $bind_values ); } # remove user(s) from series. -sub remove_user{ - my $config = shift; +sub remove_user { + my $config = shift; my $condition = shift; - - return unless(defined $condition->{project_id}); - return unless(defined $condition->{studio_id}); - return unless(defined $condition->{series_id}); - my @conditions=(); - my @bind_values=(); + return unless ( defined $condition->{project_id} ); + return unless ( defined $condition->{studio_id} ); + return unless ( defined $condition->{series_id} ); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + my @conditions = (); + my @bind_values = (); + + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'series_id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{user_id}) && ($condition->{user_id} ne '')){ - push @conditions, 'user_id=?'; + if ( ( defined $condition->{user_id} ) && ( $condition->{user_id} ne '' ) ) { + push @conditions, 'user_id=?'; push @bind_values, $condition->{user_id}; } - my $conditions=''; - $conditions=join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ delete from calcms_user_series where $conditions }; - my $dbh =db::connect($config); - db::put($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + db::put( $dbh, $query, \@bind_values ); } -#search events by series_name and title (for events not assigned yet) +#search events by series_name and title (for events not assigned yet) #TODO: add location -sub search_events{ - my $config = shift; +sub search_events { + my $config = shift; my $request = shift; my $options = shift; - my $series_name =$options->{series_name}||''; - my $title =$options->{title}||''; - return undef if(($series_name eq '') && ($title eq '') ); + my $series_name = $options->{series_name} || ''; + my $title = $options->{title} || ''; + return undef if ( ( $series_name eq '' ) && ( $title eq '' ) ); - $series_name=~s/[^a-zA-Z0-9 \-]+/\?/g; - $title =~s/[^a-zA-Z0-9 \-]+/\?/g; + $series_name =~ s/[^a-zA-Z0-9 \-]+/\?/g; + $title =~ s/[^a-zA-Z0-9 \-]+/\?/g; - $series_name=~s/\?+/\?/g; - $title =~s/\?+/\?/g; + $series_name =~ s/\?+/\?/g; + $title =~ s/\?+/\?/g; - my $params={ + my $params = { series_name => $series_name, title => $title, template => 'no' }; - if (defined $options){ - $params->{from_date} = $options->{from_date} if (defined $options->{from_date}); - $params->{till_date} = $options->{till_date} if (defined $options->{till_date}); - $params->{location} = $options->{location} if (defined $options->{location}); - $params->{limit} = $options->{limit} if (defined $options->{limit}); - $params->{archive} = $options->{archive} if (defined $options->{archive}); - $params->{get} = $options->{get} if (defined $options->{get}); + if ( defined $options ) { + $params->{from_date} = $options->{from_date} if ( defined $options->{from_date} ); + $params->{till_date} = $options->{till_date} if ( defined $options->{till_date} ); + $params->{location} = $options->{location} if ( defined $options->{location} ); + $params->{limit} = $options->{limit} if ( defined $options->{limit} ); + $params->{archive} = $options->{archive} if ( defined $options->{archive} ); + $params->{get} = $options->{get} if ( defined $options->{get} ); } - my $checked_params=events::check_params($config, $params); + my $checked_params = events::check_params( $config, $params ); + #print STDERR '
      '.Dumper($checked_params).'
      '; - my $request2={ - params=>{ - checked=>$checked_params + my $request2 = { + params => { + checked => $checked_params }, config => $request->{config}, permissions => $request->{permissions} }; + #my $debug=1; #print STDERR Dumper($request2->{params}); - my $events=events::get($config, $request2); + my $events = events::get( $config, $request2 ); + #print Dumper($events); return $events; } #get events (only assigned ones) by project_id,studio_id,series_id, -sub get_events{ - my $config=shift; - my $options=shift; +sub get_events { + my $config = shift; + my $options = shift; #print STDERR Dumper($options); - return [] if defined ($options->{series_id}) && ($options->{series_id} <=0); + return [] if defined( $options->{series_id} ) && ( $options->{series_id} <= 0 ); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if(defined $options->{project_id}){ - push @conditions, 'se.project_id = ?'; + if ( defined $options->{project_id} ) { + push @conditions, 'se.project_id = ?'; push @bind_values, $options->{project_id}; } - if(defined $options->{studio_id}){ - push @conditions, 'se.studio_id = ?'; + if ( defined $options->{studio_id} ) { + push @conditions, 'se.studio_id = ?'; push @bind_values, $options->{studio_id}; } - if( (defined $options->{series_id}) && ($options->{series_id}=~/(\d+)/) ){ + if ( ( defined $options->{series_id} ) && ( $options->{series_id} =~ /(\d+)/ ) ) { push @bind_values, $1; - push @conditions, 'se.series_id = ?'; + push @conditions, 'se.series_id = ?'; } - if(defined $options->{event_id}){ + if ( defined $options->{event_id} ) { push @bind_values, $options->{event_id}; - push @conditions, 'e.id = ?'; + push @conditions, 'e.id = ?'; } - if( (defined $options->{from_date}) && ($options->{from_date}=~/(\d\d\d\d\-\d\d\-\d\d)/) ){ + if ( ( defined $options->{from_date} ) && ( $options->{from_date} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { push @bind_values, $1; - push @conditions, 'e.start_date >= ?'; + push @conditions, 'e.start_date >= ?'; } - if( (defined $options->{till_date}) && ($options->{till_date}=~/(\d\d\d\d\-\d\d\-\d\d)/) ){ + if ( ( defined $options->{till_date} ) && ( $options->{till_date} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { push @bind_values, $1; - push @conditions, 'e.start_date <= ?'; + push @conditions, 'e.start_date <= ?'; } - if(defined $options->{location}){ - push @conditions, 'e.location = ?'; + if ( defined $options->{location} ) { + push @conditions, 'e.location = ?'; push @bind_values, $options->{location}; } - if(defined $options->{draft}){ - push @conditions, 'e.draft = ?'; + if ( defined $options->{draft} ) { + push @conditions, 'e.draft = ?'; push @bind_values, $options->{draft}; } - my $conditions=''; - if (@conditions>0){ - $conditions=' and '.join(' and ', @conditions); - } - - my $limit=''; - if( (defined $options->{limit}) && ($limit=~/(\d+)/) ){ - $limit='limit '.$1; + my $conditions = ''; + if ( @conditions > 0 ) { + $conditions = ' and ' . join( ' and ', @conditions ); } - my $query=qq{ + my $limit = ''; + if ( ( defined $options->{limit} ) && ( $limit =~ /(\d+)/ ) ) { + $limit = 'limit ' . $1; + } + + my $query = qq{ select * ,date(start) start_date ,date(end) end_date @@ -524,33 +543,37 @@ sub get_events{ order by start_date desc $limit }; + #print STDERR '
      '.$query.Dumper(\@bind_values).'
      '; - my $dbh=db::connect($config); - my $results=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, \@bind_values ); + #print STDERR Dumper($results); - - $results=events::modify_results( - $dbh, $config, { - base_url => '', - params => { - checked => { - template => '' - } - } - } , $results + + $results = events::modify_results( + $dbh, $config, + { + base_url => '', + params => { + checked => { + template => '' + } + } + }, + $results ); - #add studio id to events - my $studios=studios::get($config, $options); + #add studio id to events + my $studios = studios::get( $config, $options ); - my $studio_id_by_location={}; - for my $studio (@$studios){ - $studio_id_by_location->{$studio->{location}}=$studio->{id}; + my $studio_id_by_location = {}; + for my $studio (@$studios) { + $studio_id_by_location->{ $studio->{location} } = $studio->{id}; + } + for my $result (@$results) { + $result->{studio_id} = $studio_id_by_location->{ $result->{location} }; } - for my $result (@$results){ - $result->{studio_id}=$studio_id_by_location->{$result->{location}}; - } #print STDERR Dumper($results); return $results; @@ -559,105 +582,107 @@ sub get_events{ # load event given by studio_id, series_id and event_id # helper for gui - errors are written to gui output # return undef on error -sub get_event{ - my $config=shift; - my $options=shift; +sub get_event { + my $config = shift; + my $options = shift; - my $project_id = $options->{project_id}||''; - my $studio_id = $options->{studio_id}||''; - my $series_id = $options->{series_id}||''; - my $event_id = $options->{event_id} ||''; - my $draft = $options->{draft} ||''; + my $project_id = $options->{project_id} || ''; + my $studio_id = $options->{studio_id} || ''; + my $series_id = $options->{series_id} || ''; + my $event_id = $options->{event_id} || ''; + my $draft = $options->{draft} || ''; - unless(defined $options->{allow_any} ){ - if ($project_id eq''){ - uac::print_error("missing project_id"); - return undef; - } - if ($studio_id eq''){ - uac::print_error("missing studio_id"); - return undef; - } - if ($series_id eq''){ - uac::print_error("missing series_id"); - return undef; - } - } + unless ( defined $options->{allow_any} ) { + if ( $project_id eq '' ) { + uac::print_error("missing project_id"); + return undef; + } + if ( $studio_id eq '' ) { + uac::print_error("missing studio_id"); + return undef; + } + if ( $series_id eq '' ) { + uac::print_error("missing series_id"); + return undef; + } + } - if ($event_id eq''){ - uac::print_error("missing event_id"); - return undef; - } + if ( $event_id eq '' ) { + uac::print_error("missing event_id"); + return undef; + } - my $queryOptions={}; - $queryOptions->{project_id} = $project_id if $project_id ne ''; - $queryOptions->{studio_id} = $studio_id if $studio_id ne ''; - $queryOptions->{series_id} = $series_id if $series_id ne ''; - $queryOptions->{event_id} = $event_id if $event_id ne ''; - $queryOptions->{draft} = $draft if $draft ne ''; + my $queryOptions = {}; + $queryOptions->{project_id} = $project_id if $project_id ne ''; + $queryOptions->{studio_id} = $studio_id if $studio_id ne ''; + $queryOptions->{series_id} = $series_id if $series_id ne ''; + $queryOptions->{event_id} = $event_id if $event_id ne ''; + $queryOptions->{draft} = $draft if $draft ne ''; - my $events=series::get_events($config, $queryOptions); - + my $events = series::get_events( $config, $queryOptions ); - unless (defined $events){ - uac::print_error("error on loading event"); - return undef; - } + unless ( defined $events ) { + uac::print_error("error on loading event"); + return undef; + } - if(scalar(@$events)==0){ - uac::print_error("event not found"); - return undef; - } + if ( scalar(@$events) == 0 ) { + uac::print_error("event not found"); + return undef; + } - if(scalar(@$events)>1){ - print STDERR q{multiple assignments found for } - .q{project_id=}.$options->{project_id} - .q{, studio_id=}.$options->{studio_id} - .q{, series_id=}.$options->{series_id} - .q{, event_id=}.$options->{event_id} - ."\n"; - } - my $event=$events->[0]; - return $event; + if ( scalar(@$events) > 1 ) { + print STDERR q{multiple assignments found for } + . q{project_id=} + . $options->{project_id} + . q{, studio_id=} + . $options->{studio_id} + . q{, series_id=} + . $options->{series_id} + . q{, event_id=} + . $options->{event_id} . "\n"; + } + my $event = $events->[0]; + return $event; } # get name and title of series and age in days ('days_over') -sub get_event_age{ - my $config=shift; - my $options=shift; +sub get_event_age { + my $config = shift; + my $options = shift; #print STDERR Dumper($options); return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if( (defined $options->{project_id}) && ($options->{project_id}=~/(\d+)/) ){ + if ( ( defined $options->{project_id} ) && ( $options->{project_id} =~ /(\d+)/ ) ) { push @bind_values, $1; - push @conditions, 'ps.project_id = ?'; + push @conditions, 'ps.project_id = ?'; } - if( (defined $options->{studio_id}) && ($options->{studio_id}=~/(\d+)/) ){ + if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} =~ /(\d+)/ ) ) { push @bind_values, $1; - push @conditions, 'ps.studio_id = ?'; + push @conditions, 'ps.studio_id = ?'; } - if( (defined $options->{series_id}) && ($options->{series_id}=~/(\d+)/) ){ + if ( ( defined $options->{series_id} ) && ( $options->{series_id} =~ /(\d+)/ ) ) { push @bind_values, $1; - push @conditions, 's.id = ?'; + push @conditions, 's.id = ?'; } - if( (defined $options->{event_id}) && ($options->{event_id}=~/(\d+)/) ){ + if ( ( defined $options->{event_id} ) && ( $options->{event_id} =~ /(\d+)/ ) ) { push @bind_values, $1; - push @conditions, 'e.id = ?'; + push @conditions, 'e.id = ?'; } - my $conditions=''; - if (@conditions>0){ - $conditions=join(' and ', @conditions); + my $conditions = ''; + if ( @conditions > 0 ) { + $conditions = join( ' and ', @conditions ); } - my $query=qq{ + my $query = qq{ select s.id series_id, s.series_name, s.title, s.has_single_events has_single_events, (to_days(now())-to_days(max(e.start))) days_over from calcms_project_series ps left join calcms_series s on ps.series_id=s.id @@ -667,22 +692,23 @@ sub get_event_age{ group by s.id order by has_single_events desc, days_over }; - - #print STDERR $query." ".Dumper(\@bind_values); - my $dbh=db::connect($config); - my $results=db::get($dbh, $query, \@bind_values); - for my $result (@$results){ - $result->{days_over}=0 unless defined $result->{days_over}; - } + #print STDERR $query." ".Dumper(\@bind_values); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, \@bind_values ); + + for my $result (@$results) { + $result->{days_over} = 0 unless defined $result->{days_over}; + } return $results; } # is event older than max_age days -sub is_event_older_than_days{ - my $config=shift; - my $options=shift; - #print STDERR Dumper($options); +sub is_event_older_than_days { + my $config = shift; + my $options = shift; + + #print STDERR Dumper($options); return 1 unless defined $options->{project_id}; return 1 unless defined $options->{studio_id}; @@ -690,545 +716,578 @@ sub is_event_older_than_days{ return 1 unless defined $options->{event_id}; return 1 unless defined $options->{max_age}; - my $events=series::get_event_age($config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - event_id => $options->{event_id} - }); + my $events = series::get_event_age( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + event_id => $options->{event_id} + } + ); - if (scalar(@$events)==0){ - print STDERR "series_events::event_over_in_days: event $options->{event_id} is not assigned to project $options->{project_id}, studio $options->{studio_id}, series $options->{series_id}\n"; - return 1; - } - my $event=$events->[0]; - #print STDERR Dumper($event); - return 1 if $event->{days_over} > $options->{max_age}; - return 0; + if ( scalar(@$events) == 0 ) { + print STDERR +"series_events::event_over_in_days: event $options->{event_id} is not assigned to project $options->{project_id}, studio $options->{studio_id}, series $options->{series_id}\n"; + return 1; + } + my $event = $events->[0]; + + #print STDERR Dumper($event); + return 1 if $event->{days_over} > $options->{max_age}; + return 0; } -sub get_next_episode{ - my $config=shift; - my $options=shift; +sub get_next_episode { + my $config = shift; + my $options = shift; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; - #return if episodes should not be counted for this series - my $query=q{ + #return if episodes should not be counted for this series + my $query = q{ select count_episodes from calcms_series where id=? }; - my $bind_values=[$options->{series_id}]; - my $dbh=db::connect($config); - my $results=db::get($dbh, $query, $bind_values); - return 0 if (@$results != 1); - return 0 if ($results->[0]->{count_episodes}eq'0'); - #print STDERR Dumper($results); + my $bind_values = [ $options->{series_id} ]; + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); + return 0 if ( @$results != 1 ); + return 0 if ( $results->[0]->{count_episodes} eq '0' ); - #get all - $query=q{ + #print STDERR Dumper($results); + + #get all + $query = q{ select title,episode from calcms_events e, calcms_series_events se where se.project_id=? and se.studio_id=? and se.series_id=? and se.event_id=e.id }; - $bind_values=[$options->{project_id}, $options->{studio_id}, $options->{series_id}]; - $results=db::get($dbh, $query, $bind_values); - - my $max=0; - for my $result (@$results){ - if ($result->{title}=~/\#(\d+)/){ - my $value=$1; - $max=$value if $value>$max; - } - next unless defined $result->{episode}; - $max=$result->{episode} if $result->{episode}>$max; - } - return $max+1; + $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{series_id} ]; + $results = db::get( $dbh, $query, $bind_values ); + + my $max = 0; + for my $result (@$results) { + if ( $result->{title} =~ /\#(\d+)/ ) { + my $value = $1; + $max = $value if $value > $max; + } + next unless defined $result->{episode}; + $max = $result->{episode} if $result->{episode} > $max; + } + return $max + 1; } -sub get_images{ - my $config=shift; - my $options=shift; +sub get_images { + my $config = shift; + my $options = shift; - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{series_id}; + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{series_id}; - #get images from all events of the series - my $dbh=db::connect($config); - my $events=series::get_events( $config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id} - }); - my $images={}; - my $found=0; - for my $event (@$events){ - my $image=$event->{image}; - $image=~s/.*\///; - $images->{$image}=1; - $found++; - } - - return undef if $found==0; + #get images from all events of the series + my $dbh = db::connect($config); + my $events = series::get_events( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id} + } + ); + my $images = {}; + my $found = 0; + for my $event (@$events) { + my $image = $event->{image}; + $image =~ s/.*\///; + $images->{$image} = 1; + $found++; + } - # get all images from database - my @cond=(); - my $bind_values=[]; - for my $image (keys %$images){ - push @cond, 'filename=?'; + return undef if $found == 0; + + # get all images from database + my @cond = (); + my $bind_values = []; + for my $image ( keys %$images ) { + push @cond, 'filename=?'; push @$bind_values, $image; } - my $where=''; - if (@cond>0){ - $where = 'where '.join (' or ', @cond); + my $where = ''; + if ( @cond > 0 ) { + $where = 'where ' . join( ' or ', @cond ); } - my $limit=''; - if ( (defined $options->{limit}) && ($options->{limit}=~/(\d+)/) ){ - $limit=' limit '.$1; + my $limit = ''; + if ( ( defined $options->{limit} ) && ( $options->{limit} =~ /(\d+)/ ) ) { + $limit = ' limit ' . $1; } - my $query=qq{ + my $query = qq{ select * from calcms_images $where order by created_at desc $limit }; - #print STDERR Dumper($query).Dumper($bind_values); - my $results=db::get($dbh, $query, $bind_values); - #print STDERR @$results."\n"; + #print STDERR Dumper($query).Dumper($bind_values); + my $results = db::get( $dbh, $query, $bind_values ); + + #print STDERR @$results."\n"; return $results; } #assign event to series #TODO: manual assign needs to update automatic one -sub assign_event{ - my $config=shift; - my $entry=shift; - - #print STDERR Dumper($entry); +sub assign_event { + my $config = shift; + my $entry = shift; + + #print STDERR Dumper($entry); return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{series_id}; return undef unless defined $entry->{event_id}; - $entry->{manual}=0 unless ((defined $entry->{manual})&&($entry->{manual}eq'1')); + $entry->{manual} = 0 unless ( ( defined $entry->{manual} ) && ( $entry->{manual} eq '1' ) ); - my $conditions=''; - $conditions='and manual=1' if ($entry->{manual}eq'1'); + my $conditions = ''; + $conditions = 'and manual=1' if ( $entry->{manual} eq '1' ); - my $query=qq{ + my $query = qq{ select * from calcms_series_events where project_id=? and studio_id=? and series_id=? and event_id=? $conditions }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}]; - my $dbh=db::connect($config); - my $results=db::get($dbh, $query, $bind_values); + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); - if(@$results>1){ - print STDERR "multiple assignments of project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}\n"; - return; - } - if(@$results==1){ - print STDERR "already assigned: project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}\n"; - return; - } + if ( @$results > 1 ) { + print STDERR +"multiple assignments of project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}\n"; + return; + } + if ( @$results == 1 ) { + print STDERR +"already assigned: project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}\n"; + return; + } - $query=qq{ + $query = qq{ insert into calcms_series_events (project_id, studio_id, series_id, event_id, manual) values (?,?,?,?,?) }; - $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}, $entry->{manual}]; + $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}, $entry->{manual} ]; + #print STDERR '
      '.$query.Dumper($bind_values).'
      '; - return db::put($dbh, $query, $bind_values); + return db::put( $dbh, $query, $bind_values ); } #unassign event from series -sub unassign_event{ - my $config=shift; - my $entry=shift; - +sub unassign_event { + my $config = shift; + my $entry = shift; + return unless defined $entry->{project_id}; return unless defined $entry->{studio_id}; return unless defined $entry->{series_id}; return unless defined $entry->{event_id}; - my $conditions=''; - $conditions='and manual=1' if ((defined $entry->{manual}) && ($entry->{manual}eq'1')); + my $conditions = ''; + $conditions = 'and manual=1' if ( ( defined $entry->{manual} ) && ( $entry->{manual} eq '1' ) ); - my $query=qq{ + my $query = qq{ delete from calcms_series_events where project_id=? and studio_id=? and series_id=? and event_id=? $conditions }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}]; - #print STDERR '
      '.$query.Dumper($bind_values).'
      '; - my $dbh=db::connect($config); - return db::put($dbh, $query, $bind_values); -} + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; + #print STDERR '
      '.$query.Dumper($bind_values).'
      '; + my $dbh = db::connect($config); + return db::put( $dbh, $query, $bind_values ); +} # put series id to given events (for legacy handling) # used by calendar # TODO: optionally add project_id and studio_id to conditions -sub add_series_ids_to_events{ - my $config=shift; - my $events=shift; +sub add_series_ids_to_events { + my $config = shift; + my $events = shift; #get event ids from given events - my @event_ids=(); - for my $event (@$events){ + my @event_ids = (); + for my $event (@$events) { push @event_ids, $event->{event_id}; } - return if (@event_ids==0); + return if ( @event_ids == 0 ); - my @bind_values =@event_ids; - my $event_ids =join(',', map {'?'} @event_ids); + my @bind_values = @event_ids; + my $event_ids = join( ',', map { '?' } @event_ids ); #query series ids - my $dbh=db::connect($config); - my $query=qq{ + my $dbh = db::connect($config); + my $query = qq{ select project_id, studio_id, series_id, event_id from calcms_series_events where event_id in ($event_ids) }; - my $results=db::get($dbh, $query, \@bind_values); - my @results=@$results; - return [] unless (@results>0); + my $results = db::get( $dbh, $query, \@bind_values ); + my @results = @$results; + return [] unless ( @results > 0 ); #build hash of series ids by event ids - my $assignments_by_event_id={}; - for my $entry (@$results){ - my $event_id=$entry->{event_id}; - $assignments_by_event_id->{$event_id}=$entry; + my $assignments_by_event_id = {}; + for my $entry (@$results) { + my $event_id = $entry->{event_id}; + $assignments_by_event_id->{$event_id} = $entry; } - + #fill in ids into events - for my $event (@$events){ - my $event_id=$event->{event_id}; - my $assignment=$assignments_by_event_id->{$event_id}; - if (defined $assignment){ - $event->{project_id} = $assignment->{project_id}; - $event->{studio_id} = $assignment->{studio_id}; - $event->{series_id} = $assignment->{series_id}; - } + for my $event (@$events) { + my $event_id = $event->{event_id}; + my $assignment = $assignments_by_event_id->{$event_id}; + if ( defined $assignment ) { + $event->{project_id} = $assignment->{project_id}; + $event->{studio_id} = $assignment->{studio_id}; + $event->{series_id} = $assignment->{series_id}; + } } } - # add event_ids to series and remove all event ids from series, not given event_ids # for scan only, used at series -sub set_event_ids{ - my $config=shift; - my $project_id=shift; - my $studio_id=shift; - my $serie=shift; - my $event_ids=shift; +sub set_event_ids { + my $config = shift; + my $project_id = shift; + my $studio_id = shift; + my $serie = shift; + my $event_ids = shift; - my $serie_id=$serie->{series_id}; + my $serie_id = $serie->{series_id}; return unless defined $project_id; return unless defined $studio_id; return unless defined $serie_id; return unless defined $event_ids; #make lookup table from events - my $event_id_hash={}; - for my $event_id (@$event_ids){ - $event_id_hash->{$event_id}=1; + my $event_id_hash = {}; + for my $event_id (@$event_ids) { + $event_id_hash->{$event_id} = 1; } #get series_entries from db #my $bind_names=join(',', (map { '?' } @$event_ids)); - my $query=qq{ + my $query = qq{ select event_id from calcms_series_events where project_id=? and studio_id=? and series_id=? }; - my $bind_values=[$project_id, $studio_id, $serie_id]; + my $bind_values = [ $project_id, $studio_id, $serie_id ]; - my $dbh=db::connect($config); - my $results=db::get($dbh, $query, $bind_values); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); + + my $found = {}; - my $found={}; #mark events found assigned to series - my $i=1; - for my $event (@$results){ + my $i = 1; + for my $event (@$results) { + #print "found event $i: $event->{event_id}\n"; - $found->{$event->{event_id}}=1; + $found->{ $event->{event_id} } = 1; $i++; } + #insert events from list, not found in db - for my $event_id (@$event_ids){ + for my $event_id (@$event_ids) { + #print "insert event_id $event_id\n"; series::assign_event( - $config, { - project_id => $project_id, - studio_id => $studio_id, - series_id => $serie_id, - event_id => $event_id - } - ) unless ($found->{$event_id}); + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $serie_id, + event_id => $event_id + } + ) unless ( $found->{$event_id} ); } + #delete events found in db, but not in list - for my $event_id (keys %$found){ + for my $event_id ( keys %$found ) { + #print "delete event_id $event_id\n"; series::unassign_event( - $config, { - project_id => $project_id, - studio_id => $studio_id, - series_id => $serie_id, - event_id => $event_id, - manual => 0 - } - ) unless (defined $event_id_hash->{$event_id}); + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $serie_id, + event_id => $event_id, + manual => 0 + } + ) unless ( defined $event_id_hash->{$event_id} ); } } # check if user allowed to update series events # evaluate permissions and consider editors directly assigned to series -sub can_user_update_events{ - my $request=shift; - my $options=shift; +sub can_user_update_events { + my $request = shift; + my $options = shift; my $config = $request->{config}; my $permissions = $request->{permissions}; - return 0 unless defined $request->{user}; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; + return 0 unless defined $request->{user}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; - return 1 if ( (defined $permissions->{update_event_of_others}) && ($permissions->{update_event_of_others}eq'1')); - return 1 if ( (defined $permissions->{is_admin}) && ($permissions->{is_admin} eq'1')); - return 0 if ( $permissions->{update_event_of_series}ne'1'); + return 1 if ( ( defined $permissions->{update_event_of_others} ) && ( $permissions->{update_event_of_others} eq '1' ) ); + return 1 if ( ( defined $permissions->{is_admin} ) && ( $permissions->{is_admin} eq '1' ) ); + return 0 if ( $permissions->{update_event_of_series} ne '1' ); - return is_series_assigned_to_user($request, $options); + return is_series_assigned_to_user( $request, $options ); } # check if user allowed to create series events # evaluate permissions and consider editors directly assigned to series -sub can_user_create_events{ - my $request=shift; - my $options=shift; +sub can_user_create_events { + my $request = shift; + my $options = shift; my $config = $request->{config}; my $permissions = $request->{permissions}; - return 0 unless defined $request->{user}; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; + return 0 unless defined $request->{user}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; - return 1 if ( (defined $permissions->{create_event}) && ($permissions->{create_event}eq'1')); - return 1 if ( (defined $permissions->{is_admin}) && ($permissions->{is_admin} eq'1')); - return 0 if ( $permissions->{create_event_of_series}ne'1'); + return 1 if ( ( defined $permissions->{create_event} ) && ( $permissions->{create_event} eq '1' ) ); + return 1 if ( ( defined $permissions->{is_admin} ) && ( $permissions->{is_admin} eq '1' ) ); + return 0 if ( $permissions->{create_event_of_series} ne '1' ); - return is_series_assigned_to_user($request, $options); + return is_series_assigned_to_user( $request, $options ); } -sub is_series_assigned_to_user{ - my $request=shift; - my $options=shift; +sub is_series_assigned_to_user { + my $request = shift; + my $options = shift; my $config = $request->{config}; my $permissions = $request->{permissions}; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; - return 0 unless defined $request->{user}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; + return 0 unless defined $request->{user}; - my $series_users = series::get_users( - $config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - name => $request->{user} - } - ); - return 0 if (@$series_users==0); - return 1; + my $series_users = series::get_users( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + name => $request->{user} + } + ); + return 0 if ( @$series_users == 0 ); + return 1; } # check if user is assigned to studio where location matchs to event # return 1 on success or error text -sub is_event_assigned_to_user{ - my $request=shift; - my $options=shift; +sub is_event_assigned_to_user { + my $request = shift; + my $options = shift; - my $config = $request->{config}; + my $config = $request->{config}; - return "missing user" unless defined $request->{user}; - return "missing project_id" unless defined $options->{project_id}; - return "missing studio_id" unless defined $options->{studio_id}; - return "missing series_id" unless defined $options->{series_id}; - return "missing event_id" unless defined $options->{event_id}; + return "missing user" unless defined $request->{user}; + return "missing project_id" unless defined $options->{project_id}; + return "missing studio_id" unless defined $options->{studio_id}; + return "missing series_id" unless defined $options->{series_id}; + return "missing event_id" unless defined $options->{event_id}; - #check roles - my $user_studios=uac::get_studios_by_user( - $config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - user => $request->{user}, - } - ); - return "user is not assigned to studio" if @$user_studios==0; - my $studio=$user_studios->[0]; - my $location=$studio->{location}; - return "could not get studio location" if $location eq''; - - #TODO: replace legacy support - my $events=series::get_events( - $config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - event_id => $options->{event_id}, - location => $location, - limit => 1 + #check roles + my $user_studios = uac::get_studios_by_user( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + user => $request->{user}, } ); + return "user is not assigned to studio" if @$user_studios == 0; + my $studio = $user_studios->[0]; + my $location = $studio->{location}; + return "could not get studio location" if $location eq ''; + + #TODO: replace legacy support + my $events = series::get_events( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + event_id => $options->{event_id}, + location => $location, + limit => 1 + } + ); + #print STDERR Dumper(@$events); - return "no event found for" - ." project $options->{project_id}," - ." studio $options->{studio_id}," - ." location $location," - ." series $options->{series_id}" - ." and event $options->{event_id}" if @$events==0; + return + "no event found for" + . " project $options->{project_id}," + . " studio $options->{studio_id}," + . " location $location," + . " series $options->{series_id}" + . " and event $options->{event_id}" + if @$events == 0; return 1; } -# to find multiple recurrences this does not include the recurrence_count +# to find multiple recurrences this does not include the recurrence_count # use events::get_key to add the recurrence -sub get_event_key{ - my $event=shift; - - my $program = $event->{program} || ''; - my $series_name = $event->{series_name} || ''; - my $title = $event->{title} || ''; - my $user_title = $event->{user_title} || ''; - my $episode = $event->{episode} || ''; - - my $key=''; - $key.=$series_name if $series_name ne ''; - $key.=' - ' if ($series_name ne '') && ($title ne ''); - $key.=$title if $title ne ''; - $key.=': ' if ($title ne '') && ($user_title ne ''); - $key.=$user_title if $user_title ne ''; - $key.=' #'.$episode if $episode ne ''; - return $key; +sub get_event_key { + my $event = shift; + + my $program = $event->{program} || ''; + my $series_name = $event->{series_name} || ''; + my $title = $event->{title} || ''; + my $user_title = $event->{user_title} || ''; + my $episode = $event->{episode} || ''; + + my $key = ''; + $key .= $series_name if $series_name ne ''; + $key .= ' - ' if ( $series_name ne '' ) && ( $title ne '' ); + $key .= $title if $title ne ''; + $key .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); + $key .= $user_title if $user_title ne ''; + $key .= ' #' . $episode if $episode ne ''; + return $key; } -sub update_recurring_events{ - my $config=shift; - my $options=shift; +sub update_recurring_events { + my $config = shift; + my $options = shift; - return "missing project_id" unless defined $options->{project_id}; - return "missing studio_id" unless defined $options->{studio_id}; - return "missing series_id" unless defined $options->{series_id}; - return "missing event_id" unless defined $options->{event_id}; + return "missing project_id" unless defined $options->{project_id}; + return "missing studio_id" unless defined $options->{studio_id}; + return "missing series_id" unless defined $options->{series_id}; + return "missing event_id" unless defined $options->{event_id}; - my $events=series::get_events( - $config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - draft => 0 + my $events = series::get_events( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + draft => 0 } ); - @$events=sort { $a->{start} cmp $b->{start}} @$events; + @$events = sort { $a->{start} cmp $b->{start} } @$events; - # store events with recurrences by key (series_name, title, user_title, episode) - my $events_by_key={}; - for my $event (@$events){ - my $key=get_event_key($event); - next unless $key=~/\#\d+$/; - $event->{key}=$key; - push @{$events_by_key->{$key}}, $event; + # store events with recurrences by key (series_name, title, user_title, episode) + my $events_by_key = {}; + for my $event (@$events) { + my $key = get_event_key($event); + next unless $key =~ /\#\d+$/; + $event->{key} = $key; + push @{ $events_by_key->{$key} }, $event; } - + # handle all events with the same key - for my $key (keys %$events_by_key){ - my $events=$events_by_key->{$key}; - next unless scalar @$events >0; + for my $key ( keys %$events_by_key ) { + my $events = $events_by_key->{$key}; + next unless scalar @$events > 0; - if(scalar @$events ==1){ - # one event found -> check if recurrence is to be removed - my $event=$events->[0]; - next if $event->{recurrence}==0; - next if $event->{recurrence_count}==0; - print STDERR "remove recurrence\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; - $event->{recurrence}=0; - $event->{recurrence_count}=0; - $event->{rerun}=0; - series::update_recurring_event($config, $event); - - }elsif(scalar @$events >1){ - # multiple events found with same key - # first event is the original - my $event=$events->[0]; - my $originalId = $event->{event_id}; - print STDERR "0\t'$event->{recurrence_count}'\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; + if ( scalar @$events == 1 ) { - # succeeding events are reruns - for (my $c=1; $c < scalar(@$events); $c++){ - my $event=$events->[$c]; - print STDERR "$c\t'$event->{recurrence_count}'\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; + # one event found -> check if recurrence is to be removed + my $event = $events->[0]; + next if $event->{recurrence} == 0; + next if $event->{recurrence_count} == 0; + print STDERR + "remove recurrence\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; + $event->{recurrence} = 0; + $event->{recurrence_count} = 0; + $event->{rerun} = 0; + series::update_recurring_event( $config, $event ); - my $update=0; - $update = 1 if $event->{recurrence} ne $originalId; - $update = 1 if $event->{rerun} ne '1'; - $update = 1 if $event->{recurrence_count} ne $c; - next if $update == 0; - - $event->{recurrence}=$originalId; - $event->{recurrence_count}=$c; - $event->{rerun}=1; - series::update_recurring_event($config, $event); - } - } + } elsif ( scalar @$events > 1 ) { + + # multiple events found with same key + # first event is the original + my $event = $events->[0]; + my $originalId = $event->{event_id}; + print STDERR +"0\t'$event->{recurrence_count}'\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; + + # succeeding events are reruns + for ( my $c = 1 ; $c < scalar(@$events) ; $c++ ) { + my $event = $events->[$c]; + print STDERR +"$c\t'$event->{recurrence_count}'\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; + + my $update = 0; + $update = 1 if $event->{recurrence} ne $originalId; + $update = 1 if $event->{rerun} ne '1'; + $update = 1 if $event->{recurrence_count} ne $c; + next if $update == 0; + + $event->{recurrence} = $originalId; + $event->{recurrence_count} = $c; + $event->{rerun} = 1; + series::update_recurring_event( $config, $event ); + } + } } } -sub update_recurring_event{ - my $config=shift; - my $event =shift; - - return undef unless defined $event->{event_id}; - return undef unless defined $event->{recurrence}; - return undef unless defined $event->{recurrence_count}; - return undef unless defined $event->{rerun}; - - return unless $event->{event_id}=~/^\d+$/; - return unless $event->{recurrence}=~/^\d+$/; - return unless $event->{recurrence_count}=~/^\d+$/; - return unless $event->{rerun}=~/^\d+$/; +sub update_recurring_event { + my $config = shift; + my $event = shift; - my $bind_values=[]; + return undef unless defined $event->{event_id}; + return undef unless defined $event->{recurrence}; + return undef unless defined $event->{recurrence_count}; + return undef unless defined $event->{rerun}; + + return unless $event->{event_id} =~ /^\d+$/; + return unless $event->{recurrence} =~ /^\d+$/; + return unless $event->{recurrence_count} =~ /^\d+$/; + return unless $event->{rerun} =~ /^\d+$/; + + my $bind_values = []; push @$bind_values, $event->{recurrence}; push @$bind_values, $event->{recurrence_count}; push @$bind_values, $event->{rerun}; push @$bind_values, $event->{id}; - my $update_sql=qq{ + my $update_sql = qq{ update calcms_events set recurrence=?, recurrence_count=?, rerun=? where id=? }; + #print STDERR $update_sql."\n".Dumper($bind_values)."\n"; - my $dbh=db::connect($config); - db::put($dbh, $update_sql, $bind_values); + my $dbh = db::connect($config); + db::put( $dbh, $update_sql, $bind_values ); } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index 545e938..89f5f10 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -1,93 +1,93 @@ -package series_dates; +package series_dates; use warnings "all"; use strict; use Data::Dumper; -use Date::Calc; -use time; -use db; -use log; -use studio_timeslot_dates; -use series_schedule; +use Date::Calc(); +use time(); +use db(); +use log(); +use studio_timeslot_dates(); +use series_schedule(); # schedule dates for series_schedule # table: calcms_series_dates # columns: id, studio_id, series_id, start(datetime), end(datetime) # TODO: delete column schedule_id require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get insert update delete get_dates get_series); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get insert update delete get_dates get_series); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_series_dates'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_series_dates' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } # get all series_dates for studio_id and series_id within given time range # calculate start_date, end_date, weeday, day from start and end(datetime) -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'series_id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{start_at}) && ($condition->{start_at} ne '')){ - push @conditions, 'start=?'; + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'start=?'; push @bind_values, $condition->{start_at}; } - if ((defined $condition->{from}) && ($condition->{from} ne '')){ - push @conditions, 'start_date>=?'; + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + push @conditions, 'start_date>=?'; push @bind_values, $condition->{from}; } - if ((defined $condition->{till}) && ($condition->{till} ne '')){ - push @conditions, 'end_date{till} ) && ( $condition->{till} ne '' ) ) { + push @conditions, 'end_date{till}; } - if ((defined $condition->{schedule_id}) && ($condition->{schedule_id} ne '')){ - push @conditions, 'id=?'; + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'id=?'; push @bind_values, $condition->{schedule_id}; } - if ((defined $condition->{exclude}) && ($condition->{exclude} ne '')){ - push @conditions, 'exclude=?'; + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'exclude=?'; push @bind_values, $condition->{exclude}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select date(start) start_date ,date(end) end_date ,dayname(start) weekday @@ -104,128 +104,130 @@ sub get{ $conditions order by start }; + #print STDERR $query."\n"; #print STDERR Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); - for my $entry (@$entries){ - $entry->{weekday}=substr($entry->{weekday},0,2); + my $entries = db::get( $dbh, $query, \@bind_values ); + for my $entry (@$entries) { + $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); } - + return $entries; } #check if event is scheduled (on permission check) -sub is_event_scheduled{ - my $request=shift; - my $options=shift; +sub is_event_scheduled { + my $request = shift; + my $options = shift; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; - return 0 unless defined $options->{start_at}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; + return 0 unless defined $options->{start_at}; - my $config = $request->{config}; - my $schedules=series_dates::get( - $config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - start_at => $options->{start_at} - } - ); - return 0 if(@$schedules!=1); - return 1; + my $config = $request->{config}; + my $schedules = series_dates::get( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + start_at => $options->{start_at} + } + ); + return 0 if ( @$schedules != 1 ); + return 1; } - #get all series for given studio_id, time range and search -sub get_series{ - my $config=shift; - my $condition=shift; +sub get_series { + my $config = shift; + my $condition = shift; - my $date_range_include=0; - $date_range_include=1 if (defined $condition->{date_range_include}) && ($condition->{date_range_include}==1); + my $date_range_include = 0; + $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - push @conditions, 'd.series_id=s.id'; -# push @conditions, 'd.studio_id=s.studio_id'; + push @conditions, 'd.series_id=s.id'; - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'd.project_id=?'; + # push @conditions, 'd.studio_id=s.studio_id'; + + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'd.project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'd.studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'd.studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'd.series_id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'd.series_id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{start_at}) && ($condition->{start_at} ne '')){ - push @conditions, 'd.start=?'; - push @bind_values, $condition->{start_at}; + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'd.start=?'; + push @bind_values, $condition->{start_at}; } - if ((defined $condition->{from}) && ($condition->{from} ne '')){ - if ($date_range_include==1){ - push @conditions, 'd.end_date>=?'; - push @bind_values, $condition->{from}; - }else{ - push @conditions, 'd.start_date>=?'; - push @bind_values, $condition->{from}; - } + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'd.end_date>=?'; + push @bind_values, $condition->{from}; + } else { + push @conditions, 'd.start_date>=?'; + push @bind_values, $condition->{from}; + } } - if ((defined $condition->{till}) && ($condition->{till} ne '')){ - if ($date_range_include==1){ - push @conditions, 'd.start_date<=?'; - push @bind_values, $condition->{till}; - }else{ - push @conditions, 'd.end_date{till}; - } + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'd.start_date<=?'; + push @bind_values, $condition->{till}; + } else { + push @conditions, 'd.end_date{till}; + } } - if ((defined $condition->{schedule_id}) && ($condition->{schedule_id} ne '')){ - push @conditions, 'd.id=?'; + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'd.id=?'; push @bind_values, $condition->{schedule_id}; } - if ((defined $condition->{exclude}) && ($condition->{exclude} ne '')){ - push @conditions, 'd.exclude=?'; + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'd.exclude=?'; push @bind_values, $condition->{exclude}; } - my $search_cond=''; - if ((defined $condition->{search}) && ($condition->{search} ne'')){ - my $search=lc $condition->{search}; - $search=~s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; - $search=~s/\%+/\%/; - $search=~s/^[\%\s]+//; - $search=~s/[\%\s]+$//; - if ($search ne ''){ - $search='%'.$search.'%'; - my @attr=('s.title', 's.series_name', 's.excerpt', 's.category', 's.content'); - push @conditions, "(".join(" or ", map {'lower('.$_.') like ?'} @attr ).")"; - for my $attr (@attr){ - push @bind_values,$search; + my $search_cond = ''; + if ( ( defined $condition->{search} ) && ( $condition->{search} ne '' ) ) { + my $search = lc $condition->{search}; + $search =~ s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; + $search =~ s/\%+/\%/; + $search =~ s/^[\%\s]+//; + $search =~ s/[\%\s]+$//; + if ( $search ne '' ) { + $search = '%' . $search . '%'; + my @attr = ( 's.title', 's.series_name', 's.excerpt', 's.category', 's.content' ); + push @conditions, "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + for my $attr (@attr) { + push @bind_values, $search; } } } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select date(d.start) start_date ,date(d.end) end_date ,dayname(d.start) weekday @@ -246,318 +248,333 @@ sub get_series{ order by start }; - my $entries=db::get($dbh, $query, \@bind_values); + my $entries = db::get( $dbh, $query, \@bind_values ); - for my $entry (@$entries){ - $entry->{weekday} = substr($entry->{weekday},0,2); + for my $entry (@$entries) { + $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); } - # add series schedule - $entries=series_dates::addSeriesScheduleAttributes($config, $entries); + # add series schedule + $entries = series_dates::addSeriesScheduleAttributes( $config, $entries ); return $entries; } -sub addSeriesScheduleAttributes{ - my $config=shift; - my $entries=shift; +sub addSeriesScheduleAttributes { + my $config = shift; + my $entries = shift; - my $scheduleIds={}; - # get series schedule ids used at entries - for my $entry (@$entries){ - $scheduleIds->{$entry->{series_schedule_id}}=1; + my $scheduleIds = {}; + + # get series schedule ids used at entries + for my $entry (@$entries) { + $scheduleIds->{ $entry->{series_schedule_id} } = 1; } - my @scheduleIds=keys %$scheduleIds; - return $entries if scalar(@scheduleIds)==0; + my @scheduleIds = keys %$scheduleIds; + return $entries if scalar(@scheduleIds) == 0; - # get schedules with schedule ids - my $schedules=series_schedule::get($config, { - schedule_ids => \@scheduleIds - }); + # get schedules with schedule ids + my $schedules = series_schedule::get( + $config, + { + schedule_ids => \@scheduleIds + } + ); - # get schedules by id - my $scheduleById={}; - for my $schedule (@$schedules){ - $scheduleById->{$schedule->{schedule_id}}=$schedule; - } + # get schedules by id + my $scheduleById = {}; + for my $schedule (@$schedules) { + $scheduleById->{ $schedule->{schedule_id} } = $schedule; + } - for my $entry (@$entries){ - $entry->{frequency} = $scheduleById->{$entry->{series_schedule_id}}->{frequency}; - $entry->{period_type} = $scheduleById->{$entry->{series_schedule_id}}->{period_type}; - } + for my $entry (@$entries) { + $entry->{frequency} = $scheduleById->{ $entry->{series_schedule_id} }->{frequency}; + $entry->{period_type} = $scheduleById->{ $entry->{series_schedule_id} }->{period_type}; + } - return $entries; + return $entries; } - #update series dates for all schedules of a series and studio_id -sub update{ - my $config=shift; - my $entry=shift; +sub update { + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id} ; - return undef unless defined $entry->{studio_id} ; - return undef unless defined $entry->{series_id} ; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); #delete all dates for series (by studio and series id) - series_dates::delete($config, $entry); + series_dates::delete( $config, $entry ); - my $day_start=$config->{date}->{day_starting_hour}; + my $day_start = $config->{date}->{day_starting_hour}; #get all schedules for series ordered by exclude, date - my $schedules=series_schedule::get($config, { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - }); - + my $schedules = series_schedule::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + } + ); + #add scheduled series dates and remove exluded dates - my $series_dates={}; + my $series_dates = {}; - #TODO:set schedules exclude to 0 if not 1 - #insert all normal dates (not excludes) - for my $schedule (@$schedules){ - my $dates=get_schedule_dates($schedule, {exclude => 0}); - for my $date (@$dates){ - $date->{exclude}=0; - $series_dates->{$date->{start}}=$date; - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); + #TODO:set schedules exclude to 0 if not 1 + #insert all normal dates (not excludes) + for my $schedule (@$schedules) { + my $dates = get_schedule_dates( $schedule, { exclude => 0 } ); + for my $date (@$dates) { + $date->{exclude} = 0; + $series_dates->{ $date->{start} } = $date; + + #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); } } - #insert / overwrite all exlude dates - for my $schedule (@$schedules){ - my $dates=get_schedule_dates($schedule, {exclude => 1}); - for my $date (@$dates){ - $date->{exclude}=1; - $series_dates->{$date->{start}}=$date; - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); + #insert / overwrite all exlude dates + for my $schedule (@$schedules) { + my $dates = get_schedule_dates( $schedule, { exclude => 1 } ); + for my $date (@$dates) { + $date->{exclude} = 1; + $series_dates->{ $date->{start} } = $date; + + #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); } } - #print STDERR Dumper($series_dates->{'2014-02-05 19:00:00'}); + #print STDERR Dumper($series_dates->{'2014-02-05 19:00:00'}); - my $request={ - config => $config - }; + my $request = { config => $config }; + + my $i = 0; + my $j = 0; + for my $date ( keys %$series_dates ) { + my $series_date = $series_dates->{$date}; - my $i=0; - my $j=0; - for my $date (keys %$series_dates){ - my $series_date=$series_dates->{$date}; #insert date - my $entry={ - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - series_schedule_id => $series_date->{series_schedule_id}, - start => $series_date->{start}, - end => $series_date->{end}, - exclude => $series_date->{exclude}, - }; - if(studio_timeslot_dates::can_studio_edit_events($config, $entry)==1){ # by studio_id, start, end - $entry->{start_date}= time::add_hours_to_datetime($entry->{start}, -$day_start); - $entry->{end_date}= time::add_hours_to_datetime($entry->{end}, -$day_start); - db::insert($dbh, 'calcms_series_dates', $entry); - #print STDERR "$entry->{start_date}\n"; - $i++; - }else{ - $j++; - #print STDERR Dumper($entry); - } - } - #print STDERR "$i series_dates updates\n"; - return $j." dates out of studio times, ".$i; + my $entry = { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + series_schedule_id => $series_date->{series_schedule_id}, + start => $series_date->{start}, + end => $series_date->{end}, + exclude => $series_date->{exclude}, + }; + if ( studio_timeslot_dates::can_studio_edit_events( $config, $entry ) == 1 ) { # by studio_id, start, end + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + db::insert( $dbh, 'calcms_series_dates', $entry ); + + #print STDERR "$entry->{start_date}\n"; + $i++; + } else { + $j++; + + #print STDERR Dumper($entry); + } + } + + #print STDERR "$i series_dates updates\n"; + return $j . " dates out of studio times, " . $i; } -sub get_schedule_dates{ - my $schedule=shift; - my $options=shift; +sub get_schedule_dates { + my $schedule = shift; + my $options = shift; - my $is_exclude=$options->{exclude}||0; - my $dates=[]; - return $dates if (($is_exclude eq'1') && ($schedule->{exclude}ne'1')); - return $dates if (($is_exclude eq'0') && ($schedule->{exclude}eq'1')); + my $is_exclude = $options->{exclude} || 0; + my $dates = []; + return $dates if ( ( $is_exclude eq '1' ) && ( $schedule->{exclude} ne '1' ) ); + return $dates if ( ( $is_exclude eq '0' ) && ( $schedule->{exclude} eq '1' ) ); - if ($schedule->{period_type}eq'single'){ - $dates=get_single_date($schedule->{start}, $schedule->{duration}) ; - }elsif($schedule->{period_type}eq'days'){ - $dates=get_dates($schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{frequency}) ; - }elsif($schedule->{period_type}eq'week_of_month'){ - $dates=get_week_of_month_dates($schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{week_of_month}, $schedule->{weekday}, $schedule->{month}, $schedule->{nextDay}); - }else{ - print STDERR "unknown schedule period_type\n"; - } + if ( $schedule->{period_type} eq 'single' ) { + $dates = get_single_date( $schedule->{start}, $schedule->{duration} ); + } elsif ( $schedule->{period_type} eq 'days' ) { + $dates = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{frequency} ); + } elsif ( $schedule->{period_type} eq 'week_of_month' ) { + $dates = get_week_of_month_dates( + $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{week_of_month}, + $schedule->{weekday}, $schedule->{month}, $schedule->{nextDay} + ); + } else { + print STDERR "unknown schedule period_type\n"; + } - # set series schedule id - for my $date (@$dates){ - $date->{series_schedule_id}=$schedule->{schedule_id}; - } - return $dates; + # set series schedule id + for my $date (@$dates) { + $date->{series_schedule_id} = $schedule->{schedule_id}; + } + return $dates; } +sub get_week_of_month_dates { + my $start = shift; # datetime string + my $end = shift; # datetime string + my $duration = shift; # in minutes + my $week = shift; # every nth week of month + my $weekday = shift; # weekday [1..7] + my $frequency = shift; # every 1st,2nd,3th time + my $nextDay = shift; # add 24 hours to start, (for night hours at last weekday of month) -sub get_week_of_month_dates{ - my $start =shift; # datetime string - my $end =shift; # datetime string - my $duration =shift; # in minutes - my $week =shift; # every nth week of month - my $weekday =shift; # weekday [1..7] - my $frequency =shift; # every 1st,2nd,3th time - my $nextDay =shift; # add 24 hours to start, (for night hours at last weekday of month) + return undef if $start eq ''; + return undef if $end eq ''; + return undef if $duration eq ''; + return undef if $week eq ''; + return undef if $weekday eq ''; + return undef if $frequency eq ''; + return undef if $frequency == 0; - return undef if $start eq''; - return undef if $end eq''; - return undef if $duration eq''; - return undef if $week eq''; - return undef if $weekday eq''; - return undef if $frequency eq''; - return undef if $frequency==0; + my $start_dates = time::get_nth_weekday_in_month( $start, $end, $week, $weekday ); - my $start_dates=time::get_nth_weekday_in_month($start, $end, $week, $weekday); + if ( ( defined $nextDay ) && ( $nextDay > 0 ) ) { + for ( my $i = 0 ; $i < @$start_dates ; $i++ ) { + $start_dates->[$i] = time::add_hours_to_datetime( $start_dates->[$i], 24 ); + } + } - if ((defined $nextDay) && ($nextDay>0)){ - for (my $i=0;$i<@$start_dates;$i++){ - $start_dates->[$i]=time::add_hours_to_datetime($start_dates->[$i],24); - } - } + my $results = []; - my $results=[]; - - my $c=-1; - for my $start_datetime (@$start_dates){ - $c++; - my @start = @{time::datetime_to_array($start_datetime)}; - next unless @start>=6; - next if (($c % $frequency)!=0); + my $c = -1; + for my $start_datetime (@$start_dates) { + $c++; + my @start = @{ time::datetime_to_array($start_datetime) }; + next unless @start >= 6; + next if ( ( $c % $frequency ) != 0 ); my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds + $start[0], $start[1], $start[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds ); - my $end_datetime=time::array_to_datetime(\@end_datetime); + my $end_datetime = time::array_to_datetime( \@end_datetime ); - push @$results, { - start => $start_datetime, - end => $end_datetime - }; - } - return $results; + push @$results, + { + start => $start_datetime, + end => $end_datetime + }; + } + return $results; } #add duration to a single date -sub get_single_date{ +sub get_single_date { my $start_datetime = shift; - my $duration = shift; + my $duration = shift; - my @start = @{time::datetime_to_array($start_datetime)}; - return unless @start>=6; + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date + $start[0], $start[1], $start[2], # start date $start[3], $start[4], $start[5], # start time 0, 0, $duration, 0 # delta days, hours, minutes, seconds ); - my $date={ - start => $start_datetime, - end => time::array_to_datetime(\@end_datetime) - }; + my $date = { + start => $start_datetime, + end => time::array_to_datetime( \@end_datetime ) + }; return [$date]; } #calculate all dates between start_datetime and end_date with duration(minutes) and frequency(days) -sub get_dates{ +sub get_dates { my $start_datetime = shift; my $end_date = shift; - my $duration = shift; # in minutes - my $frequency = shift; # in days - #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; + my $duration = shift; # in minutes + my $frequency = shift; # in days + #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; - my @start = @{time::datetime_to_array($start_datetime)}; - return unless @start>=6; - my @start_date = ($start[0], $start[1], $start[2]); - my $start_time = sprintf('%02d:%02d:%02d', $start[3], $start[4], $start[5]); + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; + my @start_date = ( $start[0], $start[1], $start[2] ); + my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] ); - #print STDERR "$start_datetime,$end_date,$duration,$frequency\n"; + #print STDERR "$start_datetime,$end_date,$duration,$frequency\n"; - #return on single date - my $date={}; - $date->{start}= sprintf("%04d-%02d-%02d",@start_date).' '.$start_time; + #return on single date + my $date = {}; + $date->{start} = sprintf( "%04d-%02d-%02d", @start_date ) . ' ' . $start_time; return undef if $duration eq ''; - return undef if (($frequency eq '')||($end_date eq'')); + return undef if ( ( $frequency eq '' ) || ( $end_date eq '' ) ); - #continue on recurring date - my @end = @{time::datetime_to_array($end_date)}; - return unless @end>=3; - my @end_date = ($end[0], $end[1], $end[2]); + #continue on recurring date + my @end = @{ time::datetime_to_array($end_date) }; + return unless @end >= 3; + my @end_date = ( $end[0], $end[1], $end[2] ); - my $today=time::time_to_date(); - my ($year, $month, $day)=split(/\-/,$today); + my $today = time::time_to_date(); + my ( $year, $month, $day ) = split( /\-/, $today ); - my $dates=[]; - return $dates if ($end_date lt $today); - return $dates if ($frequency<1); + my $dates = []; + return $dates if ( $end_date lt $today ); + return $dates if ( $frequency < 1 ); + + my $j = Date::Calc::Delta_Days( @start_date, @end_date ); + my $c = 0; + for ( my $i = 0 ; $i <= $j ; $i += $frequency ) { + my @date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); + my $date = {}; + $date->{start} = sprintf( "%04d-%02d-%02d", @date ) . ' ' . $start_time; - my $j = Date::Calc::Delta_Days(@start_date, @end_date); - my $c=0; - for (my $i = 0; $i <= $j; $i+=$frequency ){ - my @date = Date::Calc::Add_Delta_Days($start[0], $start[1], $start[2], $i); - my $date={}; - $date->{start}=sprintf("%04d-%02d-%02d",@date).' '.$start_time; - #if($date->{start} gt $today){ - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $date[0], $date[1], $date[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds - ); - $date->{end}=time::array_to_datetime(\@end_datetime); - push @$dates,$date; + my @end_datetime = Date::Calc::Add_Delta_DHMS( + $date[0], $date[1], $date[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds + ); + $date->{end} = time::array_to_datetime( \@end_datetime ); + push @$dates, $date; + #} - last if ($c>200); + last if ( $c > 200 ); $c++; } return $dates; } #remove all series_dates for studio_id and series_id -sub delete{ - my $config=shift; - my $entry=shift; - +sub delete { + my $config = shift; + my $entry = shift; + return unless defined $entry->{project_id}; return unless defined $entry->{studio_id}; return unless defined $entry->{series_id}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $query=qq{ + my $query = qq{ delete from calcms_series_dates where project_id=? and studio_id=? and series_id=? }; my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id} ]; + #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put($dbh, $query, $bind_values); + db::put( $dbh, $query, $bind_values ); } # get all series dates where no event has been created for -sub getDatesWithoutEvent{ - my $config = shift; - my $options = shift; +sub getDatesWithoutEvent { + my $config = shift; + my $options = shift; return unless defined $options->{project_id}; return unless defined $options->{studio_id}; return unless defined $options->{from}; return unless defined $options->{till}; - - my $dbh=db::connect($config); - - my $query=q{ + + my $dbh = db::connect($config); + + my $query = q{ SELECT sd.* FROM calcms_series_dates sd LEFT JOIN calcms_events e on (sd.start = e.start) @@ -569,15 +586,15 @@ sub getDatesWithoutEvent{ and sd.end < ? order by sd.start }; - + my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{from}, $options->{till} ]; - my $entries = db::get($dbh, $query, $bind_values); + my $entries = db::get( $dbh, $query, $bind_values ); return $entries; - + } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index 328bf08..f975660 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -1,110 +1,111 @@ -package series_events; +package series_events; use warnings "all"; use strict; use Data::Dumper; use Date::Calc; -use markup; - -use db; -use log; -use time; -use uac; -use events; -use series; -use series_dates; -use studios; -use studio_timeslot_dates; -use event_history; -use images; +use markup(); +use db(); +use log(); +use time(); +use uac(); +use events(); +use series(); +use series_dates(); +use studios(); +use studio_timeslot_dates(); +use event_history(); +use images(); # check permissions, insert and update events related to series require Exporter; -our @ISA = qw(Exporter); +our @ISA = qw(Exporter); our @EXPORT_OK = qw( - check_permission - save_content - save_event_time - insert_event - delete_event - set_playout_status + check_permission + save_content + save_event_time + insert_event + delete_event + set_playout_status ); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -# update main fields of the event by id +# update main fields of the event by id # do not check for project,studio,series # all changed columns are returned for history handling -sub save_content{ - my $config=shift; - my $entry=shift; +sub save_content { + my $config = shift; + my $entry = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - return undef unless(defined $entry->{id}); + return undef unless ( defined $entry->{id} ); - for my $attr (keys %$entry){ - next unless defined $entry->{$attr}; - $entry->{$attr}=~s/^\s+//g; - $entry->{$attr}=~s/\s+$//g; + for my $attr ( keys %$entry ) { + next unless defined $entry->{$attr}; + $entry->{$attr} =~ s/^\s+//g; + $entry->{$attr} =~ s/\s+$//g; } - for my $attr ('image', 'series_image'){ - $entry->{$attr} = images::normalizeName($entry->{$attr}) if defined $entry->{$attr}; - } - - #print STDERR Dumper(\$entry->{content}); - for my $attr ('content', 'topic'){ - if (defined $entry->{$attr}){ - $entry->{'html_'.$attr}=markup::creole_to_html($entry->{$attr}); - #$entry->{'html_'.$attr}=~s/([^\>])\n+([^\<])/$1$2/g; - #$entry->{'html_'.$attr}=~s/^\s*(

      )?//g; - #$entry->{'html_'.$attr}=~s/(<\/p>)?\s*$//g; - } + for my $attr ( 'image', 'series_image' ) { + $entry->{$attr} = images::normalizeName( $entry->{$attr} ) if defined $entry->{$attr}; } - #print STDERR Dumper(\$entry->{series_image}); - #print STDERR "ok2\n"; - #return; - $entry->{modified_at}= time::time_to_datetime(time()); - #return; - #update only existing atributes + #print STDERR Dumper(\$entry->{content}); + for my $attr ( 'content', 'topic' ) { + if ( defined $entry->{$attr} ) { + $entry->{ 'html_' . $attr } = markup::creole_to_html( $entry->{$attr} ); - #TODO: double check series_name (needed for reassignment but not for editing...) - my @keys=(); - for my $key ('series_name', 'title', 'excerpt', 'content', 'html_content', - 'user_title', 'user_excerpt', 'topic', 'html_topic', - 'episode', - 'image', 'image_label', - 'series_image', 'series_image_label', - 'podcast_url', 'archive_url', - 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync', - 'modified_by' - ){ - push @keys, $key if defined $entry->{$key}; + #$entry->{'html_'.$attr}=~s/([^\>])\n+([^\<])/$1$2/g; + #$entry->{'html_'.$attr}=~s/^\s*(

      )?//g; + #$entry->{'html_'.$attr}=~s/(<\/p>)?\s*$//g; + } } - $entry->{episode} = undef if (defined $entry->{episode}) && ($entry->{episode} eq '0'); - $entry->{published} = 0 if (defined $entry->{draft}) && ($entry->{draft} eq '1'); - my $values =join(",", map {$_.'=?'} (@keys)); - my @bind_values =map {$entry->{$_}} (@keys); + #print STDERR Dumper(\$entry->{series_image}); + #print STDERR "ok2\n"; + #return; + $entry->{modified_at} = time::time_to_datetime( time() ); - push @bind_values,$entry->{id}; - my $query=qq{ + #return; + #update only existing atributes + + #TODO: double check series_name (needed for reassignment but not for editing...) + my @keys = (); + for my $key ( + 'series_name', 'title', 'excerpt', 'content', + 'html_content', 'user_title', 'user_excerpt', 'topic', + 'html_topic', 'episode', 'image', 'image_label', + 'series_image', 'series_image_label', 'podcast_url', 'archive_url', + 'live', 'published', 'playout', 'archived', + 'rerun', 'draft', 'disable_event_sync', 'modified_by' + ) + { + push @keys, $key if defined $entry->{$key}; + } + $entry->{episode} = undef if ( defined $entry->{episode} ) && ( $entry->{episode} eq '0' ); + $entry->{published} = 0 if ( defined $entry->{draft} ) && ( $entry->{draft} eq '1' ); + + my $values = join( ",", map { $_ . '=?' } (@keys) ); + my @bind_values = map { $entry->{$_} } (@keys); + + push @bind_values, $entry->{id}; + my $query = qq{ update calcms_events set $values where id=? }; #print STDERR "update:".$query.Dumper(\@bind_values); - my $result=db::put($dbh, $query, \@bind_values); - unless (defined $result){ - print STDERR "error on updating event\n" ; - return undef; + my $result = db::put( $dbh, $query, \@bind_values ); + unless ( defined $result ) { + print STDERR "error on updating event\n"; + return undef; } #print STDERR "result=$result\n"; @@ -115,69 +116,70 @@ sub save_content{ # save event time by id # do not check project, studio, series # for history handling all changed columns are returned -sub save_event_time{ - my $config=shift; - my $entry=shift; +sub save_event_time { + my $config = shift; + my $entry = shift; - return undef unless(defined $entry->{id}); - return undef unless(defined $entry->{duration}); - return undef unless(defined $entry->{start_date}); + return undef unless ( defined $entry->{id} ); + return undef unless ( defined $entry->{duration} ); + return undef unless ( defined $entry->{start_date} ); - my $dbh=db::connect($config); - my $event={ + my $dbh = db::connect($config); + my $event = { id => $entry->{id}, start => $entry->{start_date}, - end => time::add_minutes_to_datetime($entry->{start_date}, $entry->{duration}) + end => time::add_minutes_to_datetime( $entry->{start_date}, $entry->{duration} ) }; - - my $day_start=$config->{date}->{day_starting_hour}; - my $event_hour=int((split(/[\-\:\sT]/,$event->{start}))[3]); - my @update_columns=(); - my $bind_values=[]; - push @update_columns,'start=?'; - push @$bind_values,$event->{start}; + my $day_start = $config->{date}->{day_starting_hour}; + my $event_hour = int( ( split( /[\-\:\sT]/, $event->{start} ) )[3] ); + + my @update_columns = (); + my $bind_values = []; + push @update_columns, 'start=?'; + push @$bind_values, $event->{start}; push @update_columns, 'end=?'; push @$bind_values, $event->{end}; - # add start date - my $start_date= time::add_hours_to_datetime($event->{start}, -$day_start); + # add start date + my $start_date = time::add_hours_to_datetime( $event->{start}, -$day_start ); push @update_columns, 'start_date=?'; push @$bind_values, $start_date; - $event->{start_date} =$start_date; + $event->{start_date} = $start_date; - # add end date - my $end_date= time::add_hours_to_datetime($event->{end}, -$day_start); + # add end date + my $end_date = time::add_hours_to_datetime( $event->{end}, -$day_start ); push @update_columns, 'end_date=?'; push @$bind_values, $end_date; - $event->{end_date} = $end_date; + $event->{end_date} = $end_date; - my $update_columns=join(",\n", @update_columns); - my $update_sql=qq{ + my $update_columns = join( ",\n", @update_columns ); + my $update_sql = qq{ update calcms_events set $update_columns where id=? }; push @$bind_values, $event->{id}; + #print STDERR $update_sql."\n".Dumper($bind_values)."\n"; - db::put($dbh, $update_sql, $bind_values); + db::put( $dbh, $update_sql, $bind_values ); return $event; } -sub set_playout_status{ - my $config=shift; - my $entry=shift; +sub set_playout_status { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{start}; return undef unless defined $entry->{playout}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - # check if event is assigned to project and studio - my $sql=qq{ + # check if event is assigned to project and studio + my $sql = qq{ select se.event_id event_id from calcms_series_events se, calcms_events e where @@ -186,50 +188,53 @@ sub set_playout_status{ and se.project_id=? and se.studio_id=? }; - my $bind_values=[$entry->{start}, $entry->{project_id}, $entry->{studio_id}]; - #print STDERR Dumper($sql).Dumper($bind_values); - my $events=db::get($dbh, $sql, $bind_values); - #print STDERR Dumper($events); - return undef if scalar(@$events)!=1; - my $event_id=$events->[0]->{event_id}; - $sql=qq{ + my $bind_values = [ $entry->{start}, $entry->{project_id}, $entry->{studio_id} ]; + + #print STDERR Dumper($sql).Dumper($bind_values); + my $events = db::get( $dbh, $sql, $bind_values ); + + #print STDERR Dumper($events); + return undef if scalar(@$events) != 1; + my $event_id = $events->[0]->{event_id}; + $sql = qq{ update calcms_events set playout=? where id=? and start=? }; - $bind_values=[$entry->{playout}, $event_id, $entry->{start}]; + $bind_values = [ $entry->{playout}, $event_id, $entry->{start} ]; + #print STDERR $sql."\n".Dumper($bind_values)."\n"; - my $result=db::put($dbh, $sql, $bind_values); + my $result = db::put( $dbh, $sql, $bind_values ); return $result; } # is event assigned to project, studio and series? -sub is_event_assigned{ - my $config=shift; - my $entry=shift; +sub is_event_assigned { + my $config = shift; + my $entry = shift; return 0 unless defined $entry->{project_id}; return 0 unless defined $entry->{studio_id}; return 0 unless defined $entry->{series_id}; return 0 unless defined $entry->{event_id}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $sql=q{ + my $sql = q{ select * from calcms_series_events where project_id=? and studio_id=? and series_id=? and event_id=? }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}]; - my $results=db::get($dbh, $sql, $bind_values); + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; + my $results = db::get( $dbh, $sql, $bind_values ); - return 1 if @$results>=1; - return 0; + return 1 if @$results >= 1; + return 0; } -sub delete_event{ - my $config=shift; - my $entry=shift; +sub delete_event { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; @@ -237,278 +242,298 @@ sub delete_event{ return undef unless defined $entry->{event_id}; return undef unless defined $entry->{user}; - #is event assigned to project, studio and series? - unless(is_event_assigned($config, $entry)==1){ - print STDERR "cannot delete event with project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}"; - return 0; - } + #is event assigned to project, studio and series? + unless ( is_event_assigned( $config, $entry ) == 1 ) { + print STDERR +"cannot delete event with project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}"; + return 0; + } - event_history::insert_by_event_id($config, $entry); + event_history::insert_by_event_id( $config, $entry ); - #delete the association - series::unassign_event($config, $entry); + #delete the association + series::unassign_event( $config, $entry ); - # delete the event - my $dbh=db::connect($config); - my $sql=q{ + # delete the event + my $dbh = db::connect($config); + my $sql = q{ delete from calcms_events where id=? }; - my $bind_values=[$entry->{event_id}]; - db::put($dbh, $sql, $bind_values); + my $bind_values = [ $entry->{event_id} ]; + db::put( $dbh, $sql, $bind_values ); - return 1; + return 1; } - #check permissions # options: conditions (studio_id, series_id,...) # key permission: permissions to be checked (one of) # key check_for: user, studio, series, events, schedule # return error text or 1 if okay -sub check_permission{ - my $request=shift; - my $options=shift; +sub check_permission { + my $request = shift; + my $options = shift; - return "missing permission at check" unless defined $options->{permission}; - return "missing check_for at check" unless defined $options->{check_for}; - return "missing user at check" unless defined $request->{user}; - return "missing project_id at check" unless defined $options->{project_id}; - return "missing studio_id at check" unless defined $options->{studio_id}; - return "missing series_id at check" unless defined $options->{series_id}; + return "missing permission at check" unless defined $options->{permission}; + return "missing check_for at check" unless defined $options->{check_for}; + return "missing user at check" unless defined $request->{user}; + return "missing project_id at check" unless defined $options->{project_id}; + return "missing studio_id at check" unless defined $options->{studio_id}; + return "missing series_id at check" unless defined $options->{series_id}; my $permissions = $request->{permissions}; my $config = $request->{config}; - my $studio_check=studios::check($config, $options); - return $studio_check if($studio_check ne '1'); - print STDERR "check studio ok\n"; + my $studio_check = studios::check( $config, $options ); + return $studio_check if ( $studio_check ne '1' ); + print STDERR "check studio ok\n"; - my $project_check=project::check($config, $options); - return $project_check if($project_check ne '1'); - print STDERR "check project ok\n"; - - #check if permissions are set (like create_event) - my $found=0; - for my $permission (split /\,/,$options->{permission}){ - $found=1 if ((defined $permissions->{$permission})&&($permissions->{$permission})eq'1'); + my $project_check = project::check( $config, $options ); + return $project_check if ( $project_check ne '1' ); + print STDERR "check project ok\n"; + + #check if permissions are set (like create_event) + my $found = 0; + for my $permission ( split /\,/, $options->{permission} ) { + $found = 1 if ( ( defined $permissions->{$permission} ) && ( $permissions->{$permission} ) eq '1' ); } - return 'missing permission to '.$options->{permission} if $found==0; - delete $options->{permission}; + return 'missing permission to ' . $options->{permission} if $found == 0; + delete $options->{permission}; - #convert check list to hash - my $check={}; - for my $permission (@{$options->{check_for}}){ - $check->{$permission}=1; + #convert check list to hash + my $check = {}; + for my $permission ( @{ $options->{check_for} } ) { + $check->{$permission} = 1; } delete $options->{check_for}; - # is project assigned to studio - return "studio is not assigned to project" unless project::is_studio_assigned($config, $options)==1; + # is project assigned to studio + return "studio is not assigned to project" unless project::is_studio_assigned( $config, $options ) == 1; - #get studio names - my $studios=studios::get($config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id} - }); - return "unknown studio" unless defined $studios; - return "unknown studio" unless (@$studios==1); - my $studio=$studios->[0]; - my $studio_name=$studio->{name}||''; + #get studio names + my $studios = studios::get( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id} + } + ); + return "unknown studio" unless defined $studios; + return "unknown studio" unless ( @$studios == 1 ); + my $studio = $studios->[0]; + my $studio_name = $studio->{name} || ''; - #get series names - my $series=series::get($config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id} - }); - my $series_name=$series->[0]->{series_name}||''; - $series_name.=' - '.$series->[0]->{title} if $series->[0]->{series_name} ne ''; - - my $draft = 0; - $draft = 1 if (defined $options->{draft}) && ($options->{draft} == 1 ); + #get series names + my $series = series::get( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id} + } + ); + my $series_name = $series->[0]->{series_name} || ''; + $series_name .= ' - ' . $series->[0]->{title} if $series->[0]->{series_name} ne ''; - #check all items from checklist - if((defined $check->{user})&&(uac::is_user_assigned_to_studio($request, $options)==0)){ + my $draft = 0; + $draft = 1 if ( defined $options->{draft} ) && ( $options->{draft} == 1 ); + + #check all items from checklist + if ( ( defined $check->{user} ) && ( uac::is_user_assigned_to_studio( $request, $options ) == 0 ) ) { return "User '$request->{user}' is not assigned to studio $studio_name ($options->{studio_id})"; } - if((defined $check->{studio})&&(project::is_series_assigned($config, $options)==0)){ + if ( ( defined $check->{studio} ) && ( project::is_series_assigned( $config, $options ) == 0 ) ) { return "Series '$series_name' ($options->{series_id}) is not assigned to studio '$studio_name' ($options->{studio_id})"; - } - + } + # check series and can user update events - if((defined $check->{series})&&(series::can_user_update_events($request, $options)==0)){ - return "unknown series" unless defined $series; + if ( ( defined $check->{series} ) && ( series::can_user_update_events( $request, $options ) == 0 ) ) { + return "unknown series" unless defined $series; return "User $request->{user} cannot update events for series '$series_name' ($options->{series_id})"; } - + # check series and can user create events - if((defined $check->{create_events})&&(series::can_user_create_events($request, $options)==0)){ - return "unknown series" unless defined $series; + if ( ( defined $check->{create_events} ) && ( series::can_user_create_events( $request, $options ) == 0 ) ) { + return "unknown series" unless defined $series; return "User $request->{user} cannot create events for series '$series_name' ($options->{series_id})"; } - - if( ($draft==0) && (defined $check->{studio_timeslots}) && (studio_timeslot_dates::can_studio_edit_events($config, $options)==0) ){ + + if ( ( $draft == 0 ) + && ( defined $check->{studio_timeslots} ) + && ( studio_timeslot_dates::can_studio_edit_events( $config, $options ) == 0 ) ) + { return "requested time is not assigned to studio '$studio_name' ($options->{studio_id})"; - } - - #check if event is assigned to user,project,studio,series,location - if(defined $check->{events}){ - return "missing event_id" unless defined $options->{event_id}; - my $result=series::is_event_assigned_to_user($request, $options); - return $result if $result ne '1'; - } - - # prevent editing events that are over for more than 14 days - if( ($draft==0) && (defined $check->{event_age}) ){ - if (series::is_event_older_than_days($config, { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - event_id => $options->{event_id}, - max_age => 14 - })==1){ - return "show is over for more than 2 weeks" unless( - (defined $permissions->{update_event_after_week}) - && ($permissions->{update_event_after_week} eq '1') - ); - } - } - - #check if schedule event exists for given date - if( ($draft == 0) && (defined $check->{schedule}) ){ - return "unknown series" unless defined $series; - return "missing start_at at check_permission" unless defined $options->{start_date}; - #TODO: check "is_event_scheduled" if start_at could be moved to start_date - $options->{start_at}=$options->{start_date}; - return "No event scheduled for series '$series_name' ($options->{series_id})" if(series_dates::is_event_scheduled($request, $options)==0); } - + + #check if event is assigned to user,project,studio,series,location + if ( defined $check->{events} ) { + return "missing event_id" unless defined $options->{event_id}; + my $result = series::is_event_assigned_to_user( $request, $options ); + return $result if $result ne '1'; + } + + # prevent editing events that are over for more than 14 days + if ( ( $draft == 0 ) && ( defined $check->{event_age} ) ) { + if ( + series::is_event_older_than_days( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + event_id => $options->{event_id}, + max_age => 14 + } + ) == 1 + ) + { + return "show is over for more than 2 weeks" + unless ( ( defined $permissions->{update_event_after_week} ) + && ( $permissions->{update_event_after_week} eq '1' ) ); + } + } + + #check if schedule event exists for given date + if ( ( $draft == 0 ) && ( defined $check->{schedule} ) ) { + return "unknown series" unless defined $series; + return "missing start_at at check_permission" unless defined $options->{start_date}; + + #TODO: check "is_event_scheduled" if start_at could be moved to start_date + $options->{start_at} = $options->{start_date}; + return "No event scheduled for series '$series_name' ($options->{series_id})" + if ( series_dates::is_event_scheduled( $request, $options ) == 0 ); + } + return '1'; } #not handled, yet: # responsible, status, rating, podcast_url, media_url, visible, time_of_day, recurrence, reference, created_at -# category, time_of_day, +# category, time_of_day, #insert event -sub insert_event{ - my $config=shift; - my $options=shift; +sub insert_event { + my $config = shift; + my $options = shift; - my $project_id = $options->{project_id}; - my $studio = $options->{studio}; - my $serie = $options->{serie}; - my $params = $options->{event}; - my $user = $options->{user}; + my $project_id = $options->{project_id}; + my $studio = $options->{studio}; + my $serie = $options->{serie}; + my $params = $options->{event}; + my $user = $options->{user}; - return 0 unless defined $studio; - return 0 unless defined $serie; - return 0 unless defined $params; - return 0 unless defined $user; - return 0 unless defined $studio->{location}; + return 0 unless defined $studio; + return 0 unless defined $serie; + return 0 unless defined $params; + return 0 unless defined $user; + return 0 unless defined $studio->{location}; - my $projects=project::get($config, {project_id=>$project_id}); - if(@$projects==0){ - print STDERR "project not found at insert event\n"; - return 0; - } - my $projectName=$projects->[0]->{name}; - my $event={ - project => $projectName, - location => $studio->{location}, # location from studio - }; - #print '

      ';
      -    $event=series_events::add_event_dates($config, $event, $params);
      +	my $projects = project::get( $config, { project_id => $project_id } );
      +	if ( @$projects == 0 ) {
      +		print STDERR "project not found at insert event\n";
      +		return 0;
      +	}
      +	my $projectName = $projects->[0]->{name};
      +	my $event       = {
      +		project  => $projectName,
      +		location => $studio->{location},    # location from studio
      +	};
       
      -    #get event content from series
      -    for my $attr ('program', 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'episode', 'podcast_url', 'archive_url'){
      -        $event->{$attr} = $serie->{$attr} if defined $serie->{$attr};
      -    }
      -    $event->{series_image}       = $serie->{image}   if defined $serie->{image};
      -    $event->{series_image_label} = $serie->{licence} if defined $serie->{licence};
      +	#print '
      ';
      +	$event = series_events::add_event_dates( $config, $event, $params );
       
      -    #overwrite series values from parameters
      -    for my $attr ('program', 'series_name', 'title', 'user_title', 'excerpt', 'user_except', 'content', 'topic', 'image', 'episode', 'podcast_url', 'archive_url'){
      -        $event->{$attr} = $params->{$attr} if defined $params->{$attr};
      -    }
      -	$event->{'html_content'} = markup::creole_to_html($event->{'content'}) if defined $event->{'content'};
      -   	$event->{'html_topic'}   = markup::creole_to_html($event->{'topic'})   if defined $event->{'topic'};
      +	#get event content from series
      +	for my $attr ( 'program', 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'episode', 'podcast_url', 'archive_url' ) {
      +		$event->{$attr} = $serie->{$attr} if defined $serie->{$attr};
      +	}
      +	$event->{series_image}       = $serie->{image}   if defined $serie->{image};
      +	$event->{series_image_label} = $serie->{licence} if defined $serie->{licence};
       
      -    #add event status
      -    for my $attr ('live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync'){
      -        $event->{$attr}=$params->{$attr}||0;
      -    }
      +	#overwrite series values from parameters
      +	for my $attr (
      +		'program', 'series_name', 'title', 'user_title', 'excerpt',     'user_except',
      +		'content', 'topic',       'image', 'episode',    'podcast_url', 'archive_url'
      +	  )
      +	{
      +		$event->{$attr} = $params->{$attr} if defined $params->{$attr};
      +	}
      +	$event->{'html_content'} = markup::creole_to_html( $event->{'content'} ) if defined $event->{'content'};
      +	$event->{'html_topic'}   = markup::creole_to_html( $event->{'topic'} )   if defined $event->{'topic'};
       
      -    if($serie->{has_single_events}eq'1'){
      -        delete $event->{series_name};
      -        delete $event->{episode};
      -    }
      +	#add event status
      +	for my $attr ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync' ) {
      +		$event->{$attr} = $params->{$attr} || 0;
      +	}
       
      -    $event->{modified_at} = time::time_to_datetime(time());
      -    $event->{created_at}  = time::time_to_datetime(time());
      -    $event->{modified_by} = $user;
      +	if ( $serie->{has_single_events} eq '1' ) {
      +		delete $event->{series_name};
      +		delete $event->{episode};
      +	}
       
      -    #print STDERR Dumper($event);
      -	my $dbh=db::connect($config);
      -	my $event_id= db::insert($dbh, 'calcms_events', $event);
      +	$event->{modified_at} = time::time_to_datetime( time() );
      +	$event->{created_at}  = time::time_to_datetime( time() );
      +	$event->{modified_by} = $user;
       
      -    #add to history
      -	$event->{project_id}= $project_id;
      -	$event->{studio_id} = $studio->{id};
      -	$event->{series_id} = $serie->{series_id};
      -	$event->{event_id}  = $event_id;
      -	event_history::insert($config, $event);
      +	#print STDERR Dumper($event);
      +	my $dbh = db::connect($config);
      +	my $event_id = db::insert( $dbh, 'calcms_events', $event );
      +
      +	#add to history
      +	$event->{project_id} = $project_id;
      +	$event->{studio_id}  = $studio->{id};
      +	$event->{series_id}  = $serie->{series_id};
      +	$event->{event_id}   = $event_id;
      +	event_history::insert( $config, $event );
       	return $event_id;
       }
       
      -
       #set start, end, start-date, end_date to an event
      -sub add_event_dates{
      -    my $config  =shift;
      -    my $event  =shift;
      -    my $params =shift;
      +sub add_event_dates {
      +	my $config = shift;
      +	my $event  = shift;
      +	my $params = shift;
       
      -    #start and end datetime
      -    $event->{start}    = $params->{start_date};
      -    $event->{end}      = time::add_minutes_to_datetime($params->{start_date}, $params->{duration});
      +	#start and end datetime
      +	$event->{start} = $params->{start_date};
      +	$event->{end} = time::add_minutes_to_datetime( $params->{start_date}, $params->{duration} );
       
      -    #set program days
      -	my $day_start=$config->{date}->{day_starting_hour};
      -	$event->{start_date} = time::date_cond(time::add_hours_to_datetime($event->{start}, -$day_start));
      -	$event->{end_date}   = time::date_cond(time::add_hours_to_datetime($event->{end},   -$day_start));
      -    return $event;
      +	#set program days
      +	my $day_start = $config->{date}->{day_starting_hour};
      +	$event->{start_date} = time::date_cond( time::add_hours_to_datetime( $event->{start}, -$day_start ) );
      +	$event->{end_date}   = time::date_cond( time::add_hours_to_datetime( $event->{end},   -$day_start ) );
      +	return $event;
       }
       
      -sub update_series_images{
      -    my $config  = shift;
      -    my $options = shift;
      +sub update_series_images {
      +	my $config  = shift;
      +	my $options = shift;
       
      -    return "missing project_id"    unless defined $options->{project_id};
      -    return "missing studio_id"     unless defined $options->{studio_id};
      -    return "missing series_id"     unless defined $options->{series_id};
      -    return "missing series_image"  unless defined $options->{series_image};
      -    
      -    #print "save $options->{series_image}\n";
      +	return "missing project_id"   unless defined $options->{project_id};
      +	return "missing studio_id"    unless defined $options->{studio_id};
      +	return "missing series_id"    unless defined $options->{series_id};
      +	return "missing series_image" unless defined $options->{series_image};
       
      -	my $events=series::get_events(
      -		$config, {
      -		    project_id => $options->{project_id},
      -            studio_id  => $options->{studio_id}, 
      -            series_id  => $options->{series_id},
      +	#print "save $options->{series_image}\n";
      +
      +	my $events = series::get_events(
      +		$config,
      +		{
      +			project_id => $options->{project_id},
      +			studio_id  => $options->{studio_id},
      +			series_id  => $options->{series_id},
       		}
       	);
       
      -	for my $event (@$events){
      -        $event->{series_image} = $options->{series_image};
      -        series_events::save_content($config, $event);
      +	for my $event (@$events) {
      +		$event->{series_image} = $options->{series_image};
      +		series_events::save_content( $config, $event );
       	}
       }
       
      -
      -sub error{
      -	my $msg=shift;
      +sub error {
      +	my $msg = shift;
       	print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/series_schedule.pm b/lib/calcms/series_schedule.pm index 849e478..ecea4ea 100644 --- a/lib/calcms/series_schedule.pm +++ b/lib/calcms/series_schedule.pm @@ -1,181 +1,184 @@ -package series_schedule; +package series_schedule; use warnings "all"; use strict; use Data::Dumper; -use series_dates; +use series_dates(); # table: calcms_series_schedule -# columns: id, studio_id, series_id, - # start (datetime), - # duration (minutes), - # frequency (days), - # end (date), - # weekday (1..7) - # week_of_month (1..5) - # month - # nextDay (add 24 hours to start) +# columns: id, studio_id, series_id, +# start (datetime), +# duration (minutes), +# frequency (days), +# end (date), +# weekday (1..7) +# week_of_month (1..5) +# month +# nextDay (add 24 hours to start) require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get insert update delete); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get insert update delete); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_series_schedule'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_series_schedule' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } #map schedule id to id -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'series_id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{schedule_id}) && ($condition->{schedule_id} ne '')){ - push @conditions, 'id=?'; + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'id=?'; push @bind_values, $condition->{schedule_id}; } - if ((defined $condition->{schedule_ids}) && (ref($condition->{schedule_ids}) eq 'ARRAY')){ - my @scheduleIds = @{$condition->{schedule_ids}}; - push @conditions, 'id in ('.(join(',', (map {'?'} @scheduleIds) )).')'; - for my $id (@scheduleIds){ - push @bind_values, $id; - } + if ( ( defined $condition->{schedule_ids} ) && ( ref( $condition->{schedule_ids} ) eq 'ARRAY' ) ) { + my @scheduleIds = @{ $condition->{schedule_ids} }; + push @conditions, 'id in (' . ( join( ',', ( map { '?' } @scheduleIds ) ) ) . ')'; + for my $id (@scheduleIds) { + push @bind_values, $id; + } } - if ((defined $condition->{start}) && ($condition->{start} ne '')){ - push @conditions, 'start=?'; + if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) { + push @conditions, 'start=?'; push @bind_values, $condition->{start}; } - if ((defined $condition->{exclude}) && ($condition->{exclude} ne '')){ - push @conditions, 'exclude=?'; + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'exclude=?'; push @bind_values, $condition->{exclude}; } - if ((defined $condition->{period_type}) && ($condition->{period_type} ne '')){ - push @conditions, 'period_type=?'; + if ( ( defined $condition->{period_type} ) && ( $condition->{period_type} ne '' ) ) { + push @conditions, 'period_type=?'; push @bind_values, $condition->{period_type}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_series_schedule $conditions order by exclude, start }; + #print STDERR $query."\n".Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); - for my $entry (@$entries){ - $entry->{schedule_id}=$entry->{id}; + my $entries = db::get( $dbh, $query, \@bind_values ); + for my $entry (@$entries) { + $entry->{schedule_id} = $entry->{id}; delete $entry->{id}; } - #print STDERR Dumper($entries); + + #print STDERR Dumper($entries); return $entries; } - -sub insert{ - my $config=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{series_id}; return undef unless defined $entry->{start}; - my $dbh=db::connect($config); - return db::insert($dbh, 'calcms_series_schedule', $entry); + my $dbh = db::connect($config); + return db::insert( $dbh, 'calcms_series_schedule', $entry ); } #schedule id to id -sub update{ - my $config=shift; - my $entry=shift; +sub update { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{series_id}; return undef unless defined $entry->{schedule_id}; return undef unless defined $entry->{start}; - $entry->{nextDay}=0 unless defined $entry->{nextDay}; + $entry->{nextDay} = 0 unless defined $entry->{nextDay}; - $entry->{id}=$entry->{schedule_id}; + $entry->{id} = $entry->{schedule_id}; delete $entry->{schedule_id}; - my $dbh=db::connect($config); - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values,$entry->{project_id}; - push @bind_values,$entry->{studio_id}; - push @bind_values,$entry->{id}; + push @bind_values, $entry->{project_id}; + push @bind_values, $entry->{studio_id}; + push @bind_values, $entry->{id}; - my $query=qq{ + my $query = qq{ update calcms_series_schedule set $values where project_id=? and studio_id=? and id=? }; + #print STDERR Dumper($query).Dumper(\@bind_values); - db::put($dbh, $query, \@bind_values); + db::put( $dbh, $query, \@bind_values ); print "done\n"; } #map schedule id to id -sub delete{ - my $config=shift; - my $entry=shift; - +sub delete { + my $config = shift; + my $entry = shift; + return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{series_id}; return undef unless defined $entry->{schedule_id}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $query=qq{ + my $query = qq{ delete from calcms_series_schedule where project_id=? and studio_id=? and series_id=? and id=? }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{schedule_id}]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{schedule_id} ]; + #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put($dbh, $query, $bind_values); + db::put( $dbh, $query, $bind_values ); } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/startup.pl b/lib/calcms/startup.pl index 3ebb66c..55a6121 100644 --- a/lib/calcms/startup.pl +++ b/lib/calcms/startup.pl @@ -1,32 +1,19 @@ -use lib qw(/home/calcms/lib/calcms/); +use lib qw(/home/radio/calcms/calcms/); -return 1; -#use B::TerseSize - -#load mod_perl modules -#use Apache2; -#use ModPerl::RegistryPrefork; -#use Apache::compat; - -#on upload CGI open of tmpfile: Permission denied -#use CGI; - -#load common used modules -#use Data::Dumper; -#use DBI; -use Apache::DBI; +use Data::Dumper; +use Apache::DBI(); #$Apache::DBI::DEBUG = 2; -use Time::Local; -use Date::Calc; +use Time::Local(); +use Date::Calc(); use Calendar::Simple qw(date_span); -use config; -use log; -use time; -use db; -use cache; -use template; +use config(); +use log(); +use time(); +use db(); +use cache(); +use template(); #do not delete last line! -1; +return 1; diff --git a/lib/calcms/studio_timeslot_dates.pm b/lib/calcms/studio_timeslot_dates.pm index 226434e..1f4be4c 100644 --- a/lib/calcms/studio_timeslot_dates.pm +++ b/lib/calcms/studio_timeslot_dates.pm @@ -1,98 +1,98 @@ -package studio_timeslot_dates; +package studio_timeslot_dates; use warnings "all"; use strict; use Data::Dumper; -use Date::Calc; -use time; +use Date::Calc(); +use time(); # schedule dates for calcms_studio_schedule # table: calcms_studio_timeslot_dates # columns: id, studio_id, start(datetime), end(datetime) # TODO: delete column schedule_id require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get insert update delete get_dates); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get insert update delete get_dates); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_studio_timeslot_dates'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_studio_timeslot_dates' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } # get all studio_timeslot_dates for studio_id within given time range # calculate start_date, end_date, weeday, day from start and end(datetime) -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $date_range_include=0; - $date_range_include=1 if (defined $condition->{date_range_include}) && ($condition->{date_range_include}==1); + my $date_range_include = 0; + $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{schedule_id}) && ($condition->{schedule_id} ne '')){ - push @conditions, 'schedule_id=?'; + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'schedule_id=?'; push @bind_values, $condition->{schedule_id}; } - # from and till range from an event should beween start and end of the studio's permission - if ((defined $condition->{start}) && ($condition->{start} ne '')){ - push @conditions, 'start<=?'; + # from and till range from an event should beween start and end of the studio's permission + if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) { + push @conditions, 'start<=?'; push @bind_values, $condition->{start}; } - if ((defined $condition->{end}) && ($condition->{end} ne '')){ - push @conditions, 'end>=?'; + if ( ( defined $condition->{end} ) && ( $condition->{end} ne '' ) ) { + push @conditions, 'end>=?'; push @bind_values, $condition->{end}; } - # check only a given date date range (without time) - if ((defined $condition->{from}) && ($condition->{from} ne '')){ - if ($date_range_include==1){ - push @conditions, 'end_date>=?'; - push @bind_values, $condition->{from}; - }else{ - push @conditions, 'start_date>=?'; - push @bind_values, $condition->{from}; - } + # check only a given date date range (without time) + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'end_date>=?'; + push @bind_values, $condition->{from}; + } else { + push @conditions, 'start_date>=?'; + push @bind_values, $condition->{from}; + } } - if ((defined $condition->{till}) && ($condition->{till} ne '')){ - if ($date_range_include==1){ - push @conditions, 'start_date<=?'; - push @bind_values, $condition->{till}; - }else{ - push @conditions, 'end_date<=?'; - push @bind_values, $condition->{till}; - } + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'start_date<=?'; + push @bind_values, $condition->{till}; + } else { + push @conditions, 'end_date<=?'; + push @bind_values, $condition->{till}; + } } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select date(start) start_date ,date(end) end_date ,dayname(start) start_weekday @@ -107,326 +107,351 @@ sub get{ $conditions order by start }; + #print STDERR $query."\n"; #print STDERR Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); - for my $entry (@$entries){ - $entry->{start_weekday}=substr($entry->{start_weekday},0,2); - $entry->{end_weekday}=substr($entry->{end_weekday},0,2); + my $entries = db::get( $dbh, $query, \@bind_values ); + for my $entry (@$entries) { + $entry->{start_weekday} = substr( $entry->{start_weekday}, 0, 2 ); + $entry->{end_weekday} = substr( $entry->{end_weekday}, 0, 2 ); } - #print STDERR Dumper($entries); + + #print STDERR Dumper($entries); return $entries; } - - #get all studio_timeslot_schedules for studio_id and update studio_timeslot_dates -sub update{ - my $config=shift; - my $entry=shift; +sub update { + my $config = shift; + my $entry = shift; - return undef unless(defined $entry->{schedule_id}); + return undef unless ( defined $entry->{schedule_id} ); - my $dbh=db::connect($config); + my $dbh = db::connect($config); #delete all dates for schedule id - studio_timeslot_dates::delete($config, $entry); + studio_timeslot_dates::delete( $config, $entry ); - my $day_start=$config->{date}->{day_starting_hour}; + my $day_start = $config->{date}->{day_starting_hour}; #get the schedule with schedule id ordered by date - my $schedules=studio_timeslot_schedule::get($config, { - schedule_id => $entry->{schedule_id} - }); + my $schedules = studio_timeslot_schedule::get( + $config, + { + schedule_id => $entry->{schedule_id} + } + ); + #add scheduled dates - my $i=0; - my $dates={}; - for my $schedule (@$schedules){ + my $i = 0; + my $dates = {}; + for my $schedule (@$schedules) { + #calculate dates from start to end_date - my $dateList=get_dates($schedule->{start}, $schedule->{end}, $schedule->{end_date}, $schedule->{frequency}); - #print STDERR Dumper($dateList); - for my $date (@$dateList){ - #set studio i from - $date->{project_id} = $schedule->{project_id}; - $date->{studio_id} = $schedule->{studio_id}; - $date->{schedule_id} = $schedule->{schedule_id}; - $dates->{$date->{start}.$date->{studio_id}}=$date; - } + my $dateList = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{end_date}, $schedule->{frequency} ); + + #print STDERR Dumper($dateList); + for my $date (@$dateList) { + + #set studio i from + $date->{project_id} = $schedule->{project_id}; + $date->{studio_id} = $schedule->{studio_id}; + $date->{schedule_id} = $schedule->{schedule_id}; + $dates->{ $date->{start} . $date->{studio_id} } = $date; + } } - for my $date (keys %$dates){ - my $timeslot_date=$dates->{$date}; + for my $date ( keys %$dates ) { + my $timeslot_date = $dates->{$date}; + #insert date - my $entry={ - project_id => $timeslot_date->{project_id}, - studio_id => $timeslot_date->{studio_id}, - schedule_id => $timeslot_date->{schedule_id}, - start => $timeslot_date->{start}, - end => $timeslot_date->{end}, - }; - $entry->{start_date}= time::add_hours_to_datetime($entry->{start}, -$day_start); - $entry->{end_date}= time::add_hours_to_datetime($entry->{end}, -$day_start); - db::insert($dbh, 'calcms_studio_timeslot_dates', $entry); - #print STDERR "$entry->{start_date}\n"; - $i++; - } - #print STDERR "$i studio_timeslot_dates updates\n"; - return $i; + my $entry = { + project_id => $timeslot_date->{project_id}, + studio_id => $timeslot_date->{studio_id}, + schedule_id => $timeslot_date->{schedule_id}, + start => $timeslot_date->{start}, + end => $timeslot_date->{end}, + }; + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + db::insert( $dbh, 'calcms_studio_timeslot_dates', $entry ); + + #print STDERR "$entry->{start_date}\n"; + $i++; + } + + #print STDERR "$i studio_timeslot_dates updates\n"; + return $i; } # calculate all start/end datetimes between start_date and stop_date with a frequency(days) # returns list of hashs with start and end -sub get_dates{ - my $start_datetime = shift; # start - my $end_datetime = shift; # start - my $stop_date = shift; # limit recurring events - my $frequency = shift; # in days +sub get_dates { + my $start_datetime = shift; # start + my $end_datetime = shift; # start + my $stop_date = shift; # limit recurring events + my $frequency = shift; # in days - my @start = @{time::datetime_to_array($start_datetime)}; - return unless @start>=6; - my @start_date = ($start[0], $start[1], $start[2]); - my $start_date = sprintf("%04d-%02d-%02d",@start_date); - my $start_time = sprintf('%02d:%02d:%02d', $start[3], $start[4], $start[5]); + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; + my @start_date = ( $start[0], $start[1], $start[2] ); + my $start_date = sprintf( "%04d-%02d-%02d", @start_date ); + my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] ); - my @end = @{time::datetime_to_array($end_datetime)}; - return unless @end>=6; - my @end_date = ($end[0], $end[1], $end[2]); - my $end_date = sprintf("%04d-%02d-%02d",@end_date); - my $end_time = sprintf('%02d:%02d:%02d', $end[3], $end[4], $end[5]); + my @end = @{ time::datetime_to_array($end_datetime) }; + return unless @end >= 6; + my @end_date = ( $end[0], $end[1], $end[2] ); + my $end_date = sprintf( "%04d-%02d-%02d", @end_date ); + my $end_time = sprintf( '%02d:%02d:%02d', $end[3], $end[4], $end[5] ); - my @stop = @{time::date_to_array($stop_date)}; - return unless @end>=3; - my @stop_date = ($stop[0], $stop[1], $stop[2]); - $stop_date = sprintf("%04d-%02d-%02d",@stop_date); + my @stop = @{ time::date_to_array($stop_date) }; + return unless @end >= 3; + my @stop_date = ( $stop[0], $stop[1], $stop[2] ); + $stop_date = sprintf( "%04d-%02d-%02d", @stop_date ); - my $date={}; - $date->{start}= $start_date.' '.$start_time; - $date->{end} = $end_date.' '.$end_time; + my $date = {}; + $date->{start} = $start_date . ' ' . $start_time; + $date->{end} = $end_date . ' ' . $end_time; - my $dates=[]; - return $dates if ($date->{end} le $date->{start}); + my $dates = []; + return $dates if ( $date->{end} le $date->{start} ); - return $dates if ($stop_date lt $end_date); + return $dates if ( $stop_date lt $end_date ); - my $j = Date::Calc::Delta_Days(@start_date, @stop_date); - return $dates if $j<0; + my $j = Date::Calc::Delta_Days( @start_date, @stop_date ); + return $dates if $j < 0; - # split full time events into single days - if($frequency<1){ - #start day - my @next_date = Date::Calc::Add_Delta_Days($start[0], $start[1], $start[2], 1); - my $next_date = sprintf("%04d-%02d-%02d",@next_date); - push @$dates,{ - start => $start_date.' '.$start_time, - end => $next_date .' 00:00:00', - }; - my $c=0; - for (my $i = 1; $i < $j; $i++){ - my @start_date = Date::Calc::Add_Delta_Days($start[0], $start[1], $start[2], $i); - my $start_date = sprintf("%04d-%02d-%02d",@start_date); - my @next_date = Date::Calc::Add_Delta_Days($start[0], $start[1], $start[2], $i+1); - my $next_date = sprintf("%04d-%02d-%02d",@next_date); - push @$dates,{ - start => $start_date.' 00:00:00', - end => $next_date.' 00:00:00', - }; - last if ($c>1000); - $c++; - } - #end day - push @$dates,{ - start => $end_date.' 00:00:00', - end => $end_date.' '.$end_time, - } if($end_time ne '00:00:00'); - return $dates; - } + # split full time events into single days + if ( $frequency < 1 ) { - # multiple time events - my $c=0; - for (my $i = 0; $i <= $j; $i+=$frequency ){ - #add frequency to start and end date - my @start_date = Date::Calc::Add_Delta_Days($start[0], $start[1], $start[2], $i); - my @end_date = Date::Calc::Add_Delta_Days($end[0], $end[1], $end[2], $i); - #print STDERR Dumper(\@start_date); - #print STDERR Dumper(\@end_date); - my $start_date=sprintf("%04d-%02d-%02d",@start_date); - my $end_date =sprintf("%04d-%02d-%02d",@end_date); - push @$dates,{ - start => $start_date.' '.$start_time, - end => $end_date.' '.$end_time, - }; - last if ($c>1000); + #start day + my @next_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], 1 ); + my $next_date = sprintf( "%04d-%02d-%02d", @next_date ); + push @$dates, + { + start => $start_date . ' ' . $start_time, + end => $next_date . ' 00:00:00', + }; + my $c = 0; + for ( my $i = 1 ; $i < $j ; $i++ ) { + my @start_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); + my $start_date = sprintf( "%04d-%02d-%02d", @start_date ); + my @next_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i + 1 ); + my $next_date = sprintf( "%04d-%02d-%02d", @next_date ); + push @$dates, + { + start => $start_date . ' 00:00:00', + end => $next_date . ' 00:00:00', + }; + last if ( $c > 1000 ); + $c++; + } + + #end day + push @$dates, + { + start => $end_date . ' 00:00:00', + end => $end_date . ' ' . $end_time, + } if ( $end_time ne '00:00:00' ); + return $dates; + } + + # multiple time events + my $c = 0; + for ( my $i = 0 ; $i <= $j ; $i += $frequency ) { + + #add frequency to start and end date + my @start_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); + my @end_date = Date::Calc::Add_Delta_Days( $end[0], $end[1], $end[2], $i ); + + #print STDERR Dumper(\@start_date); + #print STDERR Dumper(\@end_date); + my $start_date = sprintf( "%04d-%02d-%02d", @start_date ); + my $end_date = sprintf( "%04d-%02d-%02d", @end_date ); + push @$dates, + { + start => $start_date . ' ' . $start_time, + end => $end_date . ' ' . $end_time, + }; + last if ( $c > 1000 ); $c++; } return $dates; } #remove all studio_timeslot_dates for studio_id and schedule_id -sub delete{ - my $config=shift; - my $entry=shift; - - #print STDERR "delete:".Dumper($entry); - return unless(defined $entry->{project_id}); - return unless(defined $entry->{studio_id}); - return unless(defined $entry->{schedule_id}); +sub delete { + my $config = shift; + my $entry = shift; - my $dbh=db::connect($config); + #print STDERR "delete:".Dumper($entry); + return unless ( defined $entry->{project_id} ); + return unless ( defined $entry->{studio_id} ); + return unless ( defined $entry->{schedule_id} ); - my $query=qq{ + my $dbh = db::connect($config); + + my $query = qq{ delete from calcms_studio_timeslot_dates where schedule_id=? }; - my $bind_values=[$entry->{schedule_id}]; + my $bind_values = [ $entry->{schedule_id} ]; + #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put($dbh, $query, $bind_values); + db::put( $dbh, $query, $bind_values ); } # time based filter to check if studio is assigned to an studio at a given time range # return 1 if there is a schedule date starting before start and ending after end -sub can_studio_edit_events{ - my $config=shift; - my $condition=shift; +sub can_studio_edit_events { + my $config = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); - #print Dumper($condition); + my @conditions = (); + my @bind_values = (); - #return 0 unless defined $condition->{project_id}; - return 0 unless defined $condition->{studio_id}; - return 0 unless defined $condition->{start}; - return 0 unless defined $condition->{end}; + #print Dumper($condition); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + #return 0 unless defined $condition->{project_id}; + return 0 unless defined $condition->{studio_id}; + return 0 unless defined $condition->{start}; + return 0 unless defined $condition->{end}; + + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{start}) && ($condition->{start} ne '')){ - push @conditions, 'start<=?'; + if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) { + push @conditions, 'start<=?'; push @bind_values, $condition->{start}; } - if ((defined $condition->{end}) && ($condition->{end} ne '')){ - push @conditions, 'end>=?'; + if ( ( defined $condition->{end} ) && ( $condition->{end} ne '' ) ) { + push @conditions, 'end>=?'; push @bind_values, $condition->{end}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $dbh=db::connect($config); - my $query=qq{ + my $dbh = db::connect($config); + my $query = qq{ select count(*) permission from calcms_studio_timeslot_dates $conditions }; + #print STDERR Dumper($query).Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); - #print STDERR Dumper($entries); - return 0 if scalar(@$entries) == 0; - return 1 if $entries->[0]->{permission}>0; + my $entries = db::get( $dbh, $query, \@bind_values ); - if ($entries->[0]->{permission}==0){ - my $timeslot=getMergedDays($config, $condition); - return 0 unless defined $timeslot; - if ( - ($condition->{start} ge $timeslot->{start}) - && ($condition->{end} le $timeslot->{end}) - ){ - #print STDERR "($condition->{start} ge $timeslot->{start}) ".($condition->{start} ge $timeslot->{start}); - #print STDERR "($condition->{end} le $timeslot->{end}) ".($condition->{end} le $timeslot->{end}); - return 1; - } - } - return 0; + #print STDERR Dumper($entries); + return 0 if scalar(@$entries) == 0; + return 1 if $entries->[0]->{permission} > 0; + + if ( $entries->[0]->{permission} == 0 ) { + my $timeslot = getMergedDays( $config, $condition ); + return 0 unless defined $timeslot; + if ( ( $condition->{start} ge $timeslot->{start} ) + && ( $condition->{end} le $timeslot->{end} ) ) + { + #print STDERR "($condition->{start} ge $timeslot->{start}) ".($condition->{start} ge $timeslot->{start}); + #print STDERR "($condition->{end} le $timeslot->{end}) ".($condition->{end} le $timeslot->{end}); + return 1; + } + } + return 0; } # merge two subsequent days if first day ends at same time as next day starts # returns hashref with start and end of merged slot # returns undef if not slot could be found -sub getMergedDays{ - my $config=shift; - my $condition=shift; +sub getMergedDays { + my $config = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); - #print Dumper($condition); + my @conditions = (); + my @bind_values = (); - #return 0 unless defined $condition->{project_id}; - return 0 unless defined $condition->{studio_id}; - return 0 unless defined $condition->{start}; - return 0 unless defined $condition->{end}; + #print Dumper($condition); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + #return 0 unless defined $condition->{project_id}; + return 0 unless defined $condition->{studio_id}; + return 0 unless defined $condition->{start}; + return 0 unless defined $condition->{end}; + + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - # set start to next day at 00:00 - my $start=undef; - if ($condition->{start}=~/(\d\d\d\d\-\d\d\-\d\d)/){ - $start=$1.' 00:00'; - $start=time::add_days_to_datetime($start, 1); + # set start to next day at 00:00 + my $start = undef; + if ( $condition->{start} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) { + $start = $1 . ' 00:00'; + $start = time::add_days_to_datetime( $start, 1 ); push @bind_values, $start; - } + } - # set end to end days at 00:00 - my $end=undef; - if ($condition->{end}=~/(\d\d\d\d\-\d\d\-\d\d)/){ - $end=$1.' 00:00'; + # set end to end days at 00:00 + my $end = undef; + if ( $condition->{end} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) { + $end = $1 . ' 00:00'; push @bind_values, $end; - } - return undef unless defined $start; - return undef unless defined $end; + } + return undef unless defined $start; + return undef unless defined $end; - push @conditions, '(start=? or end=?)'; + push @conditions, '(start=? or end=?)'; - my $conditions=''; - $conditions='where '.join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = 'where ' . join( " and ", @conditions ) if ( @conditions > 0 ); - # get all days starting on first day or ending at next day - my $dbh=db::connect($config); - my $query=qq{ + # get all days starting on first day or ending at next day + my $dbh = db::connect($config); + my $query = qq{ select start, end from calcms_studio_timeslot_dates $conditions order by start }; + # print STDERR Dumper($query).Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); - # print STDERR Dumper($entries); + my $entries = db::get( $dbh, $query, \@bind_values ); - if (scalar(@$entries)==2){ - if ($entries->[0]->{end} eq $entries->[1]->{start}){ - $entries={ - start => $entries->[0]->{start}, - end => $entries->[1]->{end} - }; - # print STDERR "found".Dumper($entries)."\n"; - return $entries; - } - } + # print STDERR Dumper($entries); - return undef; + if ( scalar(@$entries) == 2 ) { + if ( $entries->[0]->{end} eq $entries->[1]->{start} ) { + $entries = { + start => $entries->[0]->{start}, + end => $entries->[1]->{end} + }; + + # print STDERR "found".Dumper($entries)."\n"; + return $entries; + } + } + + return undef; } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/studio_timeslot_schedule.pm b/lib/calcms/studio_timeslot_schedule.pm index 7d9a8bc..8d64929 100644 --- a/lib/calcms/studio_timeslot_schedule.pm +++ b/lib/calcms/studio_timeslot_schedule.pm @@ -1,142 +1,145 @@ -package studio_timeslot_schedule; +package studio_timeslot_schedule; use warnings "all"; use strict; use Data::Dumper; -use studio_timeslot_dates; +use studio_timeslot_dates(); # table: calcms_studio_timeslot_schedule -# columns: id, project_id, studio_id, start(datetime), end(datetime), end_date(date), +# columns: id, project_id, studio_id, start(datetime), end(datetime), end_date(date), # frequency(days), duration(minutes), create_events(days), publish_events(days) require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get insert update delete); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get insert update delete); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_studio_timeslot_schedule'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_studio_timeslot_schedule' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } #map schedule id to id -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{schedule_id}) && ($condition->{schedule_id} ne '')){ - push @conditions, 'id=?'; + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'id=?'; push @bind_values, $condition->{schedule_id}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_studio_timeslot_schedule $conditions order by start }; + #print $query."\n"; #print Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); - for my $entry (@$entries){ - $entry->{schedule_id}=$entry->{id}; + my $entries = db::get( $dbh, $query, \@bind_values ); + for my $entry (@$entries) { + $entry->{schedule_id} = $entry->{id}; delete $entry->{id}; } return $entries; } -sub insert{ - my $config=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $entry = shift; - return unless(defined $entry->{project_id}); - return unless(defined $entry->{studio_id}); - return unless(defined $entry->{start}); - return unless(defined $entry->{end}); - return unless(defined $entry->{frequency}); + return unless ( defined $entry->{project_id} ); + return unless ( defined $entry->{studio_id} ); + return unless ( defined $entry->{start} ); + return unless ( defined $entry->{end} ); + return unless ( defined $entry->{frequency} ); - my $dbh=db::connect($config); - return db::insert($dbh, 'calcms_studio_timeslot_schedule', $entry); + my $dbh = db::connect($config); + return db::insert( $dbh, 'calcms_studio_timeslot_schedule', $entry ); } #schedule id to id -sub update{ - my $config=shift; - my $entry=shift; +sub update { + my $config = shift; + my $entry = shift; - return unless(defined $entry->{project_id}); - return unless(defined $entry->{studio_id}); - return unless(defined $entry->{schedule_id}); - return unless(defined $entry->{start}); - return unless(defined $entry->{end}); - return unless(defined $entry->{frequency}); + return unless ( defined $entry->{project_id} ); + return unless ( defined $entry->{studio_id} ); + return unless ( defined $entry->{schedule_id} ); + return unless ( defined $entry->{start} ); + return unless ( defined $entry->{end} ); + return unless ( defined $entry->{frequency} ); - $entry->{id}=$entry->{schedule_id}; + $entry->{id} = $entry->{schedule_id}; delete $entry->{schedule_id}; - my $dbh=db::connect($config); - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); - push @bind_values,$entry->{id}; + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{id}; - my $query=qq{ + my $query = qq{ update calcms_studio_timeslot_schedule set $values where id=? }; - db::put($dbh, $query, \@bind_values); + db::put( $dbh, $query, \@bind_values ); + #print "done\n"; - $entry->{schedule_id}=$entry->{id}; + $entry->{schedule_id} = $entry->{id}; delete $entry->{id}; } #map schedule id to id -sub delete{ - my $config=shift; - my $entry=shift; - - return unless(defined $entry->{schedule_id}); +sub delete { + my $config = shift; + my $entry = shift; - my $dbh=db::connect($config); + return unless ( defined $entry->{schedule_id} ); - my $query=qq{ + my $dbh = db::connect($config); + + my $query = qq{ delete from calcms_studio_timeslot_schedule where id=? }; - my $bind_values=[$entry->{schedule_id}]; + my $bind_values = [ $entry->{schedule_id} ]; + #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put($dbh, $query, $bind_values); + db::put( $dbh, $query, $bind_values ); } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 3cce3c2..490c119 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -1,177 +1,171 @@ #!/bin/perl -#use CGI; -#use CGI::Carp qw(warningsToBrowser fatalsToBrowser); -#use CGI::Session qw(-ip-match); -#use CGI::Cookie; -#$CGI::Session::IP_MATCH=1; - -package studios; +package studios; use warnings "all"; use strict; use Data::Dumper; -use images; +use images(); require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get get_by_id insert update delete check check_studio); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get get_by_id insert update delete check check_studio); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_studios'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_studios' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } -sub get{ - my $config=shift; - my $condition=shift||{}; +sub get { + my $config = shift; + my $condition = shift || {}; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 's.id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 's.id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{name}) && ($condition->{name} ne '')){ - push @conditions, 's.name=?'; + if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { + push @conditions, 's.name=?'; push @bind_values, $condition->{name}; } - if ((defined $condition->{location}) && ($condition->{location} ne '')){ - push @conditions, 's.location=?'; + if ( ( defined $condition->{location} ) && ( $condition->{location} ne '' ) ) { + push @conditions, 's.location=?'; push @bind_values, $condition->{location}; } - my $limit=''; - if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ - $limit= 'limit '.$condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $query=''; - unless ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); - $query=qq{ + my $query = ''; + unless ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $query = qq{ select * from calcms_studios s $conditions $limit }; - }else{ - push @conditions, 's.id=ps.studio_id'; + } else { + push @conditions, 's.id=ps.studio_id'; - push @conditions, 'ps.project_id=?'; - push @bind_values, $condition->{project_id}; - my $conditions=" where ".join(" and ",@conditions) if (@conditions>0); - $query=qq{ + push @conditions, 'ps.project_id=?'; + push @bind_values, $condition->{project_id}; + my $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $query = qq{ select * from calcms_studios s, calcms_project_studios ps $conditions $limit }; - } - my $dbh=db::connect($config); - #print STDERR Dumper($query).Dumper(\@bind_values); - my $studios=db::get($dbh, $query,\@bind_values); + } + my $dbh = db::connect($config); + + #print STDERR Dumper($query).Dumper(\@bind_values); + my $studios = db::get( $dbh, $query, \@bind_values ); return $studios; } -sub getImageById{ +sub getImageById { my $config = shift; - my $conditions = shift; - - return undef unless defined $conditions->{project_id}; - return undef unless defined $conditions->{studio_id}; - my $studios = studios::get($config, $conditions); - return undef if scalar(@$studios) != 1; - return $studios->[0]->{image}; + my $conditions = shift; + + return undef unless defined $conditions->{project_id}; + return undef unless defined $conditions->{studio_id}; + my $studios = studios::get( $config, $conditions ); + return undef if scalar(@$studios) != 1; + return $studios->[0]->{image}; } -sub insert{ - my $config=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $entry = shift; - $entry->{created_at} = time::time_to_datetime(time()); - $entry->{modified_at} = time::time_to_datetime(time()); - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - - my $dbh=db::connect($config); - my $id=db::insert($dbh, 'calcms_studios', $entry); - return $id; + $entry->{created_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_studios', $entry ); + return $id; } +sub update { + my $config = shift; + my $studio = shift; -sub update{ - my $config=shift; - my $studio=shift; + $studio->{modified_at} = time::time_to_datetime( time() ); - $studio->{modified_at}= time::time_to_datetime(time()); + my $columns = get_columns($config); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $studio->{$column} if defined $studio->{$column}; + } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - my $columns=get_columns($config); - my $entry={}; - for my $column (keys %$columns){ - $entry->{$column}=$studio->{$column} if defined $studio->{$column}; - } - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{id}; - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); - push @bind_values,$entry->{id}; - - my $query=qq{ + my $query = qq{ update calcms_studios set $values where id=? }; - my $dbh=db::connect($config); - #print STDERR Dumper($query)." ".Dumper(\@bind_values); - db::put($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + + #print STDERR Dumper($query)." ".Dumper(\@bind_values); + db::put( $dbh, $query, \@bind_values ); } -sub delete{ - my $config=shift; - my $studio=shift; - - my $dbh=db::connect($config); - db::put($dbh, 'delete from calcms_studios where id=?', [$studio->{id}]); +sub delete { + my $config = shift; + my $studio = shift; + + my $dbh = db::connect($config); + db::put( $dbh, 'delete from calcms_studios where id=?', [ $studio->{id} ] ); } #TODO rename to check -sub check_studio{ - my $config=shift; - my $options=shift; - return check($config, $options); +sub check_studio { + my $config = shift; + my $options = shift; + return check( $config, $options ); } -sub check{ - my $config=shift; - my $options=shift; - return "missing studio_id" unless defined $options->{studio_id}; - return "Please select a studio" if($options->{studio_id}eq'-1'); - return "Please select a studio" if($options->{studio_id}eq''); - my $studios=studios::get($config, {studio_id => $options->{studio_id}}); - return "Sorry. unknown studio" unless defined $studios; - return "Sorry. unknown studio" unless @$studios==1; - return 1; +sub check { + my $config = shift; + my $options = shift; + return "missing studio_id" unless defined $options->{studio_id}; + return "Please select a studio" if ( $options->{studio_id} eq '-1' ); + return "Please select a studio" if ( $options->{studio_id} eq '' ); + my $studios = studios::get( $config, { studio_id => $options->{studio_id} } ); + return "Sorry. unknown studio" unless defined $studios; + return "Sorry. unknown studio" unless @$studios == 1; + return 1; } - -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index f51c8ce..b296e5d 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -3,224 +3,225 @@ use strict; package template; use Data::Dumper; -use HTML::Template::Compiled; -use HTML::Template::Compiled::Plugin::XMLEscape; -use JSON; -use Cwd; +use HTML::Template::Compiled(); +use HTML::Template::Compiled::Plugin::XMLEscape(); +use JSON(); +use Cwd(); -use config; -use params; -use project; -use log; -use roles; +use config(); +use params(); +use project(); +use log(); +use roles(); require Exporter; our @ISA = qw(Exporter); + #our @EXPORT = qw(all); our @EXPORT_OK = qw(check process exit_on_missing_permission clear_cache); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); -sub process{ -# my $output=$_[0]; - my $filename=$_[1]; - my $params=$_[2]; +sub process { - my $config=$config::config; - for my $key (keys %{$config::config->{locations}}){ - $params->{$key} =$config::config->{locations}->{$key} if ($key=~/\_url$/); + # my $output=$_[0]; + my $filename = $_[1]; + my $params = $_[2]; + + my $config = $config::config; + for my $key ( keys %{ $config::config->{locations} } ) { + $params->{$key} = $config::config->{locations}->{$key} if ( $key =~ /\_url$/ ); } # add current project - unless (defined $params->{project_title}){ - my $projects = project::get_with_dates($config, { name => $config->{project} }); - if (@$projects==1){ - my $project= $projects->[0]; - foreach my $key (keys %$project){ - $params->{'project_'.$key}=$project->{$key}; - } - } - } - - $params->{user}=$ENV{REMOTE_USER} unless defined $params->{user}; - - my $user_permissions=roles::get_user_permissions(); - for my $permission (keys %$user_permissions){ - $params->{$permission}=$user_permissions->{$permission} if ($user_permissions->{$permission} eq '1'); + unless ( defined $params->{project_title} ) { + my $projects = project::get_with_dates( $config, { name => $config->{project} } ); + if ( @$projects == 1 ) { + my $project = $projects->[0]; + foreach my $key ( keys %$project ) { + $params->{ 'project_' . $key } = $project->{$key}; + } + } } - $params->{jobs}=roles::get_user_jobs(); + $params->{user} = $ENV{REMOTE_USER} unless defined $params->{user}; - log::write($config, 'template',$params) if ($config::config->{system}->{debug}>0); -# my $html_template = HTML::Template->new( -# filename => $filename, -# die_on_bad_params =>0, -## cache =>1, -## cache_debug => 1 -# ); + my $user_permissions = roles::get_user_permissions(); + for my $permission ( keys %$user_permissions ) { + $params->{$permission} = $user_permissions->{$permission} if ( $user_permissions->{$permission} eq '1' ); + } + $params->{jobs} = roles::get_user_jobs(); + if ( ( $filename =~ /json\-p/ ) || (params::isJson) ) { + my $header = "Content-type:application/json; charset=utf-8\n\n"; + my $json = JSON::to_json( $params, { pretty => 1 } ); - if (($filename =~/json\-p/) || (params::isJson)){ - my $header="Content-type:application/json; charset=utf-8\n\n"; - my $json=to_json($params, {pretty => 1}); -# $json=$header.$params->{json_callback}.'['.$json.']'; - $json=$header.$params->{json_callback}.$json; - if((defined $_[0]) && ($_[0]eq'print')){ - print $json."\n"; - }else{ - $_[0]= $json."\n"; + # $json=$header.$params->{json_callback}.'['.$json.']'; + $json = $header . $params->{json_callback} . $json; + if ( ( defined $_[0] ) && ( $_[0] eq 'print' ) ) { + print $json. "\n"; + } else { + $_[0] = $json . "\n"; } return; } - #print STDERR $filename."\n"; - log::error($config, "cannot find template $filename ") unless -e $filename; - log::error($config, "cannot read template $filename ") unless -r $filename; - my $default_escape='0'; - $default_escape='JS' if ($filename=~/\.js$/); - $default_escape='JS' if ($filename=~/\.json$/); - $default_escape='HTML_ALL' if ($filename=~/\.html$/); + #print STDERR $filename."\n"; + log::error( $config, "cannot find template $filename " ) unless -e $filename; + log::error( $config, "cannot read template $filename " ) unless -r $filename; - my $html_template=undef; - - unless ($filename=~/\.xml$/){ + my $default_escape = '0'; + $default_escape = 'JS' if ( $filename =~ /\.js$/ ); + $default_escape = 'JS' if ( $filename =~ /\.json$/ ); + $default_escape = 'HTML_ALL' if ( $filename =~ /\.html$/ ); + + my $html_template = undef; + + unless ( $filename =~ /\.xml$/ ) { $html_template = HTML::Template::Compiled->new( - filename => $filename, - die_on_bad_params => 0, - case_sensitive => 0, - loop_context_vars => 0, - global_vars => 0, - tagstyle => '-asp -comment', - default_escape => $default_escape, - cache => 0, - utf8 => 1, + filename => $filename, + die_on_bad_params => 0, + case_sensitive => 0, + loop_context_vars => 0, + global_vars => 0, + tagstyle => '-asp -comment', + default_escape => $default_escape, + cache => 0, + utf8 => 1, ); - }else{ + } else { $html_template = HTML::Template::Compiled->new( - filename => $filename, - die_on_bad_params => 0, - case_sensitive => 1, - loop_context_vars => 0, - global_vars => 0, - tagstyle => '-asp -comment', - default_escape => 'XML', - plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], - utf8 => 1 + filename => $filename, + die_on_bad_params => 0, + case_sensitive => 1, + loop_context_vars => 0, + global_vars => 0, + tagstyle => '-asp -comment', + default_escape => 'XML', + plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], + utf8 => 1 ); } - + #$params= - setRelativeUrls($params,0) unless (defined $params->{extern}) && ($params->{extern} eq '1'); - -# HTML::Template::Compiled->preload($cache_dir); + setRelativeUrls( $params, 0 ) unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); + + # HTML::Template::Compiled->preload($cache_dir); $html_template->param($params); - if((defined $_[0]) && ($_[0]eq'print')){ + if ( ( defined $_[0] ) && ( $_[0] eq 'print' ) ) { print $html_template->output; - }else{ - $_[0]=$html_template->output; + } else { + $_[0] = $html_template->output; } } # set relative urls in nested params structure -sub setRelativeUrls{ - my $params=shift; - my $depth=shift || 0; - - #print STDERR "setRelativeUrls depth:$depth ".ref($params)."\n"; - - return unless defined $params; - - if ($depth>10){ - print STDERR "prevent deep recursion in template::setRelativeUrls()\n"; - return ; - } +sub setRelativeUrls { + my $params = shift; + my $depth = shift || 0; - # set recursive for hash - if (ref($params) eq 'HASH'){ - for my $key (keys %$params){ - #next unless ($key eq 'icon') || ($key eq 'thumb'); - my $val=$params->{$key}; - next unless defined $val; - if (ref($val) eq ''){ - # make link relative - $params->{$key} =~s/^https?\:(\/\/[^\/]+)/$1/; - }elsif ( (ref($val) eq 'HASH') || (ref($val) eq 'ARRAY') ){ - setRelativeUrls($params->{$key}, $depth+1); - } - } - return $params; - } + #print STDERR "setRelativeUrls depth:$depth ".ref($params)."\n"; - # set recursive for arrays - if (ref($params) eq 'ARRAY'){ - for my $i (0..@$params){ - my $val=$params->[$i]; - next unless defined $val; - if ( (ref($val) eq 'HASH') || (ref($val) eq 'ARRAY') ){ - setRelativeUrls($params->[$i], $depth+1); - } - } - return $params; - } - - return $params; + return unless defined $params; + + if ( $depth > 10 ) { + print STDERR "prevent deep recursion in template::setRelativeUrls()\n"; + return; + } + + # set recursive for hash + if ( ref($params) eq 'HASH' ) { + for my $key ( keys %$params ) { + + #next unless ($key eq 'icon') || ($key eq 'thumb'); + my $val = $params->{$key}; + next unless defined $val; + if ( ref($val) eq '' ) { + + # make link relative + $params->{$key} =~ s/^https?\:(\/\/[^\/]+)/$1/; + } elsif ( ( ref($val) eq 'HASH' ) || ( ref($val) eq 'ARRAY' ) ) { + setRelativeUrls( $params->{$key}, $depth + 1 ); + } + } + return $params; + } + + # set recursive for arrays + if ( ref($params) eq 'ARRAY' ) { + for my $i ( 0 .. @$params ) { + my $val = $params->[$i]; + next unless defined $val; + if ( ( ref($val) eq 'HASH' ) || ( ref($val) eq 'ARRAY' ) ) { + setRelativeUrls( $params->[$i], $depth + 1 ); + } + } + return $params; + } + + return $params; } #requires read config -sub check{ - my $template=shift||''; - my $default=shift; +sub check { + my $template = shift || ''; + my $default = shift; - if($template =~/json\-p/){ - $template=~s/[^a-zA-Z0-9\-\_\.]//g; - $template=~s/\.{2,99}/\./g; + if ( $template =~ /json\-p/ ) { + $template =~ s/[^a-zA-Z0-9\-\_\.]//g; + $template =~ s/\.{2,99}/\./g; return $template; } - - my $config=$config::config; - if ($template eq''){ - $template=$default; - }else{ - $template=~s/^\.\///gi; + + my $config = $config::config; + if ( $template eq '' ) { + $template = $default; + } else { + $template =~ s/^\.\///gi; + #template does use ';' in filename - log::error($config, 'invalid template!') if ($template=~/;/); + log::error( $config, 'invalid template!' ) if ( $template =~ /;/ ); + #template does use '..' in filename - log::error($config, 'invalid template!') if ($template=~/\.\./); + log::error( $config, 'invalid template!' ) if ( $template =~ /\.\./ ); } + #print STDERR $config::config->{cache}->{compress}."<.compres default:$template\n"; - $template=(split(/\//,$template))[-1]; - my $cwd=getcwd(); + $template = ( split( /\//, $template ) )[-1]; + my $cwd = Cwd::getcwd(); + + $template .= '.html' unless ( $template =~ /\./ ); + if ( ( $config::config->{cache}->{compress} eq '1' ) && ( -e $cwd . '/templates/compressed/' . $template ) ) { + $template = $cwd . '/templates/compressed/' . $template; + } elsif ( -e $cwd . '/templates/' . $template ) { + $template = $cwd . '/templates/' . $template; + } else { + log::error( $config, "template not found: '$cwd/$template'" ); - $template.='.html' unless ($template=~/\./); - if (($config::config->{cache}->{compress}eq'1') && (-e $cwd.'/templates/compressed/'.$template)){ - $template=$cwd.'/templates/compressed/'.$template; - }elsif (-e $cwd.'/templates/'.$template){ - $template=$cwd.'/templates/'.$template; - }else{ - log::error($config, "template not found: '$cwd/$template'"); - } - log::error($config, "missing permission to read template '$template'") unless (-r $template); + log::error( $config, "missing permission to read template '$template'" ) unless ( -r $template ); return $template; } #deprecated (for old admin only) -sub exit_on_missing_permission{ - my $permission=shift; - my $user_permissions=roles::get_user_permissions(); - if ($user_permissions->{$permission} ne '1'){ - print STDERR "missing permission to $permission\n"; - template::process('print', template::check('default.html'), {error => 'sorry, missing permission!'}); +sub exit_on_missing_permission { + my $permission = shift; + my $user_permissions = roles::get_user_permissions(); + if ( $user_permissions->{$permission} ne '1' ) { + print STDERR "missing permission to $permission\n"; + template::process( 'print', template::check('default.html'), { error => 'sorry, missing permission!' } ); die(); + #exit; } } -sub clear_cache{ +sub clear_cache { HTML::Template::Compiled->clear_cache(); -# return; -# my $html_template = HTML::Template::Compiled->new(); -# $html_template->clear_cache(); + + # return; + # my $html_template = HTML::Template::Compiled->new(); + # $html_template->clear_cache(); } #do not delete last line! diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index 6b976f3..6182ef4 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -1,491 +1,489 @@ use warnings "all"; use strict; -use Time::Local; -use DateTime; -use Date::Calc; -use Date::Manip; +use Time::Local(); +use DateTime(); +use Date::Calc(); +use Date::Manip(); use POSIX qw(strftime); -use config; -package time; +use config(); + +package time; use Data::Dumper; use utf8; require Exporter; -our @ISA = qw(Exporter); +our @ISA = qw(Exporter); our @EXPORT_OK = qw( - format_datetime format_time - date_format time_format - datetime_to_time time_to_datetime time_to_date - datetime_to_date - add_days_to_datetime add_hours_to_datetime add_minutes_to_datetime - add_days_to_date - datetime_to_array date_to_array array_to_date array_to_datetime array_to_time array_to_time_hm - date_cond time_cond check_date check_time check_datetime check_year_month - datetime_to_rfc822 get_datetime datetime_to_utc datetime_to_utc_datetime - get_duration get_duration_seconds - get_durations get_names get_all_names weekday_index - $names + format_datetime format_time + date_format time_format + datetime_to_time time_to_datetime time_to_date + datetime_to_date + add_days_to_datetime add_hours_to_datetime add_minutes_to_datetime + add_days_to_date + datetime_to_array date_to_array array_to_date array_to_datetime array_to_time array_to_time_hm + date_cond time_cond check_date check_time check_datetime check_year_month + datetime_to_rfc822 get_datetime datetime_to_utc datetime_to_utc_datetime + get_duration get_duration_seconds + get_durations get_names get_all_names weekday_index + $names ); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); -our $names={ - 'de' =>{ - months =>['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'], - months_abbr =>['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'], - weekdays =>['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'], - weekdays_abbr =>['Mo','Di','Mi','Do','Fr','Sa','So'], - }, - 'en' =>{ - months =>['January','February','March','April','May','June','Jule','August','September','October','November','December'], - months_abbr =>['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'], - weekdays =>['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'], - weekdays_abbr =>['Mo','Tu','We','Th','Fr','Sa','Su'], - }, +our $names = { + 'de' => { + months => + [ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' ], + months_abbr => [ 'Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez' ], + weekdays => [ 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag' ], + weekdays_abbr => [ 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So' ], + }, + 'en' => { + months => + [ 'January', 'February', 'March', 'April', 'May', 'June', 'Jule', 'August', 'September', 'October', 'November', 'December' ], + months_abbr => [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], + weekdays => [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ], + weekdays_abbr => [ 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su' ], + }, }; -our $durations=[ - 0, 5,10,15,20,30,40,45,50,60,70,75,80,90,100,105,110,115,120,135,150,165,180,195,210,225,240,300,360,420,480,540,600,660,720,1440 +our $durations = [ + 0, 5, 10, 15, 20, 30, 40, 45, 50, 60, 70, 75, 80, 90, 100, 105, 110, 115, + 120, 135, 150, 165, 180, 195, 210, 225, 240, 300, 360, 420, 480, 540, 600, 660, 720, 1440 ]; -sub get_names{ - my $language=shift||'en'; - return $time::names->{$language}; +sub get_names { + my $language = shift || 'en'; + return $time::names->{$language}; } -sub get_all_names{ - return $time::names; +sub get_all_names { + return $time::names; } -sub get_durations{ - return $time::durations; +sub get_durations { + return $time::durations; } #TODO: build from datenames -our $weekday_index={ - '0' => 0, - '1' => 1, - '2' => 2, - '3' => 3, - '4' => 4, - '5' => 5, - '6' => 6, - 'Mo'=> 0, - 'Tu'=> 1, - 'Di'=> 1, - 'We'=> 2, - 'Mi'=> 2, - 'Th'=> 3, - 'Do'=> 3, - 'Fr'=> 4, - 'Sa'=> 5, - 'Su'=> 6, - 'So'=> 6 +our $weekday_index = { + '0' => 0, + '1' => 1, + '2' => 2, + '3' => 3, + '4' => 4, + '5' => 5, + '6' => 6, + 'Mo' => 0, + 'Tu' => 1, + 'Di' => 1, + 'We' => 2, + 'Mi' => 2, + 'Th' => 3, + 'Do' => 3, + 'Fr' => 4, + 'Sa' => 5, + 'Su' => 6, + 'So' => 6 }; -sub get_weekdays{ - return{ - 1 => 1, - 2 => 2, - 3 => 3, - 4 => 4, - 5 => 5, - 6 => 6, - 7 => 7, - 'Mo'=>1, - 'Tu'=>2, - 'Di'=>2, - 'We'=>3, - 'Mi'=>3, - 'Th'=>4, - 'Do'=>4, - 'Fr'=>5, - 'Sa'=>6, - 'Su'=>7, - 'So'=>7 - }; +sub get_weekdays { + return { + 1 => 1, + 2 => 2, + 3 => 3, + 4 => 4, + 5 => 5, + 6 => 6, + 7 => 7, + 'Mo' => 1, + 'Tu' => 2, + 'Di' => 2, + 'We' => 3, + 'Mi' => 3, + 'Th' => 4, + 'Do' => 4, + 'Fr' => 5, + 'Sa' => 6, + 'Su' => 7, + 'So' => 7 + }; } - #deprecated, for wordpress sync -sub format_datetime{ - my $datetime=shift; - return $datetime if ($datetime eq ''); - return add_hours_to_datetime($datetime,0); -}; +sub format_datetime { + my $datetime = shift; + return $datetime if ( $datetime eq '' ); + return add_hours_to_datetime( $datetime, 0 ); +} #deprecated -sub format_time{ - my $t=$_[0]; +sub format_time { + my $t = $_[0]; - my $year =$t->[5]+1900; - my $month =$t->[4]+1; - $month ='0'.$month if(length($month)==1); + my $year = $t->[5] + 1900; + my $month = $t->[4] + 1; + $month = '0' . $month if ( length($month) == 1 ); - my $day =$t->[3]; - $day ='0'.$day if(length($day)==1); + my $day = $t->[3]; + $day = '0' . $day if ( length($day) == 1 ); + my $hour = $t->[2]; + $hour = '0' . $hour if ( length($hour) == 1 ); - my $hour =$t->[2]; - $hour ='0'.$hour if(length($hour)==1); - - my $minute =$t->[1]; - $minute ='0'.$minute if(length($minute)==1); - - return [$day,$month,$year,$hour,$minute]; -}; + my $minute = $t->[1]; + $minute = '0' . $minute if ( length($minute) == 1 ); + return [ $day, $month, $year, $hour, $minute ]; +} # convert datetime to unix time -sub datetime_to_time{ - my $datetime=$_[0]; -# print $datetime."\n"; - if ($datetime=~/(\d\d\d\d)\-(\d+)\-(\d+)[T\s](\d+)\:(\d+)(\:(\d+))?/){ - my $year=$1; - my $month=$2-1; - my $day=$3; - my $hour=$4; - my $minute=$5; - my $second=$8||0; - return Time::Local::timelocal($second,$minute,$hour,$day,$month,$year); - - }else{ +sub datetime_to_time { + my $datetime = $_[0]; + + # print $datetime."\n"; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)[T\s](\d+)\:(\d+)(\:(\d+))?/ ) { + my $year = $1; + my $month = $2 - 1; + my $day = $3; + my $hour = $4; + my $minute = $5; + my $second = $8 || 0; + return Time::Local::timelocal( $second, $minute, $hour, $day, $month, $year ); + + } else { print STDERR "datetime_to_time: no valid date time found! ($datetime )\n"; return -1; } -}; +} #get rfc822 datetime string from datetime string -sub datetime_to_rfc822{ - my $datetime=$_[0]; - my $time=datetime_to_time($datetime); - return POSIX::strftime("%a, %d %b %Y %H:%M:%S %z", localtime($time)); +sub datetime_to_rfc822 { + my $datetime = $_[0]; + my $time = datetime_to_time($datetime); + return POSIX::strftime( "%a, %d %b %Y %H:%M:%S %z", localtime($time) ); } #get seconds from epoch -sub datetime_to_utc{ - my $datetime=shift; - my $time_zone=shift; - $datetime=get_datetime($datetime, $time_zone); +sub datetime_to_utc { + my $datetime = shift; + my $time_zone = shift; + $datetime = get_datetime( $datetime, $time_zone ); return $datetime->epoch(); } # get full utc datetime including timezone offset -sub datetime_to_utc_datetime{ - my $datetime=shift; - my $time_zone=shift; - $datetime=get_datetime($datetime, $time_zone); +sub datetime_to_utc_datetime { + my $datetime = shift; + my $time_zone = shift; + $datetime = get_datetime( $datetime, $time_zone ); return $datetime->format_cldr("yyyy-MM-ddTHH:mm:ssZZZZZ"); } - - #add hours to datetime string -sub add_hours_to_datetime{ - my $datetime=shift; - my $hours=shift; - $hours=0 unless defined $hours; - return time_to_datetime(datetime_to_time($datetime)+(3600*$hours)); -}; +sub add_hours_to_datetime { + my $datetime = shift; + my $hours = shift; + $hours = 0 unless defined $hours; + return time_to_datetime( datetime_to_time($datetime) + ( 3600 * $hours ) ); +} #add minutes to datetime string -sub add_minutes_to_datetime{ - my $datetime=shift; - my $minutes=shift; - $minutes=0 unless defined $minutes; - return time_to_datetime(datetime_to_time($datetime)+(60*$minutes)); -}; +sub add_minutes_to_datetime { + my $datetime = shift; + my $minutes = shift; + $minutes = 0 unless defined $minutes; + return time_to_datetime( datetime_to_time($datetime) + ( 60 * $minutes ) ); +} #add days to datetime string -sub add_days_to_datetime{ - my $datetime=shift; - my $days=shift; - $days=0 unless defined $days; - my $time=datetime_to_array($datetime); +sub add_days_to_datetime { + my $datetime = shift; + my $days = shift; + $days = 0 unless defined $days; + my $time = datetime_to_array($datetime); + #print STDERR Dumper($time); - ($time->[0], $time->[1], $time->[2]) =Date::Calc::Add_Delta_Days($time->[0]+0, $time->[1]+0, $time->[2]+0, $days); + ( $time->[0], $time->[1], $time->[2] ) = Date::Calc::Add_Delta_Days( $time->[0] + 0, $time->[1] + 0, $time->[2] + 0, $days ); return array_to_datetime($time); } -sub add_days_to_date{ - my $datetime=shift; - my $days=shift; - $days=0 unless defined $days; - my $date=date_to_array($datetime); - ($date->[0], $date->[1], $date->[2]) =Date::Calc::Add_Delta_Days($date->[0]+0, $date->[1]+0, $date->[2]+0, $days); +sub add_days_to_date { + my $datetime = shift; + my $days = shift; + $days = 0 unless defined $days; + my $date = date_to_array($datetime); + ( $date->[0], $date->[1], $date->[2] ) = Date::Calc::Add_Delta_Days( $date->[0] + 0, $date->[1] + 0, $date->[2] + 0, $days ); return array_to_date($date); } # convert unix time to datetime format -sub time_to_datetime{ - my $time=shift; - $time=time() unless((defined $time) && ($time ne'')); - my @t=localtime($time); - return sprintf('%04d-%02d-%02d %02d:%02d:%02d', $t[5]+1900, $t[4]+1, $t[3], $t[2], $t[1], $t[0]); -}; +sub time_to_datetime { + my $time = shift; + $time = time() unless ( ( defined $time ) && ( $time ne '' ) ); + my @t = localtime($time); + return sprintf( '%04d-%02d-%02d %02d:%02d:%02d', $t[5] + 1900, $t[4] + 1, $t[3], $t[2], $t[1], $t[0] ); +} # convert unix time to date format -sub time_to_date{ - my $time=shift; - $time=time() unless((defined $time) && ($time ne'')); - my @t=localtime($time); - return sprintf('%04d-%02d-%02d', $t[5]+1900, $t[4]+1, $t[3]); -}; +sub time_to_date { + my $time = shift; + $time = time() unless ( ( defined $time ) && ( $time ne '' ) ); + my @t = localtime($time); + return sprintf( '%04d-%02d-%02d', $t[5] + 1900, $t[4] + 1, $t[3] ); +} # convert datetime to a array of date/time values -sub datetime_to_array{ - my $datetime=$_[0]||''; - if ($datetime=~/(\d\d\d\d)\-(\d+)\-(\d+)([T\s]+(\d+)\:(\d+)(\:(\d+))?)?/){ - my $year=$1; - my $month=$2; - my $day=$3; - my $hour=$5||'00'; - my $minute=$6||'00'; - my $second=$8||'00'; - return [$year,$month,$day,$hour,$minute,$second]; +sub datetime_to_array { + my $datetime = $_[0] || ''; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)([T\s]+(\d+)\:(\d+)(\:(\d+))?)?/ ) { + my $year = $1; + my $month = $2; + my $day = $3; + my $hour = $5 || '00'; + my $minute = $6 || '00'; + my $second = $8 || '00'; + return [ $year, $month, $day, $hour, $minute, $second ]; } return undef; -}; +} # convert datetime to date -sub datetime_to_date{ - my $datetime=$_[0]||''; - if ($datetime=~/(\d\d\d\d)\-(\d+)\-(\d+)/){ - my $year=$1; - my $month=$2; - my $day=$3; - return sprintf("%04d-%02d-%02d",$year,$month,$day); - } - return undef; -}; - -#convert datetime array or single value to datetime string -sub array_to_datetime{ - my $date =shift; - if(ref($date)eq'ARRAY'){ - return sprintf("%04d-%02d-%02d %02d:%02d:%02d", $date->[0], $date->[1], $date->[2], $date->[3], $date->[4], $date->[5]); - } - my $month =shift; - my $day =shift; - my $hour =shift||'0'; - my $minute =shift||'0'; - my $second =shift||'0'; - return sprintf("%04d-%02d-%02d %02d:%02d:%02d", $date, $month, $day, $hour, $minute, $second); -} - -#convert date array or single values to date string -sub array_to_date{ - my $date =shift; - if(ref($date)eq'ARRAY'){ - return sprintf("%04d-%02d-%02d", $date->[0], $date->[1], $date->[2]); - } - my $month=shift; - my $day =shift; - return sprintf("%04d-%02d-%02d", $date, $month, $day); -} - -sub array_to_time{ - my $date =shift; - if(ref($date)eq'ARRAY'){ - return sprintf("%02d:%02d:%02d", $date->[3], $date->[4], $date->[5]); - } - my $minute = shift||0; - my $second = shift||0; - return sprintf("%02d:%02d:%02d", $date, $minute, $second); -} - -sub array_to_time_hm{ - my $date =shift; - if(ref($date)eq'ARRAY'){ - return sprintf("%02d:%02d", $date->[3], $date->[4]); - } - my $minute = shift||0; - return sprintf("%02d:%02d", $date, $minute); -} - - -# get number of days between two days -sub days_between{ - my $today=$_[0]; - my $date=$_[1]; - my $delta_days=eval{Date::Calc::Delta_Days( - $today->[0],$today->[1],$today->[2], - $date->[0], $date->[1], $date->[2] - )}; - return $delta_days; -} - -sub dayOfYear{ - my $datetime=$_[0]; - if ($datetime=~/(\d\d\d\d)\-(\d+)\-(\d+)/){ +sub datetime_to_date { + my $datetime = $_[0] || ''; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { my $year = $1; my $month = $2; my $day = $3; - return Date::Calc::Day_of_Year($year,$month,$day); + return sprintf( "%04d-%02d-%02d", $year, $month, $day ); + } + return undef; +} + +#convert datetime array or single value to datetime string +sub array_to_datetime { + my $date = shift; + if ( ref($date) eq 'ARRAY' ) { + return sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $date->[0], $date->[1], $date->[2], $date->[3], $date->[4], $date->[5] ); + } + my $month = shift; + my $day = shift; + my $hour = shift || '0'; + my $minute = shift || '0'; + my $second = shift || '0'; + return sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $date, $month, $day, $hour, $minute, $second ); +} + +#convert date array or single values to date string +sub array_to_date { + my $date = shift; + if ( ref($date) eq 'ARRAY' ) { + return sprintf( "%04d-%02d-%02d", $date->[0], $date->[1], $date->[2] ); + } + my $month = shift; + my $day = shift; + return sprintf( "%04d-%02d-%02d", $date, $month, $day ); +} + +sub array_to_time { + my $date = shift; + if ( ref($date) eq 'ARRAY' ) { + return sprintf( "%02d:%02d:%02d", $date->[3], $date->[4], $date->[5] ); + } + my $minute = shift || 0; + my $second = shift || 0; + return sprintf( "%02d:%02d:%02d", $date, $minute, $second ); +} + +sub array_to_time_hm { + my $date = shift; + if ( ref($date) eq 'ARRAY' ) { + return sprintf( "%02d:%02d", $date->[3], $date->[4] ); + } + my $minute = shift || 0; + return sprintf( "%02d:%02d", $date, $minute ); +} + +# get number of days between two days +sub days_between { + my $today = $_[0]; + my $date = $_[1]; + my $delta_days = eval { Date::Calc::Delta_Days( $today->[0], $today->[1], $today->[2], $date->[0], $date->[1], $date->[2] ) }; + return $delta_days; +} + +sub dayOfYear { + my $datetime = $_[0]; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { + my $year = $1; + my $month = $2; + my $day = $3; + return Date::Calc::Day_of_Year( $year, $month, $day ); } return undef; } # get duration in minutes -sub get_duration{ - my $start = shift; - my $end = shift; - my $timezone= shift; - $start=time::get_datetime($start, $timezone); - $end =time::get_datetime($end, $timezone); - my $duration=$end->epoch()-$start->epoch(); - return $duration/60; +sub get_duration { + my $start = shift; + my $end = shift; + my $timezone = shift; + $start = time::get_datetime( $start, $timezone ); + $end = time::get_datetime( $end, $timezone ); + my $duration = $end->epoch() - $start->epoch(); + return $duration / 60; } # get duration in seconds -sub get_duration_seconds{ - my $start = shift; - my $end = shift; - my $timezone= shift||'UTC'; +sub get_duration_seconds { + my $start = shift; + my $end = shift; + my $timezone = shift || 'UTC'; - unless (defined $start){ - print STDERR "time::get_duration_seconds(): start is missing\n"; - return 0; - } - unless (defined $end){ - print STDERR "time::get_duration_seconds(): end is missing\n"; - return 0; - } + unless ( defined $start ) { + print STDERR "time::get_duration_seconds(): start is missing\n"; + return 0; + } + unless ( defined $end ) { + print STDERR "time::get_duration_seconds(): end is missing\n"; + return 0; + } - $start= time::get_datetime($start, $timezone); - $end = time::get_datetime($end, $timezone); - unless (defined $start){ - print STDERR "time::get_duration_seconds(): invalid start\n"; - return 0; - } - unless (defined $end){ - print STDERR "time::get_duration_seconds(): invalid end\n"; - return 0; - } - my $duration=$end->epoch() - $start->epoch(); + $start = time::get_datetime( $start, $timezone ); + $end = time::get_datetime( $end, $timezone ); + unless ( defined $start ) { + print STDERR "time::get_duration_seconds(): invalid start\n"; + return 0; + } + unless ( defined $end ) { + print STDERR "time::get_duration_seconds(): invalid end\n"; + return 0; + } + my $duration = $end->epoch() - $start->epoch(); return $duration; } # convert date string to a array of date values -sub date_to_array{ - my $datetime=$_[0]; - if ($datetime=~/(\d\d\d\d)\-(\d+)\-(\d+)/){ +sub date_to_array { + my $datetime = $_[0]; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { my $year = $1; my $month = $2; my $day = $3; - return [$year,$month,$day]; + return [ $year, $month, $day ]; } return undef; -}; +} -# parse date string and return date string +# parse date string and return date string # pass 'today', return '' on parse error -sub date_cond{ - my $date=shift; +sub date_cond { + my $date = shift; - return '' if ($date eq''); - if ($date=~/(\d\d\d\d)\-(\d\d?)\-(\d\d?)/){ + return '' if ( $date eq '' ); + if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { my $year = $1; my $month = $2; - my $day = $3; - return sprintf("%04d-%02d-%02d", $year, $month, $day); + my $day = $3; + return sprintf( "%04d-%02d-%02d", $year, $month, $day ); } - return 'today' if ($date eq 'today'); + return 'today' if ( $date eq 'today' ); return ''; -}; +} #parse time and return time string hh:mm:ss #return hh:00 if time is 'now' -sub time_cond{ +sub time_cond { my $time = shift; - return '' if ($time eq''); - if ($time=~/(\d\d?)\:(\d\d?)(\:(\d\d))?/){ - my $hour=$1; - my $minute=$2; - my $second=$4||'00'; - return sprintf("%02d:%02d:%02d", $hour, $minute, $second); + return '' if ( $time eq '' ); + if ( $time =~ /(\d\d?)\:(\d\d?)(\:(\d\d))?/ ) { + my $hour = $1; + my $minute = $2; + my $second = $4 || '00'; + return sprintf( "%02d:%02d:%02d", $hour, $minute, $second ); } - if ($time eq 'now'){ - my $date=datetime_to_array(time_to_datetime(time())); - my $hour=$date->[3]-2; - $hour=0 if ($hour<0); - $time=sprintf("%02d:00",$hour); + if ( $time eq 'now' ) { + my $date = datetime_to_array( time_to_datetime( time() ) ); + my $hour = $date->[3] - 2; + $hour = 0 if ( $hour < 0 ); + $time = sprintf( "%02d:00", $hour ); return $time; } return ''; -}; - -#parse date and time string and return yyyy-mm-ddThh:mm:ss -sub datetime_cond{ - my $datetime = shift; - - return '' if ($datetime eq''); - (my $date,my $time)=split /[ T]/,$datetime; - $date=time::date_cond($date); - return '' if ($date eq''); - $time=time::time_cond($time); - return '' if ($time eq''); - - return $date.'T'.$time; } -sub check_date{ - my $date=shift; +#parse date and time string and return yyyy-mm-ddThh:mm:ss +sub datetime_cond { + my $datetime = shift; - return "" if((!defined $date) || ($date eq '')); - if($date=~/(\d\d\d\d)\-(\d\d?)\-(\d\d?)/){ - return $1.'-'.$2.'-'.$3; - }elsif($date=~/(\d\d?)\.(\d\d?)\.(\d\d\d\d)/){ - return $3.'-'.$2.'-'.$1; + return '' if ( $datetime eq '' ); + ( my $date, my $time ) = split /[ T]/, $datetime; + $date = time::date_cond($date); + return '' if ( $date eq '' ); + $time = time::time_cond($time); + return '' if ( $time eq '' ); + + return $date . 'T' . $time; +} + +sub check_date { + my $date = shift; + + return "" if ( ( !defined $date ) || ( $date eq '' ) ); + if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { + return $1 . '-' . $2 . '-' . $3; + } elsif ( $date =~ /(\d\d?)\.(\d\d?)\.(\d\d\d\d)/ ) { + return $3 . '-' . $2 . '-' . $1; } - return $date if ($date eq'today' || $date eq'tomorrow' || $date eq'yesterday'); + return $date if ( $date eq 'today' || $date eq 'tomorrow' || $date eq 'yesterday' ); return -1; + #error("no valid date format given!"); -}; +} -sub check_time{ - my $time=shift; - return "" if((!defined $time) || ($time eq '')); - return $time if(($time eq 'now') || ($time eq 'future')); - if($time=~/(\d\d?)\:(\d\d?)/){ - return $1.':'.$2 +sub check_time { + my $time = shift; + return "" if ( ( !defined $time ) || ( $time eq '' ) ); + return $time if ( ( $time eq 'now' ) || ( $time eq 'future' ) ); + if ( $time =~ /(\d\d?)\:(\d\d?)/ ) { + return $1 . ':' . $2; } return -1; -}; +} -sub check_datetime{ - my $date=shift; +sub check_datetime { + my $date = shift; - return "" if((!defined $date) || ($date eq '')); - if($date=~/(\d\d\d\d)\-(\d\d?)\-(\d\d?)[T ](\d\d?)\:(\d\d?)/){ - return sprintf("%04d-%02d-%02dT%02d:%02d",$1,$2,$3,$4,$5); + return "" if ( ( !defined $date ) || ( $date eq '' ) ); + if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)[T ](\d\d?)\:(\d\d?)/ ) { + return sprintf( "%04d-%02d-%02dT%02d:%02d", $1, $2, $3, $4, $5 ); } return -1; -}; +} -sub check_year_month{ - my $date=shift; - return -1 unless(defined $date); - return $date if($date eq ''); - if($date=~/(\d\d\d\d)\-(\d\d?)/){ - return $1.'-'.$2.'-'.$3; +sub check_year_month { + my $date = shift; + return -1 unless ( defined $date ); + return $date if ( $date eq '' ); + if ( $date =~ /(\d\d\d\d)\-(\d\d?)/ ) { + return $1 . '-' . $2 . '-' . $3; } return -1; -}; +} #TODO: remove config dependency -sub date_time_format{ - my $datetime=shift; - my $language=shift || $config::config->{date}->{language} || 'en'; - if (defined $datetime && $datetime=~/(\d\d\d\d)\-(\d\d?)\-(\d\d?)[\sT](\d\d?\:\d\d?)/){ - my $time=$4; - my $day=$3; - my $month=$2; - my $year=$1; - - $month=$time::names->{$language}->{months_abbr}->[$month-1]||''; +sub date_time_format { + my $datetime = shift; + my $language = shift || $config::config->{date}->{language} || 'en'; + if ( defined $datetime && $datetime =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)[\sT](\d\d?\:\d\d?)/ ) { + my $time = $4; + my $day = $3; + my $month = $2; + my $year = $1; + + $month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || ''; return "$day. $month $year $time"; } return $datetime; @@ -493,123 +491,125 @@ sub date_time_format{ #format datetime to date string #TODO: remove config dependency -sub date_format{ - my $datetime=shift; - my $language=shift || $config::config->{date}->{language} || 'en'; +sub date_format { + my $datetime = shift; + my $language = shift || $config::config->{date}->{language} || 'en'; - if (defined $datetime && $datetime=~/(\d\d\d\d)\-(\d\d?)\-(\d\d?)/){ - my $day=$3; - my $month=$2; - my $year=$1; - $month=$time::names->{$language}->{months_abbr}->[$month-1]||''; + if ( defined $datetime && $datetime =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { + my $day = $3; + my $month = $2; + my $year = $1; + $month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || ''; return "$day. $month $year"; } return $datetime; -}; +} #format datetime to time string -sub time_format{ - my $datetime=shift; - if (defined $datetime && $datetime=~/(\d\d?\:\d\d?)/){ +sub time_format { + my $datetime = shift; + if ( defined $datetime && $datetime =~ /(\d\d?\:\d\d?)/ ) { return $1; } return $datetime; -}; +} #get offset from given time_zone -sub utc_offset{ - my $time_zone=shift; +sub utc_offset { + my $time_zone = shift; - $a=DateTime->now(); + $a = DateTime->now(); $a->set_time_zone($time_zone); return $a->strftime("%z"); } #get weekday from (yyyy,mm,dd) -sub weekday{ - my ($year,$month,$day)=@_; - my $time = Time::Local::timelocal(0,0,0,$day,$month-1,$year); - return (localtime($time))[6]; +sub weekday { + my ( $year, $month, $day ) = @_; + my $time = Time::Local::timelocal( 0, 0, 0, $day, $month - 1, $year ); + return ( localtime($time) )[6]; } #get current date, related to starting day_starting_hour #TODO: remove config dependency -sub get_event_date{ - my $config=shift; - $config=$config::config unless defined $config; +sub get_event_date { + my $config = shift; + $config = $config::config unless defined $config; - my $datetime=time::time_to_datetime(time()); - my $hour=(time::datetime_to_array($datetime))->[3]; - #print STDERR "datetime=$datetime hour=$hour\n"; + my $datetime = time::time_to_datetime( time() ); + my $hour = ( time::datetime_to_array($datetime) )->[3]; + + #print STDERR "datetime=$datetime hour=$hour\n"; #today: between 0:00 and starting_hour show last day - if ($hour < $config->{date}->{day_starting_hour}){ - my $date=time::datetime_to_array(time::add_days_to_datetime($datetime,-1)); - return join('-', ($date->[0], $date->[1], $date->[2]) ); - }else{ - #today: between starting_hour and end of day show current day - my $date=time::datetime_to_array(time::time_to_datetime(time())); - return join('-', ($date->[0], $date->[1], $date->[2]) ); + if ( $hour < $config->{date}->{day_starting_hour} ) { + my $date = time::datetime_to_array( time::add_days_to_datetime( $datetime, -1 ) ); + return join( '-', ( $date->[0], $date->[1], $date->[2] ) ); + } else { + + #today: between starting_hour and end of day show current day + my $date = time::datetime_to_array( time::time_to_datetime( time() ) ); + return join( '-', ( $date->[0], $date->[1], $date->[2] ) ); } } #get datetime object from datetime string -sub get_datetime{ - my $datetime=shift; - my $timezone=shift; +sub get_datetime { + my $datetime = shift; + my $timezone = shift; - return unless defined $datetime; + return unless defined $datetime; return if $datetime eq ''; - my @l = @{time::datetime_to_array($datetime)}; - return undef if scalar(@l)==0; + my @l = @{ time::datetime_to_array($datetime) }; + return undef if scalar(@l) == 0; - # catch invalid datees - $datetime=undef; - eval{ - $datetime=DateTime->new( - year =>$l[0], - month =>$l[1], - day =>$l[2], - hour =>$l[3], - minute =>$l[4], - second =>$l[5], - time_zone=> $timezone - ); + # catch invalid datees + $datetime = undef; + eval { + $datetime = DateTime->new( + year => $l[0], + month => $l[1], + day => $l[2], + hour => $l[3], + minute => $l[4], + second => $l[5], + time_zone => $timezone + ); }; return undef unless defined $datetime; - $datetime->set_locale('de_DE'); + $datetime->set_locale('de_DE'); return $datetime; } #get list of nth weekday in month from start to end -sub get_nth_weekday_in_month{ - my $start = shift; # datetime string - my $end = shift; # datetime string - my $nth = shift; # every nth week of month - my $weekday = shift; # weekday [1..7,'Mo'-'Su','Mo'-'Fr'] +sub get_nth_weekday_in_month { + my $start = shift; # datetime string + my $end = shift; # datetime string + my $nth = shift; # every nth week of month + my $weekday = shift; # weekday [1..7,'Mo'-'Su','Mo'-'Fr'] - return [] unless defined $start; - return [] unless defined $end; - return [] unless defined $nth; - return [] unless defined $weekday; + return [] unless defined $start; + return [] unless defined $end; + return [] unless defined $nth; + return [] unless defined $weekday; - my $weekdays = time::get_weekdays(); - return [] unless defined $weekdays->{$weekday}; - $weekday = $weekdays->{$weekday}; - - my $dates=[]; - - if ($start=~/(\d\d\d\d)-(\d\d)-(\d\d)[ T](\d\d)\:(\d\d)/){ - my $hour=int($4); - my $min=int($5); - my $sec=0; - my @date = Date::Manip::ParseRecur("0:1*$nth:$weekday:$hour:$min:$sec", "", $start, $end); - for my $date (@date){ - if ($date=~/(\d\d\d\d)(\d\d)(\d\d)(\d\d)\:(\d\d)\:(\d\d)/){ - push @$dates,"$1-$2-$3 $4:$5:$6"; - } - } - } - return $dates; + my $weekdays = time::get_weekdays(); + return [] unless defined $weekdays->{$weekday}; + $weekday = $weekdays->{$weekday}; + + my $dates = []; + + if ( $start =~ /(\d\d\d\d)-(\d\d)-(\d\d)[ T](\d\d)\:(\d\d)/ ) { + my $hour = int($4); + my $min = int($5); + my $sec = 0; + my @date = Date::Manip::ParseRecur( "0:1*$nth:$weekday:$hour:$min:$sec", "", $start, $end ); + for my $date (@date) { + if ( $date =~ /(\d\d\d\d)(\d\d)(\d\d)(\d\d)\:(\d\d)\:(\d\d)/ ) { + push @$dates, "$1-$2-$3 $4:$5:$6"; + } + } + } + return $dates; } #do not delete last line! diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 754ee98..2b558d0 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -1,54 +1,49 @@ -#!/bin/perl - -use CGI; -#use CGI::Carp qw(warningsToBrowser fatalsToBrowser); +use CGI(); use CGI::Session qw(-ip-match); -use CGI::Cookie; -#$CGI::Session::IP_MATCH=1; +use CGI::Cookie(); -package uac; +package uac; use warnings "all"; use strict; use Data::Dumper; -use auth; -use db; -use template; -use project; -use studios; -#use series; +use auth(); +use db(); +use template(); +use project(); +use studios(); require Exporter; -our @ISA = qw(Exporter); +our @ISA = qw(Exporter); our @EXPORT_OK = qw( - get_user get_users update_user insert_user delete_user - get_roles insert_role update_role get_role_columns - get_studios_by_user get_users_by_studio - get_projects_by_user - get_user_role get_studio_roles - assign_user_role remove_user_role - get_user_permissions get_user_presets - prepare_request set_template_permissions - permission_denied + get_user get_users update_user insert_user delete_user + get_roles insert_role update_role get_role_columns + get_studios_by_user get_users_by_studio + get_projects_by_user + get_user_role get_studio_roles + assign_user_role remove_user_role + get_user_permissions get_user_presets + prepare_request set_template_permissions + permission_denied ); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; # get user by name -sub get_user{ - my $config=shift; - my $user=shift; +sub get_user { + my $config = shift; + my $user = shift; - my $query=qq{ + my $query = qq{ select id, name, full_name, email, disabled, modified_at, created_at from calcms_users where name=? }; - my $bind_values=[$user]; + my $bind_values = [$user]; - my $dbh=db::connect($config); - my $users=db::get($dbh, $query,$bind_values); - if (@$users!=1){ + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, $bind_values ); + if ( @$users != 1 ) { print STDERR "cannot find user '$user'\n"; return undef; } @@ -56,32 +51,32 @@ sub get_user{ } # get all users -sub get_users{ +sub get_users { my $config = shift; - my $condition = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - for my $key ('name', 'email'){ - my $value = $condition->{$key}; - next unless defined $value; - next if $value eq ''; - push @conditions, $key.'=?'; - push @bind_values, $value; - } + for my $key ( 'name', 'email' ) { + my $value = $condition->{$key}; + next unless defined $value; + next if $value eq ''; + push @conditions, $key . '=?'; + push @bind_values, $value; + } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (scalar @conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( scalar @conditions > 0 ); - my $query=qq{ + my $query = qq{ select id, name, full_name, email, disabled, modified_at, created_at from calcms_users $conditions }; - my $dbh = db::connect($config); - my $users = db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, \@bind_values ); return $users; } @@ -89,378 +84,377 @@ sub get_users{ # get all users of a given studio id # used at series (previously named get_studio_users) -sub get_users_by_studio{ - my $config=shift; - my $condition=shift; +sub get_users_by_studio { + my $config = shift; + my $condition = shift; - return unless (defined $condition->{studio_id}); + return unless ( defined $condition->{studio_id} ); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'ur.project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'ur.studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; push @bind_values, $condition->{studio_id}; } - my $conditions=''; - $conditions=" and ".join(" and ",@conditions) if (scalar @conditions>0); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( scalar @conditions > 0 ); - my $query=qq{ + my $query = qq{ select distinct(u.id), u.name, u.full_name from calcms_user_roles ur, calcms_users u where ur.user_id=u.id $conditions }; - my $dbh=db::connect($config); - my $users=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, \@bind_values ); return $users; } # get projects a user is assigned by name -sub get_projects_by_user{ - my $config=shift; - my $condition=shift; +sub get_projects_by_user { + my $config = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'ur.project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'ur.studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{user}) && ($condition->{user} ne '')){ - push @conditions, 'u.name=?'; + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'u.name=?'; push @bind_values, $condition->{user}; } - my $conditions=''; - $conditions=" and ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select distinct p.*, ur.project_id project_id from calcms_user_roles ur, calcms_users u, calcms_projects p where ur.user_id=u.id and p.project_id=ur.project_id $conditions }; - my $dbh=db::connect($config); - my $users=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, \@bind_values ); return $users; } # get all studios a user is assigned to by role # used at series (previously named get_user_studios) -sub get_studios_by_user{ - my $config=shift; - my $condition=shift; +sub get_studios_by_user { + my $config = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'ur.project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'ur.studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{user}) && ($condition->{user} ne '')){ - push @conditions, 'u.name=?'; + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'u.name=?'; push @bind_values, $condition->{user}; } - my $conditions=''; - $conditions=" and ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select distinct s.*, ur.project_id project_id from calcms_user_roles ur, calcms_users u, calcms_studios s where ur.user_id=u.id and s.id=ur.studio_id $conditions }; - my $dbh=db::connect($config); - my $users=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, \@bind_values ); return $users; } -sub insert_user{ - my $config=shift; - my $entry=shift; +sub insert_user { + my $config = shift; + my $entry = shift; - $entry->{created_at} = time::time_to_datetime(time()); - $entry->{modified_at}= time::time_to_datetime(time()); + $entry->{created_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); - my $dbh=db::connect($config); - db::insert($dbh, 'calcms_users', $entry); + my $dbh = db::connect($config); + db::insert( $dbh, 'calcms_users', $entry ); } -sub update_user{ - my $config=shift; - my $entry=shift; +sub update_user { + my $config = shift; + my $entry = shift; - $entry->{modified_at}= time::time_to_datetime(time()); + $entry->{modified_at} = time::time_to_datetime( time() ); - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); - push @bind_values,$entry->{id}; + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{id}; - my $query=qq{ + my $query = qq{ update calcms_users set $values where id=? }; - my $dbh =db::connect($config); - db::put($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + db::put( $dbh, $query, \@bind_values ); } -sub delete_user{ - my $config=shift; - my $id=shift; - return unless (defined $id && ($id=~/^\d+$/)); +sub delete_user { + my $config = shift; + my $id = shift; + return unless ( defined $id && ( $id =~ /^\d+$/ ) ); - my $query=qq{ + my $query = qq{ delete from calcms_users where id=? }; - my $dbh =db::connect($config); - db::put($dbh, $query, [$id]); + my $dbh = db::connect($config); + db::put( $dbh, $query, [$id] ); } - # get all roles used by all users of a studio # available conditions: project_id, studio_id -sub get_studio_roles{ - my $config=shift; - my $condition=shift; +sub get_studio_roles { + my $config = shift; + my $condition = shift; - return [] if ($condition->{studio_id} eq ''); + return [] if ( $condition->{studio_id} eq '' ); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'ur.project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'ur.studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; push @bind_values, $condition->{studio_id}; } - my $conditions=''; - $conditions=" and ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select r.*, ur.studio_id, ur.project_id from calcms_roles r, calcms_user_roles ur where r.id=ur.role_id $conditions }; - my $dbh=db::connect($config); - my $roles=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $roles = db::get( $dbh, $query, \@bind_values ); return $roles; } # get role columns (for external use only) -sub get_role_columns{ - my $config=shift; - my $dbh=db::connect($config); - my $columns=db::get_columns_hash($dbh, 'calcms_roles'); - return $columns +sub get_role_columns { + my $config = shift; + my $dbh = db::connect($config); + my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); + return $columns; } # get roles # filter: studio_id project_id -sub get_roles{ - my $config=shift; - my $condition=shift; +sub get_roles { + my $config = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - my $dbh=db::connect($config); - my $columns=db::get_columns_hash($dbh, 'calcms_roles'); + my $dbh = db::connect($config); + my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); - for my $column (keys %$columns){ - if (defined $condition->{$column}){ - push @conditions, $column.'=?'; - push @bind_values, $condition->{$column}; - } + for my $column ( keys %$columns ) { + if ( defined $condition->{$column} ) { + push @conditions, $column . '=?'; + push @bind_values, $condition->{$column}; + } } - my $conditions=''; - $conditions=' where '.join(' and ',@conditions) if(@conditions>0); + my $conditions = ''; + $conditions = ' where ' . join( ' and ', @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select r.* from calcms_roles r $conditions }; - my $roles=db::get($dbh, $query, \@bind_values); + my $roles = db::get( $dbh, $query, \@bind_values ); return $roles; } #insert role to database, set created_at and modified_at -sub insert_role{ - my $config=shift; - my $entry=shift; +sub insert_role { + my $config = shift; + my $entry = shift; - $entry->{created_at} = time::time_to_datetime(time()); - $entry->{modified_at}= time::time_to_datetime(time()); + $entry->{created_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); - my $dbh=db::connect($config); - my $columns=db::get_columns_hash($dbh, 'calcms_roles'); -; - my $role={}; - for my $column (keys %$columns){ - $role->{$column}=$entry->{$column} if defined $entry->{$column}; - } - db::insert($dbh, 'calcms_roles', $role); + my $dbh = db::connect($config); + my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); + my $role = {}; + for my $column ( keys %$columns ) { + $role->{$column} = $entry->{$column} if defined $entry->{$column}; + } + db::insert( $dbh, 'calcms_roles', $role ); } #update role, set modified_at -sub update_role{ - my $config=shift; - my $entry=shift; +sub update_role { + my $config = shift; + my $entry = shift; - $entry->{modified_at}= time::time_to_datetime(time()); + $entry->{modified_at} = time::time_to_datetime( time() ); - my $dbh =db::connect($config); - my $columns=db::get_columns_hash($dbh, 'calcms_roles'); - my $values =join(",", map {$_.'=?'} (keys %$columns)); - my @bind_values =map {$entry->{$_}} (keys %$columns); - push @bind_values,$entry->{id}; + my $dbh = db::connect($config); + my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); + my $values = join( ",", map { $_ . '=?' } ( keys %$columns ) ); + my @bind_values = map { $entry->{$_} } ( keys %$columns ); + push @bind_values, $entry->{id}; - my $query=qq{ + my $query = qq{ update calcms_roles set $values where id=? }; -# print $query."
      \n".Dumper(\@bind_values)."
      \ņ"; - db::put($dbh, $query, \@bind_values); + # print $query."
      \n".Dumper(\@bind_values)."
      \ņ"; + + db::put( $dbh, $query, \@bind_values ); } # delete role from database -sub delete_role{ - my $config=shift; - my $id=shift; +sub delete_role { + my $config = shift; + my $id = shift; - return unless (defined $id && ($id=~/^\d+$/)); + return unless ( defined $id && ( $id =~ /^\d+$/ ) ); - my $query=qq{ + my $query = qq{ delete from calcms_roles where id=? }; - my $dbh =db::connect($config); - db::put($dbh, $query, [$id]); + my $dbh = db::connect($config); + db::put( $dbh, $query, [$id] ); } # get all roles for given conditions: project_id, studio_id, user_id, name # includes global admin user role -sub get_user_roles{ - my $config=shift; - my $condition=shift; +sub get_user_roles { + my $config = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if (defined $condition->{user}){ - push @conditions, 'u.name=?'; + if ( defined $condition->{user} ) { + push @conditions, 'u.name=?'; push @bind_values, $condition->{user}; } - if (defined $condition->{user_id}){ - push @conditions, 'ur.user_id=?'; + if ( defined $condition->{user_id} ) { + push @conditions, 'ur.user_id=?'; push @bind_values, $condition->{user_id}; } - if (defined $condition->{studio_id}){ - push @conditions, 'ur.studio_id=?'; + if ( defined $condition->{studio_id} ) { + push @conditions, 'ur.studio_id=?'; push @bind_values, $condition->{studio_id}; } - if (defined $condition->{project_id}){ - push @conditions, 'ur.project_id=?'; + if ( defined $condition->{project_id} ) { + push @conditions, 'ur.project_id=?'; push @bind_values, $condition->{project_id}; } - my $conditions=''; - $conditions= " and ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select distinct r.* from calcms_users u, calcms_user_roles ur, calcms_roles r where ur.user_id=u.id and ur.role_id=r.id $conditions }; - my $dbh=db::connect($config); - my $user_roles=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $user_roles = db::get( $dbh, $query, \@bind_values ); #return roles, if the contain an admin role - for my $role(@$user_roles){ - return $user_roles if $role->{role}eq'Admin'; + for my $role (@$user_roles) { + return $user_roles if $role->{role} eq 'Admin'; } - #get all admin roles - delete $condition->{studio_id} if defined $condition->{studio_id}; - delete $condition->{project_id} if defined $condition->{project_id}; - my $admin_roles=get_admin_user_roles($config, $condition); + #get all admin roles + delete $condition->{studio_id} if defined $condition->{studio_id}; + delete $condition->{project_id} if defined $condition->{project_id}; + my $admin_roles = get_admin_user_roles( $config, $condition ); #add admin roles to user roles - my @user_roles=(@$admin_roles, @$user_roles); - $user_roles=\@user_roles; + my @user_roles = ( @$admin_roles, @$user_roles ); + $user_roles = \@user_roles; return $user_roles; } #return admin user roles for given conditions: project_id, studio_id, user, user_id -sub get_admin_user_roles{ - my $config=shift; - my $condition=shift; +sub get_admin_user_roles { + my $config = shift; + my $condition = shift; - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{user}) && ($condition->{user} ne '')){ - push @conditions, 'u.name=?'; + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'u.name=?'; push @bind_values, $condition->{user}; } - if ((defined $condition->{user_id}) && ($condition->{user_id} ne '')){ - push @conditions, 'ur.user_id=?'; + if ( ( defined $condition->{user_id} ) && ( $condition->{user_id} ne '' ) ) { + push @conditions, 'ur.user_id=?'; push @bind_values, $condition->{user_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'ur.studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'ur.project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; push @bind_values, $condition->{project_id}; } - my $conditions=''; - $conditions=" and ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select distinct r.*, ur.studio_id, ur.project_id from calcms_users u, calcms_user_roles ur, calcms_roles r where ur.user_id=u.id and ur.role_id=r.id and r.role='Admin' @@ -468,42 +462,48 @@ sub get_admin_user_roles{ limit 1 }; - my $dbh=db::connect($config); - my $user_roles=db::get($dbh, $query, \@bind_values); + my $dbh = db::connect($config); + my $user_roles = db::get( $dbh, $query, \@bind_values ); return $user_roles; } # read permissions for given conditions and add to user_permissions # return user_permissions # studio_id, user_id, name -sub get_user_permissions{ - my $config=shift; - my $conditions=shift; - my $user_permissions=shift; +sub get_user_permissions { + my $config = shift; + my $conditions = shift; + my $user_permissions = shift; - my $user_roles = get_user_roles($config, $conditions); - my $admin_roles = get_admin_user_roles($config, $conditions); - my @user_roles=(@$admin_roles,@$user_roles); + my $user_roles = get_user_roles( $config, $conditions ); + my $admin_roles = get_admin_user_roles( $config, $conditions ); + my @user_roles = ( @$admin_roles, @$user_roles ); #set default permissions - $user_permissions={} unless(defined $user_permissions); - $user_permissions->{is_admin}=1 if(scalar @$admin_roles>0); + $user_permissions = {} unless ( defined $user_permissions ); + $user_permissions->{is_admin} = 1 if ( scalar @$admin_roles > 0 ); - my $max_level=0; - # aggregate max permissions - # should be limited by project and studio - for my $user_role (@user_roles){ - if ($user_role->{level}>$max_level){ - $user_permissions->{level} = $user_role->{level}; - $user_permissions->{id} = $user_role->{id}; - $user_permissions->{role} = $user_role->{role}; - $user_permissions->{studio_id} = $user_role->{studio_id}; - $user_permissions->{project_id}= $user_role->{project_id}; - $max_level = $user_role->{level}; + my $max_level = 0; + + # aggregate max permissions + # should be limited by project and studio + for my $user_role (@user_roles) { + if ( $user_role->{level} > $max_level ) { + $user_permissions->{level} = $user_role->{level}; + $user_permissions->{id} = $user_role->{id}; + $user_permissions->{role} = $user_role->{role}; + $user_permissions->{studio_id} = $user_role->{studio_id}; + $user_permissions->{project_id} = $user_role->{project_id}; + $max_level = $user_role->{level}; } - for my $permission (keys %$user_role){ - if (($permission ne 'level') && ($permission ne 'id') && ($permission ne 'role') && ($permission ne 'studio_id') && ($permission ne 'project_id')){ - $user_permissions->{$permission}=1 if ((defined $user_role->{$permission}) && ($user_role->{$permission} ne '0')); + for my $permission ( keys %$user_role ) { + if ( ( $permission ne 'level' ) + && ( $permission ne 'id' ) + && ( $permission ne 'role' ) + && ( $permission ne 'studio_id' ) + && ( $permission ne 'project_id' ) ) + { + $user_permissions->{$permission} = 1 if ( ( defined $user_role->{$permission} ) && ( $user_role->{$permission} ne '0' ) ); } } } @@ -511,325 +511,322 @@ sub get_user_permissions{ } #get user id by user name -sub get_user_id{ - my $config=shift; - my $user=shift; +sub get_user_id { + my $config = shift; + my $user = shift; - return undef unless (defined $user); + return undef unless ( defined $user ); - my $query=qq{ + my $query = qq{ select id from calcms_users where binary name=? }; - my $dbh=db::connect($config); - my $users=db::get($dbh, $query, [$user]); - return undef if (@$users==0); + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, [$user] ); + return undef if ( @$users == 0 ); return $users->[0]->{id}; } #get role id by role name -sub get_role_id{ - my $config=shift; - my $role=shift; +sub get_role_id { + my $config = shift; + my $role = shift; - return undef unless (defined $role); + return undef unless ( defined $role ); - my $query=qq{ + my $query = qq{ select id from calcms_roles where role=? }; - my $dbh=db::connect($config); - my $roles=db::get($dbh, $query, [$role]); - return undef if (@$roles==0); + my $dbh = db::connect($config); + my $roles = db::get( $dbh, $query, [$role] ); + return undef if ( @$roles == 0 ); return $roles->[0]->{id}; } # assign a role to an user (for a studio) -sub assign_user_role{ - my $config=shift; - my $options=shift; - - #print STDERR Dumper($options); +sub assign_user_role { + my $config = shift; + my $options = shift; + + #print STDERR Dumper($options); return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; return undef unless defined $options->{user_id}; return undef unless defined $options->{role_id}; #return if already exists - my $query=qq{ + my $query = qq{ select * from calcms_user_roles where project_id=? and studio_id=? and user_id=? and role_id=? }; - my $dbh=db::connect($config); - my $user_roles=db::get($dbh, $query, [$options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id}]); - return undef if (@$user_roles>0); + my $dbh = db::connect($config); + my $user_roles = db::get( $dbh, $query, [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ] ); + return undef if ( @$user_roles > 0 ); #insert entry - my $entry={ + my $entry = { project_id => $options->{project_id}, - studio_id => $options->{studio_id}, + studio_id => $options->{studio_id}, user_id => $options->{user_id}, role_id => $options->{role_id}, - created_at => time::time_to_datetime(time()) + created_at => time::time_to_datetime( time() ) }; - return db::insert($dbh, 'calcms_user_roles', $entry); + return db::insert( $dbh, 'calcms_user_roles', $entry ); } # unassign a user from a role of (for a studio) -sub remove_user_role{ - my $config=shift; - my $options=shift; - +sub remove_user_role { + my $config = shift; + my $options = shift; + return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; return undef unless defined $options->{user_id}; return undef unless defined $options->{role_id}; - my $query=qq{ + my $query = qq{ delete from calcms_user_roles where project_id=? and studio_id=? and user_id=? and role_id=? }; - my $bind_values=[ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ]; - #print STDERR Dumper($query).Dumper($bind_values); - my $dbh=db::connect($config); - my $result=db::put($dbh, $query, $bind_values); - # successfully return even if no entry exists - return 1; + my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ]; + + #print STDERR Dumper($query).Dumper($bind_values); + my $dbh = db::connect($config); + my $result = db::put( $dbh, $query, $bind_values ); + + # successfully return even if no entry exists + return 1; } #checks -sub is_user_assigned_to_studio{ - my $request=shift; - my $options=shift; +sub is_user_assigned_to_studio { + my $request = shift; + my $options = shift; my $config = $request->{config}; - return 0 unless defined $request->{user}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{project_id}; + return 0 unless defined $request->{user}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{project_id}; - my $options2={ - user => $request->{user}, - studio_id => $options->{studio_id}, - project_id => $options->{project_id} - }; + my $options2 = { + user => $request->{user}, + studio_id => $options->{studio_id}, + project_id => $options->{project_id} + }; - my $user_studios=uac::get_studios_by_user($config, $options2); - return 1 if(@$user_studios==1); + my $user_studios = uac::get_studios_by_user( $config, $options2 ); + return 1 if ( @$user_studios == 1 ); return 0; } # print errors at get_user_presets and check for project id and studio id # call after header is printed -sub check{ - my $config=shift; - my $params=shift; - my $user_presets=shift; +sub check { + my $config = shift; + my $params = shift; + my $user_presets = shift; - if (defined $user_presets->{error}){ - uac::print_error($user_presets->{error}); - return undef; - } + if ( defined $user_presets->{error} ) { + uac::print_error( $user_presets->{error} ); + return undef; + } - my $project_check=project::check($config, { project_id => $params->{project_id} } ); - if($project_check ne '1'){ - uac::print_error($project_check); - return undef; - } + my $project_check = project::check( $config, { project_id => $params->{project_id} } ); + if ( $project_check ne '1' ) { + uac::print_error($project_check); + return undef; + } - my $studio_check=studios::check($config, { studio_id => $params->{studio_id} } ); - if($studio_check ne '1'){ - uac::print_error($studio_check); - return undef; - } - return 1; + my $studio_check = studios::check( $config, { studio_id => $params->{studio_id} } ); + if ( $studio_check ne '1' ) { + uac::print_error($studio_check); + return undef; + } + return 1; } # get user, projects and studios user is assigned to for selected values from params # set permissions for selected project and studio -# return request -sub get_user_presets{ - my $config = shift; - my $options = shift; +# return request +sub get_user_presets { + my $config = shift; + my $options = shift; - my $user = $options->{user}||''; - my $error = undef; - return {error=>"no user selected"} if ($user eq''); - - my $project_id = $options->{project_id}||''; - my $studio_id = $options->{studio_id}||''; - $config->{access}->{write}=0; + my $user = $options->{user} || ''; + my $error = undef; + return { error => "no user selected" } if ( $user eq '' ); - #get - my $admin_roles = get_admin_user_roles($config, {user=>$user}); + my $project_id = $options->{project_id} || ''; + my $studio_id = $options->{studio_id} || ''; + $config->{access}->{write} = 0; - #get all projects by user - my $projects = uac::get_projects_by_user($config, {user=>$user}); - return {error=>"no project is assigned to user"} if(@$projects==0); + #get + my $admin_roles = get_admin_user_roles( $config, { user => $user } ); - $projects=project::get($config) if(@$admin_roles>0); - my @projects=reverse sort {$a->{end_date} cmp $b->{end_date}} (@$projects); - $projects=\@projects; + #get all projects by user + my $projects = uac::get_projects_by_user( $config, { user => $user } ); + return { error => "no project is assigned to user" } if ( @$projects == 0 ); - if ($project_id ne'' && $project_id ne'-1'){ - my $projectFound=0; - for my $project(@$projects){ - if ($project->{project_id} eq $project_id){ - $projectFound=1; - last; - }; - } - return {error=>"project is not assigned to user"} if($projectFound==0); - }else{ - $project_id=$projects->[0]->{project_id}; - } - #print STDERR "project:$project_id\n"; + $projects = project::get($config) if ( @$admin_roles > 0 ); + my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects); + $projects = \@projects; - #check if studios are assigned to project - my $studios = project::get_studios($config, {project_id => $project_id}); - $error="no studio is assigned to project" if (@$studios==0); + if ( $project_id ne '' && $project_id ne '-1' ) { + my $projectFound = 0; + for my $project (@$projects) { + if ( $project->{project_id} eq $project_id ) { + $projectFound = 1; + last; + } + } + return { error => "project is not assigned to user" } if ( $projectFound == 0 ); + } else { + $project_id = $projects->[0]->{project_id}; + } - if(@$admin_roles==0){ - #get all studios by user - $studios=uac::get_studios_by_user($config, {user=>$user, project_id=>$project_id}); - $error="no studio is assigned to user" if (@$studios==0); - if (($studio_id ne '')&&($studio_id ne '-1')){ - my $studioFound=0; - for my $studio(@$studios){ - if ($studio->{id} eq $studio_id){ - $studioFound=1; - last; - }; - } - $error="studio is not assigned to user" if($studioFound==0); - }else{ - $studio_id =$studios->[0]->{id}; - } - }else{ - #for admin get studios by project - $studios = studios::get($config, {project_id => $project_id}); - if (($studio_id ne '')&&($studio_id ne '-1')){ - my $studioFound=0; - for my $studio(@$studios){ - if ($studio->{id} eq $studio_id){ - $studioFound=1; - last; - }; - } - $error="studio is not assigned to project" if($studioFound==0); - }else{ - $studio_id =$studios->[0]->{id}; - } - } + #print STDERR "project:$project_id\n"; - my $permissions=uac::get_user_permissions($config, {user=>$user, project_id=>$project_id, studio_id=>$studio_id}); + #check if studios are assigned to project + my $studios = project::get_studios( $config, { project_id => $project_id } ); + $error = "no studio is assigned to project" if ( @$studios == 0 ); - #only admin is allowed to select all projects -# if($permissions->{is_admin}==1){ -# $projects=project::get($config); -# } + if ( @$admin_roles == 0 ) { + + #get all studios by user + $studios = uac::get_studios_by_user( $config, { user => $user, project_id => $project_id } ); + $error = "no studio is assigned to user" if ( @$studios == 0 ); + if ( ( $studio_id ne '' ) && ( $studio_id ne '-1' ) ) { + my $studioFound = 0; + for my $studio (@$studios) { + if ( $studio->{id} eq $studio_id ) { + $studioFound = 1; + last; + } + } + $error = "studio is not assigned to user" if ( $studioFound == 0 ); + } else { + $studio_id = $studios->[0]->{id}; + } + } else { + + #for admin get studios by project + $studios = studios::get( $config, { project_id => $project_id } ); + if ( ( $studio_id ne '' ) && ( $studio_id ne '-1' ) ) { + my $studioFound = 0; + for my $studio (@$studios) { + if ( $studio->{id} eq $studio_id ) { + $studioFound = 1; + last; + } + } + $error = "studio is not assigned to project" if ( $studioFound == 0 ); + } else { + $studio_id = $studios->[0]->{id}; + } + } + + my $permissions = uac::get_user_permissions( $config, { user => $user, project_id => $project_id, studio_id => $studio_id } ); + + #only admin is allowed to select all projects + # if($permissions->{is_admin}==1){ + # $projects=project::get($config); + # } #set studios and projects as selected, TODO:do in JS - my $selectedProject={}; - for my $project(@$projects){ - if ($project_id eq $project->{project_id}){ - $project->{selected}='selected="selected"'; - $selectedProject=$project; + my $selectedProject = {}; + for my $project (@$projects) { + if ( $project_id eq $project->{project_id} ) { + $project->{selected} = 'selected="selected"'; + $selectedProject = $project; last; - }; + } } - my $selectedStudio={}; - for my $studio(@$studios){ - if ($studio_id eq $studio->{id}){ - $studio->{selected}='selected="selected"'; - $selectedStudio=$studio; + my $selectedStudio = {}; + for my $studio (@$studios) { + if ( $studio_id eq $studio->{id} ) { + $studio->{selected} = 'selected="selected"'; + $selectedStudio = $studio; last; - }; + } } - my $logout_url=(split(/\//, $0))[-1]; + my $logout_url = ( split( /\//, $0 ) )[-1]; #print STDERR "ok\n"; - my $result={ - user => $user, - logout_url => $logout_url, + my $result = { + user => $user, + logout_url => $logout_url, - project_id => $project_id, # from parameter or default - projects => $projects, - project => $selectedProject, + project_id => $project_id, # from parameter or default + projects => $projects, + project => $selectedProject, - studio_id => $studio_id, # from parameter or default - studios => $studios, - studio => $selectedStudio, + studio_id => $studio_id, # from parameter or default + studios => $studios, + studio => $selectedStudio, - permissions => $permissions, # from parameter or default - config => $config + permissions => $permissions, # from parameter or default + config => $config }; - $result->{error}=$error if defined $error; + $result->{error} = $error if defined $error; return $result; } #set user preset properties to request -sub prepare_request{ - my $request=shift; - my $user_presets=shift; +sub prepare_request { + my $request = shift; + my $user_presets = shift; - for my $key (keys %$user_presets){ - $request->{$key}=$user_presets->{$key}; + for my $key ( keys %$user_presets ) { + $request->{$key} = $user_presets->{$key}; } + #enrich menu parameters - for my $key ('studio_id', 'project_id', 'studio', 'project', 'studios', 'projects', 'user', 'logout_url'){ - $request->{params}->{checked}->{presets}->{$key}=$user_presets->{$key}; + for my $key ( 'studio_id', 'project_id', 'studio', 'project', 'studios', 'projects', 'user', 'logout_url' ) { + $request->{params}->{checked}->{presets}->{$key} = $user_presets->{$key}; } return $request; } #TODO: shift to permissions sub entry -sub set_template_permissions{ - my $permissions = shift; - my $params = shift; +sub set_template_permissions { + my $permissions = shift; + my $params = shift; - for my $usecase (keys %$permissions){ - $params->{'allow'}->{$usecase}=1 if ($permissions->{$usecase}eq'1'); + for my $usecase ( keys %$permissions ) { + $params->{'allow'}->{$usecase} = 1 if ( $permissions->{$usecase} eq '1' ); } return $params; } #print error message -sub permissions_denied{ - my $message=shift; - $message=~s/_/ /g; - print '
      Sorry! Missing permissions to '.$message.'
      '."\n"; - print STDERR 'Sorry! Missing permissions to '.$message."\n"; +sub permissions_denied { + my $message = shift; + $message =~ s/_/ /g; + print '
      Sorry! Missing permissions to ' . $message . '
      ' . "\n"; + print STDERR 'Sorry! Missing permissions to ' . $message . "\n"; } -sub print_info{ - print '
      ' - .' ' - .$_[0] - .'
      '."\n"; +sub print_info { + print '
      ' . ' ' . $_[0] . '
      ' . "\n"; } -sub print_warn{ - print '
      ' - .' ' - .$_[0] - .'
      '."\n"; +sub print_warn { + print '
      ' . ' ' . $_[0] . '
      ' . "\n"; } -sub print_error{ - my $message=shift; - print STDERR "ERROR:".$message."\n"; - print '
      ' - .' ' - .$message. - '
      '."\n"; +sub print_error { + my $message = shift; + print STDERR "ERROR:" . $message . "\n"; + print '
      ' . ' ' . $message . '
      ' . "\n"; } #do not delete last line! diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index a142885..07b06bb 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -1,216 +1,230 @@ -package user_settings; +package user_settings; use warnings "all"; use strict; use Data::Dumper; -use series_dates; +use series_dates(); # table: calcms_user_settings # columns: user, colors require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(getColors getColorCss get insert update delete get_columns defaultColors); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(getColors getColorCss get insert update delete get_columns defaultColors); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -our $defaultColors=[ - { - name => 'color_event', - css => '#content .event', - color => '#c5e1a5' - },{ - name => 'color_draft', - css => '#content .draft', - color => '#eeeeee', - },{ - name => 'color_schedule', - css => '#content .schedule', - color => '#dde4e6', - },{ - name => 'color_published', - css => '#content .event.published', - color => '#a5d6a7', - },{ - name => 'color_no_series', - css => '#content .event.no_series', - color => '#fff59d', - },{ - name => 'color_marked', - css => '#content .event.marked', - color => '#81d4fa', - },{ - name => 'color_event_error', - css => '#content.conflicts .event.error', - color => '#ffab91', - },{ - name => 'color_schedule_error', - css => '#content.conflicts .schedule.error', - color => '#ffcc80' - },{ - name => 'color_work', - css => '#content .work', - color => '#b39ddb' - },{ - name => 'color_playout', - css => '#content .play', - color => '#90caf9' - } +our $defaultColors = [ + { + name => 'color_event', + css => '#content .event', + color => '#c5e1a5' + }, + { + name => 'color_draft', + css => '#content .draft', + color => '#eeeeee', + }, + { + name => 'color_schedule', + css => '#content .schedule', + color => '#dde4e6', + }, + { + name => 'color_published', + css => '#content .event.published', + color => '#a5d6a7', + }, + { + name => 'color_no_series', + css => '#content .event.no_series', + color => '#fff59d', + }, + { + name => 'color_marked', + css => '#content .event.marked', + color => '#81d4fa', + }, + { + name => 'color_event_error', + css => '#content.conflicts .event.error', + color => '#ffab91', + }, + { + name => 'color_schedule_error', + css => '#content.conflicts .schedule.error', + color => '#ffcc80' + }, + { + name => 'color_work', + css => '#content .work', + color => '#b39ddb' + }, + { + name => 'color_playout', + css => '#content .play', + color => '#90caf9' + } ]; -sub getColors{ - my $config=shift; - my $conditions=shift; - return unless defined $conditions->{user}; - my $user=$conditions->{user}; +sub getColors { + my $config = shift; + my $conditions = shift; + return unless defined $conditions->{user}; + my $user = $conditions->{user}; - #get defaultColors - my $colors=[]; - my $colorMap={}; - for my $defaultColor (@$defaultColors){ - my $color= { - name => $defaultColor->{name}, - css => $defaultColor->{css}, - color => $defaultColor->{color}, - }; - push @$colors,$color; - $colorMap->{$color->{css}}=$color; - } + #get defaultColors + my $colors = []; + my $colorMap = {}; + for my $defaultColor (@$defaultColors) { + my $color = { + name => $defaultColor->{name}, + css => $defaultColor->{css}, + color => $defaultColor->{color}, + }; + push @$colors, $color; + $colorMap->{ $color->{css} } = $color; + } - my $settings = user_settings::get($config, {user => $user }); - $settings->{colors} |=''; - #overwrite colors from user settings - for my $line (split(/\n+/, $settings->{colors})){ - my ($key,$value)=split(/\=/,$line); - $key=~s/^\s+//; - $key=~s/\s+$//; - $value=~s/^\s+//; - $value=~s/\s+$//; - $colorMap->{$key}->{color}=$value if (($key ne '')&&($value ne '')&&(defined $colorMap->{$key})); - } - return $colors; + my $settings = user_settings::get( $config, { user => $user } ); + $settings->{colors} |= ''; + + #overwrite colors from user settings + for my $line ( split( /\n+/, $settings->{colors} ) ) { + my ( $key, $value ) = split( /\=/, $line ); + $key =~ s/^\s+//; + $key =~ s/\s+$//; + $value =~ s/^\s+//; + $value =~ s/\s+$//; + $colorMap->{$key}->{color} = $value if ( ( $key ne '' ) && ( $value ne '' ) && ( defined $colorMap->{$key} ) ); + } + return $colors; } -sub getColorCss{ - my $config=shift; - my $conditions=shift; - return unless defined $conditions->{user}; - - my $shift=20; - my $limit=220; - - my $colors=getColors($config, $conditions); - my $style="\n"; - return $style; +sub getColorCss { + my $config = shift; + my $conditions = shift; + return unless defined $conditions->{user}; + + my $shift = 20; + my $limit = 220; + + my $colors = getColors( $config, $conditions ); + my $style = "\n"; + return $style; } +sub get_columns { + my $config = shift; -sub get_columns{ - my $config=shift; - - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_user_settings'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_user_settings' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{user}) && ($condition->{user} ne '')){ - push @conditions, 'user=?'; + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; push @bind_values, $condition->{user}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_user_settings $conditions }; + #print $query."\n"; #print Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); - return $entries->[0]||undef; + my $entries = db::get( $dbh, $query, \@bind_values ); + return $entries->[0] || undef; } -sub insert{ - my $config=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $entry = shift; - return unless(defined $entry->{user}); - return unless(defined $entry->{colors}); - my $dbh=db::connect($config); - return db::insert($dbh, 'calcms_user_settings', $entry); + return unless ( defined $entry->{user} ); + return unless ( defined $entry->{colors} ); + my $dbh = db::connect($config); + return db::insert( $dbh, 'calcms_user_settings', $entry ); } -sub update{ - my $config=shift; - my $entry=shift; +sub update { + my $config = shift; + my $entry = shift; - return unless(defined $entry->{user}); - return unless(defined $entry->{colors}); + return unless ( defined $entry->{user} ); + return unless ( defined $entry->{colors} ); - my $dbh=db::connect($config); - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); - push @bind_values,$entry->{user}; + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{user}; - my $query=qq{ + my $query = qq{ update calcms_user_settings set $values where user=? }; - db::put($dbh, $query, \@bind_values); + db::put( $dbh, $query, \@bind_values ); print "done\n"; } -sub delete{ - my $config=shift; - my $entry=shift; - - return unless(defined $entry->{user}); +sub delete { + my $config = shift; + my $entry = shift; - my $dbh=db::connect($config); + return unless ( defined $entry->{user} ); - my $query=qq{ + my $dbh = db::connect($config); + + my $query = qq{ delete from calcms_user_settings where user=? }; - my $bind_values=[$entry->{user}]; + my $bind_values = [ $entry->{user} ]; + #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put($dbh, $query, $bind_values); + db::put( $dbh, $query, $bind_values ); } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/user_stats.pm b/lib/calcms/user_stats.pm index aa537e4..6f80503 100644 --- a/lib/calcms/user_stats.pm +++ b/lib/calcms/user_stats.pm @@ -1,117 +1,118 @@ #!/bin/perl - -package user_stats; + +package user_stats; use warnings "all"; use strict; use Data::Dumper; require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get update insert get_stats increase); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get update insert get_stats increase); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_user_stats'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_user_stats' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'series_id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{user}) && ($condition->{user} ne '')){ - push @conditions, 'user=?'; + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; push @bind_values, $condition->{user}; } - my $limit=''; - if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ - $limit= 'limit '.$condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_user_stats $conditions order by modified_at desc $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $results=db::get($dbh, $query, \@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); + + my $results = db::get( $dbh, $query, \@bind_values ); return $results; } -sub get_stats{ - my $config=shift; - my $condition=shift; +sub get_stats { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{series_id}) && ($condition->{series_id} ne '')){ - push @conditions, 'series_id=?'; + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; push @bind_values, $condition->{series_id}; } - if ((defined $condition->{user}) && ($condition->{user} ne '')){ - push @conditions, 'user=?'; + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; push @bind_values, $condition->{user}; } - my $limit=''; - if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ - $limit= 'limit '.$condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select user, project_id, studio_id, max(modified_at) modified_at, sum(create_events) create_events, @@ -125,121 +126,126 @@ sub get_stats{ group by user, project_id, studio_id $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $results=db::get($dbh, $query, \@bind_values); - for my $result (@$results){ - $result->{score}=0; - for my $column ('create_events','update_events','delete_events','create_series','update_series','delete_series'){ - $result->{score}+=$result->{$column}; - } + #print STDERR Dumper($query).Dumper(\@bind_values); + + my $results = db::get( $dbh, $query, \@bind_values ); + for my $result (@$results) { + $result->{score} = 0; + for my $column ( 'create_events', 'update_events', 'delete_events', 'create_series', 'update_series', 'delete_series' ) { + $result->{score} += $result->{$column}; + } } - my @results=reverse sort {$a->{score} <=> $b->{score}} @$results; + my @results = reverse sort { $a->{score} <=> $b->{score} } @$results; return \@results; } -sub insert{ - my $config=shift; - my $stats=shift; +sub insert { + my $config = shift; + my $stats = shift; - return undef unless defined $stats->{project_id}; - return undef unless defined $stats->{studio_id}; - return undef unless defined $stats->{series_id}; - return undef unless defined $stats->{user}; + return undef unless defined $stats->{project_id}; + return undef unless defined $stats->{studio_id}; + return undef unless defined $stats->{series_id}; + return undef unless defined $stats->{user}; - #TODO:filter for existing attributes - my $columns=get_columns($config); - my $entry={}; - for my $column (keys %$columns){ - $entry->{$column}=$stats->{$column} if defined $stats->{$column}; - } - $entry->{modified_at}= time::time_to_datetime(time()); - - my $dbh=db::connect($config); - my $id=db::insert($dbh, 'calcms_user_stats', $entry); - return $id; + #TODO:filter for existing attributes + my $columns = get_columns($config); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $stats->{$column} if defined $stats->{$column}; + } + $entry->{modified_at} = time::time_to_datetime( time() ); + + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_user_stats', $entry ); + return $id; } # update project -sub update{ - my $config=shift; - my $stats=shift; +sub update { + my $config = shift; + my $stats = shift; - return undef unless defined $stats->{project_id}; - return undef unless defined $stats->{studio_id}; - return undef unless defined $stats->{series_id}; - return undef unless defined $stats->{user}; + return undef unless defined $stats->{project_id}; + return undef unless defined $stats->{studio_id}; + return undef unless defined $stats->{series_id}; + return undef unless defined $stats->{user}; - my $columns=get_columns($config); - my $entry={}; - for my $column (keys %$columns){ - $entry->{$column}=$stats->{$column} if defined $stats->{$column}; - } - $entry->{modified_at}= time::time_to_datetime(time()); - - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); + my $columns = get_columns($config); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $stats->{$column} if defined $stats->{$column}; + } + $entry->{modified_at} = time::time_to_datetime( time() ); + + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); push @bind_values, $entry->{user}; push @bind_values, $entry->{project_id}; push @bind_values, $entry->{studio_id}; push @bind_values, $entry->{series_id}; - my $query=qq{ + my $query = qq{ update calcms_user_stats set $values where user=? and project_id=? and studio_id=? and series_id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $dbh=db::connect($config); - return db::put($dbh, $query, \@bind_values); + + #print STDERR Dumper($query).Dumper(\@bind_values); + my $dbh = db::connect($config); + return db::put( $dbh, $query, \@bind_values ); } -sub increase{ - my $config=shift; - my $usecase=shift; - my $options=shift; +sub increase { + my $config = shift; + my $usecase = shift; + my $options = shift; - #print STDERR Dumper($usecase)." ".Dumper($options); + #print STDERR Dumper($usecase)." ".Dumper($options); - return undef unless defined $usecase; - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{series_id}; - return undef unless defined $options->{user}; + return undef unless defined $usecase; + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{series_id}; + return undef unless defined $options->{user}; - #print STDERR "ok\n"; + #print STDERR "ok\n"; - my $columns=get_columns($config); - #print STDERR "columns:".Dumper($columns); - return undef unless defined $columns->{$usecase}; + my $columns = get_columns($config); - my $entries= get($config,$options); - #print STDERR "exist:".Dumper($columns); + #print STDERR "columns:".Dumper($columns); + return undef unless defined $columns->{$usecase}; - if (@$entries==0){ - my $entry={ - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - user => $options->{user}, - $usecase => 1, - }; - #print STDERR "user_stats::insert\n"; - return insert($config, $entry); - }elsif (@$entries==1){ - my $entry=$entries->[0]; - $entry->{$usecase}++ if defined - #print STDERR "user_stats::update\n"; - return update($config, $entry); - }else{ - print STDERR "user_stats: to few options given: $usecase,".Dumper($options)."\n"; - } + my $entries = get( $config, $options ); + + #print STDERR "exist:".Dumper($columns); + + if ( @$entries == 0 ) { + my $entry = { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + user => $options->{user}, + $usecase => 1, + }; + + #print STDERR "user_stats::insert\n"; + return insert( $config, $entry ); + } elsif ( @$entries == 1 ) { + my $entry = $entries->[0]; + $entry->{$usecase}++ if defined + + #print STDERR "user_stats::update\n"; + return update( $config, $entry ); + } else { + print STDERR "user_stats: to few options given: $usecase," . Dumper($options) . "\n"; + } } - -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index 8319f03..7f8d09f 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -1,101 +1,101 @@ -package work_dates; +package work_dates; use warnings "all"; use strict; use Data::Dumper; -use Date::Calc; -use time; -use db; -use log; -use studio_timeslot_dates; -use work_schedule; +use Date::Calc(); +use time(); +use db(); +use log(); +use studio_timeslot_dates(); +use work_schedule(); # schedule dates for work_schedule # table: calcms_work_dates # columns: id, studio_id, schedule_id, start(datetime), end(datetime) # TODO: delete column schedule_id require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get insert update delete get_dates); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get insert update delete get_dates); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_work_dates'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_work_dates' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } # get all work_dates for studio_id and schedule_id within given time range # calculate start_date, end_date, weeday, day from start and end(datetime) -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $date_range_include=0; - $date_range_include=1 if (defined $condition->{date_range_include}) && ($condition->{date_range_include}==1); + my $date_range_include = 0; + $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{schedule_id}) && ($condition->{schedule_id} ne '')){ - push @conditions, 'schedule_id=?'; + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'schedule_id=?'; push @bind_values, $condition->{schedule_id}; } - if ((defined $condition->{start_at}) && ($condition->{start_at} ne '')){ - push @conditions, 'start=?'; + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'start=?'; push @bind_values, $condition->{start_at}; } - if ((defined $condition->{from}) && ($condition->{from} ne '')){ - if ($date_range_include==1){ - push @conditions, 'end_date>=?'; - push @bind_values, $condition->{from}; - }else{ - push @conditions, 'start_date>=?'; - push @bind_values, $condition->{from}; - } + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'end_date>=?'; + push @bind_values, $condition->{from}; + } else { + push @conditions, 'start_date>=?'; + push @bind_values, $condition->{from}; + } } - if ((defined $condition->{till}) && ($condition->{till} ne '')){ - if ($date_range_include==1){ - push @conditions, 'start_date<=?'; - push @bind_values, $condition->{till}; - }else{ - push @conditions, 'end_date<=?'; - push @bind_values, $condition->{till}; - } + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'start_date<=?'; + push @bind_values, $condition->{till}; + } else { + push @conditions, 'end_date<=?'; + push @bind_values, $condition->{till}; + } } - if ((defined $condition->{exclude}) && ($condition->{exclude} ne '')){ - push @conditions, 'exclude=?'; + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'exclude=?'; push @bind_values, $condition->{exclude}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select date(start) start_date ,date(end) end_date ,dayname(start) weekday @@ -113,271 +113,281 @@ sub get{ $conditions order by start }; + #print STDERR $query."\n"; #print STDERR Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); - for my $entry (@$entries){ - $entry->{weekday}=substr($entry->{weekday},0,2); + my $entries = db::get( $dbh, $query, \@bind_values ); + for my $entry (@$entries) { + $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); } - + return $entries; } - #update work dates for all schedules of a work and studio_id -sub update{ - my $config=shift; - my $entry=shift; +sub update { + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id} ; - return undef unless defined $entry->{studio_id} ; - return undef unless defined $entry->{schedule_id} ; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{schedule_id}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); #delete all existing work dates (by project, studio and schedule id) - work_dates::delete($config, $entry); + work_dates::delete( $config, $entry ); - my $day_start=$config->{date}->{day_starting_hour}; + my $day_start = $config->{date}->{day_starting_hour}; #get all schedules for schedule id ordered by exclude, date - my $schedules=work_schedule::get($config, { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - schedule_id => $entry->{schedule_id}, - }); - + my $schedules = work_schedule::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + schedule_id => $entry->{schedule_id}, + } + ); + #add scheduled work dates and remove exluded dates - my $work_dates={}; + my $work_dates = {}; - #TODO:set schedules exclude to 0 if not 1 - #insert all normal dates (not excludes) - for my $schedule (@$schedules){ - my $dates=get_schedule_dates($schedule, {exclude => 0}); - for my $date (@$dates){ - $date->{exclude}=0; - $work_dates->{$date->{start}}=$date; - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); + #TODO:set schedules exclude to 0 if not 1 + #insert all normal dates (not excludes) + for my $schedule (@$schedules) { + my $dates = get_schedule_dates( $schedule, { exclude => 0 } ); + for my $date (@$dates) { + $date->{exclude} = 0; + $work_dates->{ $date->{start} } = $date; + + #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); } } - #insert / overwrite all exlude dates - for my $schedule (@$schedules){ - my $dates=get_schedule_dates($schedule, {exclude => 1}); - for my $date (@$dates){ - $date->{exclude}=1; - $work_dates->{$date->{start}}=$date; - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); + #insert / overwrite all exlude dates + for my $schedule (@$schedules) { + my $dates = get_schedule_dates( $schedule, { exclude => 1 } ); + for my $date (@$dates) { + $date->{exclude} = 1; + $work_dates->{ $date->{start} } = $date; + + #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); } } - #print STDERR Dumper($work_dates->{'2014-02-05 19:00:00'}); + #print STDERR Dumper($work_dates->{'2014-02-05 19:00:00'}); - my $request={ - config => $config - }; + my $request = { config => $config }; + + my $i = 0; + my $j = 0; + for my $date ( keys %$work_dates ) { + my $work_date = $work_dates->{$date}; - my $i=0; - my $j=0; - for my $date (keys %$work_dates){ - my $work_date=$work_dates->{$date}; #insert date - my $entry={ - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - schedule_id => $entry->{schedule_id}, - title => $entry->{title}, - type => $entry->{type}, - schedule_id => $entry->{schedule_id}, - start => $work_date->{start}, - end => $work_date->{end}, - exclude => $work_date->{exclude} - }; - if(studio_timeslot_dates::can_studio_edit_events($config, $entry)==1){ # by studio_id, start, end - $entry->{start_date}= time::add_hours_to_datetime($entry->{start}, -$day_start); - $entry->{end_date}= time::add_hours_to_datetime($entry->{end}, -$day_start); - db::insert($dbh, 'calcms_work_dates', $entry); - #print STDERR "$entry->{start_date}\n"; - $i++; - }else{ - $j++; - #print STDERR Dumper($entry); - } - } - #print STDERR "$i work_dates updates\n"; - return $j." dates out of studio times, ".$i; + my $entry = { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + schedule_id => $entry->{schedule_id}, + title => $entry->{title}, + type => $entry->{type}, + schedule_id => $entry->{schedule_id}, + start => $work_date->{start}, + end => $work_date->{end}, + exclude => $work_date->{exclude} + }; + if ( studio_timeslot_dates::can_studio_edit_events( $config, $entry ) == 1 ) { # by studio_id, start, end + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + db::insert( $dbh, 'calcms_work_dates', $entry ); + + #print STDERR "$entry->{start_date}\n"; + $i++; + } else { + $j++; + + #print STDERR Dumper($entry); + } + } + + #print STDERR "$i work_dates updates\n"; + return $j . " dates out of studio times, " . $i; } -sub get_schedule_dates{ - my $schedule=shift; - my $options=shift; +sub get_schedule_dates { + my $schedule = shift; + my $options = shift; - my $is_exclude=$options->{exclude}||0; - my $dates=[]; - return $dates if (($is_exclude eq'1') && ($schedule->{exclude}ne'1')); - return $dates if (($is_exclude eq'0') && ($schedule->{exclude}eq'1')); + my $is_exclude = $options->{exclude} || 0; + my $dates = []; + return $dates if ( ( $is_exclude eq '1' ) && ( $schedule->{exclude} ne '1' ) ); + return $dates if ( ( $is_exclude eq '0' ) && ( $schedule->{exclude} eq '1' ) ); - if ($schedule->{period_type}eq'single'){ - $dates=get_single_date($schedule->{start}, $schedule->{duration}) ; - }elsif($schedule->{period_type}eq'days'){ - $dates=get_dates($schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{frequency}) ; - }elsif($schedule->{period_type}eq'week_of_month'){ - $dates=get_week_of_month_dates($schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{week_of_month}, $schedule->{weekday}, $schedule->{month}); - }else{ - print STDERR "unknown schedule period_type\n"; - } - return $dates; + if ( $schedule->{period_type} eq 'single' ) { + $dates = get_single_date( $schedule->{start}, $schedule->{duration} ); + } elsif ( $schedule->{period_type} eq 'days' ) { + $dates = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{frequency} ); + } elsif ( $schedule->{period_type} eq 'week_of_month' ) { + $dates = get_week_of_month_dates( + $schedule->{start}, $schedule->{end}, $schedule->{duration}, + $schedule->{week_of_month}, $schedule->{weekday}, $schedule->{month} + ); + } else { + print STDERR "unknown schedule period_type\n"; + } + return $dates; } +sub get_week_of_month_dates { + my $start = shift; # datetime string + my $end = shift; # datetime string + my $duration = shift; # in minutes + my $week = shift; # every nth week of month + my $weekday = shift; # weekday [1..7] + my $frequency = shift; # every 1st,2nd,3th time -sub get_week_of_month_dates{ - my $start =shift; # datetime string - my $end =shift; # datetime string - my $duration =shift; # in minutes - my $week =shift; # every nth week of month - my $weekday =shift; # weekday [1..7] - my $frequency =shift; # every 1st,2nd,3th time + return undef if $start eq ''; + return undef if $end eq ''; + return undef if $duration eq ''; + return undef if $week eq ''; + return undef if $weekday eq ''; + return undef if $frequency eq ''; + return undef if $frequency == 0; - return undef if $start eq''; - return undef if $end eq''; - return undef if $duration eq''; - return undef if $week eq''; - return undef if $weekday eq''; - return undef if $frequency eq''; - return undef if $frequency==0; + my $start_dates = time::get_nth_weekday_in_month( $start, $end, $week, $weekday ); - my $start_dates=time::get_nth_weekday_in_month($start, $end, $week, $weekday); + my $results = []; - my $results=[]; - - my $c=-1; - for my $start_datetime (@$start_dates){ - $c++; - my @start = @{time::datetime_to_array($start_datetime)}; - next unless @start>=6; - next if (($c % $frequency)!=0); + my $c = -1; + for my $start_datetime (@$start_dates) { + $c++; + my @start = @{ time::datetime_to_array($start_datetime) }; + next unless @start >= 6; + next if ( ( $c % $frequency ) != 0 ); my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds + $start[0], $start[1], $start[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds ); - my $end_datetime=time::array_to_datetime(\@end_datetime); + my $end_datetime = time::array_to_datetime( \@end_datetime ); - push @$results, { - start => $start_datetime, - end => $end_datetime - }; - } - return $results; + push @$results, + { + start => $start_datetime, + end => $end_datetime + }; + } + return $results; } #add duration to a single date -sub get_single_date{ +sub get_single_date { my $start_datetime = shift; - my $duration = shift; + my $duration = shift; - my @start = @{time::datetime_to_array($start_datetime)}; - return unless @start>=6; + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date + $start[0], $start[1], $start[2], # start date $start[3], $start[4], $start[5], # start time 0, 0, $duration, 0 # delta days, hours, minutes, seconds ); - my $date={ - start => $start_datetime, - end => time::array_to_datetime(\@end_datetime) - }; + my $date = { + start => $start_datetime, + end => time::array_to_datetime( \@end_datetime ) + }; return [$date]; } #calculate all dates between start_datetime and end_date with duration(minutes) and frequency(days) -sub get_dates{ +sub get_dates { my $start_datetime = shift; my $end_date = shift; - my $duration = shift; # in minutes - my $frequency = shift; # in days - #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; + my $duration = shift; # in minutes + my $frequency = shift; # in days + #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; - my @start = @{time::datetime_to_array($start_datetime)}; - return unless @start>=6; - my @start_date = ($start[0], $start[1], $start[2]); - my $start_time = sprintf('%02d:%02d:%02d', $start[3], $start[4], $start[5]); + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; + my @start_date = ( $start[0], $start[1], $start[2] ); + my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] ); - #print STDERR "$start_datetime,$end_date,$duration,$frequency\n"; + #print STDERR "$start_datetime,$end_date,$duration,$frequency\n"; - #return on single date - my $date={}; - $date->{start}= sprintf("%04d-%02d-%02d",@start_date).' '.$start_time; + #return on single date + my $date = {}; + $date->{start} = sprintf( "%04d-%02d-%02d", @start_date ) . ' ' . $start_time; return undef if $duration eq ''; - return undef if (($frequency eq '')||($end_date eq'')); + return undef if ( ( $frequency eq '' ) || ( $end_date eq '' ) ); - #continue on recurring date - my @end = @{time::datetime_to_array($end_date)}; - return unless @end>=3; - my @end_date = ($end[0], $end[1], $end[2]); + #continue on recurring date + my @end = @{ time::datetime_to_array($end_date) }; + return unless @end >= 3; + my @end_date = ( $end[0], $end[1], $end[2] ); - my $today=time::time_to_date(); - my ($year, $month, $day)=split(/\-/,$today); + my $today = time::time_to_date(); + my ( $year, $month, $day ) = split( /\-/, $today ); - #do not show dates one month back - my $not_before= sprintf("%04d-%02d-%02d", Date::Calc::Add_Delta_Days($year, $month, $day, -30)); + #do not show dates one month back + my $not_before = sprintf( "%04d-%02d-%02d", Date::Calc::Add_Delta_Days( $year, $month, $day, -30 ) ); - my $dates=[]; - return $dates if ($end_date lt $today); - return $dates if ($frequency<1); + my $dates = []; + return $dates if ( $end_date lt $today ); + return $dates if ( $frequency < 1 ); + + my $j = Date::Calc::Delta_Days( @start_date, @end_date ); + my $c = 0; + for ( my $i = 0 ; $i <= $j ; $i += $frequency ) { + my @date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); + my $date = {}; + $date->{start} = sprintf( "%04d-%02d-%02d", @date ) . ' ' . $start_time; - my $j = Date::Calc::Delta_Days(@start_date, @end_date); - my $c=0; - for (my $i = 0; $i <= $j; $i+=$frequency ){ - my @date = Date::Calc::Add_Delta_Days($start[0], $start[1], $start[2], $i); - my $date={}; - $date->{start}=sprintf("%04d-%02d-%02d",@date).' '.$start_time; - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $date[0], $date[1], $date[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds + $date[0], $date[1], $date[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds ); - $date->{end}=time::array_to_datetime(\@end_datetime); + $date->{end} = time::array_to_datetime( \@end_datetime ); - last if ($c>200); + last if ( $c > 200 ); $c++; - next if $date->{end} lt $not_before; - push @$dates,$date; + next if $date->{end} lt $not_before; + push @$dates, $date; } return $dates; } #remove all work_dates for studio_id and schedule_id -sub delete{ - my $config=shift; - my $entry=shift; - +sub delete { + my $config = shift; + my $entry = shift; + return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{schedule_id}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $query=qq{ + my $query = qq{ delete from calcms_work_dates where project_id=? and studio_id=? and schedule_id=? }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id}]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id} ]; + #print '
      $query'.$query.Dumper($bind_values).'
      '; - return db::put($dbh, $query, $bind_values); + return db::put( $dbh, $query, $bind_values ); } - -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/lib/calcms/work_schedule.pm b/lib/calcms/work_schedule.pm index 253ebb7..b14d2ac 100644 --- a/lib/calcms/work_schedule.pm +++ b/lib/calcms/work_schedule.pm @@ -1,154 +1,156 @@ -package work_schedule; +package work_schedule; use warnings "all"; use strict; use Data::Dumper; -use series_dates; +use series_dates(); # table: calcms_work_schedule -# columns: id, studio_id, series_id, - # start (datetime), - # duration (minutes), - # frequency (days), - # end (date), - # weekday (1..7) - # week_of_month (1..5) - # month +# columns: id, studio_id, series_id, +# start (datetime), +# duration (minutes), +# frequency (days), +# end (date), +# weekday (1..7) +# week_of_month (1..5) +# month require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(get_columns get insert update delete); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] ); +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(get_columns get insert update delete); +our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; -sub get_columns{ - my $config=shift; +sub get_columns { + my $config = shift; - my $dbh=db::connect($config); - my $cols=db::get_columns($dbh, 'calcms_work_schedule'); - my $columns={}; - for my $col (@$cols){ - $columns->{$col}=1; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_work_schedule' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; } return $columns; } #map schedule id to id -sub get{ - my $config=shift; - my $condition=shift; +sub get { + my $config = shift; + my $condition = shift; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my @conditions=(); - my @bind_values=(); + my @conditions = (); + my @bind_values = (); - if ((defined $condition->{project_id}) && ($condition->{project_id} ne '')){ - push @conditions, 'project_id=?'; + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ((defined $condition->{studio_id}) && ($condition->{studio_id} ne '')){ - push @conditions, 'studio_id=?'; + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; } - if ((defined $condition->{schedule_id}) && ($condition->{schedule_id} ne '')){ - push @conditions, 'schedule_id=?'; + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'schedule_id=?'; push @bind_values, $condition->{schedule_id}; } - if ((defined $condition->{start}) && ($condition->{start} ne '')){ - push @conditions, 'start=?'; + if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) { + push @conditions, 'start=?'; push @bind_values, $condition->{start}; } - if ((defined $condition->{exclude}) && ($condition->{exclude} ne '')){ - push @conditions, 'exclude=?'; + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'exclude=?'; push @bind_values, $condition->{exclude}; } - if ((defined $condition->{period_type}) && ($condition->{period_type} ne '')){ - push @conditions, 'period_type=?'; + if ( ( defined $condition->{period_type} ) && ( $condition->{period_type} ne '' ) ) { + push @conditions, 'period_type=?'; push @bind_values, $condition->{period_type}; } - my $conditions=''; - $conditions=" where ".join(" and ",@conditions) if (@conditions>0); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query=qq{ + my $query = qq{ select * from calcms_work_schedule $conditions order by exclude, start }; + #print STDERR $query."\n".Dumper(\@bind_values); - my $entries=db::get($dbh, $query, \@bind_values); + my $entries = db::get( $dbh, $query, \@bind_values ); return $entries; } -sub insert{ - my $config=shift; - my $entry=shift; +sub insert { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{start}; - my $dbh=db::connect($config); - return db::insert($dbh, 'calcms_work_schedule', $entry); + my $dbh = db::connect($config); + return db::insert( $dbh, 'calcms_work_schedule', $entry ); } #schedule id to id -sub update{ - my $config=shift; - my $entry=shift; +sub update { + my $config = shift; + my $entry = shift; return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{schedule_id}; return undef unless defined $entry->{start}; - my $dbh=db::connect($config); - my $values =join(",", map {$_.'=?'} (keys %$entry)); - my @bind_values =map {$entry->{$_}} (keys %$entry); + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values,$entry->{project_id}; - push @bind_values,$entry->{studio_id}; - push @bind_values,$entry->{schedule_id}; + push @bind_values, $entry->{project_id}; + push @bind_values, $entry->{studio_id}; + push @bind_values, $entry->{schedule_id}; - my $query=qq{ + my $query = qq{ update calcms_work_schedule set $values where project_id=? and studio_id=? and schedule_id=? }; - return db::put($dbh, $query, \@bind_values); + return db::put( $dbh, $query, \@bind_values ); print "done\n"; } #map schedule id to id -sub delete{ - my $config=shift; - my $entry=shift; - +sub delete { + my $config = shift; + my $entry = shift; + return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{schedule_id}; - my $dbh=db::connect($config); + my $dbh = db::connect($config); - my $query=qq{ + my $query = qq{ delete from calcms_work_schedule where project_id=? and studio_id=? and schedule_id=? }; - my $bind_values=[$entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id}]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id} ]; + #print '
      $query'.$query.Dumper($bind_values).'
      '; - return db::put($dbh, $query, $bind_values); + return db::put( $dbh, $query, $bind_values ); } -sub error{ - my $msg=shift; +sub error { + my $msg = shift; print "ERROR: $msg
      \n"; } diff --git a/website/agenda/add_comment.cgi b/website/agenda/add_comment.cgi index 6cc1285..d30760f 100755 --- a/website/agenda/add_comment.cgi +++ b/website/agenda/add_comment.cgi @@ -37,7 +37,6 @@ my $request={ config => $config, }; $params=$request->{params}->{checked}; -log::init($request); print $cgi->header('text/plain')."\n"; diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index e91480f..9e55dac 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -55,10 +55,8 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { }, }; $params = $request->{params}->{checked}; - #print STDERR Dumper($params); my $mem = 0; - log::init($request); #get result from cache my $cache = aggregator::get_cache( $config, $request ); @@ -159,18 +157,14 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { print $output_header; print $content; - # $r->print("done"); - if ( $config->{cache}->{use_cache} eq '1' ) { $cache->{content} = $content; - log::write( $config, 'cache_file', $cache->{filename} ) if ($debug); cache::save($cache); } # $config=undef; $content = undef; $cache = undef; - log::mem( $config, 'aggregate done', $mem ) if ( $mem_debug > 0 ); } sub load_file { diff --git a/website/agenda/cal.cgi b/website/agenda/cal.cgi index 298e77c..e5961cd 100755 --- a/website/agenda/cal.cgi +++ b/website/agenda/cal.cgi @@ -34,8 +34,6 @@ if ( $0 =~ /cal.*?\.cgi$/ ) { }; $params = $request->{params}->{checked}; - log::init($request); - my $out = ''; calendar::get_cached_or_render( $out, $config, $request ); print $out. "\n"; diff --git a/website/agenda/category.cgi b/website/agenda/category.cgi index 2971875..9f16fa6 100755 --- a/website/agenda/category.cgi +++ b/website/agenda/category.cgi @@ -2,7 +2,6 @@ use strict; use warnings; - use Data::Dumper; use CGI qw(header param Vars); $CGI::POST_MAX = 1000; @@ -33,9 +32,6 @@ my $request = { checked => check_params( $config, $params ), }, }; - -log::init($request); - $params = $request->{params}->{checked}; my $cache = {}; diff --git a/website/agenda/comments.cgi b/website/agenda/comments.cgi index 972dd4a..c750458 100755 --- a/website/agenda/comments.cgi +++ b/website/agenda/comments.cgi @@ -2,7 +2,6 @@ use warnings "all"; use strict; - use CGI qw(header param Vars); $CGI::POST_MAX = 1000; $CGI::DISABLE_UPLOADS = 1; @@ -17,7 +16,6 @@ use markup(); use time(); use cache(); use log(); - my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); @@ -34,7 +32,6 @@ if ( $0 =~ /comments.*?\.cgi$/ ) { checked => comments::check_params( $config, $params ), }, }; - log::init($request); my $output = ''; comments::get_cached_or_render( $output, $config, $request, 'filter_locked' ); diff --git a/website/agenda/events.cgi b/website/agenda/events.cgi index d23bc57..d3d2eb9 100755 --- a/website/agenda/events.cgi +++ b/website/agenda/events.cgi @@ -45,9 +45,6 @@ if ( $0 =~ /events.*?\.cgi$/ ) { }, }; - #events::init($request); - log::init($request); - my $output = ''; events::get_cached_or_render( $output, $config, $request ); print $output. "\n"; diff --git a/website/agenda/planung/assign_series.cgi b/website/agenda/planung/assign_series.cgi index 2d38276..1cb164c 100755 --- a/website/agenda/planung/assign_series.cgi +++ b/website/agenda/planung/assign_series.cgi @@ -58,7 +58,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index c75f687..967e954 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -58,7 +58,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; @@ -224,10 +223,10 @@ sub assign_events { checked => events::check_params( $config, { - event_id => $entry->{event_id}, - template => 'no', - limit => 1, - archive => 'all', + event_id => $entry->{event_id}, + template => 'no', + limit => 1, + archive => 'all', } ) }, diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index 8bf83cd..ef2aca6 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -81,11 +81,7 @@ my $request = { }, }; -#delete $params->{presets}; -#print Dumper($request->{params}->{checked}); - $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; @@ -534,13 +530,12 @@ sub getEventDuration{ my $events = events::get( $config, $request ); if (scalar @$events == 0){ print STDERR "getEventDuration: no event found with event_id=$eventId\n"; - }; + } my $event = $events->[0]; my $duration = time::get_duration_seconds( $event->{start}, $event->{end}, $config->{date}->{time_zone} ); return $duration; } - sub check_params { my $params = shift; diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 8509410..267877f 100644 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -6,7 +6,6 @@ use Data::Dumper; use URI::Escape(); use Encode(); use utf8(); - use params(); use config(); use log(); @@ -81,7 +80,6 @@ my $request = { }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; @@ -245,8 +243,8 @@ sub showCalendar { delete $options->{till_date} if ( $params->{list} == 1 ); delete $options->{date_range_include} if ( $params->{list} == 1 ); } - - $options->{draft}=0 unless $params->{list}==1; + + $options->{draft} = 0 unless $params->{list} == 1; #get events sorted by date $events = getSeriesEvents( $config, $request, $options, $params ); @@ -397,11 +395,12 @@ sub showCalendar { $date->{title} .= ( $date->{channels} || '' ) . ' channels
      ' if defined $date->{channels}; $date->{title} .= int( ( $date->{'stream_size'} || '0' ) / ( 1024 * 1024 ) ) . 'MB
      ' if defined $date->{'stream_size'}; $date->{title} .= $format if defined $format; - $date->{title} .= 'library: ' . ( $date->{writing_library} || '' ) . '
      ' if defined $date->{'writing_library'}; - $date->{title} .= 'path: ' . ( $date->{file} || '' ) . '
      ' if defined $date->{file}; - $date->{title} .= 'updated_at: ' . ( $date->{updated_at} || '' ) . '
      ' if defined $date->{updated_at}; - $date->{title} .= 'modified_at: ' . ( $date->{modified_at} || '' ) . '
      ' if defined $date->{modified_at}; - #print STDERR Dumper($date) if $date->{file}=~/180503/; + $date->{title} .= 'library: ' . ( $date->{writing_library} || '' ) . '
      ' if defined $date->{'writing_library'}; + $date->{title} .= 'path: ' . ( $date->{file} || '' ) . '
      ' if defined $date->{file}; + $date->{title} .= 'updated_at: ' . ( $date->{updated_at} || '' ) . '
      ' if defined $date->{updated_at}; + $date->{title} .= 'modified_at: ' . ( $date->{modified_at} || '' ) . '
      ' if defined $date->{modified_at}; + + #print STDERR Dumper($date) if $date->{file}=~/180503/; #$date->{title}.= 'rms_image: ' .($date->{rms_image}||'').'
      ' if defined $date->{rms_image}; $date->{rms_image} = URI::Escape::uri_unescape( $date->{rms_image} ) if defined $date->{rms_image}; @@ -426,8 +425,8 @@ sub showCalendar { $events_by_start->{ $date->{start} }->{duration} = $date->{duration} || 0; $events_by_start->{ $date->{start} }->{rms_left} = $date->{rms_left} || 0; $events_by_start->{ $date->{start} }->{rms_right} = $date->{rms_right} || 0; - $events_by_start->{ $date->{start} }->{playout_modified_at} = $date->{modified_at}; - $events_by_start->{ $date->{start} }->{playout_updated_at} = $date->{updated_at} ; + $events_by_start->{ $date->{start} }->{playout_modified_at} = $date->{modified_at}; + $events_by_start->{ $date->{start} }->{playout_updated_at} = $date->{updated_at}; } push @$events, $date; } @@ -490,19 +489,21 @@ sub showCalendar { # calculate positions and find schedule errors (depending on position) for my $date ( sort ( keys %$events_by_day ) ) { - my $events = $events_by_day->{$date} ; + my $events = $events_by_day->{$date}; calc_positions( $events, $cal_options ); find_errors($events); } - for my $event (@$events){ - next unless defined $event->{uploaded_at}; - #print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; - next if (defined $event->{playout_updated_at}) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); - #print STDERR Dumper($event); - #$event->{upload} ='pending' ; - #$event->{title}.='
      pending'; - } + for my $event (@$events) { + next unless defined $event->{uploaded_at}; + +#print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; + next if ( defined $event->{playout_updated_at} ) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); + + #print STDERR Dumper($event); + #$event->{upload} ='pending' ; + #$event->{title}.='
      pending'; + } if ( $params->{list} == 1 ) { showEventList( $config, $permissions, $params, $events_by_day ); @@ -557,7 +558,7 @@ sub formatDuration { my $duration = shift; return '' unless defined $duration; return '' if $duration eq ''; - my $result = int( ( $duration + 3600 ) * 10 + 0.5) % 600; + my $result = int( ( $duration + 3600 ) * 10 + 0.5 ) % 600; my $class = "ok"; $class = "warn" if $result > 1; $class = "error" if $result > 10; @@ -788,8 +789,8 @@ sub showEventList { $event->{user_title} ||= ''; $event->{episode} ||= ''; $event->{rerun} ||= ''; - $event->{draft} ||= ''; - $id ||= ''; + $event->{draft} ||= ''; + $id ||= ''; $class ||= ''; my $archived = $event->{archived} || '-'; @@ -807,10 +808,9 @@ sub showEventList { $rerun = " [" . markup::base26( $event->{recurrence_count} + 1 ) . "]" if ( defined $event->{recurrence_count} ) && ( $event->{recurrence_count} ne '' ) && ( $event->{recurrence_count} > 0 ); - - my $draft = $event->{draft} || '0'; - $draft='-' if $draft eq '0'; - $draft='x' if $draft eq '1'; + my $draft = $event->{draft} || '0'; + $draft = '-' if $draft eq '0'; + $draft = 'x' if $draft eq '1'; my $title = $event->{title}; $title .= ': ' . $event->{user_title} if $event->{user_title} ne ''; @@ -1320,8 +1320,7 @@ sub addEventsToSeries { + . $params->{loc}->{button_assign_event_series} . q{ @@ -1403,7 +1402,7 @@ sub print_event { $height = ''; } -# my $date = $event->{origStart} || $event->{start} || ''; + # my $date = $event->{origStart} || $event->{start} || ''; my $content = $event->{content} || ''; if ( $class =~ /schedule/ ) { @@ -1417,26 +1416,26 @@ sub print_event { $attr .= ' start="' . $event->{start} . '"' if defined $event->{start}; } - if (defined $event->{upload}){ - $content.='
      uploading '; - } + if ( defined $event->{upload} ) { + $content .= '
      uploading '; + } if ($showIcons) { $content = '
      ' . $content . '
      '; } - my $time=''; - $time= qq{ time="$event->{time}"} if $class=~m/time/; + my $time = ''; + $time = qq{ time="$event->{time}"} if $class =~ m/time/; - my $date=''; - $date= qq{ date="$event->{date}"} if $class=~m/date/; + my $date = ''; + $date = qq{ date="$event->{date}"} if $class =~ m/date/; - my $line= q{
      $content
      } ; - $line.= "\n"; - return $line; + my $line = q{
      $content
      }; + $line .= "\n"; + return $line; } sub getFrequency { @@ -1484,7 +1483,7 @@ sub find_errors { next if defined $event->{grid}; next if defined $event->{work}; next if defined $event->{play}; - next if (defined $event->{draft}) && ($event->{draft} == 1); + next if ( defined $event->{draft} ) && ( $event->{draft} == 1 ); next unless defined $event->{ystart}; next unless defined $event->{yend}; $event->{check_errors} = 1; @@ -1754,7 +1753,7 @@ sub getSeriesEvents { #get events (directly from database to get the ones, not assigned, yet) delete $options->{studio_id}; delete $options->{project_id}; - $options->{recordings}=1; + $options->{recordings} = 1; my $request2 = { params => { @@ -1764,7 +1763,7 @@ sub getSeriesEvents { permissions => $request->{permissions} }; $request2->{params}->{checked}->{published} = 'all'; - $request2->{params}->{checked}->{draft} = '1' if $params->{list}==1; + $request2->{params}->{checked}->{draft} = '1' if $params->{list} == 1; #delete $request2->{params}->{checked}->{locations_to_exclude} # if ( ( $params->{studio_id} == -1 ) && ( defined $request2->{params}->{checked}->{locations_to_exclude} ) ); @@ -1883,4 +1882,3 @@ sub check_params { return $checked; } - diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 4c8c795..b51465a 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -58,7 +58,6 @@ my $request = { #set user at params->presets->user $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; diff --git a/website/agenda/planung/create_events.cgi b/website/agenda/planung/create_events.cgi index 2d68254..20f2abf 100755 --- a/website/agenda/planung/create_events.cgi +++ b/website/agenda/planung/create_events.cgi @@ -52,7 +52,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; @@ -75,13 +74,13 @@ unless ( $permissions->{create_event_from_schedule} == 1 ) { return; } -if ( $params->{action} eq 'create_events') { - create_events( $config, $request ); -}else{ - show_events( $config, $request ); +if ( $params->{action} eq 'create_events' ) { + create_events( $config, $request ); +} else { + show_events( $config, $request ); } -sub show_events{ +sub show_events { my $config = shift; my $request = shift; @@ -91,11 +90,11 @@ sub show_events{ uac::permissions_denied('assign_series_events'); return; } - template::process( 'print', $params->{template}, $params ); - + template::process( 'print', $params->{template}, $params ); + } -sub create_events{ +sub create_events { my $config = shift; my $request = shift; @@ -106,56 +105,58 @@ sub create_events{ return; } - print STDERR "create events\n"; + print STDERR "create events\n"; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; - my $from_date = $params->{from_date}; - my $till_date = $params->{till_date}; - my $duration = $params->{duration}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $from_date = $params->{from_date}; + my $till_date = $params->{till_date}; + my $duration = $params->{duration}; - $from_date = time::time_to_datetime(); - if ($from_date=~/(\d\d\d\d\-\d\d\-\d\d \d\d)/){ - $from_date = $1.':00'; - } - $till_date = time::add_days_to_datetime($from_date, $duration); - if ($from_date=~/(\d\d\d\d\-\d\d\-\d\d)/){ - $from_date = $1; - } - if ($till_date=~/(\d\d\d\d\-\d\d\-\d\d)/){ - $till_date = $1; - } - $params->{from_date}=$from_date; - $params->{till_date}=$till_date; + $from_date = time::time_to_datetime(); + if ( $from_date =~ /(\d\d\d\d\-\d\d\-\d\d \d\d)/ ) { + $from_date = $1 . ':00'; + } + $till_date = time::add_days_to_datetime( $from_date, $duration ); + if ( $from_date =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) { + $from_date = $1; + } + if ( $till_date =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) { + $till_date = $1; + } + $params->{from_date} = $from_date; + $params->{till_date} = $till_date; - print STDERR "create events from $from_date to $till_date\n"; + print STDERR "create events from $from_date to $till_date\n"; - my $dates = series_dates::getDatesWithoutEvent( - $config, { - project_id => $project_id, - studio_id => $studio_id, - from => $from_date, - till => $till_date - } - ); - print STDERR "
      found ".(scalar @$dates)." dates\n";
      -    my $events=[];
      -    for my $date (@$dates){
      -        #print STDERR $date->{start}."\n";
      -        push @$events, createEvent($config, $request, $date);
      -    }
      -    $params->{created_events} = $events;
      -    $params->{created_total} = scalar(@$events);
      -    template::process( 'print', $params->{template}, $params );
      +	my $dates = series_dates::getDatesWithoutEvent(
      +		$config,
      +		{
      +			project_id => $project_id,
      +			studio_id  => $studio_id,
      +			from       => $from_date,
      +			till       => $till_date
      +		}
      +	);
      +	print STDERR "
      found " . ( scalar @$dates ) . " dates\n";
      +	my $events = [];
      +	for my $date (@$dates) {
      +
      +		#print STDERR $date->{start}."\n";
      +		push @$events, createEvent( $config, $request, $date );
      +	}
      +	$params->{created_events} = $events;
      +	$params->{created_total}  = scalar(@$events);
      +	template::process( 'print', $params->{template}, $params );
       }
       
      -sub createEvent{
      -    my $config      = shift;
      -	my $request     = shift;
      -    my $date        = shift;
      +sub createEvent {
      +	my $config  = shift;
      +	my $request = shift;
      +	my $date    = shift;
       
       	my $permissions = $request->{permissions};
      -    my $user        = $request->{user};
      +	my $user        = $request->{user};
       
       	$date->{show_new_event_from_schedule} = 1;
       	unless ( $permissions->{create_event_from_schedule} == 1 ) {
      @@ -163,15 +164,15 @@ sub createEvent{
       		return;
       	}
       
      -    $date->{start_date} = $date->{start};
      -    my $event = eventOps::getNewEvent($config, $date, 'show_new_event_from_schedule');
      +	$date->{start_date} = $date->{start};
      +	my $event = eventOps::getNewEvent( $config, $date, 'show_new_event_from_schedule' );
       
      -    return undef unless defined $event;
      +	return undef unless defined $event;
       
      -    $event->{start_date} = $event->{start};
      -    eventOps::createEvent($request, $event, 'create_event_from_schedule');
      -    print STDERR Dumper($date);
      -    return $event;
      +	$event->{start_date} = $event->{start};
      +	eventOps::createEvent( $request, $event, 'create_event_from_schedule' );
      +	print STDERR Dumper($date);
      +	return $event;
       
       }
       
      @@ -195,7 +196,7 @@ sub check_params {
       	}
       
       	#numeric values
      -	$checked->{exclude} = 0;
      +	$checked->{exclude}  = 0;
       	$checked->{duration} = 28;
       	for my $param ( 'id', 'project_id', 'studio_id', 'duration' ) {
       		if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
      @@ -214,4 +215,3 @@ sub check_params {
       	return $checked;
       }
       
      -
      diff --git a/website/agenda/planung/error_log.cgi b/website/agenda/planung/error_log.cgi
      index ea761cd..b05fdd6 100755
      --- a/website/agenda/planung/error_log.cgi
      +++ b/website/agenda/planung/error_log.cgi
      @@ -34,7 +34,6 @@ my $request = {
       	},
       };
       $request = uac::prepare_request( $request, $user_presets );
      -log::init($request);
       
       #process header
       my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
      diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi
      index 8268644..2e9b046 100755
      --- a/website/agenda/planung/event.cgi
      +++ b/website/agenda/planung/event.cgi
      @@ -4,7 +4,7 @@ use strict;
       use warnings;
       no warnings 'redefine';
       
      -use URI::Escape();
      +#use URI::Escape();
       use Encode();
       use Data::Dumper;
       use MIME::Base64();
      @@ -68,7 +68,6 @@ my $request = {
       
       #set user at params->presets->user
       $request = uac::prepare_request( $request, $user_presets );
      -log::init($request);
       
       $params = $request->{params}->{checked};
       
      @@ -169,6 +168,7 @@ sub show_event {
       	unless ( defined $event ) {
       		uac::print_error("event not found");
       	}
      +
       	#print STDERR "show:".Dumper($event->{draft});
       	#print STDERR "show event".Dumper($event);
       
      @@ -201,15 +201,16 @@ sub show_event {
       				#project_id => $params->{project_id},
       				#studio_id  => $params->{studio_id},
       				#series_id  => $params->{series_id},
      -				event_id    => $params->{source_event_id},
      -				draft       => 0,
      +				event_id => $params->{source_event_id},
      +				draft    => 0,
       			}
       		);
       		if ( defined $event2 ) {
       			for my $attr (
      -				'title', 'user_title',         'excerpt',     'user_excerpt', 'content', 'topic',
      -				'image', 'image_label', 'series_image', 'series_image_label', 
      -				'live no_event_sync', 'podcast_url', 'archive_url'
      +				'title',        'user_title',         'excerpt',            'user_excerpt',
      +				'content',      'topic',              'image',              'image_label',
      +				'series_image', 'series_image_label', 'live no_event_sync', 'podcast_url',
      +				'archive_url'
       			  )
       			{
       				$event->{$attr} = $event2->{$attr};
      @@ -222,7 +223,7 @@ sub show_event {
       	$event->{rerun} = 1 if ( $event->{rerun} =~ /a-z/ );
       	$event->{series_id} = $params->{series_id};
       
      -	$event->{duration}  = events::get_duration( $config, $event );
      +	$event->{duration} = events::get_duration( $config, $event );
       	$event->{durations} = \@durations;
       	if ( defined $event->{duration} ) {
       		for my $duration ( @{ $event->{durations} } ) {
      @@ -231,7 +232,7 @@ sub show_event {
       	}
       	$event->{start} =~ s/(\d\d:\d\d)\:\d\d/$1/;
       	$event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/;
      -	
      +
       	# overwrite event with old one
       	#my $series_events=get_series_events($config,{
       	#    project_id => $params->{project_id},
      @@ -421,7 +422,7 @@ sub show_new_event {
       		return 1;
       	}
       
      -    my $event = eventOps::getNewEvent($config, $params, $params->{action});
      +	my $event = eventOps::getNewEvent( $config, $params, $params->{action} );
       
       	#copy event to template params
       	for my $key ( keys %$event ) {
      @@ -559,24 +560,26 @@ sub save_event {
       	my $found = 0;
       
       	#content fields
      -	for my $key ( 'content', 'topic', 'title', 'excerpt', 'episode', 
      -	    'image', 'series_image', 'image_label', 'series_image_label',
      -	    'podcast_url', 'archive_url' ) {
      +	for my $key (
      +		'content',      'topic',       'title',              'excerpt',     'episode', 'image',
      +		'series_image', 'image_label', 'series_image_label', 'podcast_url', 'archive_url'
      +	  )
      +	{
       		next unless defined $permissions->{ 'update_event_field_' . $key };
       		if ( $permissions->{ 'update_event_field_' . $key } eq '1' ) {
      -		    next unless defined $params->{$key};
      +			next unless defined $params->{$key};
       			$entry->{$key} = $params->{$key};
       			$found++;
       		}
       	}
       
      -    #print STDERR "event to update1: ".Dumper($entry);
      +	#print STDERR "event to update1: ".Dumper($entry);
       
       	#user extension fields
       	for my $key ( 'title', 'excerpt' ) {
       		next unless defined $permissions->{ 'update_event_field_' . $key . '_extension' };
       		if ( $permissions->{ 'update_event_field_' . $key . '_extension' } eq '1' ) {
      -		    next unless defined $params->{ 'user_' . $key };
      +			next unless defined $params->{ 'user_' . $key };
       			$entry->{ 'user_' . $key } = $params->{ 'user_' . $key };
       			$found++;
       		}
      @@ -607,10 +610,11 @@ sub save_event {
       		uac::print_error("event not found");
       		return;
       	}
      -    
      -    $entry->{image}        = images::normalizeName($entry->{image});
      -    $entry->{series_image} = images::normalizeName($entry->{series_image});
      -    #print STDERR "event to update2: ".Dumper($entry);
      +
      +	$entry->{image}        = images::normalizeName( $entry->{image} );
      +	$entry->{series_image} = images::normalizeName( $entry->{series_image} );
      +
      +	#print STDERR "event to update2: ".Dumper($entry);
       
       	$config->{access}->{write} = 1;
       
      @@ -669,10 +673,10 @@ sub create_event {
       	my $config  = shift;
       	my $request = shift;
       
      -	my $params     = $request->{params}->{checked};
      -	my $event      = $request->{params}->{checked};
      -    my $action     = $params->{action};
      -    return eventOps::createEvent($request, $event, $action);
      +	my $params = $request->{params}->{checked};
      +	my $event  = $request->{params}->{checked};
      +	my $action = $params->{action};
      +	return eventOps::createEvent( $request, $event, $action );
       
       }
       
      @@ -709,7 +713,8 @@ sub download {
       					event_id => $params->{event_id},
       					template => 'no',
       					limit    => 1,
      -                    #no_exclude => 1
      +
      +					#no_exclude => 1
       				}
       			)
       		},
      @@ -738,7 +743,7 @@ sub download {
       	if ( @files > 0 ) {
       		my $file = $files[0];
       		my $key  = int( rand(99999999999999999) );
      -		$key = encode_base64($key);
      +		$key = MIME::Base64::encode_base64($key);
       		$key =~ s/[^a-zA-Z0-9]//g;
       
       		#decode filename
      @@ -810,14 +815,15 @@ sub check_params {
       	for my $param ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync', 'get_rerun' ) {
       		if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) {
       			$checked->{$param} = $1;
      +
       			# print STDERR "check $param = $1\n";
       		}
       	}
       
       	#strings
       	for my $param (
      -		'series_name',  'title',      'excerpt',      'content',     'topic', 'program', 'category', 'image', 'series_image',
      -		'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url'
      +		'series_name',  'title',        'excerpt',    'content',      'topic',       'program', 'category', 'image',
      +		'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url'
       	  )
       	{
       		if ( defined $params->{$param} ) {
      diff --git a/website/agenda/planung/event_history.cgi b/website/agenda/planung/event_history.cgi
      index 1dcae56..934d4d8 100755
      --- a/website/agenda/planung/event_history.cgi
      +++ b/website/agenda/planung/event_history.cgi
      @@ -51,7 +51,6 @@ my $request = {
       
       #set user at params->presets->user
       $request = uac::prepare_request( $request, $user_presets );
      -log::init($request);
       
       $params = $request->{params}->{checked};
       
      diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi
      index 5eedaba..01ddfc0 100755
      --- a/website/agenda/planung/help.cgi
      +++ b/website/agenda/planung/help.cgi
      @@ -50,7 +50,6 @@ my $request = {
       	},
       };
       $request = uac::prepare_request( $request, $user_presets );
      -log::init($request);
       
       $params = $request->{params}->{checked};
       
      diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi
      index 4fc9709..d1d6d5b 100755
      --- a/website/agenda/planung/image.cgi
      +++ b/website/agenda/planung/image.cgi
      @@ -8,7 +8,7 @@ use Data::Dumper;
       
       use File::stat();
       use Time::localtime();
      -use CGI::Simple;# qw(header param Vars escapeHTML uploadInfo cgi_error);
      +use CGI::Simple();
       use URI::Escape();
       
       use time();
      @@ -60,7 +60,6 @@ my $request = {
       	}
       };
       $request = uac::prepare_request( $request, $user_presets );
      -log::init($request);
       $params = $request->{params}->{checked};
       
       #show header
      @@ -72,7 +71,7 @@ return unless defined uac::check( $config, $params, $user_presets );
       my $local_media_dir = $config->{locations}->{local_media_dir};
       my $local_media_url = $config->{locations}->{local_media_url};
       
      -log::error( $config, 'cannot locate media dir' . $local_media_dir ) unless -e $local_media_dir ;
      +log::error( $config, 'cannot locate media dir' . $local_media_dir ) unless -e $local_media_dir;
       uac::permissions_denied('reading from local media dir') unless -r $local_media_dir;
       uac::permissions_denied('writing to local media dir')   unless -w $local_media_dir;
       
      @@ -111,20 +110,23 @@ sub show_image {
       	$config->{access}->{write} = 0;
       	my $dbh = db::connect( $config, undef );
       
      -    my $projectId        = $params->{project_id};
      -    my $studioId         = $params->{studio_id};
      +	my $projectId        = $params->{project_id};
      +	my $studioId         = $params->{studio_id};
       	my $selectedFilename = $params->{filename} || '';
       
      -	my $filenames        = {};
      -	my $results          = [];
      +	my $filenames = {};
      +	my $results   = [];
       
       	# add images from series
       	if ( defined $params->{series_id} ) {
      -		my $seriesImages = series::get_images( $config, {
      -		    project_id => $projectId,
      -		    studio_id  => $studioId,
      -		    series_id  => $params->{series_id}
      -		} );
      +		my $seriesImages = series::get_images(
      +			$config,
      +			{
      +				project_id => $projectId,
      +				studio_id  => $studioId,
      +				series_id  => $params->{series_id}
      +			}
      +		);
       
       		for my $image (@$seriesImages) {
       			my $filename = $image->{filename};
      @@ -135,16 +137,19 @@ sub show_image {
       	}
       
       	#load images matching by search
      -	if ( $params->{search}=~/\S/ ) {
      +	if ( $params->{search} =~ /\S/ ) {
       
       		#remove filename from search
       		#delete $params->{filename};
       		#delete $params->{series_id};
      -		my $searchImages = images::get( $config, {
      -		    project_id => $projectId,
      -		    studio_id  => $studioId,
      -		    search     => $params->{search}
      -		} );
      +		my $searchImages = images::get(
      +			$config,
      +			{
      +				project_id => $projectId,
      +				studio_id  => $studioId,
      +				search     => $params->{search}
      +			}
      +		);
       
       		for my $image (@$searchImages) {
       			my $filename = $image->{filename};
      @@ -155,22 +160,27 @@ sub show_image {
       	}
       
       	#load selected image, if not already loaded
      -	my $selectedImage=undef;
      +	my $selectedImage = undef;
       	if ( $selectedFilename ne '' ) {
       		if ( defined $filenames->{$selectedFilename} ) {
       			$selectedImage = $filenames->{$selectedFilename};
       		} else {
      +
       			#print STDERR "getByName:".Dumper($params);
       
       			#put selected image to the top
      -			my $imagesByNames = images::get( $config, {
      -			    project_id => $projectId,
      -			    studio_id  => $studioId,
      -			    filename   => $selectedFilename
      -			} );
      +			my $imagesByNames = images::get(
      +				$config,
      +				{
      +					project_id => $projectId,
      +					studio_id  => $studioId,
      +					filename   => $selectedFilename
      +				}
      +			);
      +
       			#print STDERR Dumper($imagesByNames);
      -			$selectedImage = $imagesByNames->[0] if scalar(@$imagesByNames) > 0;		
      -	    }
      +			$selectedImage = $imagesByNames->[0] if scalar(@$imagesByNames) > 0;
      +		}
       
       		my $finalResults = [];
       
      @@ -188,12 +198,12 @@ sub show_image {
       		$results = $finalResults;
       	}
       
      -	if ( scalar @$results !=0 ) {
      -	    if ( $params->{template} =~ /edit/ ) {
      -	        my $result = $results->[0];
      -            $result->{missing_licence}=1 if (! defined $result->{licence} ) || ( $result->{licence}!~/\S/);
      -		    $results = [ $result ] ;
      -	    }
      +	if ( scalar @$results != 0 ) {
      +		if ( $params->{template} =~ /edit/ ) {
      +			my $result = $results->[0];
      +			$result->{missing_licence} = 1 if ( !defined $result->{licence} ) || ( $result->{licence} !~ /\S/ );
      +			$results = [$result];
      +		}
       
       		$results = modify_results( $results, $permissions, $user, $local_media_url );
       	}
      @@ -213,8 +223,9 @@ sub show_image {
       
       	#    print STDERR
       	$template_params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'image' } );
      -	$template_params= uac::set_template_permissions( $permissions, $template_params );
      -    $template_params->{no_results}=1 if scalar @$results==0;
      +	$template_params = uac::set_template_permissions( $permissions, $template_params );
      +	$template_params->{no_results} = 1 if scalar @$results == 0;
      +
       	#set global values for update and delete, per image values are evaluated later
       	$template_params->{allow}->{update_image} =
       	  $template_params->{allow}->{update_image_own} || $template_params->{allow}->{seriesupdate_image_others};
      @@ -252,8 +263,8 @@ sub save_image {
       
       	my $image = {};
       	$image->{filename}    = $params->{save_image};
      -	$image->{name}        = $params->{update_name}        if $params->{update_name} ne '' ;
      -	$image->{description} = $params->{update_description} if $params->{update_description} ne '' ;
      +	$image->{name}        = $params->{update_name} if $params->{update_name} ne '';
      +	$image->{description} = $params->{update_description} if $params->{update_description} ne '';
       	$image->{project_id}  = $params->{project_id};
       	$image->{studio_id}   = $params->{studio_id};
       	$image->{licence}     = $params->{licence};
      @@ -262,12 +273,13 @@ sub save_image {
       
       	$image->{name} = 'new' if $image->{name} eq '';
       
      -    images::checkLicence($config, $image);
      +	images::checkLicence( $config, $image );
       
       	$config->{access}->{write} = 1;
       	my $dbh = db::connect($config);
       
       	print STDERR "going to save\n";
      +
       	#print STDERR Dumper($image);
       
       	my $entries = images::get(
      @@ -290,8 +302,8 @@ sub save_image {
       	my $entry = $entries->[0];
       	if ( defined $entry ) {
       		images::update( $dbh, $image );
      -		images::publish(  $config, $image->{filename}) if (($image->{public}==1) && ($entry->{public}==0));
      -		images::depublish($config, $image->{filename}) if (($image->{public}==0) && ($entry->{public}==1));
      +		images::publish( $config, $image->{filename} ) if ( ( $image->{public} == 1 ) && ( $entry->{public} == 0 ) );
      +		images::depublish( $config, $image->{filename} ) if ( ( $image->{public} == 0 ) && ( $entry->{public} == 1 ) );
       	} else {
       		$image->{created_by} = $user;
       		images::insert( $dbh, $image );
      @@ -323,6 +335,7 @@ sub delete_image {
       		filename   => $params->{delete_image},
       	};
       	my $result = images::delete( $dbh, $image );
      +
       	#print STDERR "delete result=" . Dumper($result);
       
       	return;
      @@ -437,7 +450,7 @@ sub check_params {
       	}
       
       	#checkboxes
      -	for my $param ( 'public' ) {
      +	for my $param ('public') {
       		if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) {
       			$checked->{$param} = $1;
       		}
      @@ -454,6 +467,7 @@ sub check_params {
       
       	$checked->{from} = time::check_date( $params->{from} );
       	$checked->{till} = time::check_date( $params->{till} );
      +
       	#print STDERR 'checked:'.Dumper ($checked);
       
       	return $checked;
      diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi
      index c9dc52a..5b73d05 100755
      --- a/website/agenda/planung/imageUpload.cgi
      +++ b/website/agenda/planung/imageUpload.cgi
      @@ -320,13 +320,13 @@ sub process_image {
       	my $md5_filename = shift;
       	my $content      = shift;
       
      -	my $upload_path = images::getInternalPath($config, {type=>'upload', filename=> $md5_filename . '.' . $extension});
      -	my $thumb_path  = images::getInternalPath($config, {type=>'thumbs', filename=> $md5_filename . '.jpg'});
      -	my $icon_path   = images::getInternalPath($config, {type=>'icons',  filename=> $md5_filename . '.jpg'});
      -	my $image_path  = images::getInternalPath($config, {type=>'images', filename=> $md5_filename . '.jpg'});
      +	my $upload_path = images::getInternalPath( $config, { type => 'upload', filename => $md5_filename . '.' . $extension } );
      +	my $thumb_path  = images::getInternalPath( $config, { type => 'thumbs', filename => $md5_filename . '.jpg' } );
      +	my $icon_path   = images::getInternalPath( $config, { type => 'icons',  filename => $md5_filename . '.jpg' } );
      +	my $image_path  = images::getInternalPath( $config, { type => 'images', filename => $md5_filename . '.jpg' } );
       
       	#copy file to upload space
      -	my $result=images::writeFile($upload_path, $content);
      +	my $result = images::writeFile( $upload_path, $content );
       	return $result if defined $result->{error};
       
       	#write image
      @@ -350,7 +350,6 @@ sub process_image {
       
       	#$image->Normalize();
       	$image->Write( 'jpg:' . $image_path );
      -
       	#write thumb
       	my $thumb = $image;
       	$thumb->Trim2Square;
      diff --git a/website/agenda/planung/localization.cgi b/website/agenda/planung/localization.cgi
      index bd312c7..9fad211 100755
      --- a/website/agenda/planung/localization.cgi
      +++ b/website/agenda/planung/localization.cgi
      @@ -34,7 +34,7 @@ $params = $request->{params}->{checked};
       my $loc = localization::get( $config, { user => $user, file => $params->{usecase} } );
       my $header = "Content-type:application/json; charset=UTF-8;\n\n";
       $loc->{usecase} = $params->{usecase};
      -my $json = to_json( $loc, { pretty => 1 } );
      +my $json = JSON::to_json( $loc, { pretty => 1 } );
       my @json_lines = ();
       
       for my $line ( split /\n/, $json ) {
      diff --git a/website/agenda/planung/notify_events.cgi b/website/agenda/planung/notify_events.cgi
      index 9a2a187..8fb515e 100755
      --- a/website/agenda/planung/notify_events.cgi
      +++ b/website/agenda/planung/notify_events.cgi
      @@ -56,12 +56,11 @@ my $request = {
       
       #set user at params->presets->user
       $request = uac::prepare_request( $request, $user_presets );
      -log::init($request);
       
       $params = $request->{params}->{checked};
       
       #show header
      -unless ( params::isJson() || ( $params->{template}=~/\.txt/ ) ) {
      +unless ( params::isJson() || ( $params->{template} =~ /\.txt/ ) ) {
       	my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
       	$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
       	template::process( 'print', template::check('default.html'), $headerParams );
      @@ -124,7 +123,7 @@ sub show_events {
       
       	$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'notify_events' } );
       	template::process( 'print', $params->{template}, $params );
      -	
      +
       }
       
       sub sendMail {
      diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi
      index 4b491a1..142dd9d 100644
      --- a/website/agenda/planung/playout.cgi
      +++ b/website/agenda/planung/playout.cgi
      @@ -63,7 +63,6 @@ my $request = {
       	},
       };
       $request = uac::prepare_request( $request, $user_presets );
      -log::init($request);
       
       $params = $request->{params}->{checked};
       
      diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi
      index 71eefff..14a60bb 100755
      --- a/website/agenda/planung/projects.cgi
      +++ b/website/agenda/planung/projects.cgi
      @@ -47,7 +47,6 @@ my $request = {
       	},
       };
       $request = uac::prepare_request( $request, $user_presets );
      -log::init($request);
       
       $params = $request->{params}->{checked};
       
      diff --git a/website/agenda/planung/requestPassword.cgi b/website/agenda/planung/requestPassword.cgi
      index 79debb6..c73a1ff 100644
      --- a/website/agenda/planung/requestPassword.cgi
      +++ b/website/agenda/planung/requestPassword.cgi
      @@ -1,4 +1,4 @@
      -#! /usr/bin/perl -w 
      +#! /usr/bin/perl -w
       
       use warnings "all";
       use strict;
      @@ -30,99 +30,101 @@ print qq{
       
       };
       
      -if ( defined $params->{user}){
      -    sendToken($config, $params);
      -    return;
      -}else{
      -    my $result=checkToken($config, $params);
      -    return;
      +if ( defined $params->{user} ) {
      +	sendToken( $config, $params );
      +	return;
      +} else {
      +	my $result = checkToken( $config, $params );
      +	return;
       }
       
      -sub sendToken{
      -    my $config=shift;
      -    my $params=shift;
      -    my $entry = password_requests::sendToken($config, { user => $params->{user} });
      -    if (defined $entry){
      -        print "Please check you mails\n"
      -    }else{
      -        print "Sorry\n";
      -    }
      +sub sendToken {
      +	my $config = shift;
      +	my $params = shift;
      +	my $entry  = password_requests::sendToken( $config, { user => $params->{user} } );
      +	if ( defined $entry ) {
      +		print "Please check you mails\n";
      +	} else {
      +		print "Sorry\n";
      +	}
       }
       
      -sub checkToken{
      -    my $config=shift;
      -    my $params=shift;
      +sub checkToken {
      +	my $config = shift;
      +	my $params = shift;
       
      -    my $token = $params->{token};
      +	my $token = $params->{token};
       
      -    my $entry = password_requests::get($config, { token => $token });
      -    unless (defined $entry){
      -        print "invalid token\n";
      -        return undef;
      -    }
      +	my $entry = password_requests::get( $config, { token => $token } );
      +	unless ( defined $entry ) {
      +		print "invalid token\n";
      +		return undef;
      +	}
       
      -    print STDERR Dumper($entry);
      -    my $created_at = $entry->{created_at};
      -    unless (defined $created_at){
      -        print "invalid token age\n";
      -        return undef;
      -    }
      +	print STDERR Dumper($entry);
      +	my $created_at = $entry->{created_at};
      +	unless ( defined $created_at ) {
      +		print "invalid token age\n";
      +		return undef;
      +	}
       
      -    my $age = time() - time::datetime_to_time($created_at);
      -    if ($age > 600) {
      -        print "token is too old\n";
      -        password_requests::delete($config, { token => $token });
      -        return undef;
      -    }
      +	my $age = time() - time::datetime_to_time($created_at);
      +	if ( $age > 600 ) {
      +		print "token is too old\n";
      +		password_requests::delete( $config, { token => $token } );
      +		return undef;
      +	}
       
      -    $config->{access}->{write} = 1;
      -    $entry->{max_attempts}++;
      -    password_requests::update($config, $entry);
      -    $config->{access}->{write} = 0;
      +	$config->{access}->{write} = 1;
      +	$entry->{max_attempts}++;
      +	password_requests::update( $config, $entry );
      +	$config->{access}->{write} = 0;
       
      -    if ($entry->{max_attempts}>10){
      -        print "too many failed attempts, please request a new token by mail\n";
      -        password_requests::delete($config, { token => $token });
      -        return undef;
      -    }
      +	if ( $entry->{max_attempts} > 10 ) {
      +		print "too many failed attempts, please request a new token by mail\n";
      +		password_requests::delete( $config, { token => $token } );
      +		return undef;
      +	}
       
      -    unless ((defined $params->{user_password}) && (defined $params->{user_password2})){
      -        printForm($token);
      -        return undef;
      -    }
      -   
      -    if ($params->{action} eq 'change'){
      -        my $user  = $entry->{user};
      -        my $request = {
      -            config => $config,
      -            params => { checked => $params }
      -        };
      -        my $result = password_requests::changePassword($config, $request, $user);
      +	unless ( ( defined $params->{user_password} ) && ( defined $params->{user_password2} ) ) {
      +		printForm($token);
      +		return undef;
      +	}
       
      -        if (defined $result->{error}){
      -            #print "sorry\n";
      -            print $result->{error}."\n";
      -            printForm($token);
      -        }
      +	if ( $params->{action} eq 'change' ) {
      +		my $user    = $entry->{user};
      +		my $request = {
      +			config => $config,
      +			params => { checked => $params }
      +		};
      +		my $result = password_requests::changePassword( $config, $request, $user );
       
      -        if (defined $result->{success}){
      -            #print "success\n";
      -            print $result->{success}."\n";
      -            password_requests::delete($config, { user => $user });
      -            my $url=$config->{locations}->{editor_base_url};
      -            print qq{
      +		if ( defined $result->{error} ) {
      +
      +			#print "sorry\n";
      +			print $result->{error} . "\n";
      +			printForm($token);
      +		}
      +
      +		if ( defined $result->{success} ) {
      +
      +			#print "success\n";
      +			print $result->{success} . "\n";
      +			password_requests::delete( $config, { user => $user } );
      +			my $url = $config->{locations}->{editor_base_url};
      +			print qq{
                       
                   };
      -        }
      -    }
      +		}
      +	}
       
       }
       
      -sub printForm{
      -    my $token=shift;
      -    print qq{
      +sub printForm {
      +	my $token = shift;
      +	print qq{
               
      @@ -136,7 +138,7 @@ sub printForm{ sub check_params { my $params = shift; - my $checked = {}; + my $checked = {}; #my $template = ''; #$checked->{template} = template::check( $params->{template}, 'requestPassword' ); @@ -147,7 +149,7 @@ sub check_params { } $checked->{debug} = $debug; - for my $param ( 'user','token', 'user_password', 'user_password2' ) { + for my $param ( 'user', 'token', 'user_password', 'user_password2' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 7c5b246..1b33f1e 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -57,8 +57,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header diff --git a/website/agenda/planung/selectEvent.cgi b/website/agenda/planung/selectEvent.cgi index 0bed64c..195c012 100755 --- a/website/agenda/planung/selectEvent.cgi +++ b/website/agenda/planung/selectEvent.cgi @@ -46,7 +46,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; $params = uac::set_template_permissions( $request->{permissions}, $params ); diff --git a/website/agenda/planung/selectSeries.cgi b/website/agenda/planung/selectSeries.cgi index df9fe2e..86c0c03 100755 --- a/website/agenda/planung/selectSeries.cgi +++ b/website/agenda/planung/selectSeries.cgi @@ -45,7 +45,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; $params = uac::set_template_permissions( $request->{permissions}, $params ); diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index ef103f6..fbf14ad 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -60,8 +60,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header @@ -429,13 +427,16 @@ sub save_series { #print STDERR Dumper($entry); $config->{access}->{write} = 1; my $result = series::update( $config, $entry ); - - series_events::update_series_images($config,{ - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, + + series_events::update_series_images( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, series_image => $params->{image} - }); + } + ); user_stats::increase( $config, @@ -590,7 +591,7 @@ sub assign_event { my $config = shift; my $request = shift; - print STDERR "assign event\n"; + print STDERR "assign event\n"; my $params = $request->{params}->{checked}; my $permissions = $request->{permissions}; @@ -608,7 +609,8 @@ sub assign_event { return undef; } } - #print STDERR "found all parameters:\n".Dumper($entry); + + #print STDERR "found all parameters:\n".Dumper($entry); # check if event exists, # this has to use events::get, since it cannot check for series_id @@ -618,11 +620,12 @@ sub assign_event { checked => events::check_params( $config, { - event_id => $entry->{event_id}, - template => 'no', - limit => 1, - archive => 'all', -# no_exclude => 1 + event_id => $entry->{event_id}, + template => 'no', + limit => 1, + archive => 'all', + + # no_exclude => 1 } ) }, @@ -632,11 +635,12 @@ sub assign_event { $request2->{params}->{checked}->{published} = 'all'; my $events = events::get( $config, $request2 ); + #print STDERR "found events:".Dumper($events); - if (scalar (@$events) != 1){ - uac::print_error("no event found for event_id=$entry->{event_id}, archive=all"); - return undef; - } + if ( scalar(@$events) != 1 ) { + uac::print_error("no event found for event_id=$entry->{event_id}, archive=all"); + return undef; + } my $event = $events->[0]; @@ -837,19 +841,19 @@ sub reassign_event { $request->{params}->{checked}->{series_id} = $new_series_id; my $result = assign_event( $config, $request ); - unless (defined $result){ - uac::print_error("could not assign event"); - return undef; - } + unless ( defined $result ) { + uac::print_error("could not assign event"); + return undef; + } $request->{params}->{checked}->{series_id} = $series_id; $result = unassign_event( $config, $request ); - unless (defined $result){ - uac::print_error("could not unassign event"); - return undef; - } + unless ( defined $result ) { + uac::print_error("could not unassign event"); + return undef; + } - #print STDERR " event\n"; + #print STDERR " event\n"; my $url = 'event.cgi?project_id=' . $project_id . '&studio_id=' . $studio_id . '&series_id=' . $new_series_id . '&event_id=' . $event_id; print qq{} . "\n"; @@ -944,8 +948,8 @@ sub list_series { return; } - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; my $studios = studios::get( $config, @@ -959,13 +963,13 @@ sub list_series { for my $studio (@$studios) { $studio_by_id->{ $studio->{id} } = $studio; } - my $studio = $studio_by_id->{ $studio_id }; + my $studio = $studio_by_id->{$studio_id}; my $series_conditions = { project_id => $project_id, studio_id => $studio_id }; - my $series = series::get_event_age( $config, $series_conditions ); + my $series = series::get_event_age( $config, $series_conditions ); my $newSeries = []; my $oldSeries = []; @@ -980,9 +984,12 @@ sub list_series { $params->{newSeries} = $newSeries; $params->{oldSeries} = $oldSeries; - $params->{image} = studios::getImageById($config, {project_id => $project_id, studio_id => $studio_id} ) if ( (!defined $params->{image}) || ($params->{image} eq '') ); - $params->{image} = project::getImageById($config, {project_id => $project_id} ) if ( (!defined $params->{image}) || ($params->{image} eq '') ); - #print STDERR Dumper $params->{image}; + $params->{image} = studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) + if ( ( !defined $params->{image} ) || ( $params->{image} eq '' ) ); + $params->{image} = project::getImageById( $config, { project_id => $project_id } ) + if ( ( !defined $params->{image} ) || ( $params->{image} eq '' ) ); + + #print STDERR Dumper $params->{image}; $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); template::process( 'print', $params->{template}, $params ); @@ -1079,10 +1086,13 @@ sub show_series { my $location = $studio->{location}; - # set default image from studio - $serie->{image} = studios::getImageById($config, {project_id => $project_id, studio_id => $studio_id} ) if ( (!defined $serie->{image}) || ($serie->{image} eq '') ); - $serie->{image} = project::getImageById($config, {project_id => $project_id} ) if ( (!defined $serie->{image}) || ($serie->{image} eq '') ); - #print STDERR Dumper $serie->{image}; + # set default image from studio + $serie->{image} = studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) + if ( ( !defined $serie->{image} ) || ( $serie->{image} eq '' ) ); + $serie->{image} = project::getImageById( $config, { project_id => $project_id } ) + if ( ( !defined $serie->{image} ) || ( $serie->{image} eq '' ) ); + + #print STDERR Dumper $serie->{image}; #add users $serie->{series_users} = series::get_users( @@ -1093,7 +1103,7 @@ sub show_series { series_id => $serie->{series_id} } ); - uac::print_warn( "There is no user assigned, yet. Please assign a user!" ) if scalar @{$serie->{series_users}} ==0; + uac::print_warn("There is no user assigned, yet. Please assign a user!") if scalar @{ $serie->{series_users} } == 0; #add events $serie->{events} = series::get_events( diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 6d8b791..1724f23 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -53,8 +53,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header diff --git a/website/agenda/planung/showImage.cgi b/website/agenda/planung/showImage.cgi index e699f64..3b92530 100644 --- a/website/agenda/planung/showImage.cgi +++ b/website/agenda/planung/showImage.cgi @@ -47,8 +47,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header @@ -68,26 +66,26 @@ sub showImage { return; } - unless (defined $params->{filename}){ + unless ( defined $params->{filename} ) { uac::permissions_denied('missing filename'); - return; - } + return; + } - my $filename = images::getInternalPath($config, $params); - unless (-e $filename){ + my $filename = images::getInternalPath( $config, $params ); + unless ( -e $filename ) { uac::permissions_denied("read $filename"); - return; - } + return; + } - my $image=images::readFile($filename); - if (defined $image->{error}){ + my $image = images::readFile($filename); + if ( defined $image->{error} ) { uac::permissions_denied("read $filename, $image->{error}"); - return; - } + return; + } - binmode STDOUT; - print "Content-type:image/jpeg; charset=UTF-8;\n\n"; - print $image->{content}; + binmode STDOUT; + print "Content-type:image/jpeg; charset=UTF-8;\n\n"; + print $image->{content}; return; } @@ -103,22 +101,22 @@ sub check_params { $checked->{debug} = $debug; #numeric values - for my $param ( 'filename') { + for my $param ('filename') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[A-Za-z\_\-\.\d\/]+$/ ) ) { $checked->{$param} = $params->{$param}; - $checked->{$param} =~s/^.*\///g; + $checked->{$param} =~ s/^.*\///g; } } - $checked->{type}='thumbs'; - for my $param ( 'type') { + $checked->{type} = 'thumbs'; + for my $param ('type') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^(thumbs|images|icons)$/ ) ) { $checked->{$param} = $params->{$param}; } } #numeric values - for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id') { + for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio_timeslots.cgi index 501720d..e2cbee1 100755 --- a/website/agenda/planung/studio_timeslots.cgi +++ b/website/agenda/planung/studio_timeslots.cgi @@ -53,8 +53,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 581173f..2bbe513 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -47,8 +47,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header diff --git a/website/agenda/planung/templates/.old/.htaccess b/website/agenda/planung/templates/.old/.htaccess deleted file mode 100644 index 3a42882..0000000 --- a/website/agenda/planung/templates/.old/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all diff --git a/website/agenda/planung/templates/.old/event_edit_user_content.ok.html b/website/agenda/planung/templates/.old/event_edit_user_content.ok.html deleted file mode 100644 index c3ee2ef..0000000 --- a/website/agenda/planung/templates/.old/event_edit_user_content.ok.html +++ /dev/null @@ -1,378 +0,0 @@ - - - - - edit event - - - - - - - - - - - - - - - - - - - - - - - - -
      - - - -
      - -
      - -
      - - - - - - - - - -
      - -
      - - - - - - - -
      -
      -
      -
      - -
      -
      Event
      - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      when - - , , -
      -
      - start - - - duration - end -
      - -
      status - - checked="checked" value="1"> live - - - - checked="checked" value="1"> published - - - - checked="checked" value="1"> preproduced - - - - checked="checked" value="1"> archived - - - - checked="checked" value="1"> rerun - - - - checked="checked" value="1"> no sync - -
      episode
      - -
      content
      - - - - - - style="display:none" > - - - - - - - - - -
      excerpt
      description - -
      -
      -
      -
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      title - - - - - - - - - - - - - -
      excerpt - - - - - -
      user excerpt - - - - - -
      current topics - - - - - -
      content - - - - - -
      - image - - - - - - - -
      - - - - - -
      -
      - - - - - - - - - - - - - - - - - - -
      -
      - -
      -
      - - -
      last modified at by .
      -
      - -
      - -
      -
      - - - diff --git a/website/agenda/planung/templates/.old/event_manager.html b/website/agenda/planung/templates/.old/event_manager.html deleted file mode 100644 index 5cc9c36..0000000 --- a/website/agenda/planung/templates/.old/event_manager.html +++ /dev/null @@ -1,152 +0,0 @@ - - -

      Sendungen verwalten

      - - - -projects: - - - | - - - - - - -
      -
      - - -
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ProgammWochentagDatumStartEndeBildSendereiheTitelAuszug
      - - - - - - - - - - - - - - - - - - -

      Kommentare , - mehr... - - -

      - diff --git a/website/agenda/planung/templates/.old/menu.html b/website/agenda/planung/templates/.old/menu.html deleted file mode 100644 index 8960289..0000000 --- a/website/agenda/planung/templates/.old/menu.html +++ /dev/null @@ -1,283 +0,0 @@ - - - -
      -
      - - -
      - -
      -
      - diff --git a/website/agenda/planung/templates/.old/select_studio.html b/website/agenda/planung/templates/.old/select_studio.html deleted file mode 100644 index 85cb716..0000000 --- a/website/agenda/planung/templates/.old/select_studio.html +++ /dev/null @@ -1,24 +0,0 @@ - -
      - - logout -
      - diff --git a/website/agenda/planung/user_settings.cgi b/website/agenda/planung/user_settings.cgi index 1939c7c..7f1d19d 100755 --- a/website/agenda/planung/user_settings.cgi +++ b/website/agenda/planung/user_settings.cgi @@ -45,7 +45,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); $params = $request->{params}->{checked}; diff --git a/website/agenda/planung/user_stats.cgi b/website/agenda/planung/user_stats.cgi index 05a5bdf..1469899 100755 --- a/website/agenda/planung/user_stats.cgi +++ b/website/agenda/planung/user_stats.cgi @@ -47,8 +47,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index bc14783..8d9dec9 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -17,7 +17,6 @@ use password_requests(); my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); - my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $cgi, $config ); @@ -44,8 +43,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header @@ -201,15 +198,16 @@ sub update_user { return; } - #print Dumper($params); - my $users= uac::get_users($config, {email => $params->{user_email}}); - if (scalar (@$users) > 0){ - #print Dumper($users); + #print Dumper($params); + my $users = uac::get_users( $config, { email => $params->{user_email} } ); + if ( scalar(@$users) > 0 ) { + + #print Dumper($users); error('There is already a user registered for the given email address'); return; - } + } - return unless password_requests::checkPassword( $params->{user_password} ) ; + return unless password_requests::checkPassword( $params->{user_password} ); if ( $params->{user_password} ne $params->{user_password2} ) { error('password mismatch'); @@ -245,18 +243,17 @@ sub change_password { my $params = $request->{params}->{checked}; my $permissions = $request->{permissions}; - my $result = password_requests::changePassword($config, $request, $userName); + my $result = password_requests::changePassword( $config, $request, $userName ); $params->{errors} = $result->{error} if defined $result->{error}; - $params->{info} = $result->{success} if defined $result->{success}; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'users' } ); + $params->{info} = $result->{success} if defined $result->{success}; + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'users' } ); uac::set_template_permissions( $permissions, $params ); #print Dumper($permissions); template::process( 'print', template::check('change_password'), $params ); } - sub delete_user { my $config = shift; my $request = shift; @@ -423,16 +420,16 @@ sub check_params { $checked->{studio_id} = -1; } - for my $param ( 'user_name', 'user_full_name', 'user_email') { + for my $param ( 'user_name', 'user_full_name', 'user_email' ) { if ( defined $params->{$param} ) { my $value = $params->{$param}; - $value =~s/^\s+//g; - $value =~s/\s+$//g; - $checked->{$param} = $value; + $value =~ s/^\s+//g; + $value =~ s/\s+$//g; + $checked->{$param} = $value; } } - for my $param ( 'user_password', 'user_password2' ) { + for my $param ( 'user_password', 'user_password2' ) { if ( defined $params->{$param} ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/work_time.cgi b/website/agenda/planung/work_time.cgi index e04305a..7a2cd48 100755 --- a/website/agenda/planung/work_time.cgi +++ b/website/agenda/planung/work_time.cgi @@ -54,8 +54,6 @@ my $request = { }, }; $request = uac::prepare_request( $request, $user_presets ); -log::init($request); - $params = $request->{params}->{checked}; #process header diff --git a/website/agenda/series.cgi b/website/agenda/series.cgi index 3eadc5c..d842f07 100755 --- a/website/agenda/series.cgi +++ b/website/agenda/series.cgi @@ -71,7 +71,6 @@ sub list_series { template::process( 'print', 'templates/series.html', $params ); } - sub check_params { my $params = shift; diff --git a/website/agenda/series_names.cgi b/website/agenda/series_names.cgi index ef50def..9f1bc4d 100755 --- a/website/agenda/series_names.cgi +++ b/website/agenda/series_names.cgi @@ -2,7 +2,6 @@ #use utf8; use warnings "all"; - #use diagnostics; use strict; use Data::Dumper; @@ -36,7 +35,6 @@ my $request = { checked => check_params( $config, $params ) }, }; -log::init($request); $params = $request->{params}->{checked}; @@ -44,7 +42,6 @@ $params = $request->{params}->{checked}; my $cache = {}; if ( $config->{cache}->{use_cache} eq '1' ) { cache::configure('series_names.html'); - log::write( $config, 'cache_files', cache::get_map() ) if ($debug); $cache = cache::load( $config, $params ); if ( defined $cache->{content} ) { print $cache->{content}; From 3e338758e9c725ead6b0d79e0f19b48267a1511e Mon Sep 17 00:00:00 2001 From: Milan Date: Fri, 31 Aug 2018 23:15:57 +0200 Subject: [PATCH 021/391] fix array length determining and cleanup --- lib/calcms/UTF8DBI.pm | 48 - lib/calcms/aggregator.pm | 14 +- lib/calcms/cache.pm | 4 +- lib/calcms/calendar.pm | 4 +- lib/calcms/comments.pm | 870 +++--- lib/calcms/config.pm | 9 +- lib/calcms/creole_wiki.pm | 383 +-- lib/calcms/db.pm | 2 +- lib/calcms/eventOps.pm | 6 +- lib/calcms/event_history.pm | 200 +- lib/calcms/events.pm | 2737 ++++++++--------- lib/calcms/mail.pm | 4 - lib/calcms/playout.pm | 3 - lib/calcms/project.pm | 556 ++-- lib/calcms/projects.pm | 9 - lib/calcms/series.pm | 1710 +++++----- lib/calcms/series_dates.pm | 774 ++--- lib/calcms/series_events.pm | 702 ++--- lib/calcms/startup.pl | 1 + lib/calcms/studios.pm | 186 +- lib/calcms/template.pm | 308 +- lib/calcms/time.pm | 764 ++--- lib/calcms/uac.pm | 970 +++--- lib/calcms/user_settings.pm | 310 +- lib/calcms/user_stats.pm | 300 +- lib/calcms/work_dates.pm | 512 +-- website/agenda/planung/assign_series.cgi | 267 +- website/agenda/planung/assignments.cgi | 554 ++-- website/agenda/planung/audio_recordings.cgi | 83 +- website/agenda/planung/calendar.cgi | 2506 +++++++-------- website/agenda/planung/comment.cgi | 410 +-- website/agenda/planung/event.cgi | 2 +- website/agenda/planung/image.cgi | 4 +- website/agenda/planung/imageUpload.cgi | 1 + website/agenda/planung/projects.cgi | 2 +- website/agenda/planung/roles.cgi | 6 - website/agenda/planung/series.cgi | 3 - website/agenda/planung/show-playout.cgi | 1 - website/agenda/planung/showImage.cgi | 5 + website/agenda/planung/studios.cgi | 6 +- website/agenda/planung/templates/default.html | 4 - website/agenda/series_names.cgi | 8 +- 42 files changed, 7588 insertions(+), 7660 deletions(-) delete mode 100644 lib/calcms/UTF8DBI.pm delete mode 100644 lib/calcms/projects.pm mode change 100644 => 100755 website/agenda/planung/showImage.cgi diff --git a/lib/calcms/UTF8DBI.pm b/lib/calcms/UTF8DBI.pm deleted file mode 100644 index daaff4c..0000000 --- a/lib/calcms/UTF8DBI.pm +++ /dev/null @@ -1,48 +0,0 @@ -# UTF8DBI.pm re-implementation by Pavel Kudinov http://search.cpan.org/~kudinov/ -# originally from: http://dysphoria.net/code/perl-utf8/ -# And patched again by Andrew Forrest, Jan 2007 - -use DBI 1.21; -use utf8; -use Encode(); - -package UTF8DBI; -use base DBI; - -sub _utf8_ { - if ( ref $_ eq 'ARRAY' ) { _utf8_() foreach @$_ } - elsif ( ref $_ eq 'HASH' ) { _utf8_() foreach values %$_ } - else { - Encode::_utf8_on($_); - if ( Encode::is_utf8($_) && !Encode::is_utf8( $_, 1 ) ) { - - #$_ = '⁂malformed-UTF8‼' #die "Malformed utf8 string in database" - #print data_string_desc($_)."\n" - #data_string_desc(STRING); - #Encode::decode_utf8($_); - #; - #Encode::_utf8_off($_); - #Encode::decode_utf8($_); - #Encode::encode_utf8($_); - } - } - $_; -} - -package UTF8DBI::db; -use base DBI::db; - -sub selectrow_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectrow_arrayref(@_) } -sub selectrow_hashref { return UTF8DBI::_utf8_ for shift->SUPER::selectrow_hashref(@_) } -sub selectall_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectall_arrayref(@_) } -sub selectall_hashref { return UTF8DBI::_utf8_ for shift->SUPER::selectall_hashref(@_) } -sub selectcol_arrayref { return UTF8DBI::_utf8_ for shift->SUPER::selectcol_arrayref(@_) } - -sub selectrow_array { @{ shift->selectrow_arrayref(@_) } } - -package UTF8DBI::st; -use base DBI::st; - -sub fetch { return UTF8DBI::_utf8_ for shift->SUPER::fetch(@_) } - -1; diff --git a/lib/calcms/aggregator.pm b/lib/calcms/aggregator.pm index 4781e33..90a4e55 100644 --- a/lib/calcms/aggregator.pm +++ b/lib/calcms/aggregator.pm @@ -115,9 +115,9 @@ sub get_calendar { #set query string for caching my $options = []; - push( @$options, 'date=' . $params->{date} ) if ( $params->{date} ne '' ); - push( @$options, 'from_date=' . $params->{from_date} ) if ( $params->{from_date} ne '' ); - push( @$options, 'till_date=' . $params->{till_date} ) if ( $params->{till_date} ne '' ); + push @$options, 'date=' . $params->{date} if $params->{date} ne ''; + push @$options, 'from_date=' . $params->{from_date} if $params->{from_date} ne ''; + push @$options, 'till_date=' . $params->{till_date} if $params->{till_date} ne ''; $ENV{QUERY_STRING} = '' . join( "&", @$options ); my $content = ''; @@ -270,10 +270,10 @@ sub check_params { #set query string for caching if ( ( !exists $ENV{QUERY_STRING} ) || ( $ENV{QUERY_STRING} eq '' ) ) { my $options = []; - push( @$options, 'date=' . $date ) if $date ne ''; - push( @$options, 'from_date=' . $from_date ) if $from_date ne ''; - push( @$options, 'till_date=' . $till_date ) if $till_date ne ''; - push( @$options, 'event_id=' . $event_id ) if $event_id ne ''; + push @$options, 'date=' . $date if $date ne ''; + push @$options, 'from_date=' . $from_date if $from_date ne ''; + push @$options, 'till_date=' . $till_date if $till_date ne ''; + push @$options, 'event_id=' . $event_id if $event_id ne ''; $ENV{QUERY_STRING} = '' . join( "&", @$options ); } diff --git a/lib/calcms/cache.pm b/lib/calcms/cache.pm index c3af0e5..9a02869 100644 --- a/lib/calcms/cache.pm +++ b/lib/calcms/cache.pm @@ -147,8 +147,8 @@ sub set { sub save { my $cache = shift; - return if ( $cache->{action} ne 'save' ); - return if ( ( !defined $cache->{filename} ) || ( $cache->{filename} eq '' ) ); + return if $cache->{action} ne 'save'; + return if ( !defined $cache->{filename} ) || ( $cache->{filename} eq '' ); log::save_file( $cache->{filename}, $cache->{content} ); chmod 0664, $cache->{filename}; diff --git a/lib/calcms/calendar.pm b/lib/calcms/calendar.pm index 07ca9be..781801b 100644 --- a/lib/calcms/calendar.pm +++ b/lib/calcms/calendar.pm @@ -264,8 +264,8 @@ sub get { }; $week_result->{class} .= ' selected' - if ( ( ( defined $params->{from_date} ) && ( $start_date eq $params->{from_date} ) ) - || ( ( defined $params->{till_date} ) && ( $end_date eq $params->{till_date} ) ) ); + if ( ( defined $params->{from_date} ) && ( $start_date eq $params->{from_date} ) ) + || ( ( defined $params->{till_date} ) && ( $end_date eq $params->{till_date} ) ); $week_result->{class} .= " week_$weekCounter"; $week_result->{class} =~ s/^\s+//g; diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 938a41b..7cec0d6 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -23,141 +23,141 @@ sub init { sub get_cached_or_render { - # my $response=$_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $mark_locked = $_[3]; + # my $response=$_[0]; + my $config = $_[1]; + my $request = $_[2]; + my $mark_locked = $_[3]; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - #print STDERR Dumper($params); - $config->{app_name} = $config->{controllers}->{comments}; + #print STDERR Dumper($params); + $config->{app_name} = $config->{controllers}->{comments}; - my $comment = $request->{params}->{checked}; + my $comment = $request->{params}->{checked}; - my $filename = ''; - my $cache = {}; + my $filename = ''; + my $cache = {}; - my $results = comments::get( $config, $request ); + my $results = comments::get( $config, $request ); - if ( ( defined $mark_locked ) && ( $mark_locked eq 'mark_locked' ) ) { - for my $result (@$results) { - if ( $result->{lock_status} ne 'show' ) { - $result->{author} = 'Zensur'; - $result->{content} = 'Dieser Eintrag wurde gelöscht.'; - } - } - } elsif ( ( defined $mark_locked ) && ( $mark_locked eq 'filter_locked' ) ) { - my @results2 = (); - for my $result (@$results) { - push @results2, $result if ( $result->{lock_status} eq 'show' ); - } - $results = \@results2; - } + if ( ( defined $mark_locked ) && ( $mark_locked eq 'mark_locked' ) ) { + for my $result (@$results) { + if ( $result->{lock_status} ne 'show' ) { + $result->{author} = 'Zensur'; + $result->{content} = 'Dieser Eintrag wurde gelöscht.'; + } + } + } elsif ( ( defined $mark_locked ) && ( $mark_locked eq 'filter_locked' ) ) { + my @results2 = (); + for my $result (@$results) { + push @results2, $result if ( $result->{lock_status} eq 'show' ); + } + $results = \@results2; + } - comments::modify_results( $results, $config, $request ); + comments::modify_results( $results, $config, $request ); - #print STDERR Dumper($results); - $results = comments::sort( $config, $results ) if ( $comment->{type} eq 'tree' ); + #print STDERR Dumper($results); + $results = comments::sort( $config, $results ) if ( $comment->{type} eq 'tree' ); - #print STDERR Dumper($results); - # if ($comment->{sort_order}eq'desc'){ - # my @results= reverse(@$results); - # $results=\@results; - # } + #print STDERR Dumper($results); + # if ($comment->{sort_order}eq'desc'){ + # my @results= reverse(@$results); + # $results=\@results; + # } - if ( ( $params->{show_max} ne '' ) - && ( $params->{limit} ne '' ) - && ( $params->{show_max} < $params->{limit} ) ) - { - my @results2 = (); - my $c = 0; - for my $result (@$results) { - push @results2, $result; - $c++; - last if ( $c >= $params->{show_max} ); - } - $results = \@results2; - } + if ( ( $params->{show_max} ne '' ) + && ( $params->{limit} ne '' ) + && ( $params->{show_max} < $params->{limit} ) ) + { + my @results2 = (); + my $c = 0; + for my $result (@$results) { + push @results2, $result; + $c++; + last if ( $c >= $params->{show_max} ); + } + $results = \@results2; + } - comments::render( $_[0], $config, $request, $results ); + comments::render( $_[0], $config, $request, $results ); } sub get { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $dbh = db::connect( $config, $request ); + my $dbh = db::connect( $config, $request ); - ( my $query, my $bind_values ) = comments::get_query( $dbh, $config, $request ); + ( my $query, my $bind_values ) = comments::get_query( $dbh, $config, $request ); - #print STDERR Dumper($$query); - #print STDERR Dumper($bind_values); - my $results = db::get( $dbh, $$query, $bind_values ); + #print STDERR Dumper($$query); + #print STDERR Dumper($bind_values); + my $results = db::get( $dbh, $$query, $bind_values ); - #print STDERR Dumper($results); - return $results; + #print STDERR Dumper($results); + return $results; } sub get_query { - my $dbh = shift; - my $config = shift; - my $request = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $event_id = undef; - my $event_start = undef; - my $from = 'calcms_comments c'; - my $where = ''; - my $limit = ''; - my @conditions = (); - my $bind_values = []; + my $event_id = undef; + my $event_start = undef; + my $from = 'calcms_comments c'; + my $where = ''; + my $limit = ''; + my @conditions = (); + my $bind_values = []; - #exclude comments from config filter/locations_to_exclude - if ( ( defined $config->{filter} ) - && ( defined $config->{filter}->{locations_to_exclude} ) ) - { - my @locations_to_exclude = split( /[,\s]+/, $config->{filter}->{locations_to_exclude} ); - my $locations_to_exclude = join( ', ', map { '?' } @locations_to_exclude ); + #exclude comments from config filter/locations_to_exclude + if ( ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) + { + my @locations_to_exclude = split( /[,\s]+/, $config->{filter}->{locations_to_exclude} ); + my $locations_to_exclude = join( ', ', map { '?' } @locations_to_exclude ); - $from .= ',calcms_events e'; - push @conditions, 'e.id=c.event_id'; - push @conditions, 'e.location not in (' . $locations_to_exclude . ')'; - for my $location (@locations_to_exclude) { - push @$bind_values, $location; - } - } + $from .= ',calcms_events e'; + push @conditions, 'e.id=c.event_id'; + push @conditions, 'e.location not in (' . $locations_to_exclude . ')'; + for my $location (@locations_to_exclude) { + push @$bind_values, $location; + } + } - if ( ( defined $params->{event_id} && $params->{event_id} ne '' ) - && ( defined $params->{event_start} && $params->{event_start} ne '' ) ) - { - #$where =qq{ and (event_id=? or event_start=?) }; - push @conditions, q{ (event_id=? or event_start=?) }; - push @$bind_values, $params->{event_id}; - push @$bind_values, $params->{event_start}; - } + if ( ( defined $params->{event_id} && $params->{event_id} ne '' ) + && ( defined $params->{event_start} && $params->{event_start} ne '' ) ) + { + #$where =qq{ and (event_id=? or event_start=?) }; + push @conditions, q{ (event_id=? or event_start=?) }; + push @$bind_values, $params->{event_id}; + push @$bind_values, $params->{event_start}; + } - my $sort_order = $params->{sort_order}; + my $sort_order = $params->{sort_order}; - if ( $params->{limit} ne '' ) { - $limit = 'limit ?'; - push @$bind_values, $params->{limit}; - } + if ( $params->{limit} ne '' ) { + $limit = 'limit ?'; + push @$bind_values, $params->{limit}; + } - if ( @conditions > 0 ) { - $where = 'where ' . join( ' and ', @conditions ); - } + if ( @conditions > 0 ) { + $where = 'where ' . join( ' and ', @conditions ); + } - my $dbcols = [ - 'id', 'event_start', 'event_id', 'content', 'ip', 'author', 'email', 'lock_status', - 'created_at', 'title', 'parent_id', 'level', 'news_status', 'project' - ]; - my $cols = join( ', ', map { 'c.' . $_ } @$dbcols ); - my $query = qq{ + my $dbcols = [ + 'id', 'event_start', 'event_id', 'content', 'ip', 'author', 'email', 'lock_status', + 'created_at', 'title', 'parent_id', 'level', 'news_status', 'project' + ]; + my $cols = join( ', ', map { 'c.' . $_ } @$dbcols ); + my $query = qq{ select $cols from $from $where @@ -165,101 +165,101 @@ sub get_query { $limit }; - # where lock_status='show' - # use Data::Dumper;print STDERR Dumper($query); + # where lock_status='show' + # use Data::Dumper;print STDERR Dumper($query); - return ( \$query, $bind_values ); + return ( \$query, $bind_values ); } sub modify_results { - my $results = $_[0]; - my $config = $_[1]; - my $request = $_[2]; + my $results = $_[0]; + my $config = $_[1]; + my $request = $_[2]; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $time_diff = ''; - if ( $params->{template} =~ /\.xml/ ) { - $time_diff = time::utc_offset( $config->{date}->{time_zone} ); - $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; - } + my $time_diff = ''; + if ( $params->{template} =~ /\.xml/ ) { + $time_diff = time::utc_offset( $config->{date}->{time_zone} ); + $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; + } - my $language = $config->{date}->{language} || 'en'; + my $language = $config->{date}->{language} || 'en'; - for my $result (@$results) { - $result->{allow}->{new_comments} = 1 if ( $params->{allow}->{new_comments} ); - $result->{start_date_name} = time::date_format( $result->{created_at}, $language ); - $result->{start_time_name} = time::time_format( $result->{created_at} ); - my $comment_limit = 100; - if ( length( $result->{content} ) > $comment_limit ) { - $result->{short_content} = substr( $result->{content}, 0, $comment_limit ) . '...'; - } else { - $result->{short_content} = $result->{content}; - } - $result->{base_url} = $config->{locations}->{base_url}; - $result->{cache_base_url} = $config->{cache}->{base_url}; + for my $result (@$results) { + $result->{allow}->{new_comments} = 1 if ( $params->{allow}->{new_comments} ); + $result->{start_date_name} = time::date_format( $result->{created_at}, $language ); + $result->{start_time_name} = time::time_format( $result->{created_at} ); + my $comment_limit = 100; + if ( length( $result->{content} ) > $comment_limit ) { + $result->{short_content} = substr( $result->{content}, 0, $comment_limit ) . '...'; + } else { + $result->{short_content} = $result->{content}; + } + $result->{base_url} = $config->{locations}->{base_url}; + $result->{cache_base_url} = $config->{cache}->{base_url}; - if ( $params->{template} =~ /\.xml/ ) { + if ( $params->{template} =~ /\.xml/ ) { - # $result->{content} =~s/(\[\[.*?\]\])//gi; - # $result->{content} =markup::plain_to_xml($result->{content}); - # $result->{content} =$result->{html_content}; + # $result->{content} =~s/(\[\[.*?\]\])//gi; + # $result->{content} =markup::plain_to_xml($result->{content}); + # $result->{content} =$result->{html_content}; - $result->{content} = markup::html_to_plain( $result->{html_content} ); - $result->{short_content} = markup::html_to_plain( $result->{short_content} ); - $result->{excerpt} = "lass dich ueberraschen" if ( ( defined $result->{excerpt} ) && ( $result->{excerpt} eq '' ) ); - $result->{excerpt} = markup::html_to_plain( $result->{excerpt} ); - $result->{title} = markup::html_to_plain( $result->{title} ); - $result->{series_name} = markup::html_to_plain( $result->{series_name} ); - $result->{program} = markup::html_to_plain( $result->{program} ); + $result->{content} = markup::html_to_plain( $result->{html_content} ); + $result->{short_content} = markup::html_to_plain( $result->{short_content} ); + $result->{excerpt} = "lass dich ueberraschen" if ( defined $result->{excerpt} ) && ( $result->{excerpt} eq '' ); + $result->{excerpt} = markup::html_to_plain( $result->{excerpt} ); + $result->{title} = markup::html_to_plain( $result->{title} ); + $result->{series_name} = markup::html_to_plain( $result->{series_name} ); + $result->{program} = markup::html_to_plain( $result->{program} ); - if ( defined $result->{created_at} ) { - $result->{created_at} =~ s/ /T/gi; - $result->{created_at} .= $time_diff; - } + if ( defined $result->{created_at} ) { + $result->{created_at} =~ s/ /T/gi; + $result->{created_at} .= $time_diff; + } - if ( defined $result->{modified_at} ) { - $result->{modified_at} =~ s/ /T/gi; - $result->{modified_at} .= $time_diff; - } - } - } - return $results; + if ( defined $result->{modified_at} ) { + $result->{modified_at} =~ s/ /T/gi; + $result->{modified_at} .= $time_diff; + } + } + } + return $results; } sub render { - # my $response =$_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $results = $_[3]; + # my $response =$_[0]; + my $config = $_[1]; + my $request = $_[2]; + my $results = $_[3]; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my %template_parameters = %$params; - my $template_parameters = \%template_parameters; + my %template_parameters = %$params; + my $template_parameters = \%template_parameters; - $template_parameters->{comments} = $results; - $template_parameters->{comment_count} = (@$results) + 0; - $template_parameters->{one_result} = 1 if ( $template_parameters->{comment_count} == 1 ); - $template_parameters->{allow}->{new_comments} = 1 if ( $params->{allow}->{new_comments} ); + $template_parameters->{comments} = $results; + $template_parameters->{comment_count} = scalar(@$results) + 0; + $template_parameters->{one_result} = 1 if ( $template_parameters->{comment_count} == 1 ); + $template_parameters->{allow}->{new_comments} = 1 if ( $params->{allow}->{new_comments} ); - $template_parameters->{event_id} = $params->{event_id}; - $template_parameters->{event_start} = $params->{event_start}; + $template_parameters->{event_id} = $params->{event_id}; + $template_parameters->{event_start} = $params->{event_start}; - $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} ); - $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} ); - $template_parameters->{controllers} = $config->{controllers}; - template::process( $_[0], $params->{template}, $template_parameters ); + $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} ); + $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} ); + $template_parameters->{controllers} = $config->{controllers}; + template::process( $_[0], $params->{template}, $template_parameters ); } #check if comment exists already sub check { - my $dbh = shift; - my $config = shift; - my $comment = shift; + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $query = qq{ + my $query = qq{ select id from calcms_comments where ( @@ -271,32 +271,32 @@ sub check { and ip=? and content=? }; - my $bind_values = - [ $comment->{event_start}, $comment->{event_id}, $comment->{parent_id}, $comment->{author}, $comment->{ip}, $comment->{content} ]; + my $bind_values = + [ $comment->{event_start}, $comment->{event_id}, $comment->{parent_id}, $comment->{author}, $comment->{ip}, $comment->{content} ]; - my $comments = db::get( $dbh, $query, $bind_values ); + my $comments = db::get( $dbh, $query, $bind_values ); - my @comments = @$comments; - return 0 if ( @comments > 0 ); - return 1; + my @comments = @$comments; + return 0 if scalar @comments > 0; + return 1; } #used for insert sub get_level { - my $dbh = shift; - my $config = shift; - my $comment = shift; + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $parent_id = $comment->{parent_id}; - return 0 unless defined $parent_id; - if ( $parent_id =~ /(\d+)/ ) { - $parent_id = $1; - } - return 0 unless $parent_id =~ /^\d+$/; - return 0 if $parent_id == 0; + my $parent_id = $comment->{parent_id}; + return 0 unless defined $parent_id; + if ( $parent_id =~ /(\d+)/ ) { + $parent_id = $1; + } + return 0 unless $parent_id =~ /^\d+$/; + return 0 if $parent_id == 0; - #get level from parent node - my $query = qq{ + #get level from parent node + my $query = qq{ select level from calcms_comments where ( @@ -306,49 +306,49 @@ sub get_level { and id=? limit 1 }; - my $bind_values = [ $comment->{event_start}, $comment->{event_id}, $parent_id ]; + my $bind_values = [ $comment->{event_start}, $comment->{event_id}, $parent_id ]; - my $comments = db::get( $dbh, $query, $bind_values ); + my $comments = db::get( $dbh, $query, $bind_values ); - my @comments = @$comments; - if ( @comments > 0 ) { - return $comments->[0]->{level} + 1; - } - return 0; + my @comments = @$comments; + if ( scalar @comments > 0 ) { + return $comments->[0]->{level} + 1; + } + return 0; } sub get_by_event { - my $dbh = shift; - my $config = shift; - my $request = $_[0]; + my $dbh = shift; + my $config = shift; + my $request = $_[0]; - my $params = $request->{params}->{checked}->{comment}; + my $params = $request->{params}->{checked}->{comment}; - my $event_id = undef; - my $search = undef; - my $where = ''; - my $limit = ''; - my $bind_values = []; + my $event_id = undef; + my $search = undef; + my $where = ''; + my $limit = ''; + my $bind_values = []; - if ( $params->{event_id} ne '' ) { - $where = qq{ event_id=? }; - $bind_values = [ $params->{event_id} ]; - } + if ( $params->{event_id} ne '' ) { + $where = qq{ event_id=? }; + $bind_values = [ $params->{event_id} ]; + } - if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { - $search = '%' . $params->{search} . '%'; - $where = qq{ (content like ?) or (email like ?) or (author like ?) or (ip like ?)}; - $bind_values = [ $search, $search, $search, $search ]; - } + if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { + $search = '%' . $params->{search} . '%'; + $where = qq{ (content like ?) or (email like ?) or (author like ?) or (ip like ?)}; + $bind_values = [ $search, $search, $search, $search ]; + } - my $sort_order = $params->{sort_order} || 'desc'; + my $sort_order = $params->{sort_order} || 'desc'; - if ( ( defined $params->{limit} ) && ( $params->{limit} ne '' ) ) { - $limit = 'limit ?'; - push @$bind_values, $params->{limit}; - } + if ( ( defined $params->{limit} ) && ( $params->{limit} ne '' ) ) { + $limit = 'limit ?'; + push @$bind_values, $params->{limit}; + } - my $query = qq{ + my $query = qq{ select * from calcms_comments where $where @@ -356,21 +356,21 @@ sub get_by_event { $limit }; - #print STDERR $query."\n"; - my $comments = db::get( $dbh, $query, $bind_values ); + #print STDERR $query."\n"; + my $comments = db::get( $dbh, $query, $bind_values ); - return $comments; + return $comments; } sub get_by_time { - my $dbh = shift; - my $config = shift; - my $comment = shift; + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $where = ''; - my $bind_values = []; - if ( $comment->{age} ne '' ) { - $where = qq{ + my $where = ''; + my $bind_values = []; + if ( $comment->{age} ne '' ) { + $where = qq{ where event_id in ( select distinct event_id from calcms_comments @@ -379,9 +379,9 @@ sub get_by_time { ) ) }; - $bind_values = [ $comment->{age} * 3600, ]; - } elsif ( ( $comment->{from} ne '' ) && ( $comment->{till} ne '' ) ) { - $where = qq{ + $bind_values = [ $comment->{age} * 3600, ]; + } elsif ( ( $comment->{from} ne '' ) && ( $comment->{till} ne '' ) ) { + $where = qq{ where event_id in ( select distinct event_id from calcms_comments @@ -389,309 +389,309 @@ sub get_by_time { and created_at <= ? ) }; - $bind_values = [ $comment->{from}, $comment->{till} ]; - } - my $query = qq{ + $bind_values = [ $comment->{from}, $comment->{till} ]; + } + my $query = qq{ select * from calcms_comments $where order by event_id, id }; - my $comments = db::get( $dbh, $query, $bind_values ); - return $comments; + my $comments = db::get( $dbh, $query, $bind_values ); + return $comments; } sub get_events { - my $dbh = shift; - my $config = shift; - my $request = shift; - my $comments = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; + my $comments = shift; - my $params = $request->{params}->{checked}->{comment}; + my $params = $request->{params}->{checked}->{comment}; - #get event_ids from comments - my $event_ids = {}; - for my $comment (@$comments) { - my $event_id = $comment->{event_id}; - $event_ids->{$event_id} = 1; - } + #get event_ids from comments + my $event_ids = {}; + for my $comment (@$comments) { + my $event_id = $comment->{event_id}; + $event_ids->{$event_id} = 1; + } - #get events from comment's event ids - return [] if ( ( keys %{$event_ids} ) == 0 ); + #get events from comment's event ids + return [] if ( scalar keys %{$event_ids} ) == 0; - #my $quoted_event_ids=join "," ,(map {$dbh->quote($_)}(keys %{$event_ids})); - my @bind_values = keys %{$event_ids}; - my $event_id_values = join ",", ( map { '?' } ( keys %{$event_ids} ) ); + #my $quoted_event_ids=join "," ,(map {$dbh->quote($_)}(keys %{$event_ids})); + my @bind_values = keys %{$event_ids}; + my $event_id_values = join ",", ( map { '?' } ( keys %{$event_ids} ) ); - my $query = qq{ + my $query = qq{ select id, start, program, series_name, title, excerpt from calcms_events where id in ($event_id_values) }; - my $events = db::get( $dbh, $query, \@bind_values ); + my $events = db::get( $dbh, $query, \@bind_values ); - #build lookup table for events by id - my $events_by_id = {}; - for my $event (@$events) { - $events_by_id->{ $event->{id} } = $event; - $event->{max_comment_id} = 0; - } + #build lookup table for events by id + my $events_by_id = {}; + for my $event (@$events) { + $events_by_id->{ $event->{id} } = $event; + $event->{max_comment_id} = 0; + } - #add unassigned events - # for my $event_id (keys %{$event_ids}){ - # if ($events_by_id->{$event_id}eq''){ - # my $event={ - # title => "not assigned", - # max_comment_id => 0 - # - # }; - # push @$events,$event; - # $events_by_id->{$event_id}=$event; - # } - # } + #add unassigned events + # for my $event_id (keys %{$event_ids}){ + # if ($events_by_id->{$event_id}eq''){ + # my $event={ + # title => "not assigned", + # max_comment_id => 0 + # + # }; + # push @$events,$event; + # $events_by_id->{$event_id}=$event; + # } + # } - for my $comment (@$comments) { - my $event_id = $comment->{event_id}; - my $event = $events_by_id->{$event_id}; - next unless ( defined $event ); - $event->{comment_count}++; - push @{ $event->{comments} }, $comment; # if ($params->{event_id}ne''); - $event->{max_comment_id} = $comment->{id} if ( $comment->{id} > $event->{max_comment_id} ); - for my $name ( keys %{ $config->{controllers} } ) { - $comment->{ "controller_" . $name } = $config->{controllers}->{$name} || ''; + for my $comment (@$comments) { + my $event_id = $comment->{event_id}; + my $event = $events_by_id->{$event_id}; + next unless ( defined $event ); + $event->{comment_count}++; + push @{ $event->{comments} }, $comment; # if ($params->{event_id}ne''); + $event->{max_comment_id} = $comment->{id} if ( $comment->{id} > $event->{max_comment_id} ); + for my $name ( keys %{ $config->{controllers} } ) { + $comment->{ "controller_" . $name } = $config->{controllers}->{$name} || ''; - # $event->{"controller_$name"}=$config->{controllers}->{$name}; - } - } - my @sorted_events = reverse sort { $a->{max_comment_id} <=> $b->{max_comment_id} } @$events; - return \@sorted_events; + # $event->{"controller_$name"}=$config->{controllers}->{$name}; + } + } + my @sorted_events = reverse sort { $a->{max_comment_id} <=> $b->{max_comment_id} } @$events; + return \@sorted_events; } sub insert { - my $dbh = shift; - my $config = shift; - my $comment = shift; + my $dbh = shift; + my $config = shift; + my $comment = shift; - $comment->{level} = comments::get_level( $dbh, $config, $comment ); + $comment->{level} = comments::get_level( $dbh, $config, $comment ); - my $entry = { - event_start => $comment->{event_start}, - event_id => $comment->{event_id}, - parent_id => $comment->{parent_id}, - level => $comment->{level}, - title => $comment->{title}, - content => $comment->{content}, - author => $comment->{author}, - email => $comment->{email}, - ip => $comment->{ip} - }; + my $entry = { + event_start => $comment->{event_start}, + event_id => $comment->{event_id}, + parent_id => $comment->{parent_id}, + level => $comment->{level}, + title => $comment->{title}, + content => $comment->{content}, + author => $comment->{author}, + email => $comment->{email}, + ip => $comment->{ip} + }; - my $comment_id = db::insert( $dbh, 'calcms_comments', $entry ); - return $comment_id; + my $comment_id = db::insert( $dbh, 'calcms_comments', $entry ); + return $comment_id; } sub set_lock_status { - my $dbh = shift; - my $config = shift; - my $comment = shift; + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $id = $comment->{id}; - my $lock_status = $comment->{set_lock_status}; - my $query = qq{ + my $id = $comment->{id}; + my $lock_status = $comment->{set_lock_status}; + my $query = qq{ update calcms_comments set lock_status = ? where id = ? }; - my $bind_values = [ $lock_status, $id ]; - db::put( $dbh, $query, $bind_values ); + my $bind_values = [ $lock_status, $id ]; + db::put( $dbh, $query, $bind_values ); - $query = qq{ + $query = qq{ select event_id from calcms_comments where id=? }; - $bind_values = [$id]; - my $comments = db::get( $dbh, $query, $bind_values ); - if ( @$comments > 0 ) { - $comment->{event_id} = $comments->[0]->{event_id}; - update_comment_count( $dbh, $comment ); - } + $bind_values = [$id]; + my $comments = db::get( $dbh, $query, $bind_values ); + if ( scalar @$comments > 0 ) { + $comment->{event_id} = $comments->[0]->{event_id}; + update_comment_count( $dbh, $comment ); + } } sub set_news_status { - my $dbh = shift; - my $config = shift; - my $comment = shift; + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $id = $comment->{id}; - my $news_status = $comment->{set_news_status}; - my $query = qq{ + my $id = $comment->{id}; + my $news_status = $comment->{set_news_status}; + my $query = qq{ update calcms_comments set news_status= ? where id = ? }; - my $bind_values = [ $news_status, $id ]; - db::put( $dbh, $query, $bind_values ); + my $bind_values = [ $news_status, $id ]; + db::put( $dbh, $query, $bind_values ); } sub update_comment_count { - my $dbh = shift; - my $config = shift; - my $comment = shift; + my $dbh = shift; + my $config = shift; + my $comment = shift; - my $query = qq{ + my $query = qq{ select count(id) count from calcms_comments where lock_status='show' and event_id=? }; - my $bind_values = [ $comment->{event_id} ]; - my $comments = db::get( $dbh, $query, $bind_values ); + my $bind_values = [ $comment->{event_id} ]; + my $comments = db::get( $dbh, $query, $bind_values ); - my $count = 0; - $count = $comments->[0]->{count} if ( @$comments > 0 ); - $query = qq{ + my $count = 0; + $count = $comments->[0]->{count} if scalar @$comments > 0; + $query = qq{ update calcms_events set comment_count=? where id=? }; - $bind_values = [ $count, $comment->{event_id} ]; - db::put( $dbh, $query, $bind_values ); + $bind_values = [ $count, $comment->{event_id} ]; + db::put( $dbh, $query, $bind_values ); } #precondition: results are presorted by creation date (by sql) sub sort { - my $config = shift; - my $results = shift; + my $config = shift; + my $results = shift; - #define parent nodes - my $nodes = {}; - for my $node (@$results) { - $nodes->{ $node->{id} } = $node; - } - my @root_nodes = (); - for my $node (@$results) { + #define parent nodes + my $nodes = {}; + for my $node (@$results) { + $nodes->{ $node->{id} } = $node; + } + my @root_nodes = (); + for my $node (@$results) { - #fill childs into parent nodes - push @{ $nodes->{ $node->{parent_id} }->{childs} }, $node; + #fill childs into parent nodes + push @{ $nodes->{ $node->{parent_id} }->{childs} }, $node; - #define root nodes - push @root_nodes, $node if ( $node->{level} == 0 ); - } + #define root nodes + push @root_nodes, $node if ( $node->{level} == 0 ); + } - #print STDERR Dumper(\@root_nodes); + #print STDERR Dumper(\@root_nodes); - #sort root nodes from newest to oldest - my $sorted_nodes = []; - for my $node (@root_nodes) { + #sort root nodes from newest to oldest + my $sorted_nodes = []; + for my $node (@root_nodes) { - #for my $node (reverse @root_nodes){ - sort_childs( $node, $nodes, $sorted_nodes ); - } - return $sorted_nodes; + #for my $node (reverse @root_nodes){ + sort_childs( $node, $nodes, $sorted_nodes ); + } + return $sorted_nodes; } sub sort_childs { - my $node = shift; - my $nodes = shift; - my $sorted_nodes = shift; + my $node = shift; + my $nodes = shift; + my $sorted_nodes = shift; - #push node into list of sorted nodes - push @{$sorted_nodes}, $node; + #push node into list of sorted nodes + push @{$sorted_nodes}, $node; - #return if node is leaf - return $sorted_nodes unless ( defined $node->{childs} ); + #return if node is leaf + return $sorted_nodes unless ( defined $node->{childs} ); - #process child nodes - for my $child ( @{ $node->{childs} } ) { - $sorted_nodes = sort_childs( $child, $nodes, $sorted_nodes ); - } - return $sorted_nodes; + #process child nodes + for my $child ( @{ $node->{childs} } ) { + $sorted_nodes = sort_childs( $child, $nodes, $sorted_nodes ); + } + return $sorted_nodes; } sub configure_cache { - my $config = shift; + my $config = shift; - cache::init(); + cache::init(); - my $date_pattern = $cache::date_pattern; - my $datetime_pattern = $cache::datetime_pattern; - my $controllers = $config->{controllers}; + my $date_pattern = $cache::date_pattern; + my $datetime_pattern = $cache::datetime_pattern; + my $controllers = $config->{controllers}; - cache::add_map( 'template=comments_newest&limit=3&type=list', $controllers->{comments} . '/neueste.html' ); - cache::add_map( 'template=comments_atom.xml&limit=20', $controllers->{comments} . '/feed.xml' ); - cache::add_map( 'template=comments.html&event_id=(\d+)&event_start=' . $datetime_pattern, - $controllers->{comments} . '/$1_$2-$3-$4_$5-$6.html' ); + cache::add_map( 'template=comments_newest&limit=3&type=list', $controllers->{comments} . '/neueste.html' ); + cache::add_map( 'template=comments_atom.xml&limit=20', $controllers->{comments} . '/feed.xml' ); + cache::add_map( 'template=comments.html&event_id=(\d+)&event_start=' . $datetime_pattern, + $controllers->{comments} . '/$1_$2-$3-$4_$5-$6.html' ); } sub check_params { - my $config = shift; - my $params = shift; + my $config = shift; + my $params = shift; - my $comment = {}; + my $comment = {}; - $comment->{event_start} = ''; - if ( ( defined $params->{event_start} ) && ( $params->{event_start} =~ /(\d\d\d\d\-\d\d\-\d\d[T ]\d\d\:\d\d)(\:\d\d)?/ ) ) { - $comment->{event_start} = $1; - } + $comment->{event_start} = ''; + if ( ( defined $params->{event_start} ) && ( $params->{event_start} =~ /(\d\d\d\d\-\d\d\-\d\d[T ]\d\d\:\d\d)(\:\d\d)?/ ) ) { + $comment->{event_start} = $1; + } - $comment->{sort_order} = 'desc'; - $comment->{limit} = ''; - if ( ( defined $params->{limit} ) && ( $params->{limit} =~ /(\d+)/ ) ) { - $comment->{limit} = $1; - } + $comment->{sort_order} = 'desc'; + $comment->{limit} = ''; + if ( ( defined $params->{limit} ) && ( $params->{limit} =~ /(\d+)/ ) ) { + $comment->{limit} = $1; + } - $comment->{show_max} = ''; - if ( ( defined $params->{show_max} ) && ( $params->{show_max} =~ /(\d+)/ ) ) { - $comment->{show_max} = $1; - } + $comment->{show_max} = ''; + if ( ( defined $params->{show_max} ) && ( $params->{show_max} =~ /(\d+)/ ) ) { + $comment->{show_max} = $1; + } - if ( ( defined $params->{sort_order} ) && ( $params->{sort_order} eq 'asc' ) ) { - $comment->{sort_order} = 'asc'; - } + if ( ( defined $params->{sort_order} ) && ( $params->{sort_order} eq 'asc' ) ) { + $comment->{sort_order} = 'asc'; + } - $comment->{event_id} = ''; - if ( ( defined $params->{event_id} ) && ( $params->{event_id} =~ /(\d+)/ ) ) { - $comment->{event_id} = $1; - } + $comment->{event_id} = ''; + if ( ( defined $params->{event_id} ) && ( $params->{event_id} =~ /(\d+)/ ) ) { + $comment->{event_id} = $1; + } - if ( ( defined $params->{parent_id} ) && ( $params->{parent_id} =~ /(\d+)/ ) ) { - $comment->{parent_id} = $1; - } + if ( ( defined $params->{parent_id} ) && ( $params->{parent_id} =~ /(\d+)/ ) ) { + $comment->{parent_id} = $1; + } - if ( ( defined $params->{type} ) && ( $params->{type} eq 'list' ) ) { - $comment->{type} = 'list'; - } else { - $comment->{type} = 'tree'; - } + if ( ( defined $params->{type} ) && ( $params->{type} eq 'list' ) ) { + $comment->{type} = 'list'; + } else { + $comment->{type} = 'tree'; + } - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $comment->{debug} = $1; - } + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $comment->{debug} = $1; + } - log::error( $config, 'missing parameter a' ) if ( ( defined $params->{limit} ) && ( $comment->{limit} eq '' ) ); - log::error( $config, 'missing parameter b' ) if ( ( defined $params->{event_id} ) && ( $comment->{event_id} eq '' ) ); - log::error( $config, 'missing parameter c' ) if ( ( defined $params->{event_start} ) && ( $comment->{event_start} eq '' ) ); + log::error( $config, 'missing parameter a' ) if ( defined $params->{limit} ) && ( $comment->{limit} eq '' ); + log::error( $config, 'missing parameter b' ) if ( defined $params->{event_id} ) && ( $comment->{event_id} eq '' ); + log::error( $config, 'missing parameter c' ) if ( defined $params->{event_start} ) && ( $comment->{event_start} eq '' ); - my $delta_days = 1; - if ( $comment->{event_start} ne '' ) { - my $today = time::datetime_to_array( time::time_to_datetime() ); - my $date = time::datetime_to_array( $comment->{event_start} ); - $delta_days = time::days_between( $today, $date ); - } - if ( ( $delta_days > $config->{permissions}->{no_new_comments_before} ) - || ( $delta_days < -1 * $config->{permissions}->{no_new_comments_after} ) ) - { - $comment->{allow}->{new_comments} = 0; - } else { - $comment->{allow}->{new_comments} = 1; - } + my $delta_days = 1; + if ( $comment->{event_start} ne '' ) { + my $today = time::datetime_to_array( time::time_to_datetime() ); + my $date = time::datetime_to_array( $comment->{event_start} ); + $delta_days = time::days_between( $today, $date ); + } + if ( ( $delta_days > $config->{permissions}->{no_new_comments_before} ) + || ( $delta_days < -1 * $config->{permissions}->{no_new_comments_after} ) ) + { + $comment->{allow}->{new_comments} = 0; + } else { + $comment->{allow}->{new_comments} = 1; + } - $comment->{template} = template::check( $params->{template}, 'comments.html' ); + $comment->{template} = template::check( $params->{template}, 'comments.html' ); - return $comment; + return $comment; } #do not delete last line! diff --git a/lib/calcms/config.pm b/lib/calcms/config.pm index 6dc81c9..6f3a865 100644 --- a/lib/calcms/config.pm +++ b/lib/calcms/config.pm @@ -12,12 +12,7 @@ our $config = undef; sub get { my $filename = shift; - - #return config if known - #my $age=(-M $filename); - #return $config::config if ((defined $config::config) && ($age <= $config::modified_at)); - - #reload config if changed + my $configuration = new Config::General( -ConfigFile => $filename, -UTF8 => 1 @@ -25,8 +20,6 @@ sub get { $config::config = $configuration->{DefaultConfig}->{config}; $config::modified_at = $age; - #print STDERR "reload $filename\n"; - return $config::config; } diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index 708be3f..a235fd6 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -12,258 +12,259 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); #convert creole wiki text to event sub extractEventFromWikiText { - my $params = shift; - my $event = shift; - $event = {} unless ( defined $event ); + my $params = shift; + my $event = shift; + $event = {} unless ( defined $event ); - my $title = $params->{title} || ''; - my $content = $params->{content} || ''; - my $local_media_url = $params->{local_media_url} || ''; + my $title = $params->{title} || ''; + my $content = $params->{content} || ''; + my $local_media_url = $params->{local_media_url} || ''; - #split content into excerpt, content and comments - $content =~ s/\s*\,\s*/, /g; - my @lines = split( /\s*\-{10,99}\s*/, $content ); - my $lines = \@lines; - for my $line (@$lines) { - $line =~ s/^\s+|\s+$//g; - } - if ( @lines == 1 ) { - $event->{content} = shift @lines; - } elsif ( @lines == 2 ) { - $event->{excerpt} = shift @lines; - $event->{content} = shift @lines; - } else { - $event->{excerpt} = shift @lines; - $event->{content} = shift @lines; - $event->{comments} = join( "--------------------\n", @lines ); - } - if ( defined $event->{excerpt} ) { - $event->{excerpt} = markup::html_to_plain( $event->{excerpt} ); - } + #split content into excerpt, content and comments + $content =~ s/\s*\,\s*/, /g; + my @lines = split( /\s*\-{10,99}\s*/, $content ); + my $lines = \@lines; + for my $line (@$lines) { + $line =~ s/^\s+|\s+$//g; + } + if ( @lines == 1 ) { + $event->{content} = shift @lines; + } elsif ( @lines == 2 ) { + $event->{excerpt} = shift @lines; + $event->{content} = shift @lines; + } else { + $event->{excerpt} = shift @lines; + $event->{content} = shift @lines; + $event->{comments} = join( "--------------------\n", @lines ); + } + if ( defined $event->{excerpt} ) { + $event->{excerpt} = markup::html_to_plain( $event->{excerpt} ); + } - #extract program from title - $event->{program} = ''; + #extract program from title + $event->{program} = ''; - if ( $title =~ /^(.*?)\:/ ) { - my $program = $1; - unless ( $program =~ /\s\-\s/ ) { - $event->{program} = $program; - $event->{program} =~ s/^\s+|\s+$//g; - $event->{program} =~ s/\s+/ /g; - $title =~ s/^.*?\:\s+//gi; - } - } + if ( $title =~ /^(.*?)\:/ ) { + my $program = $1; + unless ( $program =~ /\s\-\s/ ) { + $event->{program} = $program; + $event->{program} =~ s/^\s+|\s+$//g; + $event->{program} =~ s/\s+/ /g; + $title =~ s/^.*?\:\s+//gi; + } + } - #extract series_name from title - $event->{series_name} = ''; - if ( $title =~ /^(.*?)\s+\-\s+/ ) { - $event->{series_name} = $1; - $event->{series_name} =~ s/^\s+|\s+$//g; - $event->{series_name} =~ s/\s+/ /g; - $title =~ s/^(.*?)\s+\-\s+//gi; - } + #extract series_name from title + $event->{series_name} = ''; + if ( $title =~ /^(.*?)\s+\-\s+/ ) { + $event->{series_name} = $1; + $event->{series_name} =~ s/^\s+|\s+$//g; + $event->{series_name} =~ s/\s+/ /g; + $title =~ s/^(.*?)\s+\-\s+//gi; + } - #extract categories from title - my @categories = (); - while ( $title =~ /\((.*?),(.*?)\)/ ) { - my $category = $1; - $category =~ s/\s+/ /g; - $category =~ s/^\s+|\s+$//g; - $category =~ s/\&/\+/g; - push @categories, $category if ( defined $category && $category =~ /\S/ ); + #extract categories from title + my @categories = (); + while ( $title =~ /\((.*?),(.*?)\)/ ) { + my $category = $1; + $category =~ s/\s+/ /g; + $category =~ s/^\s+|\s+$//g; + $category =~ s/\&/\+/g; + push @categories, $category if ( defined $category && $category =~ /\S/ ); - $category = ''; - $category = $2 if ( defined $2 ); - $category =~ s/\s+/ /g; - $category =~ s/^\s+|\s+$//g; - $category =~ s/\&/\+/g; - push @categories, $category if ( defined $category && $category =~ /\S/ ); - $title =~ s/\((.*?),(.*?)\)/\($2\)/; - } - if ( $title =~ /\((.*?)\)/ ) { - my $category = $1; - $category =~ s/\s+/ /g; - $category =~ s/^\s+|\s+$//g; - $category =~ s/\&/\+/g; + $category = ''; + $category = $2 if ( defined $2 ); + $category =~ s/\s+/ /g; + $category =~ s/^\s+|\s+$//g; + $category =~ s/\&/\+/g; + push @categories, $category if ( defined $category && $category =~ /\S/ ); + $title =~ s/\((.*?),(.*?)\)/\($2\)/; + } + if ( $title =~ /\((.*?)\)/ ) { + my $category = $1; + $category =~ s/\s+/ /g; + $category =~ s/^\s+|\s+$//g; + $category =~ s/\&/\+/g; - # print $category."\n"; - push @categories, $category if ( defined $category && $category =~ /\S/ ); - $title =~ s/\((.*?)\)//; - } - $event->{categories} = \@categories if ( @categories > 0 ); - $event->{title} = $title; - $event->{title} =~ s/^\s+|\s+$//g; + # print $category."\n"; + push @categories, $category if ( defined $category && $category =~ /\S/ ); + $title =~ s/\((.*?)\)//; + } + $event->{categories} = \@categories if ( @categories > 0 ); + $event->{title} = $title; + $event->{title} =~ s/^\s+|\s+$//g; - if ( defined $event->{content} ) { + if ( defined $event->{content} ) { - #extract podcast_url from content link 'podcast' - my $podcast_url = ''; - if ( $event->{content} =~ /\[\[\s*([^\|\]]+)\s*\|\s*podcast\s*\]\]/i ) { - $podcast_url = $1; + #extract podcast_url from content link 'podcast' + my $podcast_url = ''; + if ( $event->{content} =~ /\[\[\s*([^\|\]]+)\s*\|\s*podcast\s*\]\]/i ) { + $podcast_url = $1; - # $podcast_url=~s/\|.*//g; - # print "found podcast:".$podcast_url."\n"; - } - $event->{podcast_url} = $podcast_url; + # $podcast_url=~s/\|.*//g; + # print "found podcast:".$podcast_url."\n"; + } + $event->{podcast_url} = $podcast_url; - #extract media_url from content link 'download' - my $media_url = ''; - if ( $event->{content} =~ /\[\[\s*([^\|\]]+)\s*\|\s*(direct\s+)?download\s*\]\]/i ) { - $media_url = $1; + #extract media_url from content link 'download' + my $media_url = ''; + if ( $event->{content} =~ /\[\[\s*([^\|\]]+)\s*\|\s*(direct\s+)?download\s*\]\]/i ) { + $media_url = $1; - # $podcast_url=~s/\|.*//g; - # print "found media:".$media_url."\n"; - } - $event->{media_url} = $media_url; + # $podcast_url=~s/\|.*//g; + # print "found media:".$media_url."\n"; + } + $event->{media_url} = $media_url; - #replace "thumbs/xxx" link by link to local media URI - $event->{content} =~ - s/\{\{\s*thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}/\[\[$local_media_url\/images\/$1\|\{\{$local_media_url\/thumbs\/$1\|$2\}\}\]\]/g; + #replace "thumbs/xxx" link by link to local media URI + $event->{content} =~ + s/\{\{\s*thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}/\[\[$local_media_url\/images\/$1\|\{\{$local_media_url\/thumbs\/$1\|$2\}\}\]\]/g; - #extract image from content - if ( $event->{content} =~ /\{\{(.*?)(\||\}\})/ ) { - $event->{image} = $1; - } - } + #extract image from content + if ( $event->{content} =~ /\{\{(.*?)(\||\}\})/ ) { + $event->{image} = $1; + } + } - #meta - if ( defined $event->{comments} ) { - my $meta = extractMeta( $event->{comments} ); - $event->{meta} = $meta if ( @$meta > 0 ); - } + #meta + if ( defined $event->{comments} ) { + my $meta = extractMeta( $event->{comments} ); + $event->{meta} = $meta if scalar @$meta > 0; + } - return $event; + return $event; } sub eventToWikiText { - my $event = shift; - my $local_media_url = $event->{local_media_url} || ''; + my $event = shift; + my $local_media_url = $event->{local_media_url} || ''; - $event->{program} =~ s/^\s+|\s+$//g; - $event->{series_name} =~ s/^\s+|\s+$//g; - $event->{title} =~ s/^\s+|\s+$//g; - $event->{excerpt} =~ s/^\s+|\s+$//g; - $event->{content} =~ s/^\s+|\s+$//g; - $event->{comments} =~ s/^\s+|\s+$//g; + $event->{program} =~ s/^\s+|\s+$//g; + $event->{series_name} =~ s/^\s+|\s+$//g; + $event->{title} =~ s/^\s+|\s+$//g; + $event->{excerpt} =~ s/^\s+|\s+$//g; + $event->{content} =~ s/^\s+|\s+$//g; + $event->{comments} =~ s/^\s+|\s+$//g; - my $title = ''; - if ( $event->{program} ne '' ) { - $title = $event->{program}; - $title .= ': ' if ( ( $event->{series_name} ne '' ) || ( $event->{title} ne '' ) ); - } - if ( $event->{series_name} ne '' ) { - $title .= $event->{series_name}; - $title .= ' - ' if ( $event->{title} ne '' ); - } - $title .= $event->{title}; - if ( $event->{categories} ) { - $title .= ' (' . join( ",", @{ $event->{categories} } ) . ')' if ( @{ $event->{categories} } > 0 ); - } + my $title = ''; + if ( $event->{program} ne '' ) { + $title = $event->{program}; + $title .= ': ' if ( $event->{series_name} ne '' ) || ( $event->{title} ne '' ); + } + if ( $event->{series_name} ne '' ) { + $title .= $event->{series_name}; + $title .= ' - ' if ( $event->{title} ne '' ); + } + $title .= $event->{title}; + if ( $event->{categories} ) { + my $categories = $event->{categories}; + $title .= ' (' . join( ",", @$categories ) . ')' if ( scalar @$categories > 0 ); + } - my $meta = extractMeta( $event->{comments}, $event->{meta} ); + my $meta = extractMeta( $event->{comments}, $event->{meta} ); - #use Data::Dumper;print "extracted meta".Dumper($meta); + #use Data::Dumper;print "extracted meta".Dumper($meta); - $event->{comments} = removeMeta( $event->{comments} ); - $event->{wiki_comments} = $event->{comments} . "\n\n" . metaToWiki($meta); + $event->{comments} = removeMeta( $event->{comments} ); + $event->{wiki_comments} = $event->{comments} . "\n\n" . metaToWiki($meta); - #use Data::Dumper;print "event content".Dumper($event->{content}); + #use Data::Dumper;print "event content".Dumper($event->{content}); - #rich content editors: - #$event->{wiki_content}=markup::html_to_creole($event->{content}); + #rich content editors: + #$event->{wiki_content}=markup::html_to_creole($event->{content}); - #markup editors - $event->{wiki_content} = $event->{content}; + #markup editors + $event->{wiki_content} = $event->{content}; # [[http://localhost/agenda_files/media/images/Vl8X7YmaWrmm9RMN_OMywA.jpg|{{http://localhost/agenda_files/media/thumbs/Vl8X7YmaWrmm9RMN_OMywA.jpg|}}]] #replace "thumbs/xxx" link by link to local media URI # while ($event->{wiki_content}=~/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/){ - $event->{wiki_content} =~ - s/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/\{\{thumbs\/$1\|$3\}\}/g; + $event->{wiki_content} =~ + s/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/\{\{thumbs\/$1\|$3\}\}/g; - # } + # } - my $wiki_content = join( "\n" . ( "-" x 20 ) . "\n", ( $event->{excerpt}, $event->{wiki_content} ) ); - $wiki_content .= "\n" . ( "-" x 20 ) . "\n" . $event->{wiki_comments} if ( $event->{wiki_comments} =~ /\S/ ); + my $wiki_content = join( "\n" . ( "-" x 20 ) . "\n", ( $event->{excerpt}, $event->{wiki_content} ) ); + $wiki_content .= "\n" . ( "-" x 20 ) . "\n" . $event->{wiki_comments} if ( $event->{wiki_comments} =~ /\S/ ); - return { - title => $title, - content => $event->{content}, - wiki_content => $wiki_content - }; + return { + title => $title, + content => $event->{content}, + wiki_content => $wiki_content + }; } #extrace meta tags from comment text sub extractMeta { - my $comments = shift; - my $meta = shift; + my $comments = shift; + my $meta = shift; - $meta = [] unless ( defined $meta ); + $meta = [] unless ( defined $meta ); - #push meta tags into meta list - if ( defined $comments ) { + #push meta tags into meta list + if ( defined $comments ) { - #build index for meta already defined - my $meta_keys = {}; - for my $pair (@$meta) { - $meta_keys->{ $pair->{name} . '=' . $pair->{value} } = 1; - } + #build index for meta already defined + my $meta_keys = {}; + for my $pair (@$meta) { + $meta_keys->{ $pair->{name} . '=' . $pair->{value} } = 1; + } - while ( $comments =~ /\~\~META\:(.+?)\=(.+?)\~\~/g ) { - my $name = $1; - my $value = $2; + while ( $comments =~ /\~\~META\:(.+?)\=(.+?)\~\~/g ) { + my $name = $1; + my $value = $2; - #fix meta values - $name = lc($name); - $name =~ s/^\s+|\s+$//g; - $value =~ s/^\s+|\s+$//g; + #fix meta values + $name = lc($name); + $name =~ s/^\s+|\s+$//g; + $value =~ s/^\s+|\s+$//g; - #insert into list, if not defined yet - unless ( ( $name eq '' ) || ( $value eq '' ) || ( exists $meta_keys->{ $name . '=' . $value } ) ) { - push @$meta, - { - name => $name, - value => $value, - }; - $meta_keys->{ $name . '=' . $value } = 1; - } - } - } + #insert into list, if not defined yet + unless ( ( $name eq '' ) || ( $value eq '' ) || ( exists $meta_keys->{ $name . '=' . $value } ) ) { + push @$meta, + { + name => $name, + value => $value, + }; + $meta_keys->{ $name . '=' . $value } = 1; + } + } + } - # use Data::Dumper;print Dumper($meta); - return $meta; + # use Data::Dumper;print Dumper($meta); + return $meta; } #remove meta tags from comment text sub removeMeta { - my $comments = shift || ''; + my $comments = shift || ''; - my $result = ''; - for my $line ( split( /\n/, $comments ) ) { - $result .= $line unless ( $line =~ /\~\~META\:(.+?)\=(.+?)\~\~/g ); - } + my $result = ''; + for my $line ( split( /\n/, $comments ) ) { + $result .= $line unless ( $line =~ /\~\~META\:(.+?)\=(.+?)\~\~/g ); + } - #use Data::Dumper;print "removed metsas:".Dumper($result); - $result =~ s/^\s+//g; - $result =~ s/\s+$//g; + #use Data::Dumper;print "removed metsas:".Dumper($result); + $result =~ s/^\s+//g; + $result =~ s/\s+$//g; - return $result; + return $result; } #add meta tags to comment text sub metaToWiki { - my $meta = shift; + my $meta = shift; - my $result = ''; - for my $pair (@$meta) { + my $result = ''; + for my $pair (@$meta) { - # use Data::Dumper;print Dumper($pair); - $result .= '~~META:' . $pair->{name} . '=' . $pair->{value} . '~~' . "\n"; - } - return $result; + # use Data::Dumper;print Dumper($pair); + $result .= '~~META:' . $pair->{name} . '=' . $pair->{value} . '~~' . "\n"; + } + return $result; - #use Data::Dumper;print Dumper($meta); + #use Data::Dumper;print Dumper($meta); } diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index efdce4f..ed07f4e 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -32,7 +32,7 @@ sub connect { my $options = shift; my $request = shift; - return $request->{connection} if ( ( defined $request ) && ( defined $request->{connection} ) ); + return $request->{connection} if ( defined $request ) && ( defined $request->{connection} ); my $access_options = $options->{access}; diff --git a/lib/calcms/eventOps.pm b/lib/calcms/eventOps.pm index 87d5bb2..aa42ddc 100644 --- a/lib/calcms/eventOps.pm +++ b/lib/calcms/eventOps.pm @@ -37,7 +37,7 @@ sub setAttributesFromSeriesTemplate { series_id => $params->{series_id}, } ); - if ( @$series != 1 ) { + if ( scalar @$series != 1 ) { uac::print_error("series not found"); return undef; } @@ -261,7 +261,7 @@ sub createEvent { series_id => $event->{series_id}, } ); - if ( @$series != 1 ) { + if ( scalar @$series != 1 ) { uac::print_error("series not found"); return undef; } @@ -279,7 +279,7 @@ sub createEvent { uac::print_error("studio not found"); return undef; } - unless ( @$studios == 1 ) { + unless ( scalar @$studios == 1 ) { uac::print_error("studio not found"); return undef; } diff --git a/lib/calcms/event_history.pm b/lib/calcms/event_history.pm index e2666bc..3f4604a 100644 --- a/lib/calcms/event_history.pm +++ b/lib/calcms/event_history.pm @@ -13,62 +13,62 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; sub get_columns { - my $config = shift; + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_event_history' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_event_history' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } sub get { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - return undef unless defined $condition->{studio_id}; + return undef unless defined $condition->{studio_id}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'series_id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{event_id} ) && ( $condition->{event_id} ne '' ) ) { - push @conditions, 'event_id=?'; - push @bind_values, $condition->{event_id}; - } + if ( ( defined $condition->{event_id} ) && ( $condition->{event_id} ne '' ) ) { + push @conditions, 'event_id=?'; + push @bind_values, $condition->{event_id}; + } - if ( ( defined $condition->{change_id} ) && ( $condition->{change_id} ne '' ) ) { - push @conditions, 'id=?'; - push @bind_values, $condition->{change_id}; - } + if ( ( defined $condition->{change_id} ) && ( $condition->{change_id} ne '' ) ) { + push @conditions, 'id=?'; + push @bind_values, $condition->{change_id}; + } - my $limit = ''; - if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { - $limit = 'limit ' . $condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select * from calcms_event_history $conditions @@ -76,102 +76,100 @@ sub get { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); - my $changes = db::get( $dbh, $query, \@bind_values ); + my $changes = db::get( $dbh, $query, \@bind_values ); - #print STDERR Dumper($changes); - - for my $change (@$changes) { - $change->{change_id} = $change->{id}; - delete $change->{id}; - } - return $changes; + for my $change (@$changes) { + $change->{change_id} = $change->{id}; + delete $change->{id}; + } + return $changes; } sub get_by_id { - my $config = shift; - my $id = shift; + my $config = shift; + my $id = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = qq{ + my $query = qq{ select * from calcms_event_history where event_id=? }; - my $studios = db::get( $dbh, $query, [$id] ); - return undef if ( @$studios != 1 ); - return $studios->[0]; + my $studios = db::get( $dbh, $query, [$id] ); + return undef if ( @$studios != 1 ); + return $studios->[0]; } sub insert { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); - $entry->{event_id} = $entry->{id} if ( ( defined $entry->{id} ) && ( !( defined $entry->{event_id} ) ) ); - delete $entry->{id}; + $entry->{event_id} = $entry->{id} if ( defined $entry->{id} ) && ( !( defined $entry->{event_id} ) ); + delete $entry->{id}; - #TODO:filter for existing attributes - my $columns = get_columns($config); - my $event = {}; - for my $column ( keys %$columns ) { - $event->{$column} = $entry->{$column} if defined $entry->{$column}; - } + #TODO:filter for existing attributes + my $columns = get_columns($config); + my $event = {}; + for my $column ( keys %$columns ) { + $event->{$column} = $entry->{$column} if defined $entry->{$column}; + } - my $dbh = db::connect($config); - my $id = db::insert( $dbh, 'calcms_event_history', $event ); - return $id; + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_event_history', $event ); + return $id; } # insert event sub insert_by_event_id { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{series_id}; - return undef unless defined $options->{event_id}; - return undef unless defined $options->{user}; + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{series_id}; + return undef unless defined $options->{event_id}; + return undef unless defined $options->{user}; - my $sql = q{ + my $sql = q{ select * from calcms_events where id=? }; - my $bind_values = [ $options->{event_id} ]; - my $dbh = db::connect($config); - my $results = db::get( $dbh, $sql, $bind_values ); - if ( @$results != 1 ) { - print STDERR "cannot find event with event_id=$options->{event_id}"; - return 0; - } + my $bind_values = [ $options->{event_id} ]; + my $dbh = db::connect($config); + my $results = db::get( $dbh, $sql, $bind_values ); + if ( @$results != 1 ) { + print STDERR "cannot find event with event_id=$options->{event_id}"; + return 0; + } - # add to history - my $event = $results->[0]; - $event->{project_id} = $options->{project_id}; - $event->{studio_id} = $options->{studio_id}; - $event->{series_id} = $options->{series_id}; - $event->{event_id} = $options->{event_id}; - $event->{user} = $options->{user}; - $event->{deleted} = 1; - event_history::insert( $config, $event ); + # add to history + my $event = $results->[0]; + $event->{project_id} = $options->{project_id}; + $event->{studio_id} = $options->{studio_id}; + $event->{series_id} = $options->{series_id}; + $event->{event_id} = $options->{event_id}; + $event->{user} = $options->{user}; + $event->{deleted} = 1; + event_history::insert( $config, $event ); } sub delete { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - my $dbh = db::connect($config); - db::put( $dbh, 'delete from calcms_event_history where event_id=?', [ $entry->{id} ] ); + my $dbh = db::connect($config); + db::put( $dbh, 'delete from calcms_event_history where event_id=?', [ $entry->{id} ] ); } sub error { - my $msg = shift; - print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 317b12f..26fdd04 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -41,985 +41,982 @@ sub init { sub get_cached_or_render { - # my $response=$_[0]; - my $config = $_[1]; - my $request = $_[2]; + # my $response=$_[0]; + my $config = $_[1]; + my $request = $_[2]; - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $cache = {}; - if ( $config->{cache}->{use_cache} == 1 ) { - events::configure_cache($config); - $cache = cache::load( $config, $params ); - if ( defined $cache->{content} ) { - $_[0] = $cache->{content}; - return; - } - } + my $cache = {}; + if ( $config->{cache}->{use_cache} == 1 ) { + events::configure_cache($config); + $cache = cache::load( $config, $params ); + if ( defined $cache->{content} ) { + $_[0] = $cache->{content}; + return; + } + } - my $results = events::get( $config, $request ); - events::render( $_[0], $config, $request, $results ); + my $results = events::get( $config, $request ); + events::render( $_[0], $config, $request, $results ); - #write to cache - if ( $config->{cache}->{use_cache} == 1 ) { + #write to cache + if ( $config->{cache}->{use_cache} == 1 ) { - #todo:put out reference only - $cache->{content} = $_[0]; - cache::save($cache); - } - - return $_[0]; + #todo:put out reference only + $cache->{content} = $_[0]; + cache::save($cache); + } + + return $_[0]; } sub get { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $debug = $config->{system}->{debug}; + my $debug = $config->{system}->{debug}; - my $dbh = db::connect( $config, $request ); + my $dbh = db::connect( $config, $request ); - ( my $query, my $bind_values ) = events::get_query( $dbh, $config, $request ); + ( my $query, my $bind_values ) = events::get_query( $dbh, $config, $request ); - #print STDERR Dumper($query).Dumper($bind_values)."\n"; + #print STDERR Dumper($query).Dumper($bind_values)."\n"; - my $results = db::get( $dbh, $$query, $bind_values ); + my $results = db::get( $dbh, $$query, $bind_values ); - #$results = events::add_recordings($dbh, $config, $request, $results); + #$results = events::add_recordings($dbh, $config, $request, $results); - #print STDERR Dumper($results); - $results = events::modify_results( $dbh, $config, $request, $results ); + #print STDERR Dumper($results); + $results = events::modify_results( $dbh, $config, $request, $results ); - return $results; + return $results; } sub modify_results { - my $dbh = shift; - my $config = shift; - my $request = shift; - my $results = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; + my $results = shift; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $running_event_id = 0; - my $projects = {}; - my $studios = {}; + my $running_event_id = 0; + my $projects = {}; + my $studios = {}; - # print $running_event_id." ".$running_events->[0]->{start}." ".$running_events->[0]->{title} if ($debug ne''); - my $time_diff = ''; - if ( scalar @$results > 0 ) { - $results->[0]->{__first__} = 1; - $results->[-1]->{__last__} = 1; - $running_event_id = events::get_running_event_id($dbh); - } + # print $running_event_id." ".$running_events->[0]->{start}." ".$running_events->[0]->{title} if ($debug ne''); + my $time_diff = ''; + if ( scalar @$results > 0 ) { + $results->[0]->{__first__} = 1; + $results->[-1]->{__last__} = 1; + $running_event_id = events::get_running_event_id($dbh); + } - if ( ( defined $params->{template} ) && ( $params->{template} =~ /\.xml/ ) ) { - $time_diff = time::utc_offset( $config->{date}->{time_zone} ); - $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; - } + if ( ( defined $params->{template} ) && ( $params->{template} =~ /\.xml/ ) ) { + $time_diff = time::utc_offset( $config->{date}->{time_zone} ); + $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; + } - my $previous_result = { start_date => '' }; - my $counter = 1; - for my $result (@$results) { - if ( defined $params->{template} ) { - if ( $params->{template} =~ /\.ics$/ ) { - $result->{content_ical} = - markup::plain_to_ical( $result->{content} ); - $result->{title_ical} = - markup::plain_to_ical( $result->{title} ); - $result->{user_title_ical} = - markup::plain_to_ical( $result->{user_title} ); - $result->{excerpt_ical} = - markup::plain_to_ical( $result->{excerpt} ); - $result->{user_excerpt_ical} = - markup::plain_to_ical( $result->{user_excerpt} ); - $result->{series_name} = - markup::plain_to_ical( $result->{series_name} ); - $result->{created_at} =~ s/ /T/gi; - $result->{created_at} =~ s/[\:\-]//gi; - $result->{modified_at} =~ s/ /T/gi; - $result->{modified_at} =~ s/[\:\-]//gi; + my $previous_result = { start_date => '' }; + my $counter = 1; + for my $result (@$results) { + if ( defined $params->{template} ) { + if ( $params->{template} =~ /\.ics$/ ) { + $result->{content_ical} = + markup::plain_to_ical( $result->{content} ); + $result->{title_ical} = + markup::plain_to_ical( $result->{title} ); + $result->{user_title_ical} = + markup::plain_to_ical( $result->{user_title} ); + $result->{excerpt_ical} = + markup::plain_to_ical( $result->{excerpt} ); + $result->{user_excerpt_ical} = + markup::plain_to_ical( $result->{user_excerpt} ); + $result->{series_name} = + markup::plain_to_ical( $result->{series_name} ); + $result->{created_at} =~ s/ /T/gi; + $result->{created_at} =~ s/[\:\-]//gi; + $result->{modified_at} =~ s/ /T/gi; + $result->{modified_at} =~ s/[\:\-]//gi; - } elsif ( $params->{template} =~ /\.atom\.xml/ ) { - $result->{excerpt} = '' unless defined( $result->{excerpt} ); - $result->{excerpt} = "lass dich ueberraschen" - if ( $result->{excerpt} eq '' ); + } elsif ( $params->{template} =~ /\.atom\.xml/ ) { + $result->{excerpt} = '' unless defined( $result->{excerpt} ); + $result->{excerpt} = "lass dich ueberraschen" + if ( $result->{excerpt} eq '' ); - # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); - # $result->{title} =markup::plain_to_xml($result->{title}); - # $result->{series_name} =markup::plain_to_xml($result->{series_name}); - # $result->{program} =markup::plain_to_xml($result->{program}); + # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); + # $result->{title} =markup::plain_to_xml($result->{title}); + # $result->{series_name} =markup::plain_to_xml($result->{series_name}); + # $result->{program} =markup::plain_to_xml($result->{program}); - $result->{created_at} =~ s/ /T/gi; - $result->{created_at} .= $time_diff; - $result->{modified_at} =~ s/ /T/gi; - $result->{modified_at} .= $time_diff; - } elsif ( $params->{template} =~ /\.rss\.xml/ ) { - $result->{excerpt} = '' unless defined( $result->{excerpt} ); - $result->{excerpt} = "lass dich ueberraschen" - if ( $result->{excerpt} eq '' ); + $result->{created_at} =~ s/ /T/gi; + $result->{created_at} .= $time_diff; + $result->{modified_at} =~ s/ /T/gi; + $result->{modified_at} .= $time_diff; + } elsif ( $params->{template} =~ /\.rss\.xml/ ) { + $result->{excerpt} = '' unless defined( $result->{excerpt} ); + $result->{excerpt} = "lass dich ueberraschen" + if ( $result->{excerpt} eq '' ); - # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); - # $result->{title} =markup::plain_to_xml($result->{title}); - # $result->{series_name} =markup::plain_to_xml($result->{series_name}); - # $result->{program} =markup::plain_to_xml($result->{program}); - #print STDERR "created:$result->{created_at} modified:$result->{modified_at}\n"; - $result->{modified_at} = - time::datetime_to_rfc822( $result->{modified_at} ); - if ( $result->{created_at} =~ /[1-9]/ ) { - $result->{created_at} = - time::datetime_to_rfc822( $result->{created_at} ); - } else { - $result->{created_at} = $result->{modified_at}; - } + # $result->{excerpt} =markup::plain_to_xml($result->{excerpt}); + # $result->{title} =markup::plain_to_xml($result->{title}); + # $result->{series_name} =markup::plain_to_xml($result->{series_name}); + # $result->{program} =markup::plain_to_xml($result->{program}); + #print STDERR "created:$result->{created_at} modified:$result->{modified_at}\n"; + $result->{modified_at} = + time::datetime_to_rfc822( $result->{modified_at} ); + if ( $result->{created_at} =~ /[1-9]/ ) { + $result->{created_at} = + time::datetime_to_rfc822( $result->{created_at} ); + } else { + $result->{created_at} = $result->{modified_at}; + } - } - } - $result->{series_name} ||= ''; - $result->{series_name} = '' if $result->{series_name} eq '_single_'; + } + } + $result->{series_name} ||= ''; + $result->{series_name} = '' if $result->{series_name} eq '_single_'; - $result->{rerun} = '' unless defined $result->{rerun}; + $result->{rerun} = '' unless defined $result->{rerun}; - $result->{title} = '' unless defined $result->{title}; - if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { - $result->{episode} = $1 unless defined $result->{episode}; - $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); - $result->{title} =~ s/\#\d+[a-z]?\s*$//; - $result->{title} =~ s/\s+$//; - } - $result->{rerun} = '' if ( $result->{rerun} eq '0' ); + $result->{title} = '' unless defined $result->{title}; + if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { + $result->{episode} = $1 unless defined $result->{episode}; + $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); + $result->{title} =~ s/\#\d+[a-z]?\s*$//; + $result->{title} =~ s/\s+$//; + } + $result->{rerun} = '' if ( $result->{rerun} eq '0' ); - if ( ( defined $result->{recurrence_count} ) - && ( $result->{recurrence_count} > 0 ) ) - { - $result->{recurrence_count_alpha} = - markup::base26( $result->{recurrence_count} + 1 ); - $result->{recurrence_id} = $result->{recurrence}; - } else { - $result->{recurrence_count_alpha} = ''; - $result->{recurrence_count} = ''; - } + if ( ( defined $result->{recurrence_count} ) + && ( $result->{recurrence_count} > 0 ) ) + { + $result->{recurrence_count_alpha} = + markup::base26( $result->{recurrence_count} + 1 ); + $result->{recurrence_id} = $result->{recurrence}; + } else { + $result->{recurrence_count_alpha} = ''; + $result->{recurrence_count} = ''; + } - # set title keys - my $keys = get_keys($result); - for my $key ( keys %$keys ) { - $result->{$key} = $keys->{$key}; - } + # set title keys + my $keys = get_keys($result); + for my $key ( keys %$keys ) { + $result->{$key} = $keys->{$key}; + } - $result = calc_dates( $config, $result, $params, $previous_result, $time_diff ); + $result = calc_dates( $config, $result, $params, $previous_result, $time_diff ); - $result->{event_uri} = ''; - if ( ( defined $result->{program} ) && ( $result->{program} ne '' ) ) { - $result->{event_uri} .= $result->{program}; - $result->{event_uri} .= '-' - if ( ( $result->{series_name} ne '' ) - || ( $result->{title} ne '' ) ); - } - if ( $result->{series_name} ne '' ) { - $result->{event_uri} .= $result->{series_name}; - $result->{event_uri} .= '-' if ( $result->{title} ne '' ); - } - $result->{event_uri} .= $result->{title} if $result->{title} ne ''; - $result->{event_uri} =~ s/\#/Nr./g; - $result->{event_uri} =~ s/\&/und/g; - $result->{event_uri} =~ s/\//\%2f/g; - $result->{event_uri} =~ s/[?]//g; + $result->{event_uri} = ''; + if ( ( defined $result->{program} ) && ( $result->{program} ne '' ) ) { + $result->{event_uri} .= $result->{program}; + $result->{event_uri} .= '-' + if ( ( $result->{series_name} ne '' ) + || ( $result->{title} ne '' ) ); + } + if ( $result->{series_name} ne '' ) { + $result->{event_uri} .= $result->{series_name}; + $result->{event_uri} .= '-' if ( $result->{title} ne '' ); + } + $result->{event_uri} .= $result->{title} if $result->{title} ne ''; + $result->{event_uri} =~ s/\#/Nr./g; + $result->{event_uri} =~ s/\&/und/g; + $result->{event_uri} =~ s/\//\%2f/g; + $result->{event_uri} =~ s/[?]//g; - $result->{rds_title} = $result->{event_uri}; - $result->{rds_title} =~ s/[^a-zA-Z0-9\-]/\_/gi; - $result->{rds_title} =~ s/\_{2,99}/\_/gi; - $result->{rds_title} = substr( $result->{rds_title}, 0, 63 ); + $result->{rds_title} = $result->{event_uri}; + $result->{rds_title} =~ s/[^a-zA-Z0-9\-]/\_/gi; + $result->{rds_title} =~ s/\_{2,99}/\_/gi; + $result->{rds_title} = substr( $result->{rds_title}, 0, 63 ); - #$result->{event_id}=$result->{id}; + #$result->{event_id}=$result->{id}; - $result->{base_url} = $request->{base_url}; - $result->{base_domain} = $config->{locations}->{base_domain}; - $result->{static_files_url} = $config->{locations}->{static_files_url}; - $result->{source_base_url} = $config->{locations}->{source_base_url}; - $result->{cache_base_url} = $config->{cache}->{base_url}; + $result->{base_url} = $request->{base_url}; + $result->{base_domain} = $config->{locations}->{base_domain}; + $result->{static_files_url} = $config->{locations}->{static_files_url}; + $result->{source_base_url} = $config->{locations}->{source_base_url}; + $result->{cache_base_url} = $config->{cache}->{base_url}; - $result->{is_running} = 1 - if ( $running_event_id eq $result->{event_id} ); - $result->{one_comment} = 1 if ( $result->{comment_count} == 1 ); - $result->{no_comment} = 1 if ( $result->{comment_count} == 0 ); + $result->{is_running} = 1 + if ( $running_event_id eq $result->{event_id} ); + $result->{one_comment} = 1 if ( $result->{comment_count} == 1 ); + $result->{no_comment} = 1 if ( $result->{comment_count} == 0 ); - #fix image url - #$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; - #if ($params->{exclude_event_images}==1){ - # if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ - # $result->{image} = $result->{series_image}; - # $result->{image_label} = $result->{series_image_label}; - # } - #} + #fix image url + #$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; + #if ($params->{exclude_event_images}==1){ + # if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ + # $result->{image} = $result->{series_image}; + # $result->{image_label} = $result->{series_image_label}; + # } + #} - if ( defined $result->{image} ) { - my $url = $config->{locations}->{local_media_url} || ''; - my $image = $result->{image}; - $result->{thumb_url} = $url . '/thumbs/' . $image; - $result->{icon_url} = $url . '/icons/' . $image; - $result->{image_url} = $url . '/images/' . $image; - } + if ( defined $result->{image} ) { + my $url = $config->{locations}->{local_media_url} || ''; + my $image = $result->{image}; + $result->{thumb_url} = $url . '/thumbs/' . $image; + $result->{icon_url} = $url . '/icons/' . $image; + $result->{image_url} = $url . '/images/' . $image; + } - if ( defined $result->{series_image} ) { - my $url = $config->{locations}->{local_media_url} || ''; - my $image = $result->{series_image}; - $result->{series_thumb_url} = $url . '/thumbs/' . $image; - $result->{series_icon_url} = $url . '/icons/' . $image; - $result->{series_image_url} = $url . '/images/' . $image; - } + if ( defined $result->{series_image} ) { + my $url = $config->{locations}->{local_media_url} || ''; + my $image = $result->{series_image}; + $result->{series_thumb_url} = $url . '/thumbs/' . $image; + $result->{series_icon_url} = $url . '/icons/' . $image; + $result->{series_image_url} = $url . '/images/' . $image; + } - $result->{location_css} = $result->{location} || ''; - $result->{location_css} = lc( $result->{location_css} ); - $result->{location_css} =~ s/\.//g; - $result->{location_css} =~ s/\s//g; - $result->{ 'location_label_' . $result->{location_css} } = 1; + $result->{location_css} = $result->{location} || ''; + $result->{location_css} = lc( $result->{location_css} ); + $result->{location_css} =~ s/\.//g; + $result->{location_css} =~ s/\s//g; + $result->{ 'location_label_' . $result->{location_css} } = 1; - # add project by name - my $project_name = $result->{project}; - if ( defined $project_name ) { + # add project by name + my $project_name = $result->{project}; + if ( defined $project_name ) { - #print STDERR "found project:$project_name\n"; - unless ( defined $projects->{$project_name} ) { - my $results = project::get( $config, { name => $project_name } ); - $projects->{$project_name} = $results->[0] || {}; - } - my $project = $projects->{$project_name}; - for my $key ( keys %$project ) { - $result->{ 'project_' . $key } = $project->{$key}; - } - } else { - print STDERR "events::get - unknown project for event $result->{id}\n"; - } + #print STDERR "found project:$project_name\n"; + unless ( defined $projects->{$project_name} ) { + my $results = project::get( $config, { name => $project_name } ); + $projects->{$project_name} = $results->[0] || {}; + } + my $project = $projects->{$project_name}; + for my $key ( keys %$project ) { + $result->{ 'project_' . $key } = $project->{$key}; + } + } else { + print STDERR "events::get - unknown project for event $result->{id}\n"; + } - #if project_id is set add columns from project (cached) - my $project_id = $result->{project_id}; - if ( defined $project_id ) { - unless ( defined $projects->{$project_id} ) { - my $results = project::get( $config, { project_id => $project_id } ); - $projects->{$project_id} = $results->[0] || {}; - } - my $project = $projects->{$project_id}; - for my $key ( keys %$project ) { - $result->{ 'project_' . $key } = $project->{$key}; - } - } + #if project_id is set add columns from project (cached) + my $project_id = $result->{project_id}; + if ( defined $project_id ) { + unless ( defined $projects->{$project_id} ) { + my $results = project::get( $config, { project_id => $project_id } ); + $projects->{$project_id} = $results->[0] || {}; + } + my $project = $projects->{$project_id}; + for my $key ( keys %$project ) { + $result->{ 'project_' . $key } = $project->{$key}; + } + } - #if studio_id is set add columns from studio (cached) - my $studio_id = $result->{studio_id}; - if ( defined $studio_id ) { - unless ( defined $studios->{$studio_id} ) { - my $results = studios::get( $config, { studio_id => $studio_id } ); - $studios->{$studio_id} = $results->[0] || {}; - } - my $studio = $studios->{$studio_id}; - for my $key ( keys %$studio ) { - $result->{ 'studio_' . $key } = $studio->{$key}; - } - } + #if studio_id is set add columns from studio (cached) + my $studio_id = $result->{studio_id}; + if ( defined $studio_id ) { + unless ( defined $studios->{$studio_id} ) { + my $results = studios::get( $config, { studio_id => $studio_id } ); + $studios->{$studio_id} = $results->[0] || {}; + } + my $studio = $studios->{$studio_id}; + for my $key ( keys %$studio ) { + $result->{ 'studio_' . $key } = $studio->{$key}; + } + } - #$result->{'project_title'}=$project->{title} if (defined $project->{title} && $project->{title} ne ''); + #$result->{'project_title'}=$project->{title} if (defined $project->{title} && $project->{title} ne ''); - #print STDERR "project:'$project_name'\n"; - #print STDERR "title:'$result->{project_title}'\n"; - #use Data::Dumper;print STDERR Dumper($result); + #print STDERR "project:'$project_name'\n"; + #print STDERR "title:'$result->{project_title}'\n"; + #use Data::Dumper;print STDERR Dumper($result); - for my $name ( keys %{ $config->{mapping}->{events} } ) { - my $val = ''; - if ( ( defined $name ) - && ( defined $config->{mapping}->{events}->{$name} ) - && ( defined $result->{$name} ) ) - { - $val = $config->{mapping}->{events}->{$name}->{ $result->{$name} } - || ''; - $result->{ $name . '_mapped' } = $val if ( $val ne '' ); - } - } + for my $name ( keys %{ $config->{mapping}->{events} } ) { + my $val = ''; + if ( ( defined $name ) + && ( defined $config->{mapping}->{events}->{$name} ) + && ( defined $result->{$name} ) ) + { + $val = $config->{mapping}->{events}->{$name}->{ $result->{$name} } + || ''; + $result->{ $name . '_mapped' } = $val if ( $val ne '' ); + } + } - #for my $name (keys %{$config->{controllers}}){ - # $result->{"controller_$name"}=$config->{controllers}->{$name}; - #} + #for my $name (keys %{$config->{controllers}}){ + # $result->{"controller_$name"}=$config->{controllers}->{$name}; + #} - $previous_result = $result; + $previous_result = $result; - #print "Content-type:text/text\n\n"; - #use Data::Dumper;print STDERR Dumper($result); - $result->{ 'counter_' . $counter } = 1; - $counter++; + #print "Content-type:text/text\n\n"; + #use Data::Dumper;print STDERR Dumper($result); + $result->{ 'counter_' . $counter } = 1; + $counter++; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(list|details)/ ) ) - { - if ( ( defined $result->{excerpt} ) && ( length( $result->{excerpt} ) > 250 ) ) { - $result->{excerpt} = substr( $result->{excerpt}, 0, 250 ) . '...'; - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(list|details)/ ) ) + { + if ( ( defined $result->{excerpt} ) && ( length( $result->{excerpt} ) > 250 ) ) { + $result->{excerpt} = substr( $result->{excerpt}, 0, 250 ) . '...'; + } - if ( ( defined $result->{user_excerpt} ) && ( length( $result->{user_excerpt} ) > 250 ) ) { - $result->{user_excerpt} = substr( $result->{user_excerpt}, 0, 250 ) . '...'; - } - } + if ( ( defined $result->{user_excerpt} ) && ( length( $result->{user_excerpt} ) > 250 ) ) { + $result->{user_excerpt} = substr( $result->{user_excerpt}, 0, 250 ) . '...'; + } + } - #build content - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /\.html/ ) ) - { - if ( defined $result->{content} ) { - $result->{content} = - markup::fix_line_ends( $result->{content} ); - $result->{content} = - markup::creole_to_html( $result->{content} ); - $result->{html_content} = $result->{content}; + #build content + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /\.html/ ) ) + { + if ( defined $result->{content} ) { + $result->{content} = + markup::fix_line_ends( $result->{content} ); + $result->{content} = + markup::creole_to_html( $result->{content} ); + $result->{html_content} = $result->{content}; - } - if ( defined $result->{topic} ) { - $result->{topic} = markup::fix_line_ends( $result->{topic} ); - $result->{topic} = markup::creole_to_html( $result->{topic} ); - $result->{html_topic} = $result->{topic}; - } - } + } + if ( defined $result->{topic} ) { + $result->{topic} = markup::fix_line_ends( $result->{topic} ); + $result->{topic} = markup::creole_to_html( $result->{topic} ); + $result->{html_topic} = $result->{topic}; + } + } - #detect if images are in content or topic field - my $image_in_text = 0; - $image_in_text = 1 - if ( ( defined $result->{content} ) - && ( $result->{content} =~ /{topic} ) - && ( $result->{topic} =~ /{no_image_in_text} = 1 if $image_in_text == 0; + #detect if images are in content or topic field + my $image_in_text = 0; + $image_in_text = 1 + if ( defined $result->{content} ) + && ( $result->{content} =~ /{topic} ) + && ( $result->{topic} =~ /{no_image_in_text} = 1 if $image_in_text == 0; - if ( - ( defined $params->{template} ) - && ( ( $params->{template} =~ /event_perl\.txt$/ ) - || ( $params->{template} =~ /event_file_export\.txt$/ ) ) + if ( + ( defined $params->{template} ) + && ( ( $params->{template} =~ /event_perl\.txt$/ ) + || ( $params->{template} =~ /event_file_export\.txt$/ ) ) - ) - { - for my $key ( keys %$result ) { - $result->{$key} =~ s/\|/\\\|/g if ( defined $result->{$key} ); - } + ) + { + for my $key ( keys %$result ) { + $result->{$key} =~ s/\|/\\\|/g if ( defined $result->{$key} ); + } - # $result->{content}='no'; - } + # $result->{content}='no'; + } - } # end for results - add_recurrence_dates( $config, $results ); - return $results; + } # end for results + add_recurrence_dates( $config, $results ); + return $results; } sub add_recurrence_dates { - my $config = shift; - my $results = shift; + my $config = shift; + my $results = shift; - # get unique list of recurrence ids from results - my $recurrence_dates = {}; - for my $result (@$results) { - next unless defined $result->{recurrence}; - next if $result->{recurrence} == 0; - $recurrence_dates->{ $result->{recurrence} } = 0; - } + # get unique list of recurrence ids from results + my $recurrence_dates = {}; + for my $result (@$results) { + next unless defined $result->{recurrence}; + next if $result->{recurrence} == 0; + $recurrence_dates->{ $result->{recurrence} } = 0; + } - my @event_ids = keys %$recurrence_dates; - return if @event_ids == 0; + my @event_ids = keys %$recurrence_dates; + return if @event_ids == 0; - # query start date of recurrences - my $conditions = []; - my $bind_values = []; - for my $id (@event_ids) { - push @$conditions, '?'; - push @$bind_values, $id; - } - $conditions = join( ',', @$conditions ); + # query start date of recurrences + my $conditions = []; + my $bind_values = []; + for my $id (@event_ids) { + push @$conditions, '?'; + push @$bind_values, $id; + } + $conditions = join( ',', @$conditions ); - my $query = qq{ + my $query = qq{ select id event_id, start from calcms_events where id in ($conditions) }; - #print STDERR Dumper($query); - #return; - my $dbh = db::connect($config); - my $events = db::get( $dbh, $query, $bind_values ); + #print STDERR Dumper($query); + #return; + my $dbh = db::connect($config); + my $events = db::get( $dbh, $query, $bind_values ); - # store start dates by recurrence id - for my $event (@$events) { - $recurrence_dates->{ $event->{event_id} } = $event->{start}; - } + # store start dates by recurrence id + for my $event (@$events) { + $recurrence_dates->{ $event->{event_id} } = $event->{start}; + } - # set start dates to results - for my $result (@$results) { - next unless defined $result->{recurrence}; - next if $result->{recurrence} == 0; - $result->{recurrence_date} = - $recurrence_dates->{ $result->{recurrence} }; - } + # set start dates to results + for my $result (@$results) { + next unless defined $result->{recurrence}; + next if $result->{recurrence} == 0; + $result->{recurrence_date} = + $recurrence_dates->{ $result->{recurrence} }; + } - #print STDERR Dumper($recurrence_dates); + #print STDERR Dumper($recurrence_dates); } sub calc_dates { - my $config = shift; - my $result = shift; - my $params = shift || {}; - my $previous_result = shift || {}; - my $time_diff = shift || ''; + my $config = shift; + my $result = shift; + my $params = shift || {}; + my $previous_result = shift || {}; + my $time_diff = shift || ''; - $result->{utc_offset} = $time_diff; - $result->{time_zone} = $config->{date}->{time_zone}; - my $language = $config->{date}->{language} || 'en'; + $result->{utc_offset} = $time_diff; + $result->{time_zone} = $config->{date}->{time_zone}; + my $language = $config->{date}->{language} || 'en'; - $result->{start_datetime} = $result->{start}; - $result->{start_datetime} =~ s/ /T/gi; - if ( $result->{start_datetime} =~ /(\d\d\d\d)\-(\d\d)\-(\d\d)T(\d\d)\:(\d\d)/ ) { - $result->{start_year} = $1; - $result->{start_month} = $2; - $result->{start_day} = $3; - $result->{start_hour} = $4; - $result->{start_minute} = $5; - } + $result->{start_datetime} = $result->{start}; + $result->{start_datetime} =~ s/ /T/gi; + if ( $result->{start_datetime} =~ /(\d\d\d\d)\-(\d\d)\-(\d\d)T(\d\d)\:(\d\d)/ ) { + $result->{start_year} = $1; + $result->{start_month} = $2; + $result->{start_day} = $3; + $result->{start_hour} = $4; + $result->{start_minute} = $5; + } - unless ( defined $result->{day} ) { - my $d = time::datetime_to_array( $result->{start} ); - my $hour = $d->[3]; - if ( ( defined $hour ) && ( $hour < 6 ) ) { - $result->{day} = time::add_days_to_date( $result->{start}, -1 ); - } else { - $result->{day} = time::datetime_to_date( $result->{start} ); - } - } - unless ( defined $result->{start_date} ) { - $result->{start_date} = time::datetime_to_date( $result->{start} ); - } - unless ( defined $result->{end_date} ) { - $result->{end_date} = time::datetime_to_date( $result->{end} ); - } + unless ( defined $result->{day} ) { + my $d = time::datetime_to_array( $result->{start} ); + my $hour = $d->[3]; + if ( ( defined $hour ) && ( $hour < 6 ) ) { + $result->{day} = time::add_days_to_date( $result->{start}, -1 ); + } else { + $result->{day} = time::datetime_to_date( $result->{start} ); + } + } + unless ( defined $result->{start_date} ) { + $result->{start_date} = time::datetime_to_date( $result->{start} ); + } + unless ( defined $result->{end_date} ) { + $result->{end_date} = time::datetime_to_date( $result->{end} ); + } - $result->{dtstart} = $result->{start_datetime}; - $result->{dtstart} =~ s/[\:\-]//gi; + $result->{dtstart} = $result->{start_datetime}; + $result->{dtstart} =~ s/[\:\-]//gi; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.txt|\.json)/ ) ) - { - $result->{start_utc_epoch} = time::datetime_to_utc( $result->{start_datetime}, $config->{date}->{time_zone} ); - } - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $result->{start_datetime_utc} = time::datetime_to_utc_datetime( $result->{start_datetime}, $config->{date}->{time_zone} ); - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.txt|\.json)/ ) ) + { + $result->{start_utc_epoch} = time::datetime_to_utc( $result->{start_datetime}, $config->{date}->{time_zone} ); + } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $result->{start_datetime_utc} = time::datetime_to_utc_datetime( $result->{start_datetime}, $config->{date}->{time_zone} ); + } - $result->{end_datetime} = $result->{end}; - $result->{end_datetime} =~ s/ /T/gi; + $result->{end_datetime} = $result->{end}; + $result->{end_datetime} =~ s/ /T/gi; - $result->{dtend} = $result->{end_datetime}; - $result->{dtend} =~ s/[\:\-]//gi; + $result->{dtend} = $result->{end_datetime}; + $result->{dtend} =~ s/[\:\-]//gi; - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.txt|\.json)/ ) ) - { - $result->{end_utc_epoch} = time::datetime_to_utc( $result->{end_datetime}, $config->{date}->{time_zone} ); - } - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $result->{end_datetime_utc} = time::datetime_to_utc_datetime( $result->{end_datetime}, $config->{date}->{time_zone} ); - } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.txt|\.json)/ ) ) + { + $result->{end_utc_epoch} = time::datetime_to_utc( $result->{end_datetime}, $config->{date}->{time_zone} ); + } + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $result->{end_datetime_utc} = time::datetime_to_utc_datetime( $result->{end_datetime}, $config->{date}->{time_zone} ); + } - if ( ( defined $previous_result ) - && ( defined $previous_result->{start_date} ) - && ( $result->{start_date} ne $previous_result->{start_date} ) ) - { - $result->{is_first_of_day} = 1; - $previous_result->{is_last_of_day} = 1; - } + if ( ( defined $previous_result ) + && ( defined $previous_result->{start_date} ) + && ( $result->{start_date} ne $previous_result->{start_date} ) ) + { + $result->{is_first_of_day} = 1; + $previous_result->{is_last_of_day} = 1; + } - $result->{start_date_name} = - time::date_format( $result->{start_date}, $language ); - $result->{end_date_name} = - time::date_format( $result->{end_date}, $language ); + $result->{start_date_name} = + time::date_format( $result->{start_date}, $language ); + $result->{end_date_name} = + time::date_format( $result->{end_date}, $language ); - if ( $result->{start} =~ /(\d\d\:\d\d)\:\d\d/ ) { - $result->{start_time_name} = $1; - $result->{start_time} = $1; - } + if ( $result->{start} =~ /(\d\d\:\d\d)\:\d\d/ ) { + $result->{start_time_name} = $1; + $result->{start_time} = $1; + } - if ( $result->{end} =~ /(\d\d\:\d\d)\:\d\d/ ) { - $result->{end_time_name} = $1; - $result->{end_time} = $1; - } + if ( $result->{end} =~ /(\d\d\:\d\d)\:\d\d/ ) { + $result->{end_time_name} = $1; + $result->{end_time} = $1; + } - if ( defined $result->{weekday} ) { - my $language = $config::config->{date}->{language} || 'en'; + if ( defined $result->{weekday} ) { + my $language = $config::config->{date}->{language} || 'en'; - #my $weekdays=time::get_weekdays(); - my $weekday_index = $time::weekday_index->{ $result->{weekday} . '' } || 0; - $result->{weekday_name} = - $time::names->{$language}->{weekdays}->[$weekday_index]; - $result->{weekday_short_name} = - $time::names->{$language}->{weekdays_abbr}->[$weekday_index]; - } - return $result; + #my $weekdays=time::get_weekdays(); + my $weekday_index = $time::weekday_index->{ $result->{weekday} . '' } || 0; + $result->{weekday_name} = + $time::names->{$language}->{weekdays}->[$weekday_index]; + $result->{weekday_short_name} = + $time::names->{$language}->{weekdays_abbr}->[$weekday_index]; + } + return $result; } sub add_recordings { - my $dbh = shift; - my $config = shift; - my $request = shift; - my $events = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; + my $events = shift; - # print STDERR Dumper($results); - return $events unless defined $events; + # print STDERR Dumper($results); + return $events unless defined $events; - my $params = $request->{params}->{checked}; - return $events unless defined $params; - return $events unless defined $params->{recordings}; + my $params = $request->{params}->{checked}; + return $events unless defined $params; + return $events unless defined $params->{recordings}; - my @ids = (); - my $eventsById = {}; + my @ids = (); + my $eventsById = {}; - #my $events = $results; + #my $events = $results; - for my $event (@$events) { - my $eventId = $event->{event_id}; - push @ids, $eventId; - $eventsById->{$eventId} = $event; - } + for my $event (@$events) { + my $eventId = $event->{event_id}; + push @ids, $eventId; + $eventsById->{$eventId} = $event; + } - my $qms = join( ', ', ( map { '?' } @$events ) ); - my $bindValues = join( ', ', ( map { $_->{event_id} } @$events ) ); + my $qms = join( ', ', ( map { '?' } @$events ) ); + my $bindValues = join( ', ', ( map { $_->{event_id} } @$events ) ); - my $query = qq{ + my $query = qq{ select * from calcms_audio_recordings where event_id in ($qms) order by created_at; }; - $dbh = db::connect($config) unless defined $dbh; - my $recordings = db::get( $dbh, $query, $bindValues ); + $dbh = db::connect($config) unless defined $dbh; + my $recordings = db::get( $dbh, $query, $bindValues ); - #print STDERR Dumper($recordings); + #print STDERR Dumper($recordings); - for my $entry (@$recordings) { - my $eventId = $entry->{event_id}; - my $event = $eventsById->{$eventId}; - push @{ $event->{recordings} }, $entry; - } + for my $entry (@$recordings) { + my $eventId = $entry->{event_id}; + my $event = $eventsById->{$eventId}; + push @{ $event->{recordings} }, $entry; + } - return $events; + return $events; } sub getDateQueryConditions { - my $config = shift; - my $params = shift; - my $bind_values = shift; + my $config = shift; + my $params = shift; + my $bind_values = shift; - # conditions by date - my $date_conds = []; + # conditions by date + my $date_conds = []; - #date, today, tomorrow, yesterday - my $date = ''; - $date = time::date_cond( $params->{date} ) if $params->{date} ne ''; + #date, today, tomorrow, yesterday + my $date = ''; + $date = time::date_cond( $params->{date} ) if $params->{date} ne ''; - my $from_date = ''; - $from_date = time::date_cond( $params->{from_date} ) if $params->{from_date} ne ''; + my $from_date = ''; + $from_date = time::date_cond( $params->{from_date} ) if $params->{from_date} ne ''; - my $till_date = ''; - $till_date = time::date_cond( $params->{till_date} ) if $params->{till_date} ne ''; + my $till_date = ''; + $till_date = time::date_cond( $params->{till_date} ) if $params->{till_date} ne ''; - my $from_time = ''; - $from_time = time::time_cond( $params->{from_time} ) if $params->{from_time} ne ''; + my $from_time = ''; + $from_time = time::time_cond( $params->{from_time} ) if $params->{from_time} ne ''; - my $till_time = ''; - $till_time = time::time_cond( $params->{till_time} ) if $params->{till_time} ne ''; + my $till_time = ''; + $till_time = time::time_cond( $params->{till_time} ) if $params->{till_time} ne ''; - my $time = $params->{time}; - $time = '' unless defined $time; + my $time = $params->{time}; + $time = '' unless defined $time; - my $date_range_include = $params->{date_range_include}; - my $day_starting_hour = $config->{date}->{day_starting_hour}; + my $date_range_include = $params->{date_range_include}; + my $day_starting_hour = $config->{date}->{day_starting_hour}; - if ( $date eq 'today' ) { - my $date = time::get_event_date($config); - push @$date_conds, ' ( start_date = ? ) '; - push @$bind_values, $date; - return $date_conds; - } + if ( $date eq 'today' ) { + my $date = time::get_event_date($config); + push @$date_conds, ' ( start_date = ? ) '; + push @$bind_values, $date; + return $date_conds; + } - # given date - my $start = time::datetime_cond( $date . 'T00:00:00' ); - if ( $start ne '' ) { - $start = time::add_hours_to_datetime( $start, $day_starting_hour ); - my $end = time::add_hours_to_datetime( $start, 24 ); + # given date + my $start = time::datetime_cond( $date . 'T00:00:00' ); + if ( $start ne '' ) { + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + my $end = time::add_hours_to_datetime( $start, 24 ); - if ( $date_range_include eq '1' ) { - push @$date_conds, ' end > ? '; - push @$bind_values, $start; - } else { - push @$date_conds, ' start >= ? '; - push @$bind_values, $start; - } + if ( $date_range_include eq '1' ) { + push @$date_conds, ' end > ? '; + push @$bind_values, $start; + } else { + push @$date_conds, ' start >= ? '; + push @$bind_values, $start; + } - push @$date_conds, ' start < ? '; - push @$bind_values, $end; - return $date_conds; - } + push @$date_conds, ' start < ? '; + push @$bind_values, $end; + return $date_conds; + } - if ( $time eq 'now' ) { - push @$date_conds, qq{ + if ( $time eq 'now' ) { + push @$date_conds, qq{ ( ( unix_timestamp(end) > unix_timestamp(now() ) ) and ( unix_timestamp(start) <= unix_timestamp(now() ) ) ) }; - return $date_conds; - } + return $date_conds; + } - if ( $time eq 'future' ) { - push @$date_conds, qq{ + if ( $time eq 'future' ) { + push @$date_conds, qq{ ( ( unix_timestamp(end) > unix_timestamp(now() ) ) and ( unix_timestamp(end) - unix_timestamp(now() ) ) < 7*24*3600 ) }; - return $date_conds; - } + return $date_conds; + } - #from_date and from_time is defined - if ( ( $from_date ne '' ) && ( $from_time ne '' ) ) { - my $datetime = time::datetime_cond( $from_date . 'T' . $from_time ); - if ( $datetime ne '' ) { - if ( $date_range_include eq '1' ) { - push @$date_conds, ' end > ? '; - push @$bind_values, $datetime; - $from_date = ''; - } else { - push @$date_conds, ' start >= ? '; - push @$bind_values, $datetime; - $from_date = ''; - } - } - } + #from_date and from_time is defined + if ( ( $from_date ne '' ) && ( $from_time ne '' ) ) { + my $datetime = time::datetime_cond( $from_date . 'T' . $from_time ); + if ( $datetime ne '' ) { + if ( $date_range_include eq '1' ) { + push @$date_conds, ' end > ? '; + push @$bind_values, $datetime; + $from_date = ''; + } else { + push @$date_conds, ' start >= ? '; + push @$bind_values, $datetime; + $from_date = ''; + } + } + } - #till_date and till_time is defined - if ( ( $till_date ne '' ) && ( $till_time ne '' ) ) { - my $datetime = time::datetime_cond( $till_date . 'T' . $till_time ); - if ( $datetime ne '' ) { - push @$date_conds, ' start < ? '; - push @$bind_values, $datetime; - $till_date = ''; - } - } + #till_date and till_time is defined + if ( ( $till_date ne '' ) && ( $till_time ne '' ) ) { + my $datetime = time::datetime_cond( $till_date . 'T' . $till_time ); + if ( $datetime ne '' ) { + push @$date_conds, ' start < ? '; + push @$bind_values, $datetime; + $till_date = ''; + } + } - # after start of daily broadcast - if ( ( $from_date ne '' ) && ( $from_time eq '' ) ) { - my $start = time::datetime_cond( $from_date . 'T00:00:00' ); - $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + # after start of daily broadcast + if ( ( $from_date ne '' ) && ( $from_time eq '' ) ) { + my $start = time::datetime_cond( $from_date . 'T00:00:00' ); + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); - if ( $date_range_include eq '1' ) { + if ( $date_range_include eq '1' ) { - # end is after start - push @$date_conds, ' ( end >= ? )'; - push @$bind_values, $start; - } else { - push @$date_conds, ' ( start >= ? ) '; - push @$bind_values, $start; - } - } + # end is after start + push @$date_conds, ' ( end >= ? )'; + push @$bind_values, $start; + } else { + push @$date_conds, ' ( start >= ? ) '; + push @$bind_values, $start; + } + } - # before end of daily broadcast - if ( ( $till_date ne '' ) && ( $till_time eq '' ) ) { - my $end = time::datetime_cond( $till_date . 'T00:00:00' ); - $end = time::add_hours_to_datetime( $end, $day_starting_hour ); - if ( $date_range_include eq '1' ) { + # before end of daily broadcast + if ( ( $till_date ne '' ) && ( $till_time eq '' ) ) { + my $end = time::datetime_cond( $till_date . 'T00:00:00' ); + $end = time::add_hours_to_datetime( $end, $day_starting_hour ); + if ( $date_range_include eq '1' ) { - # start is before end - push @$date_conds, ' ( start <= ? )'; - push @$bind_values, $end; - } else { - push @$date_conds, ' ( end <= ? ) '; - push @$bind_values, $end; - } - } + # start is before end + push @$date_conds, ' ( start <= ? )'; + push @$bind_values, $end; + } else { + push @$date_conds, ' ( end <= ? ) '; + push @$bind_values, $end; + } + } - if ( $params->{weekday} ne '' ) { - my $weekday = $params->{weekday}; - $weekday += 1; - $weekday -= 7 if ( $weekday > 7 ); - push @$date_conds, ' (dayofweek(start)= ?) '; - push @$bind_values, $weekday; - } + if ( $params->{weekday} ne '' ) { + my $weekday = $params->{weekday}; + $weekday += 1; + $weekday -= 7 if ( $weekday > 7 ); + push @$date_conds, ' (dayofweek(start)= ?) '; + push @$bind_values, $weekday; + } - if ( $params->{archive} eq 'past' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @$date_conds, ' ( start < ? ) '; - push @$bind_values, $date; - } + if ( $params->{archive} eq 'past' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( start < ? ) '; + push @$bind_values, $date; + } - } - if ( $params->{archive} eq 'future' ) { - my $date = time::get_event_date($config); - if ( $date ne '' ) { - push @$date_conds, ' ( end >= ? ) '; - push @$bind_values, $date; - } - } + } + if ( $params->{archive} eq 'future' ) { + my $date = time::get_event_date($config); + if ( $date ne '' ) { + push @$date_conds, ' ( end >= ? ) '; + push @$bind_values, $date; + } + } - return $date_conds; + return $date_conds; } # if recordings is set in params, recordings date and path will be included sub get_query { - my $dbh = shift; - my $config = shift; - my $request = shift; + my $dbh = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - $params->{recordings} = '' unless defined $params->{recordings}; + $params->{recordings} = '' unless defined $params->{recordings}; - my $bind_values = []; - my $where_cond = []; - my $order_cond = ''; - my $limit_cond = ''; + my $bind_values = []; + my $where_cond = []; + my $order_cond = ''; + my $limit_cond = ''; - if ( $params->{event_id} ne '' ) { + if ( $params->{event_id} ne '' ) { - # conditions by event id - push @$where_cond, 'e.id=?'; - $bind_values = [ $params->{event_id} ]; + # conditions by event id + push @$where_cond, 'e.id=?'; + $bind_values = [ $params->{event_id} ]; - #filter by published, default=1 to see published only, set published='all' to see all - my $published = $params->{published} || '1'; - if ( ( $published eq '0' ) || ( $published eq '1' ) ) { - push @$where_cond, 'published=?'; - push @$bind_values, $published; - } + #filter by published, default=1 to see published only, set published='all' to see all + my $published = $params->{published} || '1'; + if ( ( $published eq '0' ) || ( $published eq '1' ) ) { + push @$where_cond, 'published=?'; + push @$bind_values, $published; + } - my $draft = $params->{draft} || '0'; - if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { - push @$where_cond, 'draft=?'; - push @$bind_values, $draft; - } + my $draft = $params->{draft} || '0'; + if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { + push @$where_cond, 'draft=?'; + push @$bind_values, $draft; + } - } else { + } else { - my $date_conds = getDateQueryConditions( $config, $params, $bind_values ); - my $date_cond = join " and ", @$date_conds; + my $date_conds = getDateQueryConditions( $config, $params, $bind_values ); + my $date_cond = join " and ", @$date_conds; - push @$where_cond, $date_cond if ( $date_cond ne '' ); - } + push @$where_cond, $date_cond if ( $date_cond ne '' ); + } - # location - my $location_cond = ''; - if ( $params->{location} ne '' ) { - my $location = ( split( /\,/, $params->{location} ) )[0]; - $location =~ s/[^a-zA-Z0-9]/%/g; - $location =~ s/%{2,99}/%/g; - if ( $location ne '' ) { - $location_cond = ' location like ? '; - push @$bind_values, $location; - } - } + # location + my $location_cond = ''; + if ( $params->{location} ne '' ) { + my $location = ( split( /\,/, $params->{location} ) )[0]; + $location =~ s/[^a-zA-Z0-9]/%/g; + $location =~ s/%{2,99}/%/g; + if ( $location ne '' ) { + $location_cond = ' location like ? '; + push @$bind_values, $location; + } + } - # exclude location - my $exclude_location_cond = ''; - if ( $params->{exclude_locations} eq '1' ) { - if ( $params->{locations_to_exclude} ne '' ) { - my @locations_to_exclude = split( /,/, $params->{locations_to_exclude} ); - $exclude_location_cond = 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; - for my $location (@locations_to_exclude) { - $location =~ s/^\s+//g; - $location =~ s/\s+$//g; - push @$bind_values, $location; - } - } - } + # exclude location + my $exclude_location_cond = ''; + if ( $params->{exclude_locations} eq '1' ) { + if ( $params->{locations_to_exclude} ne '' ) { + my @locations_to_exclude = split( /,/, $params->{locations_to_exclude} ); + $exclude_location_cond = 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; + for my $location (@locations_to_exclude) { + $location =~ s/^\s+//g; + $location =~ s/\s+$//g; + push @$bind_values, $location; + } + } + } - # exclude project - my $exclude_project_cond = ''; - if ( $params->{exclude_projects} eq '1' ) { - if ( $params->{projects_to_exclude} ne '' ) { - my @projects_to_exclude = split( /,/, $params->{projects_to_exclude} ); - $exclude_project_cond = 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; - for my $project (@projects_to_exclude) { - $project =~ s/^\s+//g; - $project =~ s/\s+$//g; - push @$bind_values, $project; - } - } - } + # exclude project + my $exclude_project_cond = ''; + if ( $params->{exclude_projects} eq '1' ) { + if ( $params->{projects_to_exclude} ne '' ) { + my @projects_to_exclude = split( /,/, $params->{projects_to_exclude} ); + $exclude_project_cond = 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; + for my $project (@projects_to_exclude) { + $project =~ s/^\s+//g; + $project =~ s/\s+$//g; + push @$bind_values, $project; + } + } + } - #filter for category - my $category_cond = ''; - if ( $params->{category} ne '' ) { - my $category = ( split( /\,/, $params->{category} ) )[0]; - $category =~ s/[^a-zA-Z0-9]/%/g; - $category =~ s/%{2,99}/%/g; - if ( $category ne '' ) { - $category_cond = qq{ + #filter for category + my $category_cond = ''; + if ( $params->{category} ne '' ) { + my $category = ( split( /\,/, $params->{category} ) )[0]; + $category =~ s/[^a-zA-Z0-9]/%/g; + $category =~ s/%{2,99}/%/g; + if ( $category ne '' ) { + $category_cond = qq{ id in( select event_id from calcms_categories where name like ? ) }; - } - push @$bind_values, $category; - } + } + push @$bind_values, $category; + } - my $series_name_cond = ''; - if ( ( defined $params->{series_name} ) - && ( $params->{series_name} ne '' ) ) - { - my $series_name = ( split( /\,/, $params->{series_name} ) )[0]; - $series_name =~ s/[^a-zA-Z0-9]/%/g; - $series_name =~ s/%{2,99}/%/g; - if ( $series_name ne '' ) { - $series_name_cond = ' series_name like ? '; - push @$bind_values, $series_name; - } - } + my $series_name_cond = ''; + if ( ( defined $params->{series_name} ) + && ( $params->{series_name} ne '' ) ) + { + my $series_name = ( split( /\,/, $params->{series_name} ) )[0]; + $series_name =~ s/[^a-zA-Z0-9]/%/g; + $series_name =~ s/%{2,99}/%/g; + if ( $series_name ne '' ) { + $series_name_cond = ' series_name like ? '; + push @$bind_values, $series_name; + } + } - #filter for tags - my $tag_cond = ''; - if ( ( defined $params->{tag} ) && ( $params->{tag} ne '' ) ) { - my @tags = ( split( /\,/, $params->{tag} ) ); - if ( scalar @tags > 0 ) { - my $tags = join ",", ( map { '?' } @tags ); - for my $tag (@tags) { - push @$bind_values, $tag; - } - $tag_cond = qq{ + #filter for tags + my $tag_cond = ''; + if ( ( defined $params->{tag} ) && ( $params->{tag} ne '' ) ) { + my @tags = ( split( /\,/, $params->{tag} ) ); + if ( scalar @tags > 0 ) { + my $tags = join ",", ( map { '?' } @tags ); + for my $tag (@tags) { + push @$bind_values, $tag; + } + $tag_cond = qq{ id in( select event_id from calcms_tags where name in($tags) ) }; - } - } - $tag_cond = ''; + } + } + $tag_cond = ''; - my $title_cond = ''; - if ( ( defined $params->{title} ) && ( $params->{title} ne '' ) ) { - my $title = ( split( /\,/, $params->{title} ) )[0]; - $title =~ s/[^a-zA-Z0-9]/%/g; - $title =~ s/%{2,99}/%/g; - $title =~ s/^\%//; - $title =~ s/\%$//; - $title = '%' . $title . '%'; - if ( $title ne '' ) { - $title_cond = ' title like ? '; - push @$bind_values, $title; - } - } + my $title_cond = ''; + if ( ( defined $params->{title} ) && ( $params->{title} ne '' ) ) { + my $title = ( split( /\,/, $params->{title} ) )[0]; + $title =~ s/[^a-zA-Z0-9]/%/g; + $title =~ s/%{2,99}/%/g; + $title =~ s/^\%//; + $title =~ s/\%$//; + $title = '%' . $title . '%'; + if ( $title ne '' ) { + $title_cond = ' title like ? '; + push @$bind_values, $title; + } + } - my $search_cond = ''; - if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { - my $search = lc $params->{search}; - $search =~ s/(?=[\\%_])/\\/g; - $search =~ s/^[\%\s]+//; - $search =~ s/[\%\s]+$//; - if ( $search ne '' ) { - $search = '%' . $search . '%'; - my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content', 'topic' ); - $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; - for my $attr (@attr) { - push @$bind_values, $search; - } - } - } + my $search_cond = ''; + if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { + my $search = lc $params->{search}; + $search =~ s/(?=[\\%_])/\\/g; + $search =~ s/^[\%\s]+//; + $search =~ s/[\%\s]+$//; + if ( $search ne '' ) { + $search = '%' . $search . '%'; + my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content', 'topic' ); + $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + for my $attr (@attr) { + push @$bind_values, $search; + } + } + } - #print STDERR $search_cond."\n"; + my $project_cond = ''; - my $project_cond = ''; + my $project = undef; + $project = $params->{project} + if ( defined $params->{project} ) && ( $params->{project} ne '' ); - # if ($filter_by_project eq'1'){ - my $project = undef; #$params->{default_project}; - $project = $params->{project} - if ( ( defined $params->{project} ) && ( $params->{project} ne '' ) ); - my $project_name = ''; - $project_name = $project->{name} - if ( ( defined $project ) - && ( defined $project->{name} ) - && ( $project->{name} ne '' ) ); - if ( ( $project_name ne '' ) && ( $project_name ne 'all' ) ) { - $project_cond = '(project=?)'; - push @$bind_values, $project_name; - } + my $project_name = ''; + $project_name = $project->{name} + if ( defined $project ) + && ( defined $project->{name} ) + && ( $project->{name} ne '' ); - # } + if ( ( $project_name ne '' ) && ( $project_name ne 'all' ) ) { + $project_cond = '(project=?)'; + push @$bind_values, $project_name; + } - #filter by published, default =1, set to 'all' to see all - my $published_cond = ''; - my $published = $params->{published} || '1'; - if ( ( $published eq '0' ) || ( $published eq '1' ) ) { - $published_cond = 'published=?'; - push @$bind_values, $published; - } + #filter by published, default =1, set to 'all' to see all + my $published_cond = ''; + my $published = $params->{published} || '1'; + if ( ( $published eq '0' ) || ( $published eq '1' ) ) { + $published_cond = 'published=?'; + push @$bind_values, $published; + } - #filter by draft, default =1, set to 'all' to see all - my $draft_cond = ''; - my $draft = $params->{draft} || '0'; - if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { - $draft_cond = 'draft=?'; - push @$bind_values, $draft; - } + #filter by draft, default =1, set to 'all' to see all + my $draft_cond = ''; + my $draft = $params->{draft} || '0'; + if ( ( $draft eq '0' ) || ( $draft eq '1' ) ) { + $draft_cond = 'draft=?'; + push @$bind_values, $draft; + } - my $disable_event_sync_cond = ''; - my $disable_event_sync = $params->{disable_event_sync} || ''; - if ( ( $disable_event_sync eq '0' ) || ( $disable_event_sync eq '1' ) ) { - $disable_event_sync_cond = 'disable_event_sync=?'; - push @$bind_values, $disable_event_sync; - } + my $disable_event_sync_cond = ''; + my $disable_event_sync = $params->{disable_event_sync} || ''; + if ( ( $disable_event_sync eq '0' ) || ( $disable_event_sync eq '1' ) ) { + $disable_event_sync_cond = 'disable_event_sync=?'; + push @$bind_values, $disable_event_sync; + } - #print STDERR $disable_event_sync_cond." ".$bind_values->[-1]."\n"; + #print STDERR $disable_event_sync_cond." ".$bind_values->[-1]."\n"; - #combine date, location, category, series_name, tag, search and project + #combine date, location, category, series_name, tag, search and project - push @$where_cond, $location_cond if ( $location_cond =~ /\S/ ); - push @$where_cond, $exclude_location_cond - if ( $exclude_location_cond =~ /\S/ ); - push @$where_cond, $exclude_project_cond - if ( $exclude_project_cond =~ /\S/ ); - push @$where_cond, $category_cond if ( $category_cond =~ /\S/ ); - push @$where_cond, $series_name_cond if ( $series_name_cond =~ /\S/ ); - push @$where_cond, $tag_cond if ( $tag_cond =~ /\S/ ); - push @$where_cond, $title_cond if ( $title_cond =~ /\S/ ); - push @$where_cond, $search_cond if ( $search_cond =~ /\S/ ); - push @$where_cond, $project_cond if ( $project_cond =~ /\S/ ); - push @$where_cond, $published_cond if ( $published_cond =~ /\S/ ); - push @$where_cond, $draft_cond if ( $draft_cond =~ /\S/ ); - push @$where_cond, $disable_event_sync_cond - if ( $disable_event_sync_cond ne '' ); + push @$where_cond, $location_cond if ( $location_cond =~ /\S/ ); + push @$where_cond, $exclude_location_cond + if ( $exclude_location_cond =~ /\S/ ); + push @$where_cond, $exclude_project_cond + if ( $exclude_project_cond =~ /\S/ ); + push @$where_cond, $category_cond if ( $category_cond =~ /\S/ ); + push @$where_cond, $series_name_cond if ( $series_name_cond =~ /\S/ ); + push @$where_cond, $tag_cond if ( $tag_cond =~ /\S/ ); + push @$where_cond, $title_cond if ( $title_cond =~ /\S/ ); + push @$where_cond, $search_cond if ( $search_cond =~ /\S/ ); + push @$where_cond, $project_cond if ( $project_cond =~ /\S/ ); + push @$where_cond, $published_cond if ( $published_cond =~ /\S/ ); + push @$where_cond, $draft_cond if ( $draft_cond =~ /\S/ ); + push @$where_cond, $disable_event_sync_cond + if ( $disable_event_sync_cond ne '' ); - #print STDERR Dumper($where_cond); + #print STDERR Dumper($where_cond); - #order is forced - if ( $params->{order} eq 'asc' ) { - $order_cond = 'order by start'; - } elsif ( $params->{order} eq 'desc' ) { - $order_cond = 'order by start desc'; - } else { + #order is forced + if ( $params->{order} eq 'asc' ) { + $order_cond = 'order by start'; + } elsif ( $params->{order} eq 'desc' ) { + $order_cond = 'order by start desc'; + } else { - #derivate order from archive flag - if ( $params->{archive} eq 'past' ) { - $order_cond = 'order by start desc'; - } else { - $order_cond = 'order by start'; - } - } + #derivate order from archive flag + if ( $params->{archive} eq 'past' ) { + $order_cond = 'order by start desc'; + } else { + $order_cond = 'order by start'; + } + } - if ( ( defined $params->{limit} ne '' ) && ( $params->{limit} ne '' ) ) { - $limit_cond = 'limit ' . $params->{limit}; - } + if ( ( defined $params->{limit} ne '' ) && ( $params->{limit} ne '' ) ) { + $limit_cond = 'limit ' . $params->{limit}; + } - my $query = qq{ + my $query = qq{ select date(e.start) start_date ,date(e.end) end_date @@ -1062,183 +1059,183 @@ sub get_query { ,e.disable_event_sync ,e.episode }; - my $template = $params->{template} || ''; + my $template = $params->{template} || ''; - $query .= ',e.excerpt' unless ( $template =~ /menu/ ); + $query .= ',e.excerpt' unless ( $template =~ /menu/ ); - # $query.=',e.project' unless ($template=~/menu/ || $template=~/list/); + # $query.=',e.project' unless ($template=~/menu/ || $template=~/list/); - my $get = $params->{get} || ''; - unless ( $get eq 'no_content' ) { - if ( $template =~ /\.html/ ) { - unless ( $template =~ /menu/ || $template =~ /list/ ) { - $query .= ', e.content, e.topic, e.html_content, e.html_topic'; + my $get = $params->{get} || ''; + unless ( $get eq 'no_content' ) { + if ( $template =~ /\.html/ ) { + unless ( $template =~ /menu/ || $template =~ /list/ ) { + $query .= ', e.content, e.topic, e.html_content, e.html_topic'; - #$query.=',html_content content, html_topic topic' ; - } - } else { - unless ( $template =~ /menu/ || $template =~ /list/ ) { - $query .= ', e.content, e.topic, e.html_content, e.html_topic'; - } - } - } + #$query.=',html_content content, html_topic topic' ; + } + } else { + unless ( $template =~ /menu/ || $template =~ /list/ ) { + $query .= ', e.content, e.topic, e.html_content, e.html_topic'; + } + } + } - # add project id and series id - if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { - if ( $params->{project_id} ne '' ) { - push @$where_cond, 'se.project_id=?'; - push @$bind_values, $params->{project_id}; - $query .= ', se.project_id'; - } - if ( $params->{studio_id} ne '' ) { - push @$where_cond, 'se.studio_id=?'; - push @$bind_values, $params->{studio_id}; - $query .= ', se.studio_id'; - } + # add project id and series id + if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { + if ( $params->{project_id} ne '' ) { + push @$where_cond, 'se.project_id=?'; + push @$bind_values, $params->{project_id}; + $query .= ', se.project_id'; + } + if ( $params->{studio_id} ne '' ) { + push @$where_cond, 'se.studio_id=?'; + push @$bind_values, $params->{studio_id}; + $query .= ', se.studio_id'; + } - #push @$where_cond, 'se.event_id=e.id'; - } + #push @$where_cond, 'se.event_id=e.id'; + } - # add recordings field and conditions - if ( $params->{recordings} eq '1' ) { - $query .= ', ar.path'; - $query .= ', ar.size'; - $query .= ', ar.created_by uploaded_by'; - $query .= ', ar.modified_at uploaded_at'; + # add recordings field and conditions + if ( $params->{recordings} eq '1' ) { + $query .= ', ar.path'; + $query .= ', ar.size'; + $query .= ', ar.created_by uploaded_by'; + $query .= ', ar.modified_at uploaded_at'; - #push @$where_cond, 'e.id=ar.event_id'; - } + #push @$where_cond, 'e.id=ar.event_id'; + } - $query .= "\n from"; + $query .= "\n from"; - # add tables - if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { + # add tables + if ( ( $params->{project_id} ne '' ) || ( $params->{studio_id} ne '' ) ) { - # prepent series_events - $query .= "\n calcms_series_events se inner join calcms_events e on se.event_id=e.id"; - } else { - $query .= "\n calcms_events e"; - } + # prepent series_events + $query .= "\n calcms_series_events se inner join calcms_events e on se.event_id=e.id"; + } else { + $query .= "\n calcms_events e"; + } - # add recordings table - if ( $params->{recordings} eq '1' ) { - $query .= "\n left join calcms_audio_recordings ar on e.id=ar.event_id"; - } + # add recordings table + if ( $params->{recordings} eq '1' ) { + $query .= "\n left join calcms_audio_recordings ar on e.id=ar.event_id"; + } - if ( scalar @$where_cond > 0 ) { - $query .= "\nwhere " . join( ' and ', @$where_cond ); - } + if ( scalar @$where_cond > 0 ) { + $query .= "\nwhere " . join( ' and ', @$where_cond ); + } - $query .= "\n" . $order_cond if ( $order_cond ne '' ); - $query .= "\n" . $limit_cond if ( $limit_cond ne '' ); + $query .= "\n" . $order_cond if ( $order_cond ne '' ); + $query .= "\n" . $limit_cond if ( $limit_cond ne '' ); - #print STDERR Dumper($query).Dumper($bind_values)."\n"; + #print STDERR Dumper($query).Dumper($bind_values)."\n"; - return ( \$query, $bind_values ); + return ( \$query, $bind_values ); } sub render { - # my $response = $_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $results = $_[3]; - my $root_params = $_[4]; + # my $response = $_[0]; + my $config = $_[1]; + my $request = $_[2]; + my $results = $_[3]; + my $root_params = $_[4]; - my $params = $request->{params}->{checked}; - if ( ref($root_params) eq 'HASH' ) { - for my $param ( keys %$root_params ) { - $params->{$param} = $root_params->{$param}; - } - } - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + if ( ref($root_params) eq 'HASH' ) { + for my $param ( keys %$root_params ) { + $params->{$param} = $root_params->{$param}; + } + } + my $debug = $config->{system}->{debug}; - my %template_parameters = %$params; - my $template_parameters = \%template_parameters; - $template_parameters->{events} = $results; - $template_parameters->{debug} = $debug; - $template_parameters->{server_cache} = $config->{cache}->{server_cache} - if ( $config->{cache}->{server_cache} ); - $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} - if ( $config->{cache}->{use_client_cache} ); + my %template_parameters = %$params; + my $template_parameters = \%template_parameters; + $template_parameters->{events} = $results; + $template_parameters->{debug} = $debug; + $template_parameters->{server_cache} = $config->{cache}->{server_cache} + if ( $config->{cache}->{server_cache} ); + $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} + if ( $config->{cache}->{use_client_cache} ); - if ( scalar @$results > 0 ) { - my $result = $results->[0]; - $template_parameters->{event_id} = $result->{event_id}; - $template_parameters->{event_dtstart} = $result->{dtstart}; - } + if ( scalar @$results > 0 ) { + my $result = $results->[0]; + $template_parameters->{event_id} = $result->{event_id}; + $template_parameters->{event_dtstart} = $result->{dtstart}; + } - # $template_parameters->{print} =1 if ($params->{print} eq '1'); - $template_parameters->{base_url} = $config->{locations}->{base_url}; - $template_parameters->{base_domain} = $config->{locations}->{base_domain}; - $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; - $template_parameters->{modified_at} = time::time_to_datetime( time() ); - if ( ( defined $params->{template} ) - && ( $params->{template} =~ /(\.xml)/ ) ) - { - $template_parameters->{modified_at_datetime_utc} = - time::datetime_to_utc_datetime( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); - } + # $template_parameters->{print} =1 if ($params->{print} eq '1'); + $template_parameters->{base_url} = $config->{locations}->{base_url}; + $template_parameters->{base_domain} = $config->{locations}->{base_domain}; + $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; + $template_parameters->{modified_at} = time::time_to_datetime( time() ); + if ( ( defined $params->{template} ) + && ( $params->{template} =~ /(\.xml)/ ) ) + { + $template_parameters->{modified_at_datetime_utc} = + time::datetime_to_utc_datetime( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); + } - #$template_parameters->{tags} = $tags; + #$template_parameters->{tags} = $tags; - if ( @$results == 0 ) { - if ( ( $params->{search} ne '' ) - || ( $params->{category} ne '' ) - || ( $params->{series_name} ne '' ) ) - { - $template_parameters->{no_search_result} = '1'; - } else { - $template_parameters->{no_result} = '1'; - } - } else { - if ( ( !defined $params->{event_id} ) || ( $params->{event_id} eq '' ) ) { - $template_parameters->{event_count} = @$results . ''; - $template_parameters->{first_of_list} = $results->[0]->{event_id}; - } - my $start = $results->[0]->{start_datetime} || ''; - if ( $start =~ /(\d{4}\-\d{2})/ ) { - $template_parameters->{month} = $1; - } - } + if ( scalar @$results == 0 ) { + if ( ( $params->{search} ne '' ) + || ( $params->{category} ne '' ) + || ( $params->{series_name} ne '' ) ) + { + $template_parameters->{no_search_result} = '1'; + } else { + $template_parameters->{no_result} = '1'; + } + } else { + if ( ( !defined $params->{event_id} ) || ( $params->{event_id} eq '' ) ) { + $template_parameters->{event_count} = scalar @$results . ''; + $template_parameters->{first_of_list} = $results->[0]->{event_id}; + } + my $start = $results->[0]->{start_datetime} || ''; + if ( $start =~ /(\d{4}\-\d{2})/ ) { + $template_parameters->{month} = $1; + } + } - my $time_diff = time::utc_offset( $config->{date}->{time_zone} ); - $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; - $template_parameters->{time_zone} = $config->{date}->{time_zone}; - $template_parameters->{utc_offset} = $time_diff; + my $time_diff = time::utc_offset( $config->{date}->{time_zone} ); + $time_diff =~ s/(\d\d)(\d\d)/$1\:$2/g; + $template_parameters->{time_zone} = $config->{date}->{time_zone}; + $template_parameters->{utc_offset} = $time_diff; - if ( $params->{template} =~ /\.atom\.xml/ ) { - $template_parameters->{modified_at} =~ s/ /T/gi; - $template_parameters->{modified_at} .= $time_diff; - } elsif ( $params->{template} =~ /\.rss\.xml/ ) { - $template_parameters->{modified_at} = - time::datetime_to_rfc822( $template_parameters->{modified_at} ); - } elsif ( $params->{template} =~ /\.txt/ ) { - $template_parameters->{modified_at_utc} = - time::datetime_to_utc( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); - } + if ( $params->{template} =~ /\.atom\.xml/ ) { + $template_parameters->{modified_at} =~ s/ /T/gi; + $template_parameters->{modified_at} .= $time_diff; + } elsif ( $params->{template} =~ /\.rss\.xml/ ) { + $template_parameters->{modified_at} = + time::datetime_to_rfc822( $template_parameters->{modified_at} ); + } elsif ( $params->{template} =~ /\.txt/ ) { + $template_parameters->{modified_at_utc} = + time::datetime_to_utc( $template_parameters->{modified_at}, $config->{date}->{time_zone} ); + } - my $project = $params->{default_project}; - foreach my $key ( keys %$project ) { - $template_parameters->{ 'project_' . $key } = $project->{$key}; - } - $template_parameters->{ 'project_' . $project->{name} } = 1 - if ( $project->{name} ne '' ); + my $project = $params->{default_project}; + foreach my $key ( keys %$project ) { + $template_parameters->{ 'project_' . $key } = $project->{$key}; + } + $template_parameters->{ 'project_' . $project->{name} } = 1 + if ( $project->{name} ne '' ); - $template_parameters->{controllers} = $config->{controllers}; - $template_parameters->{hide_event_images} = 1 - if ( defined $config->{permissions}->{hide_event_images} ) && ( $config->{permissions}->{hide_event_images} == 1 ); + $template_parameters->{controllers} = $config->{controllers}; + $template_parameters->{hide_event_images} = 1 + if ( defined $config->{permissions}->{hide_event_images} ) && ( $config->{permissions}->{hide_event_images} == 1 ); - # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; - template::process( $_[0], $params->{template}, $template_parameters ); + # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; + template::process( $_[0], $params->{template}, $template_parameters ); - return $_[0]; + return $_[0]; } sub get_running_event_id { - my $dbh = shift; + my $dbh = shift; - my $query = qq{ + my $query = qq{ select id event_id, start, title from calcms_events where @@ -1254,106 +1251,106 @@ sub get_running_event_id { limit 1 }; - my $running_events = db::get( $dbh, $query ); - my @running_events = @$running_events; + my $running_events = db::get( $dbh, $query ); + my @running_events = @$running_events; - return $running_events->[0]->{event_id} if ( scalar @running_events > 0 ); - return 0; + return $running_events->[0]->{event_id} if ( scalar @running_events > 0 ); + return 0; } # add filters to query sub setDefaultEventConditions { - my $config = shift; - my $conditions = $_[0]; - my $bind_values = $_[1]; - my $options = $_[2]; - $options = {} unless defined $options; + my $config = shift; + my $conditions = $_[0]; + my $bind_values = $_[1]; + my $options = $_[2]; + $options = {} unless defined $options; - # exclude projects - if ( ( defined $options->{exclude_projects} ) - && ( $options->{exclude_projects} == 1 ) - && ( defined $config->{filter} ) - && ( defined $config->{filter}->{projects_to_exclude} ) ) - { - my @projects_to_exclude = - split( /,/, $config->{filter}->{projects_to_exclude} ); - push @$conditions, 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; - for my $project (@projects_to_exclude) { - push @$bind_values, $project; - } - } + # exclude projects + if ( ( defined $options->{exclude_projects} ) + && ( $options->{exclude_projects} == 1 ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{projects_to_exclude} ) ) + { + my @projects_to_exclude = + split( /,/, $config->{filter}->{projects_to_exclude} ); + push @$conditions, 'project not in (' . join( ",", map { '?' } @projects_to_exclude ) . ')'; + for my $project (@projects_to_exclude) { + push @$bind_values, $project; + } + } - # exclude locations - if ( ( defined $options->{exclude_locations} ) - && ( $options->{exclude_locations} == 1 ) - && ( defined $config->{filter} ) - && ( defined $config->{filter}->{locations_to_exclude} ) ) - { - my @locations_to_exclude = - split( /,/, $config->{filter}->{locations_to_exclude} ); - push @$conditions, 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; - for my $location (@locations_to_exclude) { - push @$bind_values, $location; - } - } + # exclude locations + if ( ( defined $options->{exclude_locations} ) + && ( $options->{exclude_locations} == 1 ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) + { + my @locations_to_exclude = + split( /,/, $config->{filter}->{locations_to_exclude} ); + push @$conditions, 'location not in (' . join( ",", map { '?' } @locations_to_exclude ) . ')'; + for my $location (@locations_to_exclude) { + push @$bind_values, $location; + } + } } # for local use only or add support for exclude_projects and exclude_locations sub getEventById { - my $dbh = shift; - my $config = shift; - my $event_id = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $event_id = shift; + my $options = shift; - $dbh = db::connect($config) unless defined $dbh; + $dbh = db::connect($config) unless defined $dbh; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "id=?"; - push @$bind_values, $event_id; + push @$conditions, "id=?"; + push @$bind_values, $event_id; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select * from calcms_events where $conditions }; - my $events = db::get( $dbh, $query, $bind_values ); - return $events; + my $events = db::get( $dbh, $query, $bind_values ); + return $events; } sub get_next_event_of_series { - my $dbh = shift; - my $config = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $options = shift; - my $eventId = $options->{event_id}; - return undef unless defined $eventId; + my $eventId = $options->{event_id}; + return undef unless defined $eventId; - $dbh = db::connect($config) unless defined $dbh; + $dbh = db::connect($config) unless defined $dbh; - my $events = getEventById( $dbh, $config, $eventId, $options ); - return undef unless scalar(@$events) == 1; - my $event = $events->[0]; + my $events = getEventById( $dbh, $config, $eventId, $options ); + return undef unless scalar(@$events) == 1; + my $event = $events->[0]; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "start>?"; - push @$bind_values, $event->{start}; + push @$conditions, "start>?"; + push @$bind_values, $event->{start}; - push @$conditions, "series_name=?"; - push @$bind_values, $event->{series_name}; + push @$conditions, "series_name=?"; + push @$bind_values, $event->{series_name}; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select id from calcms_events where $conditions @@ -1361,509 +1358,509 @@ sub get_next_event_of_series { limit 1 }; - $events = db::get( $dbh, $query, $bind_values ); - return undef unless @$events == 1; + $events = db::get( $dbh, $query, $bind_values ); + return undef unless scalar @$events == 1; - return $events->[0]->{id}; + return $events->[0]->{id}; } sub get_previous_event_of_series { - my $dbh = shift; - my $config = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $options = shift; - my $eventId = $options->{event_id}; - return undef unless defined $eventId; + my $eventId = $options->{event_id}; + return undef unless defined $eventId; - $dbh = db::connect($config) unless defined $dbh; - my $events = getEventById( $dbh, $config, $eventId, $options ); - return undef unless scalar(@$events) == 1; - my $event = $events->[0]; + $dbh = db::connect($config) unless defined $dbh; + my $events = getEventById( $dbh, $config, $eventId, $options ); + return undef unless scalar(@$events) == 1; + my $event = $events->[0]; - my $conditions = []; - my $bind_values = []; + my $conditions = []; + my $bind_values = []; - push @$conditions, "start{start}; + push @$conditions, "start{start}; - push @$conditions, "series_name=?"; - push @$bind_values, $event->{series_name}; + push @$conditions, "series_name=?"; + push @$bind_values, $event->{series_name}; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $query = qq{ select id from calcms_events where $conditions order by start desc limit 1 }; - $events = db::get( $dbh, $query, $bind_values ); + $events = db::get( $dbh, $query, $bind_values ); - return undef unless scalar(@$events) == 1; - return $events->[0]->{id}; + return undef unless scalar(@$events) == 1; + return $events->[0]->{id}; } # used by calendar sub get_by_date_range { - my $dbh = shift; - my $config = shift; - my $start_date = shift; - my $end_date = shift; - my $options = shift; + my $dbh = shift; + my $config = shift; + my $start_date = shift; + my $end_date = shift; + my $options = shift; - my $day_starting_hour = $config->{date}->{day_starting_hour}; + my $day_starting_hour = $config->{date}->{day_starting_hour}; - my $start = time::datetime_cond( $start_date . 'T00:00:00' ); - $start = time::add_hours_to_datetime( $start, $day_starting_hour ); + my $start = time::datetime_cond( $start_date . 'T00:00:00' ); + $start = time::add_hours_to_datetime( $start, $day_starting_hour ); - my $end = time::datetime_cond( $end_date . 'T00:00:00' ); - $end = time::add_hours_to_datetime( $end, $day_starting_hour ); + my $end = time::datetime_cond( $end_date . 'T00:00:00' ); + $end = time::add_hours_to_datetime( $end, $day_starting_hour ); - my $conditions = []; - push @$conditions, 'start between ? and ?'; - my $bind_values = [ $start, $end ]; + my $conditions = []; + push @$conditions, 'start between ? and ?'; + my $bind_values = [ $start, $end ]; - setDefaultEventConditions( $config, $conditions, $bind_values, $options ); + setDefaultEventConditions( $config, $conditions, $bind_values, $options ); - $conditions = join( ' and ', @$conditions ); + $conditions = join( ' and ', @$conditions ); - my $select = qq{distinct date(start) 'start_date'}; - $select = qq{distinct date(DATE_SUB(start, INTERVAL $day_starting_hour HOUR)) 'start_date'} if defined $day_starting_hour; + my $select = qq{distinct date(start) 'start_date'}; + $select = qq{distinct date(DATE_SUB(start, INTERVAL $day_starting_hour HOUR)) 'start_date'} if defined $day_starting_hour; - my $query = qq{ + my $query = qq{ select $select from calcms_events where $conditions }; - #print STDERR Dumper($query); + #print STDERR Dumper($query); - my $events = db::get( $dbh, $query, $bind_values ); + my $events = db::get( $dbh, $query, $bind_values ); - return $events; + return $events; } sub get_by_image { - my $dbh = shift; - my $config = shift; - my $filename = shift; + my $dbh = shift; + my $config = shift; + my $filename = shift; - #$filename=$dbh->quote('%'.$filename.'%'); + #$filename=$dbh->quote('%'.$filename.'%'); - #$filename='%'.$filename.'%'; - my $query = qq{ + #$filename='%'.$filename.'%'; + my $query = qq{ select * from calcms_events where content like ? order by start desc limit 1 }; - my $bind_values = [ '%' . $filename . '%' ]; + my $bind_values = [ '%' . $filename . '%' ]; - my $events = db::get( $dbh, $query, $bind_values ); + my $events = db::get( $dbh, $query, $bind_values ); - # print STDERR Dumper($events); - return undef if ( @$events == 0 ); - return $events->[0]; + # print STDERR Dumper($events); + return undef if scalar @$events == 0; + return $events->[0]; } sub delete { - return; - my $request = shift; - my $config = shift; - my $event_id = shift; + return; + my $request = shift; + my $config = shift; + my $event_id = shift; - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; + my $params = $request->{params}->{checked}; + my $debug = $config->{system}->{debug}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = 'delete from calcms_events where id=?'; - db::put( $dbh, $query, [$event_id] ); + my $query = 'delete from calcms_events where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_categories where id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_categories where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_tags where id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_tags where id=?'; + db::put( $dbh, $query, [$event_id] ); - $query = 'delete from calcms_series_events where event_id=?'; - db::put( $dbh, $query, [$event_id] ); + $query = 'delete from calcms_series_events where event_id=?'; + db::put( $dbh, $query, [$event_id] ); } #TODO: add location to cache map sub configure_cache { - my $config = shift; - my $debug = $config->{system}->{debug}; + my $config = shift; + my $debug = $config->{system}->{debug}; - my $date_pattern = $cache::date_pattern; - my $controllers = $config->{controllers}; + my $date_pattern = $cache::date_pattern; + my $controllers = $config->{controllers}; - cache::init(); - cache::add_map( '', 'index.html' ); + cache::init(); + cache::add_map( '', 'index.html' ); - my $name = ''; - my $extension = ''; - my $templates = $config->{templates}->{events}; + my $name = ''; + my $extension = ''; + my $templates = $config->{templates}->{events}; - for my $template (@$templates) { - if ( $template =~ /^(.+)\.([^\.]+)$/ ) { - $name = $1; - $extension = $2; - } - cache::add_map( 'template=' . $template, $controllers->{events} . '/' . $name . '.' . $extension ); - cache::add_map( 'template=' . $template . '&date=today', $controllers->{events} . '/' . $template . '_today.' . $extension ); - cache::add_map( 'template=' . $template . '&date=' . $date_pattern, - $controllers->{events} . '/' . $name . '_date_$1-$2-$3.' . $extension ); - cache::add_map( 'template=' . $template . '&time=now', $controllers->{events} . '/' . $template . '_now.html' ); - cache::add_map( 'template=' . $template . '&time=now&limit=(\d+)', - $controllers->{events} . '/' . $name . '_now_limit_$1.' . $extension ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern, - $controllers->{events} . '/' . $name . '_from_$1-$2-$3_till_$4_$5_$6.' . $extension - ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&weekday=(\d)', - $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_weekday_$7.' . $extension - ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&limit=(\d)', - $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_limit_$7.' . $extension - ); - cache::add_map( 'template=' . $template . '&weekday=(\d)', $controllers->{events} . '/' . $name . '_weekday_$1.' . $extension ); - cache::add_map( 'template=' . $template . '&event_id=(\d+)', $controllers->{event} . '/' . $name . '_page_$1.' . $extension ); - } + for my $template (@$templates) { + if ( $template =~ /^(.+)\.([^\.]+)$/ ) { + $name = $1; + $extension = $2; + } + cache::add_map( 'template=' . $template, $controllers->{events} . '/' . $name . '.' . $extension ); + cache::add_map( 'template=' . $template . '&date=today', $controllers->{events} . '/' . $template . '_today.' . $extension ); + cache::add_map( 'template=' . $template . '&date=' . $date_pattern, + $controllers->{events} . '/' . $name . '_date_$1-$2-$3.' . $extension ); + cache::add_map( 'template=' . $template . '&time=now', $controllers->{events} . '/' . $template . '_now.html' ); + cache::add_map( 'template=' . $template . '&time=now&limit=(\d+)', + $controllers->{events} . '/' . $name . '_now_limit_$1.' . $extension ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern, + $controllers->{events} . '/' . $name . '_from_$1-$2-$3_till_$4_$5_$6.' . $extension + ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&weekday=(\d)', + $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_weekday_$7.' . $extension + ); + cache::add_map( + 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&limit=(\d)', + $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_limit_$7.' . $extension + ); + cache::add_map( 'template=' . $template . '&weekday=(\d)', $controllers->{events} . '/' . $name . '_weekday_$1.' . $extension ); + cache::add_map( 'template=' . $template . '&event_id=(\d+)', $controllers->{event} . '/' . $name . '_page_$1.' . $extension ); + } } sub get_duration { - my $config = shift; - my $event = shift; - my $timezone = $config->{date}->{time_zone}; - my $start = time::get_datetime( $event->{start}, $timezone ); - my $end = time::get_datetime( $event->{end}, $timezone ); + my $config = shift; + my $event = shift; + my $timezone = $config->{date}->{time_zone}; + my $start = time::get_datetime( $event->{start}, $timezone ); + my $end = time::get_datetime( $event->{end}, $timezone ); - #my $seconds = $end->subtract($start)->in_units("minutes"); - #return $seconds; - return undef unless defined $start; - return undef unless defined $end; - my $duration = $end->epoch() - $start->epoch(); + #my $seconds = $end->subtract($start)->in_units("minutes"); + #return $seconds; + return undef unless defined $start; + return undef unless defined $end; + my $duration = $end->epoch() - $start->epoch(); - #print STDERR "duration=$duration, end=".$end->datetime()." start=".$start->datetime()."\n"; - return $duration / 60; + #print STDERR "duration=$duration, end=".$end->datetime()." start=".$start->datetime()."\n"; + return $duration / 60; } sub check_params { - my $config = shift; - my $params = shift; + my $config = shift; + my $params = shift; - #define running at - my $running_at = $params->{running_at} || ''; - if ( ( defined $running_at ) && ( $running_at ne '' ) ) { - my $run_date = time::check_date($running_at); - my $run_time = time::check_time($running_at); - if ( ( $run_date ne '' ) && ( $run_time ne '' ) ) { - $params->{till_date} = $run_date; - $params->{till_time} = $run_time; - $params->{order} = 'asc'; - $params->{limit} = 1; - $params->{archive} = 'all'; - } - } + #define running at + my $running_at = $params->{running_at} || ''; + if ( ( defined $running_at ) && ( $running_at ne '' ) ) { + my $run_date = time::check_date($running_at); + my $run_time = time::check_time($running_at); + if ( ( $run_date ne '' ) && ( $run_time ne '' ) ) { + $params->{till_date} = $run_date; + $params->{till_time} = $run_time; + $params->{order} = 'asc'; + $params->{limit} = 1; + $params->{archive} = 'all'; + } + } - #set time - my $time = time::check_time( $params->{time} ); - my $from_time = time::check_time( $params->{from_time} ); - my $till_time = time::check_time( $params->{till_time} ); + #set time + my $time = time::check_time( $params->{time} ); + my $from_time = time::check_time( $params->{from_time} ); + my $till_time = time::check_time( $params->{till_time} ); - #set date - my $date = ''; - my $from_date = time::check_date( $params->{from_date} ); - my $till_date = time::check_date( $params->{till_date} ); - if ( ( $from_date eq '' ) && ( $till_date eq '' ) ) { - $date = time::check_date( $params->{date} ); - } + #set date + my $date = ''; + my $from_date = time::check_date( $params->{from_date} ); + my $till_date = time::check_date( $params->{till_date} ); + if ( ( $from_date eq '' ) && ( $till_date eq '' ) ) { + $date = time::check_date( $params->{date} ); + } - #set date interval (including) - my $date_range_include = 0; - $date_range_include = 1 - if ( defined $params->{date_range_include} ) - && ( $params->{date_range_include} eq '1' ); + #set date interval (including) + my $date_range_include = 0; + $date_range_include = 1 + if ( defined $params->{date_range_include} ) + && ( $params->{date_range_include} eq '1' ); - my $order = ''; - if ( defined $params->{order} ) { - $order = 'desc' if ( $params->{order} eq 'desc' ); - $order = 'asc' if ( $params->{order} eq 'asc' ); - } + my $order = ''; + if ( defined $params->{order} ) { + $order = 'desc' if ( $params->{order} eq 'desc' ); + $order = 'asc' if ( $params->{order} eq 'asc' ); + } - my $weekday = $params->{weekday} || ''; + my $weekday = $params->{weekday} || ''; - if ( ( defined $weekday ) && ( $weekday ne '' ) ) { - if ( $weekday =~ /\d/ ) { - $weekday = int($weekday); - log::error( $config, 'invalid weekday' ) - if ( $weekday < 1 || $weekday > 7 ); - } else { - log::error( $config, 'invalid weekday' ); - } - } + if ( ( defined $weekday ) && ( $weekday ne '' ) ) { + if ( $weekday =~ /\d/ ) { + $weekday = int($weekday); + log::error( $config, 'invalid weekday' ) + if ( $weekday < 1 || $weekday > 7 ); + } else { + log::error( $config, 'invalid weekday' ); + } + } - my $time_of_day = $params->{time_of_day} || ''; - my $found = 0; - if ( defined $time_of_day ) { - for my $key ( 'night', 'morning', 'noon', 'afternoon', 'evening' ) { - $found = 1 if ( $key eq $time_of_day ); - } - log::error( $config, 'invalid time_of_day' ) - if ( ( $time_of_day ne '' ) && ( $found == 0 ) ); - } + my $time_of_day = $params->{time_of_day} || ''; + my $found = 0; + if ( defined $time_of_day ) { + for my $key ( 'night', 'morning', 'noon', 'afternoon', 'evening' ) { + $found = 1 if ( $key eq $time_of_day ); + } + log::error( $config, 'invalid time_of_day' ) + if ( $time_of_day ne '' ) && ( $found == 0 ); + } - my $tag = $params->{tag} || ''; - if ( ( defined $tag ) && ( $tag ne '' ) ) { - log::error( $config, "invalid tag" ) if ( $tag =~ /\s/ ); - log::error( $config, "invalid tag" ) if ( $tag =~ /\;/ ); - $tag =~ s/\'//gi; - } + my $tag = $params->{tag} || ''; + if ( ( defined $tag ) && ( $tag ne '' ) ) { + log::error( $config, "invalid tag" ) if ( $tag =~ /\s/ ); + log::error( $config, "invalid tag" ) if ( $tag =~ /\;/ ); + $tag =~ s/\'//gi; + } - my $category = $params->{category} || ''; - if ( ( defined $category ) && ( $category ne '' ) ) { - log::error( $config, "invalid category" ) if ( $category =~ /\;/ ); - $category =~ s/^\s+//gi; - $category =~ s/\s+$//gi; - $category =~ s/\'//gi; - } + my $category = $params->{category} || ''; + if ( ( defined $category ) && ( $category ne '' ) ) { + log::error( $config, "invalid category" ) if ( $category =~ /\;/ ); + $category =~ s/^\s+//gi; + $category =~ s/\s+$//gi; + $category =~ s/\'//gi; + } - my $series_name = $params->{series_name} || ''; - if ( ( defined $series_name ) && ( $series_name ne '' ) ) { - log::error( $config, "invalid series_name" ) - if ( $series_name =~ /\;/ ); - $series_name =~ s/^\s+//gi; - $series_name =~ s/\s+$//gi; - $series_name =~ s/\'//gi; - } + my $series_name = $params->{series_name} || ''; + if ( ( defined $series_name ) && ( $series_name ne '' ) ) { + log::error( $config, "invalid series_name" ) + if ( $series_name =~ /\;/ ); + $series_name =~ s/^\s+//gi; + $series_name =~ s/\s+$//gi; + $series_name =~ s/\'//gi; + } - my $title = $params->{title} || ''; - if ( ( defined $title ) && ( $title ne '' ) ) { - log::error( $config, "invalid title" ) if ( $title =~ /\;/ ); - $title =~ s/^\s+//gi; - $title =~ s/\s+$//gi; - $title =~ s/\'//gi; - } + my $title = $params->{title} || ''; + if ( ( defined $title ) && ( $title ne '' ) ) { + log::error( $config, "invalid title" ) if ( $title =~ /\;/ ); + $title =~ s/^\s+//gi; + $title =~ s/\s+$//gi; + $title =~ s/\'//gi; + } - my $location = $params->{location} || ''; - if ( ( defined $location ) && ( $location ne '' ) ) { - log::error( $config, "invalid location" ) if ( $location =~ /\;/ ); - $location =~ s/^\s+//gi; - $location =~ s/\s+$//gi; - $location =~ s/\'//gi; - } + my $location = $params->{location} || ''; + if ( ( defined $location ) && ( $location ne '' ) ) { + log::error( $config, "invalid location" ) if ( $location =~ /\;/ ); + $location =~ s/^\s+//gi; + $location =~ s/\s+$//gi; + $location =~ s/\'//gi; + } - #if no location is set, use exclude location filter from default config - my $locations_to_exclude = ''; - if ( ( $location eq '' ) - && ( defined $config->{filter} ) - && ( defined $config->{filter}->{locations_to_exclude} ) ) - { - $locations_to_exclude = $config->{filter}->{locations_to_exclude} || ''; - $locations_to_exclude =~ s/\s+/ /g; - } + #if no location is set, use exclude location filter from default config + my $locations_to_exclude = ''; + if ( ( $location eq '' ) + && ( defined $config->{filter} ) + && ( defined $config->{filter}->{locations_to_exclude} ) ) + { + $locations_to_exclude = $config->{filter}->{locations_to_exclude} || ''; + $locations_to_exclude =~ s/\s+/ /g; + } - my $projects_to_exclude = ''; - if ( ( defined $config->{filter} ) - && ( defined $config->{filter}->{projects_to_exclude} ) ) - { - $projects_to_exclude = $config->{filter}->{projects_to_exclude} || ''; - $projects_to_exclude =~ s/\s+/ /g; - } + my $projects_to_exclude = ''; + if ( ( defined $config->{filter} ) + && ( defined $config->{filter}->{projects_to_exclude} ) ) + { + $projects_to_exclude = $config->{filter}->{projects_to_exclude} || ''; + $projects_to_exclude =~ s/\s+/ /g; + } - #enable exclude locations filter - my $exclude_locations = 0; - $exclude_locations = 1 if ( defined $params->{exclude_locations} ) && ( $params->{exclude_locations} eq '1' ); + #enable exclude locations filter + my $exclude_locations = 0; + $exclude_locations = 1 if ( defined $params->{exclude_locations} ) && ( $params->{exclude_locations} eq '1' ); - my $exclude_projects = 0; - $exclude_projects = 1 if ( defined $params->{exclude_projects} ) && ( $params->{exclude_projects} eq '1' ); + my $exclude_projects = 0; + $exclude_projects = 1 if ( defined $params->{exclude_projects} ) && ( $params->{exclude_projects} eq '1' ); - my $exclude_event_images = 0; - $exclude_event_images = 1 if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ); + my $exclude_event_images = 0; + $exclude_event_images = 1 if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ); - #show future events by default - my $archive = 'future'; - if ( defined $params->{archive} ) { - $archive = 'all' if ( $params->{archive} eq 'all' ); - $archive = 'past' if ( $params->{archive} eq 'gone' ); - $archive = 'future' if ( $params->{archive} eq 'coming' ); - } + #show future events by default + my $archive = 'future'; + if ( defined $params->{archive} ) { + $archive = 'all' if ( $params->{archive} eq 'all' ); + $archive = 'past' if ( $params->{archive} eq 'gone' ); + $archive = 'future' if ( $params->{archive} eq 'coming' ); + } - my $disable_event_sync = ''; - if ( ( defined $params->{disable_event_sync} ) - && ( $params->{disable_event_sync} =~ /([01])/ ) ) - { - $disable_event_sync = $1; - } + my $disable_event_sync = ''; + if ( ( defined $params->{disable_event_sync} ) + && ( $params->{disable_event_sync} =~ /([01])/ ) ) + { + $disable_event_sync = $1; + } - #show all on defined timespans - if ( ( $from_date ne '' ) && ( $till_date ne '' ) ) { - $archive = 'all'; - } + #show all on defined timespans + if ( ( $from_date ne '' ) && ( $till_date ne '' ) ) { + $archive = 'all'; + } - my $event_id = $params->{event_id} || ''; - if ( ( defined $event_id ) && ( $event_id ne '' ) ) { - if ( $event_id =~ /(\d+)/ ) { - $event_id = $1; - } else { - log::error( $config, "invalid event_id" ); - } - } + my $event_id = $params->{event_id} || ''; + if ( ( defined $event_id ) && ( $event_id ne '' ) ) { + if ( $event_id =~ /(\d+)/ ) { + $event_id = $1; + } else { + log::error( $config, "invalid event_id" ); + } + } - my $get = 'all'; - $get = 'no_content' - if ( ( defined $params->{get} ) && ( $params->{get} eq 'no_content' ) ); + my $get = 'all'; + $get = 'no_content' + if ( defined $params->{get} ) && ( $params->{get} eq 'no_content' ); - my $search = $params->{search} || ''; - if ( ( defined $search ) && ( $search ne '' ) ) { - $search = substr( $search, 0, 100 ); - $search =~ s/^\s+//gi; - $search =~ s/\s+$//gi; - } + my $search = $params->{search} || ''; + if ( ( defined $search ) && ( $search ne '' ) ) { + $search = substr( $search, 0, 100 ); + $search =~ s/^\s+//gi; + $search =~ s/\s+$//gi; + } - #print STDERR $params->{template}."\n"; - my $template = '.html'; - if ( ( defined $params->{template} ) && ( $params->{template} eq 'no' ) ) { - $template = 'no'; - } else { - $template = template::check( $params->{template}, 'event_list.html' ); - } + #print STDERR $params->{template}."\n"; + my $template = '.html'; + if ( ( defined $params->{template} ) && ( $params->{template} eq 'no' ) ) { + $template = 'no'; + } else { + $template = template::check( $params->{template}, 'event_list.html' ); + } - my $limit_config = $config->{permissions}->{result_limit} || 100; - my $limit = $params->{limit} || $limit_config; - log::error( $config, 'invalid limit!' ) if ( $limit =~ /\D/ ); - $limit = $limit_config if ( $limit_config < $limit ); + my $limit_config = $config->{permissions}->{result_limit} || 100; + my $limit = $params->{limit} || $limit_config; + log::error( $config, 'invalid limit!' ) if ( $limit =~ /\D/ ); + $limit = $limit_config if ( $limit_config < $limit ); - #read project from configuration file - my $project_name = $config->{project} || ''; - log::error( $config, 'no default project configured' ) - if ( $project_name eq '' ); + #read project from configuration file + my $project_name = $config->{project} || ''; + log::error( $config, 'no default project configured' ) + if ( $project_name eq '' ); - #get default project - my $default_project = undef; - my $projects = project::get( $config, { name => $project_name } ); - log::error( $config, "no configuration found for project '$project_name'" ) - unless ( scalar(@$projects) == 1 ); - $default_project = $projects->[0]; + #get default project + my $default_project = undef; + my $projects = project::get( $config, { name => $project_name } ); + log::error( $config, "no configuration found for project '$project_name'" ) + unless ( scalar(@$projects) == 1 ); + $default_project = $projects->[0]; - # get project from parameter (by name) - my $project = ''; - if ( ( defined $params->{project} ) - && ( $params->{project} =~ /\w+/ ) - && ( $params->{project} ne 'all' ) ) - { - my $project_name = $params->{project}; - my $projects = project::get( $config, { name => $project_name } ); - log::error( $config, 'invalid project ' . $project_name ) - unless scalar(@$projects) == 1; - $project = $projects->[0]; - } + # get project from parameter (by name) + my $project = ''; + if ( ( defined $params->{project} ) + && ( $params->{project} =~ /\w+/ ) + && ( $params->{project} ne 'all' ) ) + { + my $project_name = $params->{project}; + my $projects = project::get( $config, { name => $project_name } ); + log::error( $config, 'invalid project ' . $project_name ) + unless scalar(@$projects) == 1; + $project = $projects->[0]; + } - $project_name = $params->{project_name} || ''; - my $studio_name = $params->{studio_name} || ''; + $project_name = $params->{project_name} || ''; + my $studio_name = $params->{studio_name} || ''; - my $project_id = $params->{project_id} || ''; - my $studio_id = $params->{studio_id} || ''; + my $project_id = $params->{project_id} || ''; + my $studio_id = $params->{studio_id} || ''; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } - my $json_callback = $params->{json_callback} || ''; - if ( $json_callback ne '' ) { - $json_callback =~ s/[^a-zA-Z0-9\_]//g; - } + my $json_callback = $params->{json_callback} || ''; + if ( $json_callback ne '' ) { + $json_callback =~ s/[^a-zA-Z0-9\_]//g; + } - # use relative links - my $extern = 0; - $extern = 1 if ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); + # use relative links + my $extern = 0; + $extern = 1 if ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); - my $recordings = 0; - $recordings = 1 if ( defined $params->{recordings} ) && ( $params->{recordings} eq '1' ); + my $recordings = 0; + $recordings = 1 if ( defined $params->{recordings} ) && ( $params->{recordings} eq '1' ); - my $checked = { - date => $date, - time => $time, - time_of_day => $time_of_day, - from_date => $from_date, - till_date => $till_date, - date_range_include => $date_range_include, - from_time => $from_time, - till_time => $till_time, - weekday => $weekday, - limit => $limit, - template => $template, - location => $location, - category => $category, - series_name => $series_name, - tag => $tag, - title => $title, - event_id => $event_id, - search => $search, - debug => $debug, - archive => $archive, - order => $order, - project => $project, - default_project => $default_project, - project_name => $project_name, - project_id => $project_id, - studio_name => $studio_name, - studio_id => $studio_id, - json_callback => $json_callback, - get => $get, - locations_to_exclude => $locations_to_exclude, - projects_to_exclude => $projects_to_exclude, - exclude_locations => $exclude_locations, - exclude_projects => $exclude_projects, - exclude_event_images => $exclude_event_images, - disable_event_sync => $disable_event_sync, - extern => $extern, - recordings => $recordings, - }; + my $checked = { + date => $date, + time => $time, + time_of_day => $time_of_day, + from_date => $from_date, + till_date => $till_date, + date_range_include => $date_range_include, + from_time => $from_time, + till_time => $till_time, + weekday => $weekday, + limit => $limit, + template => $template, + location => $location, + category => $category, + series_name => $series_name, + tag => $tag, + title => $title, + event_id => $event_id, + search => $search, + debug => $debug, + archive => $archive, + order => $order, + project => $project, + default_project => $default_project, + project_name => $project_name, + project_id => $project_id, + studio_name => $studio_name, + studio_id => $studio_id, + json_callback => $json_callback, + get => $get, + locations_to_exclude => $locations_to_exclude, + projects_to_exclude => $projects_to_exclude, + exclude_locations => $exclude_locations, + exclude_projects => $exclude_projects, + exclude_event_images => $exclude_event_images, + disable_event_sync => $disable_event_sync, + extern => $extern, + recordings => $recordings, + }; - #print STDERR Dumper($checked); - return $checked; + #print STDERR Dumper($checked); + return $checked; } sub get_keys { - my $event = shift; + my $event = shift; - my $program = $event->{program} || ''; - my $series_name = $event->{series_name} || ''; - my $title = $event->{title} || ''; - my $user_title = $event->{user_title} || ''; - my $episode = $event->{episode} || ''; - my $recurrence_count_alpha = $event->{recurrence_count_alpha} || ''; + my $program = $event->{program} || ''; + my $series_name = $event->{series_name} || ''; + my $title = $event->{title} || ''; + my $user_title = $event->{user_title} || ''; + my $episode = $event->{episode} || ''; + my $recurrence_count_alpha = $event->{recurrence_count_alpha} || ''; - my $skey = ''; - $skey .= $series_name if $series_name ne ''; - $skey .= ' - ' - if ( $series_name ne '' ) - && ( ( $title ne '' ) || ( $user_title ne '' ) ); + my $skey = ''; + $skey .= $series_name if $series_name ne ''; + $skey .= ' - ' + if ( $series_name ne '' ) + && ( ( $title ne '' ) || ( $user_title ne '' ) ); - my $tkey = ''; - $tkey = $title if $title ne ''; - $tkey .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); - $tkey .= $user_title if $user_title ne ''; - $tkey .= ' #' . $episode if $episode ne ''; - $tkey .= $recurrence_count_alpha if $recurrence_count_alpha ne ''; + my $tkey = ''; + $tkey = $title if $title ne ''; + $tkey .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); + $tkey .= $user_title if $user_title ne ''; + $tkey .= ' #' . $episode if $episode ne ''; + $tkey .= $recurrence_count_alpha if $recurrence_count_alpha ne ''; - my $pkey = ''; - $pkey = ' (' . $program . ')' if $program ne ''; + my $pkey = ''; + $pkey = ' (' . $program . ')' if $program ne ''; - return { - key => $skey . $tkey . $pkey, - full_title => $skey . $tkey . $pkey, - full_title_no_series => $tkey . $pkey, - full_title_no_program => $skey . $tkey, - full_title_no_program_no_series => $tkey - }; + return { + key => $skey . $tkey . $pkey, + full_title => $skey . $tkey . $pkey, + full_title_no_series => $tkey . $pkey, + full_title_no_program => $skey . $tkey, + full_title_no_program_no_series => $tkey + }; } #do not delete last line! diff --git a/lib/calcms/mail.pm b/lib/calcms/mail.pm index e945285..d89e278 100644 --- a/lib/calcms/mail.pm +++ b/lib/calcms/mail.pm @@ -14,11 +14,7 @@ sub send { 'Data' => $mail->{'Data'}, ); - #print '
      ';
       	$msg->print( \*STDERR );
      -
      -	#print '
      '; - $msg->send; } diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index bdc53ba..d08dc5a 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -145,9 +145,6 @@ sub sync { my $studio_id = $options->{studio_id}; my $updates = $options->{events}; - #print STDERR "sync\n"; - #print STDERR Dumper($updates); - # get new entries by date my $update_by_date = {}; for my $entry (@$updates) { diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index 8ba35c2..4862dbe 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -30,46 +30,46 @@ sub debug; # get project columns sub get_columns { - my $config = shift; + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_projects' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_projects' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } # get projects sub get { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { - push @conditions, 'name=?'; - push @bind_values, $condition->{name}; - } + if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { + push @conditions, 'name=?'; + push @bind_values, $condition->{name}; + } - my $limit = ''; - if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { - $limit = 'limit ' . $condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select * from calcms_projects $conditions @@ -77,423 +77,423 @@ sub get { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); - my $projects = db::get( $dbh, $query, \@bind_values ); - return $projects; + my $projects = db::get( $dbh, $query, \@bind_values ); + return $projects; } # requires at least project_id sub getImageById { - my $config = shift; - my $conditions = shift; + my $config = shift; + my $conditions = shift; - return undef unless defined $conditions->{project_id}; - my $projects = project::get( $config, $conditions ); - return undef if scalar(@$projects) != 1; - return $projects->[0]->{image}; + return undef unless defined $conditions->{project_id}; + my $projects = project::get( $config, $conditions ); + return undef if scalar(@$projects) != 1; + return $projects->[0]->{image}; } sub get_date_range { - my $config = shift; - my $query = qq{ + my $config = shift; + my $query = qq{ select min(start_date) start_date, max(end_date) end_date from calcms_projects }; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $projects = db::get( $dbh, $query ); - return $projects->[0]; + my $projects = db::get( $dbh, $query ); + return $projects->[0]; } # insert project sub insert { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - my $columns = get_columns($config); - my $project = {}; - for my $column ( keys %$columns ) { - $project->{$column} = $entry->{$column} if defined $entry->{$column}; - } + my $columns = get_columns($config); + my $project = {}; + for my $column ( keys %$columns ) { + $project->{$column} = $entry->{$column} if defined $entry->{$column}; + } - $project->{image} = images::normalizeName( $project->{image} ) if defined $project->{image}; + $project->{image} = images::normalizeName( $project->{image} ) if defined $project->{image}; - my $dbh = db::connect($config); - my $id = db::insert( $dbh, 'calcms_projects', $project ); - return $id; + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_projects', $project ); + return $id; } # update project sub update { - my $config = shift; - my $project = shift; + my $config = shift; + my $project = shift; - my $columns = project::get_columns($config); - my $entry = {}; - for my $column ( keys %$columns ) { - $entry->{$column} = $project->{$column} if defined $project->{$column}; - } + my $columns = project::get_columns($config); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $project->{$column} if defined $project->{$column}; + } - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values, $entry->{project_id}; + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{project_id}; - my $query = qq{ + my $query = qq{ update calcms_projects set $values where project_id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $dbh = db::connect($config); - db::put( $dbh, $query, \@bind_values ); + #print STDERR Dumper($query).Dumper(\@bind_values); + my $dbh = db::connect($config); + db::put( $dbh, $query, \@bind_values ); } # delete project sub delete { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - my $dbh = db::connect($config); - db::put( $dbh, 'delete from calcms_projects where project_id=?', [ $entry->{project_id} ] ); + my $dbh = db::connect($config); + db::put( $dbh, 'delete from calcms_projects where project_id=?', [ $entry->{project_id} ] ); } # get studios of a project sub get_studios { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - return undef unless defined $options->{project_id}; - my $project_id = $options->{project_id}; + return undef unless defined $options->{project_id}; + my $project_id = $options->{project_id}; - my $query = qq{ + my $query = qq{ select * from calcms_project_studios where project_id=? }; - my $dbh = db::connect($config); - my $project_studios = db::get( $dbh, $query, [$project_id] ); + my $dbh = db::connect($config); + my $project_studios = db::get( $dbh, $query, [$project_id] ); - return $project_studios; + return $project_studios; } sub get_studio_assignments { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $options->{project_id}; - } + if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $options->{project_id}; + } - if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $options->{studio_id}; - } + if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $options->{studio_id}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select * from calcms_project_studios $conditions }; - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, \@bind_values ); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, \@bind_values ); - return $results; + return $results; } # is studio assigned to project sub is_studio_assigned { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return 0 unless defined $entry->{project_id}; - return 0 unless defined $entry->{studio_id}; + return 0 unless defined $entry->{project_id}; + return 0 unless defined $entry->{studio_id}; - my $project_id = $entry->{project_id}; - my $studio_id = $entry->{studio_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; - my $query = qq{ + my $query = qq{ select * from calcms_project_studios where project_id=? and studio_id=? }; - my $bind_values = [ $project_id, $studio_id ]; + my $bind_values = [ $project_id, $studio_id ]; - my $dbh = db::connect($config); - my $project_studios = db::get( $dbh, $query, $bind_values ); - return 1 if @$project_studios == 1; - return 0; + my $dbh = db::connect($config); + my $project_studios = db::get( $dbh, $query, $bind_values ); + return 1 if scalar @$project_studios == 1; + return 0; } # assign studio to project sub assign_studio { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - my $project_id = $entry->{project_id}; - my $studio_id = $entry->{studio_id}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; - if ( is_studio_assigned($entry) ) { - print STDERR "studio $entry->{studio_id} already assigned to project $entry->{project_id}\n"; - return 1; - } - my $dbh = db::connect($config); - my $id = db::insert( $dbh, 'calcms_project_studios', $entry ); - return $id; + if ( is_studio_assigned($entry) ) { + print STDERR "studio $entry->{studio_id} already assigned to project $entry->{project_id}\n"; + return 1; + } + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_project_studios', $entry ); + return $id; } # unassign studio from project sub unassign_studio { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - my $project_id = $entry->{project_id}; - my $studio_id = $entry->{studio_id}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; - my $sql = 'delete from calcms_project_studios where project_id=? and studio_id=?'; - my $bind_values = [ $project_id, $studio_id ]; - my $dbh = db::connect($config); - return db::put( $dbh, $sql, $bind_values ); + my $sql = 'delete from calcms_project_studios where project_id=? and studio_id=?'; + my $bind_values = [ $project_id, $studio_id ]; + my $dbh = db::connect($config); + return db::put( $dbh, $sql, $bind_values ); } # get series by project and studio sub get_series { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - my $project_id = $options->{project_id}; - my $studio_id = $options->{studio_id}; + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + my $project_id = $options->{project_id}; + my $studio_id = $options->{studio_id}; - my $query = qq{ + my $query = qq{ select * from calcms_project_series where project_id=? and studio_id=? }; - my $bind_values = [ $project_id, $studio_id ]; - my $dbh = db::connect($config); - my $project_series = db::get( $dbh, $query, $bind_values ); + my $bind_values = [ $project_id, $studio_id ]; + my $dbh = db::connect($config); + my $project_series = db::get( $dbh, $query, $bind_values ); - return $project_series; + return $project_series; } sub get_series_assignments { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $options->{project_id}; - } + if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $options->{project_id}; + } - if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $options->{studio_id}; - } + if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $options->{studio_id}; + } - if ( ( defined $options->{series_id} ) && ( $options->{series_id} ne '' ) ) { - push @conditions, 'series_id=?'; - push @bind_values, $options->{series_id}; - } + if ( ( defined $options->{series_id} ) && ( $options->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; + push @bind_values, $options->{series_id}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select * from calcms_project_series $conditions }; - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, \@bind_values ); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, \@bind_values ); - return $results; + return $results; } # is series assigned to project and studio sub is_series_assigned { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return 0 unless defined $entry->{project_id}; - return 0 unless defined $entry->{studio_id}; - return 0 unless defined $entry->{series_id}; + return 0 unless defined $entry->{project_id}; + return 0 unless defined $entry->{studio_id}; + return 0 unless defined $entry->{series_id}; - my $project_id = $entry->{project_id}; - my $studio_id = $entry->{studio_id}; - my $series_id = $entry->{series_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; + my $series_id = $entry->{series_id}; - my $query = qq{ + my $query = qq{ select * from calcms_project_series where project_id=? and studio_id=? and series_id=? }; - my $bind_values = [ $project_id, $studio_id, $series_id ]; + my $bind_values = [ $project_id, $studio_id, $series_id ]; - my $dbh = db::connect($config); - my $project_series = db::get( $dbh, $query, $bind_values ); - return 1 if @$project_series == 1; - return 0; + my $dbh = db::connect($config); + my $project_series = db::get( $dbh, $query, $bind_values ); + return 1 if scalar @$project_series == 1; + return 0; } # assign series to project and studio sub assign_series { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{series_id}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; - my $project_id = $entry->{project_id}; - my $studio_id = $entry->{studio_id}; - my $series_id = $entry->{series_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; + my $series_id = $entry->{series_id}; - if ( is_series_assigned($entry) ) { - print STDERR "series $series_id already assigned to project $project_id and studio $studio_id\n"; - return return undef; - } - my $dbh = db::connect($config); - my $id = db::insert( $dbh, 'calcms_project_series', $entry ); - print STDERR "assigned series $series_id to project $project_id and studio $studio_id\n"; - return $id; + if ( is_series_assigned($entry) ) { + print STDERR "series $series_id already assigned to project $project_id and studio $studio_id\n"; + return return undef; + } + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_project_series', $entry ); + print STDERR "assigned series $series_id to project $project_id and studio $studio_id\n"; + return $id; } # unassign series from project # TODO: remove series _single_ if no event is assigned to sub unassign_series { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{series_id}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; - my $project_id = $entry->{project_id}; - my $studio_id = $entry->{studio_id}; - my $series_id = $entry->{series_id}; + my $project_id = $entry->{project_id}; + my $studio_id = $entry->{studio_id}; + my $series_id = $entry->{series_id}; - my $sql = 'delete from calcms_project_series where project_id=? and studio_id=? and series_id=?'; - my $bind_values = [ $project_id, $studio_id, $series_id ]; - my $dbh = db::connect($config); - return db::put( $dbh, $sql, $bind_values ); + my $sql = 'delete from calcms_project_series where project_id=? and studio_id=? and series_id=?'; + my $bind_values = [ $project_id, $studio_id, $series_id ]; + my $dbh = db::connect($config); + return db::put( $dbh, $sql, $bind_values ); } sub get_with_dates { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - my $language = $config->{date}->{language} || 'en'; - my $projects = project::get( $config, {} ); + my $language = $config->{date}->{language} || 'en'; + my $projects = project::get( $config, {} ); - foreach my $project ( reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects) ) { - $project->{months} = get_months( $config, $project, $language ); - $project->{user} = $ENV{REMOTE_USER}; - $project->{current} = 1 if ( $project->{name} eq $config::config->{project} ); - } + foreach my $project ( reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects) ) { + $project->{months} = get_months( $config, $project, $language ); + $project->{user} = $ENV{REMOTE_USER}; + $project->{current} = 1 if ( $project->{name} eq $config::config->{project} ); + } - return $projects; + return $projects; } #TODO: add config sub get_sorted { - my $config = shift; - my $projects = project::get( $config, {} ); - my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects); + my $config = shift; + my $projects = project::get( $config, {} ); + my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects); - unshift @projects, - { - name => 'all', - title => 'alle', - priority => '0', - start_date => $projects[-1]->{start_date}, - end_date => $projects[0]->{end_date}, - }; - return \@projects; + unshift @projects, + { + name => 'all', + title => 'alle', + priority => '0', + start_date => $projects[-1]->{start_date}, + end_date => $projects[0]->{end_date}, + }; + return \@projects; } # internal sub get_months { - my $config = shift; - my $project = shift; - my $language = shift || $config->{date}->{language} || 'en'; + my $config = shift; + my $project = shift; + my $language = shift || $config->{date}->{language} || 'en'; - my $start = $project->{start_date}; - my $end = $project->{end_date}; + my $start = $project->{start_date}; + my $end = $project->{end_date}; - ( my $start_year, my $start_month, my $start_day ) = split( /\-/, $start ); - my $last_day = Date::Calc::Days_in_Month( $start_year, $start_month ); - $start_day = 1 if ( $start_day < 1 ); - $start_day = $last_day if ( $start_day gt $last_day ); + ( my $start_year, my $start_month, my $start_day ) = split( /\-/, $start ); + my $last_day = Date::Calc::Days_in_Month( $start_year, $start_month ); + $start_day = 1 if ( $start_day < 1 ); + $start_day = $last_day if ( $start_day gt $last_day ); - ( my $end_year, my $end_month, my $end_day ) = split( /\-/, $end ); - $last_day = Date::Calc::Days_in_Month( $end_year, $end_month ); - $end_day = 1 if ( $end_day < 1 ); - $end_day = $last_day if ( $end_day gt $last_day ); + ( my $end_year, my $end_month, my $end_day ) = split( /\-/, $end ); + $last_day = Date::Calc::Days_in_Month( $end_year, $end_month ); + $end_day = 1 if ( $end_day < 1 ); + $end_day = $last_day if ( $end_day gt $last_day ); - my @months = (); - for my $year ( $start_year .. $end_year ) { - my $m1 = 1; - my $m2 = 12; - $m1 = $start_month if $year eq $start_year; - $m2 = $end_month if $year eq $end_year; + my @months = (); + for my $year ( $start_year .. $end_year ) { + my $m1 = 1; + my $m2 = 12; + $m1 = $start_month if $year eq $start_year; + $m2 = $end_month if $year eq $end_year; - for my $month ( $m1 .. $m2 ) { - my $d1 = 1; - my $d2 = Date::Calc::Days_in_Month( $year, $month ); - $d1 = $start_day if $month eq $start_month; - $d2 = $end_day if $month eq $end_month; - push @months, - { - start => time::array_to_date( $year, $month, $d1 ), - end => time::array_to_date( $year, $month, $d2 ), - year => $year, - month => $month, - month_name => $time::names->{$language}->{months_abbr}->[ $month - 1 ], - title => $project->{title}, - user => $ENV{REMOTE_USER} - }; - } - } - @months = reverse @months; - return \@months; + for my $month ( $m1 .. $m2 ) { + my $d1 = 1; + my $d2 = Date::Calc::Days_in_Month( $year, $month ); + $d1 = $start_day if $month eq $start_month; + $d2 = $end_day if $month eq $end_month; + push @months, + { + start => time::array_to_date( $year, $month, $d1 ), + end => time::array_to_date( $year, $month, $d2 ), + year => $year, + month => $month, + month_name => $time::names->{$language}->{months_abbr}->[ $month - 1 ], + title => $project->{title}, + user => $ENV{REMOTE_USER} + }; + } + } + @months = reverse @months; + return \@months; } # check project_id sub check { - my $config = shift; - my $options = shift; - return "missing project_id at checking project" unless defined $options->{project_id}; - return "Please select a project" if ( $options->{project_id} eq '-1' ); - return "Please select a project" if ( $options->{project_id} eq '' ); - my $projects = project::get( $config, { project_id => $options->{project_id} } ); - return "Sorry. unknown project" unless defined $projects; - return 1; + my $config = shift; + my $options = shift; + return "missing project_id at checking project" unless defined $options->{project_id}; + return "Please select a project" if ( $options->{project_id} eq '-1' ); + return "Please select a project" if ( $options->{project_id} eq '' ); + my $projects = project::get( $config, { project_id => $options->{project_id} } ); + return "Sorry. unknown project" unless defined $projects; + return 1; } sub error { - my $msg = shift; - print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/lib/calcms/projects.pm b/lib/calcms/projects.pm deleted file mode 100644 index 4c94729..0000000 --- a/lib/calcms/projects.pm +++ /dev/null @@ -1,9 +0,0 @@ -use warnings "all"; -use strict; - -package projects; - -print STDERR "projects.pm is not used anymore!\n"; - -#do not delete last line! -1; diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 316b81e..06b97f1 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -31,503 +31,503 @@ sub debug; # get series columns sub get_columns { - my $config = shift; + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_series' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_series' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } # get series content sub get { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{series_name} ) && ( $condition->{series_name} ne '' ) ) { - push @conditions, 'series_name=?'; - push @bind_values, $condition->{series_name}; - } + if ( ( defined $condition->{series_name} ) && ( $condition->{series_name} ne '' ) ) { + push @conditions, 'series_name=?'; + push @bind_values, $condition->{series_name}; + } - if ( ( defined $condition->{title} ) && ( $condition->{title} ne '' ) ) { - push @conditions, 'title=?'; - push @bind_values, $condition->{title}; - } + if ( ( defined $condition->{title} ) && ( $condition->{title} ne '' ) ) { + push @conditions, 'title=?'; + push @bind_values, $condition->{title}; + } - if ( ( defined $condition->{has_single_events} ) && ( $condition->{has_single_events} ne '' ) ) { - push @conditions, 'has_single_events=?'; - push @bind_values, $condition->{has_single_events}; - } + if ( ( defined $condition->{has_single_events} ) && ( $condition->{has_single_events} ne '' ) ) { + push @conditions, 'has_single_events=?'; + push @bind_values, $condition->{has_single_events}; + } - my $search_cond = ''; - if ( ( defined $condition->{search} ) && ( $condition->{search} ne '' ) ) { - my $search = lc $condition->{search}; - $search =~ s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; - $search =~ s/\%+/\%/; - $search =~ s/^[\%\s]+//; - $search =~ s/[\%\s]+$//; - if ( $search ne '' ) { - $search = '%' . $search . '%'; - my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content' ); - push @conditions, "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; - for my $attr (@attr) { - push @bind_values, $search; - } - } - } + my $search_cond = ''; + if ( ( defined $condition->{search} ) && ( $condition->{search} ne '' ) ) { + my $search = lc $condition->{search}; + $search =~ s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; + $search =~ s/\%+/\%/; + $search =~ s/^[\%\s]+//; + $search =~ s/[\%\s]+$//; + if ( $search ne '' ) { + $search = '%' . $search . '%'; + my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content' ); + push @conditions, "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + for my $attr (@attr) { + push @bind_values, $search; + } + } + } - my $query = ''; - my $conditions = ''; + my $query = ''; + my $conditions = ''; - if ( ( defined $condition->{project_id} ) || ( defined $condition->{studio_id} ) ) { - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'ps.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) || ( defined $condition->{studio_id} ) ) { + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ps.project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'ps.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } - push @conditions, 'ps.series_id=s.id'; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - $query = qq{ + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ps.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } + push @conditions, 'ps.series_id=s.id'; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $query = qq{ select * from calcms_series s, calcms_project_series ps $conditions order by has_single_events desc, series_name, title }; - } else { + } else { - # simple query - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - $query = qq{ + # simple query + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $query = qq{ select * from calcms_series $conditions order by has_single_events desc, series_name, title }; - } + } - my $dbh = db::connect($config); - my $series = db::get( $dbh, $query, \@bind_values ); + my $dbh = db::connect($config); + my $series = db::get( $dbh, $query, \@bind_values ); - #print STDERR Dumper(time()); - for my $serie (@$series) { - $serie->{series_id} = $serie->{id}; - delete $serie->{id}; - } + #print STDERR Dumper(time()); + for my $serie (@$series) { + $serie->{series_id} = $serie->{id}; + delete $serie->{id}; + } - #print STDERR Dumper($series); - return $series; + #print STDERR Dumper($series); + return $series; } # insert series sub insert { - my $config = shift; - my $series = shift; + my $config = shift; + my $series = shift; - #print STDERR Dumper($series); - return undef unless defined $series->{project_id}; - return undef unless defined $series->{studio_id}; + #print STDERR Dumper($series); + return undef unless defined $series->{project_id}; + return undef unless defined $series->{studio_id}; - my $project_id = $series->{project_id}; - my $studio_id = $series->{studio_id}; + my $project_id = $series->{project_id}; + my $studio_id = $series->{studio_id}; - my $columns = series::get_columns($config); + my $columns = series::get_columns($config); - my $entry = {}; - for my $column ( keys %$columns ) { - $entry->{$column} = $series->{$column} if defined $series->{$column}; - } - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $series->{$column} if defined $series->{$column}; + } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - $entry->{created_at} = time::time_to_datetime( time() ); - $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{created_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); - #print STDERR Dumper($entry); + #print STDERR Dumper($entry); - my $dbh = db::connect($config); - my $series_id = db::insert( $dbh, 'calcms_series', $entry ); + my $dbh = db::connect($config); + my $series_id = db::insert( $dbh, 'calcms_series', $entry ); - return undef unless defined $series_id; + return undef unless defined $series_id; - my $result = project::assign_series( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - series_id => $series_id - } - ); - return undef unless defined $result; - return $series_id; + my $result = project::assign_series( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + } + ); + return undef unless defined $result; + return $series_id; } # update series sub update { - my $config = shift; - my $series = shift; + my $config = shift; + my $series = shift; - return undef unless defined $series->{project_id}; - return undef unless defined $series->{studio_id}; - return undef unless defined $series->{series_id}; + return undef unless defined $series->{project_id}; + return undef unless defined $series->{studio_id}; + return undef unless defined $series->{series_id}; - my $columns = series::get_columns($config); + my $columns = series::get_columns($config); - my $entry = {}; - for my $column ( keys %$columns ) { - $entry->{$column} = $series->{$column} if defined $series->{$column}; - } - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - $entry->{id} = $series->{series_id}; - $entry->{modified_at} = time::time_to_datetime( time() ); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $series->{$column} if defined $series->{$column}; + } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + $entry->{id} = $series->{series_id}; + $entry->{modified_at} = time::time_to_datetime( time() ); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values, $entry->{id}; + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{id}; - my $query = qq{ + my $query = qq{ update calcms_series set $values where id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); - my $dbh = db::connect($config); - return db::put( $dbh, $query, \@bind_values ); + my $dbh = db::connect($config); + return db::put( $dbh, $query, \@bind_values ); } # delete series, its schedules and series dates # unassign its users and events sub delete { - my $config = shift; - my $series = shift; + my $config = shift; + my $series = shift; - return undef unless defined $series->{project_id}; - return undef unless defined $series->{studio_id}; - return undef unless defined $series->{series_id}; + return undef unless defined $series->{project_id}; + return undef unless defined $series->{studio_id}; + return undef unless defined $series->{series_id}; - my $project_id = $series->{project_id}; - my $studio_id = $series->{studio_id}; - my $series_id = $series->{series_id}; + my $project_id = $series->{project_id}; + my $studio_id = $series->{studio_id}; + my $series_id = $series->{series_id}; - unless ( project::is_series_assigned( $config, $series ) == 1 ) { - print STDERR "series is not assigned to project $project_id and studio $studio_id\n"; - return undef; - } + unless ( project::is_series_assigned( $config, $series ) == 1 ) { + print STDERR "series is not assigned to project $project_id and studio $studio_id\n"; + return undef; + } - my $query = undef; - my $bind_values = undef; - my $dbh = db::connect($config); + my $query = undef; + my $bind_values = undef; + my $dbh = db::connect($config); - $bind_values = [ $project_id, $studio_id, $series_id ]; + $bind_values = [ $project_id, $studio_id, $series_id ]; - #delete schedules - $query = qq{ + #delete schedules + $query = qq{ delete from calcms_series_schedule where project_id=? and studio_id=? and series_id=? }; - db::put( $dbh, $query, $bind_values ); + db::put( $dbh, $query, $bind_values ); - #delete series dates - $query = qq{ + #delete series dates + $query = qq{ delete from calcms_series_dates where project_id=? and studio_id=? and series_id=? }; - db::put( $dbh, $query, $bind_values ); + db::put( $dbh, $query, $bind_values ); - #unassign users - series::remove_user( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - series_id => $series_id - } - ); + #unassign users + series::remove_user( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + } + ); - #unassign events - $bind_values = [ $project_id, $studio_id, $series_id ]; - $query = qq{ + #unassign events + $bind_values = [ $project_id, $studio_id, $series_id ]; + $query = qq{ delete from calcms_series_events where project_id=? and studio_id=? and series_id=? }; - #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put( $dbh, $query, $bind_values ); + #print '
      $query'.$query.Dumper($bind_values).'
      '; + db::put( $dbh, $query, $bind_values ); - project::unassign_series( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - series_id => $series_id - } - ); + project::unassign_series( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + } + ); - #delete series + #delete series - my $series_assignments = project::get_series_assignments( - $config, - { - series_id => $series_id - } - ); - if ( @$series_assignments > 1 ) { - print STDERR "do not delete series, due to assigned to other project or studio"; - return; - } + my $series_assignments = project::get_series_assignments( + $config, + { + series_id => $series_id + } + ); + if ( scalar @$series_assignments > 1 ) { + print STDERR "do not delete series, due to assigned to other project or studio"; + return; + } - $bind_values = [$series_id]; - $query = qq{ + $bind_values = [$series_id]; + $query = qq{ delete from calcms_series where id=? }; - #print STDERR $query.$query.Dumper($bind_values); - db::put( $dbh, $query, $bind_values ); + #print STDERR $query.$query.Dumper($bind_values); + db::put( $dbh, $query, $bind_values ); } # get users directly assigned to project, studio, series (editors) sub get_users { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'us.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'us.project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'us.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'us.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'us.series_id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'us.series_id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { - push @conditions, 'u.name=?'; - push @bind_values, $condition->{name}; - } + if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { + push @conditions, 'u.name=?'; + push @bind_values, $condition->{name}; + } - my $conditions = ''; - $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select u.id, u.name, u.full_name, u.email, us.modified_by, us.modified_at from calcms_users u, calcms_user_series us where us.user_id=u.id $conditions }; - #print STDERR $query." ".Dumper(\@bind_values)."\n"; - my $dbh = db::connect($config); - my $result = db::get( $dbh, $query, \@bind_values ); + #print STDERR $query." ".Dumper(\@bind_values)."\n"; + my $dbh = db::connect($config); + my $result = db::get( $dbh, $query, \@bind_values ); - #print STDERR $query." ".Dumper($result)."\n"; - return $result; + #print STDERR $query." ".Dumper($result)."\n"; + return $result; } # assign user to series sub add_user { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return unless defined $entry->{project_id}; - return unless defined $entry->{studio_id}; - return unless defined $entry->{series_id}; - return unless defined $entry->{user_id}; - return unless defined $entry->{user}; + return unless defined $entry->{project_id}; + return unless defined $entry->{studio_id}; + return unless defined $entry->{series_id}; + return unless defined $entry->{user_id}; + return unless defined $entry->{user}; - my $query = qq{ + my $query = qq{ select id from calcms_user_series where project_id=? and studio_id=? and series_id=? and user_id=? }; - my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id} ]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id} ]; - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, $bind_values ); - return unless ( @$results == 0 ); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); + return unless scalar @$results == 0; - $query = qq{ + $query = qq{ insert calcms_user_series set project_id=?, studio_id=?, series_id=?, user_id=?, modified_by=?, modified_at=now() }; - $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id}, $entry->{user} ]; - db::put( $dbh, $query, $bind_values ); + $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id}, $entry->{user} ]; + db::put( $dbh, $query, $bind_values ); } # remove user(s) from series. sub remove_user { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - return unless ( defined $condition->{project_id} ); - return unless ( defined $condition->{studio_id} ); - return unless ( defined $condition->{series_id} ); + return unless ( defined $condition->{project_id} ); + return unless ( defined $condition->{studio_id} ); + return unless ( defined $condition->{series_id} ); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'series_id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{user_id} ) && ( $condition->{user_id} ne '' ) ) { - push @conditions, 'user_id=?'; - push @bind_values, $condition->{user_id}; - } + if ( ( defined $condition->{user_id} ) && ( $condition->{user_id} ne '' ) ) { + push @conditions, 'user_id=?'; + push @bind_values, $condition->{user_id}; + } - my $conditions = ''; - $conditions = join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ delete from calcms_user_series where $conditions }; - my $dbh = db::connect($config); - db::put( $dbh, $query, \@bind_values ); + my $dbh = db::connect($config); + db::put( $dbh, $query, \@bind_values ); } #search events by series_name and title (for events not assigned yet) #TODO: add location sub search_events { - my $config = shift; - my $request = shift; - my $options = shift; + my $config = shift; + my $request = shift; + my $options = shift; - my $series_name = $options->{series_name} || ''; - my $title = $options->{title} || ''; - return undef if ( ( $series_name eq '' ) && ( $title eq '' ) ); + my $series_name = $options->{series_name} || ''; + my $title = $options->{title} || ''; + return undef if ( $series_name eq '' ) && ( $title eq '' ); - $series_name =~ s/[^a-zA-Z0-9 \-]+/\?/g; - $title =~ s/[^a-zA-Z0-9 \-]+/\?/g; + $series_name =~ s/[^a-zA-Z0-9 \-]+/\?/g; + $title =~ s/[^a-zA-Z0-9 \-]+/\?/g; - $series_name =~ s/\?+/\?/g; - $title =~ s/\?+/\?/g; + $series_name =~ s/\?+/\?/g; + $title =~ s/\?+/\?/g; - my $params = { - series_name => $series_name, - title => $title, - template => 'no' - }; - if ( defined $options ) { - $params->{from_date} = $options->{from_date} if ( defined $options->{from_date} ); - $params->{till_date} = $options->{till_date} if ( defined $options->{till_date} ); - $params->{location} = $options->{location} if ( defined $options->{location} ); - $params->{limit} = $options->{limit} if ( defined $options->{limit} ); - $params->{archive} = $options->{archive} if ( defined $options->{archive} ); - $params->{get} = $options->{get} if ( defined $options->{get} ); - } + my $params = { + series_name => $series_name, + title => $title, + template => 'no' + }; + if ( defined $options ) { + $params->{from_date} = $options->{from_date} if ( defined $options->{from_date} ); + $params->{till_date} = $options->{till_date} if ( defined $options->{till_date} ); + $params->{location} = $options->{location} if ( defined $options->{location} ); + $params->{limit} = $options->{limit} if ( defined $options->{limit} ); + $params->{archive} = $options->{archive} if ( defined $options->{archive} ); + $params->{get} = $options->{get} if ( defined $options->{get} ); + } - my $checked_params = events::check_params( $config, $params ); + my $checked_params = events::check_params( $config, $params ); - #print STDERR '
      '.Dumper($checked_params).'
      '; - my $request2 = { - params => { - checked => $checked_params - }, - config => $request->{config}, - permissions => $request->{permissions} - }; + #print STDERR '
      '.Dumper($checked_params).'
      '; + my $request2 = { + params => { + checked => $checked_params + }, + config => $request->{config}, + permissions => $request->{permissions} + }; - #my $debug=1; - #print STDERR Dumper($request2->{params}); - my $events = events::get( $config, $request2 ); + #my $debug=1; + #print STDERR Dumper($request2->{params}); + my $events = events::get( $config, $request2 ); - #print Dumper($events); - return $events; + #print Dumper($events); + return $events; } #get events (only assigned ones) by project_id,studio_id,series_id, sub get_events { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - #print STDERR Dumper($options); - return [] if defined( $options->{series_id} ) && ( $options->{series_id} <= 0 ); + #print STDERR Dumper($options); + return [] if defined( $options->{series_id} ) && ( $options->{series_id} <= 0 ); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( defined $options->{project_id} ) { - push @conditions, 'se.project_id = ?'; - push @bind_values, $options->{project_id}; - } - if ( defined $options->{studio_id} ) { - push @conditions, 'se.studio_id = ?'; - push @bind_values, $options->{studio_id}; - } - if ( ( defined $options->{series_id} ) && ( $options->{series_id} =~ /(\d+)/ ) ) { - push @bind_values, $1; - push @conditions, 'se.series_id = ?'; - } + if ( defined $options->{project_id} ) { + push @conditions, 'se.project_id = ?'; + push @bind_values, $options->{project_id}; + } + if ( defined $options->{studio_id} ) { + push @conditions, 'se.studio_id = ?'; + push @bind_values, $options->{studio_id}; + } + if ( ( defined $options->{series_id} ) && ( $options->{series_id} =~ /(\d+)/ ) ) { + push @bind_values, $1; + push @conditions, 'se.series_id = ?'; + } - if ( defined $options->{event_id} ) { - push @bind_values, $options->{event_id}; - push @conditions, 'e.id = ?'; - } + if ( defined $options->{event_id} ) { + push @bind_values, $options->{event_id}; + push @conditions, 'e.id = ?'; + } - if ( ( defined $options->{from_date} ) && ( $options->{from_date} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { - push @bind_values, $1; - push @conditions, 'e.start_date >= ?'; - } - if ( ( defined $options->{till_date} ) && ( $options->{till_date} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { - push @bind_values, $1; - push @conditions, 'e.start_date <= ?'; - } - if ( defined $options->{location} ) { - push @conditions, 'e.location = ?'; - push @bind_values, $options->{location}; - } + if ( ( defined $options->{from_date} ) && ( $options->{from_date} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { + push @bind_values, $1; + push @conditions, 'e.start_date >= ?'; + } + if ( ( defined $options->{till_date} ) && ( $options->{till_date} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { + push @bind_values, $1; + push @conditions, 'e.start_date <= ?'; + } + if ( defined $options->{location} ) { + push @conditions, 'e.location = ?'; + push @bind_values, $options->{location}; + } - if ( defined $options->{draft} ) { - push @conditions, 'e.draft = ?'; - push @bind_values, $options->{draft}; - } + if ( defined $options->{draft} ) { + push @conditions, 'e.draft = ?'; + push @bind_values, $options->{draft}; + } - my $conditions = ''; - if ( @conditions > 0 ) { - $conditions = ' and ' . join( ' and ', @conditions ); - } + my $conditions = ''; + if ( @conditions > 0 ) { + $conditions = ' and ' . join( ' and ', @conditions ); + } - my $limit = ''; - if ( ( defined $options->{limit} ) && ( $limit =~ /(\d+)/ ) ) { - $limit = 'limit ' . $1; - } + my $limit = ''; + if ( ( defined $options->{limit} ) && ( $limit =~ /(\d+)/ ) ) { + $limit = 'limit ' . $1; + } - my $query = qq{ + my $query = qq{ select * ,date(start) start_date ,date(end) end_date @@ -544,145 +544,145 @@ sub get_events { $limit }; - #print STDERR '
      '.$query.Dumper(\@bind_values).'
      '; + #print STDERR '
      '.$query.Dumper(\@bind_values).'
      '; - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, \@bind_values ); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, \@bind_values ); - #print STDERR Dumper($results); + #print STDERR Dumper($results); - $results = events::modify_results( - $dbh, $config, - { - base_url => '', - params => { - checked => { - template => '' - } - } - }, - $results - ); + $results = events::modify_results( + $dbh, $config, + { + base_url => '', + params => { + checked => { + template => '' + } + } + }, + $results + ); - #add studio id to events - my $studios = studios::get( $config, $options ); + #add studio id to events + my $studios = studios::get( $config, $options ); - my $studio_id_by_location = {}; - for my $studio (@$studios) { - $studio_id_by_location->{ $studio->{location} } = $studio->{id}; - } - for my $result (@$results) { - $result->{studio_id} = $studio_id_by_location->{ $result->{location} }; - } + my $studio_id_by_location = {}; + for my $studio (@$studios) { + $studio_id_by_location->{ $studio->{location} } = $studio->{id}; + } + for my $result (@$results) { + $result->{studio_id} = $studio_id_by_location->{ $result->{location} }; + } - #print STDERR Dumper($results); - return $results; + #print STDERR Dumper($results); + return $results; } # load event given by studio_id, series_id and event_id # helper for gui - errors are written to gui output # return undef on error sub get_event { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - my $project_id = $options->{project_id} || ''; - my $studio_id = $options->{studio_id} || ''; - my $series_id = $options->{series_id} || ''; - my $event_id = $options->{event_id} || ''; - my $draft = $options->{draft} || ''; + my $project_id = $options->{project_id} || ''; + my $studio_id = $options->{studio_id} || ''; + my $series_id = $options->{series_id} || ''; + my $event_id = $options->{event_id} || ''; + my $draft = $options->{draft} || ''; - unless ( defined $options->{allow_any} ) { - if ( $project_id eq '' ) { - uac::print_error("missing project_id"); - return undef; - } - if ( $studio_id eq '' ) { - uac::print_error("missing studio_id"); - return undef; - } - if ( $series_id eq '' ) { - uac::print_error("missing series_id"); - return undef; - } - } + unless ( defined $options->{allow_any} ) { + if ( $project_id eq '' ) { + uac::print_error("missing project_id"); + return undef; + } + if ( $studio_id eq '' ) { + uac::print_error("missing studio_id"); + return undef; + } + if ( $series_id eq '' ) { + uac::print_error("missing series_id"); + return undef; + } + } - if ( $event_id eq '' ) { - uac::print_error("missing event_id"); - return undef; - } + if ( $event_id eq '' ) { + uac::print_error("missing event_id"); + return undef; + } - my $queryOptions = {}; - $queryOptions->{project_id} = $project_id if $project_id ne ''; - $queryOptions->{studio_id} = $studio_id if $studio_id ne ''; - $queryOptions->{series_id} = $series_id if $series_id ne ''; - $queryOptions->{event_id} = $event_id if $event_id ne ''; - $queryOptions->{draft} = $draft if $draft ne ''; + my $queryOptions = {}; + $queryOptions->{project_id} = $project_id if $project_id ne ''; + $queryOptions->{studio_id} = $studio_id if $studio_id ne ''; + $queryOptions->{series_id} = $series_id if $series_id ne ''; + $queryOptions->{event_id} = $event_id if $event_id ne ''; + $queryOptions->{draft} = $draft if $draft ne ''; - my $events = series::get_events( $config, $queryOptions ); + my $events = series::get_events( $config, $queryOptions ); - unless ( defined $events ) { - uac::print_error("error on loading event"); - return undef; - } + unless ( defined $events ) { + uac::print_error("error on loading event"); + return undef; + } - if ( scalar(@$events) == 0 ) { - uac::print_error("event not found"); - return undef; - } + if ( scalar(@$events) == 0 ) { + uac::print_error("event not found"); + return undef; + } - if ( scalar(@$events) > 1 ) { - print STDERR q{multiple assignments found for } - . q{project_id=} - . $options->{project_id} - . q{, studio_id=} - . $options->{studio_id} - . q{, series_id=} - . $options->{series_id} - . q{, event_id=} - . $options->{event_id} . "\n"; - } - my $event = $events->[0]; - return $event; + if ( scalar(@$events) > 1 ) { + print STDERR q{multiple assignments found for } + . q{project_id=} + . $options->{project_id} + . q{, studio_id=} + . $options->{studio_id} + . q{, series_id=} + . $options->{series_id} + . q{, event_id=} + . $options->{event_id} . "\n"; + } + my $event = $events->[0]; + return $event; } # get name and title of series and age in days ('days_over') sub get_event_age { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - #print STDERR Dumper($options); - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; + #print STDERR Dumper($options); + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $options->{project_id} ) && ( $options->{project_id} =~ /(\d+)/ ) ) { - push @bind_values, $1; - push @conditions, 'ps.project_id = ?'; - } + if ( ( defined $options->{project_id} ) && ( $options->{project_id} =~ /(\d+)/ ) ) { + push @bind_values, $1; + push @conditions, 'ps.project_id = ?'; + } - if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} =~ /(\d+)/ ) ) { - push @bind_values, $1; - push @conditions, 'ps.studio_id = ?'; - } + if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} =~ /(\d+)/ ) ) { + push @bind_values, $1; + push @conditions, 'ps.studio_id = ?'; + } - if ( ( defined $options->{series_id} ) && ( $options->{series_id} =~ /(\d+)/ ) ) { - push @bind_values, $1; - push @conditions, 's.id = ?'; - } + if ( ( defined $options->{series_id} ) && ( $options->{series_id} =~ /(\d+)/ ) ) { + push @bind_values, $1; + push @conditions, 's.id = ?'; + } - if ( ( defined $options->{event_id} ) && ( $options->{event_id} =~ /(\d+)/ ) ) { - push @bind_values, $1; - push @conditions, 'e.id = ?'; - } + if ( ( defined $options->{event_id} ) && ( $options->{event_id} =~ /(\d+)/ ) ) { + push @bind_values, $1; + push @conditions, 'e.id = ?'; + } - my $conditions = ''; - if ( @conditions > 0 ) { - $conditions = join( ' and ', @conditions ); - } - my $query = qq{ + my $conditions = ''; + if ( @conditions > 0 ) { + $conditions = join( ' and ', @conditions ); + } + my $query = qq{ select s.id series_id, s.series_name, s.title, s.has_single_events has_single_events, (to_days(now())-to_days(max(e.start))) days_over from calcms_project_series ps left join calcms_series s on ps.series_id=s.id @@ -693,141 +693,141 @@ sub get_event_age { order by has_single_events desc, days_over }; - #print STDERR $query." ".Dumper(\@bind_values); - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, \@bind_values ); + #print STDERR $query." ".Dumper(\@bind_values); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, \@bind_values ); - for my $result (@$results) { - $result->{days_over} = 0 unless defined $result->{days_over}; - } - return $results; + for my $result (@$results) { + $result->{days_over} = 0 unless defined $result->{days_over}; + } + return $results; } # is event older than max_age days sub is_event_older_than_days { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - #print STDERR Dumper($options); + #print STDERR Dumper($options); - return 1 unless defined $options->{project_id}; - return 1 unless defined $options->{studio_id}; - return 1 unless defined $options->{series_id}; - return 1 unless defined $options->{event_id}; - return 1 unless defined $options->{max_age}; + return 1 unless defined $options->{project_id}; + return 1 unless defined $options->{studio_id}; + return 1 unless defined $options->{series_id}; + return 1 unless defined $options->{event_id}; + return 1 unless defined $options->{max_age}; - my $events = series::get_event_age( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - event_id => $options->{event_id} - } - ); + my $events = series::get_event_age( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + event_id => $options->{event_id} + } + ); - if ( scalar(@$events) == 0 ) { - print STDERR + if ( scalar(@$events) == 0 ) { + print STDERR "series_events::event_over_in_days: event $options->{event_id} is not assigned to project $options->{project_id}, studio $options->{studio_id}, series $options->{series_id}\n"; - return 1; - } - my $event = $events->[0]; + return 1; + } + my $event = $events->[0]; - #print STDERR Dumper($event); - return 1 if $event->{days_over} > $options->{max_age}; - return 0; + #print STDERR Dumper($event); + return 1 if $event->{days_over} > $options->{max_age}; + return 0; } sub get_next_episode { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; - #return if episodes should not be counted for this series - my $query = q{ + #return if episodes should not be counted for this series + my $query = q{ select count_episodes from calcms_series where id=? }; - my $bind_values = [ $options->{series_id} ]; - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, $bind_values ); - return 0 if ( @$results != 1 ); - return 0 if ( $results->[0]->{count_episodes} eq '0' ); + my $bind_values = [ $options->{series_id} ]; + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); + return 0 if ( @$results != 1 ); + return 0 if ( $results->[0]->{count_episodes} eq '0' ); - #print STDERR Dumper($results); + #print STDERR Dumper($results); - #get all - $query = q{ + #get all + $query = q{ select title,episode from calcms_events e, calcms_series_events se where se.project_id=? and se.studio_id=? and se.series_id=? and se.event_id=e.id }; - $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{series_id} ]; - $results = db::get( $dbh, $query, $bind_values ); + $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{series_id} ]; + $results = db::get( $dbh, $query, $bind_values ); - my $max = 0; - for my $result (@$results) { - if ( $result->{title} =~ /\#(\d+)/ ) { - my $value = $1; - $max = $value if $value > $max; - } - next unless defined $result->{episode}; - $max = $result->{episode} if $result->{episode} > $max; - } - return $max + 1; + my $max = 0; + for my $result (@$results) { + if ( $result->{title} =~ /\#(\d+)/ ) { + my $value = $1; + $max = $value if $value > $max; + } + next unless defined $result->{episode}; + $max = $result->{episode} if $result->{episode} > $max; + } + return $max + 1; } sub get_images { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{series_id}; + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{series_id}; - #get images from all events of the series - my $dbh = db::connect($config); - my $events = series::get_events( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id} - } - ); - my $images = {}; - my $found = 0; - for my $event (@$events) { - my $image = $event->{image}; - $image =~ s/.*\///; - $images->{$image} = 1; - $found++; - } + #get images from all events of the series + my $dbh = db::connect($config); + my $events = series::get_events( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id} + } + ); + my $images = {}; + my $found = 0; + for my $event (@$events) { + my $image = $event->{image}; + $image =~ s/.*\///; + $images->{$image} = 1; + $found++; + } - return undef if $found == 0; + return undef if $found == 0; - # get all images from database - my @cond = (); - my $bind_values = []; - for my $image ( keys %$images ) { - push @cond, 'filename=?'; - push @$bind_values, $image; - } + # get all images from database + my @cond = (); + my $bind_values = []; + for my $image ( keys %$images ) { + push @cond, 'filename=?'; + push @$bind_values, $image; + } - my $where = ''; - if ( @cond > 0 ) { - $where = 'where ' . join( ' or ', @cond ); - } + my $where = ''; + if ( @cond > 0 ) { + $where = 'where ' . join( ' or ', @cond ); + } - my $limit = ''; - if ( ( defined $options->{limit} ) && ( $options->{limit} =~ /(\d+)/ ) ) { - $limit = ' limit ' . $1; - } + my $limit = ''; + if ( ( defined $options->{limit} ) && ( $options->{limit} =~ /(\d+)/ ) ) { + $limit = ' limit ' . $1; + } - my $query = qq{ + my $query = qq{ select * from calcms_images $where @@ -835,460 +835,460 @@ sub get_images { $limit }; - #print STDERR Dumper($query).Dumper($bind_values); - my $results = db::get( $dbh, $query, $bind_values ); + #print STDERR Dumper($query).Dumper($bind_values); + my $results = db::get( $dbh, $query, $bind_values ); - #print STDERR @$results."\n"; - return $results; + #print STDERR @$results."\n"; + return $results; } #assign event to series #TODO: manual assign needs to update automatic one sub assign_event { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - #print STDERR Dumper($entry); - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{series_id}; - return undef unless defined $entry->{event_id}; - $entry->{manual} = 0 unless ( ( defined $entry->{manual} ) && ( $entry->{manual} eq '1' ) ); + #print STDERR Dumper($entry); + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; + return undef unless defined $entry->{event_id}; + $entry->{manual} = 0 unless ( defined $entry->{manual} ) && ( $entry->{manual} eq '1' ); - my $conditions = ''; - $conditions = 'and manual=1' if ( $entry->{manual} eq '1' ); + my $conditions = ''; + $conditions = 'and manual=1' if $entry->{manual} eq '1'; - my $query = qq{ + my $query = qq{ select * from calcms_series_events where project_id=? and studio_id=? and series_id=? and event_id=? $conditions }; - my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, $bind_values ); + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); - if ( @$results > 1 ) { - print STDERR + if ( scalar @$results > 1 ) { + print STDERR "multiple assignments of project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}\n"; - return; - } - if ( @$results == 1 ) { - print STDERR + return; + } + if ( scalar @$results == 1 ) { + print STDERR "already assigned: project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}\n"; - return; - } + return; + } - $query = qq{ + $query = qq{ insert into calcms_series_events (project_id, studio_id, series_id, event_id, manual) values (?,?,?,?,?) }; - $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}, $entry->{manual} ]; + $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}, $entry->{manual} ]; - #print STDERR '
      '.$query.Dumper($bind_values).'
      '; - return db::put( $dbh, $query, $bind_values ); + #print STDERR '
      '.$query.Dumper($bind_values).'
      '; + return db::put( $dbh, $query, $bind_values ); } #unassign event from series sub unassign_event { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return unless defined $entry->{project_id}; - return unless defined $entry->{studio_id}; - return unless defined $entry->{series_id}; - return unless defined $entry->{event_id}; + return unless defined $entry->{project_id}; + return unless defined $entry->{studio_id}; + return unless defined $entry->{series_id}; + return unless defined $entry->{event_id}; - my $conditions = ''; - $conditions = 'and manual=1' if ( ( defined $entry->{manual} ) && ( $entry->{manual} eq '1' ) ); + my $conditions = ''; + $conditions = 'and manual=1' if ( defined $entry->{manual} ) && ( $entry->{manual} eq '1' ); - my $query = qq{ + my $query = qq{ delete from calcms_series_events where project_id=? and studio_id=? and series_id=? and event_id=? $conditions }; - my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; - #print STDERR '
      '.$query.Dumper($bind_values).'
      '; - my $dbh = db::connect($config); - return db::put( $dbh, $query, $bind_values ); + #print STDERR '
      '.$query.Dumper($bind_values).'
      '; + my $dbh = db::connect($config); + return db::put( $dbh, $query, $bind_values ); } # put series id to given events (for legacy handling) # used by calendar # TODO: optionally add project_id and studio_id to conditions sub add_series_ids_to_events { - my $config = shift; - my $events = shift; + my $config = shift; + my $events = shift; - #get event ids from given events - my @event_ids = (); - for my $event (@$events) { - push @event_ids, $event->{event_id}; - } + #get event ids from given events + my @event_ids = (); + for my $event (@$events) { + push @event_ids, $event->{event_id}; + } - return if ( @event_ids == 0 ); + return if scalar @event_ids == 0; - my @bind_values = @event_ids; - my $event_ids = join( ',', map { '?' } @event_ids ); + my @bind_values = @event_ids; + my $event_ids = join( ',', map { '?' } @event_ids ); - #query series ids - my $dbh = db::connect($config); - my $query = qq{ + #query series ids + my $dbh = db::connect($config); + my $query = qq{ select project_id, studio_id, series_id, event_id from calcms_series_events where event_id in ($event_ids) }; - my $results = db::get( $dbh, $query, \@bind_values ); - my @results = @$results; - return [] unless ( @results > 0 ); + my $results = db::get( $dbh, $query, \@bind_values ); + my @results = @$results; + return [] unless scalar @results > 0; - #build hash of series ids by event ids - my $assignments_by_event_id = {}; - for my $entry (@$results) { - my $event_id = $entry->{event_id}; - $assignments_by_event_id->{$event_id} = $entry; - } + #build hash of series ids by event ids + my $assignments_by_event_id = {}; + for my $entry (@$results) { + my $event_id = $entry->{event_id}; + $assignments_by_event_id->{$event_id} = $entry; + } - #fill in ids into events - for my $event (@$events) { - my $event_id = $event->{event_id}; - my $assignment = $assignments_by_event_id->{$event_id}; - if ( defined $assignment ) { - $event->{project_id} = $assignment->{project_id}; - $event->{studio_id} = $assignment->{studio_id}; - $event->{series_id} = $assignment->{series_id}; - } - } + #fill in ids into events + for my $event (@$events) { + my $event_id = $event->{event_id}; + my $assignment = $assignments_by_event_id->{$event_id}; + if ( defined $assignment ) { + $event->{project_id} = $assignment->{project_id}; + $event->{studio_id} = $assignment->{studio_id}; + $event->{series_id} = $assignment->{series_id}; + } + } } # add event_ids to series and remove all event ids from series, not given event_ids # for scan only, used at series sub set_event_ids { - my $config = shift; - my $project_id = shift; - my $studio_id = shift; - my $serie = shift; - my $event_ids = shift; + my $config = shift; + my $project_id = shift; + my $studio_id = shift; + my $serie = shift; + my $event_ids = shift; - my $serie_id = $serie->{series_id}; - return unless defined $project_id; - return unless defined $studio_id; - return unless defined $serie_id; - return unless defined $event_ids; + my $serie_id = $serie->{series_id}; + return unless defined $project_id; + return unless defined $studio_id; + return unless defined $serie_id; + return unless defined $event_ids; - #make lookup table from events - my $event_id_hash = {}; - for my $event_id (@$event_ids) { - $event_id_hash->{$event_id} = 1; - } + #make lookup table from events + my $event_id_hash = {}; + for my $event_id (@$event_ids) { + $event_id_hash->{$event_id} = 1; + } - #get series_entries from db - #my $bind_names=join(',', (map { '?' } @$event_ids)); - my $query = qq{ + #get series_entries from db + #my $bind_names=join(',', (map { '?' } @$event_ids)); + my $query = qq{ select event_id from calcms_series_events where project_id=? and studio_id=? and series_id=? }; - my $bind_values = [ $project_id, $studio_id, $serie_id ]; + my $bind_values = [ $project_id, $studio_id, $serie_id ]; - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, $bind_values ); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); - my $found = {}; + my $found = {}; - #mark events found assigned to series - my $i = 1; - for my $event (@$results) { + #mark events found assigned to series + my $i = 1; + for my $event (@$results) { - #print "found event $i: $event->{event_id}\n"; - $found->{ $event->{event_id} } = 1; - $i++; - } + #print "found event $i: $event->{event_id}\n"; + $found->{ $event->{event_id} } = 1; + $i++; + } - #insert events from list, not found in db - for my $event_id (@$event_ids) { + #insert events from list, not found in db + for my $event_id (@$event_ids) { - #print "insert event_id $event_id\n"; - series::assign_event( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - series_id => $serie_id, - event_id => $event_id - } - ) unless ( $found->{$event_id} ); - } + #print "insert event_id $event_id\n"; + series::assign_event( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $serie_id, + event_id => $event_id + } + ) unless ( $found->{$event_id} ); + } - #delete events found in db, but not in list - for my $event_id ( keys %$found ) { + #delete events found in db, but not in list + for my $event_id ( keys %$found ) { - #print "delete event_id $event_id\n"; - series::unassign_event( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - series_id => $serie_id, - event_id => $event_id, - manual => 0 - } - ) unless ( defined $event_id_hash->{$event_id} ); - } + #print "delete event_id $event_id\n"; + series::unassign_event( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $serie_id, + event_id => $event_id, + manual => 0 + } + ) unless defined $event_id_hash->{$event_id}; + } } # check if user allowed to update series events # evaluate permissions and consider editors directly assigned to series sub can_user_update_events { - my $request = shift; - my $options = shift; + my $request = shift; + my $options = shift; - my $config = $request->{config}; - my $permissions = $request->{permissions}; + my $config = $request->{config}; + my $permissions = $request->{permissions}; - return 0 unless defined $request->{user}; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; + return 0 unless defined $request->{user}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; - return 1 if ( ( defined $permissions->{update_event_of_others} ) && ( $permissions->{update_event_of_others} eq '1' ) ); - return 1 if ( ( defined $permissions->{is_admin} ) && ( $permissions->{is_admin} eq '1' ) ); - return 0 if ( $permissions->{update_event_of_series} ne '1' ); + return 1 if ( defined $permissions->{update_event_of_others} ) && ( $permissions->{update_event_of_others} eq '1' ); + return 1 if ( defined $permissions->{is_admin} ) && ( $permissions->{is_admin} eq '1' ); + return 0 if $permissions->{update_event_of_series} ne '1'; - return is_series_assigned_to_user( $request, $options ); + return is_series_assigned_to_user( $request, $options ); } # check if user allowed to create series events # evaluate permissions and consider editors directly assigned to series sub can_user_create_events { - my $request = shift; - my $options = shift; + my $request = shift; + my $options = shift; - my $config = $request->{config}; - my $permissions = $request->{permissions}; + my $config = $request->{config}; + my $permissions = $request->{permissions}; - return 0 unless defined $request->{user}; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; + return 0 unless defined $request->{user}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; - return 1 if ( ( defined $permissions->{create_event} ) && ( $permissions->{create_event} eq '1' ) ); - return 1 if ( ( defined $permissions->{is_admin} ) && ( $permissions->{is_admin} eq '1' ) ); - return 0 if ( $permissions->{create_event_of_series} ne '1' ); + return 1 if ( defined $permissions->{create_event} ) && ( $permissions->{create_event} eq '1' ); + return 1 if ( defined $permissions->{is_admin} ) && ( $permissions->{is_admin} eq '1' ); + return 0 if $permissions->{create_event_of_series} ne '1'; - return is_series_assigned_to_user( $request, $options ); + return is_series_assigned_to_user( $request, $options ); } sub is_series_assigned_to_user { - my $request = shift; - my $options = shift; + my $request = shift; + my $options = shift; - my $config = $request->{config}; - my $permissions = $request->{permissions}; + my $config = $request->{config}; + my $permissions = $request->{permissions}; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; - return 0 unless defined $request->{user}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; + return 0 unless defined $request->{user}; - my $series_users = series::get_users( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - name => $request->{user} - } - ); - return 0 if ( @$series_users == 0 ); - return 1; + my $series_users = series::get_users( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + name => $request->{user} + } + ); + return 0 if scalar @$series_users == 0; + return 1; } # check if user is assigned to studio where location matchs to event # return 1 on success or error text sub is_event_assigned_to_user { - my $request = shift; - my $options = shift; + my $request = shift; + my $options = shift; - my $config = $request->{config}; + my $config = $request->{config}; - return "missing user" unless defined $request->{user}; - return "missing project_id" unless defined $options->{project_id}; - return "missing studio_id" unless defined $options->{studio_id}; - return "missing series_id" unless defined $options->{series_id}; - return "missing event_id" unless defined $options->{event_id}; + return "missing user" unless defined $request->{user}; + return "missing project_id" unless defined $options->{project_id}; + return "missing studio_id" unless defined $options->{studio_id}; + return "missing series_id" unless defined $options->{series_id}; + return "missing event_id" unless defined $options->{event_id}; - #check roles - my $user_studios = uac::get_studios_by_user( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - user => $request->{user}, - } - ); - return "user is not assigned to studio" if @$user_studios == 0; - my $studio = $user_studios->[0]; - my $location = $studio->{location}; - return "could not get studio location" if $location eq ''; + #check roles + my $user_studios = uac::get_studios_by_user( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + user => $request->{user}, + } + ); + return "user is not assigned to studio" if scalar @$user_studios == 0; + my $studio = $user_studios->[0]; + my $location = $studio->{location}; + return "could not get studio location" if $location eq ''; - #TODO: replace legacy support - my $events = series::get_events( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - event_id => $options->{event_id}, - location => $location, - limit => 1 - } - ); + #TODO: replace legacy support + my $events = series::get_events( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + event_id => $options->{event_id}, + location => $location, + limit => 1 + } + ); - #print STDERR Dumper(@$events); - return - "no event found for" - . " project $options->{project_id}," - . " studio $options->{studio_id}," - . " location $location," - . " series $options->{series_id}" - . " and event $options->{event_id}" - if @$events == 0; - return 1; + #print STDERR Dumper(@$events); + return + "no event found for" + . " project $options->{project_id}," + . " studio $options->{studio_id}," + . " location $location," + . " series $options->{series_id}" + . " and event $options->{event_id}" + if scalar @$events == 0; + return 1; } # to find multiple recurrences this does not include the recurrence_count # use events::get_key to add the recurrence sub get_event_key { - my $event = shift; + my $event = shift; - my $program = $event->{program} || ''; - my $series_name = $event->{series_name} || ''; - my $title = $event->{title} || ''; - my $user_title = $event->{user_title} || ''; - my $episode = $event->{episode} || ''; + my $program = $event->{program} || ''; + my $series_name = $event->{series_name} || ''; + my $title = $event->{title} || ''; + my $user_title = $event->{user_title} || ''; + my $episode = $event->{episode} || ''; - my $key = ''; - $key .= $series_name if $series_name ne ''; - $key .= ' - ' if ( $series_name ne '' ) && ( $title ne '' ); - $key .= $title if $title ne ''; - $key .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); - $key .= $user_title if $user_title ne ''; - $key .= ' #' . $episode if $episode ne ''; - return $key; + my $key = ''; + $key .= $series_name if $series_name ne ''; + $key .= ' - ' if ( $series_name ne '' ) && ( $title ne '' ); + $key .= $title if $title ne ''; + $key .= ': ' if ( $title ne '' ) && ( $user_title ne '' ); + $key .= $user_title if $user_title ne ''; + $key .= ' #' . $episode if $episode ne ''; + return $key; } sub update_recurring_events { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - return "missing project_id" unless defined $options->{project_id}; - return "missing studio_id" unless defined $options->{studio_id}; - return "missing series_id" unless defined $options->{series_id}; - return "missing event_id" unless defined $options->{event_id}; + return "missing project_id" unless defined $options->{project_id}; + return "missing studio_id" unless defined $options->{studio_id}; + return "missing series_id" unless defined $options->{series_id}; + return "missing event_id" unless defined $options->{event_id}; - my $events = series::get_events( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - draft => 0 - } - ); - @$events = sort { $a->{start} cmp $b->{start} } @$events; + my $events = series::get_events( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + draft => 0 + } + ); + @$events = sort { $a->{start} cmp $b->{start} } @$events; - # store events with recurrences by key (series_name, title, user_title, episode) - my $events_by_key = {}; - for my $event (@$events) { - my $key = get_event_key($event); - next unless $key =~ /\#\d+$/; - $event->{key} = $key; - push @{ $events_by_key->{$key} }, $event; - } + # store events with recurrences by key (series_name, title, user_title, episode) + my $events_by_key = {}; + for my $event (@$events) { + my $key = get_event_key($event); + next unless $key =~ /\#\d+$/; + $event->{key} = $key; + push @{ $events_by_key->{$key} }, $event; + } - # handle all events with the same key - for my $key ( keys %$events_by_key ) { - my $events = $events_by_key->{$key}; - next unless scalar @$events > 0; + # handle all events with the same key + for my $key ( keys %$events_by_key ) { + my $events = $events_by_key->{$key}; + next unless scalar @$events > 0; - if ( scalar @$events == 1 ) { + if ( scalar @$events == 1 ) { - # one event found -> check if recurrence is to be removed - my $event = $events->[0]; - next if $event->{recurrence} == 0; - next if $event->{recurrence_count} == 0; - print STDERR - "remove recurrence\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; - $event->{recurrence} = 0; - $event->{recurrence_count} = 0; - $event->{rerun} = 0; - series::update_recurring_event( $config, $event ); + # one event found -> check if recurrence is to be removed + my $event = $events->[0]; + next if $event->{recurrence} == 0; + next if $event->{recurrence_count} == 0; + print STDERR + "remove recurrence\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; + $event->{recurrence} = 0; + $event->{recurrence_count} = 0; + $event->{rerun} = 0; + series::update_recurring_event( $config, $event ); - } elsif ( scalar @$events > 1 ) { + } elsif ( scalar @$events > 1 ) { - # multiple events found with same key - # first event is the original - my $event = $events->[0]; - my $originalId = $event->{event_id}; - print STDERR + # multiple events found with same key + # first event is the original + my $event = $events->[0]; + my $originalId = $event->{event_id}; + print STDERR "0\t'$event->{recurrence_count}'\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; - # succeeding events are reruns - for ( my $c = 1 ; $c < scalar(@$events) ; $c++ ) { - my $event = $events->[$c]; - print STDERR + # succeeding events are reruns + for ( my $c = 1 ; $c < scalar(@$events) ; $c++ ) { + my $event = $events->[$c]; + print STDERR "$c\t'$event->{recurrence_count}'\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; - my $update = 0; - $update = 1 if $event->{recurrence} ne $originalId; - $update = 1 if $event->{rerun} ne '1'; - $update = 1 if $event->{recurrence_count} ne $c; - next if $update == 0; + my $update = 0; + $update = 1 if $event->{recurrence} ne $originalId; + $update = 1 if $event->{rerun} ne '1'; + $update = 1 if $event->{recurrence_count} ne $c; + next if $update == 0; - $event->{recurrence} = $originalId; - $event->{recurrence_count} = $c; - $event->{rerun} = 1; - series::update_recurring_event( $config, $event ); - } - } - } + $event->{recurrence} = $originalId; + $event->{recurrence_count} = $c; + $event->{rerun} = 1; + series::update_recurring_event( $config, $event ); + } + } + } } sub update_recurring_event { - my $config = shift; - my $event = shift; + my $config = shift; + my $event = shift; - return undef unless defined $event->{event_id}; - return undef unless defined $event->{recurrence}; - return undef unless defined $event->{recurrence_count}; - return undef unless defined $event->{rerun}; + return undef unless defined $event->{event_id}; + return undef unless defined $event->{recurrence}; + return undef unless defined $event->{recurrence_count}; + return undef unless defined $event->{rerun}; - return unless $event->{event_id} =~ /^\d+$/; - return unless $event->{recurrence} =~ /^\d+$/; - return unless $event->{recurrence_count} =~ /^\d+$/; - return unless $event->{rerun} =~ /^\d+$/; + return unless $event->{event_id} =~ /^\d+$/; + return unless $event->{recurrence} =~ /^\d+$/; + return unless $event->{recurrence_count} =~ /^\d+$/; + return unless $event->{rerun} =~ /^\d+$/; - my $bind_values = []; - push @$bind_values, $event->{recurrence}; - push @$bind_values, $event->{recurrence_count}; - push @$bind_values, $event->{rerun}; - push @$bind_values, $event->{id}; + my $bind_values = []; + push @$bind_values, $event->{recurrence}; + push @$bind_values, $event->{recurrence_count}; + push @$bind_values, $event->{rerun}; + push @$bind_values, $event->{id}; - my $update_sql = qq{ + my $update_sql = qq{ update calcms_events set recurrence=?, recurrence_count=?, rerun=? where id=? }; - #print STDERR $update_sql."\n".Dumper($bind_values)."\n"; - my $dbh = db::connect($config); - db::put( $dbh, $update_sql, $bind_values ); + #print STDERR $update_sql."\n".Dumper($bind_values)."\n"; + my $dbh = db::connect($config); + db::put( $dbh, $update_sql, $bind_values ); } sub error { - my $msg = shift; - print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index 89f5f10..dab893f 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -22,72 +22,72 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; sub get_columns { - my $config = shift; + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_series_dates' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_series_dates' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } # get all series_dates for studio_id and series_id within given time range # calculate start_date, end_date, weeday, day from start and end(datetime) sub get { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'series_id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { - push @conditions, 'start=?'; - push @bind_values, $condition->{start_at}; - } + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'start=?'; + push @bind_values, $condition->{start_at}; + } - if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { - push @conditions, 'start_date>=?'; - push @bind_values, $condition->{from}; - } + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + push @conditions, 'start_date>=?'; + push @bind_values, $condition->{from}; + } - if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { - push @conditions, 'end_date{till}; - } + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + push @conditions, 'end_date{till}; + } - if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { - push @conditions, 'id=?'; - push @bind_values, $condition->{schedule_id}; - } + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'id=?'; + push @bind_values, $condition->{schedule_id}; + } - if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { - push @conditions, 'exclude=?'; - push @bind_values, $condition->{exclude}; - } + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'exclude=?'; + push @bind_values, $condition->{exclude}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select date(start) start_date ,date(end) end_date ,dayname(start) weekday @@ -105,129 +105,129 @@ sub get { order by start }; - #print STDERR $query."\n"; - #print STDERR Dumper(\@bind_values); + #print STDERR $query."\n"; + #print STDERR Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); - for my $entry (@$entries) { - $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); - } + my $entries = db::get( $dbh, $query, \@bind_values ); + for my $entry (@$entries) { + $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); + } - return $entries; + return $entries; } #check if event is scheduled (on permission check) sub is_event_scheduled { - my $request = shift; - my $options = shift; + my $request = shift; + my $options = shift; - return 0 unless defined $options->{project_id}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{series_id}; - return 0 unless defined $options->{start_at}; + return 0 unless defined $options->{project_id}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{series_id}; + return 0 unless defined $options->{start_at}; - my $config = $request->{config}; - my $schedules = series_dates::get( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - start_at => $options->{start_at} - } - ); - return 0 if ( @$schedules != 1 ); - return 1; + my $config = $request->{config}; + my $schedules = series_dates::get( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + start_at => $options->{start_at} + } + ); + return 0 if scalar @$schedules != 1; + return 1; } #get all series for given studio_id, time range and search sub get_series { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my $date_range_include = 0; - $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); + my $date_range_include = 0; + $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - push @conditions, 'd.series_id=s.id'; + push @conditions, 'd.series_id=s.id'; - # push @conditions, 'd.studio_id=s.studio_id'; + # push @conditions, 'd.studio_id=s.studio_id'; - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'd.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'd.project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'd.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'd.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'd.series_id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'd.series_id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { - push @conditions, 'd.start=?'; - push @bind_values, $condition->{start_at}; - } + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'd.start=?'; + push @bind_values, $condition->{start_at}; + } - if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { - if ( $date_range_include == 1 ) { - push @conditions, 'd.end_date>=?'; - push @bind_values, $condition->{from}; - } else { - push @conditions, 'd.start_date>=?'; - push @bind_values, $condition->{from}; - } - } + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'd.end_date>=?'; + push @bind_values, $condition->{from}; + } else { + push @conditions, 'd.start_date>=?'; + push @bind_values, $condition->{from}; + } + } - if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { - if ( $date_range_include == 1 ) { - push @conditions, 'd.start_date<=?'; - push @bind_values, $condition->{till}; - } else { - push @conditions, 'd.end_date{till}; - } - } + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'd.start_date<=?'; + push @bind_values, $condition->{till}; + } else { + push @conditions, 'd.end_date{till}; + } + } - if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { - push @conditions, 'd.id=?'; - push @bind_values, $condition->{schedule_id}; - } + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'd.id=?'; + push @bind_values, $condition->{schedule_id}; + } - if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { - push @conditions, 'd.exclude=?'; - push @bind_values, $condition->{exclude}; - } + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'd.exclude=?'; + push @bind_values, $condition->{exclude}; + } - my $search_cond = ''; - if ( ( defined $condition->{search} ) && ( $condition->{search} ne '' ) ) { - my $search = lc $condition->{search}; - $search =~ s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; - $search =~ s/\%+/\%/; - $search =~ s/^[\%\s]+//; - $search =~ s/[\%\s]+$//; - if ( $search ne '' ) { - $search = '%' . $search . '%'; - my @attr = ( 's.title', 's.series_name', 's.excerpt', 's.category', 's.content' ); - push @conditions, "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; - for my $attr (@attr) { - push @bind_values, $search; - } - } - } + my $search_cond = ''; + if ( ( defined $condition->{search} ) && ( $condition->{search} ne '' ) ) { + my $search = lc $condition->{search}; + $search =~ s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; + $search =~ s/\%+/\%/; + $search =~ s/^[\%\s]+//; + $search =~ s/[\%\s]+$//; + if ( $search ne '' ) { + $search = '%' . $search . '%'; + my @attr = ( 's.title', 's.series_name', 's.excerpt', 's.category', 's.content' ); + push @conditions, "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + for my $attr (@attr) { + push @bind_values, $search; + } + } + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select date(d.start) start_date ,date(d.end) end_date ,dayname(d.start) weekday @@ -248,333 +248,333 @@ sub get_series { order by start }; - my $entries = db::get( $dbh, $query, \@bind_values ); + my $entries = db::get( $dbh, $query, \@bind_values ); - for my $entry (@$entries) { - $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); - } + for my $entry (@$entries) { + $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); + } - # add series schedule - $entries = series_dates::addSeriesScheduleAttributes( $config, $entries ); + # add series schedule + $entries = series_dates::addSeriesScheduleAttributes( $config, $entries ); - return $entries; + return $entries; } sub addSeriesScheduleAttributes { - my $config = shift; - my $entries = shift; + my $config = shift; + my $entries = shift; - my $scheduleIds = {}; + my $scheduleIds = {}; - # get series schedule ids used at entries - for my $entry (@$entries) { - $scheduleIds->{ $entry->{series_schedule_id} } = 1; - } - my @scheduleIds = keys %$scheduleIds; - return $entries if scalar(@scheduleIds) == 0; + # get series schedule ids used at entries + for my $entry (@$entries) { + $scheduleIds->{ $entry->{series_schedule_id} } = 1; + } + my @scheduleIds = keys %$scheduleIds; + return $entries if scalar(@scheduleIds) == 0; - # get schedules with schedule ids - my $schedules = series_schedule::get( - $config, - { - schedule_ids => \@scheduleIds - } - ); + # get schedules with schedule ids + my $schedules = series_schedule::get( + $config, + { + schedule_ids => \@scheduleIds + } + ); - # get schedules by id - my $scheduleById = {}; - for my $schedule (@$schedules) { - $scheduleById->{ $schedule->{schedule_id} } = $schedule; - } + # get schedules by id + my $scheduleById = {}; + for my $schedule (@$schedules) { + $scheduleById->{ $schedule->{schedule_id} } = $schedule; + } - for my $entry (@$entries) { - $entry->{frequency} = $scheduleById->{ $entry->{series_schedule_id} }->{frequency}; - $entry->{period_type} = $scheduleById->{ $entry->{series_schedule_id} }->{period_type}; - } + for my $entry (@$entries) { + $entry->{frequency} = $scheduleById->{ $entry->{series_schedule_id} }->{frequency}; + $entry->{period_type} = $scheduleById->{ $entry->{series_schedule_id} }->{period_type}; + } - return $entries; + return $entries; } #update series dates for all schedules of a series and studio_id sub update { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{series_id}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - #delete all dates for series (by studio and series id) - series_dates::delete( $config, $entry ); + #delete all dates for series (by studio and series id) + series_dates::delete( $config, $entry ); - my $day_start = $config->{date}->{day_starting_hour}; + my $day_start = $config->{date}->{day_starting_hour}; - #get all schedules for series ordered by exclude, date - my $schedules = series_schedule::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - } - ); + #get all schedules for series ordered by exclude, date + my $schedules = series_schedule::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + } + ); - #add scheduled series dates and remove exluded dates - my $series_dates = {}; + #add scheduled series dates and remove exluded dates + my $series_dates = {}; - #TODO:set schedules exclude to 0 if not 1 - #insert all normal dates (not excludes) - for my $schedule (@$schedules) { - my $dates = get_schedule_dates( $schedule, { exclude => 0 } ); - for my $date (@$dates) { - $date->{exclude} = 0; - $series_dates->{ $date->{start} } = $date; + #TODO:set schedules exclude to 0 if not 1 + #insert all normal dates (not excludes) + for my $schedule (@$schedules) { + my $dates = get_schedule_dates( $schedule, { exclude => 0 } ); + for my $date (@$dates) { + $date->{exclude} = 0; + $series_dates->{ $date->{start} } = $date; - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); - } - } + #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); + } + } - #insert / overwrite all exlude dates - for my $schedule (@$schedules) { - my $dates = get_schedule_dates( $schedule, { exclude => 1 } ); - for my $date (@$dates) { - $date->{exclude} = 1; - $series_dates->{ $date->{start} } = $date; + #insert / overwrite all exlude dates + for my $schedule (@$schedules) { + my $dates = get_schedule_dates( $schedule, { exclude => 1 } ); + for my $date (@$dates) { + $date->{exclude} = 1; + $series_dates->{ $date->{start} } = $date; - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); - } - } + #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); + } + } - #print STDERR Dumper($series_dates->{'2014-02-05 19:00:00'}); + #print STDERR Dumper($series_dates->{'2014-02-05 19:00:00'}); - my $request = { config => $config }; + my $request = { config => $config }; - my $i = 0; - my $j = 0; - for my $date ( keys %$series_dates ) { - my $series_date = $series_dates->{$date}; + my $i = 0; + my $j = 0; + for my $date ( keys %$series_dates ) { + my $series_date = $series_dates->{$date}; - #insert date - my $entry = { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - series_schedule_id => $series_date->{series_schedule_id}, - start => $series_date->{start}, - end => $series_date->{end}, - exclude => $series_date->{exclude}, - }; - if ( studio_timeslot_dates::can_studio_edit_events( $config, $entry ) == 1 ) { # by studio_id, start, end - $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); - $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); - db::insert( $dbh, 'calcms_series_dates', $entry ); + #insert date + my $entry = { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + series_schedule_id => $series_date->{series_schedule_id}, + start => $series_date->{start}, + end => $series_date->{end}, + exclude => $series_date->{exclude}, + }; + if ( studio_timeslot_dates::can_studio_edit_events( $config, $entry ) == 1 ) { # by studio_id, start, end + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + db::insert( $dbh, 'calcms_series_dates', $entry ); - #print STDERR "$entry->{start_date}\n"; - $i++; - } else { - $j++; + #print STDERR "$entry->{start_date}\n"; + $i++; + } else { + $j++; - #print STDERR Dumper($entry); - } - } + #print STDERR Dumper($entry); + } + } - #print STDERR "$i series_dates updates\n"; - return $j . " dates out of studio times, " . $i; + #print STDERR "$i series_dates updates\n"; + return $j . " dates out of studio times, " . $i; } sub get_schedule_dates { - my $schedule = shift; - my $options = shift; + my $schedule = shift; + my $options = shift; - my $is_exclude = $options->{exclude} || 0; - my $dates = []; - return $dates if ( ( $is_exclude eq '1' ) && ( $schedule->{exclude} ne '1' ) ); - return $dates if ( ( $is_exclude eq '0' ) && ( $schedule->{exclude} eq '1' ) ); + my $is_exclude = $options->{exclude} || 0; + my $dates = []; + return $dates if ( $is_exclude eq '1' ) && ( $schedule->{exclude} ne '1' ); + return $dates if ( $is_exclude eq '0' ) && ( $schedule->{exclude} eq '1' ); - if ( $schedule->{period_type} eq 'single' ) { - $dates = get_single_date( $schedule->{start}, $schedule->{duration} ); - } elsif ( $schedule->{period_type} eq 'days' ) { - $dates = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{frequency} ); - } elsif ( $schedule->{period_type} eq 'week_of_month' ) { - $dates = get_week_of_month_dates( - $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{week_of_month}, - $schedule->{weekday}, $schedule->{month}, $schedule->{nextDay} - ); - } else { - print STDERR "unknown schedule period_type\n"; - } + if ( $schedule->{period_type} eq 'single' ) { + $dates = get_single_date( $schedule->{start}, $schedule->{duration} ); + } elsif ( $schedule->{period_type} eq 'days' ) { + $dates = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{frequency} ); + } elsif ( $schedule->{period_type} eq 'week_of_month' ) { + $dates = get_week_of_month_dates( + $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{week_of_month}, + $schedule->{weekday}, $schedule->{month}, $schedule->{nextDay} + ); + } else { + print STDERR "unknown schedule period_type\n"; + } - # set series schedule id - for my $date (@$dates) { - $date->{series_schedule_id} = $schedule->{schedule_id}; - } - return $dates; + # set series schedule id + for my $date (@$dates) { + $date->{series_schedule_id} = $schedule->{schedule_id}; + } + return $dates; } sub get_week_of_month_dates { - my $start = shift; # datetime string - my $end = shift; # datetime string - my $duration = shift; # in minutes - my $week = shift; # every nth week of month - my $weekday = shift; # weekday [1..7] - my $frequency = shift; # every 1st,2nd,3th time - my $nextDay = shift; # add 24 hours to start, (for night hours at last weekday of month) + my $start = shift; # datetime string + my $end = shift; # datetime string + my $duration = shift; # in minutes + my $week = shift; # every nth week of month + my $weekday = shift; # weekday [1..7] + my $frequency = shift; # every 1st,2nd,3th time + my $nextDay = shift; # add 24 hours to start, (for night hours at last weekday of month) - return undef if $start eq ''; - return undef if $end eq ''; - return undef if $duration eq ''; - return undef if $week eq ''; - return undef if $weekday eq ''; - return undef if $frequency eq ''; - return undef if $frequency == 0; + return undef if $start eq ''; + return undef if $end eq ''; + return undef if $duration eq ''; + return undef if $week eq ''; + return undef if $weekday eq ''; + return undef if $frequency eq ''; + return undef if $frequency == 0; - my $start_dates = time::get_nth_weekday_in_month( $start, $end, $week, $weekday ); + my $start_dates = time::get_nth_weekday_in_month( $start, $end, $week, $weekday ); - if ( ( defined $nextDay ) && ( $nextDay > 0 ) ) { - for ( my $i = 0 ; $i < @$start_dates ; $i++ ) { - $start_dates->[$i] = time::add_hours_to_datetime( $start_dates->[$i], 24 ); - } - } + if ( ( defined $nextDay ) && ( $nextDay > 0 ) ) { + for ( my $i = 0 ; $i < @$start_dates ; $i++ ) { + $start_dates->[$i] = time::add_hours_to_datetime( $start_dates->[$i], 24 ); + } + } - my $results = []; + my $results = []; - my $c = -1; - for my $start_datetime (@$start_dates) { - $c++; - my @start = @{ time::datetime_to_array($start_datetime) }; - next unless @start >= 6; - next if ( ( $c % $frequency ) != 0 ); + my $c = -1; + for my $start_datetime (@$start_dates) { + $c++; + my @start = @{ time::datetime_to_array($start_datetime) }; + next unless @start >= 6; + next if ( $c % $frequency ) != 0; - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds - ); - my $end_datetime = time::array_to_datetime( \@end_datetime ); + my @end_datetime = Date::Calc::Add_Delta_DHMS( + $start[0], $start[1], $start[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds + ); + my $end_datetime = time::array_to_datetime( \@end_datetime ); - push @$results, - { - start => $start_datetime, - end => $end_datetime - }; - } - return $results; + push @$results, + { + start => $start_datetime, + end => $end_datetime + }; + } + return $results; } #add duration to a single date sub get_single_date { - my $start_datetime = shift; - my $duration = shift; + my $start_datetime = shift; + my $duration = shift; - my @start = @{ time::datetime_to_array($start_datetime) }; - return unless @start >= 6; + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds - ); - my $date = { - start => $start_datetime, - end => time::array_to_datetime( \@end_datetime ) - }; - return [$date]; + my @end_datetime = Date::Calc::Add_Delta_DHMS( + $start[0], $start[1], $start[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds + ); + my $date = { + start => $start_datetime, + end => time::array_to_datetime( \@end_datetime ) + }; + return [$date]; } #calculate all dates between start_datetime and end_date with duration(minutes) and frequency(days) sub get_dates { - my $start_datetime = shift; - my $end_date = shift; - my $duration = shift; # in minutes - my $frequency = shift; # in days - #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; + my $start_datetime = shift; + my $end_date = shift; + my $duration = shift; # in minutes + my $frequency = shift; # in days + #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; - my @start = @{ time::datetime_to_array($start_datetime) }; - return unless @start >= 6; - my @start_date = ( $start[0], $start[1], $start[2] ); - my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] ); + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; + my @start_date = ( $start[0], $start[1], $start[2] ); + my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] ); - #print STDERR "$start_datetime,$end_date,$duration,$frequency\n"; + #print STDERR "$start_datetime,$end_date,$duration,$frequency\n"; - #return on single date - my $date = {}; - $date->{start} = sprintf( "%04d-%02d-%02d", @start_date ) . ' ' . $start_time; - return undef if $duration eq ''; + #return on single date + my $date = {}; + $date->{start} = sprintf( "%04d-%02d-%02d", @start_date ) . ' ' . $start_time; + return undef if $duration eq ''; - return undef if ( ( $frequency eq '' ) || ( $end_date eq '' ) ); + return undef if ( $frequency eq '' ) || ( $end_date eq '' ); - #continue on recurring date - my @end = @{ time::datetime_to_array($end_date) }; - return unless @end >= 3; - my @end_date = ( $end[0], $end[1], $end[2] ); + #continue on recurring date + my @end = @{ time::datetime_to_array($end_date) }; + return unless scalar @end >= 3; + my @end_date = ( $end[0], $end[1], $end[2] ); - my $today = time::time_to_date(); - my ( $year, $month, $day ) = split( /\-/, $today ); + my $today = time::time_to_date(); + my ( $year, $month, $day ) = split( /\-/, $today ); - my $dates = []; - return $dates if ( $end_date lt $today ); - return $dates if ( $frequency < 1 ); + my $dates = []; + return $dates if $end_date lt $today; + return $dates if $frequency < 1; - my $j = Date::Calc::Delta_Days( @start_date, @end_date ); - my $c = 0; - for ( my $i = 0 ; $i <= $j ; $i += $frequency ) { - my @date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); - my $date = {}; - $date->{start} = sprintf( "%04d-%02d-%02d", @date ) . ' ' . $start_time; + my $j = Date::Calc::Delta_Days( @start_date, @end_date ); + my $c = 0; + for ( my $i = 0 ; $i <= $j ; $i += $frequency ) { + my @date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); + my $date = {}; + $date->{start} = sprintf( "%04d-%02d-%02d", @date ) . ' ' . $start_time; - #if($date->{start} gt $today){ - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $date[0], $date[1], $date[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds - ); - $date->{end} = time::array_to_datetime( \@end_datetime ); - push @$dates, $date; + #if($date->{start} gt $today){ + my @end_datetime = Date::Calc::Add_Delta_DHMS( + $date[0], $date[1], $date[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds + ); + $date->{end} = time::array_to_datetime( \@end_datetime ); + push @$dates, $date; - #} - last if ( $c > 200 ); - $c++; - } - return $dates; + #} + last if ( $c > 200 ); + $c++; + } + return $dates; } #remove all series_dates for studio_id and series_id sub delete { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return unless defined $entry->{project_id}; - return unless defined $entry->{studio_id}; - return unless defined $entry->{series_id}; + return unless defined $entry->{project_id}; + return unless defined $entry->{studio_id}; + return unless defined $entry->{series_id}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = qq{ + my $query = qq{ delete from calcms_series_dates where project_id=? and studio_id=? and series_id=? }; - my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id} ]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id} ]; - #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put( $dbh, $query, $bind_values ); + #print '
      $query'.$query.Dumper($bind_values).'
      '; + db::put( $dbh, $query, $bind_values ); } # get all series dates where no event has been created for sub getDatesWithoutEvent { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - return unless defined $options->{project_id}; - return unless defined $options->{studio_id}; - return unless defined $options->{from}; - return unless defined $options->{till}; + return unless defined $options->{project_id}; + return unless defined $options->{studio_id}; + return unless defined $options->{from}; + return unless defined $options->{till}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = q{ + my $query = q{ SELECT sd.* FROM calcms_series_dates sd LEFT JOIN calcms_events e on (sd.start = e.start) @@ -587,15 +587,15 @@ sub getDatesWithoutEvent { order by sd.start }; - my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{from}, $options->{till} ]; - my $entries = db::get( $dbh, $query, $bind_values ); - return $entries; + my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{from}, $options->{till} ]; + my $entries = db::get( $dbh, $query, $bind_values ); + return $entries; } sub error { - my $msg = shift; - print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index f975660..9e303fb 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -39,147 +39,147 @@ sub debug; # do not check for project,studio,series # all changed columns are returned for history handling sub save_content { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - return undef unless ( defined $entry->{id} ); + return undef unless ( defined $entry->{id} ); - for my $attr ( keys %$entry ) { - next unless defined $entry->{$attr}; - $entry->{$attr} =~ s/^\s+//g; - $entry->{$attr} =~ s/\s+$//g; - } + for my $attr ( keys %$entry ) { + next unless defined $entry->{$attr}; + $entry->{$attr} =~ s/^\s+//g; + $entry->{$attr} =~ s/\s+$//g; + } - for my $attr ( 'image', 'series_image' ) { - $entry->{$attr} = images::normalizeName( $entry->{$attr} ) if defined $entry->{$attr}; - } + for my $attr ( 'image', 'series_image' ) { + $entry->{$attr} = images::normalizeName( $entry->{$attr} ) if defined $entry->{$attr}; + } - #print STDERR Dumper(\$entry->{content}); - for my $attr ( 'content', 'topic' ) { - if ( defined $entry->{$attr} ) { - $entry->{ 'html_' . $attr } = markup::creole_to_html( $entry->{$attr} ); + #print STDERR Dumper(\$entry->{content}); + for my $attr ( 'content', 'topic' ) { + if ( defined $entry->{$attr} ) { + $entry->{ 'html_' . $attr } = markup::creole_to_html( $entry->{$attr} ); - #$entry->{'html_'.$attr}=~s/([^\>])\n+([^\<])/$1$2/g; - #$entry->{'html_'.$attr}=~s/^\s*(

      )?//g; - #$entry->{'html_'.$attr}=~s/(<\/p>)?\s*$//g; - } - } + #$entry->{'html_'.$attr}=~s/([^\>])\n+([^\<])/$1$2/g; + #$entry->{'html_'.$attr}=~s/^\s*(

      )?//g; + #$entry->{'html_'.$attr}=~s/(<\/p>)?\s*$//g; + } + } - #print STDERR Dumper(\$entry->{series_image}); - #print STDERR "ok2\n"; - #return; - $entry->{modified_at} = time::time_to_datetime( time() ); + #print STDERR Dumper(\$entry->{series_image}); + #print STDERR "ok2\n"; + #return; + $entry->{modified_at} = time::time_to_datetime( time() ); - #return; - #update only existing atributes + #return; + #update only existing atributes - #TODO: double check series_name (needed for reassignment but not for editing...) - my @keys = (); - for my $key ( - 'series_name', 'title', 'excerpt', 'content', - 'html_content', 'user_title', 'user_excerpt', 'topic', - 'html_topic', 'episode', 'image', 'image_label', - 'series_image', 'series_image_label', 'podcast_url', 'archive_url', - 'live', 'published', 'playout', 'archived', - 'rerun', 'draft', 'disable_event_sync', 'modified_by' - ) - { - push @keys, $key if defined $entry->{$key}; - } - $entry->{episode} = undef if ( defined $entry->{episode} ) && ( $entry->{episode} eq '0' ); - $entry->{published} = 0 if ( defined $entry->{draft} ) && ( $entry->{draft} eq '1' ); + #TODO: double check series_name (needed for reassignment but not for editing...) + my @keys = (); + for my $key ( + 'series_name', 'title', 'excerpt', 'content', + 'html_content', 'user_title', 'user_excerpt', 'topic', + 'html_topic', 'episode', 'image', 'image_label', + 'series_image', 'series_image_label', 'podcast_url', 'archive_url', + 'live', 'published', 'playout', 'archived', + 'rerun', 'draft', 'disable_event_sync', 'modified_by' + ) + { + push @keys, $key if defined $entry->{$key}; + } + $entry->{episode} = undef if ( defined $entry->{episode} ) && ( $entry->{episode} eq '0' ); + $entry->{published} = 0 if ( defined $entry->{draft} ) && ( $entry->{draft} eq '1' ); - my $values = join( ",", map { $_ . '=?' } (@keys) ); - my @bind_values = map { $entry->{$_} } (@keys); + my $values = join( ",", map { $_ . '=?' } (@keys) ); + my @bind_values = map { $entry->{$_} } (@keys); - push @bind_values, $entry->{id}; - my $query = qq{ + push @bind_values, $entry->{id}; + my $query = qq{ update calcms_events set $values where id=? }; - #print STDERR "update:".$query.Dumper(\@bind_values); - my $result = db::put( $dbh, $query, \@bind_values ); - unless ( defined $result ) { - print STDERR "error on updating event\n"; - return undef; - } + #print STDERR "update:".$query.Dumper(\@bind_values); + my $result = db::put( $dbh, $query, \@bind_values ); + unless ( defined $result ) { + print STDERR "error on updating event\n"; + return undef; + } - #print STDERR "result=$result\n"; - #print STDERR "entr after update".Dumper($entry); - return $entry; + #print STDERR "result=$result\n"; + #print STDERR "entr after update".Dumper($entry); + return $entry; } # save event time by id # do not check project, studio, series # for history handling all changed columns are returned sub save_event_time { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless ( defined $entry->{id} ); - return undef unless ( defined $entry->{duration} ); - return undef unless ( defined $entry->{start_date} ); + return undef unless ( defined $entry->{id} ); + return undef unless ( defined $entry->{duration} ); + return undef unless ( defined $entry->{start_date} ); - my $dbh = db::connect($config); - my $event = { - id => $entry->{id}, - start => $entry->{start_date}, - end => time::add_minutes_to_datetime( $entry->{start_date}, $entry->{duration} ) - }; + my $dbh = db::connect($config); + my $event = { + id => $entry->{id}, + start => $entry->{start_date}, + end => time::add_minutes_to_datetime( $entry->{start_date}, $entry->{duration} ) + }; - my $day_start = $config->{date}->{day_starting_hour}; - my $event_hour = int( ( split( /[\-\:\sT]/, $event->{start} ) )[3] ); + my $day_start = $config->{date}->{day_starting_hour}; + my $event_hour = int( ( split( /[\-\:\sT]/, $event->{start} ) )[3] ); - my @update_columns = (); - my $bind_values = []; - push @update_columns, 'start=?'; - push @$bind_values, $event->{start}; + my @update_columns = (); + my $bind_values = []; + push @update_columns, 'start=?'; + push @$bind_values, $event->{start}; - push @update_columns, 'end=?'; - push @$bind_values, $event->{end}; + push @update_columns, 'end=?'; + push @$bind_values, $event->{end}; - # add start date - my $start_date = time::add_hours_to_datetime( $event->{start}, -$day_start ); - push @update_columns, 'start_date=?'; - push @$bind_values, $start_date; - $event->{start_date} = $start_date; + # add start date + my $start_date = time::add_hours_to_datetime( $event->{start}, -$day_start ); + push @update_columns, 'start_date=?'; + push @$bind_values, $start_date; + $event->{start_date} = $start_date; - # add end date - my $end_date = time::add_hours_to_datetime( $event->{end}, -$day_start ); - push @update_columns, 'end_date=?'; - push @$bind_values, $end_date; - $event->{end_date} = $end_date; + # add end date + my $end_date = time::add_hours_to_datetime( $event->{end}, -$day_start ); + push @update_columns, 'end_date=?'; + push @$bind_values, $end_date; + $event->{end_date} = $end_date; - my $update_columns = join( ",\n", @update_columns ); - my $update_sql = qq{ + my $update_columns = join( ",\n", @update_columns ); + my $update_sql = qq{ update calcms_events set $update_columns where id=? }; - push @$bind_values, $event->{id}; + push @$bind_values, $event->{id}; - #print STDERR $update_sql."\n".Dumper($bind_values)."\n"; - db::put( $dbh, $update_sql, $bind_values ); - return $event; + #print STDERR $update_sql."\n".Dumper($bind_values)."\n"; + db::put( $dbh, $update_sql, $bind_values ); + return $event; } sub set_playout_status { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{start}; - return undef unless defined $entry->{playout}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{start}; + return undef unless defined $entry->{playout}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - # check if event is assigned to project and studio - my $sql = qq{ + # check if event is assigned to project and studio + my $sql = qq{ select se.event_id event_id from calcms_series_events se, calcms_events e where @@ -188,82 +188,82 @@ sub set_playout_status { and se.project_id=? and se.studio_id=? }; - my $bind_values = [ $entry->{start}, $entry->{project_id}, $entry->{studio_id} ]; + my $bind_values = [ $entry->{start}, $entry->{project_id}, $entry->{studio_id} ]; - #print STDERR Dumper($sql).Dumper($bind_values); - my $events = db::get( $dbh, $sql, $bind_values ); + #print STDERR Dumper($sql).Dumper($bind_values); + my $events = db::get( $dbh, $sql, $bind_values ); - #print STDERR Dumper($events); - return undef if scalar(@$events) != 1; - my $event_id = $events->[0]->{event_id}; - $sql = qq{ + #print STDERR Dumper($events); + return undef if scalar(@$events) != 1; + my $event_id = $events->[0]->{event_id}; + $sql = qq{ update calcms_events set playout=? where id=? and start=? }; - $bind_values = [ $entry->{playout}, $event_id, $entry->{start} ]; + $bind_values = [ $entry->{playout}, $event_id, $entry->{start} ]; - #print STDERR $sql."\n".Dumper($bind_values)."\n"; - my $result = db::put( $dbh, $sql, $bind_values ); - return $result; + #print STDERR $sql."\n".Dumper($bind_values)."\n"; + my $result = db::put( $dbh, $sql, $bind_values ); + return $result; } # is event assigned to project, studio and series? sub is_event_assigned { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return 0 unless defined $entry->{project_id}; - return 0 unless defined $entry->{studio_id}; - return 0 unless defined $entry->{series_id}; - return 0 unless defined $entry->{event_id}; + return 0 unless defined $entry->{project_id}; + return 0 unless defined $entry->{studio_id}; + return 0 unless defined $entry->{series_id}; + return 0 unless defined $entry->{event_id}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $sql = q{ + my $sql = q{ select * from calcms_series_events where project_id=? and studio_id=? and series_id=? and event_id=? }; - my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; - my $results = db::get( $dbh, $sql, $bind_values ); + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; + my $results = db::get( $dbh, $sql, $bind_values ); - return 1 if @$results >= 1; - return 0; + return 1 if scalar @$results >= 1; + return 0; } sub delete_event { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{series_id}; - return undef unless defined $entry->{event_id}; - return undef unless defined $entry->{user}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; + return undef unless defined $entry->{event_id}; + return undef unless defined $entry->{user}; - #is event assigned to project, studio and series? - unless ( is_event_assigned( $config, $entry ) == 1 ) { - print STDERR + #is event assigned to project, studio and series? + unless ( is_event_assigned( $config, $entry ) == 1 ) { + print STDERR "cannot delete event with project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}, event_id=$entry->{event_id}"; - return 0; - } + return 0; + } - event_history::insert_by_event_id( $config, $entry ); + event_history::insert_by_event_id( $config, $entry ); - #delete the association - series::unassign_event( $config, $entry ); + #delete the association + series::unassign_event( $config, $entry ); - # delete the event - my $dbh = db::connect($config); - my $sql = q{ + # delete the event + my $dbh = db::connect($config); + my $sql = q{ delete from calcms_events where id=? }; - my $bind_values = [ $entry->{event_id} ]; - db::put( $dbh, $sql, $bind_values ); + my $bind_values = [ $entry->{event_id} ]; + db::put( $dbh, $sql, $bind_values ); - return 1; + return 1; } #check permissions @@ -272,141 +272,141 @@ sub delete_event { # key check_for: user, studio, series, events, schedule # return error text or 1 if okay sub check_permission { - my $request = shift; - my $options = shift; + my $request = shift; + my $options = shift; - return "missing permission at check" unless defined $options->{permission}; - return "missing check_for at check" unless defined $options->{check_for}; - return "missing user at check" unless defined $request->{user}; - return "missing project_id at check" unless defined $options->{project_id}; - return "missing studio_id at check" unless defined $options->{studio_id}; - return "missing series_id at check" unless defined $options->{series_id}; + return "missing permission at check" unless defined $options->{permission}; + return "missing check_for at check" unless defined $options->{check_for}; + return "missing user at check" unless defined $request->{user}; + return "missing project_id at check" unless defined $options->{project_id}; + return "missing studio_id at check" unless defined $options->{studio_id}; + return "missing series_id at check" unless defined $options->{series_id}; - my $permissions = $request->{permissions}; - my $config = $request->{config}; + my $permissions = $request->{permissions}; + my $config = $request->{config}; - my $studio_check = studios::check( $config, $options ); - return $studio_check if ( $studio_check ne '1' ); - print STDERR "check studio ok\n"; + my $studio_check = studios::check( $config, $options ); + return $studio_check if ( $studio_check ne '1' ); + print STDERR "check studio ok\n"; - my $project_check = project::check( $config, $options ); - return $project_check if ( $project_check ne '1' ); - print STDERR "check project ok\n"; + my $project_check = project::check( $config, $options ); + return $project_check if ( $project_check ne '1' ); + print STDERR "check project ok\n"; - #check if permissions are set (like create_event) - my $found = 0; - for my $permission ( split /\,/, $options->{permission} ) { - $found = 1 if ( ( defined $permissions->{$permission} ) && ( $permissions->{$permission} ) eq '1' ); - } - return 'missing permission to ' . $options->{permission} if $found == 0; - delete $options->{permission}; + #check if permissions are set (like create_event) + my $found = 0; + for my $permission ( split /\,/, $options->{permission} ) { + $found = 1 if ( defined $permissions->{$permission} ) && ( $permissions->{$permission} ) eq '1' ; + } + return 'missing permission to ' . $options->{permission} if $found == 0; + delete $options->{permission}; - #convert check list to hash - my $check = {}; - for my $permission ( @{ $options->{check_for} } ) { - $check->{$permission} = 1; - } - delete $options->{check_for}; + #convert check list to hash + my $check = {}; + for my $permission ( @{ $options->{check_for} } ) { + $check->{$permission} = 1; + } + delete $options->{check_for}; - # is project assigned to studio - return "studio is not assigned to project" unless project::is_studio_assigned( $config, $options ) == 1; + # is project assigned to studio + return "studio is not assigned to project" unless project::is_studio_assigned( $config, $options ) == 1; - #get studio names - my $studios = studios::get( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id} - } - ); - return "unknown studio" unless defined $studios; - return "unknown studio" unless ( @$studios == 1 ); - my $studio = $studios->[0]; - my $studio_name = $studio->{name} || ''; + #get studio names + my $studios = studios::get( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id} + } + ); + return "unknown studio" unless defined $studios; + return "unknown studio" unless scalar @$studios == 1; + my $studio = $studios->[0]; + my $studio_name = $studio->{name} || ''; - #get series names - my $series = series::get( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id} - } - ); - my $series_name = $series->[0]->{series_name} || ''; - $series_name .= ' - ' . $series->[0]->{title} if $series->[0]->{series_name} ne ''; + #get series names + my $series = series::get( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id} + } + ); + my $series_name = $series->[0]->{series_name} || ''; + $series_name .= ' - ' . $series->[0]->{title} if $series->[0]->{series_name} ne ''; - my $draft = 0; - $draft = 1 if ( defined $options->{draft} ) && ( $options->{draft} == 1 ); + my $draft = 0; + $draft = 1 if ( defined $options->{draft} ) && ( $options->{draft} == 1 ); - #check all items from checklist - if ( ( defined $check->{user} ) && ( uac::is_user_assigned_to_studio( $request, $options ) == 0 ) ) { - return "User '$request->{user}' is not assigned to studio $studio_name ($options->{studio_id})"; - } + #check all items from checklist + if ( ( defined $check->{user} ) && ( uac::is_user_assigned_to_studio( $request, $options ) == 0 ) ) { + return "User '$request->{user}' is not assigned to studio $studio_name ($options->{studio_id})"; + } - if ( ( defined $check->{studio} ) && ( project::is_series_assigned( $config, $options ) == 0 ) ) { - return "Series '$series_name' ($options->{series_id}) is not assigned to studio '$studio_name' ($options->{studio_id})"; - } + if ( ( defined $check->{studio} ) && ( project::is_series_assigned( $config, $options ) == 0 ) ) { + return "Series '$series_name' ($options->{series_id}) is not assigned to studio '$studio_name' ($options->{studio_id})"; + } - # check series and can user update events - if ( ( defined $check->{series} ) && ( series::can_user_update_events( $request, $options ) == 0 ) ) { - return "unknown series" unless defined $series; - return "User $request->{user} cannot update events for series '$series_name' ($options->{series_id})"; - } + # check series and can user update events + if ( ( defined $check->{series} ) && ( series::can_user_update_events( $request, $options ) == 0 ) ) { + return "unknown series" unless defined $series; + return "User $request->{user} cannot update events for series '$series_name' ($options->{series_id})"; + } - # check series and can user create events - if ( ( defined $check->{create_events} ) && ( series::can_user_create_events( $request, $options ) == 0 ) ) { - return "unknown series" unless defined $series; - return "User $request->{user} cannot create events for series '$series_name' ($options->{series_id})"; - } + # check series and can user create events + if ( ( defined $check->{create_events} ) && ( series::can_user_create_events( $request, $options ) == 0 ) ) { + return "unknown series" unless defined $series; + return "User $request->{user} cannot create events for series '$series_name' ($options->{series_id})"; + } - if ( ( $draft == 0 ) - && ( defined $check->{studio_timeslots} ) - && ( studio_timeslot_dates::can_studio_edit_events( $config, $options ) == 0 ) ) - { - return "requested time is not assigned to studio '$studio_name' ($options->{studio_id})"; - } + if ( ( $draft == 0 ) + && ( defined $check->{studio_timeslots} ) + && ( studio_timeslot_dates::can_studio_edit_events( $config, $options ) == 0 ) ) + { + return "requested time is not assigned to studio '$studio_name' ($options->{studio_id})"; + } - #check if event is assigned to user,project,studio,series,location - if ( defined $check->{events} ) { - return "missing event_id" unless defined $options->{event_id}; - my $result = series::is_event_assigned_to_user( $request, $options ); - return $result if $result ne '1'; - } + #check if event is assigned to user,project,studio,series,location + if ( defined $check->{events} ) { + return "missing event_id" unless defined $options->{event_id}; + my $result = series::is_event_assigned_to_user( $request, $options ); + return $result if $result ne '1'; + } - # prevent editing events that are over for more than 14 days - if ( ( $draft == 0 ) && ( defined $check->{event_age} ) ) { - if ( - series::is_event_older_than_days( - $config, - { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - event_id => $options->{event_id}, - max_age => 14 - } - ) == 1 - ) - { - return "show is over for more than 2 weeks" - unless ( ( defined $permissions->{update_event_after_week} ) - && ( $permissions->{update_event_after_week} eq '1' ) ); - } - } + # prevent editing events that are over for more than 14 days + if ( ( $draft == 0 ) && ( defined $check->{event_age} ) ) { + if ( + series::is_event_older_than_days( + $config, + { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + event_id => $options->{event_id}, + max_age => 14 + } + ) == 1 + ) + { + return "show is over for more than 2 weeks" + unless ( ( defined $permissions->{update_event_after_week} ) + && ( $permissions->{update_event_after_week} eq '1' ) ); + } + } - #check if schedule event exists for given date - if ( ( $draft == 0 ) && ( defined $check->{schedule} ) ) { - return "unknown series" unless defined $series; - return "missing start_at at check_permission" unless defined $options->{start_date}; + #check if schedule event exists for given date + if ( ( $draft == 0 ) && ( defined $check->{schedule} ) ) { + return "unknown series" unless defined $series; + return "missing start_at at check_permission" unless defined $options->{start_date}; - #TODO: check "is_event_scheduled" if start_at could be moved to start_date - $options->{start_at} = $options->{start_date}; - return "No event scheduled for series '$series_name' ($options->{series_id})" - if ( series_dates::is_event_scheduled( $request, $options ) == 0 ); - } + #TODO: check "is_event_scheduled" if start_at could be moved to start_date + $options->{start_at} = $options->{start_date}; + return "No event scheduled for series '$series_name' ($options->{series_id})" + if ( series_dates::is_event_scheduled( $request, $options ) == 0 ); + } - return '1'; + return '1'; } #not handled, yet: @@ -415,126 +415,126 @@ sub check_permission { #insert event sub insert_event { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - my $project_id = $options->{project_id}; - my $studio = $options->{studio}; - my $serie = $options->{serie}; - my $params = $options->{event}; - my $user = $options->{user}; + my $project_id = $options->{project_id}; + my $studio = $options->{studio}; + my $serie = $options->{serie}; + my $params = $options->{event}; + my $user = $options->{user}; - return 0 unless defined $studio; - return 0 unless defined $serie; - return 0 unless defined $params; - return 0 unless defined $user; - return 0 unless defined $studio->{location}; + return 0 unless defined $studio; + return 0 unless defined $serie; + return 0 unless defined $params; + return 0 unless defined $user; + return 0 unless defined $studio->{location}; - my $projects = project::get( $config, { project_id => $project_id } ); - if ( @$projects == 0 ) { - print STDERR "project not found at insert event\n"; - return 0; - } - my $projectName = $projects->[0]->{name}; - my $event = { - project => $projectName, - location => $studio->{location}, # location from studio - }; + my $projects = project::get( $config, { project_id => $project_id } ); + if ( scalar @$projects == 0 ) { + print STDERR "project not found at insert event\n"; + return 0; + } + my $projectName = $projects->[0]->{name}; + my $event = { + project => $projectName, + location => $studio->{location}, # location from studio + }; - #print '

      ';
      -	$event = series_events::add_event_dates( $config, $event, $params );
      +    #print '
      ';
      +    $event = series_events::add_event_dates( $config, $event, $params );
       
      -	#get event content from series
      -	for my $attr ( 'program', 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'episode', 'podcast_url', 'archive_url' ) {
      -		$event->{$attr} = $serie->{$attr} if defined $serie->{$attr};
      -	}
      -	$event->{series_image}       = $serie->{image}   if defined $serie->{image};
      -	$event->{series_image_label} = $serie->{licence} if defined $serie->{licence};
      +    #get event content from series
      +    for my $attr ( 'program', 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'episode', 'podcast_url', 'archive_url' ) {
      +        $event->{$attr} = $serie->{$attr} if defined $serie->{$attr};
      +    }
      +    $event->{series_image}       = $serie->{image}   if defined $serie->{image};
      +    $event->{series_image_label} = $serie->{licence} if defined $serie->{licence};
       
      -	#overwrite series values from parameters
      -	for my $attr (
      -		'program', 'series_name', 'title', 'user_title', 'excerpt',     'user_except',
      -		'content', 'topic',       'image', 'episode',    'podcast_url', 'archive_url'
      -	  )
      -	{
      -		$event->{$attr} = $params->{$attr} if defined $params->{$attr};
      -	}
      -	$event->{'html_content'} = markup::creole_to_html( $event->{'content'} ) if defined $event->{'content'};
      -	$event->{'html_topic'}   = markup::creole_to_html( $event->{'topic'} )   if defined $event->{'topic'};
      +    #overwrite series values from parameters
      +    for my $attr (
      +        'program', 'series_name', 'title', 'user_title', 'excerpt',     'user_except',
      +        'content', 'topic',       'image', 'episode',    'podcast_url', 'archive_url'
      +      )
      +    {
      +        $event->{$attr} = $params->{$attr} if defined $params->{$attr};
      +    }
      +    $event->{'html_content'} = markup::creole_to_html( $event->{'content'} ) if defined $event->{'content'};
      +    $event->{'html_topic'}   = markup::creole_to_html( $event->{'topic'} )   if defined $event->{'topic'};
       
      -	#add event status
      -	for my $attr ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync' ) {
      -		$event->{$attr} = $params->{$attr} || 0;
      -	}
      +    #add event status
      +    for my $attr ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync' ) {
      +        $event->{$attr} = $params->{$attr} || 0;
      +    }
       
      -	if ( $serie->{has_single_events} eq '1' ) {
      -		delete $event->{series_name};
      -		delete $event->{episode};
      -	}
      +    if ( $serie->{has_single_events} eq '1' ) {
      +        delete $event->{series_name};
      +        delete $event->{episode};
      +    }
       
      -	$event->{modified_at} = time::time_to_datetime( time() );
      -	$event->{created_at}  = time::time_to_datetime( time() );
      -	$event->{modified_by} = $user;
      +    $event->{modified_at} = time::time_to_datetime( time() );
      +    $event->{created_at}  = time::time_to_datetime( time() );
      +    $event->{modified_by} = $user;
       
      -	#print STDERR Dumper($event);
      -	my $dbh = db::connect($config);
      -	my $event_id = db::insert( $dbh, 'calcms_events', $event );
      +    #print STDERR Dumper($event);
      +    my $dbh = db::connect($config);
      +    my $event_id = db::insert( $dbh, 'calcms_events', $event );
       
      -	#add to history
      -	$event->{project_id} = $project_id;
      -	$event->{studio_id}  = $studio->{id};
      -	$event->{series_id}  = $serie->{series_id};
      -	$event->{event_id}   = $event_id;
      -	event_history::insert( $config, $event );
      -	return $event_id;
      +    #add to history
      +    $event->{project_id} = $project_id;
      +    $event->{studio_id}  = $studio->{id};
      +    $event->{series_id}  = $serie->{series_id};
      +    $event->{event_id}   = $event_id;
      +    event_history::insert( $config, $event );
      +    return $event_id;
       }
       
       #set start, end, start-date, end_date to an event
       sub add_event_dates {
      -	my $config = shift;
      -	my $event  = shift;
      -	my $params = shift;
      +    my $config = shift;
      +    my $event  = shift;
      +    my $params = shift;
       
      -	#start and end datetime
      -	$event->{start} = $params->{start_date};
      -	$event->{end} = time::add_minutes_to_datetime( $params->{start_date}, $params->{duration} );
      +    #start and end datetime
      +    $event->{start} = $params->{start_date};
      +    $event->{end} = time::add_minutes_to_datetime( $params->{start_date}, $params->{duration} );
       
      -	#set program days
      -	my $day_start = $config->{date}->{day_starting_hour};
      -	$event->{start_date} = time::date_cond( time::add_hours_to_datetime( $event->{start}, -$day_start ) );
      -	$event->{end_date}   = time::date_cond( time::add_hours_to_datetime( $event->{end},   -$day_start ) );
      -	return $event;
      +    #set program days
      +    my $day_start = $config->{date}->{day_starting_hour};
      +    $event->{start_date} = time::date_cond( time::add_hours_to_datetime( $event->{start}, -$day_start ) );
      +    $event->{end_date}   = time::date_cond( time::add_hours_to_datetime( $event->{end},   -$day_start ) );
      +    return $event;
       }
       
       sub update_series_images {
      -	my $config  = shift;
      -	my $options = shift;
      +    my $config  = shift;
      +    my $options = shift;
       
      -	return "missing project_id"   unless defined $options->{project_id};
      -	return "missing studio_id"    unless defined $options->{studio_id};
      -	return "missing series_id"    unless defined $options->{series_id};
      -	return "missing series_image" unless defined $options->{series_image};
      +    return "missing project_id"   unless defined $options->{project_id};
      +    return "missing studio_id"    unless defined $options->{studio_id};
      +    return "missing series_id"    unless defined $options->{series_id};
      +    return "missing series_image" unless defined $options->{series_image};
       
      -	#print "save $options->{series_image}\n";
      +    #print "save $options->{series_image}\n";
       
      -	my $events = series::get_events(
      -		$config,
      -		{
      -			project_id => $options->{project_id},
      -			studio_id  => $options->{studio_id},
      -			series_id  => $options->{series_id},
      -		}
      -	);
      +    my $events = series::get_events(
      +        $config,
      +        {
      +            project_id => $options->{project_id},
      +            studio_id  => $options->{studio_id},
      +            series_id  => $options->{series_id},
      +        }
      +    );
       
      -	for my $event (@$events) {
      -		$event->{series_image} = $options->{series_image};
      -		series_events::save_content( $config, $event );
      -	}
      +    for my $event (@$events) {
      +        $event->{series_image} = $options->{series_image};
      +        series_events::save_content( $config, $event );
      +    }
       }
       
       sub error {
      -	my $msg = shift;
      -	print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/lib/calcms/startup.pl b/lib/calcms/startup.pl index 55a6121..8daa587 100644 --- a/lib/calcms/startup.pl +++ b/lib/calcms/startup.pl @@ -2,6 +2,7 @@ use lib qw(/home/radio/calcms/calcms/); use Data::Dumper; use Apache::DBI(); + #$Apache::DBI::DEBUG = 2; use Time::Local(); diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 490c119..f9efaac 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -16,157 +16,157 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; sub get_columns { - my $config = shift; + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_studios' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_studios' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } sub get { - my $config = shift; - my $condition = shift || {}; + my $config = shift; + my $condition = shift || {}; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 's.id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 's.id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { - push @conditions, 's.name=?'; - push @bind_values, $condition->{name}; - } + if ( ( defined $condition->{name} ) && ( $condition->{name} ne '' ) ) { + push @conditions, 's.name=?'; + push @bind_values, $condition->{name}; + } - if ( ( defined $condition->{location} ) && ( $condition->{location} ne '' ) ) { - push @conditions, 's.location=?'; - push @bind_values, $condition->{location}; - } + if ( ( defined $condition->{location} ) && ( $condition->{location} ne '' ) ) { + push @conditions, 's.location=?'; + push @bind_values, $condition->{location}; + } - my $limit = ''; - if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { - $limit = 'limit ' . $condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $query = ''; - unless ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - $query = qq{ + my $query = ''; + unless ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $query = qq{ select * from calcms_studios s $conditions $limit }; - } else { - push @conditions, 's.id=ps.studio_id'; + } else { + push @conditions, 's.id=ps.studio_id'; - push @conditions, 'ps.project_id=?'; - push @bind_values, $condition->{project_id}; - my $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - $query = qq{ + push @conditions, 'ps.project_id=?'; + push @bind_values, $condition->{project_id}; + my $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $query = qq{ select * from calcms_studios s, calcms_project_studios ps $conditions $limit }; - } - my $dbh = db::connect($config); + } + my $dbh = db::connect($config); - #print STDERR Dumper($query).Dumper(\@bind_values); - my $studios = db::get( $dbh, $query, \@bind_values ); - return $studios; + #print STDERR Dumper($query).Dumper(\@bind_values); + my $studios = db::get( $dbh, $query, \@bind_values ); + return $studios; } sub getImageById { - my $config = shift; - my $conditions = shift; + my $config = shift; + my $conditions = shift; - return undef unless defined $conditions->{project_id}; - return undef unless defined $conditions->{studio_id}; - my $studios = studios::get( $config, $conditions ); - return undef if scalar(@$studios) != 1; - return $studios->[0]->{image}; + return undef unless defined $conditions->{project_id}; + return undef unless defined $conditions->{studio_id}; + my $studios = studios::get( $config, $conditions ); + return undef if scalar(@$studios) != 1; + return $studios->[0]->{image}; } sub insert { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - $entry->{created_at} = time::time_to_datetime( time() ); - $entry->{modified_at} = time::time_to_datetime( time() ); - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + $entry->{created_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - my $dbh = db::connect($config); - my $id = db::insert( $dbh, 'calcms_studios', $entry ); - return $id; + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_studios', $entry ); + return $id; } sub update { - my $config = shift; - my $studio = shift; + my $config = shift; + my $studio = shift; - $studio->{modified_at} = time::time_to_datetime( time() ); + $studio->{modified_at} = time::time_to_datetime( time() ); - my $columns = get_columns($config); - my $entry = {}; - for my $column ( keys %$columns ) { - $entry->{$column} = $studio->{$column} if defined $studio->{$column}; - } - $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; + my $columns = get_columns($config); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $studio->{$column} if defined $studio->{$column}; + } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values, $entry->{id}; + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{id}; - my $query = qq{ + my $query = qq{ update calcms_studios set $values where id=? }; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - #print STDERR Dumper($query)." ".Dumper(\@bind_values); - db::put( $dbh, $query, \@bind_values ); + #print STDERR Dumper($query)." ".Dumper(\@bind_values); + db::put( $dbh, $query, \@bind_values ); } sub delete { - my $config = shift; - my $studio = shift; + my $config = shift; + my $studio = shift; - my $dbh = db::connect($config); - db::put( $dbh, 'delete from calcms_studios where id=?', [ $studio->{id} ] ); + my $dbh = db::connect($config); + db::put( $dbh, 'delete from calcms_studios where id=?', [ $studio->{id} ] ); } #TODO rename to check sub check_studio { - my $config = shift; - my $options = shift; - return check( $config, $options ); + my $config = shift; + my $options = shift; + return check( $config, $options ); } sub check { - my $config = shift; - my $options = shift; - return "missing studio_id" unless defined $options->{studio_id}; - return "Please select a studio" if ( $options->{studio_id} eq '-1' ); - return "Please select a studio" if ( $options->{studio_id} eq '' ); - my $studios = studios::get( $config, { studio_id => $options->{studio_id} } ); - return "Sorry. unknown studio" unless defined $studios; - return "Sorry. unknown studio" unless @$studios == 1; - return 1; + my $config = shift; + my $options = shift; + return "missing studio_id" unless defined $options->{studio_id}; + return "Please select a studio" if ( $options->{studio_id} eq '-1' ); + return "Please select a studio" if ( $options->{studio_id} eq '' ); + my $studios = studios::get( $config, { studio_id => $options->{studio_id} } ); + return "Sorry. unknown studio" unless defined $studios; + return "Sorry. unknown studio" unless scalar @$studios == 1; + return 1; } sub error { - my $msg = shift; - print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index b296e5d..35d1061 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -23,205 +23,205 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub process { - # my $output=$_[0]; - my $filename = $_[1]; - my $params = $_[2]; + # my $output=$_[0]; + my $filename = $_[1]; + my $params = $_[2]; - my $config = $config::config; - for my $key ( keys %{ $config::config->{locations} } ) { - $params->{$key} = $config::config->{locations}->{$key} if ( $key =~ /\_url$/ ); - } + my $config = $config::config; + for my $key ( keys %{ $config::config->{locations} } ) { + $params->{$key} = $config::config->{locations}->{$key} if ( $key =~ /\_url$/ ); + } - # add current project - unless ( defined $params->{project_title} ) { - my $projects = project::get_with_dates( $config, { name => $config->{project} } ); - if ( @$projects == 1 ) { - my $project = $projects->[0]; - foreach my $key ( keys %$project ) { - $params->{ 'project_' . $key } = $project->{$key}; - } - } - } + # add current project + unless ( defined $params->{project_title} ) { + my $projects = project::get_with_dates( $config, { name => $config->{project} } ); + if ( scalar @$projects == 1 ) { + my $project = $projects->[0]; + foreach my $key ( keys %$project ) { + $params->{ 'project_' . $key } = $project->{$key}; + } + } + } - $params->{user} = $ENV{REMOTE_USER} unless defined $params->{user}; + $params->{user} = $ENV{REMOTE_USER} unless defined $params->{user}; - my $user_permissions = roles::get_user_permissions(); - for my $permission ( keys %$user_permissions ) { - $params->{$permission} = $user_permissions->{$permission} if ( $user_permissions->{$permission} eq '1' ); - } + my $user_permissions = roles::get_user_permissions(); + for my $permission ( keys %$user_permissions ) { + $params->{$permission} = $user_permissions->{$permission} if ( $user_permissions->{$permission} eq '1' ); + } - $params->{jobs} = roles::get_user_jobs(); - if ( ( $filename =~ /json\-p/ ) || (params::isJson) ) { - my $header = "Content-type:application/json; charset=utf-8\n\n"; - my $json = JSON::to_json( $params, { pretty => 1 } ); + $params->{jobs} = roles::get_user_jobs(); + if ( ( $filename =~ /json\-p/ ) || (params::isJson) ) { + my $header = "Content-type:application/json; charset=utf-8\n\n"; + my $json = JSON::to_json( $params, { pretty => 1 } ); - # $json=$header.$params->{json_callback}.'['.$json.']'; - $json = $header . $params->{json_callback} . $json; - if ( ( defined $_[0] ) && ( $_[0] eq 'print' ) ) { - print $json. "\n"; - } else { - $_[0] = $json . "\n"; - } - return; - } + # $json=$header.$params->{json_callback}.'['.$json.']'; + $json = $header . $params->{json_callback} . $json; + if ( ( defined $_[0] ) && ( $_[0] eq 'print' ) ) { + print $json. "\n"; + } else { + $_[0] = $json . "\n"; + } + return; + } - #print STDERR $filename."\n"; - log::error( $config, "cannot find template $filename " ) unless -e $filename; - log::error( $config, "cannot read template $filename " ) unless -r $filename; + #print STDERR $filename."\n"; + log::error( $config, "cannot find template $filename " ) unless -e $filename; + log::error( $config, "cannot read template $filename " ) unless -r $filename; - my $default_escape = '0'; - $default_escape = 'JS' if ( $filename =~ /\.js$/ ); - $default_escape = 'JS' if ( $filename =~ /\.json$/ ); - $default_escape = 'HTML_ALL' if ( $filename =~ /\.html$/ ); + my $default_escape = '0'; + $default_escape = 'JS' if ( $filename =~ /\.js$/ ); + $default_escape = 'JS' if ( $filename =~ /\.json$/ ); + $default_escape = 'HTML_ALL' if ( $filename =~ /\.html$/ ); - my $html_template = undef; + my $html_template = undef; - unless ( $filename =~ /\.xml$/ ) { - $html_template = HTML::Template::Compiled->new( - filename => $filename, - die_on_bad_params => 0, - case_sensitive => 0, - loop_context_vars => 0, - global_vars => 0, - tagstyle => '-asp -comment', - default_escape => $default_escape, - cache => 0, - utf8 => 1, - ); - } else { - $html_template = HTML::Template::Compiled->new( - filename => $filename, - die_on_bad_params => 0, - case_sensitive => 1, - loop_context_vars => 0, - global_vars => 0, - tagstyle => '-asp -comment', - default_escape => 'XML', - plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], - utf8 => 1 - ); - } + unless ( $filename =~ /\.xml$/ ) { + $html_template = HTML::Template::Compiled->new( + filename => $filename, + die_on_bad_params => 0, + case_sensitive => 0, + loop_context_vars => 0, + global_vars => 0, + tagstyle => '-asp -comment', + default_escape => $default_escape, + cache => 0, + utf8 => 1, + ); + } else { + $html_template = HTML::Template::Compiled->new( + filename => $filename, + die_on_bad_params => 0, + case_sensitive => 1, + loop_context_vars => 0, + global_vars => 0, + tagstyle => '-asp -comment', + default_escape => 'XML', + plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], + utf8 => 1 + ); + } - #$params= - setRelativeUrls( $params, 0 ) unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); + #$params= + setRelativeUrls( $params, 0 ) unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); - # HTML::Template::Compiled->preload($cache_dir); - $html_template->param($params); - if ( ( defined $_[0] ) && ( $_[0] eq 'print' ) ) { - print $html_template->output; - } else { - $_[0] = $html_template->output; - } + # HTML::Template::Compiled->preload($cache_dir); + $html_template->param($params); + if ( ( defined $_[0] ) && ( $_[0] eq 'print' ) ) { + print $html_template->output; + } else { + $_[0] = $html_template->output; + } } # set relative urls in nested params structure sub setRelativeUrls { - my $params = shift; - my $depth = shift || 0; + my $params = shift; + my $depth = shift || 0; - #print STDERR "setRelativeUrls depth:$depth ".ref($params)."\n"; + #print STDERR "setRelativeUrls depth:$depth ".ref($params)."\n"; - return unless defined $params; + return unless defined $params; - if ( $depth > 10 ) { - print STDERR "prevent deep recursion in template::setRelativeUrls()\n"; - return; - } + if ( $depth > 10 ) { + print STDERR "prevent deep recursion in template::setRelativeUrls()\n"; + return; + } - # set recursive for hash - if ( ref($params) eq 'HASH' ) { - for my $key ( keys %$params ) { + # set recursive for hash + if ( ref($params) eq 'HASH' ) { + for my $key ( keys %$params ) { - #next unless ($key eq 'icon') || ($key eq 'thumb'); - my $val = $params->{$key}; - next unless defined $val; - if ( ref($val) eq '' ) { + #next unless ($key eq 'icon') || ($key eq 'thumb'); + my $val = $params->{$key}; + next unless defined $val; + if ( ref($val) eq '' ) { - # make link relative - $params->{$key} =~ s/^https?\:(\/\/[^\/]+)/$1/; - } elsif ( ( ref($val) eq 'HASH' ) || ( ref($val) eq 'ARRAY' ) ) { - setRelativeUrls( $params->{$key}, $depth + 1 ); - } - } - return $params; - } + # make link relative + $params->{$key} =~ s/^https?\:(\/\/[^\/]+)/$1/; + } elsif ( ( ref($val) eq 'HASH' ) || ( ref($val) eq 'ARRAY' ) ) { + setRelativeUrls( $params->{$key}, $depth + 1 ); + } + } + return $params; + } - # set recursive for arrays - if ( ref($params) eq 'ARRAY' ) { - for my $i ( 0 .. @$params ) { - my $val = $params->[$i]; - next unless defined $val; - if ( ( ref($val) eq 'HASH' ) || ( ref($val) eq 'ARRAY' ) ) { - setRelativeUrls( $params->[$i], $depth + 1 ); - } - } - return $params; - } + # set recursive for arrays + if ( ref($params) eq 'ARRAY' ) { + for my $i ( 0 .. @$params ) { + my $val = $params->[$i]; + next unless defined $val; + if ( ( ref($val) eq 'HASH' ) || ( ref($val) eq 'ARRAY' ) ) { + setRelativeUrls( $params->[$i], $depth + 1 ); + } + } + return $params; + } - return $params; + return $params; } #requires read config sub check { - my $template = shift || ''; - my $default = shift; + my $template = shift || ''; + my $default = shift; - if ( $template =~ /json\-p/ ) { - $template =~ s/[^a-zA-Z0-9\-\_\.]//g; - $template =~ s/\.{2,99}/\./g; - return $template; - } + if ( $template =~ /json\-p/ ) { + $template =~ s/[^a-zA-Z0-9\-\_\.]//g; + $template =~ s/\.{2,99}/\./g; + return $template; + } - my $config = $config::config; - if ( $template eq '' ) { - $template = $default; - } else { - $template =~ s/^\.\///gi; + my $config = $config::config; + if ( $template eq '' ) { + $template = $default; + } else { + $template =~ s/^\.\///gi; - #template does use ';' in filename - log::error( $config, 'invalid template!' ) if ( $template =~ /;/ ); + #template does use ';' in filename + log::error( $config, 'invalid template!' ) if ( $template =~ /;/ ); - #template does use '..' in filename - log::error( $config, 'invalid template!' ) if ( $template =~ /\.\./ ); - } + #template does use '..' in filename + log::error( $config, 'invalid template!' ) if ( $template =~ /\.\./ ); + } - #print STDERR $config::config->{cache}->{compress}."<.compres default:$template\n"; - $template = ( split( /\//, $template ) )[-1]; - my $cwd = Cwd::getcwd(); + #print STDERR $config::config->{cache}->{compress}."<.compres default:$template\n"; + $template = ( split( /\//, $template ) )[-1]; + my $cwd = Cwd::getcwd(); - $template .= '.html' unless ( $template =~ /\./ ); - if ( ( $config::config->{cache}->{compress} eq '1' ) && ( -e $cwd . '/templates/compressed/' . $template ) ) { - $template = $cwd . '/templates/compressed/' . $template; - } elsif ( -e $cwd . '/templates/' . $template ) { - $template = $cwd . '/templates/' . $template; - } else { - log::error( $config, "template not found: '$cwd/$template'" ); + $template .= '.html' unless ( $template =~ /\./ ); + if ( ( $config::config->{cache}->{compress} eq '1' ) && ( -e $cwd . '/templates/compressed/' . $template ) ) { + $template = $cwd . '/templates/compressed/' . $template; + } elsif ( -e $cwd . '/templates/' . $template ) { + $template = $cwd . '/templates/' . $template; + } else { + log::error( $config, "template not found: '$cwd/$template'" ); - } + } - log::error( $config, "missing permission to read template '$template'" ) unless ( -r $template ); - return $template; + log::error( $config, "missing permission to read template '$template'" ) unless ( -r $template ); + return $template; } #deprecated (for old admin only) sub exit_on_missing_permission { - my $permission = shift; - my $user_permissions = roles::get_user_permissions(); - if ( $user_permissions->{$permission} ne '1' ) { - print STDERR "missing permission to $permission\n"; - template::process( 'print', template::check('default.html'), { error => 'sorry, missing permission!' } ); - die(); + my $permission = shift; + my $user_permissions = roles::get_user_permissions(); + if ( $user_permissions->{$permission} ne '1' ) { + print STDERR "missing permission to $permission\n"; + template::process( 'print', template::check('default.html'), { error => 'sorry, missing permission!' } ); + die(); - #exit; - } + #exit; + } } sub clear_cache { - HTML::Template::Compiled->clear_cache(); + HTML::Template::Compiled->clear_cache(); - # return; - # my $html_template = HTML::Template::Compiled->new(); - # $html_template->clear_cache(); + # return; + # my $html_template = HTML::Template::Compiled->new(); + # $html_template->clear_cache(); } #do not delete last line! diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index 6182ef4..04b8394 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -32,584 +32,584 @@ our @EXPORT_OK = qw( our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); our $names = { - 'de' => { - months => - [ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' ], - months_abbr => [ 'Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez' ], - weekdays => [ 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag' ], - weekdays_abbr => [ 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So' ], - }, - 'en' => { - months => - [ 'January', 'February', 'March', 'April', 'May', 'June', 'Jule', 'August', 'September', 'October', 'November', 'December' ], - months_abbr => [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], - weekdays => [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ], - weekdays_abbr => [ 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su' ], - }, + 'de' => { + months => + [ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' ], + months_abbr => [ 'Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez' ], + weekdays => [ 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag' ], + weekdays_abbr => [ 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So' ], + }, + 'en' => { + months => + [ 'January', 'February', 'March', 'April', 'May', 'June', 'Jule', 'August', 'September', 'October', 'November', 'December' ], + months_abbr => [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], + weekdays => [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ], + weekdays_abbr => [ 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su' ], + }, }; our $durations = [ - 0, 5, 10, 15, 20, 30, 40, 45, 50, 60, 70, 75, 80, 90, 100, 105, 110, 115, - 120, 135, 150, 165, 180, 195, 210, 225, 240, 300, 360, 420, 480, 540, 600, 660, 720, 1440 + 0, 5, 10, 15, 20, 30, 40, 45, 50, 60, 70, 75, 80, 90, 100, 105, 110, 115, + 120, 135, 150, 165, 180, 195, 210, 225, 240, 300, 360, 420, 480, 540, 600, 660, 720, 1440 ]; sub get_names { - my $language = shift || 'en'; - return $time::names->{$language}; + my $language = shift || 'en'; + return $time::names->{$language}; } sub get_all_names { - return $time::names; + return $time::names; } sub get_durations { - return $time::durations; + return $time::durations; } #TODO: build from datenames our $weekday_index = { - '0' => 0, - '1' => 1, - '2' => 2, - '3' => 3, - '4' => 4, - '5' => 5, - '6' => 6, - 'Mo' => 0, - 'Tu' => 1, - 'Di' => 1, - 'We' => 2, - 'Mi' => 2, - 'Th' => 3, - 'Do' => 3, - 'Fr' => 4, - 'Sa' => 5, - 'Su' => 6, - 'So' => 6 + '0' => 0, + '1' => 1, + '2' => 2, + '3' => 3, + '4' => 4, + '5' => 5, + '6' => 6, + 'Mo' => 0, + 'Tu' => 1, + 'Di' => 1, + 'We' => 2, + 'Mi' => 2, + 'Th' => 3, + 'Do' => 3, + 'Fr' => 4, + 'Sa' => 5, + 'Su' => 6, + 'So' => 6 }; sub get_weekdays { - return { - 1 => 1, - 2 => 2, - 3 => 3, - 4 => 4, - 5 => 5, - 6 => 6, - 7 => 7, - 'Mo' => 1, - 'Tu' => 2, - 'Di' => 2, - 'We' => 3, - 'Mi' => 3, - 'Th' => 4, - 'Do' => 4, - 'Fr' => 5, - 'Sa' => 6, - 'Su' => 7, - 'So' => 7 - }; + return { + 1 => 1, + 2 => 2, + 3 => 3, + 4 => 4, + 5 => 5, + 6 => 6, + 7 => 7, + 'Mo' => 1, + 'Tu' => 2, + 'Di' => 2, + 'We' => 3, + 'Mi' => 3, + 'Th' => 4, + 'Do' => 4, + 'Fr' => 5, + 'Sa' => 6, + 'Su' => 7, + 'So' => 7 + }; } #deprecated, for wordpress sync sub format_datetime { - my $datetime = shift; - return $datetime if ( $datetime eq '' ); - return add_hours_to_datetime( $datetime, 0 ); + my $datetime = shift; + return $datetime if ( $datetime eq '' ); + return add_hours_to_datetime( $datetime, 0 ); } #deprecated sub format_time { - my $t = $_[0]; + my $t = $_[0]; - my $year = $t->[5] + 1900; - my $month = $t->[4] + 1; - $month = '0' . $month if ( length($month) == 1 ); + my $year = $t->[5] + 1900; + my $month = $t->[4] + 1; + $month = '0' . $month if ( length($month) == 1 ); - my $day = $t->[3]; - $day = '0' . $day if ( length($day) == 1 ); + my $day = $t->[3]; + $day = '0' . $day if ( length($day) == 1 ); - my $hour = $t->[2]; - $hour = '0' . $hour if ( length($hour) == 1 ); + my $hour = $t->[2]; + $hour = '0' . $hour if ( length($hour) == 1 ); - my $minute = $t->[1]; - $minute = '0' . $minute if ( length($minute) == 1 ); + my $minute = $t->[1]; + $minute = '0' . $minute if ( length($minute) == 1 ); - return [ $day, $month, $year, $hour, $minute ]; + return [ $day, $month, $year, $hour, $minute ]; } # convert datetime to unix time sub datetime_to_time { - my $datetime = $_[0]; + my $datetime = $_[0]; - # print $datetime."\n"; - if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)[T\s](\d+)\:(\d+)(\:(\d+))?/ ) { - my $year = $1; - my $month = $2 - 1; - my $day = $3; - my $hour = $4; - my $minute = $5; - my $second = $8 || 0; - return Time::Local::timelocal( $second, $minute, $hour, $day, $month, $year ); + # print $datetime."\n"; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)[T\s](\d+)\:(\d+)(\:(\d+))?/ ) { + my $year = $1; + my $month = $2 - 1; + my $day = $3; + my $hour = $4; + my $minute = $5; + my $second = $8 || 0; + return Time::Local::timelocal( $second, $minute, $hour, $day, $month, $year ); - } else { - print STDERR "datetime_to_time: no valid date time found! ($datetime )\n"; - return -1; - } + } else { + print STDERR "datetime_to_time: no valid date time found! ($datetime )\n"; + return -1; + } } #get rfc822 datetime string from datetime string sub datetime_to_rfc822 { - my $datetime = $_[0]; - my $time = datetime_to_time($datetime); - return POSIX::strftime( "%a, %d %b %Y %H:%M:%S %z", localtime($time) ); + my $datetime = $_[0]; + my $time = datetime_to_time($datetime); + return POSIX::strftime( "%a, %d %b %Y %H:%M:%S %z", localtime($time) ); } #get seconds from epoch sub datetime_to_utc { - my $datetime = shift; - my $time_zone = shift; - $datetime = get_datetime( $datetime, $time_zone ); - return $datetime->epoch(); + my $datetime = shift; + my $time_zone = shift; + $datetime = get_datetime( $datetime, $time_zone ); + return $datetime->epoch(); } # get full utc datetime including timezone offset sub datetime_to_utc_datetime { - my $datetime = shift; - my $time_zone = shift; - $datetime = get_datetime( $datetime, $time_zone ); - return $datetime->format_cldr("yyyy-MM-ddTHH:mm:ssZZZZZ"); + my $datetime = shift; + my $time_zone = shift; + $datetime = get_datetime( $datetime, $time_zone ); + return $datetime->format_cldr("yyyy-MM-ddTHH:mm:ssZZZZZ"); } #add hours to datetime string sub add_hours_to_datetime { - my $datetime = shift; - my $hours = shift; - $hours = 0 unless defined $hours; - return time_to_datetime( datetime_to_time($datetime) + ( 3600 * $hours ) ); + my $datetime = shift; + my $hours = shift; + $hours = 0 unless defined $hours; + return time_to_datetime( datetime_to_time($datetime) + ( 3600 * $hours ) ); } #add minutes to datetime string sub add_minutes_to_datetime { - my $datetime = shift; - my $minutes = shift; - $minutes = 0 unless defined $minutes; - return time_to_datetime( datetime_to_time($datetime) + ( 60 * $minutes ) ); + my $datetime = shift; + my $minutes = shift; + $minutes = 0 unless defined $minutes; + return time_to_datetime( datetime_to_time($datetime) + ( 60 * $minutes ) ); } #add days to datetime string sub add_days_to_datetime { - my $datetime = shift; - my $days = shift; - $days = 0 unless defined $days; - my $time = datetime_to_array($datetime); + my $datetime = shift; + my $days = shift; + $days = 0 unless defined $days; + my $time = datetime_to_array($datetime); - #print STDERR Dumper($time); - ( $time->[0], $time->[1], $time->[2] ) = Date::Calc::Add_Delta_Days( $time->[0] + 0, $time->[1] + 0, $time->[2] + 0, $days ); - return array_to_datetime($time); + #print STDERR Dumper($time); + ( $time->[0], $time->[1], $time->[2] ) = Date::Calc::Add_Delta_Days( $time->[0] + 0, $time->[1] + 0, $time->[2] + 0, $days ); + return array_to_datetime($time); } sub add_days_to_date { - my $datetime = shift; - my $days = shift; - $days = 0 unless defined $days; - my $date = date_to_array($datetime); - ( $date->[0], $date->[1], $date->[2] ) = Date::Calc::Add_Delta_Days( $date->[0] + 0, $date->[1] + 0, $date->[2] + 0, $days ); - return array_to_date($date); + my $datetime = shift; + my $days = shift; + $days = 0 unless defined $days; + my $date = date_to_array($datetime); + ( $date->[0], $date->[1], $date->[2] ) = Date::Calc::Add_Delta_Days( $date->[0] + 0, $date->[1] + 0, $date->[2] + 0, $days ); + return array_to_date($date); } # convert unix time to datetime format sub time_to_datetime { - my $time = shift; - $time = time() unless ( ( defined $time ) && ( $time ne '' ) ); - my @t = localtime($time); - return sprintf( '%04d-%02d-%02d %02d:%02d:%02d', $t[5] + 1900, $t[4] + 1, $t[3], $t[2], $t[1], $t[0] ); + my $time = shift; + $time = time() unless ( defined $time ) && ( $time ne '' ); + my @t = localtime($time); + return sprintf( '%04d-%02d-%02d %02d:%02d:%02d', $t[5] + 1900, $t[4] + 1, $t[3], $t[2], $t[1], $t[0] ); } # convert unix time to date format sub time_to_date { - my $time = shift; - $time = time() unless ( ( defined $time ) && ( $time ne '' ) ); - my @t = localtime($time); - return sprintf( '%04d-%02d-%02d', $t[5] + 1900, $t[4] + 1, $t[3] ); + my $time = shift; + $time = time() unless ( defined $time ) && ( $time ne '' ); + my @t = localtime($time); + return sprintf( '%04d-%02d-%02d', $t[5] + 1900, $t[4] + 1, $t[3] ); } # convert datetime to a array of date/time values sub datetime_to_array { - my $datetime = $_[0] || ''; - if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)([T\s]+(\d+)\:(\d+)(\:(\d+))?)?/ ) { - my $year = $1; - my $month = $2; - my $day = $3; - my $hour = $5 || '00'; - my $minute = $6 || '00'; - my $second = $8 || '00'; - return [ $year, $month, $day, $hour, $minute, $second ]; - } - return undef; + my $datetime = $_[0] || ''; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)([T\s]+(\d+)\:(\d+)(\:(\d+))?)?/ ) { + my $year = $1; + my $month = $2; + my $day = $3; + my $hour = $5 || '00'; + my $minute = $6 || '00'; + my $second = $8 || '00'; + return [ $year, $month, $day, $hour, $minute, $second ]; + } + return undef; } # convert datetime to date sub datetime_to_date { - my $datetime = $_[0] || ''; - if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { - my $year = $1; - my $month = $2; - my $day = $3; - return sprintf( "%04d-%02d-%02d", $year, $month, $day ); - } - return undef; + my $datetime = $_[0] || ''; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { + my $year = $1; + my $month = $2; + my $day = $3; + return sprintf( "%04d-%02d-%02d", $year, $month, $day ); + } + return undef; } #convert datetime array or single value to datetime string sub array_to_datetime { - my $date = shift; - if ( ref($date) eq 'ARRAY' ) { - return sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $date->[0], $date->[1], $date->[2], $date->[3], $date->[4], $date->[5] ); - } - my $month = shift; - my $day = shift; - my $hour = shift || '0'; - my $minute = shift || '0'; - my $second = shift || '0'; - return sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $date, $month, $day, $hour, $minute, $second ); + my $date = shift; + if ( ref($date) eq 'ARRAY' ) { + return sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $date->[0], $date->[1], $date->[2], $date->[3], $date->[4], $date->[5] ); + } + my $month = shift; + my $day = shift; + my $hour = shift || '0'; + my $minute = shift || '0'; + my $second = shift || '0'; + return sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $date, $month, $day, $hour, $minute, $second ); } #convert date array or single values to date string sub array_to_date { - my $date = shift; - if ( ref($date) eq 'ARRAY' ) { - return sprintf( "%04d-%02d-%02d", $date->[0], $date->[1], $date->[2] ); - } - my $month = shift; - my $day = shift; - return sprintf( "%04d-%02d-%02d", $date, $month, $day ); + my $date = shift; + if ( ref($date) eq 'ARRAY' ) { + return sprintf( "%04d-%02d-%02d", $date->[0], $date->[1], $date->[2] ); + } + my $month = shift; + my $day = shift; + return sprintf( "%04d-%02d-%02d", $date, $month, $day ); } sub array_to_time { - my $date = shift; - if ( ref($date) eq 'ARRAY' ) { - return sprintf( "%02d:%02d:%02d", $date->[3], $date->[4], $date->[5] ); - } - my $minute = shift || 0; - my $second = shift || 0; - return sprintf( "%02d:%02d:%02d", $date, $minute, $second ); + my $date = shift; + if ( ref($date) eq 'ARRAY' ) { + return sprintf( "%02d:%02d:%02d", $date->[3], $date->[4], $date->[5] ); + } + my $minute = shift || 0; + my $second = shift || 0; + return sprintf( "%02d:%02d:%02d", $date, $minute, $second ); } sub array_to_time_hm { - my $date = shift; - if ( ref($date) eq 'ARRAY' ) { - return sprintf( "%02d:%02d", $date->[3], $date->[4] ); - } - my $minute = shift || 0; - return sprintf( "%02d:%02d", $date, $minute ); + my $date = shift; + if ( ref($date) eq 'ARRAY' ) { + return sprintf( "%02d:%02d", $date->[3], $date->[4] ); + } + my $minute = shift || 0; + return sprintf( "%02d:%02d", $date, $minute ); } # get number of days between two days sub days_between { - my $today = $_[0]; - my $date = $_[1]; - my $delta_days = eval { Date::Calc::Delta_Days( $today->[0], $today->[1], $today->[2], $date->[0], $date->[1], $date->[2] ) }; - return $delta_days; + my $today = $_[0]; + my $date = $_[1]; + my $delta_days = eval { Date::Calc::Delta_Days( $today->[0], $today->[1], $today->[2], $date->[0], $date->[1], $date->[2] ) }; + return $delta_days; } sub dayOfYear { - my $datetime = $_[0]; - if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { - my $year = $1; - my $month = $2; - my $day = $3; - return Date::Calc::Day_of_Year( $year, $month, $day ); - } - return undef; + my $datetime = $_[0]; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { + my $year = $1; + my $month = $2; + my $day = $3; + return Date::Calc::Day_of_Year( $year, $month, $day ); + } + return undef; } # get duration in minutes sub get_duration { - my $start = shift; - my $end = shift; - my $timezone = shift; - $start = time::get_datetime( $start, $timezone ); - $end = time::get_datetime( $end, $timezone ); - my $duration = $end->epoch() - $start->epoch(); - return $duration / 60; + my $start = shift; + my $end = shift; + my $timezone = shift; + $start = time::get_datetime( $start, $timezone ); + $end = time::get_datetime( $end, $timezone ); + my $duration = $end->epoch() - $start->epoch(); + return $duration / 60; } # get duration in seconds sub get_duration_seconds { - my $start = shift; - my $end = shift; - my $timezone = shift || 'UTC'; + my $start = shift; + my $end = shift; + my $timezone = shift || 'UTC'; - unless ( defined $start ) { - print STDERR "time::get_duration_seconds(): start is missing\n"; - return 0; - } - unless ( defined $end ) { - print STDERR "time::get_duration_seconds(): end is missing\n"; - return 0; - } + unless ( defined $start ) { + print STDERR "time::get_duration_seconds(): start is missing\n"; + return 0; + } + unless ( defined $end ) { + print STDERR "time::get_duration_seconds(): end is missing\n"; + return 0; + } - $start = time::get_datetime( $start, $timezone ); - $end = time::get_datetime( $end, $timezone ); - unless ( defined $start ) { - print STDERR "time::get_duration_seconds(): invalid start\n"; - return 0; - } - unless ( defined $end ) { - print STDERR "time::get_duration_seconds(): invalid end\n"; - return 0; - } - my $duration = $end->epoch() - $start->epoch(); - return $duration; + $start = time::get_datetime( $start, $timezone ); + $end = time::get_datetime( $end, $timezone ); + unless ( defined $start ) { + print STDERR "time::get_duration_seconds(): invalid start\n"; + return 0; + } + unless ( defined $end ) { + print STDERR "time::get_duration_seconds(): invalid end\n"; + return 0; + } + my $duration = $end->epoch() - $start->epoch(); + return $duration; } # convert date string to a array of date values sub date_to_array { - my $datetime = $_[0]; - if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { - my $year = $1; - my $month = $2; - my $day = $3; - return [ $year, $month, $day ]; - } - return undef; + my $datetime = $_[0]; + if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { + my $year = $1; + my $month = $2; + my $day = $3; + return [ $year, $month, $day ]; + } + return undef; } # parse date string and return date string # pass 'today', return '' on parse error sub date_cond { - my $date = shift; + my $date = shift; - return '' if ( $date eq '' ); - if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { - my $year = $1; - my $month = $2; - my $day = $3; - return sprintf( "%04d-%02d-%02d", $year, $month, $day ); - } - return 'today' if ( $date eq 'today' ); - return ''; + return '' if ( $date eq '' ); + if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { + my $year = $1; + my $month = $2; + my $day = $3; + return sprintf( "%04d-%02d-%02d", $year, $month, $day ); + } + return 'today' if ( $date eq 'today' ); + return ''; } #parse time and return time string hh:mm:ss #return hh:00 if time is 'now' sub time_cond { - my $time = shift; + my $time = shift; - return '' if ( $time eq '' ); - if ( $time =~ /(\d\d?)\:(\d\d?)(\:(\d\d))?/ ) { - my $hour = $1; - my $minute = $2; - my $second = $4 || '00'; - return sprintf( "%02d:%02d:%02d", $hour, $minute, $second ); - } - if ( $time eq 'now' ) { - my $date = datetime_to_array( time_to_datetime( time() ) ); - my $hour = $date->[3] - 2; - $hour = 0 if ( $hour < 0 ); - $time = sprintf( "%02d:00", $hour ); - return $time; - } - return ''; + return '' if ( $time eq '' ); + if ( $time =~ /(\d\d?)\:(\d\d?)(\:(\d\d))?/ ) { + my $hour = $1; + my $minute = $2; + my $second = $4 || '00'; + return sprintf( "%02d:%02d:%02d", $hour, $minute, $second ); + } + if ( $time eq 'now' ) { + my $date = datetime_to_array( time_to_datetime( time() ) ); + my $hour = $date->[3] - 2; + $hour = 0 if ( $hour < 0 ); + $time = sprintf( "%02d:00", $hour ); + return $time; + } + return ''; } #parse date and time string and return yyyy-mm-ddThh:mm:ss sub datetime_cond { - my $datetime = shift; + my $datetime = shift; - return '' if ( $datetime eq '' ); - ( my $date, my $time ) = split /[ T]/, $datetime; - $date = time::date_cond($date); - return '' if ( $date eq '' ); - $time = time::time_cond($time); - return '' if ( $time eq '' ); + return '' if ( $datetime eq '' ); + ( my $date, my $time ) = split /[ T]/, $datetime; + $date = time::date_cond($date); + return '' if ( $date eq '' ); + $time = time::time_cond($time); + return '' if ( $time eq '' ); - return $date . 'T' . $time; + return $date . 'T' . $time; } sub check_date { - my $date = shift; + my $date = shift; - return "" if ( ( !defined $date ) || ( $date eq '' ) ); - if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { - return $1 . '-' . $2 . '-' . $3; - } elsif ( $date =~ /(\d\d?)\.(\d\d?)\.(\d\d\d\d)/ ) { - return $3 . '-' . $2 . '-' . $1; - } - return $date if ( $date eq 'today' || $date eq 'tomorrow' || $date eq 'yesterday' ); - return -1; + return "" if ( !defined $date ) || ( $date eq '' ); + if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { + return $1 . '-' . $2 . '-' . $3; + } elsif ( $date =~ /(\d\d?)\.(\d\d?)\.(\d\d\d\d)/ ) { + return $3 . '-' . $2 . '-' . $1; + } + return $date if ( $date eq 'today' || $date eq 'tomorrow' || $date eq 'yesterday' ); + return -1; - #error("no valid date format given!"); + #error("no valid date format given!"); } sub check_time { - my $time = shift; - return "" if ( ( !defined $time ) || ( $time eq '' ) ); - return $time if ( ( $time eq 'now' ) || ( $time eq 'future' ) ); - if ( $time =~ /(\d\d?)\:(\d\d?)/ ) { - return $1 . ':' . $2; - } - return -1; + my $time = shift; + return "" if ( !defined $time ) || ( $time eq '' ); + return $time if ( $time eq 'now' ) || ( $time eq 'future' ); + if ( $time =~ /(\d\d?)\:(\d\d?)/ ) { + return $1 . ':' . $2; + } + return -1; } sub check_datetime { - my $date = shift; + my $date = shift; - return "" if ( ( !defined $date ) || ( $date eq '' ) ); - if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)[T ](\d\d?)\:(\d\d?)/ ) { - return sprintf( "%04d-%02d-%02dT%02d:%02d", $1, $2, $3, $4, $5 ); - } - return -1; + return "" if ( !defined $date ) || ( $date eq '' ); + if ( $date =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)[T ](\d\d?)\:(\d\d?)/ ) { + return sprintf( "%04d-%02d-%02dT%02d:%02d", $1, $2, $3, $4, $5 ); + } + return -1; } sub check_year_month { - my $date = shift; - return -1 unless ( defined $date ); - return $date if ( $date eq '' ); - if ( $date =~ /(\d\d\d\d)\-(\d\d?)/ ) { - return $1 . '-' . $2 . '-' . $3; - } - return -1; + my $date = shift; + return -1 unless ( defined $date ); + return $date if ( $date eq '' ); + if ( $date =~ /(\d\d\d\d)\-(\d\d?)/ ) { + return $1 . '-' . $2 . '-' . $3; + } + return -1; } #TODO: remove config dependency sub date_time_format { - my $datetime = shift; - my $language = shift || $config::config->{date}->{language} || 'en'; - if ( defined $datetime && $datetime =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)[\sT](\d\d?\:\d\d?)/ ) { - my $time = $4; - my $day = $3; - my $month = $2; - my $year = $1; + my $datetime = shift; + my $language = shift || $config::config->{date}->{language} || 'en'; + if ( defined $datetime && $datetime =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)[\sT](\d\d?\:\d\d?)/ ) { + my $time = $4; + my $day = $3; + my $month = $2; + my $year = $1; - $month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || ''; - return "$day. $month $year $time"; - } - return $datetime; + $month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || ''; + return "$day. $month $year $time"; + } + return $datetime; } #format datetime to date string #TODO: remove config dependency sub date_format { - my $datetime = shift; - my $language = shift || $config::config->{date}->{language} || 'en'; + my $datetime = shift; + my $language = shift || $config::config->{date}->{language} || 'en'; - if ( defined $datetime && $datetime =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { - my $day = $3; - my $month = $2; - my $year = $1; - $month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || ''; - return "$day. $month $year"; - } - return $datetime; + if ( defined $datetime && $datetime =~ /(\d\d\d\d)\-(\d\d?)\-(\d\d?)/ ) { + my $day = $3; + my $month = $2; + my $year = $1; + $month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || ''; + return "$day. $month $year"; + } + return $datetime; } #format datetime to time string sub time_format { - my $datetime = shift; - if ( defined $datetime && $datetime =~ /(\d\d?\:\d\d?)/ ) { - return $1; - } - return $datetime; + my $datetime = shift; + if ( defined $datetime && $datetime =~ /(\d\d?\:\d\d?)/ ) { + return $1; + } + return $datetime; } #get offset from given time_zone sub utc_offset { - my $time_zone = shift; + my $time_zone = shift; - $a = DateTime->now(); - $a->set_time_zone($time_zone); - return $a->strftime("%z"); + $a = DateTime->now(); + $a->set_time_zone($time_zone); + return $a->strftime("%z"); } #get weekday from (yyyy,mm,dd) sub weekday { - my ( $year, $month, $day ) = @_; - my $time = Time::Local::timelocal( 0, 0, 0, $day, $month - 1, $year ); - return ( localtime($time) )[6]; + my ( $year, $month, $day ) = @_; + my $time = Time::Local::timelocal( 0, 0, 0, $day, $month - 1, $year ); + return ( localtime($time) )[6]; } #get current date, related to starting day_starting_hour #TODO: remove config dependency sub get_event_date { - my $config = shift; - $config = $config::config unless defined $config; + my $config = shift; + $config = $config::config unless defined $config; - my $datetime = time::time_to_datetime( time() ); - my $hour = ( time::datetime_to_array($datetime) )->[3]; + my $datetime = time::time_to_datetime( time() ); + my $hour = ( time::datetime_to_array($datetime) )->[3]; - #print STDERR "datetime=$datetime hour=$hour\n"; - #today: between 0:00 and starting_hour show last day - if ( $hour < $config->{date}->{day_starting_hour} ) { - my $date = time::datetime_to_array( time::add_days_to_datetime( $datetime, -1 ) ); - return join( '-', ( $date->[0], $date->[1], $date->[2] ) ); - } else { + #print STDERR "datetime=$datetime hour=$hour\n"; + #today: between 0:00 and starting_hour show last day + if ( $hour < $config->{date}->{day_starting_hour} ) { + my $date = time::datetime_to_array( time::add_days_to_datetime( $datetime, -1 ) ); + return join( '-', ( $date->[0], $date->[1], $date->[2] ) ); + } else { - #today: between starting_hour and end of day show current day - my $date = time::datetime_to_array( time::time_to_datetime( time() ) ); - return join( '-', ( $date->[0], $date->[1], $date->[2] ) ); - } + #today: between starting_hour and end of day show current day + my $date = time::datetime_to_array( time::time_to_datetime( time() ) ); + return join( '-', ( $date->[0], $date->[1], $date->[2] ) ); + } } #get datetime object from datetime string sub get_datetime { - my $datetime = shift; - my $timezone = shift; + my $datetime = shift; + my $timezone = shift; - return unless defined $datetime; - return if $datetime eq ''; - my @l = @{ time::datetime_to_array($datetime) }; - return undef if scalar(@l) == 0; + return unless defined $datetime; + return if $datetime eq ''; + my @l = @{ time::datetime_to_array($datetime) }; + return undef if scalar(@l) == 0; - # catch invalid datees - $datetime = undef; - eval { - $datetime = DateTime->new( - year => $l[0], - month => $l[1], - day => $l[2], - hour => $l[3], - minute => $l[4], - second => $l[5], - time_zone => $timezone - ); - }; - return undef unless defined $datetime; - $datetime->set_locale('de_DE'); - return $datetime; + # catch invalid datees + $datetime = undef; + eval { + $datetime = DateTime->new( + year => $l[0], + month => $l[1], + day => $l[2], + hour => $l[3], + minute => $l[4], + second => $l[5], + time_zone => $timezone + ); + }; + return undef unless defined $datetime; + $datetime->set_locale('de_DE'); + return $datetime; } #get list of nth weekday in month from start to end sub get_nth_weekday_in_month { - my $start = shift; # datetime string - my $end = shift; # datetime string - my $nth = shift; # every nth week of month - my $weekday = shift; # weekday [1..7,'Mo'-'Su','Mo'-'Fr'] + my $start = shift; # datetime string + my $end = shift; # datetime string + my $nth = shift; # every nth week of month + my $weekday = shift; # weekday [1..7,'Mo'-'Su','Mo'-'Fr'] - return [] unless defined $start; - return [] unless defined $end; - return [] unless defined $nth; - return [] unless defined $weekday; + return [] unless defined $start; + return [] unless defined $end; + return [] unless defined $nth; + return [] unless defined $weekday; - my $weekdays = time::get_weekdays(); - return [] unless defined $weekdays->{$weekday}; - $weekday = $weekdays->{$weekday}; + my $weekdays = time::get_weekdays(); + return [] unless defined $weekdays->{$weekday}; + $weekday = $weekdays->{$weekday}; - my $dates = []; + my $dates = []; - if ( $start =~ /(\d\d\d\d)-(\d\d)-(\d\d)[ T](\d\d)\:(\d\d)/ ) { - my $hour = int($4); - my $min = int($5); - my $sec = 0; - my @date = Date::Manip::ParseRecur( "0:1*$nth:$weekday:$hour:$min:$sec", "", $start, $end ); - for my $date (@date) { - if ( $date =~ /(\d\d\d\d)(\d\d)(\d\d)(\d\d)\:(\d\d)\:(\d\d)/ ) { - push @$dates, "$1-$2-$3 $4:$5:$6"; - } - } - } - return $dates; + if ( $start =~ /(\d\d\d\d)-(\d\d)-(\d\d)[ T](\d\d)\:(\d\d)/ ) { + my $hour = int($4); + my $min = int($5); + my $sec = 0; + my @date = Date::Manip::ParseRecur( "0:1*$nth:$weekday:$hour:$min:$sec", "", $start, $end ); + for my $date (@date) { + if ( $date =~ /(\d\d\d\d)(\d\d)(\d\d)(\d\d)\:(\d\d)\:(\d\d)/ ) { + push @$dates, "$1-$2-$3 $4:$5:$6"; + } + } + } + return $dates; } #do not delete last line! diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 2b558d0..f203092 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -31,53 +31,53 @@ sub debug; # get user by name sub get_user { - my $config = shift; - my $user = shift; + my $config = shift; + my $user = shift; - my $query = qq{ + my $query = qq{ select id, name, full_name, email, disabled, modified_at, created_at from calcms_users where name=? }; - my $bind_values = [$user]; + my $bind_values = [$user]; - my $dbh = db::connect($config); - my $users = db::get( $dbh, $query, $bind_values ); - if ( @$users != 1 ) { - print STDERR "cannot find user '$user'\n"; - return undef; - } - return $users->[0]; + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, $bind_values ); + if ( scalar @$users != 1 ) { + print STDERR "cannot find user '$user'\n"; + return undef; + } + return $users->[0]; } # get all users sub get_users { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - for my $key ( 'name', 'email' ) { - my $value = $condition->{$key}; - next unless defined $value; - next if $value eq ''; - push @conditions, $key . '=?'; - push @bind_values, $value; - } + for my $key ( 'name', 'email' ) { + my $value = $condition->{$key}; + next unless defined $value; + next if $value eq ''; + push @conditions, $key . '=?'; + push @bind_values, $value; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( scalar @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( scalar @conditions > 0 ); - my $query = qq{ + my $query = qq{ select id, name, full_name, email, disabled, modified_at, created_at from calcms_users $conditions }; - my $dbh = db::connect($config); - my $users = db::get( $dbh, $query, \@bind_values ); - return $users; + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, \@bind_values ); + return $users; } #TODO: get_users_by_project @@ -85,376 +85,376 @@ sub get_users { # get all users of a given studio id # used at series (previously named get_studio_users) sub get_users_by_studio { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - return unless ( defined $condition->{studio_id} ); + return unless ( defined $condition->{studio_id} ); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'ur.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'ur.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - my $conditions = ''; - $conditions = " and " . join( " and ", @conditions ) if ( scalar @conditions > 0 ); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( scalar @conditions > 0 ); - my $query = qq{ + my $query = qq{ select distinct(u.id), u.name, u.full_name from calcms_user_roles ur, calcms_users u where ur.user_id=u.id $conditions }; - my $dbh = db::connect($config); - my $users = db::get( $dbh, $query, \@bind_values ); - return $users; + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, \@bind_values ); + return $users; } # get projects a user is assigned by name sub get_projects_by_user { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'ur.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'ur.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { - push @conditions, 'u.name=?'; - push @bind_values, $condition->{user}; - } + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'u.name=?'; + push @bind_values, $condition->{user}; + } - my $conditions = ''; - $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select distinct p.*, ur.project_id project_id from calcms_user_roles ur, calcms_users u, calcms_projects p where ur.user_id=u.id and p.project_id=ur.project_id $conditions }; - my $dbh = db::connect($config); - my $users = db::get( $dbh, $query, \@bind_values ); - return $users; + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, \@bind_values ); + return $users; } # get all studios a user is assigned to by role # used at series (previously named get_user_studios) sub get_studios_by_user { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'ur.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'ur.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { - push @conditions, 'u.name=?'; - push @bind_values, $condition->{user}; - } + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'u.name=?'; + push @bind_values, $condition->{user}; + } - my $conditions = ''; - $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select distinct s.*, ur.project_id project_id from calcms_user_roles ur, calcms_users u, calcms_studios s where ur.user_id=u.id and s.id=ur.studio_id $conditions }; - my $dbh = db::connect($config); - my $users = db::get( $dbh, $query, \@bind_values ); - return $users; + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, \@bind_values ); + return $users; } sub insert_user { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - $entry->{created_at} = time::time_to_datetime( time() ); - $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{created_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); - my $dbh = db::connect($config); - db::insert( $dbh, 'calcms_users', $entry ); + my $dbh = db::connect($config); + db::insert( $dbh, 'calcms_users', $entry ); } sub update_user { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values, $entry->{id}; + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{id}; - my $query = qq{ + my $query = qq{ update calcms_users set $values where id=? }; - my $dbh = db::connect($config); - db::put( $dbh, $query, \@bind_values ); + my $dbh = db::connect($config); + db::put( $dbh, $query, \@bind_values ); } sub delete_user { - my $config = shift; - my $id = shift; - return unless ( defined $id && ( $id =~ /^\d+$/ ) ); + my $config = shift; + my $id = shift; + return unless ( defined $id && ( $id =~ /^\d+$/ ) ); - my $query = qq{ + my $query = qq{ delete from calcms_users where id=? }; - my $dbh = db::connect($config); - db::put( $dbh, $query, [$id] ); + my $dbh = db::connect($config); + db::put( $dbh, $query, [$id] ); } # get all roles used by all users of a studio # available conditions: project_id, studio_id sub get_studio_roles { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - return [] if ( $condition->{studio_id} eq '' ); + return [] if ( $condition->{studio_id} eq '' ); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'ur.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'ur.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - my $conditions = ''; - $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select r.*, ur.studio_id, ur.project_id from calcms_roles r, calcms_user_roles ur where r.id=ur.role_id $conditions }; - my $dbh = db::connect($config); - my $roles = db::get( $dbh, $query, \@bind_values ); - return $roles; + my $dbh = db::connect($config); + my $roles = db::get( $dbh, $query, \@bind_values ); + return $roles; } # get role columns (for external use only) sub get_role_columns { - my $config = shift; - my $dbh = db::connect($config); - my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); - return $columns; + my $config = shift; + my $dbh = db::connect($config); + my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); + return $columns; } # get roles # filter: studio_id project_id sub get_roles { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - my $dbh = db::connect($config); - my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); + my $dbh = db::connect($config); + my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); - for my $column ( keys %$columns ) { - if ( defined $condition->{$column} ) { - push @conditions, $column . '=?'; - push @bind_values, $condition->{$column}; - } - } - my $conditions = ''; - $conditions = ' where ' . join( ' and ', @conditions ) if ( @conditions > 0 ); + for my $column ( keys %$columns ) { + if ( defined $condition->{$column} ) { + push @conditions, $column . '=?'; + push @bind_values, $condition->{$column}; + } + } + my $conditions = ''; + $conditions = ' where ' . join( ' and ', @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select r.* from calcms_roles r $conditions }; - my $roles = db::get( $dbh, $query, \@bind_values ); + my $roles = db::get( $dbh, $query, \@bind_values ); - return $roles; + return $roles; } #insert role to database, set created_at and modified_at sub insert_role { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - $entry->{created_at} = time::time_to_datetime( time() ); - $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{created_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); - my $dbh = db::connect($config); - my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); - my $role = {}; - for my $column ( keys %$columns ) { - $role->{$column} = $entry->{$column} if defined $entry->{$column}; - } - db::insert( $dbh, 'calcms_roles', $role ); + my $dbh = db::connect($config); + my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); + my $role = {}; + for my $column ( keys %$columns ) { + $role->{$column} = $entry->{$column} if defined $entry->{$column}; + } + db::insert( $dbh, 'calcms_roles', $role ); } #update role, set modified_at sub update_role { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{modified_at} = time::time_to_datetime( time() ); - my $dbh = db::connect($config); - my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); - my $values = join( ",", map { $_ . '=?' } ( keys %$columns ) ); - my @bind_values = map { $entry->{$_} } ( keys %$columns ); - push @bind_values, $entry->{id}; + my $dbh = db::connect($config); + my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); + my $values = join( ",", map { $_ . '=?' } ( keys %$columns ) ); + my @bind_values = map { $entry->{$_} } ( keys %$columns ); + push @bind_values, $entry->{id}; - my $query = qq{ + my $query = qq{ update calcms_roles set $values where id=? }; - # print $query."
      \n".Dumper(\@bind_values)."
      \ņ"; + # print $query."
      \n".Dumper(\@bind_values)."
      \ņ"; - db::put( $dbh, $query, \@bind_values ); + db::put( $dbh, $query, \@bind_values ); } # delete role from database sub delete_role { - my $config = shift; - my $id = shift; + my $config = shift; + my $id = shift; - return unless ( defined $id && ( $id =~ /^\d+$/ ) ); + return unless ( defined $id && ( $id =~ /^\d+$/ ) ); - my $query = qq{ + my $query = qq{ delete from calcms_roles where id=? }; - my $dbh = db::connect($config); - db::put( $dbh, $query, [$id] ); + my $dbh = db::connect($config); + db::put( $dbh, $query, [$id] ); } # get all roles for given conditions: project_id, studio_id, user_id, name # includes global admin user role sub get_user_roles { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( defined $condition->{user} ) { - push @conditions, 'u.name=?'; - push @bind_values, $condition->{user}; - } - if ( defined $condition->{user_id} ) { - push @conditions, 'ur.user_id=?'; - push @bind_values, $condition->{user_id}; - } - if ( defined $condition->{studio_id} ) { - push @conditions, 'ur.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } - if ( defined $condition->{project_id} ) { - push @conditions, 'ur.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( defined $condition->{user} ) { + push @conditions, 'u.name=?'; + push @bind_values, $condition->{user}; + } + if ( defined $condition->{user_id} ) { + push @conditions, 'ur.user_id=?'; + push @bind_values, $condition->{user_id}; + } + if ( defined $condition->{studio_id} ) { + push @conditions, 'ur.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } + if ( defined $condition->{project_id} ) { + push @conditions, 'ur.project_id=?'; + push @bind_values, $condition->{project_id}; + } - my $conditions = ''; - $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select distinct r.* from calcms_users u, calcms_user_roles ur, calcms_roles r where ur.user_id=u.id and ur.role_id=r.id $conditions }; - my $dbh = db::connect($config); - my $user_roles = db::get( $dbh, $query, \@bind_values ); + my $dbh = db::connect($config); + my $user_roles = db::get( $dbh, $query, \@bind_values ); - #return roles, if the contain an admin role - for my $role (@$user_roles) { - return $user_roles if $role->{role} eq 'Admin'; - } + #return roles, if the contain an admin role + for my $role (@$user_roles) { + return $user_roles if $role->{role} eq 'Admin'; + } - #get all admin roles - delete $condition->{studio_id} if defined $condition->{studio_id}; - delete $condition->{project_id} if defined $condition->{project_id}; - my $admin_roles = get_admin_user_roles( $config, $condition ); + #get all admin roles + delete $condition->{studio_id} if defined $condition->{studio_id}; + delete $condition->{project_id} if defined $condition->{project_id}; + my $admin_roles = get_admin_user_roles( $config, $condition ); - #add admin roles to user roles - my @user_roles = ( @$admin_roles, @$user_roles ); - $user_roles = \@user_roles; + #add admin roles to user roles + my @user_roles = ( @$admin_roles, @$user_roles ); + $user_roles = \@user_roles; - return $user_roles; + return $user_roles; } #return admin user roles for given conditions: project_id, studio_id, user, user_id sub get_admin_user_roles { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { - push @conditions, 'u.name=?'; - push @bind_values, $condition->{user}; - } - if ( ( defined $condition->{user_id} ) && ( $condition->{user_id} ne '' ) ) { - push @conditions, 'ur.user_id=?'; - push @bind_values, $condition->{user_id}; - } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'ur.studio_id=?'; - push @bind_values, $condition->{studio_id}; - } - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'ur.project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'u.name=?'; + push @bind_values, $condition->{user}; + } + if ( ( defined $condition->{user_id} ) && ( $condition->{user_id} ne '' ) ) { + push @conditions, 'ur.user_id=?'; + push @bind_values, $condition->{user_id}; + } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'ur.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'ur.project_id=?'; + push @bind_values, $condition->{project_id}; + } - my $conditions = ''; - $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " and " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select distinct r.*, ur.studio_id, ur.project_id from calcms_users u, calcms_user_roles ur, calcms_roles r where ur.user_id=u.id and ur.role_id=r.id and r.role='Admin' @@ -462,371 +462,371 @@ sub get_admin_user_roles { limit 1 }; - my $dbh = db::connect($config); - my $user_roles = db::get( $dbh, $query, \@bind_values ); - return $user_roles; + my $dbh = db::connect($config); + my $user_roles = db::get( $dbh, $query, \@bind_values ); + return $user_roles; } # read permissions for given conditions and add to user_permissions # return user_permissions # studio_id, user_id, name sub get_user_permissions { - my $config = shift; - my $conditions = shift; - my $user_permissions = shift; + my $config = shift; + my $conditions = shift; + my $user_permissions = shift; - my $user_roles = get_user_roles( $config, $conditions ); - my $admin_roles = get_admin_user_roles( $config, $conditions ); - my @user_roles = ( @$admin_roles, @$user_roles ); + my $user_roles = get_user_roles( $config, $conditions ); + my $admin_roles = get_admin_user_roles( $config, $conditions ); + my @user_roles = ( @$admin_roles, @$user_roles ); - #set default permissions - $user_permissions = {} unless ( defined $user_permissions ); - $user_permissions->{is_admin} = 1 if ( scalar @$admin_roles > 0 ); + #set default permissions + $user_permissions = {} unless ( defined $user_permissions ); + $user_permissions->{is_admin} = 1 if ( scalar @$admin_roles > 0 ); - my $max_level = 0; + my $max_level = 0; - # aggregate max permissions - # should be limited by project and studio - for my $user_role (@user_roles) { - if ( $user_role->{level} > $max_level ) { - $user_permissions->{level} = $user_role->{level}; - $user_permissions->{id} = $user_role->{id}; - $user_permissions->{role} = $user_role->{role}; - $user_permissions->{studio_id} = $user_role->{studio_id}; - $user_permissions->{project_id} = $user_role->{project_id}; - $max_level = $user_role->{level}; - } - for my $permission ( keys %$user_role ) { - if ( ( $permission ne 'level' ) - && ( $permission ne 'id' ) - && ( $permission ne 'role' ) - && ( $permission ne 'studio_id' ) - && ( $permission ne 'project_id' ) ) - { - $user_permissions->{$permission} = 1 if ( ( defined $user_role->{$permission} ) && ( $user_role->{$permission} ne '0' ) ); - } - } - } - return $user_permissions; + # aggregate max permissions + # should be limited by project and studio + for my $user_role (@user_roles) { + if ( $user_role->{level} > $max_level ) { + $user_permissions->{level} = $user_role->{level}; + $user_permissions->{id} = $user_role->{id}; + $user_permissions->{role} = $user_role->{role}; + $user_permissions->{studio_id} = $user_role->{studio_id}; + $user_permissions->{project_id} = $user_role->{project_id}; + $max_level = $user_role->{level}; + } + for my $permission ( keys %$user_role ) { + if ( ( $permission ne 'level' ) + && ( $permission ne 'id' ) + && ( $permission ne 'role' ) + && ( $permission ne 'studio_id' ) + && ( $permission ne 'project_id' ) ) + { + $user_permissions->{$permission} = 1 if ( defined $user_role->{$permission} ) && ( $user_role->{$permission} ne '0' ); + } + } + } + return $user_permissions; } #get user id by user name sub get_user_id { - my $config = shift; - my $user = shift; + my $config = shift; + my $user = shift; - return undef unless ( defined $user ); + return undef unless ( defined $user ); - my $query = qq{ + my $query = qq{ select id from calcms_users where binary name=? }; - my $dbh = db::connect($config); - my $users = db::get( $dbh, $query, [$user] ); - return undef if ( @$users == 0 ); - return $users->[0]->{id}; + my $dbh = db::connect($config); + my $users = db::get( $dbh, $query, [$user] ); + return undef if scalar @$users == 0; + return $users->[0]->{id}; } #get role id by role name sub get_role_id { - my $config = shift; - my $role = shift; + my $config = shift; + my $role = shift; - return undef unless ( defined $role ); + return undef unless ( defined $role ); - my $query = qq{ + my $query = qq{ select id from calcms_roles where role=? }; - my $dbh = db::connect($config); - my $roles = db::get( $dbh, $query, [$role] ); - return undef if ( @$roles == 0 ); - return $roles->[0]->{id}; + my $dbh = db::connect($config); + my $roles = db::get( $dbh, $query, [$role] ); + return undef if scalar @$roles == 0; + return $roles->[0]->{id}; } # assign a role to an user (for a studio) sub assign_user_role { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - #print STDERR Dumper($options); - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{user_id}; - return undef unless defined $options->{role_id}; + #print STDERR Dumper($options); + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{user_id}; + return undef unless defined $options->{role_id}; - #return if already exists - my $query = qq{ + #return if already exists + my $query = qq{ select * from calcms_user_roles where project_id=? and studio_id=? and user_id=? and role_id=? }; - my $dbh = db::connect($config); - my $user_roles = db::get( $dbh, $query, [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ] ); - return undef if ( @$user_roles > 0 ); + my $dbh = db::connect($config); + my $user_roles = db::get( $dbh, $query, [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ] ); + return undef if scalar @$user_roles > 0; - #insert entry - my $entry = { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - user_id => $options->{user_id}, - role_id => $options->{role_id}, - created_at => time::time_to_datetime( time() ) - }; + #insert entry + my $entry = { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + user_id => $options->{user_id}, + role_id => $options->{role_id}, + created_at => time::time_to_datetime( time() ) + }; - return db::insert( $dbh, 'calcms_user_roles', $entry ); + return db::insert( $dbh, 'calcms_user_roles', $entry ); } # unassign a user from a role of (for a studio) sub remove_user_role { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{user_id}; - return undef unless defined $options->{role_id}; + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{user_id}; + return undef unless defined $options->{role_id}; - my $query = qq{ + my $query = qq{ delete from calcms_user_roles where project_id=? and studio_id=? and user_id=? and role_id=? }; - my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ]; + my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ]; - #print STDERR Dumper($query).Dumper($bind_values); - my $dbh = db::connect($config); - my $result = db::put( $dbh, $query, $bind_values ); + #print STDERR Dumper($query).Dumper($bind_values); + my $dbh = db::connect($config); + my $result = db::put( $dbh, $query, $bind_values ); - # successfully return even if no entry exists - return 1; + # successfully return even if no entry exists + return 1; } #checks sub is_user_assigned_to_studio { - my $request = shift; - my $options = shift; + my $request = shift; + my $options = shift; - my $config = $request->{config}; + my $config = $request->{config}; - return 0 unless defined $request->{user}; - return 0 unless defined $options->{studio_id}; - return 0 unless defined $options->{project_id}; + return 0 unless defined $request->{user}; + return 0 unless defined $options->{studio_id}; + return 0 unless defined $options->{project_id}; - my $options2 = { - user => $request->{user}, - studio_id => $options->{studio_id}, - project_id => $options->{project_id} - }; + my $options2 = { + user => $request->{user}, + studio_id => $options->{studio_id}, + project_id => $options->{project_id} + }; - my $user_studios = uac::get_studios_by_user( $config, $options2 ); - return 1 if ( @$user_studios == 1 ); - return 0; + my $user_studios = uac::get_studios_by_user( $config, $options2 ); + return 1 if scalar @$user_studios == 1; + return 0; } # print errors at get_user_presets and check for project id and studio id # call after header is printed sub check { - my $config = shift; - my $params = shift; - my $user_presets = shift; + my $config = shift; + my $params = shift; + my $user_presets = shift; - if ( defined $user_presets->{error} ) { - uac::print_error( $user_presets->{error} ); - return undef; - } + if ( defined $user_presets->{error} ) { + uac::print_error( $user_presets->{error} ); + return undef; + } - my $project_check = project::check( $config, { project_id => $params->{project_id} } ); - if ( $project_check ne '1' ) { - uac::print_error($project_check); - return undef; - } + my $project_check = project::check( $config, { project_id => $params->{project_id} } ); + if ( $project_check ne '1' ) { + uac::print_error($project_check); + return undef; + } - my $studio_check = studios::check( $config, { studio_id => $params->{studio_id} } ); - if ( $studio_check ne '1' ) { - uac::print_error($studio_check); - return undef; - } - return 1; + my $studio_check = studios::check( $config, { studio_id => $params->{studio_id} } ); + if ( $studio_check ne '1' ) { + uac::print_error($studio_check); + return undef; + } + return 1; } # get user, projects and studios user is assigned to for selected values from params # set permissions for selected project and studio # return request sub get_user_presets { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - my $user = $options->{user} || ''; - my $error = undef; - return { error => "no user selected" } if ( $user eq '' ); + my $user = $options->{user} || ''; + my $error = undef; + return { error => "no user selected" } if ( $user eq '' ); - my $project_id = $options->{project_id} || ''; - my $studio_id = $options->{studio_id} || ''; - $config->{access}->{write} = 0; + my $project_id = $options->{project_id} || ''; + my $studio_id = $options->{studio_id} || ''; + $config->{access}->{write} = 0; - #get - my $admin_roles = get_admin_user_roles( $config, { user => $user } ); + #get + my $admin_roles = get_admin_user_roles( $config, { user => $user } ); - #get all projects by user - my $projects = uac::get_projects_by_user( $config, { user => $user } ); - return { error => "no project is assigned to user" } if ( @$projects == 0 ); + #get all projects by user + my $projects = uac::get_projects_by_user( $config, { user => $user } ); + return { error => "no project is assigned to user" } if scalar @$projects == 0; - $projects = project::get($config) if ( @$admin_roles > 0 ); - my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects); - $projects = \@projects; + $projects = project::get($config) if ( @$admin_roles > 0 ); + my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects); + $projects = \@projects; - if ( $project_id ne '' && $project_id ne '-1' ) { - my $projectFound = 0; - for my $project (@$projects) { - if ( $project->{project_id} eq $project_id ) { - $projectFound = 1; - last; - } - } - return { error => "project is not assigned to user" } if ( $projectFound == 0 ); - } else { - $project_id = $projects->[0]->{project_id}; - } + if ( $project_id ne '' && $project_id ne '-1' ) { + my $projectFound = 0; + for my $project (@$projects) { + if ( $project->{project_id} eq $project_id ) { + $projectFound = 1; + last; + } + } + return { error => "project is not assigned to user" } if ( $projectFound == 0 ); + } else { + $project_id = $projects->[0]->{project_id}; + } - #print STDERR "project:$project_id\n"; + #print STDERR "project:$project_id\n"; - #check if studios are assigned to project - my $studios = project::get_studios( $config, { project_id => $project_id } ); - $error = "no studio is assigned to project" if ( @$studios == 0 ); + #check if studios are assigned to project + my $studios = project::get_studios( $config, { project_id => $project_id } ); + $error = "no studio is assigned to project" if scalar @$studios == 0; - if ( @$admin_roles == 0 ) { + if ( scalar @$admin_roles == 0 ) { - #get all studios by user - $studios = uac::get_studios_by_user( $config, { user => $user, project_id => $project_id } ); - $error = "no studio is assigned to user" if ( @$studios == 0 ); - if ( ( $studio_id ne '' ) && ( $studio_id ne '-1' ) ) { - my $studioFound = 0; - for my $studio (@$studios) { - if ( $studio->{id} eq $studio_id ) { - $studioFound = 1; - last; - } - } - $error = "studio is not assigned to user" if ( $studioFound == 0 ); - } else { - $studio_id = $studios->[0]->{id}; - } - } else { + #get all studios by user + $studios = uac::get_studios_by_user( $config, { user => $user, project_id => $project_id } ); + $error = "no studio is assigned to user" if scalar @$studios == 0; + if ( ( $studio_id ne '' ) && ( $studio_id ne '-1' ) ) { + my $studioFound = 0; + for my $studio (@$studios) { + if ( $studio->{id} eq $studio_id ) { + $studioFound = 1; + last; + } + } + $error = "studio is not assigned to user" if ( $studioFound == 0 ); + } else { + $studio_id = $studios->[0]->{id}; + } + } else { - #for admin get studios by project - $studios = studios::get( $config, { project_id => $project_id } ); - if ( ( $studio_id ne '' ) && ( $studio_id ne '-1' ) ) { - my $studioFound = 0; - for my $studio (@$studios) { - if ( $studio->{id} eq $studio_id ) { - $studioFound = 1; - last; - } - } - $error = "studio is not assigned to project" if ( $studioFound == 0 ); - } else { - $studio_id = $studios->[0]->{id}; - } - } + #for admin get studios by project + $studios = studios::get( $config, { project_id => $project_id } ); + if ( ( $studio_id ne '' ) && ( $studio_id ne '-1' ) ) { + my $studioFound = 0; + for my $studio (@$studios) { + if ( $studio->{id} eq $studio_id ) { + $studioFound = 1; + last; + } + } + $error = "studio is not assigned to project" if ( $studioFound == 0 ); + } else { + $studio_id = $studios->[0]->{id}; + } + } - my $permissions = uac::get_user_permissions( $config, { user => $user, project_id => $project_id, studio_id => $studio_id } ); + my $permissions = uac::get_user_permissions( $config, { user => $user, project_id => $project_id, studio_id => $studio_id } ); - #only admin is allowed to select all projects - # if($permissions->{is_admin}==1){ - # $projects=project::get($config); - # } + #only admin is allowed to select all projects + # if($permissions->{is_admin}==1){ + # $projects=project::get($config); + # } - #set studios and projects as selected, TODO:do in JS - my $selectedProject = {}; - for my $project (@$projects) { - if ( $project_id eq $project->{project_id} ) { - $project->{selected} = 'selected="selected"'; - $selectedProject = $project; - last; - } - } + #set studios and projects as selected, TODO:do in JS + my $selectedProject = {}; + for my $project (@$projects) { + if ( $project_id eq $project->{project_id} ) { + $project->{selected} = 'selected="selected"'; + $selectedProject = $project; + last; + } + } - my $selectedStudio = {}; - for my $studio (@$studios) { - if ( $studio_id eq $studio->{id} ) { - $studio->{selected} = 'selected="selected"'; - $selectedStudio = $studio; - last; - } - } + my $selectedStudio = {}; + for my $studio (@$studios) { + if ( $studio_id eq $studio->{id} ) { + $studio->{selected} = 'selected="selected"'; + $selectedStudio = $studio; + last; + } + } - my $logout_url = ( split( /\//, $0 ) )[-1]; + my $logout_url = ( split( /\//, $0 ) )[-1]; - #print STDERR "ok\n"; - my $result = { - user => $user, - logout_url => $logout_url, + #print STDERR "ok\n"; + my $result = { + user => $user, + logout_url => $logout_url, - project_id => $project_id, # from parameter or default - projects => $projects, - project => $selectedProject, + project_id => $project_id, # from parameter or default + projects => $projects, + project => $selectedProject, - studio_id => $studio_id, # from parameter or default - studios => $studios, - studio => $selectedStudio, + studio_id => $studio_id, # from parameter or default + studios => $studios, + studio => $selectedStudio, - permissions => $permissions, # from parameter or default - config => $config - }; - $result->{error} = $error if defined $error; - return $result; + permissions => $permissions, # from parameter or default + config => $config + }; + $result->{error} = $error if defined $error; + return $result; } #set user preset properties to request sub prepare_request { - my $request = shift; - my $user_presets = shift; + my $request = shift; + my $user_presets = shift; - for my $key ( keys %$user_presets ) { - $request->{$key} = $user_presets->{$key}; - } + for my $key ( keys %$user_presets ) { + $request->{$key} = $user_presets->{$key}; + } - #enrich menu parameters - for my $key ( 'studio_id', 'project_id', 'studio', 'project', 'studios', 'projects', 'user', 'logout_url' ) { - $request->{params}->{checked}->{presets}->{$key} = $user_presets->{$key}; - } - return $request; + #enrich menu parameters + for my $key ( 'studio_id', 'project_id', 'studio', 'project', 'studios', 'projects', 'user', 'logout_url' ) { + $request->{params}->{checked}->{presets}->{$key} = $user_presets->{$key}; + } + return $request; } #TODO: shift to permissions sub entry sub set_template_permissions { - my $permissions = shift; - my $params = shift; + my $permissions = shift; + my $params = shift; - for my $usecase ( keys %$permissions ) { - $params->{'allow'}->{$usecase} = 1 if ( $permissions->{$usecase} eq '1' ); - } - return $params; + for my $usecase ( keys %$permissions ) { + $params->{'allow'}->{$usecase} = 1 if ( $permissions->{$usecase} eq '1' ); + } + return $params; } #print error message sub permissions_denied { - my $message = shift; - $message =~ s/_/ /g; - print '
      Sorry! Missing permissions to ' . $message . '
      ' . "\n"; - print STDERR 'Sorry! Missing permissions to ' . $message . "\n"; + my $message = shift; + $message =~ s/_/ /g; + print '
      Sorry! Missing permissions to ' . $message . '
      ' . "\n"; + print STDERR 'Sorry! Missing permissions to ' . $message . "\n"; } sub print_info { - print '
      ' . ' ' . $_[0] . '
      ' . "\n"; + print '
      ' . ' ' . $_[0] . '
      ' . "\n"; } sub print_warn { - print '
      ' . ' ' . $_[0] . '
      ' . "\n"; + print '
      ' . ' ' . $_[0] . '
      ' . "\n"; } sub print_error { - my $message = shift; - print STDERR "ERROR:" . $message . "\n"; - print '
      ' . ' ' . $message . '
      ' . "\n"; + my $message = shift; + print STDERR "ERROR:" . $message . "\n"; + print '
      ' . ' ' . $message . '
      ' . "\n"; } #do not delete last line! diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 07b06bb..5b0aa68 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -14,218 +14,218 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; our $defaultColors = [ - { - name => 'color_event', - css => '#content .event', - color => '#c5e1a5' - }, - { - name => 'color_draft', - css => '#content .draft', - color => '#eeeeee', - }, - { - name => 'color_schedule', - css => '#content .schedule', - color => '#dde4e6', - }, - { - name => 'color_published', - css => '#content .event.published', - color => '#a5d6a7', - }, - { - name => 'color_no_series', - css => '#content .event.no_series', - color => '#fff59d', - }, - { - name => 'color_marked', - css => '#content .event.marked', - color => '#81d4fa', - }, - { - name => 'color_event_error', - css => '#content.conflicts .event.error', - color => '#ffab91', - }, - { - name => 'color_schedule_error', - css => '#content.conflicts .schedule.error', - color => '#ffcc80' - }, - { - name => 'color_work', - css => '#content .work', - color => '#b39ddb' - }, - { - name => 'color_playout', - css => '#content .play', - color => '#90caf9' - } + { + name => 'color_event', + css => '#content .event', + color => '#c5e1a5' + }, + { + name => 'color_draft', + css => '#content .draft', + color => '#eeeeee', + }, + { + name => 'color_schedule', + css => '#content .schedule', + color => '#dde4e6', + }, + { + name => 'color_published', + css => '#content .event.published', + color => '#a5d6a7', + }, + { + name => 'color_no_series', + css => '#content .event.no_series', + color => '#fff59d', + }, + { + name => 'color_marked', + css => '#content .event.marked', + color => '#81d4fa', + }, + { + name => 'color_event_error', + css => '#content.conflicts .event.error', + color => '#ffab91', + }, + { + name => 'color_schedule_error', + css => '#content.conflicts .schedule.error', + color => '#ffcc80' + }, + { + name => 'color_work', + css => '#content .work', + color => '#b39ddb' + }, + { + name => 'color_playout', + css => '#content .play', + color => '#90caf9' + } ]; sub getColors { - my $config = shift; - my $conditions = shift; - return unless defined $conditions->{user}; - my $user = $conditions->{user}; + my $config = shift; + my $conditions = shift; + return unless defined $conditions->{user}; + my $user = $conditions->{user}; - #get defaultColors - my $colors = []; - my $colorMap = {}; - for my $defaultColor (@$defaultColors) { - my $color = { - name => $defaultColor->{name}, - css => $defaultColor->{css}, - color => $defaultColor->{color}, - }; - push @$colors, $color; - $colorMap->{ $color->{css} } = $color; - } + #get defaultColors + my $colors = []; + my $colorMap = {}; + for my $defaultColor (@$defaultColors) { + my $color = { + name => $defaultColor->{name}, + css => $defaultColor->{css}, + color => $defaultColor->{color}, + }; + push @$colors, $color; + $colorMap->{ $color->{css} } = $color; + } - my $settings = user_settings::get( $config, { user => $user } ); - $settings->{colors} |= ''; + my $settings = user_settings::get( $config, { user => $user } ); + $settings->{colors} |= ''; - #overwrite colors from user settings - for my $line ( split( /\n+/, $settings->{colors} ) ) { - my ( $key, $value ) = split( /\=/, $line ); - $key =~ s/^\s+//; - $key =~ s/\s+$//; - $value =~ s/^\s+//; - $value =~ s/\s+$//; - $colorMap->{$key}->{color} = $value if ( ( $key ne '' ) && ( $value ne '' ) && ( defined $colorMap->{$key} ) ); - } - return $colors; + #overwrite colors from user settings + for my $line ( split( /\n+/, $settings->{colors} ) ) { + my ( $key, $value ) = split( /\=/, $line ); + $key =~ s/^\s+//; + $key =~ s/\s+$//; + $value =~ s/^\s+//; + $value =~ s/\s+$//; + $colorMap->{$key}->{color} = $value if ( $key ne '' ) && ( $value ne '' ) && ( defined $colorMap->{$key} ) ; + } + return $colors; } sub getColorCss { - my $config = shift; - my $conditions = shift; - return unless defined $conditions->{user}; + my $config = shift; + my $conditions = shift; + return unless defined $conditions->{user}; - my $shift = 20; - my $limit = 220; + my $shift = 20; + my $limit = 220; - my $colors = getColors( $config, $conditions ); - my $style = "\n"; - return $style; + my $colors = getColors( $config, $conditions ); + my $style = "\n"; + return $style; } sub get_columns { - my $config = shift; + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_user_settings' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_user_settings' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } sub get { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { - push @conditions, 'user=?'; - push @bind_values, $condition->{user}; - } + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select * from calcms_user_settings $conditions }; - #print $query."\n"; - #print Dumper(\@bind_values); + #print $query."\n"; + #print Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); - return $entries->[0] || undef; + my $entries = db::get( $dbh, $query, \@bind_values ); + return $entries->[0] || undef; } sub insert { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return unless ( defined $entry->{user} ); - return unless ( defined $entry->{colors} ); - my $dbh = db::connect($config); - return db::insert( $dbh, 'calcms_user_settings', $entry ); + return unless ( defined $entry->{user} ); + return unless ( defined $entry->{colors} ); + my $dbh = db::connect($config); + return db::insert( $dbh, 'calcms_user_settings', $entry ); } sub update { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return unless ( defined $entry->{user} ); - return unless ( defined $entry->{colors} ); + return unless ( defined $entry->{user} ); + return unless ( defined $entry->{colors} ); - my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values, $entry->{user}; + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{user}; - my $query = qq{ + my $query = qq{ update calcms_user_settings set $values where user=? }; - db::put( $dbh, $query, \@bind_values ); - print "done\n"; + db::put( $dbh, $query, \@bind_values ); + print "done\n"; } sub delete { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return unless ( defined $entry->{user} ); + return unless ( defined $entry->{user} ); - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = qq{ + my $query = qq{ delete from calcms_user_settings where user=? }; - my $bind_values = [ $entry->{user} ]; + my $bind_values = [ $entry->{user} ]; - #print '
      $query'.$query.Dumper($bind_values).'
      '; - db::put( $dbh, $query, $bind_values ); + #print '
      $query'.$query.Dumper($bind_values).'
      '; + db::put( $dbh, $query, $bind_values ); } sub error { - my $msg = shift; - print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/lib/calcms/user_stats.pm b/lib/calcms/user_stats.pm index 6f80503..8aace0d 100644 --- a/lib/calcms/user_stats.pm +++ b/lib/calcms/user_stats.pm @@ -13,55 +13,55 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; sub get_columns { - my $config = shift; + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_user_stats' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_user_stats' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } sub get { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'series_id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { - push @conditions, 'user=?'; - push @bind_values, $condition->{user}; - } + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } - my $limit = ''; - if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { - $limit = 'limit ' . $condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select * from calcms_user_stats $conditions @@ -69,50 +69,50 @@ sub get { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); - my $results = db::get( $dbh, $query, \@bind_values ); - return $results; + my $results = db::get( $dbh, $query, \@bind_values ); + return $results; } sub get_stats { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'series_id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { - push @conditions, 'user=?'; - push @bind_values, $condition->{user}; - } + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } - my $limit = ''; - if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { - $limit = 'limit ' . $condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select user, project_id, studio_id, max(modified_at) modified_at, sum(create_events) create_events, @@ -127,126 +127,126 @@ sub get_stats { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); + #print STDERR Dumper($query).Dumper(\@bind_values); - my $results = db::get( $dbh, $query, \@bind_values ); - for my $result (@$results) { - $result->{score} = 0; - for my $column ( 'create_events', 'update_events', 'delete_events', 'create_series', 'update_series', 'delete_series' ) { - $result->{score} += $result->{$column}; - } - } - my @results = reverse sort { $a->{score} <=> $b->{score} } @$results; - return \@results; + my $results = db::get( $dbh, $query, \@bind_values ); + for my $result (@$results) { + $result->{score} = 0; + for my $column ( 'create_events', 'update_events', 'delete_events', 'create_series', 'update_series', 'delete_series' ) { + $result->{score} += $result->{$column}; + } + } + my @results = reverse sort { $a->{score} <=> $b->{score} } @$results; + return \@results; } sub insert { - my $config = shift; - my $stats = shift; + my $config = shift; + my $stats = shift; - return undef unless defined $stats->{project_id}; - return undef unless defined $stats->{studio_id}; - return undef unless defined $stats->{series_id}; - return undef unless defined $stats->{user}; + return undef unless defined $stats->{project_id}; + return undef unless defined $stats->{studio_id}; + return undef unless defined $stats->{series_id}; + return undef unless defined $stats->{user}; - #TODO:filter for existing attributes - my $columns = get_columns($config); - my $entry = {}; - for my $column ( keys %$columns ) { - $entry->{$column} = $stats->{$column} if defined $stats->{$column}; - } - $entry->{modified_at} = time::time_to_datetime( time() ); + #TODO:filter for existing attributes + my $columns = get_columns($config); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $stats->{$column} if defined $stats->{$column}; + } + $entry->{modified_at} = time::time_to_datetime( time() ); - my $dbh = db::connect($config); - my $id = db::insert( $dbh, 'calcms_user_stats', $entry ); - return $id; + my $dbh = db::connect($config); + my $id = db::insert( $dbh, 'calcms_user_stats', $entry ); + return $id; } # update project sub update { - my $config = shift; - my $stats = shift; + my $config = shift; + my $stats = shift; - return undef unless defined $stats->{project_id}; - return undef unless defined $stats->{studio_id}; - return undef unless defined $stats->{series_id}; - return undef unless defined $stats->{user}; + return undef unless defined $stats->{project_id}; + return undef unless defined $stats->{studio_id}; + return undef unless defined $stats->{series_id}; + return undef unless defined $stats->{user}; - my $columns = get_columns($config); - my $entry = {}; - for my $column ( keys %$columns ) { - $entry->{$column} = $stats->{$column} if defined $stats->{$column}; - } - $entry->{modified_at} = time::time_to_datetime( time() ); + my $columns = get_columns($config); + my $entry = {}; + for my $column ( keys %$columns ) { + $entry->{$column} = $stats->{$column} if defined $stats->{$column}; + } + $entry->{modified_at} = time::time_to_datetime( time() ); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values, $entry->{user}; - push @bind_values, $entry->{project_id}; - push @bind_values, $entry->{studio_id}; - push @bind_values, $entry->{series_id}; + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{user}; + push @bind_values, $entry->{project_id}; + push @bind_values, $entry->{studio_id}; + push @bind_values, $entry->{series_id}; - my $query = qq{ + my $query = qq{ update calcms_user_stats set $values where user=? and project_id=? and studio_id=? and series_id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $dbh = db::connect($config); - return db::put( $dbh, $query, \@bind_values ); + #print STDERR Dumper($query).Dumper(\@bind_values); + my $dbh = db::connect($config); + return db::put( $dbh, $query, \@bind_values ); } sub increase { - my $config = shift; - my $usecase = shift; - my $options = shift; + my $config = shift; + my $usecase = shift; + my $options = shift; - #print STDERR Dumper($usecase)." ".Dumper($options); + #print STDERR Dumper($usecase)." ".Dumper($options); - return undef unless defined $usecase; - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{series_id}; - return undef unless defined $options->{user}; + return undef unless defined $usecase; + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{series_id}; + return undef unless defined $options->{user}; - #print STDERR "ok\n"; + #print STDERR "ok\n"; - my $columns = get_columns($config); + my $columns = get_columns($config); - #print STDERR "columns:".Dumper($columns); - return undef unless defined $columns->{$usecase}; + #print STDERR "columns:".Dumper($columns); + return undef unless defined $columns->{$usecase}; - my $entries = get( $config, $options ); + my $entries = get( $config, $options ); - #print STDERR "exist:".Dumper($columns); + #print STDERR "exist:".Dumper($columns); - if ( @$entries == 0 ) { - my $entry = { - project_id => $options->{project_id}, - studio_id => $options->{studio_id}, - series_id => $options->{series_id}, - user => $options->{user}, - $usecase => 1, - }; + if ( scalar @$entries == 0 ) { + my $entry = { + project_id => $options->{project_id}, + studio_id => $options->{studio_id}, + series_id => $options->{series_id}, + user => $options->{user}, + $usecase => 1, + }; - #print STDERR "user_stats::insert\n"; - return insert( $config, $entry ); - } elsif ( @$entries == 1 ) { - my $entry = $entries->[0]; - $entry->{$usecase}++ if defined + #print STDERR "user_stats::insert\n"; + return insert( $config, $entry ); + } elsif ( scalar @$entries == 1 ) { + my $entry = $entries->[0]; + $entry->{$usecase}++ if defined - #print STDERR "user_stats::update\n"; - return update( $config, $entry ); - } else { - print STDERR "user_stats: to few options given: $usecase," . Dumper($options) . "\n"; - } + #print STDERR "user_stats::update\n"; + return update( $config, $entry ); + } else { + print STDERR "user_stats: to few options given: $usecase," . Dumper($options) . "\n"; + } } sub error { - my $msg = shift; - print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index 7f8d09f..91e0132 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -22,80 +22,80 @@ our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] ); sub debug; sub get_columns { - my $config = shift; + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_work_dates' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_work_dates' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } # get all work_dates for studio_id and schedule_id within given time range # calculate start_date, end_date, weeday, day from start and end(datetime) sub get { - my $config = shift; - my $condition = shift; + my $config = shift; + my $condition = shift; - my $date_range_include = 0; - $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); + my $date_range_include = 0; + $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { - push @conditions, 'schedule_id=?'; - push @bind_values, $condition->{schedule_id}; - } + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'schedule_id=?'; + push @bind_values, $condition->{schedule_id}; + } - if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { - push @conditions, 'start=?'; - push @bind_values, $condition->{start_at}; - } + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'start=?'; + push @bind_values, $condition->{start_at}; + } - if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { - if ( $date_range_include == 1 ) { - push @conditions, 'end_date>=?'; - push @bind_values, $condition->{from}; - } else { - push @conditions, 'start_date>=?'; - push @bind_values, $condition->{from}; - } - } + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'end_date>=?'; + push @bind_values, $condition->{from}; + } else { + push @conditions, 'start_date>=?'; + push @bind_values, $condition->{from}; + } + } - if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { - if ( $date_range_include == 1 ) { - push @conditions, 'start_date<=?'; - push @bind_values, $condition->{till}; - } else { - push @conditions, 'end_date<=?'; - push @bind_values, $condition->{till}; - } - } + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'start_date<=?'; + push @bind_values, $condition->{till}; + } else { + push @conditions, 'end_date<=?'; + push @bind_values, $condition->{till}; + } + } - if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { - push @conditions, 'exclude=?'; - push @bind_values, $condition->{exclude}; - } + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'exclude=?'; + push @bind_values, $condition->{exclude}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select date(start) start_date ,date(end) end_date ,dayname(start) weekday @@ -114,281 +114,281 @@ sub get { order by start }; - #print STDERR $query."\n"; - #print STDERR Dumper(\@bind_values); + #print STDERR $query."\n"; + #print STDERR Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); - for my $entry (@$entries) { - $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); - } + my $entries = db::get( $dbh, $query, \@bind_values ); + for my $entry (@$entries) { + $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); + } - return $entries; + return $entries; } #update work dates for all schedules of a work and studio_id sub update { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{schedule_id}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{schedule_id}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - #delete all existing work dates (by project, studio and schedule id) - work_dates::delete( $config, $entry ); + #delete all existing work dates (by project, studio and schedule id) + work_dates::delete( $config, $entry ); - my $day_start = $config->{date}->{day_starting_hour}; + my $day_start = $config->{date}->{day_starting_hour}; - #get all schedules for schedule id ordered by exclude, date - my $schedules = work_schedule::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - schedule_id => $entry->{schedule_id}, - } - ); + #get all schedules for schedule id ordered by exclude, date + my $schedules = work_schedule::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + schedule_id => $entry->{schedule_id}, + } + ); - #add scheduled work dates and remove exluded dates - my $work_dates = {}; + #add scheduled work dates and remove exluded dates + my $work_dates = {}; - #TODO:set schedules exclude to 0 if not 1 - #insert all normal dates (not excludes) - for my $schedule (@$schedules) { - my $dates = get_schedule_dates( $schedule, { exclude => 0 } ); - for my $date (@$dates) { - $date->{exclude} = 0; - $work_dates->{ $date->{start} } = $date; + #TODO:set schedules exclude to 0 if not 1 + #insert all normal dates (not excludes) + for my $schedule (@$schedules) { + my $dates = get_schedule_dates( $schedule, { exclude => 0 } ); + for my $date (@$dates) { + $date->{exclude} = 0; + $work_dates->{ $date->{start} } = $date; - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); - } - } + #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); + } + } - #insert / overwrite all exlude dates - for my $schedule (@$schedules) { - my $dates = get_schedule_dates( $schedule, { exclude => 1 } ); - for my $date (@$dates) { - $date->{exclude} = 1; - $work_dates->{ $date->{start} } = $date; + #insert / overwrite all exlude dates + for my $schedule (@$schedules) { + my $dates = get_schedule_dates( $schedule, { exclude => 1 } ); + for my $date (@$dates) { + $date->{exclude} = 1; + $work_dates->{ $date->{start} } = $date; - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); - } - } + #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); + } + } - #print STDERR Dumper($work_dates->{'2014-02-05 19:00:00'}); + #print STDERR Dumper($work_dates->{'2014-02-05 19:00:00'}); - my $request = { config => $config }; + my $request = { config => $config }; - my $i = 0; - my $j = 0; - for my $date ( keys %$work_dates ) { - my $work_date = $work_dates->{$date}; + my $i = 0; + my $j = 0; + for my $date ( keys %$work_dates ) { + my $work_date = $work_dates->{$date}; - #insert date - my $entry = { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - schedule_id => $entry->{schedule_id}, - title => $entry->{title}, - type => $entry->{type}, - schedule_id => $entry->{schedule_id}, - start => $work_date->{start}, - end => $work_date->{end}, - exclude => $work_date->{exclude} - }; - if ( studio_timeslot_dates::can_studio_edit_events( $config, $entry ) == 1 ) { # by studio_id, start, end - $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); - $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); - db::insert( $dbh, 'calcms_work_dates', $entry ); + #insert date + my $entry = { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + schedule_id => $entry->{schedule_id}, + title => $entry->{title}, + type => $entry->{type}, + schedule_id => $entry->{schedule_id}, + start => $work_date->{start}, + end => $work_date->{end}, + exclude => $work_date->{exclude} + }; + if ( studio_timeslot_dates::can_studio_edit_events( $config, $entry ) == 1 ) { # by studio_id, start, end + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + db::insert( $dbh, 'calcms_work_dates', $entry ); - #print STDERR "$entry->{start_date}\n"; - $i++; - } else { - $j++; + #print STDERR "$entry->{start_date}\n"; + $i++; + } else { + $j++; - #print STDERR Dumper($entry); - } - } + #print STDERR Dumper($entry); + } + } - #print STDERR "$i work_dates updates\n"; - return $j . " dates out of studio times, " . $i; + #print STDERR "$i work_dates updates\n"; + return $j . " dates out of studio times, " . $i; } sub get_schedule_dates { - my $schedule = shift; - my $options = shift; + my $schedule = shift; + my $options = shift; - my $is_exclude = $options->{exclude} || 0; - my $dates = []; - return $dates if ( ( $is_exclude eq '1' ) && ( $schedule->{exclude} ne '1' ) ); - return $dates if ( ( $is_exclude eq '0' ) && ( $schedule->{exclude} eq '1' ) ); + my $is_exclude = $options->{exclude} || 0; + my $dates = []; + return $dates if ( $is_exclude eq '1' ) && ( $schedule->{exclude} ne '1' ); + return $dates if ( $is_exclude eq '0' ) && ( $schedule->{exclude} eq '1' ); - if ( $schedule->{period_type} eq 'single' ) { - $dates = get_single_date( $schedule->{start}, $schedule->{duration} ); - } elsif ( $schedule->{period_type} eq 'days' ) { - $dates = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{frequency} ); - } elsif ( $schedule->{period_type} eq 'week_of_month' ) { - $dates = get_week_of_month_dates( - $schedule->{start}, $schedule->{end}, $schedule->{duration}, - $schedule->{week_of_month}, $schedule->{weekday}, $schedule->{month} - ); - } else { - print STDERR "unknown schedule period_type\n"; - } - return $dates; + if ( $schedule->{period_type} eq 'single' ) { + $dates = get_single_date( $schedule->{start}, $schedule->{duration} ); + } elsif ( $schedule->{period_type} eq 'days' ) { + $dates = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{duration}, $schedule->{frequency} ); + } elsif ( $schedule->{period_type} eq 'week_of_month' ) { + $dates = get_week_of_month_dates( + $schedule->{start}, $schedule->{end}, $schedule->{duration}, + $schedule->{week_of_month}, $schedule->{weekday}, $schedule->{month} + ); + } else { + print STDERR "unknown schedule period_type\n"; + } + return $dates; } sub get_week_of_month_dates { - my $start = shift; # datetime string - my $end = shift; # datetime string - my $duration = shift; # in minutes - my $week = shift; # every nth week of month - my $weekday = shift; # weekday [1..7] - my $frequency = shift; # every 1st,2nd,3th time + my $start = shift; # datetime string + my $end = shift; # datetime string + my $duration = shift; # in minutes + my $week = shift; # every nth week of month + my $weekday = shift; # weekday [1..7] + my $frequency = shift; # every 1st,2nd,3th time - return undef if $start eq ''; - return undef if $end eq ''; - return undef if $duration eq ''; - return undef if $week eq ''; - return undef if $weekday eq ''; - return undef if $frequency eq ''; - return undef if $frequency == 0; + return undef if $start eq ''; + return undef if $end eq ''; + return undef if $duration eq ''; + return undef if $week eq ''; + return undef if $weekday eq ''; + return undef if $frequency eq ''; + return undef if $frequency == 0; - my $start_dates = time::get_nth_weekday_in_month( $start, $end, $week, $weekday ); + my $start_dates = time::get_nth_weekday_in_month( $start, $end, $week, $weekday ); - my $results = []; + my $results = []; - my $c = -1; - for my $start_datetime (@$start_dates) { - $c++; - my @start = @{ time::datetime_to_array($start_datetime) }; - next unless @start >= 6; - next if ( ( $c % $frequency ) != 0 ); + my $c = -1; + for my $start_datetime (@$start_dates) { + $c++; + my @start = @{ time::datetime_to_array($start_datetime) }; + next unless @start >= 6; + next if ( $c % $frequency ) != 0; - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds - ); - my $end_datetime = time::array_to_datetime( \@end_datetime ); + my @end_datetime = Date::Calc::Add_Delta_DHMS( + $start[0], $start[1], $start[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds + ); + my $end_datetime = time::array_to_datetime( \@end_datetime ); - push @$results, - { - start => $start_datetime, - end => $end_datetime - }; - } - return $results; + push @$results, + { + start => $start_datetime, + end => $end_datetime + }; + } + return $results; } #add duration to a single date sub get_single_date { - my $start_datetime = shift; - my $duration = shift; + my $start_datetime = shift; + my $duration = shift; - my @start = @{ time::datetime_to_array($start_datetime) }; - return unless @start >= 6; + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds - ); - my $date = { - start => $start_datetime, - end => time::array_to_datetime( \@end_datetime ) - }; - return [$date]; + my @end_datetime = Date::Calc::Add_Delta_DHMS( + $start[0], $start[1], $start[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds + ); + my $date = { + start => $start_datetime, + end => time::array_to_datetime( \@end_datetime ) + }; + return [$date]; } #calculate all dates between start_datetime and end_date with duration(minutes) and frequency(days) sub get_dates { - my $start_datetime = shift; - my $end_date = shift; - my $duration = shift; # in minutes - my $frequency = shift; # in days - #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; + my $start_datetime = shift; + my $end_date = shift; + my $duration = shift; # in minutes + my $frequency = shift; # in days + #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; - my @start = @{ time::datetime_to_array($start_datetime) }; - return unless @start >= 6; - my @start_date = ( $start[0], $start[1], $start[2] ); - my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] ); + my @start = @{ time::datetime_to_array($start_datetime) }; + return unless @start >= 6; + my @start_date = ( $start[0], $start[1], $start[2] ); + my $start_time = sprintf( '%02d:%02d:%02d', $start[3], $start[4], $start[5] ); - #print STDERR "$start_datetime,$end_date,$duration,$frequency\n"; + #print STDERR "$start_datetime,$end_date,$duration,$frequency\n"; - #return on single date - my $date = {}; - $date->{start} = sprintf( "%04d-%02d-%02d", @start_date ) . ' ' . $start_time; - return undef if $duration eq ''; + #return on single date + my $date = {}; + $date->{start} = sprintf( "%04d-%02d-%02d", @start_date ) . ' ' . $start_time; + return undef if $duration eq ''; - return undef if ( ( $frequency eq '' ) || ( $end_date eq '' ) ); + return undef if ( $frequency eq '' ) || ( $end_date eq '' ); - #continue on recurring date - my @end = @{ time::datetime_to_array($end_date) }; - return unless @end >= 3; - my @end_date = ( $end[0], $end[1], $end[2] ); + #continue on recurring date + my @end = @{ time::datetime_to_array($end_date) }; + return unless @end >= 3; + my @end_date = ( $end[0], $end[1], $end[2] ); - my $today = time::time_to_date(); - my ( $year, $month, $day ) = split( /\-/, $today ); + my $today = time::time_to_date(); + my ( $year, $month, $day ) = split( /\-/, $today ); - #do not show dates one month back - my $not_before = sprintf( "%04d-%02d-%02d", Date::Calc::Add_Delta_Days( $year, $month, $day, -30 ) ); + #do not show dates one month back + my $not_before = sprintf( "%04d-%02d-%02d", Date::Calc::Add_Delta_Days( $year, $month, $day, -30 ) ); - my $dates = []; - return $dates if ( $end_date lt $today ); - return $dates if ( $frequency < 1 ); + my $dates = []; + return $dates if ( $end_date lt $today ); + return $dates if ( $frequency < 1 ); - my $j = Date::Calc::Delta_Days( @start_date, @end_date ); - my $c = 0; - for ( my $i = 0 ; $i <= $j ; $i += $frequency ) { - my @date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); - my $date = {}; - $date->{start} = sprintf( "%04d-%02d-%02d", @date ) . ' ' . $start_time; + my $j = Date::Calc::Delta_Days( @start_date, @end_date ); + my $c = 0; + for ( my $i = 0 ; $i <= $j ; $i += $frequency ) { + my @date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); + my $date = {}; + $date->{start} = sprintf( "%04d-%02d-%02d", @date ) . ' ' . $start_time; - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $date[0], $date[1], $date[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, $duration, 0 # delta days, hours, minutes, seconds - ); - $date->{end} = time::array_to_datetime( \@end_datetime ); + my @end_datetime = Date::Calc::Add_Delta_DHMS( + $date[0], $date[1], $date[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, $duration, 0 # delta days, hours, minutes, seconds + ); + $date->{end} = time::array_to_datetime( \@end_datetime ); - last if ( $c > 200 ); - $c++; + last if ( $c > 200 ); + $c++; - next if $date->{end} lt $not_before; - push @$dates, $date; + next if $date->{end} lt $not_before; + push @$dates, $date; - } - return $dates; + } + return $dates; } #remove all work_dates for studio_id and schedule_id sub delete { - my $config = shift; - my $entry = shift; + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{schedule_id}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{schedule_id}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = qq{ + my $query = qq{ delete from calcms_work_dates where project_id=? and studio_id=? and schedule_id=? }; - my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id} ]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id} ]; - #print '
      $query'.$query.Dumper($bind_values).'
      '; - return db::put( $dbh, $query, $bind_values ); + #print '
      $query'.$query.Dumper($bind_values).'
      '; + return db::put( $dbh, $query, $bind_values ); } sub error { - my $msg = shift; - print "ERROR: $msg
      \n"; + my $msg = shift; + print "ERROR: $msg
      \n"; } #do not delete last line! diff --git a/website/agenda/planung/assign_series.cgi b/website/agenda/planung/assign_series.cgi index 1cb164c..406b813 100755 --- a/website/agenda/planung/assign_series.cgi +++ b/website/agenda/planung/assign_series.cgi @@ -2,7 +2,6 @@ use warnings "all"; use strict; - use Data::Dumper; use URI::Escape(); use Encode(); @@ -32,30 +31,30 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $cgi, $config ); -return if ( ( !defined $user ) || ( $user eq '' ) ); +return if ( !defined $user ) || ( $user eq '' ); #print STDERR $params->{project_id}."\n"; my $user_presets = uac::get_user_presets( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - user => $user - } + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + user => $user + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); + if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); $params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); + if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); #print STDERR $params->{project_id}."\n"; my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params($params), + }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -76,170 +75,170 @@ print q{ my $permissions = $request->{permissions}; unless ( $permissions->{scan_series_events} == 1 ) { - uac::permissions_denied('scan_series_events'); - return; + uac::permissions_denied('scan_series_events'); + return; } if ( defined $params->{action} ) { - assign_series( $config, $request ) if ( $params->{action} eq 'assign_series' ); + assign_series( $config, $request ) if $params->{action} eq 'assign_series'; } show_events( $config, $request ); sub show_events { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return; + } - my $projects = project::get( $config, { project_id => $params->{project_id} } ); - my $project = $projects->[0]; - return unless ( @$projects == 1 ); + my $projects = project::get( $config, { project_id => $params->{project_id} } ); + my $project = $projects->[0]; + return unless scalar @$projects == 1 ; - my $studios = studios::get( $config, { project_id => $params->{project_id}, studio_id => $params->{studio_id} } ); - my $studio = $studios->[0]; - return unless ( @$studios == 1 ); + my $studios = studios::get( $config, { project_id => $params->{project_id}, studio_id => $params->{studio_id} } ); + my $studio = $studios->[0]; + return unless scalar @$studios == 1 ; - my $project_name = $project->{name}; - my $studio_name = $studio->{location}; + my $project_name = $project->{name}; + my $studio_name = $studio->{location}; - #get series_names - my $dbh = db::connect($config); - my $query = q{ + #get series_names + my $dbh = db::connect($config); + my $query = q{ select project_id, studio_id, series_id, series_name, title from calcms_series s, calcms_project_series ps where s.id=ps.series_id order by series_name, title }; - my $results = db::get( $dbh, $query ); + my $results = db::get( $dbh, $query ); - # get projects by id - my $projects_by_id = {}; - $projects = project::get($config); - for my $project (@$projects) { - $projects_by_id->{ $project->{project_id} } = $project; - } + # get projects by id + my $projects_by_id = {}; + $projects = project::get($config); + for my $project (@$projects) { + $projects_by_id->{ $project->{project_id} } = $project; + } - # get studios by id - my $studios_by_id = {}; - $studios = studios::get($config); - for my $studio (@$studios) { - $studios_by_id->{ $studio->{id} } = $studio; - } + # get studios by id + my $studios_by_id = {}; + $studios = studios::get($config); + for my $studio (@$studios) { + $studios_by_id->{ $studio->{id} } = $studio; + } - #add project and studio name to series - for my $result (@$results) { - $result->{project_name} = $projects_by_id->{ $result->{project_id} }->{name}; - $result->{studio_name} = $studios_by_id->{ $result->{studio_id} }->{location}; - $result->{series_name} = 'Einzelsendung' if $result->{series_name} eq '_single_'; - } - $params->{series} = $results; + #add project and studio name to series + for my $result (@$results) { + $result->{project_name} = $projects_by_id->{ $result->{project_id} }->{name}; + $result->{studio_name} = $studios_by_id->{ $result->{studio_id} }->{location}; + $result->{series_name} = 'Einzelsendung' if $result->{series_name} eq '_single_'; + } + $params->{series} = $results; - #fill template - $params->{project_name} = $project_name; - $params->{studio_name} = $studio_name; + #fill template + $params->{project_name} = $project_name; + $params->{studio_name} = $studio_name; - template::process( 'print', $params->{template}, $params ); + template::process( 'print', $params->{template}, $params ); } sub assign_series { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return; + } - my $entry = {}; - for my $attr ( 'project_id', 'studio_id', 'series_id' ) { - if ( defined $params->{$attr} ) { - $entry->{$attr} = $params->{$attr}; - } else { - uac::print_error( $attr . ' not given!' ); - return; - } - } + my $entry = {}; + for my $attr ( 'project_id', 'studio_id', 'series_id' ) { + if ( defined $params->{$attr} ) { + $entry->{$attr} = $params->{$attr}; + } else { + uac::print_error( $attr . ' not given!' ); + return; + } + } - $config->{access}->{write} = 1; + $config->{access}->{write} = 1; - #check if series is assigned to project/studio - my $series = series::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - } - ); + #check if series is assigned to project/studio + my $series = series::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + } + ); - #print Dumper($series); - if ( @$series == 0 ) { + #print Dumper($series); + if ( @$series == 0 ) { - # assign series to project/studio - project::assign_series( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - } - ); + # assign series to project/studio + project::assign_series( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + } + ); - #print "assign\n"; - } else { - print STDERR + #print "assign\n"; + } else { + print STDERR "event $entry->{event_id} already assigned to project $entry->{project_id}, studio $entry->{studio_id}, series $entry->{series_id}\n"; - #print "is schon\n"; - } + #print "is schon\n"; + } - $config->{access}->{write} = 0; - uac::print_info("event successfully assigned to series"); + $config->{access}->{write} = 0; + uac::print_info("event successfully assigned to series"); } sub check_params { - my $params = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(assign_series)$/ ) { - $checked->{action} = $params->{action}; - } - } + #actions and roles + $checked->{action} = ''; + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(assign_series)$/ ) { + $checked->{action} = $params->{action}; + } + } - #numeric values - $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'series_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + #numeric values + $checked->{exclude} = 0; + for my $param ( 'id', 'project_id', 'studio_id', 'series_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - $checked->{template} = template::check( $params->{template}, 'assign_series' ); + $checked->{template} = template::check( $params->{template}, 'assign_series' ); - return $checked; + return $checked; } __DATA__ diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index 967e954..73d8ccf 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -36,26 +36,26 @@ return if ( ( !defined $user ) || ( $user eq '' ) ); #print STDERR $params->{project_id}."\n"; my $user_presets = uac::get_user_presets( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - user => $user - } + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + user => $user + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); + if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); $params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); + if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); #print STDERR $params->{project_id}."\n"; my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params($params), + }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -76,86 +76,86 @@ print q{ my $permissions = $request->{permissions}; unless ( $permissions->{scan_series_events} == 1 ) { - uac::permissions_denied('scan_series_events'); - return; + uac::permissions_denied('scan_series_events'); + return; } if ( defined $params->{action} ) { - assign_events( $config, $request ) if ( $params->{action} eq 'assign_events' ); + assign_events( $config, $request ) if ( $params->{action} eq 'assign_events' ); } show_events( $config, $request ); sub show_events { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return; + } - my $projects = project::get( $config, { project_id => $params->{project_id} } ); - my $project = $projects->[0]; + my $projects = project::get( $config, { project_id => $params->{project_id} } ); + my $project = $projects->[0]; - #print STDERR Dumper($project); - return unless ( @$projects == 1 ); + #print STDERR Dumper($project); + return unless ( @$projects == 1 ); - my $studios = studios::get( $config, { project_id => $params->{project_id}, studio_id => $params->{studio_id} } ); - my $studio = $studios->[0]; + my $studios = studios::get( $config, { project_id => $params->{project_id}, studio_id => $params->{studio_id} } ); + my $studio = $studios->[0]; - #print STDERR Dumper($studio); - return unless ( @$studios == 1 ); + #print STDERR Dumper($studio); + return unless ( @$studios == 1 ); - my $project_name = $project->{name}; - my $studio_name = $studio->{location}; + my $project_name = $project->{name}; + my $studio_name = $studio->{location}; - #get series_names - my $dbh = db::connect($config); - my $query = q{ + #get series_names + my $dbh = db::connect($config); + my $query = q{ select project_id, studio_id, series_id, series_name, title from calcms_series s, calcms_project_series ps where s.id=ps.series_id order by series_name, title }; - my $results = db::get( $dbh, $query ); + my $results = db::get( $dbh, $query ); - # get projects by id - my $projects_by_id = {}; - $projects = project::get($config); - for my $project (@$projects) { - $projects_by_id->{ $project->{project_id} } = $project; - } + # get projects by id + my $projects_by_id = {}; + $projects = project::get($config); + for my $project (@$projects) { + $projects_by_id->{ $project->{project_id} } = $project; + } - # get studios by id - my $studios_by_id = {}; - $studios = studios::get($config); - for my $studio (@$studios) { - $studios_by_id->{ $studio->{id} } = $studio; - } + # get studios by id + my $studios_by_id = {}; + $studios = studios::get($config); + for my $studio (@$studios) { + $studios_by_id->{ $studio->{id} } = $studio; + } - #add project and studio name to series - for my $result (@$results) { - $result->{project_name} = $projects_by_id->{ $result->{project_id} }->{name}; - $result->{studio_name} = $studios_by_id->{ $result->{studio_id} }->{location}; - $result->{series_name} = 'Einzelsendung' if $result->{series_name} eq '_single_'; - } - $params->{series} = $results; + #add project and studio name to series + for my $result (@$results) { + $result->{project_name} = $projects_by_id->{ $result->{project_id} }->{name}; + $result->{studio_name} = $studios_by_id->{ $result->{studio_id} }->{location}; + $result->{series_name} = 'Einzelsendung' if $result->{series_name} eq '_single_'; + } + $params->{series} = $results; - # get events not assigned to series - my $conditions = []; - my $bind_values = []; - if ( $project_name ne '' ) { - push @$conditions, 'e.project=?'; - push @$bind_values, $project_name; - } - if ( $studio_name ne '' ) { - push @$conditions, 'e.location=?'; - push @$bind_values, $studio_name; - } - $conditions = ' and ' . join( ' and ', @$conditions ) if ( @$conditions > 0 ); - $query = qq{ + # get events not assigned to series + my $conditions = []; + my $bind_values = []; + if ( $project_name ne '' ) { + push @$conditions, 'e.project=?'; + push @$bind_values, $project_name; + } + if ( $studio_name ne '' ) { + push @$conditions, 'e.location=?'; + push @$bind_values, $studio_name; + } + $conditions = ' and ' . join( ' and ', @$conditions ) if scalar(@$conditions) > 0; + $query = qq{ select e.id, program, project, location, start, series_name, title, episode, rerun from calcms_events e left join calcms_series_events se on se.event_id =e.id where se.event_id is null @@ -163,252 +163,252 @@ sub show_events { order by series_name,title,start limit 1000 }; - print '
      ' . Dumper($query) . Dumper($bind_values) . '
      '; - $results = db::get( $dbh, $query, $bind_values ); + print '
      ' . Dumper($query) . Dumper($bind_values) . '
      '; + $results = db::get( $dbh, $query, $bind_values ); - # detect title and episode - for my $result (@$results) { - $result->{rerun} .= ''; - if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { - $result->{episode} = $1 unless defined $result->{episode}; - $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); - $result->{title} =~ s/\#\d+[a-z]?\s*$//; - $result->{title} =~ s/\s+$//; - } - my $a = time::datetime_to_array( $result->{start} ); + # detect title and episode + for my $result (@$results) { + $result->{rerun} .= ''; + if ( $result->{title} =~ /\#(\d+)([a-z])?\s*$/ ) { + $result->{episode} = $1 unless defined $result->{episode}; + $result->{rerun} = $2 || '' unless ( $result->{rerun} =~ /\d/ ); + $result->{title} =~ s/\#\d+[a-z]?\s*$//; + $result->{title} =~ s/\s+$//; + } + my $a = time::datetime_to_array( $result->{start} ); - #print STDERR "($a->[0],$a->[1],$a->[2])\n"; - $result->{weekday} = time::weekday( $a->[0], $a->[1], $a->[2] ); - $result->{weekday} = $time::names->{de}->{weekdays_abbr}->[ $result->{weekday} - 1 ]; - } + #print STDERR "($a->[0],$a->[1],$a->[2])\n"; + $result->{weekday} = time::weekday( $a->[0], $a->[1], $a->[2] ); + $result->{weekday} = $time::names->{de}->{weekdays_abbr}->[ $result->{weekday} - 1 ]; + } - #fill template - $params->{unassigned_events} = $results; - $params->{sum_events} = @$results; - $params->{project_name} = $project_name; - $params->{studio_name} = $studio_name; + #fill template + $params->{unassigned_events} = $results; + $params->{sum_events} = @$results; + $params->{project_name} = $project_name; + $params->{studio_name} = $studio_name; - template::process( 'print', $params->{template}, $params ); + template::process( 'print', $params->{template}, $params ); } sub assign_events { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return; + } - my $entry = {}; - for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_ids' ) { - if ( defined $params->{$attr} ) { - $entry->{$attr} = $params->{$attr}; - } else { - uac::print_error( $attr . ' not given!' ); - return; - } - } + my $entry = {}; + for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_ids' ) { + if ( defined $params->{$attr} ) { + $entry->{$attr} = $params->{$attr}; + } else { + uac::print_error( $attr . ' not given!' ); + return; + } + } - $config->{access}->{write} = 1; - for my $event_id ( split( /[\,\s]+/, $params->{event_ids} ) ) { - next unless $event_id =~ /^\d+/; - $entry->{event_id} = $event_id; + $config->{access}->{write} = 1; + for my $event_id ( split( /[\,\s]+/, $params->{event_ids} ) ) { + next unless $event_id =~ /^\d+/; + $entry->{event_id} = $event_id; - #get and parse event - my $request2 = { - params => { - checked => events::check_params( - $config, - { - event_id => $entry->{event_id}, - template => 'no', - limit => 1, - archive => 'all', - } - ) - }, - config => $request->{config}, - permissions => $request->{permissions} - }; - $request2->{params}->{checked}->{published} = 'all'; - my $events = events::get( $config, $request2 ); - my $event = $events->[0]; - unless ( defined $event ) { - print STDERR + #get and parse event + my $request2 = { + params => { + checked => events::check_params( + $config, + { + event_id => $entry->{event_id}, + template => 'no', + limit => 1, + archive => 'all', + } + ) + }, + config => $request->{config}, + permissions => $request->{permissions} + }; + $request2->{params}->{checked}->{published} = 'all'; + my $events = events::get( $config, $request2 ); + my $event = $events->[0]; + unless ( defined $event ) { + print STDERR "event not found for project $entry->{project_id}, studio $entry->{studio_id}, series $entry->{series_id}, event $entry->{event_id}\n"; - next; - } - print STDERR "'" . $event->{event_id} . "' '" . $event->{series_name} . "' '" . $event->{title} . "' '" . $event->{episode} . "'\n"; + next; + } + print STDERR "'" . $event->{event_id} . "' '" . $event->{series_name} . "' '" . $event->{title} . "' '" . $event->{episode} . "'\n"; - #next; + #next; - #check if series is assigned to project/studio - my $series = series::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - } - ); - if ( @$series == 0 ) { + #check if series is assigned to project/studio + my $series = series::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + } + ); + if ( scalar(@$series) == 0 ) { - # assign series to project/studio - project::assign_series( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - } - ); - } else { - print STDERR + # assign series to project/studio + project::assign_series( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + } + ); + } else { + print STDERR "event $entry->{event_id} already asigned to project $entry->{project_id}, studio $entry->{studio_id}, series $entry->{series_id}\n"; - } + } - #get series - $series = series::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - } - ); - if ( @$series == 1 ) { - my $serie = $series->[0]; + #get series + $series = series::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + } + ); + if ( scalar(@$series) == 1 ) { + my $serie = $series->[0]; - #set event's series name to value from series - my $series_name = $serie->{series_name} || ''; - if ( $series_name ne '' ) { + #set event's series name to value from series + my $series_name = $serie->{series_name} || ''; + if ( $series_name ne '' ) { - # prepend series_name from event to title on adding to single_events series - my $title = $event->{title}; - if ( $serie->{has_single_events} eq '1' ) { - $title = $event->{series_name} . ' - ' . $title if $event->{series_name} ne ''; - } + # prepend series_name from event to title on adding to single_events series + my $title = $event->{title}; + if ( $serie->{has_single_events} eq '1' ) { + $title = $event->{series_name} . ' - ' . $title if $event->{series_name} ne ''; + } - # save event content - series_events::save_content( - $config, - { - studio_id => $entry->{studio_id}, - id => $entry->{event_id}, #TODO: id=> event_id - series_name => $series_name, - title => $title, - episode => $event->{episode}, - rerun => $event->{rerun}, - modified_by => $params->{presets}->{user}, - } - ); + # save event content + series_events::save_content( + $config, + { + studio_id => $entry->{studio_id}, + id => $entry->{event_id}, #TODO: id=> event_id + series_name => $series_name, + title => $title, + episode => $event->{episode}, + rerun => $event->{rerun}, + modified_by => $params->{presets}->{user}, + } + ); - # add to history - $event->{project_id} = $entry->{project_id}; - $event->{studio_id} = $entry->{studio_id}; - $event->{series_id} = $entry->{series_id}; - $event->{event_id} = $entry->{event_id}; - $event->{series_name} = $series_name; - $event->{title} = $title; - $event->{user} = $params->{presets}->{user}; - event_history::insert( $config, $event ); + # add to history + $event->{project_id} = $entry->{project_id}; + $event->{studio_id} = $entry->{studio_id}; + $event->{series_id} = $entry->{series_id}; + $event->{event_id} = $entry->{event_id}; + $event->{series_name} = $series_name; + $event->{title} = $title; + $event->{user} = $params->{presets}->{user}; + event_history::insert( $config, $event ); - # print STDERR "ok\n"; - } - } else { - print STDERR "no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; - next; - } + # print STDERR "ok\n"; + } + } else { + print STDERR "no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; + next; + } - #assign event - my $result = series::assign_event( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - event_id => $entry->{event_id}, - manual => 1 - } - ); - unless ( defined $result ) { - uac::print_error("error on assigning event to series"); - return undef; - } - } + #assign event + my $result = series::assign_event( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + event_id => $entry->{event_id}, + manual => 1 + } + ); + unless ( defined $result ) { + uac::print_error("error on assigning event to series"); + return undef; + } + } - $config->{access}->{write} = 0; - uac::print_info("event successfully assigned to series"); + $config->{access}->{write} = 0; + uac::print_info("event successfully assigned to series"); - #$params->{getBack}=1; + #$params->{getBack}=1; } sub check_params { - my $params = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(assign_events)$/ ) { - $checked->{action} = $params->{action}; - } - } + #actions and roles + $checked->{action} = ''; + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(assign_events)$/ ) { + $checked->{action} = $params->{action}; + } + } - #numeric values - $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'event_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + #numeric values + $checked->{exclude} = 0; + for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'event_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - for my $param ('event_ids') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\d,]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ('event_ids') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\d,]+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - $checked->{template} = template::check( $params->{template}, 'assignments' ); + $checked->{template} = template::check( $params->{template}, 'assignments' ); - if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) { + if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) { - #set defaults - $checked->{create_events} = 0; - $checked->{publish_events} = 0; - } - for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', 'count_episodes' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + #set defaults + $checked->{create_events} = 0; + $checked->{publish_events} = 0; + } + for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', 'count_episodes' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { + $checked->{$param} = $1; + } + } - #scalars - for my $param ( 'search', 'from', 'till' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + #scalars + for my $param ( 'search', 'from', 'till' ) { + if ( defined $params->{$param} ) { + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^\s+//g; + $checked->{$param} =~ s/\s+$//g; + } + } - return $checked; + return $checked; } __DATA__ diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index ef2aca6..5bdddd6 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -6,7 +6,7 @@ use warnings; use strict; use Data::Dumper; -use CGI::Simple (); +use CGI::Simple (); use ModPerl::Util (); use Date::Calc(); use Time::Local(); @@ -141,8 +141,9 @@ sub uploadRecording { #print STDERR Dumper($fh)."
      "; my $fileInfo = uploadFile( $config, $fh, $params->{event_id}, $user, $params->{upload} ); $params->{error} .= $fileInfo->{error} if defined $fileInfo->{error}; - $params->{path} = $fileInfo->{path}; - $params->{size} = $fileInfo->{size}; + $params->{path} = $fileInfo->{path}; + $params->{size} = $fileInfo->{size}; + #$params->{duration} = $fileInfo->{duration}; $params = updateDatabase( $config, $params, $user ) if $params->{error} eq ''; } else { @@ -292,18 +293,19 @@ sub showAudioRecordings { event_id => $params->{event_id}, } ); + #print Dumper($audioRecordings); for my $recording (@$audioRecordings) { $recording->{size} =~ s/(\d)(\d\d\d)$/$1\.$2/g; $recording->{size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; $recording->{processed} = $recording->{processed} ? 'yes' : 'no'; - $recording->{mastered} = $recording->{mastered} ? 'yes' : 'no'; + $recording->{mastered} = $recording->{mastered} ? 'yes' : 'no'; $recording->{eventDuration} = getDuration( $recording->{eventDuration} ); $recording->{audioDuration} = getDuration( $recording->{audioDuration} ); - $recording->{rmsLeft} ||= '-'; + $recording->{rmsLeft} ||= '-'; $recording->{rmsRight} ||= '-'; } @@ -323,19 +325,19 @@ sub showAudioRecordings { } -sub getDuration{ - my $duration=shift; - my $hour = int($duration / 3600); - $duration -= $hour * 3600; +sub getDuration { + my $duration = shift; + my $hour = int( $duration / 3600 ); + $duration -= $hour * 3600; - my $minutes = int($duration / 60); - $duration -= $minutes * 60; + my $minutes = int( $duration / 60 ); + $duration -= $minutes * 60; - my $seconds = int($duration); - $duration -= $seconds; + my $seconds = int($duration); + $duration -= $seconds; - my $milli= int(100 * $duration); - return sprintf("%02d:%02d:%02d.%02d",$hour, $minutes, $seconds, $milli); + my $milli = int( 100 * $duration ); + return sprintf( "%02d:%02d:%02d.%02d", $hour, $minutes, $seconds, $milli ); } sub uploadFile { @@ -391,7 +393,7 @@ sub updateDatabase { my $params = shift; my $user = shift; - my $eventDuration = getEventDuration($config, $params->{event_id}); + my $eventDuration = getEventDuration( $config, $params->{event_id} ); my $entry = { project_id => $params->{project_id}, @@ -402,6 +404,7 @@ sub updateDatabase { created_by => $user, eventDuration => $eventDuration }; + #print STDERR "updateDatabase:" . Dumper($entry); #connect @@ -425,14 +428,14 @@ sub updateDatabase { $params->{id} = $entry->{id}; } else { print STDERR "insert\n"; - $entry->{created_by} = $user; - $entry->{processed} = 0; - $entry->{mastered} = 0; - $entry->{rmsLeft} = 0.0; - $entry->{rmsRight} = 0.0; - $entry->{audioDuration} = 0.0; - $entry->{modified_at} = time(); - $params->{id} = audio_recordings::insert( $config, $dbh, $entry ); + $entry->{created_by} = $user; + $entry->{processed} = 0; + $entry->{mastered} = 0; + $entry->{rmsLeft} = 0.0; + $entry->{rmsRight} = 0.0; + $entry->{audioDuration} = 0.0; + $entry->{modified_at} = time(); + $params->{id} = audio_recordings::insert( $config, $dbh, $entry ); } $config->{access}->{write} = 0; $params->{action_result} = 'done!'; @@ -504,15 +507,15 @@ sub checkFilename { } # return event duration in seconds -sub getEventDuration{ - my $config = shift; - my $eventId = shift; +sub getEventDuration { + my $config = shift; + my $eventId = shift; + + if ( $eventId < 1 ) { + print STDERR "invalid eventId $eventId\n"; + return 0; + } - if ($eventId<1){ - print STDERR "invalid eventId $eventId\n"; - return 0; - } - my $request = { params => { checked => events::check_params( @@ -524,16 +527,16 @@ sub getEventDuration{ } ) }, - config => $config + config => $config }; - $request->{params}->{checked}->{published}='all'; - my $events = events::get( $config, $request ); - if (scalar @$events == 0){ - print STDERR "getEventDuration: no event found with event_id=$eventId\n"; + $request->{params}->{checked}->{published} = 'all'; + my $events = events::get( $config, $request ); + if ( scalar @$events == 0 ) { + print STDERR "getEventDuration: no event found with event_id=$eventId\n"; } - my $event = $events->[0]; - my $duration = time::get_duration_seconds( $event->{start}, $event->{end}, $config->{date}->{time_zone} ); - return $duration; + my $event = $events->[0]; + my $duration = time::get_duration_seconds( $event->{start}, $event->{end}, $config->{date}->{time_zone} ); + return $duration; } sub check_params { diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 267877f..131a2ab 100644 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -37,15 +37,15 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $cgi, $config ); -return if ( ( !defined $user ) || ( $user eq '' ) ); +return if ( !defined $user ) || ( $user eq '' ); my $user_presets = uac::get_user_presets( - $config, - { - user => $user, - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } + $config, + { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{project_id} = $user_presets->{project_id} @@ -59,24 +59,24 @@ my $scriptName = 'calendar.cgi'; #add "all" studio to select box unshift @{ $user_presets->{studios} }, { - id => -1, - name => '-all-' + id => -1, + name => '-all-' }; # select studios, TODO: do in JS if ( $params->{studio_id} eq '-1' ) { - for my $studio ( @{ $user_presets->{studios} } ) { - delete $studio->{selected}; - $studio->{selected} = 1 if $params->{studio_id} eq $studio->{id}; - } + for my $studio ( @{ $user_presets->{studios} } ) { + delete $studio->{selected}; + $studio->{selected} = 1 if $params->{studio_id} eq $studio->{id}; + } } my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params( $params, $config ), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $params, $config ), + }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -85,21 +85,21 @@ $params = $request->{params}->{checked}; #print STDERR Dumper($request); if ( - ( - ( defined $params->{action} ) && ( ( $params->{action} eq 'show' ) - || ( $params->{action} eq 'edit_event' ) ) - ) - || ( $params->{part} == 1 ) + ( + ( defined $params->{action} ) && ( ( $params->{action} eq 'show' ) + || ( $params->{action} eq 'edit_event' ) ) + ) + || ( $params->{part} == 1 ) ) { - print "Content-type:text/html; charset=UTF-8;\n\n"; + print "Content-type:text/html; charset=UTF-8;\n\n"; } else { - #process header - my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); - $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process( 'print', template::check('default.html'), $headerParams ); - print q{ + #process header + my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); + $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); + template::process( 'print', template::check('default.html'), $headerParams ); + print q{ @@ -107,43 +107,43 @@ if ( }; - if ( $params->{list} eq '1' ) { - print q{ + if ( $params->{list} eq '1' ) { + print q{ }; - } + } } if ( defined $user_presets->{error} ) { - print "

      "; - uac::print_error( $user_presets->{error} ); - return; + print "

      "; + uac::print_error( $user_presets->{error} ); + return; } $config->{access}->{write} = 0; unless ( defined $params->{project_id} ) { - uac::print_error("Please select a project"); - return; + uac::print_error("Please select a project"); + return; } if ( $params->{project_id} ne '-1' ) { - if ( project::check( $config, { project_id => $params->{project_id} } ) ne '1' ) { - uac::print_error("invalid project"); - return; - } + if ( project::check( $config, { project_id => $params->{project_id} } ) ne '1' ) { + uac::print_error("invalid project"); + return; + } } unless ( defined $params->{studio_id} ) { - uac::print_error("Please select a studio"); - return; + uac::print_error("Please select a studio"); + return; } if ( $params->{studio_id} ne '-1' ) { - if ( studios::check( $config, { studio_id => $params->{studio_id} } ) ne '1' ) { - uac::print_error("invalid studio"); - return; - } + if ( studios::check( $config, { studio_id => $params->{studio_id} } ) ne '1' ) { + uac::print_error("invalid studio"); + return; + } } my $start_of_day = $params->{day_start}; @@ -153,291 +153,295 @@ our $hour_height = 60; our $yzoom = 1.5; showCalendar( - $config, $request, - { - hour_height => $hour_height, - yzoom => $yzoom, - start_of_day => $start_of_day, - end_of_day => $end_of_day, - } + $config, $request, + { + hour_height => $hour_height, + yzoom => $yzoom, + start_of_day => $start_of_day, + end_of_day => $end_of_day, + } ); sub showCalendar { - my $config = shift; - my $request = shift; - my $cal_options = shift; + my $config = shift; + my $request = shift; + my $cal_options = shift; - my $hour_height = $cal_options->{hour_height}; - my $yzoom = $cal_options->{yzoom}; - my $start_of_day = $cal_options->{start_of_day}; - my $end_of_day = $cal_options->{end_of_day}; + my $hour_height = $cal_options->{hour_height}; + my $yzoom = $cal_options->{yzoom}; + my $start_of_day = $cal_options->{start_of_day}; + my $end_of_day = $cal_options->{end_of_day}; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_series} == 1 ) { - uac::permissions_denied('read_series'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_series} == 1 ) { + uac::permissions_denied('read_series'); + return; + } - #get range from user settings - my $user_settings = user_settings::get( $config, { user => $params->{presets}->{user} } ); - $params->{range} = $user_settings->{range} unless defined $params->{range}; - $params->{range} = 28 unless defined $params->{range}; + #get range from user settings + my $user_settings = user_settings::get( $config, { user => $params->{presets}->{user} } ); + $params->{range} = $user_settings->{range} unless defined $params->{range}; + $params->{range} = 28 unless defined $params->{range}; - #get colors from user settings - print user_settings::getColorCss( $config, { user => $params->{presets}->{user} } ) if $params->{part} == 0; + #get colors from user settings + print user_settings::getColorCss( $config, { user => $params->{presets}->{user} } ) if $params->{part} == 0; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,calendar' } ); - my $language = $user_settings->{language} || 'en'; - $params->{language} = $language; - print localization::getJavascript( $params->{loc} ) if $params->{part} == 0; + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,calendar' } ); + my $language = $user_settings->{language} || 'en'; + $params->{language} = $language; + print localization::getJavascript( $params->{loc} ) if $params->{part} == 0; - my $calendar = getCalendar( $config, $params, $language ); - my $options = {}; - my $events = []; + my $calendar = getCalendar( $config, $params, $language ); + my $options = {}; + my $events = []; - if ( ( $params->{part} == 1 ) || ( $params->{list} == 1 ) ) { + if ( ( $params->{part} == 1 ) || ( $params->{list} == 1 ) ) { - #set date range - my $from = $calendar->{from_date}; - my $till = $calendar->{till_date}; + #set date range + my $from = $calendar->{from_date}; + my $till = $calendar->{till_date}; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - #build event filter - $options = { - project_id => $project_id, - template => 'no', - limit => 600, - get => 'no_content', - from_date => $from, - till_date => $till, - date_range_include => 1, - archive => 'all', - }; + #build event filter + $options = { + project_id => $project_id, + template => 'no', + limit => 600, + get => 'no_content', + from_date => $from, + till_date => $till, + date_range_include => 1, + archive => 'all', + }; - # set options depending on switches - if ( $params->{studio_id} ne '-1' ) { - $options->{studio_id} = $studio_id; - my $location = $params->{presets}->{studio}->{location}; - $options->{location} = $location if $location =~ /\S/; - } + # set options depending on switches + if ( $params->{studio_id} ne '-1' ) { + $options->{studio_id} = $studio_id; + my $location = $params->{presets}->{studio}->{location}; + $options->{location} = $location if $location =~ /\S/; + } - if ( $params->{project_id} ne '-1' ) { - $options->{project_id} = $project_id; - my $project = $params->{presets}->{project}->{name}; - $options->{project} = $project if $project =~ /\S/; - } + if ( $params->{project_id} ne '-1' ) { + $options->{project_id} = $project_id; + my $project = $params->{presets}->{project}->{name}; + $options->{project} = $project if $project =~ /\S/; + } - if ( defined $params->{series_id} ) { - $options->{series_id} = $params->{series_id}; - delete $options->{from_date}; - delete $options->{till_date}; - delete $options->{date_range_include}; - } + if ( defined $params->{series_id} ) { + $options->{series_id} = $params->{series_id}; + delete $options->{from_date}; + delete $options->{till_date}; + delete $options->{date_range_include}; + } - if ( $params->{search} =~ /\S/ ) { - $options->{search} = $params->{search}; - delete $options->{from_date} if ( $params->{list} == 1 ); - delete $options->{till_date} if ( $params->{list} == 1 ); - delete $options->{date_range_include} if ( $params->{list} == 1 ); - } + if ( $params->{search} =~ /\S/ ) { + if ( $params->{list} == 1 ) { + $options->{search} = $params->{search}; + delete $options->{from_date}; + delete $options->{till_date}; + delete $options->{date_range_include}; + } + } - $options->{draft} = 0 unless $params->{list} == 1; + $options->{draft} = 0 unless $params->{list} == 1; - #get events sorted by date - $events = getSeriesEvents( $config, $request, $options, $params ); - unless ( $params->{list} == 1 ) { - for my $event (@$events) { - $event->{origStart} = $event->{start}; - } - $events = break_dates( $events, $start_of_day ); - } + #get events sorted by date + $events = getSeriesEvents( $config, $request, $options, $params ); + unless ( $params->{list} == 1 ) { + for my $event (@$events) { + $event->{origStart} = $event->{start}; + } + $events = break_dates( $events, $start_of_day ); + } - # recalc after break (for list only?) - for my $event (@$events) { + # recalc after break (for list only?) + for my $event (@$events) { - #if ($event->{splitCount}>0){ - delete $event->{day}; - delete $event->{start_date}; - delete $event->{end_date}; - $event = events::calc_dates( $config, $event ); + #if ($event->{splitCount}>0){ + delete $event->{day}; + delete $event->{start_date}; + delete $event->{end_date}; + $event = events::calc_dates( $config, $event ); - #} - } + #} + } - my $events_by_start = {}; - for my $event (@$events) { - $events_by_start->{ $event->{start} } = $event; - } + my $events_by_start = {}; + for my $event (@$events) { + $events_by_start->{ $event->{start} } = $event; + } - #build series filter - $options = { - project_id => $project_id, - studio_id => $studio_id, - from => $from, - till => $till, - date_range_include => 1, - exclude => 0 - }; + #build series filter + $options = { + project_id => $project_id, + studio_id => $studio_id, + from => $from, + till => $till, + date_range_include => 1, + exclude => 0 + }; - if ( defined $params->{series_id} ) { - $options->{series_id} = $params->{series_id}; - delete $options->{from}; - delete $options->{till}; - delete $options->{date_range_include}; - } + if ( defined $params->{series_id} ) { + $options->{series_id} = $params->{series_id}; + delete $options->{from}; + delete $options->{till}; + delete $options->{date_range_include}; + } - if ( $params->{search} =~ /\S/ ) { - $options->{search} = $params->{search}; - delete $options->{from} if ( $params->{list} == 1 ); - delete $options->{till} if ( $params->{list} == 1 ); - delete $options->{date_range_include} if ( $params->{list} == 1 ); - } + if ( $params->{search} =~ /\S/ ) { + $options->{search} = $params->{search}; + if ( $params->{list} == 1 ) { + delete $options->{from}; + delete $options->{till}; + delete $options->{date_range_include}; + } + } - #get all series dates - my $series_dates = series_dates::get_series( $config, $options ); - my $id = 0; - for my $date (@$series_dates) { - $date->{schedule} = 1; + #get all series dates + my $series_dates = series_dates::get_series( $config, $options ); + my $id = 0; + for my $date (@$series_dates) { + $date->{schedule} = 1; - #$date->{event_id}=-1; - $date->{event_id} = $id; - $date->{origStart} = $date->{start}; - delete $date->{day}; - delete $date->{start_date}; - delete $date->{end_date}; - $id++; - } - unless ( $params->{list} == 1 ) { - $series_dates = break_dates( $series_dates, $start_of_day ); - } + #$date->{event_id}=-1; + $date->{event_id} = $id; + $date->{origStart} = $date->{start}; + delete $date->{day}; + delete $date->{start_date}; + delete $date->{end_date}; + $id++; + } + unless ( $params->{list} == 1 ) { + $series_dates = break_dates( $series_dates, $start_of_day ); + } - #merge series and events - for my $date (@$series_dates) { - $date = events::calc_dates( $config, $date ); - push @$events, $date; - } + #merge series and events + for my $date (@$series_dates) { + $date = events::calc_dates( $config, $date ); + push @$events, $date; + } - #get timeslot_dates - my $studio_dates = studio_timeslot_dates::get( $config, $options ); + #get timeslot_dates + my $studio_dates = studio_timeslot_dates::get( $config, $options ); - #print STDERR Dumper($options); - $id = 0; - for my $date (@$studio_dates) { - $date->{grid} = 1; - $date->{series_id} = -1; + #print STDERR Dumper($options); + $id = 0; + for my $date (@$studio_dates) { + $date->{grid} = 1; + $date->{series_id} = -1; - #$date->{event_id}=-1; - $date->{event_id} = $id; - $date->{origStart} = $date->{start}; - delete $date->{day}; - delete $date->{start_date}; - delete $date->{end_date}; - $id++; - } - unless ( $params->{list} == 1 ) { - $studio_dates = break_dates( $studio_dates, $start_of_day ); - } + #$date->{event_id}=-1; + $date->{event_id} = $id; + $date->{origStart} = $date->{start}; + delete $date->{day}; + delete $date->{start_date}; + delete $date->{end_date}; + $id++; + } + unless ( $params->{list} == 1 ) { + $studio_dates = break_dates( $studio_dates, $start_of_day ); + } - for my $date (@$studio_dates) { - $date = events::calc_dates( $config, $date ); - push @$events, $date; - } + for my $date (@$studio_dates) { + $date = events::calc_dates( $config, $date ); + push @$events, $date; + } - #get work_dates - my $work_dates = work_dates::get( $config, $options ); - for my $date (@$work_dates) { - $date->{work} = 1; - $date->{series_id} = -1; - $date->{event_id} = -1; - $date->{origStart} = $date->{start}; - delete $date->{day}; - delete $date->{start_date}; - delete $date->{end_date}; - } - unless ( $params->{list} == 1 ) { - $work_dates = break_dates( $work_dates, $start_of_day ); - } + #get work_dates + my $work_dates = work_dates::get( $config, $options ); + for my $date (@$work_dates) { + $date->{work} = 1; + $date->{series_id} = -1; + $date->{event_id} = -1; + $date->{origStart} = $date->{start}; + delete $date->{day}; + delete $date->{start_date}; + delete $date->{end_date}; + } + unless ( $params->{list} == 1 ) { + $work_dates = break_dates( $work_dates, $start_of_day ); + } - for my $date (@$work_dates) { - $date = events::calc_dates( $config, $date ); - push @$events, $date; - } + for my $date (@$work_dates) { + $date = events::calc_dates( $config, $date ); + push @$events, $date; + } - #get playout - delete $options->{exclude}; - my $playout_dates = playout::get( $config, $options ); - $id = 0; - for my $date (@$playout_dates) { - my $format = undef; - if ( defined $date->{'format'} ) { - $format = - ( $date->{'format'} || '' ) . " " . ( $date->{'format_version'} || '' ) . " " . ( $date->{'format_profile'} || '' ); - $format =~ s/MPEG Audio Version 1 Layer 3/MP3/g; - $format .= ' ' . ( $date->{'format_settings'} || '' ) if defined $date->{'format_settings'}; - $format .= '
      '; - } + #get playout + delete $options->{exclude}; + my $playout_dates = playout::get( $config, $options ); + $id = 0; + for my $date (@$playout_dates) { + my $format = undef; + if ( defined $date->{'format'} ) { + $format = + ( $date->{'format'} || '' ) . " " . ( $date->{'format_version'} || '' ) . " " . ( $date->{'format_profile'} || '' ); + $format =~ s/MPEG Audio Version 1 Layer 3/MP3/g; + $format .= ' ' . ( $date->{'format_settings'} || '' ) if defined $date->{'format_settings'}; + $format .= '
      '; + } - #print STDERR Dumper($date); - $date->{play} = 1; - $date->{series_id} = -1; - $date->{event_id} = $id; - $date->{title} = ''; - $date->{title} .= 'errors: ' . $date->{errors} . '
      ' if defined $date->{errors}; - $date->{title} .= formatDuration( $date->{duration} ) . "s
      " if defined $date->{duration}; - $date->{title} .= formatLoudness( "L:", $date->{rms_left} ) . ' dB, ' if defined $date->{rms_left}; - $date->{title} .= formatLoudness( "R:", $date->{rms_right} ) . ' dB
      ' if defined $date->{rms_right}; - $date->{title} .= formatBitrate( $date->{bitrate} ) . ' ' . $date->{bitrate_mode} . '
      ' if defined $date->{bitrate}; - $date->{title} .= 'replay gain ' . sprintf( "%.1f", $date->{replay_gain} ) . '
      ' if defined $date->{replay_gain}; - $date->{title} .= ( ( $date->{sampling_rate} || '0' ) / 1000 ) . ' kHz
      ' if defined $date->{sampling_rate}; - $date->{title} .= ( $date->{channels} || '' ) . ' channels
      ' if defined $date->{channels}; - $date->{title} .= int( ( $date->{'stream_size'} || '0' ) / ( 1024 * 1024 ) ) . 'MB
      ' if defined $date->{'stream_size'}; - $date->{title} .= $format if defined $format; - $date->{title} .= 'library: ' . ( $date->{writing_library} || '' ) . '
      ' if defined $date->{'writing_library'}; - $date->{title} .= 'path: ' . ( $date->{file} || '' ) . '
      ' if defined $date->{file}; - $date->{title} .= 'updated_at: ' . ( $date->{updated_at} || '' ) . '
      ' if defined $date->{updated_at}; - $date->{title} .= 'modified_at: ' . ( $date->{modified_at} || '' ) . '
      ' if defined $date->{modified_at}; + #print STDERR Dumper($date); + $date->{play} = 1; + $date->{series_id} = -1; + $date->{event_id} = $id; + $date->{title} = ''; + $date->{title} .= 'errors: ' . $date->{errors} . '
      ' if defined $date->{errors}; + $date->{title} .= formatDuration( $date->{duration} ) . "s
      " if defined $date->{duration}; + $date->{title} .= formatLoudness( "L:", $date->{rms_left} ) . ' dB, ' if defined $date->{rms_left}; + $date->{title} .= formatLoudness( "R:", $date->{rms_right} ) . ' dB
      ' if defined $date->{rms_right}; + $date->{title} .= formatBitrate( $date->{bitrate} ) . ' ' . $date->{bitrate_mode} . '
      ' if defined $date->{bitrate}; + $date->{title} .= 'replay gain ' . sprintf( "%.1f", $date->{replay_gain} ) . '
      ' if defined $date->{replay_gain}; + $date->{title} .= ( ( $date->{sampling_rate} || '0' ) / 1000 ) . ' kHz
      ' if defined $date->{sampling_rate}; + $date->{title} .= ( $date->{channels} || '' ) . ' channels
      ' if defined $date->{channels}; + $date->{title} .= int( ( $date->{'stream_size'} || '0' ) / ( 1024 * 1024 ) ) . 'MB
      ' if defined $date->{'stream_size'}; + $date->{title} .= $format if defined $format; + $date->{title} .= 'library: ' . ( $date->{writing_library} || '' ) . '
      ' if defined $date->{'writing_library'}; + $date->{title} .= 'path: ' . ( $date->{file} || '' ) . '
      ' if defined $date->{file}; + $date->{title} .= 'updated_at: ' . ( $date->{updated_at} || '' ) . '
      ' if defined $date->{updated_at}; + $date->{title} .= 'modified_at: ' . ( $date->{modified_at} || '' ) . '
      ' if defined $date->{modified_at}; - #print STDERR Dumper($date) if $date->{file}=~/180503/; - #$date->{title}.= 'rms_image: ' .($date->{rms_image}||'').'
      ' if defined $date->{rms_image}; + #print STDERR Dumper($date) if $date->{file}=~/180503/; + #$date->{title}.= 'rms_image: ' .($date->{rms_image}||'').'
      ' if defined $date->{rms_image}; - $date->{rms_image} = URI::Escape::uri_unescape( $date->{rms_image} ) if defined $date->{rms_image}; + $date->{rms_image} = URI::Escape::uri_unescape( $date->{rms_image} ) if defined $date->{rms_image}; - $date->{origStart} = $date->{start}; + $date->{origStart} = $date->{start}; - # set end date seconds to 00 to handle error at break_dates/join_dates - $date->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1\:00/; - delete $date->{day}; - delete $date->{start_date}; - delete $date->{end_date}; - $id++; - } + # set end date seconds to 00 to handle error at break_dates/join_dates + $date->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1\:00/; + delete $date->{day}; + delete $date->{start_date}; + delete $date->{end_date}; + $id++; + } - unless ( $params->{list} == 1 ) { - $playout_dates = break_dates( $playout_dates, $start_of_day ); - } + unless ( $params->{list} == 1 ) { + $playout_dates = break_dates( $playout_dates, $start_of_day ); + } - for my $date (@$playout_dates) { - $date = events::calc_dates( $config, $date ); - if ( defined $events_by_start->{ $date->{start} } ) { - $events_by_start->{ $date->{start} }->{duration} = $date->{duration} || 0; - $events_by_start->{ $date->{start} }->{rms_left} = $date->{rms_left} || 0; - $events_by_start->{ $date->{start} }->{rms_right} = $date->{rms_right} || 0; - $events_by_start->{ $date->{start} }->{playout_modified_at} = $date->{modified_at}; - $events_by_start->{ $date->{start} }->{playout_updated_at} = $date->{updated_at}; - } - push @$events, $date; - } + for my $date (@$playout_dates) { + $date = events::calc_dates( $config, $date ); + if ( defined $events_by_start->{ $date->{start} } ) { + $events_by_start->{ $date->{start} }->{duration} = $date->{duration} || 0; + $events_by_start->{ $date->{start} }->{rms_left} = $date->{rms_left} || 0; + $events_by_start->{ $date->{start} }->{rms_right} = $date->{rms_right} || 0; + $events_by_start->{ $date->{start} }->{playout_modified_at} = $date->{modified_at}; + $events_by_start->{ $date->{start} }->{playout_updated_at} = $date->{updated_at}; + } + push @$events, $date; + } - } + } - #output - printToolbar( $config, $params, $calendar ) if $params->{part} == 0; + #output + printToolbar( $config, $params, $calendar ) if $params->{part} == 0; - #if($params->{part}==1){ - print qq{ + #if($params->{part}==1){ + print qq{ }; - #} + #} - #filter events by time - unless ( $params->{list} == 1 ) { - $events = filterEvents( $events, $options, $start_of_day ); - } + #filter events by time + unless ( $params->{list} == 1 ) { + $events = filterEvents( $events, $options, $start_of_day ); + } - #sort events by start - @$events = sort { $a->{start} cmp $b->{start} } @$events; + #sort events by start + @$events = sort { $a->{start} cmp $b->{start} } @$events; - #for my $date(@$events){debugDate($date);} + #for my $date(@$events){debugDate($date);} - #separate by day (e.g. to 6 pm) - my $events_by_day = {}; - for my $event (@$events) { - my $day = time::datetime_to_date( time::add_hours_to_datetime( $event->{start}, -$start_of_day ) ); - push @{ $events_by_day->{$day} }, $event; - } + #separate by day (e.g. to 6 pm) + my $events_by_day = {}; + for my $event (@$events) { + my $day = time::datetime_to_date( time::add_hours_to_datetime( $event->{start}, -$start_of_day ) ); + push @{ $events_by_day->{$day} }, $event; + } - #get min and max hour from all events - unless ( $params->{list} == 1 ) { - my $min_hour = 48; - my $max_hour = 0; + #get min and max hour from all events + unless ( $params->{list} == 1 ) { + my $min_hour = 48; + my $max_hour = 0; - for my $event (@$events) { - if ( $event->{start} =~ /(\d\d)\:\d\d\:\d\d$/ ) { - my $hour = $1; - $hour += 24 if $hour < $start_of_day; - $min_hour = $hour if ( ( $hour < $min_hour ) && ( $hour >= $start_of_day ) ); - } - if ( $event->{end} =~ /(\d\d)\:\d\d\:\d\d$/ ) { - my $hour = $1; - $hour += 24 if $hour <= $start_of_day; - $max_hour = $hour if ( ( $hour > $max_hour ) && ( $hour <= $end_of_day ) ); - } - } - $cal_options->{min_hour} = $min_hour; - $cal_options->{max_hour} = $max_hour; - } + for my $event (@$events) { + if ( $event->{start} =~ /(\d\d)\:\d\d\:\d\d$/ ) { + my $hour = $1; + $hour += 24 if $hour < $start_of_day; + $min_hour = $hour if ( $hour < $min_hour ) && ( $hour >= $start_of_day ); + } + if ( $event->{end} =~ /(\d\d)\:\d\d\:\d\d$/ ) { + my $hour = $1; + $hour += 24 if $hour <= $start_of_day; + $max_hour = $hour if ( $hour > $max_hour ) && ( $hour <= $end_of_day ); + } + } + $cal_options->{min_hour} = $min_hour; + $cal_options->{max_hour} = $max_hour; + } - #print STDERR $start_of_day." ".$cal_options->{min_hour}."\n"; + #print STDERR $start_of_day." ".$cal_options->{min_hour}."\n"; - # calculate positions and find schedule errors (depending on position) - for my $date ( sort ( keys %$events_by_day ) ) { - my $events = $events_by_day->{$date}; - calc_positions( $events, $cal_options ); - find_errors($events); - } + # calculate positions and find schedule errors (depending on position) + for my $date ( sort ( keys %$events_by_day ) ) { + my $events = $events_by_day->{$date}; + calc_positions( $events, $cal_options ); + find_errors($events); + } - for my $event (@$events) { - next unless defined $event->{uploaded_at}; + for my $event (@$events) { + next unless defined $event->{uploaded_at}; #print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; - next if ( defined $event->{playout_updated_at} ) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); + next if ( defined $event->{playout_updated_at} ) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); - #print STDERR Dumper($event); - #$event->{upload} ='pending' ; - #$event->{title}.='
      pending'; - } + #print STDERR Dumper($event); + #$event->{upload} ='pending' ; + #$event->{title}.='
      pending'; + } - if ( $params->{list} == 1 ) { - showEventList( $config, $permissions, $params, $events_by_day ); - } else { - if ( $params->{part} == 0 ) { - print qq{
      }; - } - if ( $params->{part} == 1 ) { - calcCalendarTable( $config, $permissions, $params, $calendar, $events_by_day, $cal_options ); - printTableHeader( $config, $permissions, $params, $cal_options ); - printTableBody( $config, $permissions, $params, $cal_options ); - } - if ( $params->{part} == 0 ) { - printSeries( $config, $permissions, $params, $cal_options ); - print qq{ + if ( $params->{list} == 1 ) { + showEventList( $config, $permissions, $params, $events_by_day ); + } else { + if ( $params->{part} == 0 ) { + print qq{
      }; + } + if ( $params->{part} == 1 ) { + calcCalendarTable( $config, $permissions, $params, $calendar, $events_by_day, $cal_options ); + printTableHeader( $config, $permissions, $params, $cal_options ); + printTableBody( $config, $permissions, $params, $cal_options ); + } + if ( $params->{part} == 0 ) { + printSeries( $config, $permissions, $params, $cal_options ); + print qq{
      }; - } + } - # time has to be set when events come in - printJavascript( $config, $permissions, $params, $cal_options ); - if ( $params->{part} == 0 ) { - print qq{ + # time has to be set when events come in + printJavascript( $config, $permissions, $params, $cal_options ); + if ( $params->{part} == 0 ) { + print qq{ }; - } - if ( $params->{part} == 1 ) { - } - } + } + } } sub formatLoudness { - my $label = shift; - my $value = shift; - return '' unless defined $value; - return '' if $value == 0; - return '' if $value eq ''; + my $label = shift; + my $value = shift; + return '' unless defined $value; + return '' if $value == 0; + return '' if $value eq ''; - #print STDERR "'$value'\n"; - $value = sprintf( "%.1f", $value ); - my $class = 'ok'; - $class = 'warn' if $value > -18.5; - $class = 'error' if $value > -16.0; - $class = 'warn' if $value < -24.0; - $class = 'error' if $value < -27.0; - return qq{$label} . $value . qq{}; + #print STDERR "'$value'\n"; + $value = sprintf( "%.1f", $value ); + my $class = 'ok'; + $class = 'warn' if $value > -18.5; + $class = 'error' if $value > -16.0; + $class = 'warn' if $value < -24.0; + $class = 'error' if $value < -27.0; + return qq{$label} . $value . qq{}; } sub formatDuration { - my $duration = shift; - return '' unless defined $duration; - return '' if $duration eq ''; - my $result = int( ( $duration + 3600 ) * 10 + 0.5 ) % 600; - my $class = "ok"; - $class = "warn" if $result > 1; - $class = "error" if $result > 10; - return sprintf( qq{%.01f}, $class, $duration ); + my $duration = shift; + return '' unless defined $duration; + return '' if $duration eq ''; + my $result = int( ( $duration + 3600 ) * 10 + 0.5 ) % 600; + my $class = "ok"; + $class = "warn" if $result > 1; + $class = "error" if $result > 10; + return sprintf( qq{%.01f}, $class, $duration ); } sub formatBitrate { - my $bitrate = shift; - return '' if $bitrate eq ''; - if ( $bitrate >= 200 ) { - return qq{$bitrate}; - } elsif ( $bitrate < 190 ) { - return qq{$bitrate}; - } else { - return qq{$bitrate}; - } + my $bitrate = shift; + return '' if $bitrate eq ''; + if ( $bitrate >= 200 ) { + return qq{$bitrate}; + } elsif ( $bitrate < 190 ) { + return qq{$bitrate}; + } else { + return qq{$bitrate}; + } } sub debugDate { - my $date = shift; - $date->{program} = '' unless defined $date->{program}; - $date->{series_name} = '' unless defined $date->{series_name}; - $date->{title} = '' unless defined $date->{title}; - $date->{splitCount} = 0 unless defined $date->{splitCount}; - my $dt = ( $date->{start} || '' ) . " " . ( $date->{end} | '' ); - my $da = ( $date->{start_date} || '' ) . " " . ( $date->{end_date} || '' ); - my $type = "schedule:" . ( $date->{schedule} || "" ) . " grid:" . ( $date->{grid} || "" ); + my $date = shift; + $date->{program} = '' unless defined $date->{program}; + $date->{series_name} = '' unless defined $date->{series_name}; + $date->{title} = '' unless defined $date->{title}; + $date->{splitCount} = 0 unless defined $date->{splitCount}; + my $dt = ( $date->{start} || '' ) . " " . ( $date->{end} | '' ); + my $da = ( $date->{start_date} || '' ) . " " . ( $date->{end_date} || '' ); + my $type = "schedule:" . ( $date->{schedule} || "" ) . " grid:" . ( $date->{grid} || "" ); - #print STDERR "$dt $da count:$date->{splitCount} $type $date->{program}-$date->{series_name}-$date->{title}\n"; + #print STDERR "$dt $da count:$date->{splitCount} $type $date->{program}-$date->{series_name}-$date->{title}\n"; } # break dates at start_of_day sub break_dates { - my $dates = shift; - my $start_of_day = shift; + my $dates = shift; + my $start_of_day = shift; - #return $dates if $start_of_day eq '0'; + #return $dates if $start_of_day eq '0'; - for my $date (@$dates) { - next unless defined $date; + for my $date (@$dates) { + next unless defined $date; - $date->{splitCount} = 0 unless defined $date->{splitCount}; + $date->{splitCount} = 0 unless defined $date->{splitCount}; - #debugDate($date); + #debugDate($date); - next if $date->{splitCount} > 6; - my $nextDayStart = breaks_day( $date->{start}, $date->{end}, $start_of_day ); - next if $nextDayStart eq '0'; + next if $date->{splitCount} > 6; + my $nextDayStart = breaks_day( $date->{start}, $date->{end}, $start_of_day ); + next if $nextDayStart eq '0'; - # add new entry - my $entry = {}; - for my $key ( keys %$date ) { - $entry->{$key} = $date->{$key}; - } - $entry->{start} = $nextDayStart; - $entry->{splitCount}++; - push @$dates, $entry; + # add new entry + my $entry = {}; + for my $key ( keys %$date ) { + $entry->{$key} = $date->{$key}; + } + $entry->{start} = $nextDayStart; + $entry->{splitCount}++; + push @$dates, $entry; # print STDERR "add $entry->{start} $entry->{end} count:$entry->{splitCount} $entry->{program}-$entry->{series_name}-$entry->{title}\n"; - #modify existing entry - my $start_date = time::datetime_to_date( $date->{start} ); - $date->{end} = $nextDayStart; - $date->{splitCount}++; + #modify existing entry + my $start_date = time::datetime_to_date( $date->{start} ); + $date->{end} = $nextDayStart; + $date->{splitCount}++; # print STDERR "set $date->{start} $date->{end} count:$date->{splitCount} $date->{program}-$date->{series_name}-$date->{title}\n"; - } + } - return join_dates( $dates, $start_of_day ); + return join_dates( $dates, $start_of_day ); } # check if event breaks the start of day (e.g. 06:00) sub breaks_day { - my $start = shift; - my $end = shift; - my $start_of_day = shift; + my $start = shift; + my $end = shift; + my $start_of_day = shift; - my $starts = time::datetime_to_array($start); - my $startDate = time::array_to_date($starts); - my $startTime = time::array_to_time($starts); - $start = $startDate . ' ' . $startTime; + my $starts = time::datetime_to_array($start); + my $startDate = time::array_to_date($starts); + my $startTime = time::array_to_time($starts); + $start = $startDate . ' ' . $startTime; - my $ends = time::datetime_to_array($end); - my $endDate = time::array_to_date($ends); - my $endTime = time::array_to_time($ends); - $end = $endDate . ' ' . $endTime; + my $ends = time::datetime_to_array($end); + my $endDate = time::array_to_date($ends); + my $endTime = time::array_to_time($ends); + $end = $endDate . ' ' . $endTime; - my $dayStartTime = time::array_to_time($start_of_day); - my $dayStart = $startDate . ' ' . $dayStartTime; + my $dayStartTime = time::array_to_time($start_of_day); + my $dayStart = $startDate . ' ' . $dayStartTime; - # start before 6:00 of same day - return $dayStart if ( $start lt $dayStart ) && ( $end gt $dayStart ); + # start before 6:00 of same day + return $dayStart if ( $start lt $dayStart ) && ( $end gt $dayStart ); - # start before 6:00 of next day - my $nextDayStart = time::add_days_to_datetime( $dayStart, 1 ); + # start before 6:00 of next day + my $nextDayStart = time::add_days_to_datetime( $dayStart, 1 ); - #$nextDayStart=~s/:00$//; - return $nextDayStart if ( $start lt $nextDayStart ) && ( $end gt $nextDayStart ); + #$nextDayStart=~s/:00$//; + return $nextDayStart if ( $start lt $nextDayStart ) && ( $end gt $nextDayStart ); - return 0; + return 0; } # merge events with same seriesId and eventId at 00:00 sub join_dates { - my $dates = shift; - my $start_of_day = shift; + my $dates = shift; + my $start_of_day = shift; - return $dates if $start_of_day == 0; - @$dates = sort { $a->{start} cmp $b->{start} } @$dates; + return $dates if $start_of_day == 0; + @$dates = sort { $a->{start} cmp $b->{start} } @$dates; - my $prev_date = undef; - for my $date (@$dates) { - next unless defined $date; - unless ( defined $prev_date ) { - $prev_date = $date; - next; - } - if ( ( $date->{event_id} == $prev_date->{event_id} ) - && ( $date->{series_id} == $prev_date->{series_id} ) - && ( $date->{start} eq $prev_date->{end} ) - && ( $date->{start} =~ /00\:00\:\d\d/ ) ) - { - $prev_date->{end} = $date->{end}; - $date = undef; - next; - } - $prev_date = $date; - } + my $prev_date = undef; + for my $date (@$dates) { + next unless defined $date; + unless ( defined $prev_date ) { + $prev_date = $date; + next; + } + if ( ( $date->{event_id} == $prev_date->{event_id} ) + && ( $date->{series_id} == $prev_date->{series_id} ) + && ( $date->{start} eq $prev_date->{end} ) + && ( $date->{start} =~ /00\:00\:\d\d/ ) ) + { + $prev_date->{end} = $date->{end}; + $date = undef; + next; + } + $prev_date = $date; + } - my $results = []; - for my $date (@$dates) { - next unless defined $date; - push @$results, $date; - } + my $results = []; + for my $date (@$dates) { + next unless defined $date; + push @$results, $date; + } - return $results; + return $results; } sub filterEvents { - my $events = shift; - my $options = shift; - my $start_of_day = shift; + my $events = shift; + my $options = shift; + my $start_of_day = shift; - return [] unless defined $options->{from}; - return [] unless defined $options->{till}; + return [] unless defined $options->{from}; + return [] unless defined $options->{till}; - my $dayStartTime = time::array_to_time($start_of_day); - my $startDatetime = $options->{from} . ' ' . $dayStartTime; - my $endDatetime = $options->{till} . ' ' . $dayStartTime; + my $dayStartTime = time::array_to_time($start_of_day); + my $startDatetime = $options->{from} . ' ' . $dayStartTime; + my $endDatetime = $options->{till} . ' ' . $dayStartTime; - my $results = []; - for my $date (@$events) { - next if ( ( $date->{start} ge $endDatetime ) || ( $date->{end} le $startDatetime ) ); - push @$results, $date; - } - return $results; + my $results = []; + for my $date (@$events) { + next if ( ( $date->{start} ge $endDatetime ) || ( $date->{end} le $startDatetime ) ); + push @$results, $date; + } + return $results; } sub showEventList { - my $config = shift; - my $permissions = shift; - my $params = shift; - my $events_by_day = shift; - my $language = $params->{language}; + my $config = shift; + my $permissions = shift; + my $params = shift; + my $events_by_day = shift; + my $language = $params->{language}; - print qq{ + my $out = ''; + $out = qq{
      @@ -745,120 +748,123 @@ sub showEventList { } if $params->{part} == 0; - my $i = 1; + my $i = 1; - my $scheduled_events = {}; - for my $date ( reverse sort ( keys %$events_by_day ) ) { - for my $event ( reverse @{ $events_by_day->{$date} } ) { - next unless defined $event; - next if defined $event->{grid}; - next if defined $event->{work}; - next if defined $event->{play}; + my $scheduled_events = {}; + for my $date ( reverse sort ( keys %$events_by_day ) ) { + for my $event ( reverse @{ $events_by_day->{$date} } ) { + next unless defined $event; + next if defined $event->{grid}; + next if defined $event->{work}; + next if defined $event->{play}; - #schedules with matching date are marked to be hidden in find_errors - next if defined $event->{hide}; - $event->{project_id} = $params->{project_id}; - $event->{studio_id} = $params->{studio_id}; - $event->{series_id} = '-1' unless defined $event->{series_id}; - $event->{event_id} = '-1' unless defined $event->{event_id}; - my $id = 'event_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} . '_' . $event->{event_id}; + #schedules with matching date are marked to be hidden in find_errors + next if defined $event->{hide}; + $event->{project_id} = $params->{project_id}; + $event->{studio_id} = $params->{studio_id}; + $event->{series_id} = '-1' unless defined $event->{series_id}; + $event->{event_id} = '-1' unless defined $event->{event_id}; + my $id = 'event_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} . '_' . $event->{event_id}; - my $class = 'event'; - $class = $event->{class} if defined $event->{class}; - $class = 'schedule' if defined $event->{schedule}; - if ( $class =~ /(event|schedule)/ ) { - $class .= ' scheduled' if defined $event->{scheduled}; - $class .= ' error' if defined $event->{error}; - $class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) ); + my $class = 'event'; + $class = $event->{class} if defined $event->{class}; + $class = 'schedule' if defined $event->{schedule}; + if ( $class =~ /(event|schedule)/ ) { + $class .= ' scheduled' if defined $event->{scheduled}; + $class .= ' error' if defined $event->{error}; + $class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) ); - for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) { - $class .= ' ' . $filter if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) ); - } - $class .= ' preproduced' unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) ); - $class .= ' no_playout' unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) ); - $class .= ' no_rerun' unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) ); - } + for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) { + $class .= ' ' . $filter if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) ); + } + $class .= ' preproduced' unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) ); + $class .= ' no_playout' unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) ); + $class .= ' no_rerun' unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) ); + } - $event->{start} ||= ''; - $event->{weekday_short_name} ||= ''; - $event->{start_date_name} ||= ''; - $event->{start_time_name} ||= ''; - $event->{end_time} ||= ''; - $event->{series_name} ||= ''; - $event->{title} ||= ''; - $event->{user_title} ||= ''; - $event->{episode} ||= ''; - $event->{rerun} ||= ''; - $event->{draft} ||= ''; - $id ||= ''; - $class ||= ''; + $event->{start} ||= ''; + $event->{weekday_short_name} ||= ''; + $event->{start_date_name} ||= ''; + $event->{start_time_name} ||= ''; + $event->{end_time} ||= ''; + $event->{series_name} ||= ''; + $event->{title} ||= ''; + $event->{user_title} ||= ''; + $event->{episode} ||= ''; + $event->{rerun} ||= ''; + $event->{draft} ||= ''; + $id ||= ''; + $class ||= ''; - my $archived = $event->{archived} || '-'; - $archived = '-' if $archived eq '0'; - $archived = 'x' if $archived eq '1'; + my $archived = $event->{archived} || '-'; + $archived = '-' if $archived eq '0'; + $archived = 'x' if $archived eq '1'; - my $live = $event->{live} || '-'; - $live = '-' if $live eq '0'; - $live = 'x' if $live eq '1'; + my $live = $event->{live} || '-'; + $live = '-' if $live eq '0'; + $live = 'x' if $live eq '1'; - my $rerun = $event->{rerun} || '-'; + my $rerun = $event->{rerun} || '-'; - #$rerun='-' if $rerun eq '0'; - #$rerun='x' if $rerun eq '1'; - $rerun = " [" . markup::base26( $event->{recurrence_count} + 1 ) . "]" - if ( defined $event->{recurrence_count} ) && ( $event->{recurrence_count} ne '' ) && ( $event->{recurrence_count} > 0 ); + $rerun = " [" . markup::base26( $event->{recurrence_count} + 1 ) . "]" + if ( defined $event->{recurrence_count} ) && ( $event->{recurrence_count} ne '' ) && ( $event->{recurrence_count} > 0 ); - my $draft = $event->{draft} || '0'; - $draft = '-' if $draft eq '0'; - $draft = 'x' if $draft eq '1'; + my $draft = $event->{draft} || '0'; + $draft = '-' if $draft eq '0'; + $draft = 'x' if $draft eq '1'; - my $title = $event->{title}; - $title .= ': ' . $event->{user_title} if $event->{user_title} ne ''; + my $title = $event->{title}; + $title .= ': ' . $event->{user_title} if $event->{user_title} ne ''; - print qq!! - . qq!! - . qq!! - . qq!! - . qq!! - . qq!! - . qq!! - . qq!! - . qq!! - . qq!! - . qq!! - . qq!! - . qq!! . "\n"; - } - $i++; - } - print qq{ + $out .= + qq!! + . qq!! + . qq!! + . qq!! + . qq!! + . qq!! + . qq!! + . qq!! + . qq!! + . qq!! + . qq!! + . qq!! + . qq!! . "\n"; + } + $i++; + if ( $i % 100 == 0 ) { + print $out; + $out = ''; + } + } + $out .= qq{
      ! - . time::dayOfYear( $event->{start} ) - . q!$event->{weekday_short_name},$event->{start_date_name}$event->{start_time_name} - $event->{end_time}$event->{series_name}$title$event->{episode}$rerun$draft$live$archived
      ! + . time::dayOfYear( $event->{start} ) + . q!$event->{weekday_short_name},$event->{start_date_name}$event->{start_time_name} - $event->{end_time}$event->{series_name}$title$event->{episode}$rerun$draft$live$archived
      } if $params->{part} == 0; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - #add handler for events not assigned to series - if ( ( $params->{studio_id} ne '' ) && ( $params->{studio_id} ne '-1' ) ) { - my $series = series::get( - $config, - { - project_id => $project_id, - studio_id => $studio_id - } - ); - print q{}; - } + #add handler for events not assigned to series + if ( ( $params->{studio_id} ne '' ) && ( $params->{studio_id} ne '-1' ) ) { + my $series = series::get( + $config, + { + project_id => $project_id, + studio_id => $studio_id + } + ); + $out .= q{}; + } - print qq{ + $out .= qq{
    8. @@ -979,226 +987,226 @@ sub printTableHeader { !; - $out .= q{ + $out .= q{ }; - print $out; + print $out; } sub printTableBody { - my $config = shift; - my $permissions = shift; - my $params = shift; - my $cal_options = shift; + my $config = shift; + my $permissions = shift; + my $params = shift; + my $cal_options = shift; - my $days = $cal_options->{days}; - my $events_by_day = $cal_options->{events_by_day}; - my $yoffset = $cal_options->{yoffset}; + my $days = $cal_options->{days}; + my $events_by_day = $cal_options->{events_by_day}; + my $yoffset = $cal_options->{yoffset}; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - if ( scalar( @{$days} ) == 0 ) { - uac::print_info("no dates found at the selected time span"); - } + if ( scalar( @{$days} ) == 0 ) { + uac::print_info("no dates found at the selected time span"); + } - my $out = q{ + my $out = q{ }; - print $out; + print $out; } sub printSeries { - my $config = shift; - my $permissions = shift; - my $params = shift; - my $cal_options = shift; + my $config = shift; + my $permissions = shift; + my $params = shift; + my $cal_options = shift; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - my $series = series::get( - $config, - { - project_id => $project_id, - studio_id => $studio_id - } - ); + my $series = series::get( + $config, + { + project_id => $project_id, + studio_id => $studio_id + } + ); - my $out = ''; + my $out = ''; - #add schedule entry for series - if ( ( defined $permissions->{update_schedule} ) && ( $permissions->{update_schedule} eq '1' ) && ( @$series > 0 ) ) { - $out .= q{}; - } + #add schedule entry for series + if ( ( defined $permissions->{update_schedule} ) && ( $permissions->{update_schedule} eq '1' ) && ( scalar(@$series) > 0 ) ) { + $out .= q{}; + } - if ( ( $params->{studio_id} ne '' ) && ( $params->{studio_id} ne '-1' ) ) { - $out .= q{}; - } + if ( ( $params->{studio_id} ne '' ) && ( $params->{studio_id} ne '-1' ) ) { + $out .= q{}; + } - $out .= q{ + $out .= q{ }; - print $out; + print $out; } sub printJavascript { - my $config = shift; - my $permissions = shift; - my $params = shift; - my $cal_options = shift; + my $config = shift; + my $permissions = shift; + my $params = shift; + my $cal_options = shift; - my $startOfDay = $cal_options->{min_hour} % 24; + my $startOfDay = $cal_options->{min_hour} % 24; - #print STDERR "js: ".$cal_options->{min_hour}." ".$startOfDay."\n"; - my $out = q{ + #print STDERR "js: ".$cal_options->{min_hour}." ".$startOfDay."\n"; + my $out = q{ }; - print $out; + print $out; } #TODO: Javascript sub addCalendarButton { - my $params = shift; - my $calendar = shift; + my $params = shift; + my $calendar = shift; - #add calendar button - my $content = qq{ + #add calendar button + my $content = qq{
      @@ -1227,38 +1235,38 @@ sub addCalendarButton {
      }; - return $content; + return $content; } sub addSeries { - my $series = shift; - my $params = shift; + my $series = shift; + my $params = shift; - return unless defined $series; - return unless @$series > 0; + return unless defined $series; + return unless scalar @$series > 0; - my $out = ''; - $out .= q{ + my $out = ''; + $out .= q{ @@ -1273,22 +1281,22 @@ sub addSeries {
      } . $params->{loc}->{label_series} . q{
      }; - return $out; + return $out; } # create form to add events to series (that are not assigned to series, yet) sub addEventsToSeries { - my $series = shift; - my $params = shift; + my $series = shift; + my $params = shift; - return unless defined $series; - return unless @$series > 0; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + return unless defined $series; + return unless scalar @$series > 0; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - my $out = ''; - $out .= qq{ + my $out = ''; + $out .= qq{
      } . $params->{loc}->{label_assign_event_series} . qq{
      @@ -1301,42 +1309,42 @@ sub addEventsToSeries { + . $params->{loc}->{button_assign_event_series} . q{
      }; - return $out; + return $out; } # insert form to create series on not assigned events sub createSeries { - my $params = shift; + my $params = shift; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; - return qq{ + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + return qq{
      } . $params->{loc}->{label_create_series} . qq{
      @@ -1357,274 +1365,274 @@ sub createSeries { } sub print_event { - my $params = shift; - my $event = shift; - my $ypos = shift; - my $yoffset = shift; - my $yzoom = shift; + my $params = shift; + my $event = shift; + my $ypos = shift; + my $yoffset = shift; + my $yzoom = shift; - $event->{project_id} = '-1' unless defined $event->{project_id}; - $event->{studio_id} = '-1' unless defined $event->{studio_id}; - $event->{series_id} = '-1' unless defined $event->{series_id}; - $event->{event_id} = '-1' unless defined $event->{event_id}; + $event->{project_id} = '-1' unless defined $event->{project_id}; + $event->{studio_id} = '-1' unless defined $event->{studio_id}; + $event->{series_id} = '-1' unless defined $event->{series_id}; + $event->{event_id} = '-1' unless defined $event->{event_id}; - my $id = 'event_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} . '_' . $event->{event_id}; - $id = 'grid_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} if defined $event->{grid}; - $id = 'work_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{schedule_id} if defined $event->{work}; - $id = 'play_' . $event->{project_id} . '_' . $event->{studio_id} if defined $event->{play}; + my $id = 'event_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} . '_' . $event->{event_id}; + $id = 'grid_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} if defined $event->{grid}; + $id = 'work_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{schedule_id} if defined $event->{work}; + $id = 'play_' . $event->{project_id} . '_' . $event->{studio_id} if defined $event->{play}; - my $class = $event->{class} || ''; - my $showIcons = 0; - if ( $class =~ /(event|schedule)/ ) { - $class .= ' scheduled' if defined $event->{scheduled}; - $class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) ); - $class .= " error x$event->{error}" if defined $event->{error}; + my $class = $event->{class} || ''; + my $showIcons = 0; + if ( $class =~ /(event|schedule)/ ) { + $class .= ' scheduled' if defined $event->{scheduled}; + $class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) ); + $class .= " error x$event->{error}" if defined $event->{error}; - for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) { - $class .= ' ' . $filter if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) ); - } - $class .= ' preproduced' unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) ); - $class .= ' no_playout' unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) ); - $class .= ' no_rerun' unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) ); - $showIcons = 1; - } + for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) { + $class .= ' ' . $filter if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) ); + } + $class .= ' preproduced' unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) ); + $class .= ' no_playout' unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) ); + $class .= ' no_rerun' unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) ); + $showIcons = 1; + } - my $ystart = $event->{ystart} - $yoffset; - my $yend = $event->{yend} - $yoffset - 10; + my $ystart = $event->{ystart} - $yoffset; + my $yend = $event->{yend} - $yoffset - 10; - $ystart = int( $ystart * $yzoom ); - $yend = int( $yend * $yzoom ); - my $height = $yend - $ystart + 2; + $ystart = int( $ystart * $yzoom ); + $yend = int( $yend * $yzoom ); + my $height = $yend - $ystart + 2; - if ( $ypos > 0 ) { - $height = q{height:} . ($height) . 'px;'; - } else { - $height = ''; - } + if ( $ypos > 0 ) { + $height = q{height:} . ($height) . 'px;'; + } else { + $height = ''; + } - # my $date = $event->{origStart} || $event->{start} || ''; - my $content = $event->{content} || ''; + # my $date = $event->{origStart} || $event->{start} || ''; + my $content = $event->{content} || ''; - if ( $class =~ /schedule/ ) { - my $frequency = getFrequency($event); - $content .= "
      ($frequency)" if defined $frequency; - } + if ( $class =~ /schedule/ ) { + my $frequency = getFrequency($event); + $content .= "
      ($frequency)" if defined $frequency; + } - my $attr = ''; - if ( $class =~ /play/ ) { - $attr .= ' rms="' . $event->{rms_image} . '"' if defined $event->{rms_image}; - $attr .= ' start="' . $event->{start} . '"' if defined $event->{start}; - } + my $attr = ''; + if ( $class =~ /play/ ) { + $attr .= ' rms="' . $event->{rms_image} . '"' if defined $event->{rms_image}; + $attr .= ' start="' . $event->{start} . '"' if defined $event->{start}; + } - if ( defined $event->{upload} ) { - $content .= '
      uploading '; - } + if ( defined $event->{upload} ) { + $content .= '
      uploading '; + } - if ($showIcons) { - $content = '
      ' . $content . '
      '; - } + if ($showIcons) { + $content = '
      ' . $content . '
      '; + } - my $time = ''; - $time = qq{ time="$event->{time}"} if $class =~ m/time/; + my $time = ''; + $time = qq{ time="$event->{time}"} if $class =~ m/time/; - my $date = ''; - $date = qq{ date="$event->{date}"} if $class =~ m/date/; + my $date = ''; + $date = qq{ date="$event->{date}"} if $class =~ m/date/; - my $line = q{
      $content
      }; - $line .= "\n"; - return $line; + my $line = q{
      $content
      }; + $line .= "\n"; + return $line; } sub getFrequency { - my $event = shift; + my $event = shift; - my $period_type = $event->{period_type}; - return undef unless defined $period_type; - return undef if $period_type ne 'days'; + my $period_type = $event->{period_type}; + return undef unless defined $period_type; + return undef if $period_type ne 'days'; - my $frequency = $event->{frequency}; - return undef unless defined $frequency; - return undef unless $frequency > 0; + my $frequency = $event->{frequency}; + return undef unless defined $frequency; + return undef unless $frequency > 0; - if ( ( $frequency >= 7 ) && ( ( $frequency % 7 ) == 0 ) ) { - $frequency /= 7; - return '1 week' if $frequency == 1; - return $frequency .= ' weeks'; - } + if ( ( $frequency >= 7 ) && ( ( $frequency % 7 ) == 0 ) ) { + $frequency /= 7; + return '1 week' if $frequency == 1; + return $frequency .= ' weeks'; + } - return '1 day' if $frequency == 1; - return $frequency .= ' days'; + return '1 day' if $frequency == 1; + return $frequency .= ' days'; } sub calc_positions { - my $events = $_[0]; - my $cal_options = $_[1]; + my $events = $_[0]; + my $cal_options = $_[1]; - my $start_of_day = $cal_options->{start_of_day}; + my $start_of_day = $cal_options->{start_of_day}; - for my $event (@$events) { - my ( $start_hour, $start_min ) = getTime( $event->{start_time} ); - my ( $end_hour, $end_min ) = getTime( $event->{end_time} ); + for my $event (@$events) { + my ( $start_hour, $start_min ) = getTime( $event->{start_time} ); + my ( $end_hour, $end_min ) = getTime( $event->{end_time} ); - $start_hour += 24 if $start_hour < $start_of_day; - $end_hour += 24 if $end_hour < $start_of_day; - $event->{ystart} = $start_hour * 60 + $start_min; - $event->{yend} = $end_hour * 60 + $end_min; - } + $start_hour += 24 if $start_hour < $start_of_day; + $end_hour += 24 if $end_hour < $start_of_day; + $event->{ystart} = $start_hour * 60 + $start_min; + $event->{yend} = $end_hour * 60 + $end_min; + } } sub find_errors { - my $events = $_[0]; + my $events = $_[0]; - for my $event (@$events) { - next if defined $event->{grid}; - next if defined $event->{work}; - next if defined $event->{play}; - next if ( defined $event->{draft} ) && ( $event->{draft} == 1 ); - next unless defined $event->{ystart}; - next unless defined $event->{yend}; - $event->{check_errors} = 1; - } + for my $event (@$events) { + next if defined $event->{grid}; + next if defined $event->{work}; + next if defined $event->{play}; + next if ( defined $event->{draft} ) && ( $event->{draft} == 1 ); + next unless defined $event->{ystart}; + next unless defined $event->{yend}; + $event->{check_errors} = 1; + } - #check next events - for my $i ( 0 .. @$events - 1 ) { - my $event = $events->[$i]; - next unless defined $event->{check_errors}; + #check next events + for my $i ( 0 .. scalar(@$events) - 1 ) { + my $event = $events->[$i]; + next unless defined $event->{check_errors}; - #look for conflicts with next 5 events of day - my $min_index = $i + 1; - next if $min_index >= @$events; - my $max_index = $i + 8; - $max_index = @$events - 1 if $max_index >= @$events; - for my $j ( $min_index .. $max_index ) { - my $event2 = $events->[$j]; - next unless defined $event2->{check_errors}; + #look for conflicts with next 5 events of day + my $min_index = $i + 1; + next if $min_index >= scalar @$events; + my $max_index = $i + 8; + $max_index = scalar(@$events) - 1 if $max_index >= (@$events); + for my $j ( $min_index .. $max_index ) { + my $event2 = $events->[$j]; + next unless defined $event2->{check_errors}; - #mark events if same start,stop,series_id, one is schedule one is event - if ( ( defined $event->{series_id} ) - && ( defined $event2->{series_id} ) - && ( $event->{series_id} == $event2->{series_id} ) ) - { - if ( ( $event->{ystart} eq $event2->{ystart} ) - && ( $event->{yend} eq $event2->{yend} ) ) - { - if ( ( defined $event->{schedule} ) && ( !( defined $event2->{schedule} ) ) ) { - $event->{hide} = 1; - $event2->{scheduled} = 1; - next; - } - if ( ( !( defined $event->{schedule} ) ) && ( defined $event2->{schedule} ) ) { - $event->{scheduled} = 1; - $event2->{hide} = 1; - next; - } - } elsif ( ( $event->{ystart} >= $event2->{ystart} ) - && ( $event->{scheduled} == 1 ) - && ( $event2->{scheduled} == 1 ) ) - { - #subsequent schedules - $event->{error}++; - $event2->{error} = 1 unless defined $event2->{error}; - $event2->{error}++; - next; - } - } elsif ( $event->{ystart} >= $event2->{ystart} ) { + #mark events if same start,stop,series_id, one is schedule one is event + if ( ( defined $event->{series_id} ) + && ( defined $event2->{series_id} ) + && ( $event->{series_id} == $event2->{series_id} ) ) + { + if ( ( $event->{ystart} eq $event2->{ystart} ) + && ( $event->{yend} eq $event2->{yend} ) ) + { + if ( ( defined $event->{schedule} ) && ( !( defined $event2->{schedule} ) ) ) { + $event->{hide} = 1; + $event2->{scheduled} = 1; + next; + } + if ( ( !( defined $event->{schedule} ) ) && ( defined $event2->{schedule} ) ) { + $event->{scheduled} = 1; + $event2->{hide} = 1; + next; + } + } elsif ( ( $event->{ystart} >= $event2->{ystart} ) + && ( $event->{scheduled} == 1 ) + && ( $event2->{scheduled} == 1 ) ) + { + #subsequent schedules + $event->{error}++; + $event2->{error} = 1 unless defined $event2->{error}; + $event2->{error}++; + next; + } + } elsif ( $event->{ystart} >= $event2->{ystart} ) { - #errors on multiple schedules or events - $event->{error}++; - $event2->{error} = 1 unless defined $event2->{error}; - $event2->{error}++; - } - } - } + #errors on multiple schedules or events + $event->{error}++; + $event2->{error} = 1 unless defined $event2->{error}; + $event2->{error}++; + } + } + } - #remove error tags from correctly scheduled entries (subsequent entries with same series id) - for my $event (@$events) { - delete $event->{error} - if ( - ( defined $event->{error} ) - && ( ( ( defined $event->{scheduled} ) && ( $event->{scheduled} == 1 ) ) - || ( ( defined $event->{hide} ) && ( $event->{hide} == 1 ) ) ) - ); - } + #remove error tags from correctly scheduled entries (subsequent entries with same series id) + for my $event (@$events) { + delete $event->{error} + if ( + ( defined $event->{error} ) + && ( ( ( defined $event->{scheduled} ) && ( $event->{scheduled} == 1 ) ) + || ( ( defined $event->{hide} ) && ( $event->{hide} == 1 ) ) ) + ); + } } sub printToolbar { - my $config = shift; - my $params = shift; - my $calendar = shift; + my $config = shift; + my $params = shift; + my $calendar = shift; - #print Dumper($params); - my $today = time::time_to_date(); + #print Dumper($params); + my $today = time::time_to_date(); - #setToday (TODO:javascript) - my $toolbar = '
      '; + #setToday (TODO:javascript) + my $toolbar = '
      '; - #$toolbar.='
      '.addCalendarButton($params, $calendar).'
      '; - $toolbar .= addCalendarButton( $params, $calendar ); - $toolbar .= qq{}; + #$toolbar.='
      '.addCalendarButton($params, $calendar).'
      '; + $toolbar .= addCalendarButton( $params, $calendar ); + $toolbar .= qq{}; - #ranges - my $ranges = { - $params->{loc}->{label_month} => 'month', - $params->{loc}->{label_4_weeks} => '28', - $params->{loc}->{label_2_weeks} => '14', - $params->{loc}->{label_1_week} => '7', - $params->{loc}->{label_day} => '1', - }; - $toolbar .= qq{ + #ranges + my $ranges = { + $params->{loc}->{label_month} => 'month', + $params->{loc}->{label_4_weeks} => '28', + $params->{loc}->{label_2_weeks} => '14', + $params->{loc}->{label_1_week} => '7', + $params->{loc}->{label_day} => '1', + }; + $toolbar .= qq{ }; - # start of day - my $day_start = $params->{day_start} || ''; - $toolbar .= qq{ + # start of day + my $day_start = $params->{day_start} || ''; + $toolbar .= qq{ }; - #filter - my $filter = $params->{filter} || ''; - $toolbar .= qq{ + #filter + my $filter = $params->{filter} || ''; + $toolbar .= qq{ }; - #search - $toolbar .= qq{ + #search + $toolbar .= qq{ @@ -1635,250 +1643,250 @@ sub printToolbar { }; - # - $toolbar .= qq{ + # + $toolbar .= qq{ } if $params->{list} == 1; - $toolbar .= qq{ + $toolbar .= qq{
      }; - print $toolbar; + print $toolbar; } sub getTime { - my $time = shift; - if ( $time =~ /^(\d\d)\:(\d\d)/ ) { - return ( $1, $2 ); - } - return ( -1, -1 ); + my $time = shift; + if ( $time =~ /^(\d\d)\:(\d\d)/ ) { + return ( $1, $2 ); + } + return ( -1, -1 ); } sub getCalendar { - my $config = shift; - my $params = shift; - my $language = shift; + my $config = shift; + my $params = shift; + my $language = shift; - my $from_date = getFromDate( $config, $params ); - my $till_date = getTillDate( $config, $params ); - my $range = $params->{range}; + my $from_date = getFromDate( $config, $params ); + my $till_date = getTillDate( $config, $params ); + my $range = $params->{range}; - my $previous = ''; - my $next = ''; - if ( $range eq 'month' ) { - $previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( months => 1 )->set_day(1)->date(); - $next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( months => 1 )->set_day(1)->date(); - } else { - $previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( days => $range )->date(); - $next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( days => $range )->date(); - } - my ( $year, $month, $day ) = split( /\-/, $from_date ); - $month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || ''; + my $previous = ''; + my $next = ''; + if ( $range eq 'month' ) { + $previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( months => 1 )->set_day(1)->date(); + $next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( months => 1 )->set_day(1)->date(); + } else { + $previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( days => $range )->date(); + $next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( days => $range )->date(); + } + my ( $year, $month, $day ) = split( /\-/, $from_date ); + $month = $time::names->{$language}->{months_abbr}->[ $month - 1 ] || ''; - return { - from_date => $from_date, - till_date => $till_date, - next_date => $next, - previous_date => $previous, - month => $month, - year => $year - }; + return { + from_date => $from_date, + till_date => $till_date, + next_date => $next, + previous_date => $previous, + month => $month, + year => $year + }; } sub getFromDate { - my $config = shift; - my $params = shift; + my $config = shift; + my $params = shift; - if ( $params->{from_date} ne '' ) { - return $params->{from_date}; - } - my $date = $params->{date}; - if ( $date eq '' ) { - $date = DateTime->now( time_zone => $config->{date}->{time_zone} )->date(); - } + if ( $params->{from_date} ne '' ) { + return $params->{from_date}; + } + my $date = $params->{date}; + if ( $date eq '' ) { + $date = DateTime->now( time_zone => $config->{date}->{time_zone} )->date(); + } - if ( $params->{range} eq '28' ) { + if ( $params->{range} eq '28' ) { - #get start of 4 week period - $date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )->ymd(); - } - if ( $params->{range} eq 'month' ) { + #get start of 4 week period + $date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )->ymd(); + } + if ( $params->{range} eq 'month' ) { - #get first day of month - return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)->date(); - } + #get first day of month + return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)->date(); + } - #get date - return time::get_datetime( $date, $config->{date}->{time_zone} )->date(); + #get date + return time::get_datetime( $date, $config->{date}->{time_zone} )->date(); } sub getTillDate { - my $config = shift; - my $params = shift; - if ( $params->{till_date} ne '' ) { - return $params->{till_date}; - } - my $date = $params->{date} || ''; - if ( $date eq '' ) { - $date = DateTime->now( time_zone => $config->{date}->{time_zone} )->date(); - } - if ( $params->{range} eq '28' ) { - $date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )->ymd(); - } - if ( $params->{range} eq 'month' ) { + my $config = shift; + my $params = shift; + if ( $params->{till_date} ne '' ) { + return $params->{till_date}; + } + my $date = $params->{date} || ''; + if ( $date eq '' ) { + $date = DateTime->now( time_zone => $config->{date}->{time_zone} )->date(); + } + if ( $params->{range} eq '28' ) { + $date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )->ymd(); + } + if ( $params->{range} eq 'month' ) { - #get last day of month - return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)->add( months => 1 )->subtract( days => 1 )->date(); - } + #get last day of month + return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)->add( months => 1 )->subtract( days => 1 )->date(); + } - #add range to date - return time::get_datetime( $date, $config->{date}->{time_zone} )->add( days => $params->{range} )->date(); + #add range to date + return time::get_datetime( $date, $config->{date}->{time_zone} )->add( days => $params->{range} )->date(); } sub getSeriesEvents { - my $config = shift; - my $request = shift; - my $options = shift; - my $params = shift; + my $config = shift; + my $request = shift; + my $options = shift; + my $params = shift; - #get events by series id - my $series_id = $request->{params}->{checked}->{series_id}; - if ( defined $series_id ) { - my $events = series::get_events( $request->{config}, $options ); - return $events; - } + #get events by series id + my $series_id = $request->{params}->{checked}->{series_id}; + if ( defined $series_id ) { + my $events = series::get_events( $request->{config}, $options ); + return $events; + } - #get events (directly from database to get the ones, not assigned, yet) - delete $options->{studio_id}; - delete $options->{project_id}; - $options->{recordings} = 1; + #get events (directly from database to get the ones, not assigned, yet) + delete $options->{studio_id}; + delete $options->{project_id}; + $options->{recordings} = 1; - my $request2 = { - params => { - checked => events::check_params( $config, $options ) - }, - config => $request->{config}, - permissions => $request->{permissions} - }; - $request2->{params}->{checked}->{published} = 'all'; - $request2->{params}->{checked}->{draft} = '1' if $params->{list} == 1; + my $request2 = { + params => { + checked => events::check_params( $config, $options ) + }, + config => $request->{config}, + permissions => $request->{permissions} + }; + $request2->{params}->{checked}->{published} = 'all'; + $request2->{params}->{checked}->{draft} = '1' if $params->{list} == 1; - #delete $request2->{params}->{checked}->{locations_to_exclude} - # if ( ( $params->{studio_id} == -1 ) && ( defined $request2->{params}->{checked}->{locations_to_exclude} ) ); + #delete $request2->{params}->{checked}->{locations_to_exclude} + # if ( ( $params->{studio_id} == -1 ) && ( defined $request2->{params}->{checked}->{locations_to_exclude} ) ); - my $events = events::get( $config, $request2 ); + my $events = events::get( $config, $request2 ); - #print STDERR Dumper($request2->{params}->{checked}); - #print STDERR Dumper($events); - series::add_series_ids_to_events( $request->{config}, $events ); + #print STDERR Dumper($request2->{params}->{checked}); + #print STDERR Dumper($events); + series::add_series_ids_to_events( $request->{config}, $events ); - my $studios = studios::get( - $request->{config}, - { - project_id => $options->{project_id} - } - ); - my $studio_id_by_location = {}; - for my $studio (@$studios) { - $studio_id_by_location->{ $studio->{location} } = $studio->{id}; - } + my $studios = studios::get( + $request->{config}, + { + project_id => $options->{project_id} + } + ); + my $studio_id_by_location = {}; + for my $studio (@$studios) { + $studio_id_by_location->{ $studio->{location} } = $studio->{id}; + } - for my $event (@$events) { - $event->{project_id} = $options->{project_id} unless defined $event->{project_id}; - $event->{studio_id} = $studio_id_by_location->{ $event->{location} } unless defined $event->{studio_id}; - } + for my $event (@$events) { + $event->{project_id} = $options->{project_id} unless defined $event->{project_id}; + $event->{studio_id} = $studio_id_by_location->{ $event->{location} } unless defined $event->{studio_id}; + } - return $events; + return $events; } sub check_params { - my $params = shift; - my $config = shift; + my $params = shift; + my $config = shift; - my $checked = {}; - my $template = ''; - $checked->{template} = template::check( $params->{template}, 'series' ); + my $checked = {}; + my $template = ''; + $checked->{template} = template::check( $params->{template}, 'series' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #numeric values - $checked->{part} = 0; - $checked->{list} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'part', 'list', 'day_start' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + #numeric values + $checked->{part} = 0; + $checked->{list} = 0; + for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'part', 'list', 'day_start' ) + { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - $checked->{day_start} = $config->{date}->{day_starting_hour} unless defined $checked->{day_start}; - $checked->{day_start} %= 24; + $checked->{day_start} = $config->{date}->{day_starting_hour} unless defined $checked->{day_start}; + $checked->{day_start} %= 24; - if ( defined $checked->{studio_id} ) { + if ( defined $checked->{studio_id} ) { - # a studio is selected, use the studio from parameter - $checked->{default_studio_id} = $checked->{studio_id}; - } elsif ( ( defined $params->{studio_id} ) && ( $params->{studio_id} eq '-1' ) ) { + # a studio is selected, use the studio from parameter + $checked->{default_studio_id} = $checked->{studio_id}; + } elsif ( ( defined $params->{studio_id} ) && ( $params->{studio_id} eq '-1' ) ) { - # all studios selected, use -1 - $checked->{studio_id} = -1; - } else { + # all studios selected, use -1 + $checked->{studio_id} = -1; + } else { - # no studio given, use default studio - $checked->{studio_id} = $checked->{default_studio_id}; - } + # no studio given, use default studio + $checked->{studio_id} = $checked->{default_studio_id}; + } - $checked->{open_end} = 1; - for my $param ('open_end') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + $checked->{open_end} = 1; + for my $param ('open_end') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - #scalars - $checked->{search} = ''; - $checked->{filter} = ''; + #scalars + $checked->{search} = ''; + $checked->{filter} = ''; - #$checked->{range}='month'; - for my $param ( 'search', 'filter', 'range' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + #$checked->{range}='month'; + for my $param ( 'search', 'filter', 'range' ) { + if ( defined $params->{$param} ) { + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^\s+//g; + $checked->{$param} =~ s/\s+$//g; + } + } - for my $param ('expires') { - $checked->{$param} = time::check_datetime( $params->{$param} ); - } + for my $param ('expires') { + $checked->{$param} = time::check_datetime( $params->{$param} ); + } - for my $param ( 'date', 'from_date', 'till_date' ) { - $checked->{$param} = time::check_date( $params->{$param} ); - } + for my $param ( 'date', 'from_date', 'till_date' ) { + $checked->{$param} = time::check_date( $params->{$param} ); + } - for my $param ( 'series_name', 'title', 'excerpt', 'content', 'program', 'category', 'image', 'user_content' ) { - if ( defined $params->{$param} ) { + for my $param ( 'series_name', 'title', 'excerpt', 'content', 'program', 'category', 'image', 'user_content' ) { + if ( defined $params->{$param} ) { - #$checked->{$param}=uri_unescape(); - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + #$checked->{$param}=uri_unescape(); + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^\s+//g; + $checked->{$param} =~ s/\s+$//g; + } + } - #actions and roles - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(add_user|remove_user|delete|save|details|show|edit_event|save_event)$/ ) { - $checked->{action} = $params->{action}; - } - } + #actions and roles + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(add_user|remove_user|delete|save|details|show|edit_event|save_event)$/ ) { + $checked->{action} = $params->{action}; + } + } - return $checked; + return $checked; } diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index b51465a..730e176 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -35,12 +35,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( - $config, - { - user => $user, - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } + $config, + { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -49,11 +49,11 @@ $params->{project_id} = $user_presets->{project_id} if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params($params), + }, }; #set user at params->presets->user @@ -64,261 +64,261 @@ $params = $request->{params}->{checked}; #print Dumper($params); #show header if ( ( params::isJson() ) || ( defined $params->{action} ) ) { - print "Content-Type:text/html; charset=utf-8;\n\n"; + print "Content-Type:text/html; charset=utf-8;\n\n"; } else { - my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); - $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process( 'print', template::check('default.html'), $headerParams ); - print q{ + my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); + $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); + template::process( 'print', template::check('default.html'), $headerParams ); + print q{ } unless (params::isJson); } return unless defined uac::check( $config, $params, $user_presets ); if ( defined $params->{action} ) { - if ( $params->{action} eq 'get_json' ) { - getJson( $config, $request ); - return; - } - if ( $params->{action} eq 'setLock' ) { - setLock( $config, $request ); - return; - } - if ( $params->{action} eq 'setRead' ) { - setRead( $config, $request ); - return; - } + if ( $params->{action} eq 'get_json' ) { + getJson( $config, $request ); + return; + } + if ( $params->{action} eq 'setLock' ) { + setLock( $config, $request ); + return; + } + if ( $params->{action} eq 'setRead' ) { + setRead( $config, $request ); + return; + } } $config->{access}->{write} = 0; showComments( $config, $request ); sub showComments { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_comment} == 1 ) { - uac::permissions_denied('read_comment'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_comment} == 1 ) { + uac::permissions_denied('read_comment'); + return; + } - for my $attr ( 'project_id', 'studio_id' ) { - unless ( defined $params->{$attr} ) { - uac::print_error( "missing " . $attr . " to show comment" ); - return; - } - } + for my $attr ( 'project_id', 'studio_id' ) { + unless ( defined $params->{$attr} ) { + uac::print_error( "missing " . $attr . " to show comment" ); + return; + } + } - $config->{access}->{write} = 0; - my $dbh = db::connect($config); + $config->{access}->{write} = 0; + my $dbh = db::connect($config); - my $comment = $params->{comment}; - my $template_parameters = {}; + my $comment = $params->{comment}; + my $template_parameters = {}; - #my $nodes={}; - #my $sorted_nodes=[]; + #my $nodes={}; + #my $sorted_nodes=[]; - my $results = []; - if ( $params->{search} ne '' ) { - $params->{comment}->{search} = $params->{search}; - $results = comments::get_by_event( $dbh, $config, $request ); - } elsif ( $comment->{event_id} ne '' ) { - $results = comments::get_by_event( $dbh, $config, $request ); - } else { - $results = comments::get_by_time( $dbh, $config, $comment ); - } + my $results = []; + if ( $params->{search} ne '' ) { + $params->{comment}->{search} = $params->{search}; + $results = comments::get_by_event( $dbh, $config, $request ); + } elsif ( $comment->{event_id} ne '' ) { + $results = comments::get_by_event( $dbh, $config, $request ); + } else { + $results = comments::get_by_time( $dbh, $config, $comment ); + } - my $events = []; - my $comment_count = 0; - if ( @$results > 0 ) { - my $comments = modify_comments( $request, $results ); + my $events = []; + my $comment_count = 0; + if ( scalar(@$results) > 0 ) { + my $comments = modify_comments( $request, $results ); - $comments = comments::sort( $config, $comments ); + $comments = comments::sort( $config, $comments ); - $events = comments::get_events( $dbh, $config, $request, $comments ); - my $language = $config::config->{date}->{language} || 'en'; - for my $event (@$events) { - $event->{start} = time::date_time_format( $event->{start}, $language ); - $comment_count += $event->{comment_count} if ( defined $event->{comment_count} ); - $event->{cache_base_url} = $config::config->{cache}->{base_url}; - } - } - for my $param (%$comment) { - $template_parameters->{$param} = $comment->{$param}; - } + $events = comments::get_events( $dbh, $config, $request, $comments ); + my $language = $config::config->{date}->{language} || 'en'; + for my $event (@$events) { + $event->{start} = time::date_time_format( $event->{start}, $language ); + $comment_count += $event->{comment_count} if ( defined $event->{comment_count} ); + $event->{cache_base_url} = $config::config->{cache}->{base_url}; + } + } + for my $param (%$comment) { + $template_parameters->{$param} = $comment->{$param}; + } - $template_parameters->{search} = markup::fix_utf8( $request->{params}->{original}->{search} ); - $template_parameters->{events} = $events; - $template_parameters->{debug} = $config->{system}->{debug}; - $template_parameters->{event_count} = @$events + 0; - $template_parameters->{comment_count} = $comment_count; - $template_parameters->{is_empty} = 1 if ( @$events == 0 ); - $template_parameters->{projects} = project::get_with_dates($config); - $template_parameters->{controllers} = $config->{controllers}; - $template_parameters->{allow} = $permissions; - $template_parameters->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'comment' } ); + $template_parameters->{search} = markup::fix_utf8( $request->{params}->{original}->{search} ); + $template_parameters->{events} = $events; + $template_parameters->{debug} = $config->{system}->{debug}; + $template_parameters->{event_count} = scalar(@$events); + $template_parameters->{comment_count} = $comment_count; + $template_parameters->{is_empty} = 1 if scalar @$events == 0; + $template_parameters->{projects} = project::get_with_dates($config); + $template_parameters->{controllers} = $config->{controllers}; + $template_parameters->{allow} = $permissions; + $template_parameters->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'comment' } ); - #fill and output template - template::process( 'print', $params->{template}, $template_parameters ); + #fill and output template + template::process( 'print', $params->{template}, $template_parameters ); } sub modify_comments { - my $request = shift; - my $results = shift; + my $request = shift; + my $results = shift; - my $language = $config::config->{date}->{language} || 'en'; - for my $result (@$results) { - $result->{start_date_name} = time::date_format( $result->{created_at}, $language ); - $result->{start_time_name} = time::time_format( $result->{created_at} ); - $result->{ $result->{lock_status} } = 1; - $result->{ $result->{news_status} } = 1; - } - return $results; + my $language = $config::config->{date}->{language} || 'en'; + for my $result (@$results) { + $result->{start_date_name} = time::date_format( $result->{created_at}, $language ); + $result->{start_time_name} = time::time_format( $result->{created_at} ); + $result->{ $result->{lock_status} } = 1; + $result->{ $result->{news_status} } = 1; + } + return $results; } sub setLock { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - unless ( $permissions->{update_comment_status_lock} == 1 ) { - uac::permissions_denied('update_comment_status_lock'); - return; - } + unless ( $permissions->{update_comment_status_lock} == 1 ) { + uac::permissions_denied('update_comment_status_lock'); + return; + } - my $comment = $params->{comment}; - $comment->{id} = $comment->{comment_id}; - if ( $comment->{id} eq '' ) { - return; - } + my $comment = $params->{comment}; + $comment->{id} = $comment->{comment_id}; + if ( $comment->{id} eq '' ) { + return; + } - #todo change set_news_status to lock_status in comment module - $comment->{set_lock_status} = $comment->{lockStatus}; - $comment->{set_lock_status} = 'blocked' unless $comment->{set_lock_status} eq 'show'; + #todo change set_news_status to lock_status in comment module + $comment->{set_lock_status} = $comment->{lockStatus}; + $comment->{set_lock_status} = 'blocked' unless $comment->{set_lock_status} eq 'show'; - $config->{access}->{write} = 1; - my $dbh = db::connect($config); - print STDERR "setLock " . Dumper($comment); - comments::set_lock_status( $dbh, $config, $comment ); - print "done\n"; + $config->{access}->{write} = 1; + my $dbh = db::connect($config); + print STDERR "setLock " . Dumper($comment); + comments::set_lock_status( $dbh, $config, $comment ); + print "done\n"; } sub setRead { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - unless ( $permissions->{update_comment_status_read} == 1 ) { - uac::permissions_denied('update_comment_status_read'); - return; - } + unless ( $permissions->{update_comment_status_read} == 1 ) { + uac::permissions_denied('update_comment_status_read'); + return; + } - $config->{access}->{write} = 1; - my $dbh = db::connect($config); + $config->{access}->{write} = 1; + my $dbh = db::connect($config); - my $comment = $params->{comment}; - $comment->{id} = $comment->{comment_id}; - if ( $comment->{id} eq '' ) { - return; - } + my $comment = $params->{comment}; + $comment->{id} = $comment->{comment_id}; + if ( $comment->{id} eq '' ) { + return; + } - #todo change set_news_status to read_status in comment module - $comment->{set_news_status} = $comment->{readStatus}; - $comment->{set_news_status} = 'received' unless $comment->{set_news_status} eq 'unread'; + #todo change set_news_status to read_status in comment module + $comment->{set_news_status} = $comment->{readStatus}; + $comment->{set_news_status} = 'received' unless $comment->{set_news_status} eq 'unread'; - print STDERR "setRead " . Dumper($comment); - comments::set_news_status( $dbh, $config, $comment ); - print "done\n"; + print STDERR "setRead " . Dumper($comment); + comments::set_news_status( $dbh, $config, $comment ); + print "done\n"; } sub check_params { - my $params = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - #actions + #actions - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(setLock|setRead|showComment)$/ ) { - $checked->{action} = $params->{action}; - } - } + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(setLock|setRead|showComment)$/ ) { + $checked->{action} = $params->{action}; + } + } - #template - my $template = ''; - if ( defined $checked->{action} ) { - $template = template::check( $params->{template}, 'edit_comment' ) if $checked->{action} eq 'showComment'; - } else { - $template = template::check( $params->{template}, 'comments' ); - } - $checked->{template} = $template; + #template + my $template = ''; + if ( defined $checked->{action} ) { + $template = template::check( $params->{template}, 'edit_comment' ) if $checked->{action} eq 'showComment'; + } else { + $template = template::check( $params->{template}, 'comments' ); + } + $checked->{template} = $template; - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + #numeric values + for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - my $comment = {}; + my $comment = {}; - for my $key ('readStatus') { - my $value = $params->{$key}; - $comment->{$key} = $value if ( defined $value ) && ( $value =~ /^(received|unread)$/ ); - } + for my $key ('readStatus') { + my $value = $params->{$key}; + $comment->{$key} = $value if ( defined $value ) && ( $value =~ /^(received|unread)$/ ); + } - for my $key ('lockStatus') { - my $value = $params->{$key}; - $comment->{$key} = $value if ( defined $value ) && ( $value =~ /^(blocked|show)$/ ); - } + for my $key ('lockStatus') { + my $value = $params->{$key}; + $comment->{$key} = $value if ( defined $value ) && ( $value =~ /^(blocked|show)$/ ); + } - $comment->{event_start} = time::check_date( $params->{event_start} ) || ''; - $comment->{from} = time::check_date( $params->{from} ) || ''; - $comment->{till} = time::check_date( $params->{till} ) || ''; + $comment->{event_start} = time::check_date( $params->{event_start} ) || ''; + $comment->{from} = time::check_date( $params->{from} ) || ''; + $comment->{till} = time::check_date( $params->{till} ) || ''; - my $event_id = $params->{event_id} || ''; - if ( $event_id =~ /^(\d+)$/ ) { - $comment->{event_id} = $1; - } else { + my $event_id = $params->{event_id} || ''; + if ( $event_id =~ /^(\d+)$/ ) { + $comment->{event_id} = $1; + } else { - # error('invalid event_id'); - } - $comment->{event_id} = '' unless defined $comment->{event_id}; + # error('invalid event_id'); + } + $comment->{event_id} = '' unless defined $comment->{event_id}; - my $id = $params->{comment_id} || ''; - if ( $id =~ /^(\d+)$/ ) { - $comment->{comment_id} = $1; - } - $comment->{comment_id} = '' unless defined $comment->{comment_id}; + my $id = $params->{comment_id} || ''; + if ( $id =~ /^(\d+)$/ ) { + $comment->{comment_id} = $1; + } + $comment->{comment_id} = '' unless defined $comment->{comment_id}; - my $age = $params->{age} || ''; - if ( $age =~ /^(\d+)$/ ) { - $comment->{age} = $1; - } - $comment->{age} = '365' unless defined $comment->{age}; + my $age = $params->{age} || ''; + if ( $age =~ /^(\d+)$/ ) { + $comment->{age} = $1; + } + $comment->{age} = '365' unless defined $comment->{age}; - my $search = $params->{search} || ''; - if ( ( defined $search ) && ( $search ne '' ) ) { - $search = substr( $search, 0, 100 ); - $search =~ s/^\s+//gi; - $search =~ s/\s+$//gi; - $search =~ s/\-\-//gi; - $search =~ s/\;//gi; - $checked->{search} = $search if $search ne ''; - } - $checked->{search} = '' unless defined $checked->{search}; - $checked->{comment} = $comment; + my $search = $params->{search} || ''; + if ( ( defined $search ) && ( $search ne '' ) ) { + $search = substr( $search, 0, 100 ); + $search =~ s/^\s+//gi; + $search =~ s/\s+$//gi; + $search =~ s/\-\-//gi; + $search =~ s/\;//gi; + $checked->{search} = $search if $search ne ''; + } + $checked->{search} = '' unless defined $checked->{search}; + $checked->{comment} = $comment; - return $checked; + return $checked; } diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 2e9b046..23fc537 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -373,7 +373,7 @@ sub getJson { } ); - if ( @$series == 1 ) { + if ( scalar @$series == 1 ) { my $serie = $series->[0]; $event->{has_single_events} = $serie->{has_single_events}; if ( $event->{has_single_events} eq '1' ) { diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index d1d6d5b..26d7031 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -71,7 +71,7 @@ return unless defined uac::check( $config, $params, $user_presets ); my $local_media_dir = $config->{locations}->{local_media_dir}; my $local_media_url = $config->{locations}->{local_media_url}; -log::error( $config, 'cannot locate media dir' . $local_media_dir ) unless -e $local_media_dir; +log::error( $config, 'cannot locate media dir ' . $local_media_dir ) unless -e $local_media_dir; uac::permissions_denied('reading from local media dir') unless -r $local_media_dir; uac::permissions_denied('writing to local media dir') unless -w $local_media_dir; @@ -179,7 +179,7 @@ sub show_image { ); #print STDERR Dumper($imagesByNames); - $selectedImage = $imagesByNames->[0] if scalar(@$imagesByNames) > 0; + $selectedImage = $imagesByNames->[0] if scalar @$imagesByNames > 0; } my $finalResults = []; diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi index 5b73d05..b70870d 100755 --- a/website/agenda/planung/imageUpload.cgi +++ b/website/agenda/planung/imageUpload.cgi @@ -350,6 +350,7 @@ sub process_image { #$image->Normalize(); $image->Write( 'jpg:' . $image_path ); + #write thumb my $thumb = $image; $thumb->Trim2Square; diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 14a60bb..d498c99 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -137,7 +137,7 @@ sub save_project { return; } my $projects = project::get( $config, { name => $entry->{name} } ); - if ( @$projects > 0 ) { + if ( scalar @$projects > 0 ) { uac::print_error("project with name '$entry->{name}' already exists"); return; } diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 1b33f1e..89d8364 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -334,12 +334,6 @@ sub show_roles { #add permission rows $columns = sort_columns($columns); - # print '
      ';
      -	#    for my $key (@$columns){
      -	#         printf ("        %-40s => '',\n", "'".$key."'");
      -	#    }
      -	#    print '
      '; - for my $key (@$columns) { next if ( $key eq 'level' diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index fbf14ad..07c4684 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -361,9 +361,6 @@ sub save_series { } ); - #print STDERR "done\n"; - #my @series_ids=@$series_ids; - if ( $params->{action} eq 'create' ) { unless ( $permissions->{create_series} == 1 ) { diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 1724f23..2bfbaa8 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -18,7 +18,6 @@ use studios; use series; use template; use playout; - binmode STDOUT, ":utf8"; my $r = shift; diff --git a/website/agenda/planung/showImage.cgi b/website/agenda/planung/showImage.cgi old mode 100644 new mode 100755 index 3b92530..be7cb6b --- a/website/agenda/planung/showImage.cgi +++ b/website/agenda/planung/showImage.cgi @@ -72,6 +72,11 @@ sub showImage { } my $filename = images::getInternalPath( $config, $params ); + unless ( defined $filename ) { + uac::permissions_denied("could not find path"); + return; + } + unless ( -e $filename ) { uac::permissions_denied("read $filename"); return; diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 2bbe513..12eaeb7 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -106,7 +106,7 @@ sub delete_studio { } ); - unless ( @$studio_assignments == 0 ) { + unless ( scalar @$studio_assignments == 0 ) { uac::print_info("Studio unassigned from project"); uac::print_warn("Studio is assigned to other projects, so it will not be deleted"); return undef; @@ -141,7 +141,7 @@ sub save_studio { studios::update( $config, $entry ); } else { my $studios = studios::get( $config, { name => $entry->{name} } ); - if ( @$studios > 0 ) { + if ( scalar @$studios > 0 ) { uac::print_error("studio with name '$entry->{name}' already exists"); return; } @@ -166,7 +166,7 @@ sub save_studio { has_single_events => 1 } ); - if ( @$single_series == 0 ) { + if ( scalar @$single_series == 0 ) { series::insert( $config, { diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index bf69da7..7ac0514 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -51,10 +51,6 @@
      - -
      -
      -
      @@ -136,32 +136,33 @@ sub printForm { } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - #my $template = ''; - #$checked->{template} = template::check($config, $params->{template}, 'requestPassword' ); + #my $template = ''; + #$checked->{template} = template::check($config, $params->{template}, 'requestPassword' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - for my $param ( 'user', 'token', 'user_password', 'user_password2' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ( 'user', 'token', 'user_password', 'user_password2' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(change)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = ''; + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(change)$/ ) { + $checked->{action} = $params->{action}; + } + } - return $checked; + return $checked; } diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index cd8543d..46b362c 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -26,23 +26,23 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config ); return if ( ( !defined $user ) || ( $user eq '' ) ); our $actions = { - read => 1, - update => 2, - assign => 3, - remove => 4, - disable => 5, - scan => 6, - create => 7, - delete => 8, + read => 1, + update => 2, + assign => 3, + remove => 4, + disable => 5, + scan => 6, + create => 7, + delete => 8, }; my $user_presets = uac::get_user_presets( - $config, - { - user => $user, - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } + $config, + { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -50,11 +50,11 @@ $params->{studio_id} = $params->{default_studio_id} $params->{project_id} = $user_presets->{project_id}; my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; @@ -62,11 +62,11 @@ $params = $request->{params}->{checked}; #process header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); -template::process($config, 'print', template::check($config, 'roles.html'), $headerParams ); +template::process( $config, 'print', template::check( $config, 'roles.html' ), $headerParams ); return unless uac::check( $config, $params, $user_presets ) == 1; if ( defined $params->{action} ) { - save_roles( $config, $request ) if ( $params->{action} eq 'save' ); + save_roles( $config, $request ) if ( $params->{action} eq 'save' ); } #show current roles @@ -83,381 +83,382 @@ return; # new roles will have role level 0 by default # sub save_roles { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - unless ( $permissions->{update_role} == 1 ) { - uac::permissions_denied('update_role'); - return; - } + unless ( $permissions->{update_role} == 1 ) { + uac::permissions_denied('update_role'); + return; + } - my $studio_id = $params->{studio_id}; - my $project_id = $params->{project_id}; - my $roles = uac::get_roles( $config, { project_id => $project_id, studio_id => $studio_id } ); + my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $roles = uac::get_roles( $config, { project_id => $project_id, studio_id => $studio_id } ); - my $role_by_id = {}; - my $role_by_name = {}; - for my $role (@$roles) { - $role_by_id->{ $role->{id} } = $role; - $role_by_name->{ $role->{role} } = $role; - } + my $role_by_id = {}; + my $role_by_name = {}; + for my $role (@$roles) { + $role_by_id->{ $role->{id} } = $role; + $role_by_name->{ $role->{role} } = $role; + } - my $columns = uac::get_role_columns($config); + my $columns = uac::get_role_columns($config); - #print '
      '.Dumper($columns).'
      '; + #print '
      '.Dumper($columns).'
      '; - #initialize all value ids (given by params matching to database columns) - my $values = {}; - for my $param ( keys %$params ) { - if ( $param =~ /(.+?)\_(\d+)?$/ ) { - my $column = $1; - my $id = $2 || ''; - next unless defined $columns->{$column}; - $values->{$id} = {} if ( update_allowed( $permissions, $role_by_id, $id ) ); - } - } + #initialize all value ids (given by params matching to database columns) + my $values = {}; + for my $param ( keys %$params ) { + if ( $param =~ /(.+?)\_(\d+)?$/ ) { + my $column = $1; + my $id = $2 || ''; + next unless defined $columns->{$column}; + $values->{$id} = {} if ( update_allowed( $permissions, $role_by_id, $id ) ); + } + } - #init checkbox values with 0 - for my $id ( keys %$values ) { - if ( update_allowed( $permissions, $role_by_id, $id ) ) { - for my $column ( keys %$columns ) { - next if ( $column eq 'level' || $column eq 'role' || $column eq 'id' || $column eq 'project_id' || $column eq 'studio_id' ); - $values->{$id}->{$column} = 0; - } - } - } + #init checkbox values with 0 + for my $id ( keys %$values ) { + if ( update_allowed( $permissions, $role_by_id, $id ) ) { + for my $column ( keys %$columns ) { + next if ( $column eq 'level' || $column eq 'role' || $column eq 'id' || $column eq 'project_id' || $column eq 'studio_id' ); + $values->{$id}->{$column} = 0; + } + } + } - #set all checkbox values to 1 - for my $param ( keys %$params ) { - if ( $param =~ /(.+?)\_(\d+)?$/ ) { - my $column = $1; - my $id = $2 || ''; - next unless ( defined $columns->{$column} ); - if ( update_allowed( $permissions, $role_by_id, $id ) ) { - my $value = $params->{$param} || ''; - if ( $column eq 'level' ) { - if ( check_level( $permissions, $value ) == 1 ) { - $values->{$id}->{$column} = $value; - } else { - uac::permissions_denied("change the level of role!"); - return; - } - } elsif ( $column eq 'role' ) { - $values->{$id}->{$column} = $value; - } elsif ( $column eq 'id' || $column eq 'project_id' || $column eq 'studio_id' ) { + #set all checkbox values to 1 + for my $param ( keys %$params ) { + if ( $param =~ /(.+?)\_(\d+)?$/ ) { + my $column = $1; + my $id = $2 || ''; + next unless ( defined $columns->{$column} ); + if ( update_allowed( $permissions, $role_by_id, $id ) ) { + my $value = $params->{$param} || ''; + if ( $column eq 'level' ) { + if ( check_level( $permissions, $value ) == 1 ) { + $values->{$id}->{$column} = $value; + } else { + uac::permissions_denied("change the level of role!"); + return; + } + } elsif ( $column eq 'role' ) { + $values->{$id}->{$column} = $value; + } elsif ( $column eq 'id' || $column eq 'project_id' || $column eq 'studio_id' ) { - #id and studio id will be set later - } else { - $values->{$id}->{$column} = 1 if ( $value =~ /^\d+$/ ); - } - } - } - } + #id and studio id will be set later + } else { + $values->{$id}->{$column} = 1 if ( $value =~ /^\d+$/ ); + } + } + } + } - #print STDERR Dumper($values); - #order roles to update by level - for my $id ( sort { $values->{$a}->{level} <=> $values->{$b}->{level} } keys %$values ) { - my $role = $values->{$id}; - $role->{id} = $id || ''; - $role->{studio_id} = $studio_id; - $role->{project_id} = $project_id; + #print STDERR Dumper($values); + #order roles to update by level + for my $id ( sort { $values->{$a}->{level} <=> $values->{$b}->{level} } keys %$values ) { + my $role = $values->{$id}; + $role->{id} = $id || ''; + $role->{studio_id} = $studio_id; + $role->{project_id} = $project_id; - #if you are not admin - next if check_level( $permissions, $role->{level} ) == 0; + #if you are not admin + next if check_level( $permissions, $role->{level} ) == 0; - if ( $role->{project_id} eq '' ) { - uac::print_error('missing parameter project_id!'); - next; - } - if ( $role->{studio_id} eq '' ) { - uac::print_error('missing parameter studio_id!'); - next; - } - if ( ( $role->{role} eq '' ) && ( $id ne '' ) ) { - uac::print_error('missing parameter role!'); - next; - } + if ( $role->{project_id} eq '' ) { + uac::print_error('missing parameter project_id!'); + next; + } + if ( $role->{studio_id} eq '' ) { + uac::print_error('missing parameter studio_id!'); + next; + } + if ( ( $role->{role} eq '' ) && ( $id ne '' ) ) { + uac::print_error('missing parameter role!'); + next; + } - my $role_from_db = undef; - $role_from_db = $role_by_name->{ $role->{role} } if defined $role_by_name->{ $role->{role} }; + my $role_from_db = undef; + $role_from_db = $role_by_name->{ $role->{role} } if defined $role_by_name->{ $role->{role} }; - if ( $id eq '' ) { + if ( $id eq '' ) { - #insert role - next if ( $role->{role} eq '' ); - if ( defined $role_from_db ) { - uac::print_error("a role with name '$role->{role}' already exists!"); - next; - } - $role->{level} = 0; - print "insert $id $role->{role}
      \n"; - $config->{access}->{write} = 1; - uac::insert_role( $config, $role ); - $config->{access}->{write} = 0; - } else { + #insert role + next if ( $role->{role} eq '' ); + if ( defined $role_from_db ) { + uac::print_error("a role with name '$role->{role}' already exists!"); + next; + } + $role->{level} = 0; + print "insert $id $role->{role}
      \n"; + $config->{access}->{write} = 1; + uac::insert_role( $config, $role ); + $config->{access}->{write} = 0; + } else { - #update role - if ( ( defined $role_from_db ) && ( $id ne $role_from_db->{id} ) ) { - uac::print_error( 'you cannot rename role to existing role!' - . " '$role->{role}' ($id) != '$role_from_db->{role}' ($role_from_db->{id})" ); - next; - } - print "update $role->{role}
      \n"; + #update role + if ( ( defined $role_from_db ) && ( $id ne $role_from_db->{id} ) ) { + uac::print_error( 'you cannot rename role to existing role!' + . " '$role->{role}' ($id) != '$role_from_db->{role}' ($role_from_db->{id})" ); + next; + } + print "update $role->{role}
      \n"; - #print '
      '.Dumper($role).'
      '; - $config->{access}->{write} = 1; - uac::update_role( $config, $role ); - $config->{access}->{write} = 0; - } - } - print qq{
      changes saved
      }; + #print '
      '.Dumper($role).'
      '; + $config->{access}->{write} = 1; + uac::update_role( $config, $role ); + $config->{access}->{write} = 0; + } + } + print qq{
      changes saved
      }; } #check if update is allowed sub update_allowed { - my $permissions = shift; - my $role_by_id = shift; - my $id = shift; + my $permissions = shift; + my $role_by_id = shift; + my $id = shift; - return 0 unless defined $permissions; - return 0 unless defined $role_by_id; - return 0 unless defined $id; - return 1 if $id eq ''; - return 0 unless defined $role_by_id->{$id}; - my $role = $role_by_id->{$id}; - return check_level( $permissions, $role->{level} ); + return 0 unless defined $permissions; + return 0 unless defined $role_by_id; + return 0 unless defined $id; + return 1 if $id eq ''; + return 0 unless defined $role_by_id->{$id}; + my $role = $role_by_id->{$id}; + return check_level( $permissions, $role->{level} ); } #check if update is allowed sub check_level { - my $permissions = shift; - my $level = shift; - return 0 unless defined $permissions; - return 0 unless defined $level; - return 1 if ( $permissions->{is_admin} ); - return 1 if ( $permissions->{level} > $level ); - return 0; + my $permissions = shift; + my $level = shift; + return 0 unless defined $permissions; + return 0 unless defined $level; + return 1 if ( $permissions->{is_admin} ); + return 1 if ( $permissions->{level} > $level ); + return 0; } # user has to be assigned to studio # user needs to have permissions read_role sub show_roles { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_role} == 1 ) { - uac::permissions_denied('read_role'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_role} == 1 ) { + uac::permissions_denied('read_role'); + return; + } - my $studio_id = $params->{studio_id}; - my $project_id = $params->{project_id}; - my $columns = uac::get_role_columns($config); + my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $columns = uac::get_role_columns($config); - #get user roles - my $conditions = {}; - $conditions->{studio_id} = $params->{studio_id} if ( $params->{studio_id} ne '' ); - $conditions->{project_id} = $params->{project_id} if ( $params->{project_id} ne '' ); - my $roles = uac::get_roles( $config, $conditions ); - @$roles = reverse sort { $a->{level} cmp $b->{level} } (@$roles); + #get user roles + my $conditions = {}; + $conditions->{studio_id} = $params->{studio_id} if ( $params->{studio_id} ne '' ); + $conditions->{project_id} = $params->{project_id} if ( $params->{project_id} ne '' ); + my $roles = uac::get_roles( $config, $conditions ); + @$roles = reverse sort { $a->{level} cmp $b->{level} } (@$roles); - #add new role template - unshift @$roles, { role => '', level => '0' }; + #add new role template + unshift @$roles, { role => '', level => '0' }; - #print user role form - my $out = qq{ + #print user role form + my $out = qq{
      }; - if ( defined $permissions->{update_role} ) { + if ( defined $permissions->{update_role} ) { - #add new user role button - $out .= q{ + #add new user role button + $out .= q{ } - } + } - $out .= '
      '; - $out .= ''; - my $localization = localization::get( $config, { user => $params->{presets}->{user}, file => 'roles' } ); - for my $key ( keys %$localization ) { - $localization->{$key} =~ s/\(//; - $localization->{$key} =~ s/\)/<\/span>/; - } + $out .= '
      '; + $out .= '
      '; + my $localization = localization::get( $config, { user => $params->{presets}->{user}, file => 'roles' } ); + for my $key ( keys %$localization ) { + $localization->{$key} =~ s/\(//; + $localization->{$key} =~ s/\)/<\/span>/; + } - #add role row - $out .= qq{}; - my $description = $localization->{label_role} || 'role'; - $out .= qq{}; + #add role row + $out .= qq{}; + my $description = $localization->{label_role} || 'role'; + $out .= qq{}; - for my $role (@$roles) { - $role->{active} = ''; - $role->{active} = ' disabled' if check_level( $permissions, $role->{level} ) == 0; - $role->{active} = ' disabled' unless defined $permissions->{update_role}; - } + for my $role (@$roles) { + $role->{active} = ''; + $role->{active} = ' disabled' if check_level( $permissions, $role->{level} ) == 0; + $role->{active} = ' disabled' unless defined $permissions->{update_role}; + } - for my $role (@$roles) { + for my $role (@$roles) { - #print Dumper($role); - my $id = $role->{id} || ''; - my $value = $role->{role} || ''; - my $style = ''; - $style = ' id="new_user_role" class="editor" style="display:none"' if ( $id eq '' ); - my $active = $role->{active}; - $out .= qq{}; - } - $out .= qq{}; + #print Dumper($role); + my $id = $role->{id} || ''; + my $value = $role->{role} || ''; + my $style = ''; + $style = ' id="new_user_role" class="editor" style="display:none"' if ( $id eq '' ); + my $active = $role->{active}; + $out .= qq{}; + } + $out .= qq{}; - #add level row - $out .= qq{}; - $description = $localization->{label_level} || 'level'; - $out .= qq{}; - for my $role (@$roles) { - my $id = $role->{id} || ''; - my $value = $role->{level} || ''; - my $style = ''; - $style = ' id="new_user_level" class="editor" style="display:none"' if ( $id eq '' ); - my $active = $role->{active}; - $out .= qq{}; - } - $out .= qq{}; + #add level row + $out .= qq{}; + $description = $localization->{label_level} || 'level'; + $out .= qq{}; + for my $role (@$roles) { + my $id = $role->{id} || ''; + my $value = $role->{level} || ''; + my $style = ''; + $style = ' id="new_user_level" class="editor" style="display:none"' if ( $id eq '' ); + my $active = $role->{active}; + $out .= qq{}; + } + $out .= qq{}; - #add permission rows - $columns = sort_columns($columns); + #add permission rows + $columns = sort_columns($columns); - for my $key (@$columns) { - next - if ( $key eq 'level' - || $key eq 'role' - || $key eq 'id' - || $key eq 'project_id' - || $key eq 'studio_id' - || $key eq 'modified_at' - || $key eq 'created_at' ); - my $title = $key; - $title =~ s/\_/ /g; - my $description = $localization->{ 'label_' . $key } || $key; - $out .= qq{}; - $out .= qq{}; - for my $role (@$roles) { - my $value = $role->{$key} || '0'; - my $id = $role->{id} || ''; - my $active = $role->{active}; - my $style = ''; - $style = ' class="editor' . $active . '" style="display:none"' if ( $id eq '' ); - my $checked = ''; - $checked = 'checked="checked"' if ( $value eq '1' ); - $active =~ s/\s//g; - $out .= qq{ + for my $key (@$columns) { + next + if ( $key eq 'level' + || $key eq 'role' + || $key eq 'id' + || $key eq 'project_id' + || $key eq 'studio_id' + || $key eq 'modified_at' + || $key eq 'created_at' ); + my $title = $key; + $title =~ s/\_/ /g; + my $description = $localization->{ 'label_' . $key } || $key; + $out .= qq{}; + $out .= qq{}; + for my $role (@$roles) { + my $value = $role->{$key} || '0'; + my $id = $role->{id} || ''; + my $active = $role->{active}; + my $style = ''; + $style = ' class="editor' . $active . '" style="display:none"' if ( $id eq '' ); + my $checked = ''; + $checked = 'checked="checked"' if ( $value eq '1' ); + $active =~ s/\s//g; + $out .= qq{ }; - } - $out .= qq{}; - } - $out .= '
      $description
      $description
      $description
      $description
      $description
      $description
      '; - $out .= '' if ( defined $permissions->{update_role} ); - $out .= '
      '; - $out .= '
      '; - print $out. "\n"; + } + $out .= qq{}; + } + $out .= ''; + $out .= '' if ( defined $permissions->{update_role} ); + $out .= ''; + $out .= '
      '; + print $out. "\n"; } # sort columns by group and action sub sort_columns { - my $columns = shift; + my $columns = shift; - my $column_level = {}; - my $groups = sort_groups($columns); - for my $column ( keys %$columns ) { - my @words = split /_/, $column; - my $action = shift @words; - my $group = join( ' ', @words ); + my $column_level = {}; + my $groups = sort_groups($columns); + for my $column ( keys %$columns ) { + my @words = split /_/, $column; + my $action = shift @words; + my $group = join( ' ', @words ); - #print "action:'$action' group:'$group'
      \n"; + #print "action:'$action' group:'$group'
      \n"; - my $index = $groups->{$group} || 0; - $index += $actions->{$action} if ( defined $actions->{$action} ); - $column_level->{$column} = $index; + my $index = $groups->{$group} || 0; + $index += $actions->{$action} if ( defined $actions->{$action} ); + $column_level->{$column} = $index; - # print $index."
      "; - } + # print $index."
      "; + } - my @columns = sort { $column_level->{$a} <=> $column_level->{$b} } ( keys %$column_level ); - return \@columns; + my @columns = sort { $column_level->{$a} <=> $column_level->{$b} } ( keys %$column_level ); + return \@columns; } # sort columns by group sub sort_groups { - my $columns = shift; - my $groups = {}; + my $columns = shift; + my $groups = {}; - #extract groups - for my $column ( keys %$columns ) { - my @words = split /_/, $column; - my $action = shift @words; - my $group = join( ' ', @words ); - $groups->{$group} = 1; - } + #extract groups + for my $column ( keys %$columns ) { + my @words = split /_/, $column; + my $action = shift @words; + my $group = join( ' ', @words ); + $groups->{$group} = 1; + } - #weigth groups - my $i = 0; - for my $group ( sort keys %$groups ) { - $groups->{$group} = $i; - $i += 100; - } + #weigth groups + my $i = 0; + for my $group ( sort keys %$groups ) { + $groups->{$group} = $i; + $i += 100; + } - #print "
      ";
      -	#for my $group (sort {$groups->{$a} <=> $groups->{$b}} (keys %$groups)){
      -	#    print "$groups->{$group}\t$group\n";
      -	#}
      -	#print "
      "; + #print "
      ";
      +    #for my $group (sort {$groups->{$a} <=> $groups->{$b}} (keys %$groups)){
      +    #    print "$groups->{$group}\t$group\n";
      +    #}
      +    #print "
      "; - return $groups; + return $groups; } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - #template - my $template = ''; - $template = template::check($config, $params->{template}, 'roles.html' ); - $checked->{template} = $template; + #template + my $template = ''; + $template = template::check( $config, $params->{template}, 'roles.html' ); + $checked->{template} = $template; - #actions - if ( defined $params->{action} ) { - if ( $params->{action} eq 'save' ) { - $checked->{action} = $params->{action}; - } - } + #actions + if ( defined $params->{action} ) { + if ( $params->{action} eq 'save' ) { + $checked->{action} = $params->{action}; + } + } - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + #numeric values + for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - #permission fields - for my $key ( keys %$params ) { - $checked->{$key} = $params->{$key} if ( $key =~ /^[a-z_]+_\d*$/ ); - } + #permission fields + for my $key ( keys %$params ) { + $checked->{$key} = $params->{$key} if ( $key =~ /^[a-z_]+_\d*$/ ); + } - return $checked; + return $checked; } diff --git a/website/agenda/planung/selectEvent.cgi b/website/agenda/planung/selectEvent.cgi index 4f13a11..76aad4f 100755 --- a/website/agenda/planung/selectEvent.cgi +++ b/website/agenda/planung/selectEvent.cgi @@ -25,12 +25,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - user => $user - } + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + user => $user + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -39,11 +39,11 @@ $params->{project_id} = $user_presets->{project_id} if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -59,120 +59,121 @@ show_events( $config, $request ); #TODO: filter by published, draft sub show_events { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_event} == 1 ) { - uac::permissions_denied('read_event'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_event} == 1 ) { + uac::permissions_denied('read_event'); + return; + } - # get user projects - my $user_projects = uac::get_projects_by_user( $config, { user => $request->{user} } ); - my $projects = {}; - for my $project (@$user_projects) { - $projects->{ $project->{project_id} } = $project; - } + # get user projects + my $user_projects = uac::get_projects_by_user( $config, { user => $request->{user} } ); + my $projects = {}; + for my $project (@$user_projects) { + $projects->{ $project->{project_id} } = $project; + } - # get user studios - my $user_studios = uac::get_studios_by_user( $config, { user => $request->{user} } ); - for my $studio (@$user_studios) { - my $project_id = $studio->{project_id}; - my $studio_id = $studio->{id}; - $studio->{project_name} = $projects->{$project_id}->{name}; - $studio->{selected} = 1 if ( $project_id eq $params->{p_id} ) && ( $studio_id eq $params->{s_id} ); - } + # get user studios + my $user_studios = uac::get_studios_by_user( $config, { user => $request->{user} } ); + for my $studio (@$user_studios) { + my $project_id = $studio->{project_id}; + my $studio_id = $studio->{id}; + $studio->{project_name} = $projects->{$project_id}->{name}; + $studio->{selected} = 1 if ( $project_id eq $params->{p_id} ) && ( $studio_id eq $params->{s_id} ); + } - # get series - my $options = {}; - $options->{project_id} = $params->{p_id} if defined $params->{p_id}; - $options->{studio_id} = $params->{s_id} if defined $params->{s_id}; - my $series = series::get( $config, $options ); + # get series + my $options = {}; + $options->{project_id} = $params->{p_id} if defined $params->{p_id}; + $options->{studio_id} = $params->{s_id} if defined $params->{s_id}; + my $series = series::get( $config, $options ); - for my $serie (@$series) { - $serie->{selected} = 1 if ( defined $params->{series_id} ) && ( $serie->{series_id} eq $params->{series_id} ); - $serie->{series_name} = 'Einzelsendung' if $serie->{series_name} eq '_single_'; - } + for my $serie (@$series) { + $serie->{selected} = 1 if ( defined $params->{series_id} ) && ( $serie->{series_id} eq $params->{series_id} ); + $serie->{series_name} = 'Einzelsendung' if $serie->{series_name} eq '_single_'; + } - # get events - $options->{series_id} = $params->{series_id} if defined $params->{series_id}; - $options->{from_date} = $params->{from_date} if defined $params->{from_date}; - $options->{till_date} = $params->{till_date} if defined $params->{till_date}; - my $events = series::get_events( $config, $options ); + # get events + $options->{series_id} = $params->{series_id} if defined $params->{series_id}; + $options->{from_date} = $params->{from_date} if defined $params->{from_date}; + $options->{till_date} = $params->{till_date} if defined $params->{till_date}; + my $events = series::get_events( $config, $options ); - # filter by year - my $years = []; - for my $year ( 2005 .. 2025 ) { - my $date = { year => $year }; - $date->{selected} = 1 if ( defined $params->{from_date} ) && ( $params->{from_date} eq $year . '-01-01' ); - push @$years, $date; - } + # filter by year + my $years = []; + for my $year ( 2005 .. 2025 ) { + my $date = { year => $year }; + $date->{selected} = 1 if ( defined $params->{from_date} ) && ( $params->{from_date} eq $year . '-01-01' ); + push @$years, $date; + } - #print Dumper($params->{loc}); - $params->{studios} = $user_studios; - $params->{series} = $series; - $params->{events} = $events; - $params->{years} = $years; + #print Dumper($params->{loc}); + $params->{studios} = $user_studios; + $params->{series} = $series; + $params->{events} = $events; + $params->{years} = $years; - #print STDERR Dumper($params); - template::process($config, 'print', $params->{template}, $params ); - return; + #print STDERR Dumper($params); + template::process( $config, 'print', $params->{template}, $params ); + return; } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #numeric values - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'event_id', 'p_id', 's_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + #numeric values + for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'event_id', 'p_id', 's_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { + $checked->{$param} = $params->{$param}; + } + } - for my $param ('resultElemId') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[a-zA-ZöäüÖÄÜß_\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ('resultElemId') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[a-zA-ZöäüÖÄÜß_\d]+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - for my $param ( 'from_date', 'till_date' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { - $checked->{$param} = $1; - } - } + for my $param ( 'from_date', 'till_date' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { + $checked->{$param} = $1; + } + } - if ( ( defined $params->{year} ) && ( $params->{year} =~ /^\d\d\d\d$/ ) ) { - $checked->{year} = $params->{year}; - } + if ( ( defined $params->{year} ) && ( $params->{year} =~ /^\d\d\d\d$/ ) ) { + $checked->{year} = $params->{year}; + } - # set defaults for project and studio id if not given - $checked->{s_id} = $params->{studio_id} || '-1' unless defined $params->{s_id}; - $checked->{p_id} = $params->{project_id} || '-1' unless defined $params->{p_id}; + # set defaults for project and studio id if not given + $checked->{s_id} = $params->{studio_id} || '-1' unless defined $params->{s_id}; + $checked->{p_id} = $params->{project_id} || '-1' unless defined $params->{p_id}; - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - $checked->{template} = template::check($config, $params->{template}, 'selectEvent' ); + $checked->{template} = template::check( $config, $params->{template}, 'selectEvent' ); - return $checked; + return $checked; } diff --git a/website/agenda/planung/selectSeries.cgi b/website/agenda/planung/selectSeries.cgi index 704813d..d75bce7 100755 --- a/website/agenda/planung/selectSeries.cgi +++ b/website/agenda/planung/selectSeries.cgi @@ -41,7 +41,7 @@ my $request = { url => $ENV{QUERY_STRING} || '', params => { original => $params, - checked => check_params($params), + checked => check_params($config, $params), }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -109,6 +109,7 @@ sub show_series { } sub check_params { + my $config = shift; my $params = shift; my $checked = {}; diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 5f749eb..7064986 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -38,12 +38,12 @@ return if ( ( !defined $user ) || ( $user eq '' ) ); #print STDERR $params->{project_id}."\n"; my $user_presets = uac::get_user_presets( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - user => $user - } + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + user => $user + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -53,20 +53,20 @@ $params->{project_id} = $user_presets->{project_id} #print STDERR $params->{project_id}."\n"; my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; #process header unless ( params::isJson() ) { - my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); - $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process($config, 'print', template::check($config, 'default.html'), $headerParams ); + my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); + $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); + template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); } return unless uac::check( $config, $params, $user_presets ) == 1; @@ -79,23 +79,23 @@ print q{ # if ( defined $params->{action} ) { - save_schedule( $config, $request ) if ( $params->{action} eq 'save_schedule' ); - delete_schedule( $config, $request ) if ( $params->{action} eq 'delete_schedule' ); - add_user( $config, $request ) if ( $params->{action} eq 'add_user' ); - remove_user( $config, $request ) if ( $params->{action} eq 'remove_user' ); - save_series( $config, $request ) if ( $params->{action} eq 'save' ); - save_series( $config, $request ) if ( $params->{action} eq 'create' ); - delete_series( $config, $request ) if ( $params->{action} eq 'delete' ); + save_schedule( $config, $request ) if ( $params->{action} eq 'save_schedule' ); + delete_schedule( $config, $request ) if ( $params->{action} eq 'delete_schedule' ); + add_user( $config, $request ) if ( $params->{action} eq 'add_user' ); + remove_user( $config, $request ) if ( $params->{action} eq 'remove_user' ); + save_series( $config, $request ) if ( $params->{action} eq 'save' ); + save_series( $config, $request ) if ( $params->{action} eq 'create' ); + delete_series( $config, $request ) if ( $params->{action} eq 'delete' ); - # scan_events ($config, $request) if ($params->{action} eq 'scan_events'); - assign_event( $config, $request ) if ( $params->{action} eq 'assign_event' ); - unassign_event( $config, $request ) if ( $params->{action} eq 'unassign_event' ); - if ( $params->{action} eq 'reassign_event' ) { - my $result = reassign_event( $config, $request ); - return if defined $result; - } + # scan_events ($config, $request) if ($params->{action} eq 'scan_events'); + assign_event( $config, $request ) if ( $params->{action} eq 'assign_event' ); + unassign_event( $config, $request ) if ( $params->{action} eq 'unassign_event' ); + if ( $params->{action} eq 'reassign_event' ) { + my $result = reassign_event( $config, $request ); + return if defined $result; + } - # save_scan ($config, $request) if ($params->{action} eq 'save_scan'); + # save_scan ($config, $request) if ($params->{action} eq 'save_scan'); } $config->{access}->{write} = 0; @@ -103,426 +103,426 @@ $config->{access}->{write} = 0; #print STDERR "show_series\n"; if ( defined $params->{series_id} ) { - print q{} unless params::isJson(); - show_series( $config, $request ); + print q{} unless params::isJson(); + show_series( $config, $request ); } else { - print q{ + print q{ } unless params::isJson(); - list_series( $config, $request ); + list_series( $config, $request ); } return; #insert or update a schedule and update all schedule dates sub save_schedule { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{update_schedule} == 1 ) { - uac::permissions_denied('update_schedule'); - return; - } + my $permissions = $request->{permissions}; + unless ( $permissions->{update_schedule} == 1 ) { + uac::permissions_denied('update_schedule'); + return; + } - #print Dumper($params); - for my $attr ( 'project_id', 'studio_id', 'series_id', 'start' ) { - unless ( defined $params->{$attr} ) { - uac::print_error( $attr . ' not given!' ); - return; - } - } + #print Dumper($params); + for my $attr ( 'project_id', 'studio_id', 'series_id', 'start' ) { + unless ( defined $params->{$attr} ) { + uac::print_error( $attr . ' not given!' ); + return; + } + } - my $entry = {}; - for my $attr ( - 'project_id', 'studio_id', 'series_id', 'start', 'duration', 'exclude', 'period_type', 'end', - 'frequency', 'weekday', 'week_of_month', 'month', 'nextDay' - ) - { - $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); - } + my $entry = {}; + for my $attr ( + 'project_id', 'studio_id', 'series_id', 'start', 'duration', 'exclude', 'period_type', 'end', + 'frequency', 'weekday', 'week_of_month', 'month', 'nextDay' + ) + { + $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); + } - #print STDERR Dumper($entry); - unless ( project::is_series_assigned( $config, $entry ) == 1 ) { - uac::print_error('series is not assigned to project!'); - return undef; - } + #print STDERR Dumper($entry); + unless ( project::is_series_assigned( $config, $entry ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } - my $found = 0; - for my $type ( 'single', 'days', 'week_of_month' ) { - $found = 1 if ( $entry->{period_type} eq $type ); - } - if ( $found == 0 ) { - uac::print_error('no period type selected!'); - return; - } + my $found = 0; + for my $type ( 'single', 'days', 'week_of_month' ) { + $found = 1 if ( $entry->{period_type} eq $type ); + } + if ( $found == 0 ) { + uac::print_error('no period type selected!'); + return; + } - $entry->{nextDay} = 0 unless defined $entry->{nextDay}; - $entry->{exclude} = 0 if $entry->{exclude} ne '1'; - $entry->{nextDay} = 0 if $entry->{nextDay} ne '1'; + $entry->{nextDay} = 0 unless defined $entry->{nextDay}; + $entry->{exclude} = 0 if $entry->{exclude} ne '1'; + $entry->{nextDay} = 0 if $entry->{nextDay} ne '1'; - if ( ( $entry->{end} ne '' ) && ( $entry->{end} le $entry->{start} ) ) { - uac::print_error('start date should be before end date!'); - return; - } + if ( ( $entry->{end} ne '' ) && ( $entry->{end} le $entry->{start} ) ) { + uac::print_error('start date should be before end date!'); + return; + } - #TODO: check if schedule is in studio_timeslots + #TODO: check if schedule is in studio_timeslots - #on adding a single exclude schedule, remove any existing single schedules with same date - if ( ( $entry->{period_type} eq 'single' ) && ( $entry->{exclude} eq '1' ) ) { - unless ( $permissions->{delete_schedule} == 1 ) { - uac::permissions_denied('delete_schedule'); - return; - } + #on adding a single exclude schedule, remove any existing single schedules with same date + if ( ( $entry->{period_type} eq 'single' ) && ( $entry->{exclude} eq '1' ) ) { + unless ( $permissions->{delete_schedule} == 1 ) { + uac::permissions_denied('delete_schedule'); + return; + } - #get single schedules - my $schedules = series_schedule::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - start => $entry->{start}, - period_type => 'single', - exclude => 0 - } - ); - if ( scalar(@$schedules) > 0 ) { - $config->{access}->{write} = 1; - for my $schedule (@$schedules) { - series_schedule::delete( $config, $schedule ); - } - my $updates = series_dates::update( $config, $entry ); - uac::print_info("single schedule deleted. $updates dates scheduled"); - $config->{access}->{write} = 0; - return; - } - } + #get single schedules + my $schedules = series_schedule::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + start => $entry->{start}, + period_type => 'single', + exclude => 0 + } + ); + if ( scalar(@$schedules) > 0 ) { + $config->{access}->{write} = 1; + for my $schedule (@$schedules) { + series_schedule::delete( $config, $schedule ); + } + my $updates = series_dates::update( $config, $entry ); + uac::print_info("single schedule deleted. $updates dates scheduled"); + $config->{access}->{write} = 0; + return; + } + } - $config->{access}->{write} = 1; - if ( defined $params->{schedule_id} ) { - $entry->{schedule_id} = $params->{schedule_id}; - series_schedule::update( $config, $entry ); + $config->{access}->{write} = 1; + if ( defined $params->{schedule_id} ) { + $entry->{schedule_id} = $params->{schedule_id}; + series_schedule::update( $config, $entry ); - #timeslots are checked inside - my $updates = series_dates::update( $config, $entry ); - uac::print_info("schedule saved. $updates dates scheduled"); - } else { - series_schedule::insert( $config, $entry ); + #timeslots are checked inside + my $updates = series_dates::update( $config, $entry ); + uac::print_info("schedule saved. $updates dates scheduled"); + } else { + series_schedule::insert( $config, $entry ); - #timeslots are checked inside - my $updates = series_dates::update( $config, $entry ); - uac::print_info("schedule added. $updates dates added"); - } - $config->{access}->{write} = 0; + #timeslots are checked inside + my $updates = series_dates::update( $config, $entry ); + uac::print_info("schedule added. $updates dates added"); + } + $config->{access}->{write} = 0; } sub delete_schedule { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{delete_schedule} == 1 ) { - uac::permissions_denied('delete_schedule'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{delete_schedule} == 1 ) { + uac::permissions_denied('delete_schedule'); + return; + } - my $entry = {}; - for my $attr ( 'project_id', 'studio_id', 'series_id', 'schedule_id' ) { - if ( defined $params->{$attr} ) { - $entry->{$attr} = $params->{$attr}; - } else { - uac::print_error( $attr . ' not given!' ); - return; - } - } + my $entry = {}; + for my $attr ( 'project_id', 'studio_id', 'series_id', 'schedule_id' ) { + if ( defined $params->{$attr} ) { + $entry->{$attr} = $params->{$attr}; + } else { + uac::print_error( $attr . ' not given!' ); + return; + } + } - unless ( project::is_series_assigned( $config, $entry ) == 1 ) { - uac::print_error('series is not assigned to project!'); - return undef; - } + unless ( project::is_series_assigned( $config, $entry ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } - $config->{access}->{write} = 1; - $entry->{schedule_id} = $params->{schedule_id}; - series_schedule::delete( $config, $entry ); - series_dates::update( $config, $entry ); - uac::print_info("schedule deleted"); + $config->{access}->{write} = 1; + $entry->{schedule_id} = $params->{schedule_id}; + series_schedule::delete( $config, $entry ); + series_dates::update( $config, $entry ); + uac::print_info("schedule deleted"); } #todo: check if assigned to studio sub delete_series { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{delete_series} == 1 ) { - uac::permissions_denied('delete_series'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{delete_series} == 1 ) { + uac::permissions_denied('delete_series'); + return; + } - my $entry = {}; - for my $attr ( 'project_id', 'studio_id', 'series_id' ) { - if ( defined $params->{$attr} ) { - $entry->{$attr} = $params->{$attr}; - } else { - uac::print_error( $attr . ' not given!' ); - return; - } - } + my $entry = {}; + for my $attr ( 'project_id', 'studio_id', 'series_id' ) { + if ( defined $params->{$attr} ) { + $entry->{$attr} = $params->{$attr}; + } else { + uac::print_error( $attr . ' not given!' ); + return; + } + } - unless ( project::is_series_assigned( $config, $entry ) == 1 ) { - uac::print_error('series is not assigned to project!'); - return undef; - } + unless ( project::is_series_assigned( $config, $entry ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; - my $series_id = $entry->{series_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $series_id = $entry->{series_id}; - #print Dumper($entry); - $config->{access}->{write} = 1; - if ( $entry->{series_id} ne '' ) { - my $result = series::delete( $config, $entry ); + #print Dumper($entry); + $config->{access}->{write} = 1; + if ( $entry->{series_id} ne '' ) { + my $result = series::delete( $config, $entry ); - user_stats::increase( - $config, - 'delete_series', - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - user => $params->{presets}->{user} - } - ); - $config->{access}->{write} = 0; - unless ( $result == 1 ) { - uac::print_error('could not delete series'); - return; - } - } - $config->{access}->{write} = 0; - uac::print_info("series deleted"); + user_stats::increase( + $config, + 'delete_series', + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + user => $params->{presets}->{user} + } + ); + $config->{access}->{write} = 0; + unless ( $result == 1 ) { + uac::print_error('could not delete series'); + return; + } + } + $config->{access}->{write} = 0; + uac::print_info("series deleted"); } sub save_series { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - my $columns = series::get_columns($config); + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + my $columns = series::get_columns($config); - for my $attr ( 'project_id', 'studio_id' ) { - unless ( defined $params->{$attr} ) { - uac::print_error( $attr . ' not given!' ); - return; - } - } - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + for my $attr ( 'project_id', 'studio_id' ) { + unless ( defined $params->{$attr} ) { + uac::print_error( $attr . ' not given!' ); + return; + } + } + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - # fill series entry - my $entry = {}; - for my $param ( keys %$params ) { - if ( defined $columns->{$param} ) { - $entry->{$param} = $params->{$param} || ''; - } - } - $entry->{project_id} = $params->{project_id}; - $entry->{studio_id} = $params->{studio_id}; - $entry->{series_id} = $params->{series_id} || ''; - $entry->{live} = $params->{live} || 0; - $entry->{count_episodes} = $params->{count_episodes} || 0; + # fill series entry + my $entry = {}; + for my $param ( keys %$params ) { + if ( defined $columns->{$param} ) { + $entry->{$param} = $params->{$param} || ''; + } + } + $entry->{project_id} = $params->{project_id}; + $entry->{studio_id} = $params->{studio_id}; + $entry->{series_id} = $params->{series_id} || ''; + $entry->{live} = $params->{live} || 0; + $entry->{count_episodes} = $params->{count_episodes} || 0; - #$entry->{html_content} = decode( 'utf-8', $entry->{content} ); - $entry->{html_content} = markup::creole_to_html( $entry->{content} ); - $entry->{html_content} =~ s/([^\>])\n+([^\<])/$1$2/g; + #$entry->{html_content} = Encode::decode( 'utf-8', $entry->{content} ); + $entry->{html_content} = markup::creole_to_html( $entry->{content} ); + $entry->{html_content} =~ s/([^\>])\n+([^\<])/$1$2/g; - $entry->{modified_at} = time::time_to_datetime( time() ); - $entry->{modified_by} = $request->{user}; + $entry->{modified_at} = time::time_to_datetime( time() ); + $entry->{modified_by} = $request->{user}; - if ( ( $params->{title} eq '' ) && ( $params->{series_name} eq '' ) ) { - uac::print_error("please set at least series name!"); - return; - } + if ( ( $params->{title} eq '' ) && ( $params->{series_name} eq '' ) ) { + uac::print_error("please set at least series name!"); + return; + } - #print STDERR Dumper($entry); - my $series_ids = series::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_name => $entry->{series_name}, - title => $entry->{title} - } - ); + #print STDERR Dumper($entry); + my $series_ids = series::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_name => $entry->{series_name}, + title => $entry->{title} + } + ); - if ( $params->{action} eq 'create' ) { + if ( $params->{action} eq 'create' ) { - unless ( $permissions->{create_series} == 1 ) { - uac::permissions_denied('create_series'); - return; - } - if ( project::is_series_assigned( $config, $entry ) == 1 ) { - uac::print_error('series is already assigned to project!'); - return undef; - } - if ( scalar(@$series_ids) > 0 ) { - uac::permissions_denied('insert, entry already exists'); - return; - } + unless ( $permissions->{create_series} == 1 ) { + uac::permissions_denied('create_series'); + return; + } + if ( project::is_series_assigned( $config, $entry ) == 1 ) { + uac::print_error('series is already assigned to project!'); + return undef; + } + if ( scalar(@$series_ids) > 0 ) { + uac::permissions_denied('insert, entry already exists'); + return; + } - $config->{access}->{write} = 1; - my $series_id = series::insert( $config, $entry ); + $config->{access}->{write} = 1; + my $series_id = series::insert( $config, $entry ); - user_stats::increase( - $config, - 'create_series', - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - user => $params->{presets}->{user} - } - ); + user_stats::increase( + $config, + 'create_series', + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + user => $params->{presets}->{user} + } + ); - $config->{access}->{write} = 0; + $config->{access}->{write} = 0; - #print STDERR Dumper($entry); - unless ( defined $series_id ) { - uac::print_error('could not insert series'); - return; - } - } - if ( $params->{action} eq 'save' ) { + #print STDERR Dumper($entry); + unless ( defined $series_id ) { + uac::print_error('could not insert series'); + return; + } + } + if ( $params->{action} eq 'save' ) { - unless ( $permissions->{update_series} == 1 ) { - uac::permissions_denied('update_series'); - return; - } - unless ( ( defined $params->{series_id} ) && ( $params->{series_id} ne '' ) ) { - uac::permissions_denied('update. missing parameter series_id'); - return; - } - unless ( project::is_series_assigned( $config, $entry ) == 1 ) { - uac::print_error('series is not assigned to project!'); - return undef; - } - if ( scalar(@$series_ids) > 1 ) { - uac::permissions_denied('update due to entry already exists'); - return; - } - if ( ( scalar(@$series_ids) == 1 ) && ( $series_ids->[0]->{series_id} ne $params->{series_id} ) ) { - uac::permissions_denied('update due to series id does not match to existing entry'); - return; - } + unless ( $permissions->{update_series} == 1 ) { + uac::permissions_denied('update_series'); + return; + } + unless ( ( defined $params->{series_id} ) && ( $params->{series_id} ne '' ) ) { + uac::permissions_denied('update. missing parameter series_id'); + return; + } + unless ( project::is_series_assigned( $config, $entry ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } + if ( scalar(@$series_ids) > 1 ) { + uac::permissions_denied('update due to entry already exists'); + return; + } + if ( ( scalar(@$series_ids) == 1 ) && ( $series_ids->[0]->{series_id} ne $params->{series_id} ) ) { + uac::permissions_denied('update due to series id does not match to existing entry'); + return; + } - #print STDERR Dumper($entry); - $config->{access}->{write} = 1; - my $result = series::update( $config, $entry ); + #print STDERR Dumper($entry); + $config->{access}->{write} = 1; + my $result = series::update( $config, $entry ); - series_events::update_series_images( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - series_image => $params->{image} - } - ); + series_events::update_series_images( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + series_image => $params->{image} + } + ); - user_stats::increase( - $config, - 'update_series', - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - user => $params->{presets}->{user} - } - ); + user_stats::increase( + $config, + 'update_series', + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + user => $params->{presets}->{user} + } + ); - $config->{access}->{write} = 0; - unless ( defined $result ) { - uac::print_error('could not update series'); - return; - } + $config->{access}->{write} = 0; + unless ( defined $result ) { + uac::print_error('could not update series'); + return; + } - } - uac::print_info("series saved"); + } + uac::print_info("series saved"); } #save series name and title of events to be assigned to this series #deprecated sub save_scan { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{scan_series_events} == 1 ) { - uac::permissions_denied('scan_series_events'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{scan_series_events} == 1 ) { + uac::permissions_denied('scan_series_events'); + return; + } - unless ( $permissions->{update_series} == 1 ) { - uac::permissions_denied('update_series'); - return; - } - for my $param ( 'project_id', 'studio_id', 'series_id' ) { - unless ( ( defined $params->{$param} ) && ( $params->{$param} ne '' ) ) { - uac::permissions_denied("save. missing parameter $param"); - return; - } - } - unless ( ( $params->{assign_event_series_name} =~ /\S/ ) - || ( $params->{assign_event_title} =~ /\S/ ) ) - { - uac::permissions_denied("save. one of series name or title must be set"); - return; - } - my $entry = { - studio_id => $params->{studio_id}, - series_id => $params->{series_id}, - assign_event_series_name => $params->{assign_event_series_name}, - assign_event_title => $params->{assign_event_title}, - }; + unless ( $permissions->{update_series} == 1 ) { + uac::permissions_denied('update_series'); + return; + } + for my $param ( 'project_id', 'studio_id', 'series_id' ) { + unless ( ( defined $params->{$param} ) && ( $params->{$param} ne '' ) ) { + uac::permissions_denied("save. missing parameter $param"); + return; + } + } + unless ( ( $params->{assign_event_series_name} =~ /\S/ ) + || ( $params->{assign_event_title} =~ /\S/ ) ) + { + uac::permissions_denied("save. one of series name or title must be set"); + return; + } + my $entry = { + studio_id => $params->{studio_id}, + series_id => $params->{series_id}, + assign_event_series_name => $params->{assign_event_series_name}, + assign_event_title => $params->{assign_event_title}, + }; - #print STDERR '
      '.Dumper($entry)."\n"; - $config->{access}->{write} = 1; - series::update( $config, $entry ); - $config->{access}->{write} = 0; - uac::print_info("changes saved"); + #print STDERR '
      '.Dumper($entry)."\n"; + $config->{access}->{write} = 1; + series::update( $config, $entry ); + $config->{access}->{write} = 0; + uac::print_info("changes saved"); } #deprecated sub scan_events { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{scan_series_events} == 1 ) { - uac::permissions_denied('scan_series_events'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{scan_series_events} == 1 ) { + uac::permissions_denied('scan_series_events'); + return; + } - $config->{access}->{write} = 1; - my $series = series::get( - $config, - { - 'project_id' => $params->{project_id}, - 'studio_id' => $params->{studio_id} - } - ); + $config->{access}->{write} = 1; + my $series = series::get( + $config, + { + 'project_id' => $params->{project_id}, + 'studio_id' => $params->{studio_id} + } + ); - #print STDERR Dumper($series); + #print STDERR Dumper($series); - $params->{scan_results} = q{ + $params->{scan_results} = q{ @@ -531,777 +531,778 @@ sub scan_events { }; - #list of all studios by id - my $studios = studios::get( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } - ); - my $studio_by_id = {}; - for my $studio (@$studios) { - $studio_by_id->{ $studio->{id} } = $studio; - } - my $studio = $studio_by_id->{ $params->{studio_id} }; - my $location = $studio->{location}; + #list of all studios by id + my $studios = studios::get( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } + ); + my $studio_by_id = {}; + for my $studio (@$studios) { + $studio_by_id->{ $studio->{id} } = $studio; + } + my $studio = $studio_by_id->{ $params->{studio_id} }; + my $location = $studio->{location}; - for my $serie (@$series) { + for my $serie (@$series) { - #get matching events by series_name and title - my $series_name = $serie->{assign_event_series_name}; - my $title = $serie->{assign_event_title}; - my $events = series::search_events( - $config, $request, - { - series_name => $series_name, - location => $location, - title => $title, - get => 'no_content', - archive => 'all', - limit => 1000, - } - ); - my $event_ids = []; - @$event_ids = map { $_->{event_id} } @$events; + #get matching events by series_name and title + my $series_name = $serie->{assign_event_series_name}; + my $title = $serie->{assign_event_title}; + my $events = series::search_events( + $config, $request, + { + series_name => $series_name, + location => $location, + title => $title, + get => 'no_content', + archive => 'all', + limit => 1000, + } + ); + my $event_ids = []; + @$event_ids = map { $_->{event_id} } @$events; - $params->{scan_results} .= - '' . '' . '' . '' . '' . "\n"; + $params->{scan_results} .= + '' . '' . '' . '' . '' . "\n"; - #if($serie->{series_id}==66){ - #print STDERR $serie->{series_name}.' - '.$serie->{title}.' '.Dumper($event_ids); - series::set_event_ids( $config, $params->{project_id}, $params->{studio_id}, $serie, $event_ids ); + #if($serie->{series_id}==66){ + #print STDERR $serie->{series_name}.' - '.$serie->{title}.' '.Dumper($event_ids); + series::set_event_ids( $config, $params->{project_id}, $params->{studio_id}, $serie, $event_ids ); - #} - } - $params->{scan_results} .= "
      event
      ' - . $serie->{series_name} . ' - ' - . $serie->{title} . '' - . $series_name . ' - ' - . $title . '' - . scalar(@$event_ids) . '
      ' + . $serie->{series_name} . ' - ' + . $serie->{title} . '' + . $series_name . ' - ' + . $title . '' + . scalar(@$event_ids) . '

      \n"; - $config->{access}->{write} = 0; - uac::print_info("events successfully assigned to all series"); + #} + } + $params->{scan_results} .= "
      \n"; + $config->{access}->{write} = 0; + uac::print_info("events successfully assigned to all series"); } sub assign_event { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - print STDERR "assign event\n"; + print STDERR "assign event\n"; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return undef; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return undef; + } - my $entry = {}; - for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { - if ( defined $params->{$attr} ) { - $entry->{$attr} = $params->{$attr}; - } else { - uac::print_error( $attr . ' not given!' ); - return undef; - } - } + my $entry = {}; + for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { + if ( defined $params->{$attr} ) { + $entry->{$attr} = $params->{$attr}; + } else { + uac::print_error( $attr . ' not given!' ); + return undef; + } + } - #print STDERR "found all parameters:\n".Dumper($entry); + #print STDERR "found all parameters:\n".Dumper($entry); - # check if event exists, - # this has to use events::get, since it cannot check for series_id - # TODO: check location of studio_id - my $request2 = { - params => { - checked => events::check_params( - $config, - { - event_id => $entry->{event_id}, - template => 'no', - limit => 1, - archive => 'all', + # check if event exists, + # this has to use events::get, since it cannot check for series_id + # TODO: check location of studio_id + my $request2 = { + params => { + checked => events::check_params( + $config, + { + event_id => $entry->{event_id}, + template => 'no', + limit => 1, + archive => 'all', - # no_exclude => 1 - } - ) - }, - config => $request->{config}, - permissions => $request->{permissions} - }; - $request2->{params}->{checked}->{published} = 'all'; + # no_exclude => 1 + } + ) + }, + config => $request->{config}, + permissions => $request->{permissions} + }; + $request2->{params}->{checked}->{published} = 'all'; - my $events = events::get( $config, $request2 ); + my $events = events::get( $config, $request2 ); - #print STDERR "found events:".Dumper($events); - if ( scalar(@$events) != 1 ) { - uac::print_error("no event found for event_id=$entry->{event_id}, archive=all"); - return undef; - } + #print STDERR "found events:".Dumper($events); + if ( scalar(@$events) != 1 ) { + uac::print_error("no event found for event_id=$entry->{event_id}, archive=all"); + return undef; + } - my $event = $events->[0]; + my $event = $events->[0]; - #is series assigned to studio - my $result = series_events::check_permission( - $request, - { - permission => 'assign_series_events', - check_for => [ 'studio', 'user', 'series', 'studio_timeslots' ], - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - event_id => $entry->{event_id}, - start => $event->{start_datetime}, - end => $event->{end_datetime} - } - ); - unless ( $result eq '1' ) { - uac::print_error($result); - return undef; - } + #is series assigned to studio + my $result = series_events::check_permission( + $request, + { + permission => 'assign_series_events', + check_for => [ 'studio', 'user', 'series', 'studio_timeslots' ], + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + event_id => $entry->{event_id}, + start => $event->{start_datetime}, + end => $event->{end_datetime} + } + ); + unless ( $result eq '1' ) { + uac::print_error($result); + return undef; + } - $config->{access}->{write} = 1; - $result = series::assign_event( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - event_id => $entry->{event_id}, - manual => 1 - } - ); - unless ( defined $result ) { - uac::print_error("error on assigning event to series"); - return undef; - } + $config->{access}->{write} = 1; + $result = series::assign_event( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + event_id => $entry->{event_id}, + manual => 1 + } + ); + unless ( defined $result ) { + uac::print_error("error on assigning event to series"); + return undef; + } - my $series = series::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - } - ); - if ( @$series == 1 ) { - my $serie = $series->[0]; + my $series = series::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + } + ); + if ( @$series == 1 ) { + my $serie = $series->[0]; - #set event's series name to value from series - my $series_name = $serie->{series_name} || ''; - if ( $series_name ne '' ) { + #set event's series name to value from series + my $series_name = $serie->{series_name} || ''; + if ( $series_name ne '' ) { - # prepend series_name from event to title on adding to single_events series - my $title = $event->{title}; - if ( $serie->{has_single_events} eq '1' ) { - $title = $event->{series_name} . ' - ' . $title if $event->{series_name} ne ''; - } + # prepend series_name from event to title on adding to single_events series + my $title = $event->{title}; + if ( $serie->{has_single_events} eq '1' ) { + $title = $event->{series_name} . ' - ' . $title if $event->{series_name} ne ''; + } - # save event content - series_events::save_content( - $config, - { - studio_id => $entry->{studio_id}, - id => $entry->{event_id}, #TODO: id=> event_id - series_name => $series_name, - title => $title, - episode => $event->{episode}, - rerun => $event->{rerun}, - } - ); + # save event content + series_events::save_content( + $config, + { + studio_id => $entry->{studio_id}, + id => $entry->{event_id}, #TODO: id=> event_id + series_name => $series_name, + title => $title, + episode => $event->{episode}, + rerun => $event->{rerun}, + } + ); - # add to history - $event->{project_id} = $entry->{project_id}; - $event->{studio_id} = $entry->{studio_id}; - $event->{series_id} = $entry->{series_id}; - $event->{event_id} = $entry->{event_id}; - $event->{series_name} = $series_name; - $event->{title} = $title; - $event->{user} = $params->{presets}->{user}; - event_history::insert( $config, $event ); + # add to history + $event->{project_id} = $entry->{project_id}; + $event->{studio_id} = $entry->{studio_id}; + $event->{series_id} = $entry->{series_id}; + $event->{event_id} = $entry->{event_id}; + $event->{series_name} = $series_name; + $event->{title} = $title; + $event->{user} = $params->{presets}->{user}; + event_history::insert( $config, $event ); - # print STDERR "ok\n"; - } - } else { - print STDERR "no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; - } + # print STDERR "ok\n"; + } + } else { + print STDERR "no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; + } - $config->{access}->{write} = 0; - uac::print_info("event successfully assigned to series"); - $params->{getBack} = 1; - return 1; + $config->{access}->{write} = 0; + uac::print_info("event successfully assigned to series"); + $params->{getBack} = 1; + return 1; } sub unassign_event { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return undef; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return undef; + } - my $entry = {}; - for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { - if ( defined $params->{$attr} ) { - $entry->{$attr} = $params->{$attr}; - } else { - uac::print_error( $attr . ' not given!' ); - return undef; - } - } + my $entry = {}; + for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { + if ( defined $params->{$attr} ) { + $entry->{$attr} = $params->{$attr}; + } else { + uac::print_error( $attr . ' not given!' ); + return undef; + } + } - #check if event exists - my $event = series::get_event( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - event_id => $entry->{event_id}, - } - ); - unless ( defined $event ) { - uac::print_error( + #check if event exists + my $event = series::get_event( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + event_id => $entry->{event_id}, + } + ); + unless ( defined $event ) { + uac::print_error( "event $entry->{event_id} not found for project_id=$entry->{project_id}, studio_id=$entry->{studio_id}, series_id=$entry->{series_id}" - ); - return undef; - } + ); + return undef; + } - #print Dumper($event); + #print Dumper($event); - #is series assigned to studio - my $result = series_events::check_permission( - $request, - { - permission => 'assign_series_events', - check_for => [ 'studio', 'user', 'series', 'studio_timeslots' ], - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - event_id => $entry->{event_id}, - start => $event->{start_datetime}, - end => $event->{end_datetime} - } - ); - unless ( $result eq '1' ) { - uac::print_error($result); - return undef; - } + #is series assigned to studio + my $result = series_events::check_permission( + $request, + { + permission => 'assign_series_events', + check_for => [ 'studio', 'user', 'series', 'studio_timeslots' ], + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + event_id => $entry->{event_id}, + start => $event->{start_datetime}, + end => $event->{end_datetime} + } + ); + unless ( $result eq '1' ) { + uac::print_error($result); + return undef; + } - $config->{access}->{write} = 1; - $result = series::unassign_event( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - series_id => $entry->{series_id}, - event_id => $entry->{event_id}, - } - ); - $config->{access}->{write} = 0; - unless ( defined $result ) { - uac::print_error("error on unassigning event from series"); - return undef; - } - uac::print_info("event successfully unassigned from series"); - $params->{getBack} = 1; - return 1; + $config->{access}->{write} = 1; + $result = series::unassign_event( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + series_id => $entry->{series_id}, + event_id => $entry->{event_id}, + } + ); + $config->{access}->{write} = 0; + unless ( defined $result ) { + uac::print_error("error on unassigning event from series"); + return undef; + } + uac::print_info("event successfully unassigned from series"); + $params->{getBack} = 1; + return 1; } # assign event to new series id and remove from old series id sub reassign_event { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return undef; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return undef; + } - for my $attr ( 'project_id', 'studio_id', 'series_id', 'new_series_id', 'event_id' ) { - unless ( defined $params->{$attr} ) { - uac::print_error( $attr . ' not given!' ); - return undef; - } - } + for my $attr ( 'project_id', 'studio_id', 'series_id', 'new_series_id', 'event_id' ) { + unless ( defined $params->{$attr} ) { + uac::print_error( $attr . ' not given!' ); + return undef; + } + } - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; - my $event_id = $params->{event_id}; - my $series_id = $params->{series_id}; - my $new_series_id = $params->{new_series_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $event_id = $params->{event_id}; + my $series_id = $params->{series_id}; + my $new_series_id = $params->{new_series_id}; - $request->{params}->{checked}->{series_id} = $new_series_id; - my $result = assign_event( $config, $request ); - unless ( defined $result ) { - uac::print_error("could not assign event"); - return undef; - } + $request->{params}->{checked}->{series_id} = $new_series_id; + my $result = assign_event( $config, $request ); + unless ( defined $result ) { + uac::print_error("could not assign event"); + return undef; + } - $request->{params}->{checked}->{series_id} = $series_id; - $result = unassign_event( $config, $request ); - unless ( defined $result ) { - uac::print_error("could not unassign event"); - return undef; - } + $request->{params}->{checked}->{series_id} = $series_id; + $result = unassign_event( $config, $request ); + unless ( defined $result ) { + uac::print_error("could not unassign event"); + return undef; + } - #print STDERR " event\n"; - my $url = - 'event.cgi?project_id=' . $project_id . '&studio_id=' . $studio_id . '&series_id=' . $new_series_id . '&event_id=' . $event_id; - print qq{} . "\n"; - delete $params->{getBack}; - return 1; + #print STDERR " event\n"; + my $url = + 'event.cgi?project_id=' . $project_id . '&studio_id=' . $studio_id . '&series_id=' . $new_series_id . '&event_id=' . $event_id; + print qq{} . "\n"; + delete $params->{getBack}; + return 1; } sub add_user { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_member} == 1 ) { - uac::permissions_denied('assign_series_member'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_member} == 1 ) { + uac::permissions_denied('assign_series_member'); + return; + } - for my $param ( 'project_id', 'studio_id', 'series_id', 'user_id' ) { - if ( $params->{$param} eq '' ) { - uac::print_error("missing $param"); - return; - } - } + for my $param ( 'project_id', 'studio_id', 'series_id', 'user_id' ) { + if ( $params->{$param} eq '' ) { + uac::print_error("missing $param"); + return; + } + } - unless ( project::is_series_assigned( $config, $params ) == 1 ) { - uac::print_error('series is not assigned to project!'); - return undef; - } + unless ( project::is_series_assigned( $config, $params ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } - $config->{access}->{write} = 1; - series::add_user( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - series_id => $params->{series_id}, - user_id => $params->{user_id}, - user => $request->{user} - } - ); + $config->{access}->{write} = 1; + series::add_user( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + series_id => $params->{series_id}, + user_id => $params->{user_id}, + user => $request->{user} + } + ); - uac::print_info("user assigned to series"); + uac::print_info("user assigned to series"); } sub remove_user { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{remove_series_member} == 1 ) { - uac::permissions_denied('remove_series_member'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{remove_series_member} == 1 ) { + uac::permissions_denied('remove_series_member'); + return; + } - for my $param ( 'project_id', 'studio_id', 'series_id', 'user_id' ) { - if ( $params->{$param} eq '' ) { - uac::print_error("missing $param"); - return; - } - } + for my $param ( 'project_id', 'studio_id', 'series_id', 'user_id' ) { + if ( $params->{$param} eq '' ) { + uac::print_error("missing $param"); + return; + } + } - unless ( project::is_series_assigned( $config, $params ) == 1 ) { - uac::print_error('series is not assigned to project!'); - return undef; - } + unless ( project::is_series_assigned( $config, $params ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } - $config->{access}->{write} = 1; - series::remove_user( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - series_id => $params->{series_id}, - user_id => $params->{user_id} - } - ); - uac::print_info("user removed from series"); + $config->{access}->{write} = 1; + series::remove_user( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + series_id => $params->{series_id}, + user_id => $params->{user_id} + } + ); + uac::print_info("user removed from series"); } sub list_series { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - $config->{access}->{write} = 0; + $config->{access}->{write} = 0; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_series} == 1 ) { - uac::permissions_denied('read_series'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_series} == 1 ) { + uac::permissions_denied('read_series'); + return; + } - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - my $studios = studios::get( - $config, - { - project_id => $project_id, - studio_id => $studio_id - } - ); + my $studios = studios::get( + $config, + { + project_id => $project_id, + studio_id => $studio_id + } + ); - my $studio_by_id = {}; - for my $studio (@$studios) { - $studio_by_id->{ $studio->{id} } = $studio; - } - my $studio = $studio_by_id->{$studio_id}; + my $studio_by_id = {}; + for my $studio (@$studios) { + $studio_by_id->{ $studio->{id} } = $studio; + } + my $studio = $studio_by_id->{$studio_id}; - my $series_conditions = { - project_id => $project_id, - studio_id => $studio_id - }; - my $series = series::get_event_age( $config, $series_conditions ); + my $series_conditions = { + project_id => $project_id, + studio_id => $studio_id + }; + my $series = series::get_event_age( $config, $series_conditions ); - my $newSeries = []; - my $oldSeries = []; - for my $serie ( sort { lc $a->{series_name} cmp lc $b->{series_name} } (@$series) ) { - if ( $serie->{days_over} > 30 ) { - push @$oldSeries, $serie; - } else { - push @$newSeries, $serie; - } - } + my $newSeries = []; + my $oldSeries = []; + for my $serie ( sort { lc $a->{series_name} cmp lc $b->{series_name} } (@$series) ) { + if ( $serie->{days_over} > 30 ) { + push @$oldSeries, $serie; + } else { + push @$newSeries, $serie; + } + } - $params->{newSeries} = $newSeries; - $params->{oldSeries} = $oldSeries; + $params->{newSeries} = $newSeries; + $params->{oldSeries} = $oldSeries; - $params->{image} = studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) - if ( ( !defined $params->{image} ) || ( $params->{image} eq '' ) ); - $params->{image} = project::getImageById( $config, { project_id => $project_id } ) - if ( ( !defined $params->{image} ) || ( $params->{image} eq '' ) ); + $params->{image} = studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) + if ( ( !defined $params->{image} ) || ( $params->{image} eq '' ) ); + $params->{image} = project::getImageById( $config, { project_id => $project_id } ) + if ( ( !defined $params->{image} ) || ( $params->{image} eq '' ) ); - #print STDERR Dumper $params->{image}; + #print STDERR Dumper $params->{image}; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); - template::process($config, 'print', $params->{template}, $params ); + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); + template::process( $config, 'print', $params->{template}, $params ); } sub show_series { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - $config->{access}->{write} = 0; + $config->{access}->{write} = 0; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_series} == 1 ) { - uac::permissions_denied('read_series'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_series} == 1 ) { + uac::permissions_denied('read_series'); + return; + } - for my $param ( 'project_id', 'studio_id', 'series_id' ) { - unless ( defined $params->{$param} ) { - uac::print_error("missing $param"); - return; - } - } + for my $param ( 'project_id', 'studio_id', 'series_id' ) { + unless ( defined $params->{$param} ) { + uac::print_error("missing $param"); + return; + } + } - unless ( project::is_series_assigned( $config, $params ) == 1 ) { - uac::print_error('series is not assigned to project!'); - return undef; - } + unless ( project::is_series_assigned( $config, $params ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } - #this will be updated later (especially allow_update_events) - for my $permission ( keys %{ $request->{permissions} } ) { - $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; - } + #this will be updated later (especially allow_update_events) + for my $permission ( keys %{ $request->{permissions} } ) { + $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; + } - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - #list of all studios by id - my $studios = studios::get( - $config, - { - project_id => $project_id, - studio_id => $studio_id - } - ); - my $studio_by_id = {}; - for my $studio (@$studios) { - $studio_by_id->{ $studio->{id} } = $studio; - } + #list of all studios by id + my $studios = studios::get( + $config, + { + project_id => $project_id, + studio_id => $studio_id + } + ); + my $studio_by_id = {}; + for my $studio (@$studios) { + $studio_by_id->{ $studio->{id} } = $studio; + } - #get series - my $series_conditions = { - project_id => $project_id, - studio_id => $studio_id, - series_id => $params->{series_id} - }; + #get series + my $series_conditions = { + project_id => $project_id, + studio_id => $studio_id, + series_id => $params->{series_id} + }; - my $series = series::get( $config, $series_conditions ); - if ( @$series > 1 ) { - uac::print_error( "too much series found for studio '" . $studio_by_id->{$studio_id}->{name} . "'" ); - return; - } + my $series = series::get( $config, $series_conditions ); + if ( @$series > 1 ) { + uac::print_error( "too much series found for studio '" . $studio_by_id->{$studio_id}->{name} . "'" ); + return; + } - if ( @$series == 0 ) { - uac::print_error( "selected series not assigned to studio '" . $studio_by_id->{$studio_id}->{name} . "'" ); - return; - } - my $serie = $series->[0]; + if ( @$series == 0 ) { + uac::print_error( "selected series not assigned to studio '" . $studio_by_id->{$studio_id}->{name} . "'" ); + return; + } + my $serie = $series->[0]; - #if ($serie->{has_single_events}==0){ - #delete $serie->{has_single_events}; - #$serie->{series_name}=''; - #} + #if ($serie->{has_single_events}==0){ + #delete $serie->{has_single_events}; + #$serie->{series_name}=''; + #} - #get all users currently assigned to the user - my $user_studios = uac::get_studios_by_user( $config, { project_id => $project_id, user => $request->{user} } ); + #get all users currently assigned to the user + my $user_studios = uac::get_studios_by_user( $config, { project_id => $project_id, user => $request->{user} } ); - my $studio_users = uac::get_users_by_studio( $config, { project_id => $project_id, studio_id => $studio_id } ); - for my $studio_user (@$studio_users) { - $studio_user->{user_id} = $studio_user->{id}; - } - my @users = @$studio_users; - @users = sort { $a->{full_name} cmp $b->{full_name} } @users; - $studio_users = \@users; + my $studio_users = uac::get_users_by_studio( $config, { project_id => $project_id, studio_id => $studio_id } ); + for my $studio_user (@$studio_users) { + $studio_user->{user_id} = $studio_user->{id}; + } + my @users = @$studio_users; + @users = sort { $a->{full_name} cmp $b->{full_name} } @users; + $studio_users = \@users; - #show events from last month until next 3 months - my $from = DateTime->now( time_zone => $config->{date}->{time_zone} )->subtract( months => 1 )->datetime(); - my $till = DateTime->now( time_zone => $config->{date}->{time_zone} )->add( months => 3 )->datetime(); + #show events from last month until next 3 months + my $from = DateTime->now( time_zone => $config->{date}->{time_zone} )->subtract( months => 1 )->datetime(); + my $till = DateTime->now( time_zone => $config->{date}->{time_zone} )->add( months => 3 )->datetime(); - #add name of current studio - my $studio = $studio_by_id->{ $serie->{studio_id} }; - $serie->{studio} = $studio->{name}; + #add name of current studio + my $studio = $studio_by_id->{ $serie->{studio_id} }; + $serie->{studio} = $studio->{name}; - my $location = $studio->{location}; + my $location = $studio->{location}; - # set default image from studio - $serie->{image} = studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) - if ( ( !defined $serie->{image} ) || ( $serie->{image} eq '' ) ); - $serie->{image} = project::getImageById( $config, { project_id => $project_id } ) - if ( ( !defined $serie->{image} ) || ( $serie->{image} eq '' ) ); + # set default image from studio + $serie->{image} = studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) + if ( ( !defined $serie->{image} ) || ( $serie->{image} eq '' ) ); + $serie->{image} = project::getImageById( $config, { project_id => $project_id } ) + if ( ( !defined $serie->{image} ) || ( $serie->{image} eq '' ) ); - #print STDERR Dumper $serie->{image}; + #print STDERR Dumper $serie->{image}; - #add users - $serie->{series_users} = series::get_users( - $config, - { - project_id => $project_id, - studio_id => $serie->{studio_id}, - series_id => $serie->{series_id} - } - ); - uac::print_warn("There is no user assigned, yet. Please assign a user!") if scalar @{ $serie->{series_users} } == 0; + #add users + $serie->{series_users} = series::get_users( + $config, + { + project_id => $project_id, + studio_id => $serie->{studio_id}, + series_id => $serie->{series_id} + } + ); + uac::print_warn("There is no user assigned, yet. Please assign a user!") if scalar @{ $serie->{series_users} } == 0; - #add events - $serie->{events} = series::get_events( - $config, - { - project_id => $project_id, - studio_id => $serie->{studio_id}, - series_id => $serie->{series_id}, - from_date => $from, - till_date => $till, - location => $location, - limit => 30, - archive => 'all', - published => 'all' - } - ); - @{ $serie->{events} } = reverse @{ $serie->{events} }; + #add events + $serie->{events} = series::get_events( + $config, + { + project_id => $project_id, + studio_id => $serie->{studio_id}, + series_id => $serie->{series_id}, + from_date => $from, + till_date => $till, + location => $location, + limit => 30, + archive => 'all', + published => 'all' + } + ); + @{ $serie->{events} } = reverse @{ $serie->{events} }; - my $allow_update_event = series_events::check_permission( - $request, - { - permission => 'update_event_of_series,update_event_of_others', - check_for => [ 'studio', 'user', 'series' ], - project_id => $project_id, - studio_id => $serie->{studio_id}, - series_id => $params->{series_id} - }, + my $allow_update_event = series_events::check_permission( + $request, + { + permission => 'update_event_of_series,update_event_of_others', + check_for => [ 'studio', 'user', 'series' ], + project_id => $project_id, + studio_id => $serie->{studio_id}, + series_id => $params->{series_id} + }, - ); + ); - $params->{allow}->{update_event} = 0; - $params->{allow}->{update_event} = 1 if ( $allow_update_event eq '1' ); + $params->{allow}->{update_event} = 0; + $params->{allow}->{update_event} = 1 if ( $allow_update_event eq '1' ); - $serie->{studio_users} = $studio_users; + $serie->{studio_users} = $studio_users; - $serie->{html_content} = markup::creole_to_html( $serie->{content} ); - $serie->{html_content} =~ s/([^\>])\n+([^\<])/$1$2/g; + $serie->{html_content} = markup::creole_to_html( $serie->{content} ); + $serie->{html_content} =~ s/([^\>])\n+([^\<])/$1$2/g; - for my $user ( @{ $serie->{series_users} } ) { - $user->{user_id} = $user->{id}; - } + for my $user ( @{ $serie->{series_users} } ) { + $user->{user_id} = $user->{id}; + } - #add schedules - my $schedules = series_schedule::get( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - series_id => $serie->{series_id} - } - ); + #add schedules + my $schedules = series_schedule::get( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $serie->{series_id} + } + ); - #remove seconds from dates - for my $schedule (@$schedules) { - $schedule->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $schedule->{start}; - $schedule->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $schedule->{end}; + #remove seconds from dates + for my $schedule (@$schedules) { + $schedule->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $schedule->{start}; + $schedule->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $schedule->{end}; - #detect schedule type - if ( $schedule->{period_type} eq '' ) { - $schedule->{period_type} = 'week_of_month'; - $schedule->{period_type} = 'days' unless ( $schedule->{week_of_month} =~ /\d/ ); - $schedule->{period_type} = 'single' unless ( $schedule->{end} =~ /\d/ ); - } - $schedule->{ 'period_type_' . $schedule->{period_type} } = 1; + #detect schedule type + if ( $schedule->{period_type} eq '' ) { + $schedule->{period_type} = 'week_of_month'; + $schedule->{period_type} = 'days' unless ( $schedule->{week_of_month} =~ /\d/ ); + $schedule->{period_type} = 'single' unless ( $schedule->{end} =~ /\d/ ); + } + $schedule->{ 'period_type_' . $schedule->{period_type} } = 1; - #print STDERR $schedule->{period_type}."\n"; - } + #print STDERR $schedule->{period_type}."\n"; + } - $serie->{schedule} = $schedules; - $serie->{start} = $params->{start}; - $serie->{end} = $params->{end}; - $serie->{frequency} = $params->{frequency}; - $serie->{duration} = $serie->{default_duration}; - my $duration = $params->{duration} || ''; - $serie->{duration} = $params->{duration} if $duration ne ''; + $serie->{schedule} = $schedules; + $serie->{start} = $params->{start}; + $serie->{end} = $params->{end}; + $serie->{frequency} = $params->{frequency}; + $serie->{duration} = $serie->{default_duration}; + my $duration = $params->{duration} || ''; + $serie->{duration} = $params->{duration} if $duration ne ''; - $serie->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $serie->{start}; - $serie->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $serie->{end}; + $serie->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $serie->{start}; + $serie->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $serie->{end}; - #add series dates - my $series_dates = series_dates::get( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - series_id => $serie->{series_id} - } - ); + #add series dates + my $series_dates = series_dates::get( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $serie->{series_id} + } + ); - #remove seconds from dates - for my $date (@$series_dates) { - $date->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/; - $date->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/; - } - $serie->{series_dates} = $series_dates; + #remove seconds from dates + for my $date (@$series_dates) { + $date->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/; + $date->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/; + } + $serie->{series_dates} = $series_dates; - $serie->{show_hint_to_add_schedule} = $params->{show_hint_to_add_schedule}; + $serie->{show_hint_to_add_schedule} = $params->{show_hint_to_add_schedule}; - #copy series to params - #$params->{series}=[$serie]; - for my $key ( keys %$serie ) { - $params->{$key} = $serie->{$key}; - } + #copy series to params + #$params->{series}=[$serie]; + for my $key ( keys %$serie ) { + $params->{$key} = $serie->{$key}; + } - #print STDERR '
      '.Dumper($params).'
      '; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); - template::process($config, 'print', $params->{template}, $params ); + #print STDERR '
      '.Dumper($params).'
      '; + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); + template::process( $config, 'print', $params->{template}, $params ); } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ + #actions and roles + $checked->{action} = ''; + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(add_user|remove_user|create|delete|save|details|show|save_schedule|delete_schedule|save_scan|scan_events|assign_event|unassign_event|reassign_event)$/ - ) - { - $checked->{action} = $params->{action}; - } - } + ) + { + $checked->{action} = $params->{action}; + } + } - #numeric values - $checked->{exclude} = 0; - for my $param ( - 'id', 'project_id', 'studio_id', 'default_studio_id', - 'user_id', 'new_series_id', 'series_id', 'schedule_id', - 'exclude', 'show_hint_to_add_schedule', 'event_id', 'weekday', - 'week_of_month', 'month', 'nextDay' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + #numeric values + $checked->{exclude} = 0; + for my $param ( + 'id', 'project_id', 'studio_id', 'default_studio_id', + 'user_id', 'new_series_id', 'series_id', 'schedule_id', + 'exclude', 'show_hint_to_add_schedule', 'event_id', 'weekday', + 'week_of_month', 'month', 'nextDay' + ) + { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - if ( defined $checked->{series_id} ) { - $checked->{template} = template::check($config, $params->{template}, 'edit_series' ); - } else { - $checked->{template} = template::check($config, $params->{template}, 'series' ); - } + if ( defined $checked->{series_id} ) { + $checked->{template} = template::check( $config, $params->{template}, 'edit_series' ); + } else { + $checked->{template} = template::check( $config, $params->{template}, 'series' ); + } - if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) { + if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) { - #set defaults - $checked->{create_events} = 0; - $checked->{publish_events} = 0; - } - for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', 'count_episodes' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + #set defaults + $checked->{create_events} = 0; + $checked->{publish_events} = 0; + } + for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', 'count_episodes' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { + $checked->{$param} = $1; + } + } - #scalars - for my $param ( 'search', 'from', 'till', 'period_type' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + #scalars + for my $param ( 'search', 'from', 'till', 'period_type' ) { + if ( defined $params->{$param} ) { + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^\s+//g; + $checked->{$param} =~ s/\s+$//g; + } + } - for my $param ( 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'image_label', - 'assign_event_series_name', 'assign_event_title', 'comment', 'podcast_url', 'archive_url' ) - { - if ( defined $params->{$param} ) { + for my $param ( 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'image_label', + 'assign_event_series_name', 'assign_event_title', 'comment', 'podcast_url', 'archive_url' ) + { + if ( defined $params->{$param} ) { - #$checked->{$param}=uri_unescape(); - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + #$checked->{$param}=uri_unescape(); + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^\s+//g; + $checked->{$param} =~ s/\s+$//g; + } + } - for my $attr ('start') { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { - $checked->{$attr} = $1 . ':00'; - } - } + for my $attr ('start') { + if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { + $checked->{$attr} = $1 . ':00'; + } + } - for my $attr ('end') { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { - $checked->{$attr} = $1; - } - } + for my $attr ('end') { + if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { + $checked->{$attr} = $1; + } + } - return $checked; + return $checked; } diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 141d373..bc6eedf 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -48,7 +48,7 @@ my $request = { url => $ENV{QUERY_STRING} || '', params => { original => $params, - checked => check_params($params), + checked => check_params( $config, $params ), }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -58,7 +58,7 @@ $params = $request->{params}->{checked}; unless ( params::isJson() ) { my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process($config, 'print', template::check($config, 'default.html'), $headerParams ); + template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); } return unless uac::check( $config, $params, $user_presets ) == 1; @@ -75,7 +75,7 @@ showPlayout( $config, $request ); print STDERR "$0 ERROR: " . $params->{error} . "\n" if $params->{error} ne ''; $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); -template::process($config, 'print', $params->{template}, $params ); +template::process( $config, 'print', $params->{template}, $params ); exit; @@ -170,11 +170,12 @@ sub formatLoudness { } sub check_params { + my $config = shift; my $params = shift; my $checked = {}; $checked->{error} = ''; - $checked->{template} = template::check($config, $params->{template}, 'show_playout' ); + $checked->{template} = template::check( $config, $params->{template}, 'show_playout' ); #numeric values for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) { diff --git a/website/agenda/planung/showImage.cgi b/website/agenda/planung/showImage.cgi index be7cb6b..a54a6cc 100755 --- a/website/agenda/planung/showImage.cgi +++ b/website/agenda/planung/showImage.cgi @@ -26,12 +26,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - user => $user - } + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + user => $user + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -40,11 +40,11 @@ $params->{project_id} = $user_presets->{project_id} if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; @@ -56,83 +56,84 @@ showImage( $config, $request ); #TODO: filter by published, draft sub showImage { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_event} == 1 ) { - uac::permissions_denied('read_image'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_event} == 1 ) { + uac::permissions_denied('read_image'); + return; + } - unless ( defined $params->{filename} ) { - uac::permissions_denied('missing filename'); - return; - } + unless ( defined $params->{filename} ) { + uac::permissions_denied('missing filename'); + return; + } - my $filename = images::getInternalPath( $config, $params ); - unless ( defined $filename ) { - uac::permissions_denied("could not find path"); - return; - } - - unless ( -e $filename ) { - uac::permissions_denied("read $filename"); - return; - } + my $filename = images::getInternalPath( $config, $params ); + unless ( defined $filename ) { + uac::permissions_denied("could not find path"); + return; + } - my $image = images::readFile($filename); - if ( defined $image->{error} ) { - uac::permissions_denied("read $filename, $image->{error}"); - return; - } + unless ( -e $filename ) { + uac::permissions_denied("read $filename"); + return; + } - binmode STDOUT; - print "Content-type:image/jpeg; charset=UTF-8;\n\n"; - print $image->{content}; - return; + my $image = images::readFile($filename); + if ( defined $image->{error} ) { + uac::permissions_denied("read $filename, $image->{error}"); + return; + } + + binmode STDOUT; + print "Content-type:image/jpeg; charset=UTF-8;\n\n"; + print $image->{content}; + return; } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #numeric values - for my $param ('filename') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[A-Za-z\_\-\.\d\/]+$/ ) ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^.*\///g; - } - } + #numeric values + for my $param ('filename') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[A-Za-z\_\-\.\d\/]+$/ ) ) { + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^.*\///g; + } + } - $checked->{type} = 'thumbs'; - for my $param ('type') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^(thumbs|images|icons)$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + $checked->{type} = 'thumbs'; + for my $param ('type') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^(thumbs|images|icons)$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - #numeric values - for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + #numeric values + for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - return $checked; + return $checked; } diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio_timeslots.cgi index 9565924..72e8888 100755 --- a/website/agenda/planung/studio_timeslots.cgi +++ b/website/agenda/planung/studio_timeslots.cgi @@ -5,7 +5,8 @@ use strict; use Data::Dumper; use URI::Escape(); -use Encode(); + +#use Encode(); use params(); use config(); @@ -32,12 +33,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( - $config, - { - user => $user, - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } + $config, + { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -46,11 +47,11 @@ $params->{project_id} = $user_presets->{project_id} if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; @@ -62,16 +63,16 @@ $headerParams->{loc} = localization::get( $config, { user => $user, file => 'all my $action = $params->{action} || ''; if ( $action eq 'show_dates' ) { - #print "Content-type:text/html\n\n"; + #print "Content-type:text/html\n\n"; } else { - template::process($config, 'print', template::check($config, 'default.html'), $headerParams ); + template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); } return unless uac::check( $config, $params, $user_presets ) == 1; if ( $action eq 'show_dates' ) { - print "Content-Type:text/html\n\n"; + print "Content-Type:text/html\n\n"; } else { - print q{ + print q{ @@ -82,12 +83,12 @@ if ( $action eq 'show_dates' ) { } if ( defined $params->{action} ) { - save_schedule( $config, $request ) if ( $params->{action} eq 'save_schedule' ); - delete_schedule( $config, $request ) if ( $params->{action} eq 'delete_schedule' ); - if ( $params->{action} eq 'show_dates' ) { - showDates( $config, $request ); - return; - } + save_schedule( $config, $request ) if ( $params->{action} eq 'save_schedule' ); + delete_schedule( $config, $request ) if ( $params->{action} eq 'delete_schedule' ); + if ( $params->{action} eq 'show_dates' ) { + showDates( $config, $request ); + return; + } } $config->{access}->{write} = 0; @@ -96,322 +97,323 @@ return; #insert or update a schedule and update all schedule dates sub save_schedule { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $permissions = $request->{permissions}; - unless ( $permissions->{update_studio_timeslot_schedule} == 1 ) { - uac::permissions_denied('update_studio_timeslot_schedule'); - return; - } + my $permissions = $request->{permissions}; + unless ( $permissions->{update_studio_timeslot_schedule} == 1 ) { + uac::permissions_denied('update_studio_timeslot_schedule'); + return; + } - #print Dumper($params); - my $params = $request->{params}->{checked}; + #print Dumper($params); + my $params = $request->{params}->{checked}; - for my $attr ( 'project_id', 'studio_id', 'start', 'end', 'end_date', 'schedule_studio_id' ) { - unless ( defined $params->{$attr} ) { - uac::print_error( $attr . ' not given!' ); - return; - } - } + for my $attr ( 'project_id', 'studio_id', 'start', 'end', 'end_date', 'schedule_studio_id' ) { + unless ( defined $params->{$attr} ) { + uac::print_error( $attr . ' not given!' ); + return; + } + } - my $entry = {}; - for my $attr ( 'project_id', 'start', 'end', 'end_date', 'frequency' ) { - $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); - } + my $entry = {}; + for my $attr ( 'project_id', 'start', 'end', 'end_date', 'frequency' ) { + $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); + } - #set schedule's studio to value from schedule_studio_id - $entry->{studio_id} = $params->{schedule_studio_id} if ( defined $params->{schedule_studio_id} ); + #set schedule's studio to value from schedule_studio_id + $entry->{studio_id} = $params->{schedule_studio_id} if ( defined $params->{schedule_studio_id} ); - if ( ( $entry->{end} ne '' ) && ( $entry->{end} le $entry->{start} ) ) { - uac::print_error('start date should be before end date!'); - return; - } + if ( ( $entry->{end} ne '' ) && ( $entry->{end} le $entry->{start} ) ) { + uac::print_error('start date should be before end date!'); + return; + } - #print Dumper($entry); - $config->{access}->{write} = 1; - if ( defined $params->{schedule_id} ) { - $entry->{schedule_id} = $params->{schedule_id}; + #print Dumper($entry); + $config->{access}->{write} = 1; + if ( defined $params->{schedule_id} ) { + $entry->{schedule_id} = $params->{schedule_id}; - #print Dumper($entry); - studio_timeslot_schedule::update( $config, $entry ); + #print Dumper($entry); + studio_timeslot_schedule::update( $config, $entry ); - #my $updates=0; - #print Dumper($entry); - my $updates = studio_timeslot_dates::update( $config, $entry ); - uac::print_info("timeslot schedule saved. $updates dates scheduled"); - } else { - $entry->{schedule_id} = studio_timeslot_schedule::insert( $config, $entry ); + #my $updates=0; + #print Dumper($entry); + my $updates = studio_timeslot_dates::update( $config, $entry ); + uac::print_info("timeslot schedule saved. $updates dates scheduled"); + } else { + $entry->{schedule_id} = studio_timeslot_schedule::insert( $config, $entry ); - #my $updates=0; - my $updates = studio_timeslot_dates::update( $config, $entry ); - uac::print_info("timeslot schedule added. $updates dates added"); - } + #my $updates=0; + my $updates = studio_timeslot_dates::update( $config, $entry ); + uac::print_info("timeslot schedule added. $updates dates added"); + } } sub delete_schedule { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $permissions = $request->{permissions}; - unless ( $permissions->{update_studio_timeslot_schedule} == 1 ) { - uac::permissions_denied('update_studio_timeslot_schedule'); - return; - } + my $permissions = $request->{permissions}; + unless ( $permissions->{update_studio_timeslot_schedule} == 1 ) { + uac::permissions_denied('update_studio_timeslot_schedule'); + return; + } - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $entry = {}; - for my $attr ( 'project_id', 'studio_id', 'schedule_id' ) { - if ( defined $params->{$attr} ) { - $entry->{$attr} = $params->{$attr}; - } else { - uac::print_error( $attr . ' not given!' ); - return; - } - } + my $entry = {}; + for my $attr ( 'project_id', 'studio_id', 'schedule_id' ) { + if ( defined $params->{$attr} ) { + $entry->{$attr} = $params->{$attr}; + } else { + uac::print_error( $attr . ' not given!' ); + return; + } + } - $config->{access}->{write} = 1; - $entry->{schedule_id} = $params->{schedule_id}; - studio_timeslot_schedule::delete( $config, $entry ); - studio_timeslot_dates::update( $config, $entry ); - uac::print_info("timeslot schedule deleted"); + $config->{access}->{write} = 1; + $entry->{schedule_id} = $params->{schedule_id}; + studio_timeslot_schedule::delete( $config, $entry ); + studio_timeslot_dates::update( $config, $entry ); + uac::print_info("timeslot schedule deleted"); } sub showTimeslotSchedule { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - $config->{access}->{write} = 0; + $config->{access}->{write} = 0; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_studio_timeslot_schedule} == 1 ) { - uac::permissions_denied('read_studio_timeslot_schedule'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_studio_timeslot_schedule} == 1 ) { + uac::permissions_denied('read_studio_timeslot_schedule'); + return; + } - for my $param ( 'project_id', 'studio_id' ) { - unless ( defined $params->{$param} ) { - uac::print_error("missing $param"); - return; - } - } + for my $param ( 'project_id', 'studio_id' ) { + unless ( defined $params->{$param} ) { + uac::print_error("missing $param"); + return; + } + } - #this will be updated later (especially allow_update_events) - for my $permission ( keys %{ $request->{permissions} } ) { - $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; - } + #this will be updated later (especially allow_update_events) + for my $permission ( keys %{ $request->{permissions} } ) { + $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; + } - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); - my $studio_id = $params->{studio_id}; - my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; - #get project schedule - my $schedules = studio_timeslot_schedule::get( - $config, - { - project_id => $project_id + #get project schedule + my $schedules = studio_timeslot_schedule::get( + $config, + { + project_id => $project_id - # studio_id=>$studio_id - } - ); + # studio_id=>$studio_id + } + ); - #list of all studios by id - my $studios = studios::get( $config, { project_id => $project_id } ); + #list of all studios by id + my $studios = studios::get( $config, { project_id => $project_id } ); - #remove seconds from dates - for my $schedule (@$schedules) { - $schedule->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/; - $schedule->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/; + #remove seconds from dates + for my $schedule (@$schedules) { + $schedule->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/; + $schedule->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/; - #insert assigned studio - for my $studio (@$studios) { - my $entry = { - id => $studio->{id}, - name => $studio->{name}, - }; - $entry->{selected} = 1 if ( $studio->{id} eq $schedule->{studio_id} ); - push @{ $schedule->{studios} }, $entry; - } - } + #insert assigned studio + for my $studio (@$studios) { + my $entry = { + id => $studio->{id}, + name => $studio->{name}, + }; + $entry->{selected} = 1 if ( $studio->{id} eq $schedule->{studio_id} ); + push @{ $schedule->{studios} }, $entry; + } + } - my $result = { - project_id => $project_id, - studio_id => $studio_id - }; - $result->{schedule} = $schedules; - $result->{studios} = $studios; - $result->{start} = $params->{start}; - $result->{end} = $params->{end}; - $result->{end_date} = $params->{end_date}; - $result->{frequency} = $params->{frequency}; + my $result = { + project_id => $project_id, + studio_id => $studio_id + }; + $result->{schedule} = $schedules; + $result->{studios} = $studios; + $result->{start} = $params->{start}; + $result->{end} = $params->{end}; + $result->{end_date} = $params->{end_date}; + $result->{frequency} = $params->{frequency}; - #remove seconds from datetimes - $result->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $result->{start}; - $result->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $result->{end}; + #remove seconds from datetimes + $result->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $result->{start}; + $result->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $result->{end}; - #copy entry values to params - for my $key ( keys %$result ) { - $params->{$key} = $result->{$key}; - } + #copy entry values to params + for my $key ( keys %$result ) { + $params->{$key} = $result->{$key}; + } - #print '
      '.Dumper($params).'
      '; - template::process($config, 'print', $params->{template}, $params ); + #print '
      '.Dumper($params).'
      '; + template::process( $config, 'print', $params->{template}, $params ); } sub showDates { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - $config->{access}->{write} = 0; + $config->{access}->{write} = 0; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_studio_timeslot_schedule} == 1 ) { - uac::permissions_denied('read_studio_timeslot_schedule'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_studio_timeslot_schedule} == 1 ) { + uac::permissions_denied('read_studio_timeslot_schedule'); + return; + } - for my $param ( 'project_id', 'studio_id' ) { - unless ( defined $params->{$param} ) { - uac::print_error("missing $param"); - return; - } - } + for my $param ( 'project_id', 'studio_id' ) { + unless ( defined $params->{$param} ) { + uac::print_error("missing $param"); + return; + } + } - #this will be updated later (especially allow_update_events) - for my $permission ( keys %{ $request->{permissions} } ) { - $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; - } + #this will be updated later (especially allow_update_events) + for my $permission ( keys %{ $request->{permissions} } ) { + $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; + } - my $studio_id = $params->{studio_id}; - my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $project_id = $params->{project_id}; - my $fromDate = $params->{show_date} . '-01-01'; - my $tillDate = $params->{show_date} . '-12-31'; + my $fromDate = $params->{show_date} . '-01-01'; + my $tillDate = $params->{show_date} . '-12-31'; - #add timeslot dates - my $timeslot_dates = studio_timeslot_dates::get( - $config, - { - project_id => $project_id, + #add timeslot dates + my $timeslot_dates = studio_timeslot_dates::get( + $config, + { + project_id => $project_id, - # studio_id=>$studio_id, - from => $fromDate, - till => $tillDate - } - ); + # studio_id=>$studio_id, + from => $fromDate, + till => $tillDate + } + ); - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); - my $language = $params->{loc}->{region}; + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); + my $language = $params->{loc}->{region}; - # translate weekday names to selected language - my $weekday = { - 'Mo' => $params->{loc}->{weekday_Mo}, - 'Tu' => $params->{loc}->{weekday_Tu}, - 'We' => $params->{loc}->{weekday_We}, - 'Th' => $params->{loc}->{weekday_Th}, - 'Fr' => $params->{loc}->{weekday_Fr}, - 'Sa' => $params->{loc}->{weekday_Sa}, - 'Su' => $params->{loc}->{weekday_Su}, - }; + # translate weekday names to selected language + my $weekday = { + 'Mo' => $params->{loc}->{weekday_Mo}, + 'Tu' => $params->{loc}->{weekday_Tu}, + 'We' => $params->{loc}->{weekday_We}, + 'Th' => $params->{loc}->{weekday_Th}, + 'Fr' => $params->{loc}->{weekday_Fr}, + 'Sa' => $params->{loc}->{weekday_Sa}, + 'Su' => $params->{loc}->{weekday_Su}, + }; - my $studios = studios::get( $config, { project_id => $project_id } ); - my $studio_by_id = {}; - for my $studio (@$studios) { - $studio_by_id->{ $studio->{id} } = $studio; - } + my $studios = studios::get( $config, { project_id => $project_id } ); + my $studio_by_id = {}; + for my $studio (@$studios) { + $studio_by_id->{ $studio->{id} } = $studio; + } - #remove seconds from dates - for my $date (@$timeslot_dates) { + #remove seconds from dates + for my $date (@$timeslot_dates) { - #remove seconds from datetimes - $date->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/; - $date->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/; + #remove seconds from datetimes + $date->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/; + $date->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/; - # translate weekday - if ( $language ne 'en' ) { - $date->{start_weekday} = $weekday->{ $date->{start_weekday} }; - $date->{end_weekday} = $weekday->{ $date->{end_weekday} }; - } - $date->{studio_name} = $studio_by_id->{ $date->{studio_id} }->{name}; - } - my $result = { - project_id => $project_id, - studio_id => $studio_id, - dates => $timeslot_dates - }; + # translate weekday + if ( $language ne 'en' ) { + $date->{start_weekday} = $weekday->{ $date->{start_weekday} }; + $date->{end_weekday} = $weekday->{ $date->{end_weekday} }; + } + $date->{studio_name} = $studio_by_id->{ $date->{studio_id} }->{name}; + } + my $result = { + project_id => $project_id, + studio_id => $studio_id, + dates => $timeslot_dates + }; - #copy entry values to params - for my $key ( keys %$result ) { - $params->{$key} = $result->{$key}; - } + #copy entry values to params + for my $key ( keys %$result ) { + $params->{$key} = $result->{$key}; + } - my $template = template::check($config, 'studio_timeslot_dates'); - template::process($config, 'print', $template, $params ); + my $template = template::check( $config, 'studio_timeslot_dates' ); + template::process( $config, 'print', $template, $params ); } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #actions and roles - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(show|save_schedule|delete_schedule|show_dates)$/ ) { - $checked->{action} = $params->{action}; - } - } + #actions and roles + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(show|save_schedule|delete_schedule|show_dates)$/ ) { + $checked->{action} = $params->{action}; + } + } - #numeric values - $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'schedule_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + #numeric values + $checked->{exclude} = 0; + for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'schedule_studio_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - if ( ( defined $params->{show_date} ) && ( $params->{show_date} =~ /^(\d\d\d\d)/ ) ) { - $checked->{show_date} = $1; - } else { - my $date = time::date_to_array( time::time_to_date() ); - $checked->{show_date} = $date->[0]; - } + if ( ( defined $params->{show_date} ) && ( $params->{show_date} =~ /^(\d\d\d\d)/ ) ) { + $checked->{show_date} = $1; + } else { + my $date = time::date_to_array( time::time_to_date() ); + $checked->{show_date} = $date->[0]; + } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - $checked->{template} = template::check($config, $params->{template}, 'studio_timeslots' ); + $checked->{template} = template::check( $config, $params->{template}, 'studio_timeslots' ); - for my $param ('frequency') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + for my $param ('frequency') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { + $checked->{$param} = $1; + } + } - for my $attr ( 'start', 'end' ) { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { - $checked->{$attr} = $1 . ':00'; - } - } - for my $attr ('end_date') { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { - $checked->{$attr} = $1; - } - } + for my $attr ( 'start', 'end' ) { + if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { + $checked->{$attr} = $1 . ':00'; + } + } + for my $attr ('end_date') { + if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { + $checked->{$attr} = $1; + } + } - return $checked; + return $checked; } diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 69995d8..5f3aef2 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -26,12 +26,12 @@ return if ( $user eq '' ); my $permissions = roles::get_user_permissions($config); my $user_presets = uac::get_user_presets( - $config, - { - user => $user, - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } + $config, + { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -40,11 +40,11 @@ $params->{project_id} = $user_presets->{project_id} if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; @@ -52,7 +52,7 @@ $params = $request->{params}->{checked}; #process header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); -template::process($config, 'print', template::check($config, 'default.html'), $headerParams ); +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); return unless uac::check( $config, $params, $user_presets ) == 1; print q{ @@ -61,183 +61,184 @@ print q{ }; if ( defined $params->{action} ) { - save_studio( $config, $request ) if ( $params->{action} eq 'save' ); - delete_studio( $config, $request ) if ( $params->{action} eq 'delete' ); + save_studio( $config, $request ) if ( $params->{action} eq 'save' ); + delete_studio( $config, $request ) if ( $params->{action} eq 'delete' ); } $config->{access}->{write} = 0; show_studios( $config, $request ); sub delete_studio { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $permissions = $request->{permissions}; - unless ( $permissions->{update_studio} == 1 ) { - uac::permissions_denied('update_studio'); - return; - } + my $permissions = $request->{permissions}; + unless ( $permissions->{update_studio} == 1 ) { + uac::permissions_denied('update_studio'); + return; + } - my $params = $request->{params}->{checked}; - my $columns = studios::get_columns($config); + my $params = $request->{params}->{checked}; + my $columns = studios::get_columns($config); - my $entry = {}; - for my $param ( keys %$params ) { - if ( defined $columns->{$param} ) { - $entry->{$param} = $params->{$param} || ''; - } - } + my $entry = {}; + for my $param ( keys %$params ) { + if ( defined $columns->{$param} ) { + $entry->{$param} = $params->{$param} || ''; + } + } - my $studio_id = $entry->{id} || ''; - if ( $studio_id ne '' ) { - $config->{access}->{write} = 1; + my $studio_id = $entry->{id} || ''; + if ( $studio_id ne '' ) { + $config->{access}->{write} = 1; - project::unassign_studio( - $config, - { - project_id => $params->{project_id}, - studio_id => $studio_id - } - ); + project::unassign_studio( + $config, + { + project_id => $params->{project_id}, + studio_id => $studio_id + } + ); - my $studio_assignments = project::get_studio_assignments( - $config, - { - studio_id => $studio_id - } - ); + my $studio_assignments = project::get_studio_assignments( + $config, + { + studio_id => $studio_id + } + ); - unless ( scalar @$studio_assignments == 0 ) { - uac::print_info("Studio unassigned from project"); - uac::print_warn("Studio is assigned to other projects, so it will not be deleted"); - return undef; - } - studios::delete( $config, $entry ); - uac::print_info("Studio deleted"); - } + unless ( scalar @$studio_assignments == 0 ) { + uac::print_info("Studio unassigned from project"); + uac::print_warn("Studio is assigned to other projects, so it will not be deleted"); + return undef; + } + studios::delete( $config, $entry ); + uac::print_info("Studio deleted"); + } } sub save_studio { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{update_studio} == 1 ) { - uac::permissions_denied('update_studio'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{update_studio} == 1 ) { + uac::permissions_denied('update_studio'); + return; + } - #filter entry for studio columns - my $columns = studios::get_columns($config); - my $entry = {}; - for my $param ( keys %$params ) { - if ( defined $columns->{$param} ) { - $entry->{$param} = $params->{$param} || ''; - } - } + #filter entry for studio columns + my $columns = studios::get_columns($config); + my $entry = {}; + for my $param ( keys %$params ) { + if ( defined $columns->{$param} ) { + $entry->{$param} = $params->{$param} || ''; + } + } - $config->{access}->{write} = 1; - if ( ( defined $entry->{id} ) && ( $entry ne '' ) ) { - studios::update( $config, $entry ); - } else { - my $studios = studios::get( $config, { name => $entry->{name} } ); - if ( scalar @$studios > 0 ) { - uac::print_error("studio with name '$entry->{name}' already exists"); - return; - } - $entry->{id} = studios::insert( $config, $entry ); + $config->{access}->{write} = 1; + if ( ( defined $entry->{id} ) && ( $entry ne '' ) ) { + studios::update( $config, $entry ); + } else { + my $studios = studios::get( $config, { name => $entry->{name} } ); + if ( scalar @$studios > 0 ) { + uac::print_error("studio with name '$entry->{name}' already exists"); + return; + } + $entry->{id} = studios::insert( $config, $entry ); - project::assign_studio( - $config, - { - project_id => $params->{project_id}, - studio_id => $entry->{id} - } - ); - } + project::assign_studio( + $config, + { + project_id => $params->{project_id}, + studio_id => $entry->{id} + } + ); + } - #insert series for single events (if not already existing) - my $studio_id = $entry->{id}; - my $single_series = series::get( - $config, - { - project_id => $params->{project_id}, - studio_id => $studio_id, - has_single_events => 1 - } - ); - if ( scalar @$single_series == 0 ) { - series::insert( - $config, - { - project_id => $params->{project_id}, - studio_id => $studio_id, - has_single_events => 1, - count_episodes => 0, - series_name => '_single_' - } - ); - } + #insert series for single events (if not already existing) + my $studio_id = $entry->{id}; + my $single_series = series::get( + $config, + { + project_id => $params->{project_id}, + studio_id => $studio_id, + has_single_events => 1 + } + ); + if ( scalar @$single_series == 0 ) { + series::insert( + $config, + { + project_id => $params->{project_id}, + studio_id => $studio_id, + has_single_events => 1, + count_episodes => 0, + series_name => '_single_' + } + ); + } - print qq{
      changes saved
      }; + print qq{
      changes saved
      }; } sub show_studios { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - my $studios = studios::get( - $config, - { - project_id => $params->{project_id} - } - ); - $params->{studios} = $studios; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'studios' } ); - uac::set_template_permissions( $permissions, $params ); + my $studios = studios::get( + $config, + { + project_id => $params->{project_id} + } + ); + $params->{studios} = $studios; + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'studios' } ); + uac::set_template_permissions( $permissions, $params ); - template::process($config, 'print', $params->{template}, $params ); + template::process( $config, 'print', $params->{template}, $params ); } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - #template - my $template = ''; - $template = template::check($config, $params->{template}, 'studios' ); - $checked->{template} = $template; + #template + my $template = ''; + $template = template::check( $config, $params->{template}, 'studios' ); + $checked->{template} = $template; - #actions - my $action = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(save|delete)$/ ) { - $checked->{action} = $params->{action}; - } - } + #actions + my $action = ''; + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(save|delete)$/ ) { + $checked->{action} = $params->{action}; + } + } - for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar', 'image' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar', 'image' ) { + if ( defined $params->{$param} ) { + $checked->{$param} = $params->{$param}; + } + } - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + #numeric values + for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - return $checked; + return $checked; } diff --git a/website/agenda/planung/user_settings.cgi b/website/agenda/planung/user_settings.cgi index 5ee9efe..be5e14c 100755 --- a/website/agenda/planung/user_settings.cgi +++ b/website/agenda/planung/user_settings.cgi @@ -24,12 +24,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( - $config, - { - user => $user, - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } + $config, + { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -38,11 +38,11 @@ $params->{project_id} = $user_presets->{project_id} if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -51,162 +51,163 @@ $params = $request->{params}->{checked}; #process header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); -template::process($config, 'print', template::check($config, 'default.html'), $headerParams ); +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); return unless uac::check( $config, $params, $user_presets ) == 1; our $errors = []; if ( defined $params->{action} ) { - update_settings( $config, $request ) if ( $params->{action} eq 'save' ); + update_settings( $config, $request ) if ( $params->{action} eq 'save' ); } $config->{access}->{write} = 0; show_settings( $config, $request ); sub show_settings { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - # unless ($permissions->{read_user}==1){ - # uac::permissions_denied('read_user'); - # return; - # } - my $user = $params->{presets}->{user}; - my $colors = user_settings::getColors( $config, { user => $user } ); + # unless ($permissions->{read_user}==1){ + # uac::permissions_denied('read_user'); + # return; + # } + my $user = $params->{presets}->{user}; + my $colors = user_settings::getColors( $config, { user => $user } ); - #map colors to params - my @colors = (); - my $c = 0; - for my $color (@$colors) { - push @colors, - { - title => $color->{name}, - class => $color->{css}, - name => 'color_' . $c, - value => $color->{color} - }; - $c++; - } + #map colors to params + my @colors = (); + my $c = 0; + for my $color (@$colors) { + push @colors, + { + title => $color->{name}, + class => $color->{css}, + name => 'color_' . $c, + value => $color->{color} + }; + $c++; + } - $params->{colors} = \@colors; - $params->{css} = user_settings::getColorCss( $config, { user => $user } ); - $params->{permissions} = $permissions; - $params->{errors} = $errors; + $params->{colors} = \@colors; + $params->{css} = user_settings::getColorCss( $config, { user => $user } ); + $params->{permissions} = $permissions; + $params->{errors} = $errors; - my $user_settings = user_settings::get( $config, { user => $user } ); - my $language = $user_settings->{language} || 'en'; - $params->{language} = $language; - $params->{ 'language_' . $language } = 1; + my $user_settings = user_settings::get( $config, { user => $user } ); + my $language = $user_settings->{language} || 'en'; + $params->{language} = $language; + $params->{ 'language_' . $language } = 1; - my $period = $user_settings->{period} || 'month'; - $params->{ 'period_' . $period } = 1; + my $period = $user_settings->{period} || 'month'; + $params->{ 'period_' . $period } = 1; - $params->{loc} = localization::get( $config, { language => $language, file => 'user_settings' } ); + $params->{loc} = localization::get( $config, { language => $language, file => 'user_settings' } ); - #print STDERR Dumper($params->{loc}); + #print STDERR Dumper($params->{loc}); - for my $color ( @{ $params->{colors} } ) { - $color->{title} = $params->{loc}->{ $color->{title} }; - } - uac::set_template_permissions( $permissions, $params ); + for my $color ( @{ $params->{colors} } ) { + $color->{title} = $params->{loc}->{ $color->{title} }; + } + uac::set_template_permissions( $permissions, $params ); - #print Dumper($permissions); - template::process($config, 'print', $params->{template}, $params ); + #print Dumper($permissions); + template::process( $config, 'print', $params->{template}, $params ); - #print '
      '.Dumper($user_settings);
      +    #print '
      '.Dumper($user_settings);
       }
       
       sub update_settings {
      -	my $config  = shift;
      -	my $request = shift;
      +    my $config  = shift;
      +    my $request = shift;
       
      -	my $params      = $request->{params}->{checked};
      -	my $permissions = $request->{permissions};
      -	my $user        = $params->{presets}->{user};
      +    my $params      = $request->{params}->{checked};
      +    my $permissions = $request->{permissions};
      +    my $user        = $params->{presets}->{user};
       
      -	# map params to colors
      -	my @colors = ();
      -	my $c      = 0;
      -	for my $color ( @{$user_settings::defaultColors} ) {
      -		if ( defined $params->{ 'color_' . $c } ) {
      -			push @colors, $color->{css} . '=' . $params->{ 'color_' . $c };
      -		} else {
      -			push @colors, $color->{css} . '=' . $color->{color};
      -		}
      -		$c++;
      -	}
      +    # map params to colors
      +    my @colors = ();
      +    my $c      = 0;
      +    for my $color ( @{$user_settings::defaultColors} ) {
      +        if ( defined $params->{ 'color_' . $c } ) {
      +            push @colors, $color->{css} . '=' . $params->{ 'color_' . $c };
      +        } else {
      +            push @colors, $color->{css} . '=' . $color->{color};
      +        }
      +        $c++;
      +    }
       
      -	my $settings = {
      -		user     => $user,
      -		colors   => join( "\n", @colors ),
      -		language => $params->{language},
      -		period   => $params->{period}
      -	};
      +    my $settings = {
      +        user     => $user,
      +        colors   => join( "\n", @colors ),
      +        language => $params->{language},
      +        period   => $params->{period}
      +    };
       
      -	my $results = user_settings::get( $config, { user => $user } );
      -	if ( defined $results ) {
      -		uac::print_info("update");
      -		$config->{access}->{write} = 1;
      -		user_settings::update( $config, $settings );
      -	} else {
      -		$config->{access}->{write} = 1;
      -		uac::print_info("insert");
      -		user_settings::insert( $config, $settings );
      -	}
      -	$config->{access}->{write} = 0;
      +    my $results = user_settings::get( $config, { user => $user } );
      +    if ( defined $results ) {
      +        uac::print_info("update");
      +        $config->{access}->{write} = 1;
      +        user_settings::update( $config, $settings );
      +    } else {
      +        $config->{access}->{write} = 1;
      +        uac::print_info("insert");
      +        user_settings::insert( $config, $settings );
      +    }
      +    $config->{access}->{write} = 0;
       }
       
       sub check_params {
      -	my $params = shift;
      +    my $config = shift;
      +    my $params = shift;
       
      -	my $checked = {};
      +    my $checked = {};
       
      -	#template
      -	my $template = '';
      -	$template = template::check($config,  $params->{template}, 'user_settings' );
      -	$checked->{template} = $template;
      +    #template
      +    my $template = '';
      +    $template = template::check( $config, $params->{template}, 'user_settings' );
      +    $checked->{template} = $template;
       
      -	#numeric values
      -	for my $param ( 'project_id', 'default_studio_id', 'studio_id' ) {
      -		if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
      -			$checked->{$param} = $params->{$param};
      -		}
      -	}
      -	if ( defined $checked->{studio_id} ) {
      -		$checked->{default_studio_id} = $checked->{studio_id};
      -	} else {
      -		$checked->{studio_id} = -1;
      -	}
      +    #numeric values
      +    for my $param ( 'project_id', 'default_studio_id', 'studio_id' ) {
      +        if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
      +            $checked->{$param} = $params->{$param};
      +        }
      +    }
      +    if ( defined $checked->{studio_id} ) {
      +        $checked->{default_studio_id} = $checked->{studio_id};
      +    } else {
      +        $checked->{studio_id} = -1;
      +    }
       
      -	for my $param ( keys %$params ) {
      -		if ( ( defined $params->{$param} ) && ( $param =~ /^(color\_\d+)$/ ) ) {
      -			$checked->{$param} = $params->{$param};
      -		}
      -	}
      +    for my $param ( keys %$params ) {
      +        if ( ( defined $params->{$param} ) && ( $param =~ /^(color\_\d+)$/ ) ) {
      +            $checked->{$param} = $params->{$param};
      +        }
      +    }
       
      -	$checked->{language} = 'en';
      -	if ( ( defined $params->{language} ) && ( $params->{language} =~ /^de$/ ) ) {
      -		$checked->{language} = 'de';
      -	}
      +    $checked->{language} = 'en';
      +    if ( ( defined $params->{language} ) && ( $params->{language} =~ /^de$/ ) ) {
      +        $checked->{language} = 'de';
      +    }
       
      -	if ( defined $params->{period} ) {
      -		if ( $params->{period} =~ /(\S+)/ ) {
      -			$checked->{period} = $1;
      -		}
      -	}
      +    if ( defined $params->{period} ) {
      +        if ( $params->{period} =~ /(\S+)/ ) {
      +            $checked->{period} = $1;
      +        }
      +    }
       
      -	#actions
      -	if ( defined $params->{action} ) {
      -		if ( $params->{action} =~ /^(save)$/ ) {
      -			$checked->{action} = $params->{action};
      -		}
      -	}
      -	return $checked;
      +    #actions
      +    if ( defined $params->{action} ) {
      +        if ( $params->{action} =~ /^(save)$/ ) {
      +            $checked->{action} = $params->{action};
      +        }
      +    }
      +    return $checked;
       }
       
       sub error {
      -	push @$errors, { error => $_[0] };
      +    push @$errors, { error => $_[0] };
       }
       
      diff --git a/website/agenda/planung/user_stats.cgi b/website/agenda/planung/user_stats.cgi
      index bda464e..a51c1ee 100755
      --- a/website/agenda/planung/user_stats.cgi
      +++ b/website/agenda/planung/user_stats.cgi
      @@ -26,12 +26,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config );
       return if ( ( !defined $user ) || ( $user eq '' ) );
       
       my $user_presets = uac::get_user_presets(
      -	$config,
      -	{
      -		user       => $user,
      -		project_id => $params->{project_id},
      -		studio_id  => $params->{studio_id}
      -	}
      +    $config,
      +    {
      +        user       => $user,
      +        project_id => $params->{project_id},
      +        studio_id  => $params->{studio_id}
      +    }
       );
       $params->{default_studio_id} = $user_presets->{studio_id};
       $params->{studio_id}         = $params->{default_studio_id}
      @@ -40,11 +40,11 @@ $params->{project_id} = $user_presets->{project_id}
         if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
       
       my $request = {
      -	url => $ENV{QUERY_STRING} || '',
      -	params => {
      -		original => $params,
      -		checked  => check_params($params),
      -	},
      +    url => $ENV{QUERY_STRING} || '',
      +    params => {
      +        original => $params,
      +        checked  => check_params( $config, $params ),
      +    },
       };
       $request = uac::prepare_request( $request, $user_presets );
       $params = $request->{params}->{checked};
      @@ -52,7 +52,7 @@ $params = $request->{params}->{checked};
       #process header
       my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
       $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
      -template::process($config,  'print', template::check($config, 'default.html'), $headerParams );
      +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
       return unless uac::check( $config, $params, $user_presets ) == 1;
       
       our $errors = [];
      @@ -60,51 +60,52 @@ our $errors = [];
       show_stats( $config, $request );
       
       sub show_stats {
      -	my $config  = shift;
      -	my $request = shift;
      +    my $config  = shift;
      +    my $request = shift;
       
      -	my $params      = $request->{params}->{checked};
      -	my $permissions = $request->{permissions};
      -	unless ( $permissions->{read_user_stats} ) {
      -		uac::permissions_denied('read_user_stats');
      -		return;
      -	}
      -	print STDERR "continue\n";
      -	$params->{user_stats}  = user_stats::get_stats( $config, $params );
      -	$params->{permissions} = $permissions;
      -	$params->{errors}      = $errors;
      +    my $params      = $request->{params}->{checked};
      +    my $permissions = $request->{permissions};
      +    unless ( $permissions->{read_user_stats} ) {
      +        uac::permissions_denied('read_user_stats');
      +        return;
      +    }
      +    print STDERR "continue\n";
      +    $params->{user_stats}  = user_stats::get_stats( $config, $params );
      +    $params->{permissions} = $permissions;
      +    $params->{errors}      = $errors;
       
      -	$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'user_stats' } );
      -	uac::set_template_permissions( $permissions, $params );
      -	template::process($config,  'print', $params->{template}, $params );
      +    $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'user_stats' } );
      +    uac::set_template_permissions( $permissions, $params );
      +    template::process( $config, 'print', $params->{template}, $params );
       }
       
       sub check_params {
      -	my $params = shift;
      +    my $config = shift;
      +    my $params = shift;
       
      -	my $checked = {};
      +    my $checked = {};
       
      -	#template
      -	my $template = '';
      -	$template = template::check($config,  $params->{template}, 'user_stats' );
      -	$checked->{template} = $template;
      +    #template
      +    my $template = '';
      +    $template = template::check( $config, $params->{template}, 'user_stats' );
      +    $checked->{template} = $template;
       
      -	#numeric values
      -	for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'series_id' ) {
      -		if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
      -			$checked->{$param} = $params->{$param};
      -		}
      -	}
      -	if ( defined $checked->{studio_id} ) {
      -		$checked->{default_studio_id} = $checked->{studio_id};
      -	} else {
      -		$checked->{studio_id} = -1;
      -	}
      +    #numeric values
      +    for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'series_id' ) {
      +        if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
      +            $checked->{$param} = $params->{$param};
      +        }
      +    }
      +    if ( defined $checked->{studio_id} ) {
      +        $checked->{default_studio_id} = $checked->{studio_id};
      +    } else {
      +        $checked->{studio_id} = -1;
      +    }
       
      -	return $checked;
      +    return $checked;
       }
       
       sub error {
      -	push @$errors, { error => $_[0] };
      +    push @$errors, { error => $_[0] };
       }
       
      diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi
      index 2171408..4b786fe 100755
      --- a/website/agenda/planung/users.cgi
      +++ b/website/agenda/planung/users.cgi
      @@ -39,7 +39,7 @@ my $request = {
       	url => $ENV{QUERY_STRING} || '',
       	params => {
       		original => $params,
      -		checked  => check_params($params),
      +		checked  => check_params($config, $params),
       	},
       };
       $request = uac::prepare_request( $request, $user_presets );
      @@ -399,6 +399,7 @@ sub update_user_roles {
       }
       
       sub check_params {
      +    my $config = shift;
       	my $params = shift;
       
       	my $checked = {};
      diff --git a/website/agenda/planung/work_time.cgi b/website/agenda/planung/work_time.cgi
      index 4f807dc..0b0b8e8 100755
      --- a/website/agenda/planung/work_time.cgi
      +++ b/website/agenda/planung/work_time.cgi
      @@ -5,7 +5,8 @@ use strict;
       
       use Data::Dumper;
       use URI::Escape();
      -use Encode();
      +
      +#use Encode();
       
       use params();
       use config();
      @@ -32,12 +33,12 @@ return if ( ( !defined $user ) || ( $user eq '' ) );
       
       #print STDERR $params->{project_id}."\n";
       my $user_presets = uac::get_user_presets(
      -	$config,
      -	{
      -		project_id => $params->{project_id},
      -		studio_id  => $params->{studio_id},
      -		user       => $user
      -	}
      +    $config,
      +    {
      +        project_id => $params->{project_id},
      +        studio_id  => $params->{studio_id},
      +        user       => $user
      +    }
       );
       $params->{default_studio_id} = $user_presets->{studio_id};
       $params->{studio_id}         = $params->{default_studio_id}
      @@ -47,11 +48,11 @@ $params->{project_id} = $user_presets->{project_id}
       
       #print STDERR $params->{project_id}."\n";
       my $request = {
      -	url => $ENV{QUERY_STRING} || '',
      -	params => {
      -		original => $params,
      -		checked  => check_params($params),
      -	},
      +    url => $ENV{QUERY_STRING} || '',
      +    params => {
      +        original => $params,
      +        checked  => check_params( $config, $params ),
      +    },
       };
       $request = uac::prepare_request( $request, $user_presets );
       $params = $request->{params}->{checked};
      @@ -59,12 +60,12 @@ $params = $request->{params}->{checked};
       #process header
       my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
       $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
      -template::process($config,  'print', template::check($config, 'default.html'), $headerParams );
      +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
       return unless uac::check( $config, $params, $user_presets ) == 1;
       
       if ( defined $params->{action} ) {
      -	save_schedule( $config, $request ) if ( $params->{action} eq 'save_schedule' );
      -	delete_schedule( $config, $request ) if ( $params->{action} eq 'delete_schedule' );
      +    save_schedule( $config, $request ) if ( $params->{action} eq 'save_schedule' );
      +    delete_schedule( $config, $request ) if ( $params->{action} eq 'delete_schedule' );
       }
       
       $config->{access}->{write} = 0;
      @@ -74,267 +75,268 @@ return;
       
       #insert or update a schedule and update all schedule dates
       sub save_schedule {
      -	my $config  = shift;
      -	my $request = shift;
      +    my $config  = shift;
      +    my $request = shift;
       
      -	my $params = $request->{params}->{checked};
      +    my $params = $request->{params}->{checked};
       
      -	my $permissions = $request->{permissions};
      -	unless ( $permissions->{update_schedule} == 1 ) {
      -		uac::permissions_denied('update_schedule');
      -		return;
      -	}
      +    my $permissions = $request->{permissions};
      +    unless ( $permissions->{update_schedule} == 1 ) {
      +        uac::permissions_denied('update_schedule');
      +        return;
      +    }
       
      -	#print Dumper($params);
      -	for my $attr ( 'project_id', 'studio_id', 'start' ) {
      -		unless ( defined $params->{$attr} ) {
      -			uac::print_error( $attr . ' not given!' );
      -			return;
      -		}
      -	}
      +    #print Dumper($params);
      +    for my $attr ( 'project_id', 'studio_id', 'start' ) {
      +        unless ( defined $params->{$attr} ) {
      +            uac::print_error( $attr . ' not given!' );
      +            return;
      +        }
      +    }
       
      -	my $entry = {};
      -	for my $attr (
      -		'project_id', 'studio_id',     'start', 'duration', 'exclude', 'period_type', 'end', 'frequency',
      -		'weekday',    'week_of_month', 'month', 'title',    'type'
      -	  )
      -	{
      -		$entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} );
      -	}
      +    my $entry = {};
      +    for my $attr (
      +        'project_id', 'studio_id',     'start', 'duration', 'exclude', 'period_type', 'end', 'frequency',
      +        'weekday',    'week_of_month', 'month', 'title',    'type'
      +      )
      +    {
      +        $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} );
      +    }
       
      -	my $found = 0;
      -	for my $type ( 'single', 'days', 'week_of_month' ) {
      -		$found = 1 if ( $entry->{period_type} eq $type );
      -	}
      -	if ( $found == 0 ) {
      -		uac::print_error('no period type selected!');
      -		return;
      -	}
      +    my $found = 0;
      +    for my $type ( 'single', 'days', 'week_of_month' ) {
      +        $found = 1 if ( $entry->{period_type} eq $type );
      +    }
      +    if ( $found == 0 ) {
      +        uac::print_error('no period type selected!');
      +        return;
      +    }
       
      -	$entry->{exclude} = 0 if ( $entry->{exclude} ne '1' );
      +    $entry->{exclude} = 0 if ( $entry->{exclude} ne '1' );
       
      -	if ( ( $entry->{end} ne '' ) && ( $entry->{end} le $entry->{start} ) ) {
      -		uac::print_error('start date should be before end date!');
      -		return;
      -	}
      +    if ( ( $entry->{end} ne '' ) && ( $entry->{end} le $entry->{start} ) ) {
      +        uac::print_error('start date should be before end date!');
      +        return;
      +    }
       
      -	#TODO: check if schedule is in studio_timeslots
      +    #TODO: check if schedule is in studio_timeslots
       
      -	$config->{access}->{write} = 1;
      -	if ( defined $params->{schedule_id} ) {
      -		$entry->{schedule_id} = $params->{schedule_id};
      -		work_schedule::update( $config, $entry );
      +    $config->{access}->{write} = 1;
      +    if ( defined $params->{schedule_id} ) {
      +        $entry->{schedule_id} = $params->{schedule_id};
      +        work_schedule::update( $config, $entry );
       
      -		#timeslots are checked inside
      -		my $updates = work_dates::update( $config, $entry );
      -		uac::print_info("schedule saved. $updates dates scheduled");
      -	} else {
      -		my $schedule_id = work_schedule::insert( $config, $entry );
      -		$entry->{schedule_id} = $schedule_id;
      +        #timeslots are checked inside
      +        my $updates = work_dates::update( $config, $entry );
      +        uac::print_info("schedule saved. $updates dates scheduled");
      +    } else {
      +        my $schedule_id = work_schedule::insert( $config, $entry );
      +        $entry->{schedule_id} = $schedule_id;
       
      -		#timeslots are checked inside
      -		my $updates = work_dates::update( $config, $entry );
      -		uac::print_info("schedule added. $updates dates added");
      -	}
      -	$config->{access}->{write} = 0;
      +        #timeslots are checked inside
      +        my $updates = work_dates::update( $config, $entry );
      +        uac::print_info("schedule added. $updates dates added");
      +    }
      +    $config->{access}->{write} = 0;
       }
       
       sub delete_schedule {
      -	my $config  = shift;
      -	my $request = shift;
      +    my $config  = shift;
      +    my $request = shift;
       
      -	my $params      = $request->{params}->{checked};
      -	my $permissions = $request->{permissions};
      -	unless ( $permissions->{delete_schedule} == 1 ) {
      -		uac::permissions_denied('delete_schedule');
      -		return;
      -	}
      +    my $params      = $request->{params}->{checked};
      +    my $permissions = $request->{permissions};
      +    unless ( $permissions->{delete_schedule} == 1 ) {
      +        uac::permissions_denied('delete_schedule');
      +        return;
      +    }
       
      -	my $entry = {};
      -	for my $attr ( 'project_id', 'studio_id', 'schedule_id' ) {
      -		if ( defined $params->{$attr} ) {
      -			$entry->{$attr} = $params->{$attr};
      -		} else {
      -			uac::print_error( $attr . ' not given!' );
      -			return;
      -		}
      -	}
      +    my $entry = {};
      +    for my $attr ( 'project_id', 'studio_id', 'schedule_id' ) {
      +        if ( defined $params->{$attr} ) {
      +            $entry->{$attr} = $params->{$attr};
      +        } else {
      +            uac::print_error( $attr . ' not given!' );
      +            return;
      +        }
      +    }
       
      -	$config->{access}->{write} = 1;
      -	$entry->{schedule_id} = $params->{schedule_id};
      -	work_schedule::delete( $config, $entry );
      -	work_dates::update( $config, $entry );
      -	uac::print_info("schedule deleted");
      +    $config->{access}->{write} = 1;
      +    $entry->{schedule_id} = $params->{schedule_id};
      +    work_schedule::delete( $config, $entry );
      +    work_dates::update( $config, $entry );
      +    uac::print_info("schedule deleted");
       }
       
       sub show_work_schedule {
      -	my $config  = shift;
      -	my $request = shift;
      +    my $config  = shift;
      +    my $request = shift;
       
      -	$config->{access}->{write} = 0;
      +    $config->{access}->{write} = 0;
       
      -	my $params      = $request->{params}->{checked};
      -	my $permissions = $request->{permissions};
      -	unless ( $permissions->{read_series} == 1 ) {
      -		uac::permissions_denied('read_series');
      -		return;
      -	}
      +    my $params      = $request->{params}->{checked};
      +    my $permissions = $request->{permissions};
      +    unless ( $permissions->{read_series} == 1 ) {
      +        uac::permissions_denied('read_series');
      +        return;
      +    }
       
      -	for my $param ( 'project_id', 'studio_id' ) {
      -		unless ( defined $params->{$param} ) {
      -			uac::print_error("missing $param");
      -			return;
      -		}
      -	}
      +    for my $param ( 'project_id', 'studio_id' ) {
      +        unless ( defined $params->{$param} ) {
      +            uac::print_error("missing $param");
      +            return;
      +        }
      +    }
       
      -	#this will be updated later (especially allow_update_events)
      -	for my $permission ( keys %{ $request->{permissions} } ) {
      -		$params->{'allow'}->{$permission} = $request->{permissions}->{$permission};
      -	}
      +    #this will be updated later (especially allow_update_events)
      +    for my $permission ( keys %{ $request->{permissions} } ) {
      +        $params->{'allow'}->{$permission} = $request->{permissions}->{$permission};
      +    }
       
      -	my $project_id = $params->{project_id};
      -	my $studio_id  = $params->{studio_id};
      +    my $project_id = $params->{project_id};
      +    my $studio_id  = $params->{studio_id};
       
      -	#add schedules
      -	my $schedules = work_schedule::get(
      -		$config,
      -		{
      -			project_id => $project_id,
      -			studio_id  => $studio_id,
      -		}
      -	);
      +    #add schedules
      +    my $schedules = work_schedule::get(
      +        $config,
      +        {
      +            project_id => $project_id,
      +            studio_id  => $studio_id,
      +        }
      +    );
       
      -	#remove seconds from dates
      -	for my $schedule (@$schedules) {
      -		$schedule->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $schedule->{start};
      -		$schedule->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/   if defined $schedule->{end};
      +    #remove seconds from dates
      +    for my $schedule (@$schedules) {
      +        $schedule->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $schedule->{start};
      +        $schedule->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/   if defined $schedule->{end};
       
      -		#detect schedule type
      -		if ( $schedule->{period_type} eq '' ) {
      -			$schedule->{period_type} = 'week_of_month';
      -			$schedule->{period_type} = 'days' unless ( $schedule->{week_of_month} =~ /\d/ );
      -			$schedule->{period_type} = 'single' unless ( $schedule->{end} =~ /\d/ );
      -		}
      -		$schedule->{ 'period_type_' . $schedule->{period_type} } = 1;
      -		if ( $params->{schedule_id} eq $schedule->{schedule_id} ) {
      -			$schedule->{selected} = 1;
      -		}
      +        #detect schedule type
      +        if ( $schedule->{period_type} eq '' ) {
      +            $schedule->{period_type} = 'week_of_month';
      +            $schedule->{period_type} = 'days' unless ( $schedule->{week_of_month} =~ /\d/ );
      +            $schedule->{period_type} = 'single' unless ( $schedule->{end} =~ /\d/ );
      +        }
      +        $schedule->{ 'period_type_' . $schedule->{period_type} } = 1;
      +        if ( $params->{schedule_id} eq $schedule->{schedule_id} ) {
      +            $schedule->{selected} = 1;
      +        }
       
      -		#print STDERR $schedule->{period_type}."\n";
      -	}
      -	my $serie = {};
      -	$serie->{schedule} = $schedules;
      +        #print STDERR $schedule->{period_type}."\n";
      +    }
      +    my $serie = {};
      +    $serie->{schedule} = $schedules;
       
      -	$serie->{start}     = $params->{start};
      -	$serie->{end}       = $params->{end};
      -	$serie->{frequency} = $params->{frequency};
      -	$serie->{duration}  = $serie->{default_duration};
      -	my $duration = $params->{duration} || '';
      -	$serie->{duration} = $params->{duration} if $duration ne '';
      +    $serie->{start}     = $params->{start};
      +    $serie->{end}       = $params->{end};
      +    $serie->{frequency} = $params->{frequency};
      +    $serie->{duration}  = $serie->{default_duration};
      +    my $duration = $params->{duration} || '';
      +    $serie->{duration} = $params->{duration} if $duration ne '';
       
      -	$serie->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $serie->{start};
      -	$serie->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/   if defined $serie->{end};
      +    $serie->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/ if defined $serie->{start};
      +    $serie->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/   if defined $serie->{end};
       
      -	#add series dates
      -	my $work_dates = work_dates::get(
      -		$config,
      -		{
      -			project_id => $project_id,
      -			studio_id  => $studio_id,
      -		}
      -	);
      +    #add series dates
      +    my $work_dates = work_dates::get(
      +        $config,
      +        {
      +            project_id => $project_id,
      +            studio_id  => $studio_id,
      +        }
      +    );
       
      -	#remove seconds from dates
      -	for my $date (@$work_dates) {
      -		$date->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/;
      -		$date->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/;
      -	}
      -	$serie->{work_dates} = $work_dates;
      +    #remove seconds from dates
      +    for my $date (@$work_dates) {
      +        $date->{start} =~ s/(\d\d\:\d\d)\:\d\d/$1/;
      +        $date->{end} =~ s/(\d\d\:\d\d)\:\d\d/$1/;
      +    }
      +    $serie->{work_dates} = $work_dates;
       
      -	$serie->{show_hint_to_add_schedule} = $params->{show_hint_to_add_schedule};
      +    $serie->{show_hint_to_add_schedule} = $params->{show_hint_to_add_schedule};
       
      -	#copy series to params
      -	#$params->{series}=[$serie];
      -	for my $key ( keys %$serie ) {
      -		$params->{$key} = $serie->{$key};
      -	}
      +    #copy series to params
      +    #$params->{series}=[$serie];
      +    for my $key ( keys %$serie ) {
      +        $params->{$key} = $serie->{$key};
      +    }
       
      -	#print STDERR '
      '.Dumper($params).'
      '; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'work_time' } ); - template::process($config, 'print', $params->{template}, $params ); + #print STDERR '
      '.Dumper($params).'
      '; + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'work_time' } ); + template::process( $config, 'print', $params->{template}, $params ); } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(show|save_schedule|delete_schedule)$/ ) { - $checked->{action} = $params->{action}; - } - } + #actions and roles + $checked->{action} = ''; + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(show|save_schedule|delete_schedule)$/ ) { + $checked->{action} = $params->{action}; + } + } - #numeric values - $checked->{exclude} = 0; - for my $param ( - 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', - 'exclude', 'show_hint_to_add_schedule', 'weekday week_of_month', 'month' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + #numeric values + $checked->{exclude} = 0; + for my $param ( + 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', + 'exclude', 'show_hint_to_add_schedule', 'weekday week_of_month', 'month' + ) + { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - $checked->{template} = template::check($config, $params->{template}, 'edit_work_time' ); + $checked->{template} = template::check( $config, $params->{template}, 'edit_work_time' ); - if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) { + if ( ( defined $checked->{action} ) && ( $checked->{action} eq 'save_schedule' ) ) { - #set defaults - $checked->{create_events} = 0; - $checked->{publish_events} = 0; - } - for my $param ( 'frequency', 'duration', 'default_duration' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + #set defaults + $checked->{create_events} = 0; + $checked->{publish_events} = 0; + } + for my $param ( 'frequency', 'duration', 'default_duration' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { + $checked->{$param} = $1; + } + } - #scalars - for my $param ( 'from', 'till', 'period_type', 'type', 'title' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + #scalars + for my $param ( 'from', 'till', 'period_type', 'type', 'title' ) { + if ( defined $params->{$param} ) { + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^\s+//g; + $checked->{$param} =~ s/\s+$//g; + } + } - for my $attr ('start') { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { - $checked->{$attr} = $1 . ':00'; - } - } + for my $attr ('start') { + if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { + $checked->{$attr} = $1 . ':00'; + } + } - for my $attr ('end') { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { - $checked->{$attr} = $1; - } - } + for my $attr ('end') { + if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) ) { + $checked->{$attr} = $1; + } + } - return $checked; + return $checked; } diff --git a/website/agenda/series.cgi b/website/agenda/series.cgi index 886a7a6..8f3413a 100755 --- a/website/agenda/series.cgi +++ b/website/agenda/series.cgi @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl -w use warnings "all"; use strict; @@ -18,84 +18,85 @@ my $r = shift; my $config = config::get('config/config.cgi'); -$params = check_params($params); +$params = check_params( $config, $params ); list_series( $config, $params ); sub list_series { - my $config = shift; - my $params = shift; + my $config = shift; + my $params = shift; - $config->{access}->{write} = 0; + $config->{access}->{write} = 0; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; - my $location = $params->{location}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $location = $params->{location}; - if (defined $location){ - my $studios = studios::get( - $config, - { - project_id => $project_id, + if ( defined $location ) { + my $studios = studios::get( + $config, + { + project_id => $project_id, location => $location - } - ); - + } + ); + $studio_id = $studios->[0]->{id}; } - my $conditions = {}; + my $conditions = {}; $conditions->{project_id} = $project_id if defined $project_id; - $conditions->{studio_id} = $studio_id if defined $studio_id; + $conditions->{studio_id} = $studio_id if defined $studio_id; - if (scalar (keys %$conditions) == 0){ + if ( scalar( keys %$conditions ) == 0 ) { $params->{info} .= "missing parameters"; return; } - $params->{info}.= Dumper($conditions); + $params->{info} .= Dumper($conditions); - my $series = series::get_event_age( $config, $conditions ); - my $series2 = []; - for my $serie ( sort { lc $a->{series_name} cmp lc $b->{series_name} } (@$series) ) { - next if $serie->{days_over} > 80 ; - next if $serie->{days_over} == 0 ; + my $series = series::get_event_age( $config, $conditions ); + my $series2 = []; + for my $serie ( sort { lc $a->{series_name} cmp lc $b->{series_name} } (@$series) ) { + next if $serie->{days_over} > 80; + next if $serie->{days_over} == 0; next unless defined $serie->{series_name}; next if $serie->{series_name} eq '_single_'; - push @$series2, $serie; - } - $params->{series} = $series2; + push @$series2, $serie; + } + $params->{series} = $series2; - $params->{info}.="no results found" if scalar(@$series)==0; - $params->{info}=''; + $params->{info} .= "no results found" if scalar(@$series) == 0; + $params->{info} = ''; - template::process($config, 'print', 'templates/series.html', $params ); + template::process( $config, 'print', 'templates/series.html', $params ); } sub check_params { - my $params = shift; + my $config = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - for my $param ('project_id', 'studio_id') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ( 'project_id', 'studio_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - for my $param ( 'location') { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + for my $param ('location') { + if ( defined $params->{$param} ) { + $checked->{$param} = $params->{$param}; + $checked->{$param} =~ s/^\s+//g; + $checked->{$param} =~ s/\s+$//g; + } + } - return $checked; + return $checked; } From afa56e9e1e78d5c18c8985ce275f8395e012cd2e Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 22 Sep 2018 21:39:20 +0200 Subject: [PATCH 025/391] config cache issues By default the configuration cached by the mod_perl2 instance. You can disable cache by setting cache/config=0. You should disable cache only if you have multiple calcms instances running on the same mod_perl2 server with different configuration. The Location of the configuration will be determined by config module now. --- lib/calcms/config.pm | 9 +- website/agenda/add_comment.cgi | 2 +- website/agenda/aggregate.cgi | 27 ++- website/agenda/cal.cgi | 2 +- website/agenda/category.cgi | 131 +++++----- website/agenda/events.cgi | 34 ++- website/agenda/planung/calendar.cgi | 1 + website/agenda/planung/create_events.cgi | 51 ++-- .../planung/templates/create_events.html | 63 ++--- website/agenda/series.cgi | 3 +- website/agenda/series_names.cgi | 226 +++++++++--------- website/agenda/upload_playout.cgi | 47 ++-- 12 files changed, 303 insertions(+), 293 deletions(-) diff --git a/lib/calcms/config.pm b/lib/calcms/config.pm index e51b65b..56bdcfb 100644 --- a/lib/calcms/config.pm +++ b/lib/calcms/config.pm @@ -3,6 +3,7 @@ package config; use warnings; use strict; +use FindBin(); use Config::General(); use base 'Exporter'; @@ -19,7 +20,7 @@ sub set { sub get { my $filename = shift; - return $config if defined $config;; + return $config if ( defined $config ) && ( $config->{cache}->{cache_config} == 1 ); my $configuration = Config::General->new( -ConfigFile => $filename, @@ -29,5 +30,11 @@ sub get { return $config; } +sub getFromScriptLocation() { + FindBin::again(); + my $configFile = $FindBin::Bin . '/config/config.cgi'; + return config::get($configFile); +} + #do not delete last line 1; diff --git a/website/agenda/add_comment.cgi b/website/agenda/add_comment.cgi index 66ca5f3..04dff2e 100755 --- a/website/agenda/add_comment.cgi +++ b/website/agenda/add_comment.cgi @@ -23,7 +23,7 @@ binmode STDOUT, ":utf8"; my $r=shift; (my $cgi, my $params, my $error)=params::get($r); -my $config = config::get('./config/config.cgi'); +my $config = config::getFromScriptLocation(); my $debug = $config->{system}->{debug}; my $request={ diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 993c1cf..35f5b20 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -21,7 +21,8 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { my %params = $cgi->Vars(); my $params = \%params; - my $config = config::get('config/config.cgi'); + my $config = config::getFromScriptLocation(); + my $debug = $config->{system}->{debug}; my $mem_debug = $config->{system}->{debug_memory}; my $base_dir = $config->{locations}->{base_dir}; @@ -32,9 +33,9 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { $output_header .= "Content-type:text/html; charset=UTF-8;\n\n"; } - $params->{exclude_locations} = 1; - $params->{exclude_projects} = 1; - $params->{exclude_event_images} = 1; + $params->{exclude_locations} = 1; + $params->{exclude_projects} = 1; + $params->{exclude_event_images} = 1; # $output_header.=''."\n"; my $request = { @@ -71,9 +72,9 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { my $menu = { content => '' }; $list->{day} = '' unless defined $list->{day}; - $list->{day} = $params->{date} if (defined $params->{date}) && ($params->{date} ne ''); - $list->{day} = $params->{from_date} if (defined $params->{from_date}) && ($params->{from_date} ne ''); - $list->{day} = 'today' if $list->{day} eq ''; + $list->{day} = $params->{date} if ( defined $params->{date} ) && ( $params->{date} ne '' ); + $list->{day} = $params->{from_date} if ( defined $params->{from_date} ) && ( $params->{from_date} ne '' ); + $list->{day} = 'today' if $list->{day} eq ''; $menu = aggregator::get_menu( $config, $request, $list->{day}, $list->{results} ); @@ -121,15 +122,15 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { $content =~ s/(<(div|span)\s+id="calcms_title".*?>).*?(<\/(div|span)>)/$list->{project_title}/g; my $values = []; - for my $value ($list->{'program'}, $list->{'series_name'}, $list->{'title'}, $list->{'location'}, $list->{'project_title'}){ - next unless defined $value; - next if $value eq ''; - push @$values, $value; + for my $value ( $list->{'program'}, $list->{'series_name'}, $list->{'title'}, $list->{'location'}, $list->{'project_title'} ) { + next unless defined $value; + next if $value eq ''; + push @$values, $value; } - my $title = join (' - ', @$values); + my $title = join( ' - ', @$values ); - $content=~s/()(.*?)(<\/title>)/$1$title$3/; + $content =~ s/(<title>)(.*?)(<\/title>)/$1$title$3/; $js = ''; if ( ( defined $list->{event_id} ) && ( $list->{event_id} ne '' ) ) { diff --git a/website/agenda/cal.cgi b/website/agenda/cal.cgi index e5961cd..558ba67 100755 --- a/website/agenda/cal.cgi +++ b/website/agenda/cal.cgi @@ -22,7 +22,7 @@ binmode STDOUT, ":encoding(UTF-8)"; if ( $0 =~ /cal.*?\.cgi$/ ) { ( my $cgi, my $params, my $error ) = params::get($r); - my $config = config::get('config/config.cgi'); + my $config = config::getFromScriptLocation(); my $debug = $config->{system}->{debug}; my $request = { diff --git a/website/agenda/category.cgi b/website/agenda/category.cgi index 18b64b5..7e6ba91 100755 --- a/website/agenda/category.cgi +++ b/website/agenda/category.cgi @@ -21,27 +21,26 @@ binmode STDOUT, ":utf8"; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); -my $config = config::get('config/config.cgi'); - +my $config = config::getFromScriptLocation(); my $debug = $config->{system}->{debug}; my $request = { - url => $ENV{QUERY_STRING}, - params => { - original => $params, - checked => check_params( $config, $params ), - }, + url => $ENV{QUERY_STRING}, + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $params = $request->{params}->{checked}; my $cache = {}; if ( $config->{cache}->{use_cache} eq '1' ) { - cache::configure('categories.html'); - $cache = cache::load( $config, $params ); - if ( defined $cache->{content} ) { - print $cache->{content}; - return; - } + cache::configure('categories.html'); + $cache = cache::load( $config, $params ); + if ( defined $cache->{content} ) { + print $cache->{content}; + return; + } } my $dbh = db::connect($config); @@ -56,87 +55,87 @@ $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} my $template = $params->{template}; my $out = ''; -template::process($config, $out, $params->{template}, $template_parameters ); +template::process( $config, $out, $params->{template}, $template_parameters ); print $out; #write to cache if ( $config->{cache}->{use_cache} eq '1' ) { - $cache->{content} = $out; - cache::save($cache); + $cache->{content} = $out; + cache::save($cache); } sub getProjects { - my $dbh = shift; - my $config = shift; + my $dbh = shift; + my $config = shift; - my $excludedProjects = {}; - if ( defined $config->{filter}->{projects_to_exclude} ) { - for my $project ( split( /\,/, $config->{filter}->{projects_to_exclude} ) ) { - $project =~ s/^\s+//g; - $project =~ s/\s+$//g; - $excludedProjects->{$project} = 1; - } - } + my $excludedProjects = {}; + if ( defined $config->{filter}->{projects_to_exclude} ) { + for my $project ( split( /\,/, $config->{filter}->{projects_to_exclude} ) ) { + $project =~ s/^\s+//g; + $project =~ s/\s+$//g; + $excludedProjects->{$project} = 1; + } + } - my $projects = project::get_sorted($config); - my $results = []; - for my $project (@$projects) { - next if defined $excludedProjects->{ $project->{name} }; - my $categories = getCategories( $dbh, $config, $project->{name} ); - $project->{isEmpty} = 1 if scalar(@$categories) == 0; - $project->{categories} = $categories; + my $projects = project::get_sorted($config); + my $results = []; + for my $project (@$projects) { + next if defined $excludedProjects->{ $project->{name} }; + my $categories = getCategories( $dbh, $config, $project->{name} ); + $project->{isEmpty} = 1 if scalar(@$categories) == 0; + $project->{categories} = $categories; - $project->{js_name} = $project->{name}; - $project->{js_name} =~ s/[^a-zA-Z\_0-9]/\_/g; - $project->{js_name} =~ s/\_+/\_/g; - push @$results, $project; - } - return $results; + $project->{js_name} = $project->{name}; + $project->{js_name} =~ s/[^a-zA-Z\_0-9]/\_/g; + $project->{js_name} =~ s/\_+/\_/g; + push @$results, $project; + } + return $results; } sub getCategories { - my $dbh = shift; - my $config = shift; - my $project = shift; + my $dbh = shift; + my $config = shift; + my $project = shift; - my $cond = ''; - my $bind_values = []; - if ( ( $project ne '' ) && ( $project ne 'all' ) ) { - $cond = 'where project=?'; - $bind_values = [$project]; - } + my $cond = ''; + my $bind_values = []; + if ( ( $project ne '' ) && ( $project ne 'all' ) ) { + $cond = 'where project=?'; + $bind_values = [$project]; + } - my $query = qq{ + my $query = qq{ select name, count(name) sum from calcms_categories $cond group by name order by sum desc, name }; - my $categories = db::get( $dbh, $query, $bind_values ); + my $categories = db::get( $dbh, $query, $bind_values ); - my $results = []; - for my $category (@$categories) { - push @$results, $category if $category->{sum} > 1; - } + my $results = []; + for my $category (@$categories) { + push @$results, $category if $category->{sum} > 1; + } - return $results; + return $results; } sub check_params { - my $config = $_[0]; - my $params = $_[1]; + my $config = $_[0]; + my $params = $_[1]; - my $template = template::check($config, $params->{template}, 'categories.html' ); + my $template = template::check( $config, $params->{template}, 'categories.html' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } - return { - template => $template, - debug => $debug - }; + return { + template => $template, + debug => $debug + }; } diff --git a/website/agenda/events.cgi b/website/agenda/events.cgi index ce48a22..c082433 100755 --- a/website/agenda/events.cgi +++ b/website/agenda/events.cgi @@ -6,7 +6,6 @@ no warnings 'redefine'; use Data::Dumper; -#use utf8; use DBI; use CGI qw(header param Vars); $CGI::POST_MAX = 1000; @@ -18,35 +17,32 @@ use log(); use events(); use time(); -#binmode STDOUT, ":utf8"; binmode STDOUT, ":encoding(UTF-8)"; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); if ( $0 =~ /events.*?\.cgi$/ ) { - #my $cgi=new CGI(); - #my %params=$cgi->Vars(); - our $config = config::get('config/config.cgi'); + my $config = config::getFromScriptLocation(); $params->{template} = '' unless defined $params->{template}; - $params->{recordings} = 1 if $params->{template} =~ /events_playout/; + $params->{recordings} = 1 if $params->{template} =~ /events_playout/; - $params->{exclude_locations} = 1; - $params->{exclude_projects} = 1; + $params->{exclude_locations} = 1; + $params->{exclude_projects} = 1; $params->{exclude_event_images} = 1; - - my $request = { - url => $ENV{QUERY_STRING}, - params => { - original => $params, - checked => events::check_params( $config, $params ), - }, - }; - my $output = ''; - events::get_cached_or_render( $output, $config, $request ); - print $output. "\n"; + my $request = { + url => $ENV{QUERY_STRING}, + params => { + original => $params, + checked => events::check_params( $config, $params ), + }, + }; + + my $output = ''; + events::get_cached_or_render( $output, $config, $request ); + print $output. "\n"; } 1; diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 541cbad..641aece 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -1417,6 +1417,7 @@ sub print_event { my $attr = ''; if ( $class =~ /play/ ) { + #$event->{rms_image}=~s/\.png/.svg/; $attr .= ' rms="' . $event->{rms_image} . '"' if defined $event->{rms_image}; $attr .= ' start="' . $event->{start} . '"' if defined $event->{start}; } diff --git a/website/agenda/planung/create_events.cgi b/website/agenda/planung/create_events.cgi index 91c7394..85d11bc 100755 --- a/website/agenda/planung/create_events.cgi +++ b/website/agenda/planung/create_events.cgi @@ -39,9 +39,9 @@ my $user_presets = uac::get_user_presets( ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); + if ( !defined $params->{action} ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); $params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); + if ( !defined $params->{action} ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); #print STDERR $params->{project_id}."\n"; my $request = { @@ -87,9 +87,14 @@ sub show_events { my $params = $request->{params}->{checked}; my $permissions = $request->{permissions}; unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); + uac::permissions_denied('read_events'); return; } + + my $events = getDates( $config, $request ); + $params->{events} = $events; + $params->{total} = scalar(@$events); + $params->{action} = 'show'; template::process( $config, 'print', $params->{template}, $params ); } @@ -106,6 +111,31 @@ sub create_events { } print STDERR "create events\n"; + my $dates = getDates( $config, $request ); + + print STDERR "<pre>found " . ( scalar @$dates ) . " dates\n"; + my $events = []; + for my $date (@$dates) { + + #print STDERR $date->{start}."\n"; + push @$events, createEvent( $config, $request, $date ); + } + $params->{events} = $events; + $params->{total} = scalar(@$events); + $params->{action} = 'created'; + template::process( $config, 'print', $params->{template}, $params ); +} + +sub getDates { + my $config = shift; + my $request = shift; + + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_event} == 1 ) { + uac::permissions_denied('read_event'); + return; + } my $project_id = $params->{project_id}; my $studio_id = $params->{studio_id}; @@ -126,8 +156,7 @@ sub create_events { } $params->{from_date} = $from_date; $params->{till_date} = $till_date; - - print STDERR "create events from $from_date to $till_date\n"; + print STDERR "$0: get events from $from_date to $till_date\n"; my $dates = series_dates::getDatesWithoutEvent( $config, @@ -138,16 +167,8 @@ sub create_events { till => $till_date } ); - print STDERR "<pre>found " . ( scalar @$dates ) . " dates\n"; - my $events = []; - for my $date (@$dates) { - #print STDERR $date->{start}."\n"; - push @$events, createEvent( $config, $request, $date ); - } - $params->{created_events} = $events; - $params->{created_total} = scalar(@$events); - template::process( $config, 'print', $params->{template}, $params ); + return $dates; } sub createEvent { @@ -191,7 +212,7 @@ sub check_params { #actions and roles $checked->{action} = ''; if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(create_events)$/ ) { + if ( $params->{action} =~ /^(create_events|show_events)$/ ) { $checked->{action} = $params->{action}; } } diff --git a/website/agenda/planung/templates/create_events.html b/website/agenda/planung/templates/create_events.html index 1602aab..fd4c1a9 100644 --- a/website/agenda/planung/templates/create_events.html +++ b/website/agenda/planung/templates/create_events.html @@ -1,33 +1,17 @@ -<TMPL_IF .allow.scan_series_events> - -<script type="text/javascript"> -<TMPL_IF .getBack> - $(document).ready( - function(){ - getBack() - } - ); -</TMPL_IF> - -function assign_series(project_id, studio_id){ - if (project_id == '') return false; - if (studio_id == '') return false; - - var url="create_events.cgi?project_id="+project_id+'&studio_id='+studio_id+'&action=create_events'; - $('#create_event_form').submit(); - return false; -} +<TMPL_IF .allow.read_event> <script type="text/javascript"> + <TMPL_IF .getBack> + $(document).ready(function() { + getBack() + }); + </TMPL_IF> </script> - <h1>create events from schedule</h1> -<form id="create_event_form"> - <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> - <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> - <input type="hidden" name="action" value="create_events"> - - duration +<form id="create_event_form" method="post"> + <input type="hidden" name="project_id" + value="<TMPL_VAR .project_id>"> <input type="hidden" + name="studio_id" value="<TMPL_VAR .studio_id>"> duration <select name="duration"> <option value="7">1 week</option> <option value="14">2 weeks</option> @@ -35,20 +19,25 @@ function assign_series(project_id, studio_id){ <option value="28">4 weeks</option> </select> - <button target="_blank" - onclick="assign_series('<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>');return false;" - >create</button> + <TMPL_IF .allow.read_event> + <button target="_blank" type='submit' name="action" value="show">show</button> + </TMPL_IF> + <TMPL_IF .allow.assign_series_events> + <button target="_blank" type='submit' name="action" + value="create_events">create</button> + </TMPL_IF> </form> -<div class="view" style="clear:both"> -created <TMPL_VAR created_total> events from <TMPL_VAR from_date> till <TMPL_VAR till_date><br> -<TMPL_LOOP created_events> events created - <TMPL_var start><TMPL_var full_title><br> -</TMPL_LOOP> +<div class="view" style="clear: both"> + <TMPL_VAR action> <TMPL_VAR created_total> + events from <TMPL_VAR from_date> till <TMPL_VAR till_date> + <br> -</view> + <TMPL_LOOP events> <TMPL_var start> <TMPL_var + full_title> <br></TMPL_LOOP> </view> -</body> -</html> + </body> + </html> + <TMPL_ELSE> missing permission to read events </TMPL_IF> diff --git a/website/agenda/series.cgi b/website/agenda/series.cgi index 8f3413a..c0d022a 100755 --- a/website/agenda/series.cgi +++ b/website/agenda/series.cgi @@ -16,8 +16,7 @@ print "Content-Type: text/html; charset=utf-8\n\n"; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); -my $config = config::get('config/config.cgi'); - +my $config = config::getFromScriptLocation(); $params = check_params( $config, $params ); list_series( $config, $params ); diff --git a/website/agenda/series_names.cgi b/website/agenda/series_names.cgi index 41e94f1..98b4111 100755 --- a/website/agenda/series_names.cgi +++ b/website/agenda/series_names.cgi @@ -2,6 +2,7 @@ #use utf8; use warnings "all"; + #use diagnostics; use strict; use Data::Dumper; @@ -23,17 +24,16 @@ binmode STDOUT, ":utf8"; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); -my $config = config::get('config/config.cgi'); - +my $config = config::getFromScriptLocation(); my $debug = $config->{system}->{debug}; #get request my $request = { - url => $ENV{QUERY_STRING}, - params => { - original => $params, - checked => check_params( $config, $params ) - }, + url => $ENV{QUERY_STRING}, + params => { + original => $params, + checked => check_params( $config, $params ) + }, }; $params = $request->{params}->{checked}; @@ -41,12 +41,12 @@ $params = $request->{params}->{checked}; #read cache my $cache = {}; if ( $config->{cache}->{use_cache} eq '1' ) { - cache::configure('series_names.html'); - $cache = cache::load( $config, $params ); - if ( defined $cache->{content} ) { - print $cache->{content}; - return; - } + cache::configure('series_names.html'); + $cache = cache::load( $config, $params ); + if ( defined $cache->{content} ) { + print $cache->{content}; + return; + } } #connect @@ -56,111 +56,111 @@ my $dbh = db::connect($config); my $template_parameters = {}; $template_parameters->{projects} = getProjects( $dbh, $config, $params ); $template_parameters->{debug} = $config->{system}->{debug}; -$template_parameters->{server_cache} = $config->{cache}->{server_cache} if $config->{cache}->{server_cache} ; -$template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if $config->{cache}->{use_client_cache} ; +$template_parameters->{server_cache} = $config->{cache}->{server_cache} if $config->{cache}->{server_cache}; +$template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if $config->{cache}->{use_client_cache}; #output template my $template = $params->{template}; my $out = ''; -template::process($config, $out, $params->{template}, $template_parameters ); +template::process( $config, $out, $params->{template}, $template_parameters ); print $out; #write to cache if ( $config->{cache}->{use_cache} eq '1' ) { - $cache->{content} = $out; - cache::save($cache); + $cache->{content} = $out; + cache::save($cache); } $cache = undef; $out = undef; sub getProjects { - my $dbh = shift; - my $config = shift; - my $params = shift; + my $dbh = shift; + my $config = shift; + my $params = shift; - my $prev_series_names = undef; - my $projects = project::get_sorted($config); + my $prev_series_names = undef; + my $projects = project::get_sorted($config); - my $excludedProjects = {}; - if ( defined $config->{filter}->{projects_to_exclude} ) { - for my $project ( split( /\,/, $config->{filter}->{projects_to_exclude} ) ) { - $project =~ s/^\s+//g; - $project =~ s/\s+$//g; - $excludedProjects->{$project} = 1; - } - } + my $excludedProjects = {}; + if ( defined $config->{filter}->{projects_to_exclude} ) { + for my $project ( split( /\,/, $config->{filter}->{projects_to_exclude} ) ) { + $project =~ s/^\s+//g; + $project =~ s/\s+$//g; + $excludedProjects->{$project} = 1; + } + } - my $results = []; - for my $project (@$projects) { - next if defined $excludedProjects->{ $project->{name} }; + my $results = []; + for my $project (@$projects) { + next if defined $excludedProjects->{ $project->{name} }; - my $series_names = getSeriesNames( $dbh, $config, $project->{name}, $params ); - $project->{isEmpty} = 1 if scalar(@$series_names) == 0; - $project->{series_names} = $series_names; + my $series_names = getSeriesNames( $dbh, $config, $project->{name}, $params ); + $project->{isEmpty} = 1 if scalar(@$series_names) == 0; + $project->{series_names} = $series_names; - $project->{js_name} = $project->{name}; - $project->{js_name} =~ s/[^a-zA-Z\_0-9]/\_/g; - $project->{js_name} =~ s/\_+/\_/g; + $project->{js_name} = $project->{name}; + $project->{js_name} =~ s/[^a-zA-Z\_0-9]/\_/g; + $project->{js_name} =~ s/\_+/\_/g; - #mark last series_name entry of all non empty projects - if ( ( defined $series_names ) && ( scalar @$series_names > 0 ) ) { - $series_names->[-1]->{last} = 1; - $prev_series_names->[-1]->{last} = 0 if ( defined $prev_series_names ) && ( sclar @$prev_series_names > 0 ) ; - $prev_series_names = $series_names; - } - push @$results, $project; - } - return $results; + #mark last series_name entry of all non empty projects + if ( ( defined $series_names ) && ( scalar @$series_names > 0 ) ) { + $series_names->[-1]->{last} = 1; + $prev_series_names->[-1]->{last} = 0 if ( defined $prev_series_names ) && ( sclar @$prev_series_names > 0 ); + $prev_series_names = $series_names; + } + push @$results, $project; + } + return $results; } sub getSeriesNames { - my $dbh = shift; - my $config = shift; - my $project = shift; - my $params = shift; + my $dbh = shift; + my $config = shift; + my $project = shift; + my $params = shift; - my $debug = $config->{system}->{debug}; - my $bind_values = []; + my $debug = $config->{system}->{debug}; + my $bind_values = []; - my @conds = (); - if ( defined $config->{filter}->{locations_to_exclude} ) { - my @exclude = (); - for my $location ( split( /\,/, $config->{filter}->{locations_to_exclude} ) ) { - $location =~ s/^\s+//g; - $location =~ s/\s+$//g; - push @exclude, '?'; - push @$bind_values, $location; - } - push @conds, 'location not in (' . join( ',', @exclude ) . ')'; - } + my @conds = (); + if ( defined $config->{filter}->{locations_to_exclude} ) { + my @exclude = (); + for my $location ( split( /\,/, $config->{filter}->{locations_to_exclude} ) ) { + $location =~ s/^\s+//g; + $location =~ s/\s+$//g; + push @exclude, '?'; + push @$bind_values, $location; + } + push @conds, 'location not in (' . join( ',', @exclude ) . ')'; + } - if ( defined $config->{filter}->{projects_to_exclude} ) { - my @exclude = (); - for my $project ( split( /\,/, $config->{filter}->{projects_to_exclude} ) ) { - $project =~ s/^\s+//g; - $project =~ s/\s+$//g; - push @exclude, '?'; - push @$bind_values, $project; - } - push @conds, 'project not in (' . join( ',', @exclude ) . ')'; - } + if ( defined $config->{filter}->{projects_to_exclude} ) { + my @exclude = (); + for my $project ( split( /\,/, $config->{filter}->{projects_to_exclude} ) ) { + $project =~ s/^\s+//g; + $project =~ s/\s+$//g; + push @exclude, '?'; + push @$bind_values, $project; + } + push @conds, 'project not in (' . join( ',', @exclude ) . ')'; + } - if ( ( $project ne '' ) && ( $project ne 'all' ) ) { - push @conds, 'project=?'; - push @$bind_values, $project; - } + if ( ( $project ne '' ) && ( $project ne 'all' ) ) { + push @conds, 'project=?'; + push @$bind_values, $project; + } - if ( ( $params->{search} ne '' ) ) { - push @conds, 'series_name like ?'; - push @$bind_values, '%' . $params->{search} . '%'; - } + if ( ( $params->{search} ne '' ) ) { + push @conds, 'series_name like ?'; + push @$bind_values, '%' . $params->{search} . '%'; + } - my $where = ''; - if ( @conds > 0 ) { - $where = 'where ' . join( ' and ', @conds ); - } + my $where = ''; + if ( @conds > 0 ) { + $where = 'where ' . join( ' and ', @conds ); + } - my $query = qq{ + my $query = qq{ select series_name, count(series_name) sum from calcms_events $where @@ -168,38 +168,38 @@ sub getSeriesNames { order by series_name }; - my $series_names = db::get( $dbh, $query, $bind_values ); + my $series_names = db::get( $dbh, $query, $bind_values ); - for my $series (@$series_names) { - $series->{series_name} = '' unless defined $series->{series_name}; - $series->{series_name} =~ s/\"//g; - $series->{series_name} = 'ohne' if $series->{series_name} eq ''; - $series->{series_name} = 'Einzelsendung' if $series->{series_name} eq '_single_'; - } + for my $series (@$series_names) { + $series->{series_name} = '' unless defined $series->{series_name}; + $series->{series_name} =~ s/\"//g; + $series->{series_name} = 'ohne' if $series->{series_name} eq ''; + $series->{series_name} = 'Einzelsendung' if $series->{series_name} eq '_single_'; + } - return $series_names; + return $series_names; } sub check_params { - my $config = shift; - my $params = shift; + my $config = shift; + my $params = shift; - my $template = template::check($config, $params->{template}, 'series_names.html' ); + my $template = template::check( $config, $params->{template}, 'series_names.html' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } - my $search = $params->{q} || $params->{search} || $params->{term} || ''; - if ( $search =~ /([a-z0-9A-Z\_\,]+)/ ) { - $search = $1; - } + my $search = $params->{q} || $params->{search} || $params->{term} || ''; + if ( $search =~ /([a-z0-9A-Z\_\,]+)/ ) { + $search = $1; + } - return { - template => $template, - debug => $debug, - search => $search, - }; + return { + template => $template, + debug => $debug, + search => $search, + }; } diff --git a/website/agenda/upload_playout.cgi b/website/agenda/upload_playout.cgi index 9bdbda8..cb7737e 100755 --- a/website/agenda/upload_playout.cgi +++ b/website/agenda/upload_playout.cgi @@ -1,6 +1,5 @@ #! /usr/bin/perl -w -#use utf8; use warnings "all"; use strict; @@ -10,7 +9,6 @@ $CGI::DISABLE_UPLOADS = 1; use Data::Dumper; -#use Apache2::Request; use JSON(); use params(); use config(); @@ -19,37 +17,36 @@ use playout(); my $r = shift; -#binmode STDOUT, ":utf8"; binmode STDOUT, ":encoding(UTF-8)"; if ( $0 =~ /upload_playout.*?\.cgi$/ ) { - # read POST content - my ( $buf, $content ); - while ( $r->read( $buf, 8192 ) ) { - $content .= $buf; - } - $content = "{}" unless $content; + # read POST content + my ( $buf, $content ); + while ( $r->read( $buf, 8192 ) ) { + $content .= $buf; + } + $content = "{}" unless $content; - # parse GET content - ( my $cgi, my $params, my $error ) = params::get($r); + # parse GET content + ( my $cgi, my $params, my $error ) = params::get($r); - my $config = config::get('config/config.cgi'); - my $debug = $config->{system}->{debug}; - my $len = $r->headers_in()->get('Content-Length'); - print "Content-type:text/plain\n\n"; + my $config = config::getFromScriptLocation(); + my $debug = $config->{system}->{debug}; + my $len = $r->headers_in()->get('Content-Length'); + print "Content-type:text/plain\n\n"; - my $json = JSON::decode_json($content); - $json->{project_id} = $params->{project_id} if defined $params->{project_id}; - $json->{studio_id} = $params->{studio_id} if defined $params->{studio_id}; - $config->{access}->{write} = 1; - my $result = playout::sync( $config, $json ); - $config->{access}->{write} = 0; + my $json = JSON::decode_json($content); + $json->{project_id} = $params->{project_id} if defined $params->{project_id}; + $json->{studio_id} = $params->{studio_id} if defined $params->{studio_id}; + $config->{access}->{write} = 1; + my $result = playout::sync( $config, $json ); + $config->{access}->{write} = 0; - #print Dumper($content)."\n"; - #print Dumper($r); - #print Dumper($json); - print "upload playout result:" . Dumper($result); + #print Dumper($content)."\n"; + #print Dumper($r); + #print Dumper($json); + print "upload playout result:" . Dumper($result); } 1; From 4134ffb27855f4fa7ba45cca3ce5253c49cc02f2 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 22 Sep 2018 22:43:31 +0200 Subject: [PATCH 026/391] add po files for create_events --- website/agenda/planung/pot/de/create_events.po | 0 website/agenda/planung/pot/en/create_events.po | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 website/agenda/planung/pot/de/create_events.po create mode 100644 website/agenda/planung/pot/en/create_events.po diff --git a/website/agenda/planung/pot/de/create_events.po b/website/agenda/planung/pot/de/create_events.po new file mode 100644 index 0000000..e69de29 diff --git a/website/agenda/planung/pot/en/create_events.po b/website/agenda/planung/pot/en/create_events.po new file mode 100644 index 0000000..e69de29 From 56881b92d070768799a457dfea77d176d8dcad9f Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 22 Sep 2018 22:47:00 +0200 Subject: [PATCH 027/391] rewrite Export to Google Calendar In the past Google Calendar exports were done by first removing all events of a day and then create new ones. This takes a lot of time for export and runs into Google Calendar usage limits after some time. By now content will be compared before removing/creating a single event one. To be able to do so, all other sync sources and targets have been removed, so its only possible to export from database to Google Calendar by this change. To trigger an export you need to create a trigger file. run_jobs.pl runs periodically e.g. started by cron and checks if a trigger file exists and start sync_cms.pl to export the selected events to the Google Calendar. Trigger files and jobs are configured at jobs.config. Each job has a source and target file containing the access data for calcms and the calendar. Configuration files have been cleaned up. Old Accounts and passwords have been removed. They hopefully should have been not active for a long time ;-) --- tools/sync_cms/INSTALL | 90 --- tools/sync_cms/config/jobs.config | 18 + .../sync_cms/config/source/calcms_ansage.cfg | 10 +- .../sync_cms/config/source/calcms_colabo.cfg | 10 +- .../source/{calcms.cfg => calcms_frb.cfg} | 16 +- .../sync_cms/config/source/calcms_piradio.cfg | 10 +- .../sync_cms/config/source/calcms_potsdam.cfg | 10 +- .../sync_cms/config/target/88vier_ansage.cfg | 8 +- .../sync_cms/config/target/88vier_colabo.cfg | 8 +- tools/sync_cms/config/target/88vier_frb.cfg | 21 + .../sync_cms/config/target/88vier_piradio.cfg | 8 +- tools/sync_cms/export_db.pl | 33 - tools/sync_cms/ical_html_to_ical_creole.pl | 17 - tools/sync_cms/import_ical.pl | 162 ----- tools/sync_cms/lib/CalcmsEvents.pm | 135 ++++ tools/sync_cms/lib/Common.pm | 75 ++ tools/sync_cms/lib/GoogleCalendar.pm | 197 +++++ tools/sync_cms/lib/GoogleCalendarApi.pm | 239 ++++--- tools/sync_cms/lib/source/calcms_i.pl | 133 ---- tools/sync_cms/lib/source/google_calendar.pl | 339 --------- tools/sync_cms/lib/target/google_calendar.pl | 233 ------ tools/sync_cms/lib/target/google_calendar2.pl | 254 ------- tools/sync_cms/lib/target/playlist_csv.pl | 195 ----- tools/sync_cms/run_jobs.pl | 81 +++ tools/sync_cms/sync_cms.pl | 671 ++++++------------ tools/sync_cms/sync_days.pl | 74 -- tools/sync_cms/sync_jobs/calcms_to_google.sh | 13 + tools/sync_cms/sync_jobs/sync.sh | 7 + tools/sync_cms/sync_jobs/update_ansage.sh | 6 + tools/sync_cms/sync_jobs/update_colabo.sh | 6 + tools/sync_cms/sync_jobs/update_frb.sh | 6 + tools/sync_cms/sync_jobs/update_piradio.sh | 6 + tools/sync_cms/sync_jobs/update_potsdam.sh | 6 + tools/sync_cms/time_gate.pl | 487 ------------- 34 files changed, 935 insertions(+), 2649 deletions(-) delete mode 100755 tools/sync_cms/INSTALL create mode 100644 tools/sync_cms/config/jobs.config rename tools/sync_cms/config/source/{calcms.cfg => calcms_frb.cfg} (54%) create mode 100644 tools/sync_cms/config/target/88vier_frb.cfg delete mode 100644 tools/sync_cms/export_db.pl delete mode 100644 tools/sync_cms/ical_html_to_ical_creole.pl delete mode 100755 tools/sync_cms/import_ical.pl create mode 100644 tools/sync_cms/lib/CalcmsEvents.pm create mode 100644 tools/sync_cms/lib/Common.pm create mode 100644 tools/sync_cms/lib/GoogleCalendar.pm delete mode 100644 tools/sync_cms/lib/source/calcms_i.pl delete mode 100755 tools/sync_cms/lib/source/google_calendar.pl delete mode 100644 tools/sync_cms/lib/target/google_calendar.pl delete mode 100644 tools/sync_cms/lib/target/google_calendar2.pl delete mode 100644 tools/sync_cms/lib/target/playlist_csv.pl create mode 100755 tools/sync_cms/run_jobs.pl delete mode 100644 tools/sync_cms/sync_days.pl create mode 100755 tools/sync_cms/sync_jobs/calcms_to_google.sh create mode 100755 tools/sync_cms/sync_jobs/sync.sh create mode 100755 tools/sync_cms/sync_jobs/update_ansage.sh create mode 100755 tools/sync_cms/sync_jobs/update_colabo.sh create mode 100755 tools/sync_cms/sync_jobs/update_frb.sh create mode 100755 tools/sync_cms/sync_jobs/update_piradio.sh create mode 100755 tools/sync_cms/sync_jobs/update_potsdam.sh delete mode 100644 tools/sync_cms/time_gate.pl diff --git a/tools/sync_cms/INSTALL b/tools/sync_cms/INSTALL deleted file mode 100755 index ce7bea7..0000000 --- a/tools/sync_cms/INSTALL +++ /dev/null @@ -1,90 +0,0 @@ -#install libxml2, libxml2-dev (for headers) to use XML::Atom (required by Net::Google::Calendar) -#install perl modules: DateTime, DateTime::TimeZone, XML::Atom, XML::Atom::Feed, Net::Google::Calendar -#if reading calendar fails, patch Entry line 184, from -# if ($elem->hasAttribute($key)) { -# to -# if (defined $elem && $elem->hasAttribute($key)) { -# -#patch Entry before line 184, insert -# return unless ($tmp); - - -#patch Entry line 176, modify - $val =~ s!^http://schemas.google.com/g/2005#event\.!! if (defined $val); - -#admin,admin - - #all available google calendar definitions, replace in url 'basic' by 'full' to get calendar entries!!! (basic covers feed content only, but no calendar data...) -# google_calendars => { -# programm => 'http://www.google.com/calendar/feeds/58ei894fakpf84hj0u7o6el4sc%40group.calendar.google.com/public/full', -# programm_intern => 'http://www.google.com/calendar/feeds/lin4mscfdld2eiv22qda82t478%40group.calendar.google.com/public/full', -# planung => 'http://www.google.com/calendar/feeds/0is4ruq5thsb6ndsqr5gicff2k%40group.calendar.google.com/public/full', -# termine_intern => 'http://www.google.com/calendar/feeds/1n762hqutnsocd46h6nji3i2l4%40group.calendar.google.com/public/full', -# termine => 'http://www.google.com/calendar/feeds/f29rqfutlkub911i8u0eerusb0%40group.calendar.google.com/public/full' -# }, - -GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, FILE, INDEX, ALTER ON * . * TO 'root'@'localhost' IDENTIFIED BY 'calcms' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; - -Query OK, 0 rows affected (0.02 sec) - -flush previleges -https://www.google.com/calendar/dav/peter_retep@gmx.de/events - - -create database calcms-herbstradio; -mysql calcms_herbstradio -u root -p < calcms/calcms.sql - - -GRANT SELECT ON * . * TO 'root'@'localhost' IDENTIFIED BY 'calcms-agenda' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; - - -flush previleges - - -CREATE USER 'milan'@'localhost' IDENTIFIED BY 'eeGei3Yo'; -GRANT SELECT ON calcms_agenda.* TO 'calcms'@'localhost'; - -chmod 777 cache - -GRANT SELECT ON calcms_herbstradio.* TO 'calcms_agenda'@'localhost' IDENTIFIED BY 'eeGei3Yo' -GRANT SELECT, INSERT, UPDATE ON calcms_herbstradio.* TO 'calcms'@'localhost' IDENTIFIED BY 'CheiBai8' - - -ERROR: Can't create '/usr/local/lib/perl5/5.8.6/man/man3' -Do not have write permissions on '/usr/local/lib/perl5/5.8.6/man/man3' -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - at /home/milan/perl/lib/Module/Build/Base.pm line 2975 - SIMONW/Net-Google-Calendar-0.97.tar.gz - ./Build install -- NOT OK ----- - You may have to su to root to install the package - (Or you may want to run something like - o conf make_install_make_command 'sudo make' - to raise your permissions.Failed during this command: - DROLSKY/DateTime-Locale-0.43.tar.gz : install NO - DROLSKY/DateTime-TimeZone-0.91.tar.gz : install NO - DROLSKY/DateTime-0.50.tar.gz : make_test NO - SIMONW/Net-Google-AuthSub-0.5.tar.gz : install NO - GRANTM/XML-SAX-0.96.tar.gz : make_test NO - SIMONW/Net-Google-Calendar-0.97.tar.gz : install NO - -See perldoc ExtUtils::MakeMaker for full details. For Module::Build -modules, you need to create a ~/.modulebuildrc file containing -bindoc=~/man/man1 libdoc=~/man/man3 - -o conf makepl_arg "PREFIX=/home/milan/perl/ LIB=/home/milan/perl/lib INST_LIB=/home/milan/perl/lib INSTALLSITELIB=/home/milan/perl/lib INSTALLMAN1DIR=/home/milan/perl/man/man1 INSTALLSITEMAN1DIR=/home/milan/perl/man/man1 INSTALLMAN3DIR=~/home/milan/perl/man/man3 INSTALLSITEMAN3DIR=/home/milan/perl/man/man3 INSTALLDIRS=/home/milan/perl/ SITEPREFIX=/home/milan/perl/ VENDORPREFIX=/home/milan/perl/" - -LIB=$PREFIX/lib INST_LIB=$PREFIX/lib PREFIX=$PREFIX SITEPREFIX=$PREFIX VENDORPREFIX=$PREFIX - - - - -o conf make_arg -I/home/twiki/lib/CPAN -o conf make_install_arg -I/home/twiki/lib/CPAN -o conf makepl_arg "install_base=/home/twiki/lib/CPAN LIB=/home/twiki/lib/CPAN/lib INSTALLPRIVLIB=/home/twiki/lib/CPAN/lib INSTALLARCHLIB=/home/twiki/lib/CPAN/lib/arch INSTALLSITEARCH=/home/twiki/lib/CPAN/lib/arch INSTALLSITELIB=/home/twiki/lib/CPAN/lib INSTALLSCRIPT=/home/twiki/lib/CPAN/bin INSTALLBIN=/home/twiki/lib/CPAN/bin INSTALLSITEBIN=/home/twiki/lib/CPAN/bin INSTALLMAN1DIR=/home/twiki/lib/CPAN/man/man1 INSTALLSITEMAN1DIR=/home/twiki/lib/CPAN/man/man1 INSTALLMAN3DIR=/home/twiki/lib/CPAN/man/man3 INSTALLSITEMAN3DIR=/home/twiki/lib/CPAN/man/man3 " -o conf commit -q - - - - diff --git a/tools/sync_cms/config/jobs.config b/tools/sync_cms/config/jobs.config new file mode 100644 index 0000000..110b3c5 --- /dev/null +++ b/tools/sync_cms/config/jobs.config @@ -0,0 +1,18 @@ +<config> + +start_dir /home/calcms/agenda/admin/jobs/start/ +log_dir /home/calcms/agenda/admin/jobs/logs/ + +<job> + title potsdam : sender berlin -> 88vier.de + name potsdam_to_88vier.de + command /home/radio/calcms/sync_cms/sync_jobs/calcms_to_google.sh -7 31 potsdam +</job> + +<job> + title frb : sender berlin -> 88vier.de + name frb_to_88vier.de + command /home/radio/calcms/sync_cms/sync_jobs/calcms_to_google.sh -7 31 frb +</job> + +</config> diff --git a/tools/sync_cms/config/source/calcms_ansage.cfg b/tools/sync_cms/config/source/calcms_ansage.cfg index a404f68..3083ea4 100644 --- a/tools/sync_cms/config/source/calcms_ansage.cfg +++ b/tools/sync_cms/config/source/calcms_ansage.cfg @@ -1,12 +1,10 @@ <source> - type calcms_i - <access> hostname localhost port 3306 - database calcms_herbstradio - username calcms - password CheiBai8 + database calcms + username calcms_read + password password </access> <date> @@ -19,7 +17,7 @@ name 88vier title 88vier Studio Ansage start_date 2010-05-01 - end_date 2016-06-01 + end_date 2020-06-01 </88vier> </projects> location ansage diff --git a/tools/sync_cms/config/source/calcms_colabo.cfg b/tools/sync_cms/config/source/calcms_colabo.cfg index 06e2018..4be6dcd 100644 --- a/tools/sync_cms/config/source/calcms_colabo.cfg +++ b/tools/sync_cms/config/source/calcms_colabo.cfg @@ -1,12 +1,10 @@ <source> - type calcms_i - <access> hostname localhost port 3306 - database calcms_herbstradio - username calcms - password CheiBai8 + database calcms + username calcms_read + password password </access> <date> @@ -19,7 +17,7 @@ name 88vier title 88vier Colaboradio start_date 2010-05-01 - end_date 2016-06-01 + end_date 2020-06-01 </88vier> </projects> location colabo diff --git a/tools/sync_cms/config/source/calcms.cfg b/tools/sync_cms/config/source/calcms_frb.cfg similarity index 54% rename from tools/sync_cms/config/source/calcms.cfg rename to tools/sync_cms/config/source/calcms_frb.cfg index 2540478..5d89ead 100644 --- a/tools/sync_cms/config/source/calcms.cfg +++ b/tools/sync_cms/config/source/calcms_frb.cfg @@ -1,12 +1,10 @@ <source> - type calcms_i - <access> hostname localhost port 3306 - database calcms_herbstradio - username calcms - password CheiBai8 + database calcms + username calcms_read + password password </access> <date> @@ -17,15 +15,15 @@ <projects> <88vier> name 88vier - title 88vier PI-Radio 2010 + title 88vier FRB start_date 2010-05-01 - end_date 2013-08-31 + end_date 2020-06-01 </88vier> </projects> - location piradio + location frb <mapping> - event_details_url http://piradio.de/programm/sendung/<TMPL_VAR event_id>.html + event_details_url http://senderberlin.org/programm/sendung/<TMPL_VAR event_id>.html </mapping> <system> diff --git a/tools/sync_cms/config/source/calcms_piradio.cfg b/tools/sync_cms/config/source/calcms_piradio.cfg index 7a391c5..1f689ed 100644 --- a/tools/sync_cms/config/source/calcms_piradio.cfg +++ b/tools/sync_cms/config/source/calcms_piradio.cfg @@ -1,12 +1,10 @@ <source> - type calcms_i - <access> hostname localhost port 3306 - database calcms_herbstradio - username calcms - password CheiBai8 + database calcms + username calcms_read + password password </access> <date> @@ -19,7 +17,7 @@ name 88vier title 88vier PI-Radio start_date 2010-05-01 - end_date 2016-06-01 + end_date 2020-06-01 </88vier> </projects> location piradio diff --git a/tools/sync_cms/config/source/calcms_potsdam.cfg b/tools/sync_cms/config/source/calcms_potsdam.cfg index d2452c4..28d49c1 100644 --- a/tools/sync_cms/config/source/calcms_potsdam.cfg +++ b/tools/sync_cms/config/source/calcms_potsdam.cfg @@ -1,12 +1,10 @@ <source> - type calcms_i - <access> hostname localhost port 3306 - database calcms_herbstradio - username calcms - password CheiBai8 + database calcms + username calcms_read + password password </access> <date> @@ -19,7 +17,7 @@ name 88vier title 88vier Frrapo start_date 2010-05-01 - end_date 2016-06-01 + end_date 2020-06-01 </88vier> </projects> location potsdam diff --git a/tools/sync_cms/config/target/88vier_ansage.cfg b/tools/sync_cms/config/target/88vier_ansage.cfg index 67be6dc..bb7991e 100644 --- a/tools/sync_cms/config/target/88vier_ansage.cfg +++ b/tools/sync_cms/config/target/88vier_ansage.cfg @@ -1,10 +1,8 @@ <target> - type google_calendar2 - <access> - calendarId info@studioansage.de - serviceAccount 433089473368-bv26eveq03b7nhb9p62nu3ts7htgb4g3@developer.gserviceaccount.com - serviceAccountKeyFile /home/radio/googleApi.key + calendarId your-id + serviceAccount your-accounr@developer.gserviceaccount.com + serviceAccountKeyFile googleApi.key </access> <date> diff --git a/tools/sync_cms/config/target/88vier_colabo.cfg b/tools/sync_cms/config/target/88vier_colabo.cfg index 42df591..fbd2c13 100644 --- a/tools/sync_cms/config/target/88vier_colabo.cfg +++ b/tools/sync_cms/config/target/88vier_colabo.cfg @@ -1,10 +1,8 @@ <target> - type google_calendar2 - <access> - calendarId colaboradio@gmail.com - serviceAccount 433089473368-bv26eveq03b7nhb9p62nu3ts7htgb4g3@developer.gserviceaccount.com - serviceAccountKeyFile /home/radio/googleApi.key + calendarId your-calendar-id + serviceAccount your-account@developer.gserviceaccount.com + serviceAccountKeyFile googleApi.key </access> <date> diff --git a/tools/sync_cms/config/target/88vier_frb.cfg b/tools/sync_cms/config/target/88vier_frb.cfg new file mode 100644 index 0000000..a02aa9d --- /dev/null +++ b/tools/sync_cms/config/target/88vier_frb.cfg @@ -0,0 +1,21 @@ +<target> + <access> + calendarId your-id@group.calendar.google.com + serviceAccount your-account@developer.gserviceaccount.com + serviceAccountKeyFile googleApi.key + </access> + + <date> + time_zone Europe/Berlin + </date> + + <mapping> + title <TMPL_VAR location> : <TMPL_VAR series_name> - <TMPL_VAR title> + content <TMPL_VAR excerpt> <a href="<TMPL_VAR event_details_url>">mehr zur Sendung</a> + </mapping> + + <system> + debug 1 + </system> +</target> + diff --git a/tools/sync_cms/config/target/88vier_piradio.cfg b/tools/sync_cms/config/target/88vier_piradio.cfg index 7cc1aa7..8359efb 100644 --- a/tools/sync_cms/config/target/88vier_piradio.cfg +++ b/tools/sync_cms/config/target/88vier_piradio.cfg @@ -1,10 +1,8 @@ <target> - type google_calendar2 - <access> - calendarId li6if8drs373kf9ttot7er6suc@group.calendar.google.com - serviceAccount 433089473368-bv26eveq03b7nhb9p62nu3ts7htgb4g3@developer.gserviceaccount.com - serviceAccountKeyFile /home/radio/googleApi.key + calendarId your-id@group.calendar.google.com + serviceAccount your-account@developer.gserviceaccount.com + serviceAccountKeyFile googleApi.key </access> <date> diff --git a/tools/sync_cms/export_db.pl b/tools/sync_cms/export_db.pl deleted file mode 100644 index 79c3016..0000000 --- a/tools/sync_cms/export_db.pl +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use lib "../calcms"; -use utf8; - -use Data::Dumper; -use Config::General; -use Storable qw(nstore); - -use db; -use config; - -our $default={ - configFile => '/home/radio/piradio.de/agenda/config/config.cgi', - timezone => 'Europe/Berlin', - local_media_url => 'http://piradio.de/agenda_files/media/', - project => '88vier', - location => 'piradio', -}; - -my $config = config::get($default->{configFile}); -print Dumper($config); - -my $dbh=db::connect($config); -my $query=q{ - select * from calcms_events - order by start -}; - -my $events=db::get($dbh, $query); -nstore($events, 'event_export.dat'); diff --git a/tools/sync_cms/ical_html_to_ical_creole.pl b/tools/sync_cms/ical_html_to_ical_creole.pl deleted file mode 100644 index a512d49..0000000 --- a/tools/sync_cms/ical_html_to_ical_creole.pl +++ /dev/null @@ -1,17 +0,0 @@ -require '../lib/text_markup.pl'; - -open FILE,"<$ARGV[0]"; -while (<FILE>){ - my $line=$_; - if ($line=~/^DESCRIPTION:/){ - my $description=substr($line,length('DESCRIPTION:')); - my $html=markup::ical_to_plain($description); - my $creole=markup::html_to_creole($html); - my $ical=markup::plain_to_ical($creole); - $line= 'DESCRIPTION:'.$ical."\n"; - } - print $line; -} -close FILE; - - diff --git a/tools/sync_cms/import_ical.pl b/tools/sync_cms/import_ical.pl deleted file mode 100755 index ec25c76..0000000 --- a/tools/sync_cms/import_ical.pl +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use lib "../calcms"; -use utf8; - -use DateTime; -use Net::Google::Calendar; -use DateTime::Format::ICal; -use Data::Dumper; -use Config::General; - -use db; -use config; -use creole_wiki; -use markup; -use events; - -my $filename=$ARGV[0]; -die("USAGE: $0 filename") unless defined $filename; -die("cannot read from '$filename'") unless -e $filename; - -our $default={ - configFile => '/home/radio/piradio.de/agenda/config/config.cgi', - timezone => 'Europe/Berlin', - local_media_url => 'http://piradio.de/agenda_files/media/', - project => '88vier', - location => 'piradio', -}; - -my $config = config::get($default->{configFile}); -print Dumper($config); - -parseICalFile($config, $filename); -our $active=0; -sub parseICalFile{ - my $config=shift; - my $filename=shift; - - print "open $filename\n"; - open my $file, "<:encoding(UTF-8)", $filename; - my $parse=0; - my $event=undef; - my $lastKey=undef; - - while (<$file>){ - my $line=$_; - #print $parse." ".$line; - if ($line=~/^BEGIN\:VEVENT/){ - $event={}; - $parse=1; - #print "start event\n"; - next; - } - if ($line=~/^END\:VEVENT/){ - $parse=0; - processEvent($config, $event) if defined $event; - #print "end event\n"; - next; - } - if ($line=~/^\s/){ - my $key = $lastKey; - my $value = substr($line, 1); - $value=~s/[\r\n]+$//; - $event->{$key}.=$value; - $lastKey=$key; - next; - }else{ - my ($key,$value)=split(/\:/,$line,2); - $value=~s/[\r\n]+$//; - $event->{$key}=$value; - $lastKey=$key; - } - - } - close $file; -} - -sub processEvent{ - my $config=shift; - my $source=shift; - - my $event={}; - - $event->{title} = $source->{SUMMARY}; - $event->{content} = $source->{DESCRIPTION}; - $event->{title} = markup::ical_to_plain($event->{title}); - $event->{content} = markup::ical_to_plain($event->{content}); - - unless (defined $source->{DTSTART}){ - print STDERR "missing DTSTART in ".Dumper($source); - return; - } - unless (defined $source->{DTEND}){ - print STDERR "missing DTEND in ".Dumper($source); - return; - } - my $start = DateTime::Format::ICal->parse_datetime($source->{DTSTART}); - $start=$start->set_time_zone($default->{timezone}); - $event->{start} = $start->datetime(); - - my $end = DateTime::Format::ICal->parse_datetime($source->{DTEND}); - $end = $end->set_time_zone($default->{timezone}); - $event->{end} = $end->datetime(); - - my $params={ - title => $event->{title}, - content => $event->{content}, - local_media_url => $default->{local_media_url} - }; - - #$params->{content}=~s/\x0A\x20/\n/g; - $event=creole_wiki::extractEventFromWikiText($params, $event); - - $event->{project} = $default->{project}; - $event->{location} = $default->{location}; - - return unless ($event->{start} ge '2015-09-01'); - - $active=1 if ($event->{series_name}=~/Brainwashed/); - print "$active $event->{start} $event->{series_name} - $event->{title}\n"; - #saveEvent($config, $event); - #exit; -} - -sub saveEvent{ - my $config = shift; - my $event = shift; - - $config->{access}->{write}=1; - my $dbh=db::connect($config); - - $event->{'html_content'}=markup::creole_to_html($event->{'content'}); - - # set start date - my $day_start=$config->{date}->{day_starting_hour}; - $event->{start_date} = time::add_hours_to_datetime($event->{start}, -$day_start); - $event->{start_date} = time::datetime_to_date($event->{start_date}); - - # set end date - $event->{end_date} = time::add_hours_to_datetime($event->{end}, -$day_start); - $event->{end_date} = time::datetime_to_date($event->{end_date}); - - delete $event->{categories} if defined $event->{categories}; - - # set time of day - my $day_times=$config->{date}->{time_of_day}; - my $event_hour=int((split(/[\-\:\sT]/,$event->{start}))[3]); - for my $hour(sort {$a <=> $b} (keys %$day_times)){ - if ($event_hour >= $hour){ - $event->{time_of_day}=$day_times->{$hour}; - }else{ - last; - }; - } - $event->{published}=0; - $event->{modified_by}='sync_cms'; - print Dumper($event); - #db::insert($dbh,'calcms_events', $event); -} - diff --git a/tools/sync_cms/lib/CalcmsEvents.pm b/tools/sync_cms/lib/CalcmsEvents.pm new file mode 100644 index 0000000..9f9d45e --- /dev/null +++ b/tools/sync_cms/lib/CalcmsEvents.pm @@ -0,0 +1,135 @@ +package CalcmsEvents; + +use strict; +use warnings; + +use Common ('info','error'); +use DateTime; +use Data::Dumper; + +use creole_wiki; +use events; +use time; +#use config; + +my $settings = {}; + +sub init($) { + $settings = shift || {}; +} + +sub set($$) { + my $key = shift; + my $value = shift; + $settings->{$key} = $value; +} + +sub get($) { + my $key = shift; + return $settings->{$key}; +} + +# return a list of start_min, start_max request parameters. +sub splitRequest($$$) { + my $from = shift; + my $till = shift; + my $timeZone = shift; + + return undef unless defined $from; + return undef unless defined $till; + return undef if $from eq ''; + return undef if $till eq ''; + + my $dates = []; + + my $start = time::get_datetime( $from, $timeZone ); + my $end = time::get_datetime( $till, $timeZone ); + + #build a list of dates + my $date = $start; + my @dates = (); + while ( $date < $end ) { + push @dates, $date; + $date = $date->clone->add( days => 7 ); + } + my $duration = $end - $date; + + push @dates, $end->clone if $duration->delta_seconds <= 0; + + #build a list of parameters from dates + $start = shift @dates; + for my $end (@dates) { + push @$dates, + { + from => $start, + till => $end + }; + $start = $end; + } + + return $dates; + +} + +#get a hash with per-day-lists days of a google calendar, given by its url defined at $calendar_name +sub getEvents($$) { + my $from = shift; + my $till = shift; + + my $last_update = get('last_update'); + info "getEvents from $from till $till"; + + my $request_parameters = { + from_date => $from, + till_date => $till, + project => get('project'), + archive => 'all', + template => 'no' + }; + my $location = get('location') || ''; + $request_parameters->{location} = $location if $location ne ''; + + my $config = $settings; + my %params = (); + my $request = { + url => $ENV{QUERY_STRING}, + params => { + original => \%params, + checked => events::check_params( $config, $request_parameters, $settings ), + }, + }; + + my $sourceEvents = events::get( $config, $request, $settings ); + + #return events by date + my $eventsByDate = {}; + for my $source (@$sourceEvents) { + $source->{calcms_start} = $source->{start}; + my $key = substr( $source->{start}, 0, 10 ); + push @{ $eventsByDate->{$key} }, $source; + } + return $eventsByDate; +} + +sub mapToSchema { + my $event = shift; + + #override settings by source map filter + for my $key ( keys %{ get('mapping') } ) { + $event->{$key} = get('mapping')->{$key}; + } + + #resolve variables set in mapped values + for my $mkey ( keys %{ get('mapping') } ) { + for my $key ( keys %{$event} ) { + my $val = $event->{$key}; + $val = $event->{$key} if ( $mkey eq $key ); + $event->{$mkey} =~ s/<TMPL_VAR $key>/$val/g; + } + } + + return $event; +} + +#do not delete last line +1; diff --git a/tools/sync_cms/lib/Common.pm b/tools/sync_cms/lib/Common.pm new file mode 100644 index 0000000..90b78ca --- /dev/null +++ b/tools/sync_cms/lib/Common.pm @@ -0,0 +1,75 @@ +package Common; +use warnings; +use strict; + +use Fcntl ':flock'; + +use base 'Exporter'; +our @EXPORT_OK = ( 'info', 'error' ); + +sub checkSingleInstance() { + open my $self, '<', $0 or die "Couldn't open self: $!"; + flock $self, LOCK_EX | LOCK_NB or die "This script $0 is already running"; +} + +sub loadFile($) { + my $filename = shift; + + my $content = ''; + open my $file, '<', $filename || die("cannot load $filename"); + while (<$file>) { + $content .= $_; + } + close $file; + return $content; +} + +sub saveFile($$) { + my $filename = shift; + my $content = shift; + open my $file, ">:utf8", $filename || die("cannot write $filename"); + print $file $content; + close $file; + +} + +sub getModifiedAt { + my $file = shift; + my @stats = stat $file; + return 0 if scalar @stats == 0; + my $modifiedAt = $stats[9]; + return $modifiedAt; +} + +sub execute($) { + my $command = shift; + print "EXEC:\t$command\n"; + my $result = `$command`; + my $exitCode = ( $? >> 8 ); + print "ERROR! exitCode=$?\n" if $exitCode > 0; + return ( $exitCode, $result ); +} + +my $debug = 0; + +sub debug($$) { + my $level = shift; + my $message = shift; + print $message. "\n" if $debug > $level; +} + +sub error ($) { + print "\nERROR: $_[0]\nsee $0 --help for help"; + exit 1; +} + +sub info ($) { + my $message = shift; + if ( $message =~ /^\n/ ) { + $message =~ s/^\n//g; + print "\n"; + } + print "INFO:\t$message\n"; +} + +return 1; diff --git a/tools/sync_cms/lib/GoogleCalendar.pm b/tools/sync_cms/lib/GoogleCalendar.pm new file mode 100644 index 0000000..57df031 --- /dev/null +++ b/tools/sync_cms/lib/GoogleCalendar.pm @@ -0,0 +1,197 @@ +package GoogleCalendar; + +use strict; +use warnings; + +use Data::Dumper; + +use lib '../calcms/'; +use Common ( 'info', 'error' ); +use GoogleCalendarApi(); +use time(); + +my $settings = {}; +my $cal = undef; +my $debug = 1; + +sub set($$) { + my $key = shift; + my $value = shift; + $settings->{$key} = $value; +} + +sub get($) { + my $key = shift; + return $settings->{$key}; +} + +sub init($) { + $settings = shift || {}; + + my $access = get('access'); + + # 1. create service account at https://console.developers.google.com/ + # 2. enable Calendar API + # 3. share calendar with service account for update permissions + + # see http://search.cpan.org/~shigeta/Google-API-Client-0.13/lib/Google/API/Client.pm + + my $serviceAccount = $access->{serviceAccount}; + my $serviceAccountKeyFile = $access->{serviceAccountKeyFile}; + my $calendarId = $access->{calendarId}; + + my $serviceAccountKey = Common::loadFile($serviceAccountKeyFile); + my $calendar = GoogleCalendarApi->new( + { + 'serviceAccount' => $serviceAccount, + 'privateKey' => $serviceAccountKey, + 'calendarId' => $calendarId, + 'debug' => 0 + } + ); + + $cal = $calendar; +} + +#map event schema to target schema +sub mapToSchema { + my $event = shift; + + #clone event + my $targetEvent = {}; + for my $key ( keys %{$event} ) { + $targetEvent->{$key} = $event->{$key}; + } + + if ( defined $event->{recurrence} && ref( $event->{recurrence} ) eq 'HASH' ) { + $targetEvent->{reference} .= '[' . $event->{recurrence}->{number} . ']' if ( $event->{recurrence}->{number} > 0 ); + $targetEvent->{recurrence} = $event->{recurrence}->{number} + 0; + } + $targetEvent->{rating} = 0; + $targetEvent->{visibility} = 0; + + #set project by project's date range + my $projects = get('projects'); + if ( ref($projects) eq 'HASH' ) { + for my $projectName ( keys %$projects ) { + my $project = get('projects')->{$projectName}; + my $start = substr( $event->{start}, 0, 10 ); + if ( $start ge $project->{start_date} && $start le $project->{end_date} ) { + $targetEvent->{project} = $project->{name}; + } + } + } + + #override settings by target map filter + for my $key ( keys %{ get('mapping') } ) { + $targetEvent->{$key} = get('mapping')->{$key}; + } + + #resolve variables set in mapped values + for my $mkey ( keys %{ get('mapping') } ) { + for my $key ( sort keys %{$targetEvent} ) { + my $val = $targetEvent->{$key}; + $val = $event->{$key} if $mkey eq $key; + $targetEvent->{$mkey} =~ s/<TMPL_VAR $key>/$val/g; + } + } + $targetEvent->{title} =~ s/\s+$//g; + $targetEvent->{title} =~ s/\s*\#$//g; + $targetEvent->{title} =~ s/\s*\-\s*$//g; + + my $schema = { event => $targetEvent }; + + return $schema; +} + +#this is done before sync and allows to delete old events before adding new +sub getEvents { + my $event = shift; + + return undef if get('date')->{'time_zone'} eq ''; + return undef if $event->{start} eq ''; + return undef if $event->{end} eq ''; + + #delete a span of dates + my $timeZone = get('date')->{'time_zone'}; + my $start = time::get_datetime( $event->{start}, $timeZone ); + my $end = time::get_datetime( $event->{end}, $timeZone ); + + info( "search target for events from " . $start . " to " . $end ); + + #search datetime with same timezone + my $events = $cal->getEvents( + { + timeMin => $cal->getDateTime( $start->datetime, $timeZone ), + timeMax => $cal->getDateTime( $end->datetime, $timeZone ), + maxResults => 50, + singleEvents => 'true', + orderBy => 'startTime' + } + ); + + return $events; +} + +# insert a new event +sub insertEvent { + my $event = shift; + my $entity = $event->{event}; + + $entity->{'html_content'} = markup::creole_to_html( $entity->{'content'} ); + + my $timeZone = get('date')->{'time_zone'}; + + my $start = $cal->getDateTime( $entity->{start}, $timeZone ); + my $end = $cal->getDateTime( $entity->{end}, $timeZone ); + + #info "insert event\t$start\t$entity->{title}"; + my $entry = { + start => $start, + end => $end, + summary => $entity->{title}, + description => $entity->{content}, + location => $entity->{location}, + transparency => 'transparent', + status => 'confirmed' + }; + + my $result = $cal->insertEvent($entry); + my $id = $result->{id}; +} + +sub deleteEvent { + my $event = shift; + + #info "delete event"; + $cal->deleteEvent( $event->{id} ); +} + +sub fixFields { + my $event = shift; + + #lower case for upper case titles longer than 4 characters + for my $attr ( 'series_name', 'title' ) { + my $val = $event->{$attr}; + my $c = 0; + while ( $val =~ /\b([A-Z]{5,99})\b/ && $c < 10 ) { + my $word = $1; + my $lower = lc $word; + $lower =~ s/^([a-z])/\u$1/gi; + $val =~ s/$word/$lower/g; + $c++; + } + $event->{$attr} = $val if $event->{$attr} ne $val; + } + + for my $attr ( 'series_name', 'title', 'excerpt', 'content' ) { + my $val = $event->{$attr}; + $val =~ s/^\s*(.*?)\s*$/$1/g; + $val =~ s/^[ \t]/ /g; + $event->{$attr} = $val if $event->{$attr} ne $val; + } + return $event; +} + +#do not delete last line +1; diff --git a/tools/sync_cms/lib/GoogleCalendarApi.pm b/tools/sync_cms/lib/GoogleCalendarApi.pm index aec1490..4d690c0 100644 --- a/tools/sync_cms/lib/GoogleCalendarApi.pm +++ b/tools/sync_cms/lib/GoogleCalendarApi.pm @@ -2,6 +2,7 @@ package GoogleCalendarApi; use strict; use warnings; + use JSON; use JSON::WebToken; use LWP::UserAgent; @@ -9,34 +10,38 @@ use HTML::Entities; use URI::Escape; use Data::Dumper; use DateTime; +use Time::HiRes qw(sleep); +use Common ( 'info', 'error' ); sub new { my $class = shift; my $params = shift; - - my $self={}; - for my $attr ('calendarId','debug'){ - $self->{$attr}=$params->{$attr} if defined $params->{$attr}; + + #print Dumper($class); + my $self = {}; + for my $attr ( 'calendarId', 'debug' ) { + $self->{$attr} = $params->{$attr} if defined $params->{$attr}; } - - my $instance=bless $self, $class; - if ((defined $params->{serviceAccount}) && (defined $params->{privateKey})){ - $instance->login($params->{serviceAccount}, $params->{privateKey}); + $self->{debug} = 1; + + my $instance = bless $self, $class; + if ( ( defined $params->{serviceAccount} ) && ( defined $params->{privateKey} ) ) { + $instance->login( $params->{serviceAccount}, $params->{privateKey} ); } - + return $instance; } -sub setCalendar{ - my $self=shift; - my $calendarId=shift; - $self->{calendarId}=$calendarId; +sub setCalendar { + my $self = shift; + my $calendarId = shift; + $self->{calendarId} = $calendarId; } -sub getBasicUrl{ - my $self=shift; - return 'https://www.googleapis.com/calendar/v3/calendars/'.encode_entities($self->{calendarId}); +sub getBasicUrl { + my $self = shift; + return 'https://www.googleapis.com/calendar/v3/calendars/' . encode_entities( $self->{calendarId} ); } #https://developers.google.com/google-apps/calendar/v3/reference/events/list @@ -52,149 +57,161 @@ sub getBasicUrl{ # 'updated' => '2014-11-12T19:46:22.086Z', # 'items' => [...] # } -sub getEvents{ - my $self=shift; - my $params=shift; +sub getEvents { + my $self = shift; + my $params = shift; - my $url='/events?'; - for my $param ('iCalUID','alwaysIncludeEmail','maxAttendees','maxResults','orderBy','pageToken','privateExtendedProperty', - 'q','sharedExtendedProperty','showDeleted','showHiddenInvitations','singleEvents','syncToken','timeZone' - ){ - $url.='&'.$param.'='.uri_escape($params->{$param}) if defined $params->{$param}; + my $url = '/events?'; + for my $param ( + 'iCalUID', 'alwaysIncludeEmail', 'maxAttendees', 'maxResults', + 'orderBy', 'pageToken', 'privateExtendedProperty', 'q', + 'sharedExtendedProperty', 'showDeleted', 'showHiddenInvitations', 'singleEvents', + 'syncToken', 'timeZone' + ) + { + $url .= '&' . $param . '=' . uri_escape( $params->{$param} ) if defined $params->{$param}; } - for my $param ('timeMin','timeMax','updatedMin'){ - $url.='&'.$param.'='.uri_escape($self->formatDateTime($params->{$param})) if defined $params->{$param}; + for my $param ( 'timeMin', 'timeMax', 'updatedMin' ) { + $url .= '&' . $param . '=' . uri_escape( $self->formatDateTime( $params->{$param} ) ) if defined $params->{$param}; } - my $result=$self->httpRequest('GET', $url); + my $result = $self->httpRequest( 'GET', $url ); return $result; } # sleep 0.25 seconds to prevent hitting the 5.0 requests/second/user rate -sub sleep{ - my $this=shift; - my $duration=shift || 0.25; - select(undef, undef, undef, $duration); -} +#sub sleep{ +# my $this=shift; +# my $duration=shift; +# $duration=1 unless defined $duration; +# select(undef, undef, undef, $duration); +#} #https://developers.google.com/google-apps/calendar/v3/reference/events/delete -sub deleteEvent{ - my $self=shift; - my $eventId=shift; - my $url='/events/'.$eventId; +sub deleteEvent { + my $self = shift; + my $eventId = shift; + my $url = '/events/' . $eventId; + #DELETE https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId - my $result=$self->httpRequest('DELETE', $url); - $self->sleep(); + my $result = $self->httpRequest( 'DELETE', $url ); + + #$self->sleep(); return $result; } #https://developers.google.com/google-apps/calendar/v3/reference/events/insert -sub insertEvent{ - my $self=shift; - my $params=shift; +sub insertEvent { + my $self = shift; + my $params = shift; - my $event={ + my $event = { start => { - dateTime => $self->formatDateTime($params->{start}) + dateTime => $self->formatDateTime( $params->{start} ) }, - end => { - dateTime => $self->formatDateTime($params->{end}) + end => { + dateTime => $self->formatDateTime( $params->{end} ) }, - summary => $params->{summary}||'', - description => $params->{description}||'', - location => $params->{location}||'', - status => $params->{confirmed}||'confirmed' + summary => $params->{summary} || '', + description => $params->{description} || '', + location => $params->{location} || '', + status => $params->{confirmed} || 'confirmed' }; - $event= encode_json $event; + $event = encode_json $event; #POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events - my $url='/events'; - my $result=$self->httpRequest('POST', $url, $event); - $self->sleep(); + my $url = '/events'; + my $result = $self->httpRequest( 'POST', $url, $event ); + + #$self->sleep(); return $result; } # send a HTTP request -sub httpRequest{ - my $self=shift; - my $method=shift; - my $url=shift; - my $content=shift||''; - - print STDERR "$method ".$url."\n" if $self->{debug}; +sub httpRequest { + my $self = shift; + my $method = shift; + my $url = shift; + my $content = shift || ''; - die ("missing url") unless defined $url; - die ("calendarId not set") unless defined $self->{calendarId}; - die ("not logged in ") unless defined $self->{api}; + sleep 0.3; + print STDERR "$method " . $url . "\n" if $self->{debug}; - #prepend basic url including calendar id - $url=$self->getBasicUrl().$url; - print STDERR "$method ".$url."\n" if $self->{debug}; + die("missing url") unless defined $url; + die("calendarId not set") unless defined $self->{calendarId}; + die("not logged in ") unless defined $self->{api}; - my $response=undef; - if($method eq 'GET'){ + #prepend basic url including calendar id + $url = $self->getBasicUrl() . $url; + print STDERR "$method " . $url . "\n" if $self->{debug}; + + my $response = undef; + if ( $method eq 'GET' ) { $response = $self->{api}->get($url); - }elsif(($method eq 'POST')||($method eq 'PUT')){ - print STDERR $content."\n" if $self->{debug}; + } elsif ( ( $method eq 'POST' ) || ( $method eq 'PUT' ) ) { + #return; + print STDERR $content . "\n" if $self->{debug}; my $request = HTTP::Request->new( $method, $url ); $request->header( 'Content-Type' => 'application/json' ); - $request->content( $content ); - $response=$self->{api}->request( $request ); - }elsif($method eq 'DELETE'){ + $request->content($content); + $response = $self->{api}->request($request); + } elsif ( $method eq 'DELETE' ) { + #return; $response = $self->{api}->delete($url); } - if($response->is_success) { + if ( $response->is_success ) { my $content = $response->content; return {} if $content eq ''; return decode_json($content); } else { print "ERROR:\n"; - print "Code: ".$response->code."\n"; - print "Message: ".$response->message."\n"; - print $response->content."\n"; + print "Code: " . $response->code . "\n"; + print "Message: " . $response->message . "\n"; + print $response->content . "\n"; die; } } # write datetime object to string -sub formatDateTime{ - my $self=shift; - my $dt=shift; +sub formatDateTime { + my $self = shift; + my $dt = shift; - my $datetime= $dt->format_cldr("yyyy-MM-ddTHH:mm:ssZZZZZ"); + my $datetime = $dt->format_cldr("yyyy-MM-ddTHH:mm:ssZZZZZ"); print STDERR "$dt -> $datetime\n" if $self->{debug}; return $datetime; } # parse datetime from string to object -sub getDateTime{ - my $self=shift; - my $datetime=shift; - my $timezone=shift; +sub getDateTime { + my $self = shift; + my $datetime = shift; + my $timezone = shift; - return if((!defined $datetime) or ($datetime eq '')); - my @l=split /[\-\;T\s\:\+\.]/,$datetime; + return if ( !defined $datetime ) or ( $datetime eq '' ); + my @l = split /[\-\;T\s\:\+\.]/, $datetime; - $datetime=DateTime->new( - year => $l[0], - month => $l[1], - day => $l[2], - hour => $l[3], - minute => $l[4], - second => $l[5], - time_zone => $timezone - ); - return $datetime; + $datetime = DateTime->new( + year => $l[0], + month => $l[1], + day => $l[2], + hour => $l[3], + minute => $l[4], + second => $l[5], + time_zone => $timezone + ); + return $datetime; } # login with serviceAccount and webToken (from privateKey) -sub login{ - my $self=shift; - my $serviceAccount=shift; - my $privateKey=shift; +sub login { + my $self = shift; + my $serviceAccount = shift; + my $privateKey = shift; # https://developers.google.com/accounts/docs/OAuth2ServiceAccount my $time = time; + #create JSON Web Token my $jwt = JSON::WebToken->encode( { @@ -203,10 +220,10 @@ sub login{ aud => 'https://accounts.google.com/o/oauth2/token', exp => $time + 3600, iat => $time, - }, - $privateKey, - 'RS256', - {typ => 'JWT'} + }, + $privateKey, + 'RS256', + { typ => 'JWT' } ); #send JSON web token to authentication service @@ -215,16 +232,16 @@ sub login{ 'https://accounts.google.com/o/oauth2/token', { grant_type => encode_entities('urn:ietf:params:oauth:grant-type:jwt-bearer'), - assertion => $jwt + assertion => $jwt } ); - - die($response->code, "\n", $response->content, "\n") unless $response->is_success(); - my $data= decode_json($response->content); - + + die( $response->code, "\n", $response->content, "\n" ) unless $response->is_success(); + my $data = decode_json( $response->content ); + #create a new user agent and set token to bearer $self->{api} = LWP::UserAgent->new(); - $self->{api}->default_header(Authorization => 'Bearer ' . $data->{access_token}); + $self->{api}->default_header( Authorization => 'Bearer ' . $data->{access_token} ); print STDERR "login successful\n" if $self->{debug}; return $data; diff --git a/tools/sync_cms/lib/source/calcms_i.pl b/tools/sync_cms/lib/source/calcms_i.pl deleted file mode 100644 index 962c25d..0000000 --- a/tools/sync_cms/lib/source/calcms_i.pl +++ /dev/null @@ -1,133 +0,0 @@ -#use markup; -use creole_wiki; -use DateTime; -use events; -use time; -use config; -#use DateTime::Format::ICal; - -package source; -use Data::Dumper; - -my $settings={}; - -sub init{ - $source::settings=shift; - #print STDERR Dumper($source::settings); -} - -#return a list of start_min, start_max request parameters. list is defined as timespan given by start_min and start_max in source_options -sub split_request{ - - return undef if ( - (!(defined $source::settings->{start_min})) || ($source::settings->{start_min} eq'') - ||(!(defined $source::settings->{start_max})) || ($source::settings->{start_max} eq'') - ); - - #print Dumper($source_options); - my $dates=[]; - - my $start =time::get_datetime($source::settings->{start_min},$source::settings->{date}->{time_zone}); - my $end =time::get_datetime($source::settings->{start_max},$source::settings->{date}->{time_zone}); - my $date =$start; - - #build a list of dates - my @dates=(); - while ($date < $end){ - push @dates,$date; - $date=$date->clone->add(days=>7); - } - my $duration=$end-$date; -# print "sec:".($duration->delta_seconds/(60*60))."\n"; - if ($duration->delta_seconds <= 0){ -# pop @dates; - push @dates,$end->clone; - } - - #build a list of parameters from dates - my $start=shift @dates; - for my $end (@dates){ - push @$dates,{ - start_min => $start, - start_max => $end - }; - $start=$end; - } - -# for $day(@$dates){print "$day->{start_min} - $day->{start_max}\n";} - return $dates; - -} - -#get a hash with per-day-lists days of a google calendar, given by its url defined at $calendar_name -sub get_events{ - my $block_number =$source::settings->{block_number}; - my $block_size =$source::settings->{block_size}; - my $last_update =$source::settings->{last_update}; - - #print Dumper($request); - - my $request_parameters={ - from_date => $source::settings->{start_min}, - till_date => $source::settings->{start_max}, - archive => 'all', - project => $source::settings->{project}, - template => 'no' - }; - $request_parameters->{location}=$source::settings->{location} if ($source::settings->{location}ne''); - - my $config = $source::settings; - my $request={ - url => $ENV{QUERY_STRING}, - params => { - original => \%params, - checked => events::check_params($config, - $request_parameters, - $source::settings - ), - }, - }; - #print Dumper($request); - - my $source_events=events::get($config, $request, $source::settings); - #print Dumper($source_events); - - #return events by date - my $sources_by_date={}; - my $old_start=''; - for my $source (@$source_events){ - $source->{calcms_start}=$source->{start}; - my $key=substr($source->{start},0,10); - push @{$sources_by_date->{$key}},$source; - } - return $sources_by_date; -} - -sub get_event_attributes{ - my $source=shift; - return $source; -} - -sub map_to_schema{ - my $event=shift; -# print Dumper($source_options); -# exit; - - #override settings by source map filter - for my $key (keys %{$source::settings->{mapping}}){ - $event->{$key}=$source::settings->{mapping}->{$key}; - } - - #resolve variables set in mapped values - for my $mkey (keys %{$source::settings->{mapping}}){ - for my $key (keys %{$event}){ - my $val=$event->{$key}; - $val=$event->{$key} if($mkey eq $key); - $event->{$mkey}=~s/<TMPL_VAR $key>/$val/g; - } - } - - return $event; -} - -eof; diff --git a/tools/sync_cms/lib/source/google_calendar.pl b/tools/sync_cms/lib/source/google_calendar.pl deleted file mode 100755 index 4ce739a..0000000 --- a/tools/sync_cms/lib/source/google_calendar.pl +++ /dev/null @@ -1,339 +0,0 @@ -#use markup; -use creole_wiki; -use DateTime; -use Net::Google::Calendar; -use DateTime::Format::ICal; - -package source; -#do 'time.pl'; -use Data::Dumper; - -my $settings={}; - -sub init{ - $source::settings=shift; -} - -#return a list of start_min, start_max request parameters. -#list is defined as timespan given by start_min and start_max in source::settings -sub split_request{ - - return undef if ( - (!(defined $source::settings->{start_min})) || ($source::settings->{start_min} eq'') - ||(!(defined $source::settings->{start_max})) || ($source::settings->{start_max} eq'') - ); - - my $dates=[]; - - my $start =get_datetime($source::settings->{start_min},$source::settings->{date}->{time_zone}); - my $end =get_datetime($source::settings->{start_max},$source::settings->{date}->{time_zone}); - my $date =$start; - - #build a list of dates - my @dates=(); - while ($date < $end){ - push @dates,$date; - $date=$date->clone->add(days=>7); - } - my $duration=$end-$date; -# print "sec:".($duration->delta_seconds/(60*60))."\n"; - if ($duration->delta_seconds <= 0){ -# pop @dates; - push @dates,$end->clone; - } - - #build a list of parameters from dates - my $start=shift @dates; - for my $end (@dates){ - push @$dates,{ - start_min => $start, - start_max => $end - }; - $start=$end; - } - -# for $day(@$dates){print "$day->{start_min} - $day->{start_max}\n";} - return $dates; - -} - -#get a hash with per-day-lists days of a google calendar, given by its url defined at $calendar_name -sub get_events{ - -# print Dumper($source::settings); - my $url =$source::settings->{access}->{url}; - my $email =$source::settings->{access}->{email}; - my $password =$source::settings->{access}->{password}; - - my $block_number =$source::settings->{block_number}; - my $block_size =$source::settings->{block_size}; - my $last_update =$source::settings->{last_update}; - - my $parameters={}; - my $start_index=undef; - my $stop_index=undef; - if ($source::settings->{read_blocks}==1){ - my $start_index=$block_number*$block_size+1 ; - my $stop_index=$start_index+$block_size-1; - $parameters->{"start-index"} = $start_index; - $parameters->{"max-results"} = $block_size; - $source::settings->{start_index}=$start_index; - $source::settings->{stop_index}=$stop_index; - }else{ - $parameters->{"max-results"} = 10000; - } - - #see http://code.google.com/intl/de/apis/calendar/data/2.0/reference.html - $parameters->{singleevents}='true'; - $parameters->{orderby}='lastmodified'; - - my $more='modified' if (defined $last_update && $source::settings->{modified_events}==1); - main::print_info("read $more events from google calendar: '".substr($url,0,40)."...".substr($url,length($url)-8)."'"); - - # print "\nblock '$block_number' (events ".$start_index."..".$stop_index.") \n" if (defined $block_number || defined $start_index || defined $stop_index); - - # http://search.cpan.org/~simonw/Net-Google-Calendar-0.97/lib/Net/Google/Calendar.pm#get_events_[_%opts_] - - my $cal = Net::Google::Calendar->new( url => $url ); - #main::print_info("new\n"); - if ($email ne'' && $password ne''){ - $cal->login($email, $password) ; - # $cal->auth($email, $password) if ($email ne'' && $password ne''); - # main::print_info("login $email $password"); - } - #print Dumper($cal); - - #set UTF-8 - $XML::Atom::ForceUnicode = 1; - $XML::Atom::DefaultVersion = "1.0"; - -# my $xml=$cal->get_xml(); -# $xml=~s/<content/\n<content/gi; -# print $xml."\n"; -# exit; - - #set updated-min (using UTC) - if ((defined $last_update) && ($source::settings->{modified_events}==1)){ - my $datetime=$last_update; - $datetime=source::get_datetime($datetime,$source::settings->{date}->{time_zone}) if (ref($datetime)eq''); - $datetime->set_time_zone('UTC'); - $parameters->{"updated-min"} = $datetime->datetime; - #print "last update\n"; - } - #set start min (using UTC) - if ((defined $source::settings->{start_min}) && ($source::settings->{start_min}ne'')){ - my $datetime=$source::settings->{start_min}; - $datetime=source::get_datetime($datetime,$source::settings->{date}->{time_zone}) if (ref($datetime)eq''); - $datetime->set_time_zone('UTC'); - $parameters->{"start-min"} = $datetime->datetime; - $parameters->{"recurrence-expansion-start"}= $datetime->datetime; - } - #set start max (using UTC) - if ((defined $source::settings->{start_max})&&($source::settings->{start_max} ne'')){ - my $datetime=$source::settings->{start_max}; - $datetime=source::get_datetime($datetime,$source::settings->{date}->{time_zone}) if (ref($datetime)eq''); - $datetime->set_time_zone('UTC'); - $parameters->{"start-max"} = $datetime->datetime; - $parameters->{"recurrence-expansion-end"}= $datetime->datetime; - } - - -# print Dumper($parameters); - my @events=(); - my @source_events=$cal->get_events(%$parameters); - main::print_info("found ".@source_events." events"); - -# print Dumper($parameters); -# print Dumper($source::settings); -# exit; - - for my $source(@source_events) { - (my $start,my $end)=$source->when; - $start= $start->set_time_zone($source::settings->{date}->{time_zone})->datetime if (defined $start); - $end= $end->set_time_zone ($source::settings->{date}->{time_zone})->datetime if (defined $end); - $source->{calcms_start} = $start; - $source->{calcms_end} = $end; - $source->{status} = $source->status; - } - - #return events by date - my $sources_by_date={}; - my $old_start=''; -# for my $source (sort{$a->{calcms_start} cmp $b->{calcms_start} }@source_events){ - for my $source (@source_events){ -# if ($source->{status}eq'confirmed'){ - my $key=substr($source->{calcms_start},0,10); -# if ($old_start eq $source->{calcms_start}){ -# my $source=pop (@{$sources_by_date->{$key}}); -# print STDERR "WARNING: ignore canceled entry in google calendar: ".$source->{calcms_start}."\t".$source->{title}."\t".$source->{id}."\n"; -# } -# - push @{$sources_by_date->{$key}},$source; -# -# $old_start=$source->{calcms_start}; -# } - } - return $sources_by_date; -} - -sub map_to_schema{ - my $event=shift; - - my $params={ - title => $event->{title}, - content => $event->{content}, - local_media_url => '<TMPL_VAR local_media_url>' - }; - $params->{content}=~s/\x0A\x20/\n/g; - #print Dumper($params); - #open FILE,">/tmp/test"; - #print FILE Dumper($params); - #close FILE; - - #decode event - $event=creole_wiki::extractEventFromWikiText($params, $event); - #exit; - - #override settings by source map filter - for my $key (keys %{$source::settings->{mapping}}){ - $event->{$key}=$source::settings->{mapping}->{$key}; - } - - #resolve variables set in mapped values - for my $mkey (keys %{$source::settings->{mapping}}){ - for my $key (keys %{$event}){ - my $val=$event->{$key}; - $val=$event->{$key} if($mkey eq $key); - $event->{$mkey}=~s/<TMPL_VAR $key>/$val/g; - } - } - #print Dumper($event); - - return $event; -} - -sub get_event_attributes{ - my $source=shift; - - #print @source_events." ".Dumper($source)."\n"; - #use Data::Dumper;print Dumper($source->when); - - #create an hash with calendar event settings - my $event={ - start => $source->{calcms_start}, - end => $source->{calcms_end}, - status => $source->{status}, -# recurrence => $source->{recurrence}, - reference => $source->id, -# program => $program, -# series_name => $series_name, - title => $source->title, - content => $source->content->body, - author_name => $source->author->name, - author_uri => $source->author->uri, - author_email => $source->author->email, - transparency => $source->transparency, - visibility => $source->visibility, - location => $source->location, -# podcast_url => $podcast_url, -# media_url => $media_url, -# comments => $source->comments -# who_name => $source->who->name, -# who_email => $source->who->email, -# who_attendee_status => $source->who->attendee_status, - }; - #print Dumper($event); - -# if ($source->recurrence){ -# $event->{recurrence}=get_event_recurrence($source,$event); -# } - - return $event; -} - -sub get_event_recurrence{ - my $source=shift; - my $event=shift; - #print Dumper(); - - my $event_recurrence=$source->recurrence; - my $properties = $event_recurrence->properties; -# print Dumper($properties); - - my $dtstart = $properties->{dtstart}->[0]->{value}; - my $timezone = $properties->{dtstart}->[0]->{_parameters}->{TZID}; - my $dtend = $properties->{dtend}->[0]->{value}; - my $rrule = $properties->{rrule}->[0]->{value}; -# print $rrule."\n"; - - #convert timezone from "until=<datetime>" to same datetime as in dtstart - if ($rrule=~/UNTIL=([\dT]+Z?)/){ - my $ical=$1; - - #convert timezone at ical format - my $datetime= DateTime::Format::ICal->parse_datetime($ical); - $datetime=$datetime->set_time_zone($timezone); - $ical=DateTime::Format::ICal->format_datetime($datetime); - - #remove TZID=... from ical, since not implemented at format_datetime - $ical=~s/[^\:]+\://; - $rrule=~s/(UNTIL\=)([\dT]+Z?)/$1$ical/g; -# print $datetime->datetime." --> $ical --> $rrule\n"; - } - - $dtstart = DateTime::Format::ICal->parse_datetime($dtstart); - $dtend = DateTime::Format::ICal->parse_datetime($dtend);#->add(seconds=>3600)->set_time_zone('UTC'); - - my $recurrence={ - dtstart => $dtstart, - dtend => $dtend, - rrule => $rrule - }; - - #calc duration of the event - my $duration=$dtend-$dtstart; - my $duration_min=$duration->delta_minutes; - -# print Dumper($duration_min); - #print Dumper($recurrence); - my $recurrence_start = DateTime::Format::ICal->parse_recurrence( - recurrence =>$rrule, - dtstart =>$dtstart - ); - - #step through recurrent events and mark if event matchs - my $start_iter = $recurrence_start->iterator; - $c=1; - while (my $start = $start_iter->next ){ -# print "$start eq $event->{start}, $end\n"; - $recurrence->{number}=$c if ($start eq $event->{start}); -# push @dates,{ -# start => $start->set_time_zone($source::settings->{time_zone})->datetime, -# end => $start->set_time_zone($source::settings->{time_zone})->add(minutes=>$duration_min)->datetime -# }; - $c++; - } - $event->{recurrence}=$recurrence; - #print Dumper($event->{recurrence}); - -} - -sub get_datetime{ - my $datetime=shift; - my $timezone=shift; - - return if((!defined $datetime) or ($datetime eq '')); - my @l=@{time::datetime_to_array($datetime)}; - $datetime=DateTime->new( - year =>$l[0], - month =>$l[1], - day =>$l[2], - hour =>$l[3], - minute =>$l[4], - second =>$l[5], - time_zone=> $timezone - ); - return $datetime; -} - -eof; diff --git a/tools/sync_cms/lib/target/google_calendar.pl b/tools/sync_cms/lib/target/google_calendar.pl deleted file mode 100644 index 84b705d..0000000 --- a/tools/sync_cms/lib/target/google_calendar.pl +++ /dev/null @@ -1,233 +0,0 @@ -#require 'db.pl'; -#use db; -#use markup; - -package target; -use Data::Dumper; -use Net::Google::Calendar; -use time; - -my $settings={}; -my $cal = undef; -#my $op_count=0; - -sub init{ - $target::settings=shift; - my $access=$target::settings->{access}; - $target::cal = Net::Google::Calendar->new( url => $access->{url} ); - #main::print_info("init\n"); - #main::print_info("new\n"); - #print Dumper($access); - - my $email=$access->{email}; - my $password=$access->{password}; - if ($email ne'' && $password ne''){ - $target::cal->login($email, $password) ; - # $target::cal->auth($email, $password) if ($email ne'' && $password ne''); - main::print_info("loged in"); - } - #print Dumper($target::cal); - -# for my $c($target::cal->get_calendars) { -# print "'".$c->title."'\n"; -# print $c->id."\n\n"; -# if ($c->title eq 'petra poss'){ -# $target::cal->set_calendar($c); -# main::print_info("found matching calendar!"); -# } -# } -# exit; - - #set UTF-8 - $XML::Atom::ForceUnicode = 1; - $XML::Atom::DefaultVersion = "1.0"; - -} - -#map event schema to target schema -sub map_to_schema{ - my $event=shift; - - #clone event - my $target_event={}; - for my $key (keys %{$event}){ - $target_event->{$key}=$event->{$key}; - } - - $target_event->{reference}.='['.$event->{recurrence}->{number}.']' if ($event->{recurrence}->{number}>0); - $target_event->{recurrence} => $event->{recurrence}->{number}+0; - $target_event->{rating} => 0; - $target_event->{visibility} => 0; -# $target_event->{transparency} => $event->{transparency}; - - #set project by project's date range - for my $project_name (keys %{$target::settings->{projects}}){ - my $project=$target::settings->{projects}->{$project_name}; - my $start=substr($event->{start},0,10); - if ($start ge $project->{start_date} && $start le $project->{end_date}){ - $target_event->{project}=$project->{name}; - } -# print "$event->{start} gt $project->{start_date} $target_event->{project}\n"; - } - - #override settings by target map filter - for my $key (keys %{$target::settings->{mapping}}){ - $target_event->{$key}=$target::settings->{mapping}->{$key}; - } - #use Data::Dumper;print Dumper($target_event); - - #resolve variables set in mapped values - for my $mkey (keys %{$target::settings->{mapping}}){ - my $mval=$target_event->{$mkey}; - for my $key (sort keys %{$target_event}){ - my $val=$target_event->{$key}; - $val=$event->{$key} if($mkey eq $key); - #print $target_event->{$mkey}."\t".$key."-> $val\n"; - $target_event->{$mkey}=~s/<TMPL_VAR $key>/$val/g; - } - } - #use Data::Dumper;print Dumper($target_event);#exit; - - #$schema->{event}=fix_fields($schema->{event}); - - my $schema={ - event => $target_event - }; - - return $schema; -} - -# get a event by an existing google id, e.g. to check if the event exists in target -sub get_event_by_reference_id{ - return undef; -} - -#try to find a event, matching to $event from google calendar -sub find_event{ - my $event=shift; - return undef; - -} - -sub pre_sync{ - my $event=shift; - - $debug=1; - return undef if(($target::settings->{date}->{'time_zone'} eq '') || ($event->{start} eq '' ) || ($event->{end} eq '')); - - #delete a span of dates - print "\n" if ($debug eq '1'); - my $time_zone=$target::settings->{date}->{'time_zone'}; - my $start=time::get_datetime($event->{start},$time_zone); - $start->set_time_zone('UTC'); - $parameters->{"start-min"} = $start->datetime; - #$parameters->{"recurrence-expansion-start"}= $start->datetime; - - my $end=time::get_datetime($event->{end},$time_zone); - $end->set_time_zone('UTC'); - $parameters->{"start-max"} = $end->datetime; - #$parameters->{"recurrence-expansion-end"}= $end->datetime; - - main::print_info("search target for events from ".$start." to ".$end) if ($debug eq '1'); - - my @events=$target::cal->get_events(%$parameters); - - for my $event(@events){ - main::print_info("delete ".$event->title) if ($debug eq '1'); - $target::cal->delete_entry($event); - }; -} - - -# insert a new event -sub insert_event{ - my $event=shift; - my $entity=$event->{event}; - - $entity->{'html_content'}=markup::creole_to_html($entity->{'content'}); - - my $time_zone =$target::settings->{date}->{'time_zone'}; - my $start =time::get_datetime($entity->{start},$time_zone); - my $end =time::get_datetime($entity->{end},$time_zone); - #print Dumper($start)."\n"; - #print Dumper($end)."\n"; - print "\n" if ($debug eq '1'); - - main::print_info("insert event") if ($debug eq '1'); - my $entry = Net::Google::Calendar::Entry->new(); - - #print Dumper($entity); - $entry->title($entity->{title}); - $entry->content($entity->{content}); - $entry->location($entity->{location}); - $entry->transparency('transparent'); - $entry->status('confirmed'); - $entry->when($start, $end); - #print Dumper($entry); - - $target::cal->add_entry($entry); - #exit; -} - - -# update an existing event -sub update_event{ - return; -} -### end of interface implementation ### - - -sub print_event{ - my $header=shift; - my $event=shift; - - if ($header eq'google'){ - print "\n===== $header ====="; - }else{ - print "$header\n" if $header ne ''; - } -# print qq!$event->{start} $event->{program} : $event->{series_name} - $event->{title}!."\n"; - #content: >$event->{content}< -}; - -sub delete_event{ - return; - -} - -sub fix_fields{ - my $event=shift; - #lower case for upper case titles longer than 4 characters - for my $attr qw(program series_name title){ - my $val=$event->{$attr}; - my $c=0; - while ($val=~/\b([A-Z]{5,99})\b/ && $c<10){ - my $word=$1; - my $lower=lc $word; - $lower=~s/^([a-z])/\u$1/gi; - $val=~s/$word/$lower/g; - $c++; - } - if ($event->{$attr} ne $val){ - $event->{$attr}=$val; -# print Dumper($event->{$attr}).'<>'.Dumper($val)."\n" ; - } - } - - for my $attr qw(program series_name title excerpt content ){ - my $val=$event->{$attr}; - $val=~s/^\s*(.*?)\s*$/$1/g; - $val=~s/^[ \t]/ /g; - if ($event->{$attr} ne $val){ - $event->{$attr}=$val; -# print Dumper($event->{$attr}).'<>'.Dumper($val)."\n" ; - } - } - return $event; -} - -sub clean_up{ - return; -} - -1; diff --git a/tools/sync_cms/lib/target/google_calendar2.pl b/tools/sync_cms/lib/target/google_calendar2.pl deleted file mode 100644 index ada99a8..0000000 --- a/tools/sync_cms/lib/target/google_calendar2.pl +++ /dev/null @@ -1,254 +0,0 @@ -#require 'db.pl'; -#use db; -#use markup; - -package target; -use lib '/home/radio/calcms/sync_cms/lib/'; -use Data::Dumper; -#use Net::Google::Calendar; -use GoogleCalendarApi; -use time; - -my $settings={}; -my $cal = undef; -#my $op_count=0; - -sub init{ - $target::settings=shift; - my $access=$target::settings->{access}; - - # 1. create service account at https://console.developers.google.com/ - # 2. enable Calendar API - # 3. share calendar with service account for update permissions - - # see http://search.cpan.org/~shigeta/Google-API-Client-0.13/lib/Google/API/Client.pm - - my $serviceAccount = $access->{serviceAccount}; - my $serviceAccountKeyFile = $access->{serviceAccountKeyFile}; - my $calendarId = $access->{calendarId}; - - my $serviceAccountKey = loadFile($serviceAccountKeyFile); - - #print "connect...\n"; - my $calendar = new GoogleCalendarApi({ - 'serviceAccount' => $serviceAccount, - 'privateKey' => $serviceAccountKey, - 'calendarId' => $calendarId, - 'debug' => 0 - }); - #print Dumper($calendar); - $target::cal = $calendar; - -} - -#map event schema to target schema -sub map_to_schema{ - my $event=shift; - - #clone event - my $target_event={}; - for my $key (keys %{$event}){ - $target_event->{$key}=$event->{$key}; - } - - $target_event->{reference}.='['.$event->{recurrence}->{number}.']' if ($event->{recurrence}->{number}>0); - $target_event->{recurrence} => $event->{recurrence}->{number}+0; - $target_event->{rating} => 0; - $target_event->{visibility} => 0; -# $target_event->{transparency} => $event->{transparency}; - - #set project by project's date range - for my $project_name (keys %{$target::settings->{projects}}){ - my $project=$target::settings->{projects}->{$project_name}; - my $start=substr($event->{start},0,10); - if ($start ge $project->{start_date} && $start le $project->{end_date}){ - $target_event->{project}=$project->{name}; - } -# print "$event->{start} gt $project->{start_date} $target_event->{project}\n"; - } - - #override settings by target map filter - for my $key (keys %{$target::settings->{mapping}}){ - $target_event->{$key}=$target::settings->{mapping}->{$key}; - } - #use Data::Dumper;print Dumper($target_event); - - #resolve variables set in mapped values - for my $mkey (keys %{$target::settings->{mapping}}){ - my $mval=$target_event->{$mkey}; - for my $key (sort keys %{$target_event}){ - my $val=$target_event->{$key}; - $val=$event->{$key} if($mkey eq $key); - #print $target_event->{$mkey}."\t".$key."-> $val\n"; - $target_event->{$mkey}=~s/<TMPL_VAR $key>/$val/g; - } - } - #use Data::Dumper;print Dumper($target_event);#exit; - - #$schema->{event}=fix_fields($schema->{event}); - - my $schema={ - event => $target_event - }; - - return $schema; -} - -# get a event by an existing google id, e.g. to check if the event exists in target -sub get_event_by_reference_id{ - return undef; -} - -#try to find a event, matching to $event from google calendar -sub find_event{ - my $event=shift; - return undef; - -} - -#this is done before sync and allows to delete old events before adding new -sub pre_sync{ - my $event=shift; - - $debug=1; - return undef if(($target::settings->{date}->{'time_zone'} eq '') || ($event->{start} eq '' ) || ($event->{end} eq '')); - - #delete a span of dates - print "\n" if ($debug eq '1'); - - my $timeZone=$target::settings->{date}->{'time_zone'}; - - #get datetime in timezone - my $start = time::get_datetime($event->{start}, $timeZone); - my $end = time::get_datetime($event->{end}, $timeZone); - - main::print_info("search target for events from ".$start." to ".$end) if ($debug eq '1'); - - my $events=$target::cal->getEvents({ - #search datetime with same timezone - timeMin => $target::cal->getDateTime($start->datetime, $timeZone), - timeMax => $target::cal->getDateTime($end->datetime, $timeZone), - maxResults => 50, - singleEvents => 'true', - orderBy => 'startTime' - }); - - my $now=DateTime->now()->set_time_zone('UTC')->epoch(); - #print Dumper($now->datetime); - #exit; - - for my $event(@{$events->{items}}){ - main::print_info("delete\t$event->{start}->{dateTime}\t".$event->{summary}) if ($debug eq '1'); - #my $updated = $target::cal->getDateTime($event->{updated},'UTC')->epoch(); - #my $delta = $now-$updated; - #print $delta." seconds old\n"; - $target::cal->deleteEvent($event->{id}) - }; - #exit; -} - - -# insert a new event -sub insert_event{ - my $event=shift; - my $entity=$event->{event}; - - $entity->{'html_content'}=markup::creole_to_html($entity->{'content'}); - - my $timeZone = $target::settings->{date}->{'time_zone'}; - #print Dumper($timeZone); - #print Dumper($entity); - my $start = $target::cal->getDateTime($entity->{start}, $timeZone); - my $end = $target::cal->getDateTime($entity->{end}, $timeZone); - print "\n" if ($debug eq '1'); - #exit; - main::print_info("insert event\t$start\t$entity->{title}") if ($debug eq '1'); - my $entry = { - start => $start, - end => $end, - summary => $entity->{title}, - description => $entity->{content}, - location => $entity->{location}, - transparency => 'transparent', - status => 'confirmed' - }; - - my $result=$target::cal->insertEvent($entry); - my $id=$result->{id}; - - #exit; -} - -sub loadFile{ - my $filename=shift; - my $content=''; - - open my $file, '<', $filename || die("cannot load $filename"); - while(<$file>){ - $content.=$_; - } - close $file; - return $content; -} - -# update an existing event -sub update_event{ - return; -} -### end of interface implementation ### - - -sub print_event{ - my $header=shift; - my $event=shift; - - if ($header eq'google'){ - print "\n===== $header ====="; - }else{ - print "$header\n" if $header ne ''; - } -# print qq!$event->{start} $event->{program} : $event->{series_name} - $event->{title}!."\n"; - #content: >$event->{content}< -}; - -sub delete_event{ - return; - -} - -sub fix_fields{ - my $event=shift; - #lower case for upper case titles longer than 4 characters - for my $attr qw(program series_name title){ - my $val=$event->{$attr}; - my $c=0; - while ($val=~/\b([A-Z]{5,99})\b/ && $c<10){ - my $word=$1; - my $lower=lc $word; - $lower=~s/^([a-z])/\u$1/gi; - $val=~s/$word/$lower/g; - $c++; - } - if ($event->{$attr} ne $val){ - $event->{$attr}=$val; -# print Dumper($event->{$attr}).'<>'.Dumper($val)."\n" ; - } - } - - for my $attr qw(program series_name title excerpt content ){ - my $val=$event->{$attr}; - $val=~s/^\s*(.*?)\s*$/$1/g; - $val=~s/^[ \t]/ /g; - if ($event->{$attr} ne $val){ - $event->{$attr}=$val; -# print Dumper($event->{$attr}).'<>'.Dumper($val)."\n" ; - } - } - return $event; -} - -sub clean_up{ - return; -} - -1; diff --git a/tools/sync_cms/lib/target/playlist_csv.pl b/tools/sync_cms/lib/target/playlist_csv.pl deleted file mode 100644 index 2456688..0000000 --- a/tools/sync_cms/lib/target/playlist_csv.pl +++ /dev/null @@ -1,195 +0,0 @@ -package target; -use Data::Dumper; -use time; -use warnings; -use strict; - -my $settings={}; -my $cal = undef; - -sub init{ - $target::settings=shift; - my $access=$target::settings->{access}; - $cal = []; -} - -#map event schema to target schema -sub map_to_schema{ - my $event=shift; - #clone event - my $target_event={}; - for my $key (keys %{$event}){ - $target_event->{$key}=$event->{$key}; - } - - $event->{recurrence}->{number}=0 unless (defined $event->{recurrence} || defined $event->{recurrence}->{number}); - $target_event->{reference}.='['.$event->{recurrence}->{number}.']' if ($event->{recurrence}->{number}>0); - $target_event->{recurrence} => $event->{recurrence}->{number}; - $target_event->{rating} => 0; - $target_event->{visibility} => 0; -# $target_event->{transparency} => $event->{transparency}; - - #set project by project's date range - for my $project_name (keys %{$target::settings->{projects}}){ - my $project=$target::settings->{projects}->{$project_name}; - my $start=substr($event->{start},0,10); - if ($start ge $project->{start_date} && $start le $project->{end_date}){ - $target_event->{project}=$project->{name}; - } - } - - #override settings by target map filter - for my $key (keys %{$target::settings->{mapping}}){ - $target_event->{$key}=$target::settings->{mapping}->{$key}; - } - - #resolve variables set in mapped values - for my $mkey (keys %{$target::settings->{mapping}}){ - my $mval=$target_event->{$mkey}; - for my $key (keys %{$target_event}){ - my $val=$target_event->{$key}; - $val=$event->{$key} if($mkey eq $key); - $target_event->{$mkey}=~s/<TMPL_VAR $key>/$val/g; - } - } - - my $schema={ - event => $target_event - }; - - return $schema; -} - -# get a event by an existing reference id, e.g. to check if the event exists in target -sub get_event_by_reference_id{ - my $event_id=shift; - my $event={}; - return undef; -} - -#try to find a event -sub find_event{ - my $event=shift; - return undef; -} - -# insert a new event -sub insert_event{ - my $event=shift; - my $entity=$event->{event}; - - my $time_zone =$target::settings->{date}->{'time_zone'}; - my $start =time::get_datetime($entity->{start},$time_zone); - my $end =time::get_datetime($entity->{end},$time_zone); - print "\n" if ($main::debug eq '1'); - - main::print_info("insert event") if ($main::debug eq '1'); - push @$cal,{ - start => $start, - end => $end, - title => $entity->{title} - } - #exit; -} - - -# update an existing event -sub update_event{ - my $event=shift; - my $entity=shift; -} -### end of interface implementation ### - - -sub print_event{ - my $header=shift; - my $event=shift; - - if ($header eq'google'){ - print "\n===== $header ====="; - }else{ - print "$header\n" if $header ne ''; - } -# print qq!$event->{start} $event->{program} : $event->{series_name} - $event->{title}!."\n"; - #content: >$event->{content}< -}; - -sub delete_event{ - my $event_id=shift; - -} - -sub fix_fields{ - my $event=shift; - - for my $attr qw(title){ - my $val=$event->{$attr}; - $val=~s/^\s*(.*?)\s*$/$1/g; - $val=~s/^[ \t]/ /g; - if ($event->{$attr} ne $val){ - $event->{$attr}=$val; -# print Dumper($event->{$attr}).'<>'.Dumper($val)."\n" ; - } - } - return $event; -} - -sub pre_sync{ -} - -sub clean_up{ - my $content=''; - - my @cal=sort {$a->{start} cmp $b->{end}} @$cal; - my @cal2=(); - #print Dumper(\@cal); - #fill in default - if (defined $target::settings->{date}->{default_entry}){ - my $from=$main::from; - if ($from=~/^\d\d\d\d\-\d\d\-\d\dT\d\d$/){ - $from.=':00'; - } - my $till=$main::till; - if ($till=~/^\d\d\d\d\-\d\d\-\d\dT\d\d$/){ - $till.=':59'; - } - - my $default=$target::settings->{date}->{default_entry}; - if ($cal[0]->{start} gt $from){ - unshift @cal,{ - start => $from, - end => $cal[0]->{start}, - title => $default - } - } - if ($cal[-1]->{end} lt $till){ - push @cal,{ - start => $cal[-1]->{end}, - end => $till, - title => $default - } - } - my $old_event={end=>$from}; - for my $event (@cal){ - if ($event->{start} gt $old_event->{end}){ - push @cal2,{ - start => $old_event->{end}, - end => $event->{start}, - title => $default - } - } - push @cal2,$event; - $old_event=$event; - - } - } - - - for my $event(@cal2){ - $content.= $event->{start}.";\t".$event->{end}.";\t".$event->{title}."\n"; - } - log::save_file($target::settings->{access}->{file},$content); - return; -} - -1; diff --git a/tools/sync_cms/run_jobs.pl b/tools/sync_cms/run_jobs.pl new file mode 100755 index 0000000..b61df03 --- /dev/null +++ b/tools/sync_cms/run_jobs.pl @@ -0,0 +1,81 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use Data::Dumper; +use FindBin; +use lib "$FindBin::Bin/lib"; +use lib "$FindBin::Bin/../calcms"; + +use Common ( 'info', 'error' ); + +use config(); +use time(); +use log(); + +$| = 1; + +sub runJobs { + my $jobs = shift; + my $startDir = shift; + my $logDir = shift; + + for my $job (@$jobs) { + + my $startFile = $startDir . '/' . $job->{name} . '.start.txt'; + my $startAge = Common::getModifiedAt($startFile); + next if $startAge == 0; + + my $logFile = $logDir . '/' . $job->{name} . '.log'; + my $logAge = Common::getModifiedAt($logFile); + next if $startAge < $logAge; + + # read parameters form start file + my $content = log::load_file($startFile); + + #execute command + my $command = $job->{command} . ' 2>&1 > ' . $logFile; + my ( $exitCode, $result ) = Common::execute($command); + error "exitCode=$exitCode on $command" if $exitCode != 0; + } +} + +sub check() { + my $configFile = shift @ARGV; + error qq{cannot read $configFile "$configFile"} unless -e $configFile; + + my $config = config::get($configFile); + + my $startDir = $config->{start_dir} || ''; + error 'missing configuration of jobs/start_dir!' if $startDir eq ''; + error "job dir does not exist '$startDir'" unless -e $startDir; + error "cannot read from job dir '$startDir'. Please check permissions!" unless -w $startDir; + + my $logDir = $config->{log_dir} || ''; + error 'missing configuration of jobs/log_dir' if $logDir eq ''; + error "job log dir does not exist '$logDir'" unless -e $logDir; + error "cannot read from job log dir '$logDir'. Please check permissions!" unless -r $logDir; + error "cannot write to job log dir '$logDir'. Please check permissions!" unless -w $logDir; + + my $jobs = $config->{job}; + error "no jobs defined!" if scalar @$jobs == 0; + + return ( $jobs, $startDir, $logDir ); +} + +sub main() { + + info "INIT\t" . time::time_to_datetime(); + Common::checkSingleInstance(); + my ( $jobs, $startDir, $logDir ) = check(); + + #exit after a at most 10 minute timeout in case of hanging process + local $SIG{ALRM} = sub { die "ERROR: exit due to synchronization hangs\n" }; + alarm 10 * 60; + + runJobs( $jobs, $startDir, $logDir ); + info "DONE\t" . time::time_to_datetime(); +} + +main(); diff --git a/tools/sync_cms/sync_cms.pl b/tools/sync_cms/sync_cms.pl index 981a025..a5fa3aa 100755 --- a/tools/sync_cms/sync_cms.pl +++ b/tools/sync_cms/sync_cms.pl @@ -1,438 +1,236 @@ #!/usr/bin/perl -BEGIN{ - my $dir=''; - $ENV{SCRIPT_FILENAME}||'' if ($dir eq''); - $dir=~s/(.*\/)[^\/]+/$1/ if ($dir ne ''); - $dir=$ENV{PWD} if ($dir eq''); - $dir=`pwd` if ($dir eq''); - - #add calcms libs - unshift(@INC,$dir.'/../calcms/'); -} +use strict; +use warnings; use Data::Dumper; use Getopt::Long; use Config::General; -use time; use DateTime; use DateTime::Duration; -use strict; -use warnings; +use IO::Socket::INET; +use Fcntl ':flock'; -check_running_processes(); +use FindBin; +use lib "$FindBin::Bin/lib"; +use lib "$FindBin::Bin/../../calcms"; -my $read_mode=''; -my $update_mode=''; -my $all_events=''; -my $modified_events=''; -my $source_config_file=''; -my $target_config_file=''; -my $block_number=0; -my $block_size=2000; -our $from=''; -our $till=''; -my $read_only=0; -our $output_type='text'; -our $debug=0; +use Common ( 'info', 'error' ); +use GoogleCalendar; +use CalcmsEvents; -GetOptions( - "read" => \$read_mode, - "update" => \$update_mode, - "all" => \$all_events, - "modified" => \$modified_events, - "from=s" => \$from, - "till=s" => \$till, - "source=s" => \$source_config_file, - "target=s" => \$target_config_file, - "block_number:i" => \$block_number, - "block_size:i" => \$block_size, - "output_type=s" => \$output_type, -); - -$|=1; +Common::checkSingleInstance(); BEGIN { - our $utf8dbi=1; - $ENV{LANG}="en_US.UTF-8"; + $ENV{LANG} = "en_US.UTF-8"; } +$| = 1; + +my $sourceConfigFile = ''; +my $targetConfigFile = ''; +my $debug = 1; + +my $from = undef; +my $till = undef; +GetOptions( + "from=s" => \$from, + "till=s" => \$till, + "source=s" => \$sourceConfigFile, + "target=s" => \$targetConfigFile, +); + #source and taget settings are loaded from config files -our $settings={ -}; +my $settings = {}; -#user interface -our $ask_before_insert=0; -our $ask_before_update=0; - -# end of configuration - -if ($update_mode){ - $db::write=1; -# print_info("enter update mode"); -}elsif($read_mode){ - #default - $db::write=0; -# print_info("enter read-only mode"); -}else{ - print_error("set parameter >read< or >update<"); -} - -unless ($modified_events || $all_events || $from || $till){ - print_error("set one of folling parameters: --modified, --from, --till"); -} +error "set one of folling parameters: --from, --till" unless $from || $till; init(); sync(); -print_info("$0 done."); +info "$0 done."; exit 0; #sync all events, splitting multi-day-requests into multiple 1-day-requests to avoid large result sets -sub sync{ - #prepare target - print_info("$0 inited"); - print_info("last update: $settings->{source}->{last_update}"); +sub sync { + my $timeZone = CalcmsEvents::get('date')->{time_zone}; + my $from = CalcmsEvents::get('start_min'); + my $till = CalcmsEvents::get('start_max'); - if (my $days=source::split_request()){ - #set 1-day start-min and start-max parameters, requires --from and --till values - for my $date (@$days){ - for my $key(keys %$date){ - $settings->{source}->{$key}=$date->{$key}; - } - #print "\nrequest ".$settings->{source}->{"start_min"}." to ".$settings->{source}->{"start_max"}."\n"; - sync_timespan(); - } - }else{ - #update without time span (e.g. --modified) - sync_timespan(); - } + info "sync from $from till $till at $timeZone"; - print_info("\nclean up old database entries..."); - target::clean_up(); + #prepare target + info "last update: " . ( CalcmsEvents::get('last_update') || '' ); - print_info("\nset last-update time: $settings->{event}->{update_start}"); - set_last_update_time($source_config_file,$target_config_file,$settings->{event}->{update_start}); + if ( my $days = CalcmsEvents::splitRequest( $from, $till, $timeZone ) ) { + for my $date (@$days) { + syncTimespan( $date->{from}, $date->{till} ); + } + } else { + syncTimespan( $from, $till ); + } + + info "\nset last-update time: $settings->{event}->{update_start}"; + setLastUpdateTime( $sourceConfigFile, $targetConfigFile, $settings->{event}->{update_start} ); } #sync all events of a given source timespan -sub sync_timespan{ - #get a list of all days and their events - #print Dumper($settings->{source}); - my $source_events=source::get_events($settings->{source},$settings->{target}); - my @dates=(keys %$source_events); +sub syncTimespan { + my $from = shift; + my $till = shift; - #print "2\n"; - if (@dates==0){ - my $more=''; - if ((defined $settings->{source}->{block_number}) && ($settings->{source}->{block_number} ne '0')){ - $more='more '; - }elsif ($modified_events){ - $more.='modified '; - } - print_info("\n".'no '.$more."entries found."); - }else{ - print "<table>" if ($output_type eq 'html'); - #sort lists of date and time (same time events should be preserved) - for my $date(sort {$a cmp $b} @dates){ -# for my $date(@dates){ -# print "\n$date:\n"; - sync_events($source_events->{$date}, $settings); - } - print "</table>" if ($output_type eq 'html'); - } + #get a list of all days and their events + my $sourceEvents = CalcmsEvents::getEvents( $from, $till ); + + my @dates = keys %$sourceEvents; + if ( scalar @dates == 0 ) { + info "\nno entries found."; + return; + } + + #sort lists of date and time (same time events should be preserved) + for my $date ( sort { $a cmp $b } @dates ) { + syncEvents( $sourceEvents->{$date} ); + } } #syncronize a list of source events to target events -sub sync_events{ - my $source_events=shift; - my $settings=shift; +sub syncEvents($) { + my $sourceEvents = shift; -# my $source_settings =$settings->{source}; -# my $target_settings =$settings->{target}; - my $event_settings =$settings->{event}; + my @sourceEvents = sort { $a->{calcms_start} cmp $b->{calcms_start} } @$sourceEvents; + $sourceEvents = \@sourceEvents; + my $start = $sourceEvents->[0]->{start}; + my $end = $sourceEvents->[-1]->{end}; - my $c=0; - $c=$source::settings->{start_index}+0 if (defined $source::settings->{start_index}); - -# print "<events>\n"; - print html_table_header() if ($output_type eq 'html'); - #order processing by start time (TODO: order by last-modified date) - for my $event (sort{$a->{calcms_start} cmp $b->{calcms_start}} @$source_events){ - target::pre_sync({ - start =>$source_events->[0]->{start}, - end =>$source_events->[-1]->{end} - }); + my $targetEvents = GoogleCalendar::getEvents( + { + start => $start, + end => $end + } + ); + $targetEvents = $targetEvents->{items}; + info "google:" . scalar(@$targetEvents) . " vs " . scalar(@$sourceEvents); - print "<tr><td>"if ($output_type eq 'html'); + # mark all known target events + my $targetEventsByKey = {}; + for my $event (@$targetEvents) { + #print Dumper($event); + next if $event->{status} eq 'canceled'; + my $key = getGoogleEventToString($event); + $targetEventsByKey->{$key} = $event; + } - #read event - $event=source::get_event_attributes($event); + # mark all knwon source events + my $sourceEventsByKey = {}; + for my $event (@$sourceEvents) { + $event = CalcmsEvents::mapToSchema($event); + $event = GoogleCalendar::mapToSchema($event); + my $key = getCalcmsEventToString($event); + $sourceEventsByKey->{$key} = $event; + } - #convert to calcms schema - $event=source::map_to_schema($event); + # delete target entries without matching source entries + for my $key ( keys %$targetEventsByKey ) { + next if defined $sourceEventsByKey->{$key}; + my $event = $targetEventsByKey->{$key}; + info "delete $key "; + print Dumper($event); + GoogleCalendar::deleteEvent($event); + } - #map event to target schema - $event=target::map_to_schema($event); - - #deprecated: override defined attributes by configuration - if ((defined $source::settings->{override}) && (ref($source::settings->{override})eq 'HASH')){ - for my $key (keys %{$source::settings->{override}}){ - my $value=$source::settings->{override}->{$key}; - if ($source::settings->{override} ne ''){ - print_info("override '$key'='$value'"); - $event->{event}->{$key}=$value; - } - } - } - - if ($output_type eq'html'){ - print_event_html("[".($c+1)."]",$event); - }else{ - print_event_text("[".($c+1)."]",$event); - } - - if ($event->{event}->{start} eq '' || $event->{event}->{end} eq ''){ - print ('WARNING: Cannot read start or end of event'); - print "\n"; - }else{ -# print Dumper($event); - sync_event($event); - } - - # last; - $event=undef; - $c++; - print "</td></tr>"if ($output_type eq 'html'); - } -# print "\n</events>\n"; + # insert source entries without matching target entries + for my $key ( keys %$sourceEventsByKey ) { + if ( defined $targetEventsByKey->{$key} ) { + info "$key is up to date"; + next; + } + my $event = $sourceEventsByKey->{$key}; + info "insert $key"; + GoogleCalendar::insertEvent($event); + } } -#syncronize a single source event with target -sub sync_event{ - my $event=shift; +sub getGoogleEventToString { + my $event = shift; + my $result = "\n"; + $result .= "start: " . substr( $event->{start}->{dateTime}, 0, 19 ) . "\n"; + $result .= "end : " . substr( $event->{end}->{dateTime}, 0, 19 ) . "\n"; + $result .= "title: $event->{summary}\n"; + $result .= "desc : $event->{description}\n"; + return $result; +} - #look if target_event exists by reference id incl. recurrence counter - #print Dumper($event); - my $target_event=target::get_event_by_reference_id($event->{event}->{reference}); - - #if target_event exists - if (defined $target_event){ - #delete canceled events - if ($event->{event}->{status}eq'canceled'){ - print cell("delete canceled event:".qq{$target_event}); -# target::delete($target_event->{id}); - return; - } - - $event->{event_id}=$target_event->{id}; - - target::update_event($event,$target_event); - print cell("(ref. update)"); - - }else{ - #find by date, time and title - $target_event=target::find_event($event); - - if (defined $target_event){ - target::update_event($event,$target_event); - #print Dumper($event); - $event->{event_id}=$target_event->{id}; - print cell("(update)"); - }else{ - target::insert_event($event); - #print Dumper($event); - $target_event=target::get_event_by_reference_id($event->{event}->{reference}); - #print Dumper($target_event); - $event->{event_id}=$target_event->{id}; - print cell("(new)"); - } - } - print "\n"; - - for my $category (@{$event->{categories}}){ - target::assign_category_to_event($category,$event); - } - - for my $meta (@{$event->{meta}}){ - target::assign_meta_to_event($meta,$event); - } -# print Dumper($event); +sub getCalcmsEventToString { + my $event = shift; + my $result = "\n"; + $result .= "start: " . substr( $event->{event}->{start_datetime}, 0, 19 ) . "\n"; + $result .= "end : " . substr( $event->{event}->{end_datetime}, 0, 19 ) . "\n"; + $result .= "title: $event->{event}->{title}\n"; + $result .= "desc : $event->{event}->{content}\n"; + return $result; } #import requested source and target libs -sub init{ - binmode STDOUT, ":utf8"; +sub init { + binmode STDOUT, ":utf8"; - #require source config file - print_error ("missing source parameter!") unless ($source_config_file=~/\S/); - print_error ("source file: '$source_config_file' does not exist") unless (-e $source_config_file); - print_error ("cannot read source file: '$source_config_file'") unless (-r $source_config_file); - #$settings->{source}=require $source_config_file; - my $configuration = new Config::General($source_config_file); - $settings->{source}=$configuration->{DefaultConfig}->{source}; + { + #require target config file + error "missing target parameter!" unless $targetConfigFile =~ /\S/; + error "target file: '$targetConfigFile' does not exist" unless -e $targetConfigFile; + error "cannot read target file: '$targetConfigFile'" unless -r $targetConfigFile; + my $config = new Config::General($targetConfigFile); + $config = $config->{DefaultConfig}->{target}; + GoogleCalendar::init($config); - #require source import lib from config file - my $source_import_lib='lib/source/'.$settings->{source}->{type}.'.pl'; - print_error ("missing 'type' in 'source' config ") unless ($settings->{source}->{type}=~/\S/); - print_error ("cannot read source type import lib: '$source_import_lib'")unless (-r $source_import_lib); - require $source_import_lib; - - #require target config file - print_error ("missing target parameter!") unless ($target_config_file=~/\S/); - print_error ("target file: '$target_config_file' does not exist") unless (-e $target_config_file); - print_error ("cannot read target file: '$target_config_file'") unless (-r $target_config_file); - $configuration = new Config::General($target_config_file); - $settings->{target}=$configuration->{DefaultConfig}->{target}; - #$settings->{target}=require $target_config_file; - - #require target import lib from config file - my $target_import_lib='lib/target/'.$settings->{target}->{type}.'.pl'; - print_error ("missing 'type' in 'target' config ") unless ($settings->{target}->{type}=~/\S/); - print_error ("cannot read target type import lib: '$target_import_lib'")unless (-r $target_import_lib); - require $target_import_lib; - - #print Dumper($settings); - if ((defined $settings->{source}->{read_blocks}) && ($settings->{source}->{read_blocks}==1)){ - $settings->{source}->{block_number} =$block_number; - $settings->{source}->{block_size} =$block_size; - } - $settings->{source}->{last_update} =get_last_update_time($source_config_file,$target_config_file); - $settings->{source}->{modified_events} =$modified_events; - - if ($from=~/^\d\d\d\d\-\d\d\-\d\d$/){ - $from.='T00:00'; -# print "from:$from\t"; - } - - if ($till=~/^\d\d\d\d\-\d\d\-\d\d$/){ - $till.='T23:59'; -# print "till:$till\t"; - } - - if ($from=~/^([-+]?\d+$)/){ - my $days=$1; - my $duration=new DateTime::Duration(days=>$days); - $from=DateTime->today->add_duration($duration); -# print "from:$from\t"; - } - if ($till=~/^([-+]?\d+$)/){ - my $days=$1+1; - my $duration=new DateTime::Duration(days=>$days); - $till=DateTime->today->add_duration($duration); -# print "till:$till\t"; - - } - - $settings->{source}->{start_min} =$from if defined ($from); - $settings->{source}->{start_max} =$till if defined ($till); - - my $gmt_difference =0;#*=3600; - my $now =time(); - my $now_gmt =$now-$gmt_difference; - $now =time::time_to_datetime($now); - $now_gmt =time::time_to_datetime($now_gmt); - - $settings->{event}={ - update_start => time::time_to_datetime(time()), - modified_at => $now, - modified_at_gmt => $now_gmt - }; - - source::init($settings->{source}); - target::init($settings->{target}); - -} - -# print date/time, title and excerpt of an calendar event -# TODO: replace by output filter (text, html) -sub print_event_text{ - my $header=shift; - my $event=shift; - - my $s=$header; - $s=$s." "x (8-length($s)); - - my $start=$event->{event}->{start}||''; - $start=~s/T/ /g; - $start=~s/\:00$//g; - - if (defined $event->{event}->{program}){ - $s.="$start $event->{event}->{program}"; - $s=$s." "x (45-length($s)); } - if (defined $event->{event}->{series_name}){ - $s.=" : $event->{event}->{series_name}"; - $s=$s." "x (75-length($s)); + { + #require source config file + error "missing source parameter!" unless $sourceConfigFile =~ /\S/; + error "source file: '$sourceConfigFile' does not exist" unless -e $sourceConfigFile; + error "cannot read source file: '$sourceConfigFile'" unless -r $sourceConfigFile; + my $config = new Config::General($sourceConfigFile); + $config = $config->{DefaultConfig}->{source}; + $config->{last_update} = getLastUpdateTime( $sourceConfigFile, $targetConfigFile ); + CalcmsEvents::init($config); } - if (defined $event->{event}->{title}){ - $s.=" - $event->{event}->{title}"; - $s=$s." "x (110-length($s)); + $from .= 'T00:00' if $from =~ /^\d\d\d\d\-\d\d\-\d\d$/; + $till .= 'T23:59' if $till =~ /^\d\d\d\d\-\d\d\-\d\d$/; + + if ( $from =~ /^([-+]?\d+$)/ ) { + my $days = $1; + my $duration = new DateTime::Duration( days => $days ); + $from = DateTime->today->add_duration($duration); } - if ($event->{categories}){ - $s.= "(".join(", ",(@{$event->{categories}})).")"; - } - $s=$s." "x (135-length($s)); + if ( $till =~ /^([-+]?\d+$)/ ) { + my $days = $1 + 1; + my $duration = new DateTime::Duration( days => $days ); + $till = DateTime->today->add_duration($duration); + } - my $status=$event->{event}->{status}; - $s.=$status.' ' if (defined $status); - $s=$s." "x (140-length($s)); + CalcmsEvents::set( 'start_min', $from ) if defined $from; + CalcmsEvents::set( 'start_max', $till ) if defined $till; - my $reference=$event->{event}->{reference}; - $s.=substr($reference,length($reference)-25) if (defined $reference); + my $now = time(); + $now = time::time_to_datetime($now); + $settings->{event} = { + update_start => time::time_to_datetime( time() ), + modified_at => $now, + }; - print $s; -} - -sub print_event_html{ - my $header=shift; - my $event=shift; - - #close error block - my $s='</td>'; - - my $start=$event->{event}->{start}||''; - $start=~s/T/ /g; - $start=~s/\:00$//g; - $s.=cell($start); - $s.=cell($event->{event}->{program}); - $s.=cell($event->{event}->{series_name}); - $s.=cell($event->{event}->{title}); - - if ($event->{categories}){ - $s.=cell( join(", " , ( @{$event->{categories}} ) ) ); - } - - my $status=$event->{event}->{status}; - $s.=cell($status) if (defined $status); - - my $reference=$event->{event}->{reference}; - $reference=substr($reference,length($reference)-25) if (defined $reference); - $s.=cell($reference); - - $s.="<td>"; - - print $s; -} - -sub cell{ - if ($output_type eq 'html'){ - return "<td>$_[0]</td>"; - }else{ - return "\t".$_[0]; - }; } #output usage on error or --help parameter -sub print_usage{ - print qq{ +sub usage { + print qq{ update all/modified events from source at target. -USAGE: sync_cms.pl [--read,--update] [--modified,--all] --source s --target t [--block_number b] [--block_size s] +USAGE: sync_cms.pl [--read,--update] [--modified,--all] --source s --target t on using --from and --till requests will be processed as multiple single-day-requests. @@ -440,128 +238,55 @@ parameters: --read show all events without updating database --update update target database with source events - --modified process only modified events. - --all' process all events - --source source configuration file --target target configuration file --from start of date range: datetime (YYYY-MM-DDTHH:MM::SS) or days from today (e.g. -1 for yesterday, +1 for tomorrow) --till end of date range: datetime (YYYY-MM-DDTHH:MM::SS) or days from today (e.g. -1 for yesterday, +1 for tomorrow) - --output_type log output format [text,html] - - --block_number which block is to be syncronized [0..n]. To split up processing into multiple blocks (for machines with small memory resources). - --block_size size of a block, default=20 events examples: update modified - perl sync_cms.pl --update --modified --source=config/source/program.cfg --target=config/target/calcms.cfg + perl sync_cms.pl --update --source=config/source/program.cfg --target=config/target/calcms.cfg update a given time range perl sync_cms.pl --update --all --from=2009-09-01T00:00:00 --till=2009-11-22T23:59:59 --source=config/source/program.cfg --target=config/target/calcms.cfg update from last 2 days until next 3 days - perl sync_cms.pl --update --all --from=-2 --till=+3 --source=config/source/program.cfg --target=config/target/calcms.cfg + perl sync_cms.pl --update --from=-2 --till=+3 --source=config/source/program.cfg --target=config/target/calcms.cfg }; - exit 1; -}; - -#default error handling -sub print_error{ - print "\nERROR: $_[0]\n" ; - print_usage(); + exit 1; } -sub print_info{ - my $message=shift; - if ($message=~/^\n/){ - $message=~s/^\n//g; - print "\n"; - } - if ($output_type eq 'html'){ - print "$message<br/>"; - }else{ - print "INFO:\t$message\n"; - } -} -sub html_table_header{ - return qq{ -<tr> - <th> </th> - <th>start date</th> - <th>project</th> - <th>series</th> - <th>title</th> - <th>category</th> - <th>status</th> - <th>id</th> - <th> </th> - <th>action</th> -</tr> - }; -}; - - #load last update time out of sync.data -sub get_last_update_time{ - my $source=shift; - my $target=shift; +sub getLastUpdateTime { + my $source = shift; + my $target = shift; - my $date=undef; - return undef unless(-r "sync.data"); - - open my $DATA, "<:utf8","sync.data" || die ('cannot read update timestamp'); - while (<$DATA>){ - my $line=$_; - if ($line=~/$source\s+\->\s+$target\s+:\s+(\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2})/){ - $date=$1; - last; - } - } - close $DATA; - return $date; + my $date = undef; + return undef unless -r "sync.data"; + my $content = Common::loadFile("sync.data"); + if ( $content =~ /$source\s+\->\s+$target\s+:\s+(\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2})/ ) { + $date = $1; + } + return $date; } #save last update time to sync.data -sub set_last_update_time{ - my $source =shift; - my $target =shift; - my $date =shift; +sub setLastUpdateTime { + my $source = shift; + my $target = shift; + my $date = shift; - my $data=''; - if (-r "sync.data"){ - open my $DATA, "<:utf8","sync.data"; - $data=join("\n",(<$DATA>)); - close $DATA; - } + my $data = ''; + if ( -r "sync.data" ) { + $data = Common::loadFile("sync.data"); + } - if ($data=~/$source\s+\->\s+$target\s+:\s+(\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2})/){ - $data=~s/($source\s+\->\s+$target\s+:)\s+\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}/$1\t$date/gi; - }else{ - $data.="$source\t\->\t$target\t:\t$date\n"; - } + if ( $data =~ /$source\s+\->\s+$target\s+:\s+(\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2})/ ) { + $data =~ s/($source\s+\->\s+$target\s+:)\s+\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}/$1\t$date/gi; + } else { + $data .= "$source\t\->\t$target\t:\t$date\n"; + } - $data=~s/[\r\n]+/\n/g; - - open my $DATA2, ">:utf8","sync.data" || die ('cannot write update timestamp'); - print $DATA2 $data; - close $DATA2; - -# print $data; + $data =~ s/[\r\n]+/\n/g; + Common::saveFile( "sync.data", $data ); } -#avoid to run more than one sync process in parallel -sub check_running_processes{ - my $cmd="ps -afex 2>/dev/null | grep sync_cms.pl | grep -v nice | grep -v grep "; - my $ps=`$cmd`; -# print "$ps"; - my @lines=(split(/\n/,$ps)); - if (@lines>1){ - print "ERROR: another ".@lines." synchronization processes 'sync_cms.pl' instances are running!".qq{ - -$cmd -$ps --> program will exit -}; - exit; - } - -} diff --git a/tools/sync_cms/sync_days.pl b/tools/sync_cms/sync_days.pl deleted file mode 100644 index 1f2ea48..0000000 --- a/tools/sync_cms/sync_days.pl +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/perl -I ../lib #-w - -BEGIN{ - my $dir=''; - $ENV{SCRIPT_FILENAME} if ($dir eq''); - $dir=~s/(.*\/)[^\/]+/$1/; - $dir=$ENV{PWD} if ($dir eq''); - $dir=`pwd` if ($dir eq''); - - #local perl installation libs - unshift(@INC,$dir.'/../../perl/lib/'); - - #calcms libs + configuration - unshift(@INC,$dir.'/../calcms/'); -} - -#use utf8; -use warnings "all"; -use strict; -use Data::Dumper; - -#use CGI; -#use HTML::Template; -use Date::Calc; -#use calendar; -#use time; -#use log; - -if(@ARGV<2){ - print qq{ERROR: $0 yyyy-mm-dd yyyy-mm-dd -syncronize from given start date to end date, day by day -}; - exit 1; -} - -my $start =$ARGV[0]; -my $end =$ARGV[1]; - -(my $start_year,my $start_month,my $start_day)=split(/\-/,$start); -my $last_day=Date::Calc::Days_in_Month($start_year,$start_month); -$start_day = 1 if ($start_day<1); -$start_day = $last_day if ($start_day gt $last_day); - -(my $end_year,my $end_month,my $end_day)=split(/\-/,$end); -$last_day=Date::Calc::Days_in_Month($end_year,$end_month); -$end_day = 1 if ($end_day<1); -$end_day = $last_day if ($end_day gt $last_day); - - - -for my $year($start_year..$end_year){ - my $m1=1; - my $m2=12; - $m1=$start_month if($year eq $start_year); - $m2=$end_month if($year eq $end_year); - - for my $month($m1..$m2){ - $month='0'.$month if (length($month)==1); - my $d1=1; - my $d2=Date::Calc::Days_in_Month($year,$month); - $d1=$start_day if($month eq $start_month); - $d2=$end_day if($month eq $end_month); - - for my $day($d1..$d2){ - $day='0'.$day if (length($day)==1); - my $date=join('-',($year,$month,$day)); - my $cmd="perl sync_cms.pl --update --all --source config/source/program.cfg --target config/target/calcms.cfg --from ".$date."T00:00:00 --till ".$date."T23:59:59"; - #print "$cmd\n"; - print `nice -n 10 $cmd`; - } - } - -} - diff --git a/tools/sync_cms/sync_jobs/calcms_to_google.sh b/tools/sync_cms/sync_jobs/calcms_to_google.sh new file mode 100755 index 0000000..70c0d40 --- /dev/null +++ b/tools/sync_cms/sync_jobs/calcms_to_google.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +from=$1 +till=$2 +project=$3 + +export LC_ALL="de_DE.utf8" +export LANGUAGE="de_DE.utf8" + +set -x +cd /home/radio/calcms/sync_cms +nice -n 10 perl sync_cms.pl --from=$from --till=$till --source=config/source/calcms_$project.cfg --target=config/target/88vier_$project.cfg 2>&1 + diff --git a/tools/sync_cms/sync_jobs/sync.sh b/tools/sync_cms/sync_jobs/sync.sh new file mode 100755 index 0000000..43b3cf0 --- /dev/null +++ b/tools/sync_cms/sync_jobs/sync.sh @@ -0,0 +1,7 @@ +#/bin/sh + +./sync_project.sh "$1" "$2" piradio +./sync_project.sh "$1" "$2" potsdam +./sync_project.sh "$1" "$2" ansage +./sync_project.sh "$1" "$2" collabo +./sync_project.sh "$1" "$2" frb diff --git a/tools/sync_cms/sync_jobs/update_ansage.sh b/tools/sync_cms/sync_jobs/update_ansage.sh new file mode 100755 index 0000000..fe37ceb --- /dev/null +++ b/tools/sync_cms/sync_jobs/update_ansage.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +file=/home/radio/piradio.de/agenda/admin/jobs/start/ansage_to_88vier.de.start.txt +touch $file +chown radio:www-data $file + diff --git a/tools/sync_cms/sync_jobs/update_colabo.sh b/tools/sync_cms/sync_jobs/update_colabo.sh new file mode 100755 index 0000000..904b5e1 --- /dev/null +++ b/tools/sync_cms/sync_jobs/update_colabo.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +file=/home/radio/piradio.de/agenda/admin/jobs/start/colabo_to_88vier.de.start.txt +touch $file +chown radio:www-data $file + diff --git a/tools/sync_cms/sync_jobs/update_frb.sh b/tools/sync_cms/sync_jobs/update_frb.sh new file mode 100755 index 0000000..0139861 --- /dev/null +++ b/tools/sync_cms/sync_jobs/update_frb.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +file=/home/radio/piradio.de/agenda/admin/jobs/start/frb_to_88vier.de.start.txt +touch $file +chown radio:www-data $file + diff --git a/tools/sync_cms/sync_jobs/update_piradio.sh b/tools/sync_cms/sync_jobs/update_piradio.sh new file mode 100755 index 0000000..ad7c170 --- /dev/null +++ b/tools/sync_cms/sync_jobs/update_piradio.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +file=/home/radio/piradio.de/agenda/admin/jobs/start/piradio_to_88vier.de.start.txt +touch $file +chown radio:www-data $file + diff --git a/tools/sync_cms/sync_jobs/update_potsdam.sh b/tools/sync_cms/sync_jobs/update_potsdam.sh new file mode 100755 index 0000000..86d30d8 --- /dev/null +++ b/tools/sync_cms/sync_jobs/update_potsdam.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +file=/home/radio/piradio.de/agenda/admin/jobs/start/potsdam_to_88vier.de.start.txt +touch $file +chown radio:www-data $file + diff --git a/tools/sync_cms/time_gate.pl b/tools/sync_cms/time_gate.pl deleted file mode 100644 index b83bc2b..0000000 --- a/tools/sync_cms/time_gate.pl +++ /dev/null @@ -1,487 +0,0 @@ -#!/usr/bin/perl -I ../lib #-w - -BEGIN{ - my $dir=''; - $ENV{SCRIPT_FILENAME}||'' if ($dir eq''); - $dir=~s/(.*\/)[^\/]+/$1/ if ($dir ne ''); - $dir=$ENV{PWD} if ($dir eq''); - $dir=`pwd` if ($dir eq''); - - #local perl installation libs - unshift(@INC,$dir.'/../../perl/lib/'); - - #calcms libs + configuration - unshift(@INC,$dir.'/../calcms/'); -} - -#use utf8; -use Data::Dumper; -#require 'time.pl'; -use Getopt::Long; -use time; -use DateTime; -use DateTime::Duration; -use strict; -use warnings; - -check_running_processes(); - - -my $read_mode=''; -my $update_mode=''; -my $all_events=''; -my $modified_events=''; -my $source_config_file=''; -my $target_config_file=''; -my $block_number=0; -my $block_size=2000; -my $from=''; -my $till=''; -my $read_only=0; -my $project=''; - -GetOptions( - "read" => \$read_mode, - "update" => \$update_mode, - "all" => \$all_events, - "modified" => \$modified_events, - "from=s" => \$from, - "till=s" => \$till, - "source=s" => \$source_config_file, - "target=s" => \$target_config_file, - "project=s" => \$project, - "block_number:i" => \$block_number, - "block_size:i" => \$block_size -); - -$|=1; - -BEGIN { - our $utf8dbi=1; - $ENV{LANG}="en_US.UTF-8"; -# print Dumper(\%ENV); -} - -#source and taget settings are loaded from config files -our $settings={ -}; - -#user interface -our $ask_before_insert=0; -our $ask_before_update=0; - -# end of configuration - -if ($update_mode){ - $db::write=1; -# print "enter update mode\n"; -}elsif($read_mode){ - #default - $db::write=0; -# print "enter read-only mode\n"; -}else{ - print_error("set parameter >read< or >update<"); -} - -unless ($modified_events || $all_events || $from || $till){ - print_error("set one of folling parameters: --modified, --from, --till"); -} - -init(); -my $project_target=$source::settings->{sources}->{$project}; -unless (defined $project){ - print_error("missing parameter --project") unless(defined $project_target); - print_error("cant find project configuration '$project_target'") unless (-f $project_target); - print_error("cant read project configuration '$project_target'") unless (-r $project_target); -} - -my $events=[]; -print "TIME_GATE: READ ALL CALENDARS\n"; -sync(); -$events=compress_events($events); -my $c=0; -if ($project eq ''){ - for my $event (@$events){ - print_event("[".($c+1)."]",$event); - print "\n"; - $c++; - } -}else{ - my $source=$source::settings->{sources}->{$project}; - my $target='config/target/calcms.cfg'; - - for my $event (@$events){ - my $from=$event->{start}; - #print Dumper($event->{end}); - #remove a second - my $till=source::get_datetime($event->{end}, $source::settings->{date}->{time_zone})->add(seconds=>-1)->datetime(); - print_event("STATION TIMESLOT [".($c+1)."]\t",$event); - print "\n"; - $c++; - my $command="perl sync_cms.pl --update --all --from=$from --till=$till --source $source --target $target "; - print_info($command); - print `$command`; - #exit; - } - -} -print "\ndone.\n"; -exit 0; - -sub compress_events{ - my $events=shift; - - my @results=(); - my $old_event={end=>'', start=>'', title=>''}; - for my $event(sort {$a->{start} gt $b->{start}} @$events){ -# print "$event->{start}\t$event->{end}\t$event->{title}\n"; - if ( -# (defined $event) && (defined $event->{start}) && (defined $event->{end}) && (defined $event->{title}) - ( #station continues - ($event->{start} eq $old_event->{end}) - || (#multiple entries for same event - ($event->{start} ge $old_event->{start}) - && ($event->{end} eq $old_event->{end}) - ) - ) - && ($event->{title} eq $old_event->{title}) - && (@results>0) - ){ - $results[-1]->{end}=$event->{end}; -# print @results."\tmerge \n"; - }else{ - push @results,{ - start => $event->{start}, - end => $event->{end}, - title => $event->{title}, - }; -# print @results."\tinsert \n"; - } - $old_event=$results[-1]; - } -# print Dumper(\@results); - - return \@results; -} - -#sync all events, splitting multi-day-requests into multiple 1-day-requests to avoid large result sets -sub sync{ - #prepare target - target::init($settings->{target}); - print_info("last update: $settings->{source}->{last_update}"); - - if (my $days=source::split_request($settings->{source})){ - #set 1-day start-min and start-max parameters, requires --from and --till values - for my $date (@$days){ - for my $key(keys %$date){ - $settings->{source}->{$key}=$date->{$key}; - } - print "\nrequest ".$settings->{source}->{"start_min"}." to ".$settings->{source}->{"start_max"}."\n"; - sync_timespan(); - } - }else{ - #update without time span (e.g. --modified) - sync_timespan(); - } - - print_info("\nset last-update time: $settings->{event}->{update_start}"); - set_last_update_time($source_config_file,$target_config_file,$settings->{event}->{update_start}); -} - -#sync all events of a given source timespan -sub sync_timespan{ - #get a list of all days and their events - #print Dumper($settings->{source}); - my $source_events=source::get_events($settings->{source},$settings->{target}); - #print Dumper($source_events); - my @dates=(keys %$source_events); - - if (@dates==0){ - my $more=''; - if ((defined $settings->{source}->{block_number}) && ($settings->{source}->{block_number} ne '0')){ - $more='more '; - }elsif ($modified_events){ - $more.='modified '; - } - print_info("\n".'no '.$more."entries found."); - }else{ - #sort lists of date and time (same time events should be preserved) - for my $date(sort {$a cmp $b} @dates){ -# for my $date(@dates){ -# print "\n$date:\n"; - sync_events($source_events->{$date}, $settings); - } - } - -} - -#syncronize a list of source events to target events -sub sync_events{ - my $source_events=shift; - my $settings=shift; - - my $c=0; - $c=$source::settings->{start_index}+0 if (defined $source::settings->{start_index}); - -# print "<events>\n"; - - #order processing by start time (TODO: order by last-modified date) - for my $event (sort{$a->{calcms_start} cmp $b->{calcms_start}} @$source_events){ - #read event attributes - $event=source::get_event_attributes($event); - - $event->{title}=~s/\s//g; - - $event->{event}={ - title => $event->{title}, - start => $event->{start}, - end => $event->{end}, - status => $event->{status}, - }; - -# print "\n"; - #print_event("[".($c+1)."]",$event); - #print "\n".$event->{event}->{title}." ".$project."\n"; - - if ($event->{event}->{status}eq'canceled'){ - print "canceled event:".qq{$event}; - }elsif ($event->{event}->{start} eq ''){ - print ('WARNING: Cannot read start of event'."\n"); - }elsif ($event->{event}->{end} eq ''){ - print ('WARNING: Cannot read start of end'."\n"); - }elsif ($event->{event}->{title} eq ''){ - print ('WARNING: Cannot read start of title'."\n"); - }elsif ($project ne ''){ - if ($event->{event}->{title} eq $project){ - push @$events, $event->{event}; - } - }else{ - push @$events, $event->{event}; - } - $event=undef; - $c++; - } -} - - -#import requested source and target libs -sub init{ - binmode STDOUT, ":utf8"; - - #require source config file - print_error ("missing source parameter!") unless ($source_config_file=~/\S/); - print_error ("source file: '$source_config_file' does not exist") unless (-e $source_config_file); - print_error ("cannot read source file: '$source_config_file'") unless (-r $source_config_file); - #$settings->{source}=require $source_config_file; - my $configuration = new Config::General($source_config_file); - $settings->{source}=$configuration->{DefaultConfig}->{source}; - - #require source import lib from config file - my $source_import_lib='lib/source/'.$settings->{source}->{type}.'.pl'; - print_error ("missing 'type' in 'source' config ") unless ($settings->{source}->{type}=~/\S/); - print_error ("cannot read source type import lib: '$source_import_lib'")unless (-r $source_import_lib); - require $source_import_lib; - - #require target config file - print_error ("missing target parameter!") unless ($target_config_file=~/\S/); - print_error ("target file: '$target_config_file' does not exist") unless (-e $target_config_file); - print_error ("cannot read target file: '$target_config_file'") unless (-r $target_config_file); - #$settings->{target}=require $target_config_file; - $configuration = new Config::General($target_config_file); - $settings->{target}=$configuration->{DefaultConfig}->{target}; - - #require target import lib from config file - my $target_import_lib='lib/target/'.$settings->{target}->{type}.'.pl'; - print_error ("missing 'type' in 'target' config ") unless ($settings->{target}->{type}=~/\S/); - print_error ("cannot read target type import lib: '$target_import_lib'")unless (-r $target_import_lib); - require $target_import_lib; - - #print Dumper($settings); - if ((defined $settings->{source}->{read_blocks}) && ($settings->{source}->{read_blocks}==1)){ - $settings->{source}->{block_number} =$block_number; - $settings->{source}->{block_size} =$block_size; - } - $settings->{source}->{last_update} =get_last_update_time($source_config_file,$target_config_file); - $settings->{source}->{modified_events} =$modified_events; - - if ($from=~/^\d\d\d\d\-\d\d\-\d\d$/){ - $from.='T00:00'; - } - - if ($till=~/^\d\d\d\d\-\d\d\-\d\d$/){ - $till.='T23:59'; - } - - if ($from=~/^([-+]?\d+$)/){ - my $days=$1; - my $duration=new DateTime::Duration(days=>$days); - $from=DateTime->today->add_duration($duration); -# print "from:$from\t"; - } - if ($till=~/^([-+]?\d+$)/){ - my $days=$1+1; - my $duration=new DateTime::Duration(days=>$days); - $till=DateTime->today->add_duration($duration); -# print "till:$till\t"; - - } - - - $settings->{source}->{start_min} =$from if defined ($from); - $settings->{source}->{start_max} =$till if defined ($till); - - my $gmt_difference =0;#*=3600; - my $now =time(); - my $now_gmt =$now-$gmt_difference; - $now =time::time_to_datetime($now); - $now_gmt =time::time_to_datetime($now_gmt); - - $settings->{event}={ - update_start => time::time_to_datetime(time()), - modified_at => $now, - modified_at_gmt => $now_gmt - }; - source::init($settings->{source}); - -} - -# print date/time, title and excerpt of an calendar event -# TODO: replace by output filter (text, html) -sub print_event{ - my $header=shift; - my $event=shift; - - my $s=$header; - $s=$s." "x (8-length($s)); - -# print Dumper($event); - my $start=$event->{start}||''; - $start=~s/T/ /g; - $start=~s/\:00$//g; - - my $end=$event->{end}||''; - $end=~s/T/ /g; - $end=~s/\:00$//g; - - $s.="$start\t$end\t'$event->{title}'"; - -# print Dumper($event->{event}); - print $s; -#excerpt: >$event->{excerpt}< -#content: >$event->{content}< -#content: >$event->{content}< - -} - -#output usage on error or --help parameter -sub print_usage{ - print qq{ -update all/modified events from source at target. - -USAGE: $0 [--read,--update] [--modified,--all] --source s --target t [--block_number b] [--block_size s] - -on using --from and --till requests will be processed as multiple single-day-requests. - -parameters: - --read show all events without updating database - --update update target database with source events - - --modified process only modified events. - --all' process all events - - --source source configuration file - --target target configuration file - - --from start of date range: datetime (YYYY-MM-DDTHH:MM::SS) or days from today (e.g. -1 for yesterday, +1 for tomorrow) - --till end of date range: datetime (YYYY-MM-DDTHH:MM::SS) or days from today (e.g. -1 for yesterday, +1 for tomorrow) - - --block_number which block is to be syncronized [0..n]. To split up processing into multiple blocks (for machines with small memory resources). - --block_size size of a block, default=20 events - -examples: - perl $0 --update --modified --source=config/source/einheit.cfg --target=config/target/calcms.cfg - perl $0 --update --all --from=2009-09-01T00:00:00 --till=2009-11-22T23:59:59 --source=config/source/einheit.cfg --target=config/target/calcms.cfg -}; - exit 1; -}; - -#load last update time out of sync.data -sub get_last_update_time{ - my $source=shift; - my $target=shift; - - my $date=undef; - return undef unless(-r "sync.data"); - - open my $DATA, "<:utf8","sync.data" || die ('cannot read update timestamp'); - while (<$DATA>){ - my $line=$_; - if ($line=~/$source\s+\->\s+$target\s+:\s+(\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2})/){ - $date=$1; - last; - } - } - close $DATA; - return $date; -} - -#save last update time to sync.data -sub set_last_update_time{ - my $source =shift; - my $target =shift; - my $date =shift; - - my $data=''; - if (-r "sync.data"){ - open my $DATA, "<:utf8","sync.data"; - $data=join("\n",(<$DATA>)); - close $DATA; - } - - if ($data=~/$source\s+\->\s+$target\s+:\s+(\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2})/){ - $data=~s/($source\s+\->\s+$target\s+:)\s+\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}/$1\t$date/gi; - }else{ - $data.="$source\t\->\t$target\t:\t$date\n"; - } - - $data=~s/[\r\n]+/\n/g; - - open my $DATA2, ">:utf8","sync.data" || die ('cannot write update timestamp'); - print $DATA2 $data; - close $DATA2; - -# print $data; -} - -#default error handling -sub print_error{ - print "\nERROR:\t$_[0]\n" ; - print_usage(); -} - -sub print_info{ - my $message=shift; - if ($message=~/^\n/){ - $message=~s/^\n//g; - print "\n"; - } - print "INFO:\t$message\n"; -} - -#avoid to run more than one sync process simultaniously -sub check_running_processes{ - my $cmd="ps -afex 2>/dev/null | grep $0.pl | grep -v nice | grep -v grep "; - my $ps=`$cmd`; -# print "$ps"; - my @lines=(split(/\n/,$ps)); - if (@lines>1){ - print "ERROR:\tanother ".@lines." synchronization processes '$0.pl' instances are running!".qq{ - -$cmd -$ps --> program will exit -}; - exit; - } - -} From 7ff41cecd2fc9578b428a967255fc819b32ff70f Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 23 Sep 2018 15:47:03 +0200 Subject: [PATCH 028/391] remove CGI where possible use mod_perl request with fallback to CGI::Simple where possible. --- lib/calcms/auth.pm | 55 ++--- lib/calcms/markup.pm | 6 + lib/calcms/params.pm | 92 ++++---- lib/calcms/uac.pm | 1 - website/agenda/add_comment.cgi | 5 +- website/agenda/aggregate.cgi | 237 ++++++++++---------- website/agenda/cache/.htaccess | 3 +- website/agenda/cache/programm/.htaccess | 33 ++- website/agenda/cal.cgi | 4 - website/agenda/category.cgi | 3 - website/agenda/comments.cgi | 3 - website/agenda/config/.htaccess | 4 +- website/agenda/events.cgi | 5 - website/agenda/planung/assign_series.cgi | 2 +- website/agenda/planung/assignments.cgi | 2 +- website/agenda/planung/audio_recordings.cgi | 4 +- website/agenda/planung/calendar.cgi | 2 +- website/agenda/planung/comment.cgi | 2 +- website/agenda/planung/create_events.cgi | 2 +- website/agenda/planung/event.cgi | 2 +- website/agenda/planung/event_history.cgi | 2 +- website/agenda/planung/help.cgi | 2 +- website/agenda/planung/image.cgi | 4 +- website/agenda/planung/imageUpload.cgi | 2 +- website/agenda/planung/localization.cgi | 2 +- website/agenda/planung/notify_events.cgi | 2 +- website/agenda/planung/playout.cgi | 2 +- website/agenda/planung/projects.cgi | 2 +- website/agenda/planung/roles.cgi | 2 +- website/agenda/planung/selectEvent.cgi | 2 +- website/agenda/planung/selectSeries.cgi | 2 +- website/agenda/planung/series.cgi | 2 +- website/agenda/planung/show-playout.cgi | 3 +- website/agenda/planung/showImage.cgi | 2 +- website/agenda/planung/studio_timeslots.cgi | 2 +- website/agenda/planung/studios.cgi | 2 +- website/agenda/planung/user_settings.cgi | 2 +- website/agenda/planung/user_stats.cgi | 2 +- website/agenda/planung/users.cgi | 2 +- website/agenda/planung/work_time.cgi | 2 +- website/agenda/series_names.cgi | 4 - website/agenda/upload_playout.cgi | 4 - 42 files changed, 242 insertions(+), 276 deletions(-) diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index 18af258..f62b851 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -3,7 +3,7 @@ package auth; use warnings "all"; use strict; -use CGI; +use CGI::Simple(); use CGI::Session qw(-ip-match); use CGI::Cookie(); @@ -21,22 +21,24 @@ my $debug = 0; sub debug; +#TODO: remove CGI sub get_user { - my $cgi = shift; my $config = shift; - - my %parms = $cgi->Vars(); - my $parms = \%parms; + my $params = shift; + my $cgi = shift; debug("get_user") if ($debug); # login or logout on action - if ( defined $parms->{action} ) { - if ( $parms->{action} eq 'login' ) { - my $user = login( $cgi, $config, $parms->{user}, $parms->{password} ); + if ( defined $params->{action} ) { + if ( $params->{action} eq 'login' ) { + my $user = login( $config, $params->{user}, $params->{password} ); + $cgi = new CGI::Simple() unless defined $cgi; + $cgi->delete( 'user', 'password', 'uri', 'action' ); return $user; - } elsif ( $parms->{action} eq 'logout' ) { + } elsif ( $params->{action} eq 'logout' ) { + $cgi = new CGI::Simple() unless defined $cgi; logout($cgi); $cgi->delete( 'user', 'password', 'uri', 'action' ); return undef; @@ -44,20 +46,20 @@ sub get_user { } # read session id from cookie - my $session_id = read_cookie($cgi); + my $session_id = read_cookie(); # login if no cookie found - return show_login_form( $parms->{user}, 'Please login' ) unless defined $session_id; + return show_login_form( $params->{user}, 'Please login' ) unless defined $session_id; # read session my $session = read_session($session_id); # login if user not found - return show_login_form( $parms->{user}, 'unknown User' ) unless defined $session; + return show_login_form( $params->{user}, 'unknown User' ) unless defined $session; - $parms->{user} = $session->{user}; - $parms->{expires} = $session->{expires}; - debug( $parms->{expires} ); + $params->{user} = $session->{user}; + $params->{expires} = $session->{expires}; + debug( $params->{expires} ); return $session->{user}, $session->{expires}; } @@ -76,7 +78,6 @@ sub crypt_password { } sub login { - my $cgi = shift; my $config = shift; my $user = shift; my $password = shift; @@ -94,13 +95,14 @@ sub login { $timeout = '+' . $timeout . 'm'; my $session_id = create_session( $user, $password, $timeout ); - return $user if ( create_cookie( $cgi, $session_id, $timeout ) ); + return $user if create_cookie( $session_id, $timeout ); return undef; } +#TODO: remove cgi sub logout { my $cgi = shift; - my $session_id = read_cookie($cgi); + my $session_id = read_cookie(); debug("logout") if ($debug); unless ( delete_session($session_id) ) { return show_login_form( 'Cant delete session', 'logged out' ); @@ -116,44 +118,34 @@ sub logout { #read and write data from browser, http://perldoc.perl.org/CGI/Cookie.html sub create_cookie { - my $cgi = shift; my $session_id = shift; my $timeout = shift; - #debug("create_cookie")if ($debug); - my $cookie = CGI::Cookie->new( -name => 'sessionID', -value => $session_id, -expires => $timeout, - - # -domain => '.capricorn.com', - # -path => '/agenda/admin/', - -secure => 1 + -secure => 1 ); print "Set-Cookie: ", $cookie->as_string, "\n"; print STDERR "#Set-Cookie: ", $cookie->as_string, "\n"; - # print $cgi->header( -cookie => $cookie ); return 1; } sub read_cookie { - my $cgi = shift; - debug("read_cookie") if ($debug); my %cookie = CGI::Cookie->fetch; debug( "cookies: " . Dumper( \%cookie ) ) if ($debug); my $cookie = $cookie{'sessionID'}; debug( "cookie: " . $cookie ) if ($debug); - return undef unless defined $cookie ; + return undef unless defined $cookie; my $session_id = $cookie->value || undef; debug( "sid: " . $session_id ) if ($debug); return $session_id; - - #return $cgi->cookie('sessionID') || undef; } +#TODO: remove CGI sub delete_cookie { my $cgi = shift; @@ -179,7 +171,6 @@ sub create_session { $session->param( "user", $user ); $session->param( "pid", $$ ); - # $session->param("password", $password); return $session->id(); } diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index 2d30522..e912d9e 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -7,6 +7,7 @@ use Text::WikiCreole(); use HTML::Parse(); use HTML::FormatText(); use Encode(); +use HTML::Entities(); use log(); @@ -498,5 +499,10 @@ sub encode_xml_element_text { return $text; } +sub escapeHtml{ + my $s=shift; + return HTML::Entities::encode_entities($s,q{&<>"'}); +} + #do not delete last line! 1; diff --git a/lib/calcms/params.pm b/lib/calcms/params.pm index b2ff79e..9360ccd 100644 --- a/lib/calcms/params.pm +++ b/lib/calcms/params.pm @@ -4,79 +4,77 @@ use warnings "all"; use strict; use Data::Dumper; -use CGI(); use Apache2::Request(); use base 'Exporter'; -our @EXPORT_OK = qw(get isJson); +our @EXPORT_OK = qw(get isJson); sub debug; my $isJson = 0; sub isJson { - return $isJson; + return $isJson; } sub get { - #get the Apache2::RequestRec - my $r = shift; + #get the Apache2::RequestRec + my $r = shift; - my $tmp_dir = '/var/tmp/'; - my $upload_limit = 1000 * 1024; + my $tmp_dir = '/var/tmp/'; + my $upload_limit = 1000 * 1024; - my $cgi = undef; - my $status = undef; - my $params = {}; + my $cgi = undef; + my $status = undef; + my $params = {}; - $isJson = 0; + $isJson = 0; - if ( defined $r ) { + if ( defined $r ) { - #print STDERR "Apache2::Request\n"; - #get Apache2::Request - my $req = Apache2::Request->new( $r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir ); + #print STDERR "Apache2::Request\n"; + #get Apache2::Request + my $req = Apache2::Request->new( $r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir ); - for my $key ( $req->param ) { - $params->{ scalar($key) } = scalar( $req->param($key) ); - } + for my $key ( $req->param ) { + $params->{ scalar($key) } = scalar( $req->param($key) ); + } - #copy params to hash - #my $body=$req->body(); - #if (defined $body){ - # for my $key (keys %$body){ - # $params->{scalar($key)}=scalar($req->param($key)); - # } - #} - $status = $req->parse; #parse - } else { + #copy params to hash + #my $body=$req->body(); + #if (defined $body){ + # for my $key (keys %$body){ + # $params->{scalar($key)}=scalar($req->param($key)); + # } + #} + $status = $req->parse; #parse + } else { + print STDERR "$0: require CGI\n"; + require "CGI.pm"; + $CGI::POST_MAX = $upload_limit; + $CGI::TMPDIRECTORY = $tmp_dir; + $cgi = new CGI(); + $status = $cgi->cgi_error() || $status; + my %params = $cgi->Vars(); + $params = \%params; + } - #print STDERR "CGI\n"; - $CGI::POST_MAX = $upload_limit; - $CGI::TMPDIRECTORY = $tmp_dir; - $cgi = new CGI(); - $status = $cgi->cgi_error() || $status; - my %params = $cgi->Vars(); - $params = \%params; - } - $cgi = new CGI() unless ( defined $cgi ); + $isJson = 1 if ( defined $params->{json} ) && ( $params->{json} eq '1' ); - $isJson = 1 if ( defined $params->{json} ) && ( $params->{json} eq '1' ); + if ( defined $status ) { + $status = '' if ( $status eq 'Success' ); + $status = '' if ( $status eq 'Missing input data' ); + print $cgi->header . $status . "\n" if ( $status ne '' ); + } - if ( defined $status ) { - $status = '' if ( $status eq 'Success' ); - $status = '' if ( $status eq 'Missing input data' ); - print $cgi->header . $status . "\n" if ( $status ne '' ); - } + #print STDERR Dumper($params); + #print $cgi->header.Dumper($params).$status; - #print STDERR Dumper($params); - #print $cgi->header.Dumper($params).$status; - - return ( $cgi, $params, $status ); + return ( $cgi, $params, $status ); } sub debug { - my $message = shift; + my $message = shift; } #do not delete last line! diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 741814d..b675987 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -2,7 +2,6 @@ package uac; use warnings "all"; use strict; -use CGI(); use CGI::Session qw(-ip-match); use CGI::Cookie(); use Data::Dumper; diff --git a/website/agenda/add_comment.cgi b/website/agenda/add_comment.cgi index 04dff2e..61ef5c1 100755 --- a/website/agenda/add_comment.cgi +++ b/website/agenda/add_comment.cgi @@ -5,9 +5,6 @@ use diagnostics; use strict; use Data::Dumper; -use CGI qw(header param Vars escapeHTML uploadInfo cgi_error); -$CGI::POST_MAX=1024 * 100; - use params(); use config(); use db(); @@ -242,7 +239,7 @@ sub escape_text{ $s=~s/<[a-z\!\?\[\/][^\>]+?\>//gi; $s=~s/<[a-z\!\?\[\/]\>//gi; - $s=CGI::escapeHTML($s); + $s = markup::escapeHTML($s); $s=~s/[\n\r]+/\<br \/\>/g; $s=~s/\<br \/\>/\<br \/\>\n/g; $s=~s/\<br \/\>\s*$//g; diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 35f5b20..891c370 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -3,167 +3,174 @@ use warnings "all"; use strict; -use CGI qw(header param Vars); +#use CGI qw(header param Vars); +use config(); +use params(); use db(); use events(); use time(); use aggregator(); use markup(); use log(); -use config(); if ( $0 =~ /aggregate.*?\.cgi$/ ) { - binmode STDOUT, ":encoding(UTF-8)"; + binmode STDOUT, ":encoding(UTF-8)"; - #(my $cgi, my $params, my $error)=params::get($r); - my $cgi = new CGI(); - my %params = $cgi->Vars(); - my $params = \%params; + my $params = {}; + my $r = shift; + #print STDERR ref($r)."\n"; + if ( ref($r) eq '' ) { + for my $arg (@ARGV) { + my ( $key, $value ) = split( /\=/, $arg, 2 ); + $params->{$key} = $value; + } + } else { + ( my $cgi, $params, my $error ) = params::get($r); + } - my $config = config::getFromScriptLocation(); + my $config = config::getFromScriptLocation(); - my $debug = $config->{system}->{debug}; - my $mem_debug = $config->{system}->{debug_memory}; - my $base_dir = $config->{locations}->{base_dir}; + my $debug = $config->{system}->{debug}; + my $mem_debug = $config->{system}->{debug_memory}; + my $base_dir = $config->{locations}->{base_dir}; - #my $cgi=new CGI(); - my $output_header = ''; - if ( exists $ENV{REQUEST_URI} && $ENV{REQUEST_URI} ne '' ) { - $output_header .= "Content-type:text/html; charset=UTF-8;\n\n"; - } + my $output_header = ''; + if ( exists $ENV{REQUEST_URI} && $ENV{REQUEST_URI} ne '' ) { + $output_header .= "Content-type:text/html; charset=UTF-8;\n\n"; + } - $params->{exclude_locations} = 1; - $params->{exclude_projects} = 1; - $params->{exclude_event_images} = 1; + $params->{exclude_locations} = 1; + $params->{exclude_projects} = 1; + $params->{exclude_event_images} = 1; - # $output_header.='<!DOCTYPE html>'."\n"; - my $request = { - url => $ENV{QUERY_STRING}, - params => { - original => $params, - checked => aggregator::check_params( $config, $params ), - }, - }; - $params = $request->{params}->{checked}; + # $output_header.='<!DOCTYPE html>'."\n"; + my $request = { + url => $ENV{QUERY_STRING}, + params => { + original => $params, + checked => aggregator::check_params( $config, $params ), + }, + }; + $params = $request->{params}->{checked}; - my $mem = 0; + my $mem = 0; - #get result from cache - my $cache = aggregator::get_cache( $config, $request ); + #get result from cache + my $cache = aggregator::get_cache( $config, $request ); - if ( ( defined $cache->{content} ) && ( $cache->{content} ne '' ) ) { - my $content = $cache->{content}; - print $output_header; - print $content; - return; - } + if ( ( defined $cache->{content} ) && ( $cache->{content} ne '' ) ) { + my $content = $cache->{content}; + print $output_header; + print $content; + return; + } - my $content = load_file( $base_dir . './index.html' ); - $content = $$content || ''; + my $content = load_file( $base_dir . './index.html' ); + $content = $$content || ''; - #replace HTML escaped calcms_title span by unescaped one - $content =~ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span id=\"calcms_title\" \>\<\/span\>/g; + #replace HTML escaped calcms_title span by unescaped one + $content =~ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span id=\"calcms_title\" \>\<\/span\>/g; - # print $content; + # print $content; - my $list = aggregator::get_list( $config, $request ); + my $list = aggregator::get_list( $config, $request ); - my $menu = { content => '' }; + my $menu = { content => '' }; - $list->{day} = '' unless defined $list->{day}; - $list->{day} = $params->{date} if ( defined $params->{date} ) && ( $params->{date} ne '' ); - $list->{day} = $params->{from_date} if ( defined $params->{from_date} ) && ( $params->{from_date} ne '' ); - $list->{day} = 'today' if $list->{day} eq ''; + $list->{day} = '' unless defined $list->{day}; + $list->{day} = $params->{date} if ( defined $params->{date} ) && ( $params->{date} ne '' ); + $list->{day} = $params->{from_date} if ( defined $params->{from_date} ) && ( $params->{from_date} ne '' ); + $list->{day} = 'today' if $list->{day} eq ''; - $menu = aggregator::get_menu( $config, $request, $list->{day}, $list->{results} ); + $menu = aggregator::get_menu( $config, $request, $list->{day}, $list->{results} ); - my $calendar = aggregator::get_calendar( $config, $request, $list->{day} ); - my $newest_comments = aggregator::get_newest_comments( $config, $request ); + my $calendar = aggregator::get_calendar( $config, $request, $list->{day} ); + my $newest_comments = aggregator::get_newest_comments( $config, $request ); - #my $newest_comments={}; - #db::disconnect($request) if (defined $request && defined $request->{connection}); - #print STDERR "$list->{project_title}\n"; + #my $newest_comments={}; + #db::disconnect($request) if (defined $request && defined $request->{connection}); + #print STDERR "$list->{project_title}\n"; - #build results list - my $output = {}; - $output->{calcms_menu} = \$menu->{content}; - $output->{calcms_list} = \$list->{content}; - $output->{calcms_calendar} = \$calendar->{content}; - $output->{calcms_newest_comments} = \$newest_comments->{content}; + #build results list + my $output = {}; + $output->{calcms_menu} = \$menu->{content}; + $output->{calcms_list} = \$list->{content}; + $output->{calcms_calendar} = \$calendar->{content}; + $output->{calcms_newest_comments} = \$newest_comments->{content}; - # $output->{calcms_categories} = load_file($base_dir.'/cache/categories.html'); - # $output->{calcms_series_names} = load_file($base_dir.'/cache/series_names.html'); - # $output->{calcms_programs} = load_file($base_dir.'/cache/programs.html'); + # $output->{calcms_categories} = load_file($base_dir.'/cache/categories.html'); + # $output->{calcms_series_names} = load_file($base_dir.'/cache/series_names.html'); + # $output->{calcms_programs} = load_file($base_dir.'/cache/programs.html'); - my $url = $list->{url}; - my $js = qq{ + my $url = $list->{url}; + my $js = qq{ set('preloaded','1'); set('last_list_url','$url'); }; - $content =~ s/\/\/\s*(calcms_)?preload/$js/; + $content =~ s/\/\/\s*(calcms_)?preload/$js/; - #insert results into page - for my $key ( keys %$output ) { - my $val = ${ $output->{$key} }; - my $start = index( $val, "<body>" ); - if ( $start != -1 ) { - $val = substr( $val, $start + length('<body>') ); - } - my $end = index( $val, "</body>" ); - if ( $end != -1 ) { - $val = substr( $val, 0, $end ); - } - $content =~ s/(<(div|span)\s+id="$key".*?>).*?(<\/(div|span)>)/$1$val$3/g; - } + #insert results into page + for my $key ( keys %$output ) { + my $val = ${ $output->{$key} }; + my $start = index( $val, "<body>" ); + if ( $start != -1 ) { + $val = substr( $val, $start + length('<body>') ); + } + my $end = index( $val, "</body>" ); + if ( $end != -1 ) { + $val = substr( $val, 0, $end ); + } + $content =~ s/(<(div|span)\s+id="$key".*?>).*?(<\/(div|span)>)/$1$val$3/g; + } - #replace whole element span with id="calcms_title" by value - $list->{project_title} = '' unless ( defined $list->{project_title} ); - $content =~ s/(<(div|span)\s+id="calcms_title".*?>).*?(<\/(div|span)>)/$list->{project_title}/g; + #replace whole element span with id="calcms_title" by value + $list->{project_title} = '' unless ( defined $list->{project_title} ); + $content =~ s/(<(div|span)\s+id="calcms_title".*?>).*?(<\/(div|span)>)/$list->{project_title}/g; - my $values = []; - for my $value ( $list->{'program'}, $list->{'series_name'}, $list->{'title'}, $list->{'location'}, $list->{'project_title'} ) { - next unless defined $value; - next if $value eq ''; - push @$values, $value; - } + my $values = []; + for my $value ( $list->{'program'}, $list->{'series_name'}, $list->{'title'}, $list->{'location'}, $list->{'project_title'} ) { + next unless defined $value; + next if $value eq ''; + push @$values, $value; + } - my $title = join( ' - ', @$values ); + my $title = join( ' - ', @$values ); - $content =~ s/(<title>)(.*?)(<\/title>)/$1$title$3/; + $content =~ s/(<title>)(.*?)(<\/title>)/$1$title$3/; - $js = ''; - if ( ( defined $list->{event_id} ) && ( $list->{event_id} ne '' ) ) { - $js .= qq{showCommentsByEventIdOrEventStart('$list->{event_id}','$list->{start_datetime}')}; - } + $js = ''; + if ( ( defined $list->{event_id} ) && ( $list->{event_id} ne '' ) ) { + $js .= qq{showCommentsByEventIdOrEventStart('$list->{event_id}','$list->{start_datetime}')}; + } - $content =~ s/startCalcms\(\)\;/$js/gi; + $content =~ s/startCalcms\(\)\;/$js/gi; - #replace link to uncompressed or compressed drupal (first link in <head>) - my @parts = split( /<\/head>/, $content ); - $parts[0] =~ s|/misc/jquery.js|/agenda_files/js/jquery.js|; - $parts[0] =~ s|/sites/default/files/js/[a-z0-9\_]+\.js|/agenda_files/js/jquery.js|; - $content = join( '</head>', @parts ); + #replace link to uncompressed or compressed drupal (first link in <head>) + my @parts = split( /<\/head>/, $content ); + $parts[0] =~ s|/misc/jquery.js|/agenda_files/js/jquery.js|; + $parts[0] =~ s|/sites/default/files/js/[a-z0-9\_]+\.js|/agenda_files/js/jquery.js|; + $content = join( '</head>', @parts ); - print $output_header; - print $content; + print $output_header; + print $content; - if ( $config->{cache}->{use_cache} eq '1' ) { - $cache->{content} = $content; - cache::save($cache); - } + if ( $config->{cache}->{use_cache} eq '1' ) { + $cache->{content} = $content; + cache::save($cache); + } - # $config=undef; - $content = undef; - $cache = undef; + # $config=undef; + $content = undef; + $cache = undef; } sub load_file { - my $filename = shift; - my $content = "cannot load '$filename'"; - open my $FILE, '<:utf8', $filename or return \$content; - $content = join( "", (<$FILE>) ); - close $FILE; - return \$content; + my $filename = shift; + my $content = "cannot load '$filename'"; + open my $FILE, '<:utf8', $filename or return \$content; + $content = join( "", (<$FILE>) ); + close $FILE; + return \$content; } diff --git a/website/agenda/cache/.htaccess b/website/agenda/cache/.htaccess index f9768da..372a2e2 100644 --- a/website/agenda/cache/.htaccess +++ b/website/agenda/cache/.htaccess @@ -1,3 +1,2 @@ -Order deny,allow -deny from all +Require all denied diff --git a/website/agenda/cache/programm/.htaccess b/website/agenda/cache/programm/.htaccess index 73b19b1..09f0c76 100644 --- a/website/agenda/cache/programm/.htaccess +++ b/website/agenda/cache/programm/.htaccess @@ -1,21 +1,19 @@ <IfModule mod_rewrite.c> -RewriteBase /programm + RewriteBase /programm -RewriteEngine on -RewriteCond %{REQUEST_FILENAME} -f -RewriteRule (.*) $1 [L] -RewriteCond %{REQUEST_FILENAME} -d -RewriteRule (.*) $1 [L] + RewriteEngine on + RewriteCond %{REQUEST_FILENAME} -f + RewriteRule (.*) $1 [L] + RewriteCond %{REQUEST_FILENAME} -d + RewriteRule (.*) $1 [L] -#controller - RewriteRule ^kalender/(\d{4}-\d{2}-\d{2})_(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?from_date=$1&till_date=$2&$3 [L] - RewriteRule ^kalender/(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?date=$1&$2 [L] - RewriteRule ^sendungen/(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?date=$1&$2 [L] -# RewriteRule ^sendung/(\d+)\.html/[^&]*(&.*)?$ /agenda/aggregate.cgi?event_id=$1&$2 [L] - RewriteRule ^sendung/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?event_id=$1&$2 [L] - RewriteRule ^sendung/serie_plus/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?next_series=$1&$2 [L] - RewriteRule ^sendung/serie_minus/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?previous_series=$1&$2 [L] -#controller end + RewriteRule ^kalender/(\d{4}-\d{2}-\d{2})_(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?from_date=$1&till_date=$2&$3 [L] + RewriteRule ^kalender/(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?date=$1&$2 [L] + RewriteRule ^sendungen/(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?date=$1&$2 [L] + # RewriteRule ^sendung/(\d+)\.html/[^&]*(&.*)?$ /agenda/aggregate.cgi?event_id=$1&$2 [L] + RewriteRule ^sendung/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?event_id=$1&$2 [L] + RewriteRule ^sendung/serie_plus/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?next_series=$1&$2 [L] + RewriteRule ^sendung/serie_minus/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?previous_series=$1&$2 [L] </IfModule> Options -Indexes +FollowSymLinks +MultiViews +ExecCGI @@ -30,9 +28,8 @@ Options -Indexes +FollowSymLinks +MultiViews +ExecCGI </IfModule> <IfModule !mod_perl.c> - AddHandler cgi-script .cgi .pl + AddHandler cgi-script .cgi .pl </IfModule> -#Order allow,deny -#allow from all Require all granted + diff --git a/website/agenda/cal.cgi b/website/agenda/cal.cgi index 558ba67..7bbd657 100755 --- a/website/agenda/cal.cgi +++ b/website/agenda/cal.cgi @@ -4,10 +4,6 @@ use warnings "all"; use strict; -use CGI qw(header param Vars); -$CGI::POST_MAX = 1000; -$CGI::DISABLE_UPLOADS = 1; - use Data::Dumper; use params(); use config(); diff --git a/website/agenda/category.cgi b/website/agenda/category.cgi index 7e6ba91..d97d7f5 100755 --- a/website/agenda/category.cgi +++ b/website/agenda/category.cgi @@ -3,9 +3,6 @@ use strict; use warnings; use Data::Dumper; -use CGI qw(header param Vars); -$CGI::POST_MAX = 1000; -$CGI::DISABLE_UPLOADS = 1; use params(); use db(); diff --git a/website/agenda/comments.cgi b/website/agenda/comments.cgi index c750458..9de872b 100755 --- a/website/agenda/comments.cgi +++ b/website/agenda/comments.cgi @@ -2,9 +2,6 @@ use warnings "all"; use strict; -use CGI qw(header param Vars); -$CGI::POST_MAX = 1000; -$CGI::DISABLE_UPLOADS = 1; use Data::Dumper; diff --git a/website/agenda/config/.htaccess b/website/agenda/config/.htaccess index b2f8f32..b66e808 100644 --- a/website/agenda/config/.htaccess +++ b/website/agenda/config/.htaccess @@ -1,3 +1 @@ -Order deny,allow -deny from all -Require all granted +Require all denied diff --git a/website/agenda/events.cgi b/website/agenda/events.cgi index c082433..989cd00 100755 --- a/website/agenda/events.cgi +++ b/website/agenda/events.cgi @@ -6,11 +6,6 @@ no warnings 'redefine'; use Data::Dumper; -use DBI; -use CGI qw(header param Vars); -$CGI::POST_MAX = 1000; -$CGI::DISABLE_UPLOADS = 1; - use params(); use config(); use log(); diff --git a/website/agenda/planung/assign_series.cgi b/website/agenda/planung/assign_series.cgi index 0b34f3c..19d0dc2 100755 --- a/website/agenda/planung/assign_series.cgi +++ b/website/agenda/planung/assign_series.cgi @@ -30,7 +30,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( !defined $user ) || ( $user eq '' ); #print STDERR $params->{project_id}."\n"; diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index 35e773c..bec6c26 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -31,7 +31,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); #print STDERR $params->{project_id}."\n"; diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index 790834a..c036841 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -45,7 +45,7 @@ my $fh = undef; $CGI::Simple::POST_MAX = $uploadLimit; $CGI::Simple::DISABLE_UPLOADS = 0; -$cgi = $cgi = CGI::Simple->new; +$cgi = CGI::Simple->new; my $filename = $cgi->param('upload'); $fh = $cgi->upload($filename); $error = $cgi->cgi_error() || ''; @@ -55,7 +55,7 @@ my $params = \%params; binmode $fh if defined $fh; #print "Content-type:text/html; charset=UTF-8;\n\n"; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); exit if ( !defined $user ) || ( $user eq '' ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 641aece..e46ff71 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -36,7 +36,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( !defined $user ) || ( $user eq '' ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index e11c02a..ca9dc05 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -31,7 +31,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( !defined $user ) || ( $user eq '' ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/create_events.cgi b/website/agenda/planung/create_events.cgi index 85d11bc..b19e2d1 100755 --- a/website/agenda/planung/create_events.cgi +++ b/website/agenda/planung/create_events.cgi @@ -25,7 +25,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); #print STDERR $params->{project_id}."\n"; diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 87cef7f..37f5dd5 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -39,7 +39,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/event_history.cgi b/website/agenda/planung/event_history.cgi index 52f52ec..53c616f 100755 --- a/website/agenda/planung/event_history.cgi +++ b/website/agenda/planung/event_history.cgi @@ -30,7 +30,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( $config, { user => $user, studio_id => $params->{studio_id} } ); diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi index 81c8c9b..5ccf7c5 100755 --- a/website/agenda/planung/help.cgi +++ b/website/agenda/planung/help.cgi @@ -24,7 +24,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index c04d8bb..7187ebb 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -8,7 +8,6 @@ use Data::Dumper; use File::stat(); use Time::localtime(); -use CGI::Simple(); use URI::Escape(); use time(); @@ -31,11 +30,10 @@ binmode STDOUT, ":utf8"; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); -$CGI::POST_MAX = 1024 * 10; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi index e03fb94..ca51a8c 100755 --- a/website/agenda/planung/imageUpload.cgi +++ b/website/agenda/planung/imageUpload.cgi @@ -74,7 +74,7 @@ if ( defined $r ) { $params = \%params; } print "Content-type:text/html; charset=UTF-8;\n\n"; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/localization.cgi b/website/agenda/planung/localization.cgi index 07212c6..f4b078f 100755 --- a/website/agenda/planung/localization.cgi +++ b/website/agenda/planung/localization.cgi @@ -20,7 +20,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( $user eq '' ); my $request = { diff --git a/website/agenda/planung/notify_events.cgi b/website/agenda/planung/notify_events.cgi index b2d9612..22bfa2e 100755 --- a/website/agenda/planung/notify_events.cgi +++ b/website/agenda/planung/notify_events.cgi @@ -28,7 +28,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index 737c343..342a7d6 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -33,7 +33,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); print "Content-type:text/html; charset=UTF-8;\n\n"; diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 3b5fec0..0cfc923 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -21,7 +21,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( $user eq '' ); my $permissions = roles::get_user_permissions($config); diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 46b362c..f90c7e8 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -22,7 +22,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); our $actions = { diff --git a/website/agenda/planung/selectEvent.cgi b/website/agenda/planung/selectEvent.cgi index 76aad4f..623b092 100755 --- a/website/agenda/planung/selectEvent.cgi +++ b/website/agenda/planung/selectEvent.cgi @@ -21,7 +21,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/selectSeries.cgi b/website/agenda/planung/selectSeries.cgi index d75bce7..c723603 100755 --- a/website/agenda/planung/selectSeries.cgi +++ b/website/agenda/planung/selectSeries.cgi @@ -20,7 +20,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 7064986..dc9d4d6 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -33,7 +33,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); #print STDERR $params->{project_id}."\n"; diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index bc6eedf..f2aa6f2 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -6,7 +6,6 @@ use warnings; use strict; use Data::Dumper; -use CGI::Simple (); use ModPerl::Util (); use config; @@ -25,7 +24,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); #print STDERR $params->{project_id}."\n"; diff --git a/website/agenda/planung/showImage.cgi b/website/agenda/planung/showImage.cgi index a54a6cc..df610ca 100755 --- a/website/agenda/planung/showImage.cgi +++ b/website/agenda/planung/showImage.cgi @@ -22,7 +22,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio_timeslots.cgi index 72e8888..915076c 100755 --- a/website/agenda/planung/studio_timeslots.cgi +++ b/website/agenda/planung/studio_timeslots.cgi @@ -29,7 +29,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 5f3aef2..9dd8724 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -21,7 +21,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( $user eq '' ); my $permissions = roles::get_user_permissions($config); diff --git a/website/agenda/planung/user_settings.cgi b/website/agenda/planung/user_settings.cgi index be5e14c..f3e2fd4 100755 --- a/website/agenda/planung/user_settings.cgi +++ b/website/agenda/planung/user_settings.cgi @@ -20,7 +20,7 @@ my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/user_stats.cgi b/website/agenda/planung/user_stats.cgi index a51c1ee..1457344 100755 --- a/website/agenda/planung/user_stats.cgi +++ b/website/agenda/planung/user_stats.cgi @@ -22,7 +22,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index 4b786fe..dc90d4b 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -19,7 +19,7 @@ my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( $config, diff --git a/website/agenda/planung/work_time.cgi b/website/agenda/planung/work_time.cgi index 0b0b8e8..b2ab21e 100755 --- a/website/agenda/planung/work_time.cgi +++ b/website/agenda/planung/work_time.cgi @@ -28,7 +28,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; -my ( $user, $expires ) = auth::get_user( $cgi, $config ); +my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); #print STDERR $params->{project_id}."\n"; diff --git a/website/agenda/series_names.cgi b/website/agenda/series_names.cgi index 98b4111..411e945 100755 --- a/website/agenda/series_names.cgi +++ b/website/agenda/series_names.cgi @@ -7,10 +7,6 @@ use warnings "all"; use strict; use Data::Dumper; -use CGI qw(header param Vars); -$CGI::POST_MAX = 1000; -$CGI::DISABLE_UPLOADS = 1; - use params(); use db(); use markup(); diff --git a/website/agenda/upload_playout.cgi b/website/agenda/upload_playout.cgi index cb7737e..a27c556 100755 --- a/website/agenda/upload_playout.cgi +++ b/website/agenda/upload_playout.cgi @@ -3,10 +3,6 @@ use warnings "all"; use strict; -use CGI qw(header param Vars); -$CGI::POST_MAX = 1000; -$CGI::DISABLE_UPLOADS = 1; - use Data::Dumper; use JSON(); From 1f9cd049142421d5bd4bd76fdd0e2540eb67a58c Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 5 Oct 2018 00:17:21 +0200 Subject: [PATCH 029/391] increase upload limit remaining upload time will be calculated more simple --- website/agenda/planung/audio_recordings.cgi | 2 +- .../agenda/planung/css/audio_recordings.css | 7 +++ website/agenda/planung/js/audio_recordings.js | 52 ++++++++++++------- .../templates/upload_audio_recordings.html | 3 +- website/agenda/upload_playout.cgi | 11 ++-- 5 files changed, 47 insertions(+), 28 deletions(-) diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index c036841..2564904 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -34,7 +34,7 @@ our $debug = $config->{system}->{debug}; my $base_dir = $config->{locations}->{base_dir}; my $tempDir = '/var/tmp'; -my $uploadLimit = 200_000_000; +my $uploadLimit = 300_000_000; my %params = (); my $error = ''; diff --git a/website/agenda/planung/css/audio_recordings.css b/website/agenda/planung/css/audio_recordings.css index fd1576d..a2ac4e3 100644 --- a/website/agenda/planung/css/audio_recordings.css +++ b/website/agenda/planung/css/audio_recordings.css @@ -19,3 +19,10 @@ h2 { th{ text-align:center; } + +#progressBar{ + width:100%; + height:1rem; + border:0; + box-shadow:#888 2px 2px 1px 1px; +} diff --git a/website/agenda/planung/js/audio_recordings.js b/website/agenda/planung/js/audio_recordings.js index 5d75555..fec9f7b 100644 --- a/website/agenda/planung/js/audio_recordings.js +++ b/website/agenda/planung/js/audio_recordings.js @@ -18,9 +18,9 @@ function changeFile(fileInput){ var file = fileInput.files[0]; var size = file.size / (1000*1000); $('#uploadSize').html(size + " MB"); - if (size > 200){ + if (size > 300){ $('#uploadButton').hide(); - showError("file is too large. maximum size is 200 MB! Please use MP3, 192 kHz, CBR, 44100 Hz, 16bit"); + showError("file is too large. maximum size is 300 MB! Please use MP3, 192 kHz, CBR, 44100 Hz, 16bit"); }else{ $('#uploadButton').show(); } @@ -46,7 +46,10 @@ function hideFinished(){ function roundSize(size){ var MB=1000*1000; - return Math.round(size*10/MB)/10; + var value= Math.round(size*10/MB)/10; + value+=''; + if (value.indexOf('.')<0)value+='.0'; + return value; } function uploadFile(uploadButton){ @@ -64,24 +67,37 @@ function uploadFile(uploadButton){ var start = new Date(); var myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { + var c=0; + var oldRemaining=0; myXhr.upload.addEventListener( 'progress', function(data) { - if (data.lengthComputable) { - var loaded=roundSize(data.loaded); - var total=roundSize(data.total); - $('#progressBar').attr("value", loaded); - $('#progressBar').attr("max", total); - var duration=(new Date().getTime() - start.getTime()) / 1000 ; - var bitrate = loaded / duration; - var remaining = Math.round(100 * bitrate * ( total - loaded) ); - var content = loaded + " of " + total + " MB<br>"; - content += '<div class="thin">'; - content += "finished in " + remaining + " seconds<br>"; - content += "took " + Math.round(duration) + " seconds<br>"; - content += '</div>' - $('#progressLabel').html(content); - } + if (!data.lengthComputable) return; + c++; + + var loaded=roundSize(data.loaded); + var total=roundSize(data.total); + $('#progressBar').attr("value", loaded); + $('#progressBar').attr("max", total); + + if (c<2)return; + c=0; + + var duration=(new Date().getTime() - start.getTime()) / 1000 ; + var bitrate = loaded / duration; + + //var remaining = Math.round(bitrate * ( total - loaded) ); + var remaining = Math.round( (duration * data.total / data.loaded) - duration ); + if (oldRemaining == 0) oldRemaining = remaining; + if (duration>30) remaining= oldRemaining*0.5 + remaining*0.5; + oldRemaining=remaining; + + var content = loaded + " of " + total + " MB<br>"; + content += '<div class="thin">'; + content += "finished in " + Math.round(remaining) + " seconds<br>"; + content += "took " + Math.round(duration) + " seconds<br>"; + content += '</div>' + $('#progressLabel').html(content); } , false ); diff --git a/website/agenda/planung/templates/upload_audio_recordings.html b/website/agenda/planung/templates/upload_audio_recordings.html index d31335c..8c285fb 100644 --- a/website/agenda/planung/templates/upload_audio_recordings.html +++ b/website/agenda/planung/templates/upload_audio_recordings.html @@ -118,7 +118,6 @@ </TMPL_IF> --> -</div> -</center> +</main> </body> </html> diff --git a/website/agenda/upload_playout.cgi b/website/agenda/upload_playout.cgi index a27c556..15baf17 100755 --- a/website/agenda/upload_playout.cgi +++ b/website/agenda/upload_playout.cgi @@ -18,9 +18,10 @@ binmode STDOUT, ":encoding(UTF-8)"; if ( $0 =~ /upload_playout.*?\.cgi$/ ) { # read POST content - my ( $buf, $content ); - while ( $r->read( $buf, 8192 ) ) { - $content .= $buf; + my $buffer = ''; + my $content = ''; + while ( $r->read( $buffer, 65536 ) ) { + $content .= $buffer; } $content = "{}" unless $content; @@ -29,7 +30,6 @@ if ( $0 =~ /upload_playout.*?\.cgi$/ ) { my $config = config::getFromScriptLocation(); my $debug = $config->{system}->{debug}; - my $len = $r->headers_in()->get('Content-Length'); print "Content-type:text/plain\n\n"; my $json = JSON::decode_json($content); @@ -39,9 +39,6 @@ if ( $0 =~ /upload_playout.*?\.cgi$/ ) { my $result = playout::sync( $config, $json ); $config->{access}->{write} = 0; - #print Dumper($content)."\n"; - #print Dumper($r); - #print Dumper($json); print "upload playout result:" . Dumper($result); } From 8eb6a642095c41f3008b443f799fad7655eae082 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 5 Oct 2018 00:20:45 +0200 Subject: [PATCH 030/391] use new icon set adopt UI to use new icon set --- website/agenda/planung/calendar.cgi | 25 +- website/agenda/planung/css/admin.css | 72 +- website/agenda/planung/css/calendar.css | 16 +- website/agenda/planung/css/fas.css | 5 + website/agenda/planung/js/admin.js | 18 +- website/agenda/planung/js/calendar.js | 15 +- website/agenda/planung/js/history.js | 15 +- website/agenda/planung/pot/de/menu.po | 5 +- website/agenda/planung/pot/en/menu.po | 5 +- website/agenda/planung/templates/default.html | 63 +- .../agenda/planung/templates/header_head.html | 5 +- .../agenda/planung/webfonts/fa-brands-400.eot | Bin 0 -> 118560 bytes .../agenda/planung/webfonts/fa-brands-400.svg | 1154 ++++++++ .../agenda/planung/webfonts/fa-brands-400.ttf | Bin 0 -> 118324 bytes .../planung/webfonts/fa-brands-400.woff | Bin 0 -> 76344 bytes .../planung/webfonts/fa-brands-400.woff2 | Bin 0 -> 65316 bytes .../planung/webfonts/fa-regular-400.eot | Bin 0 -> 40576 bytes .../planung/webfonts/fa-regular-400.svg | 467 ++++ .../planung/webfonts/fa-regular-400.ttf | Bin 0 -> 40348 bytes .../planung/webfonts/fa-regular-400.woff | Bin 0 -> 18168 bytes .../planung/webfonts/fa-regular-400.woff2 | Bin 0 -> 14868 bytes .../agenda/planung/webfonts/fa-solid-900.eot | Bin 0 -> 180720 bytes .../agenda/planung/webfonts/fa-solid-900.svg | 2444 +++++++++++++++++ .../agenda/planung/webfonts/fa-solid-900.ttf | Bin 0 -> 180500 bytes .../agenda/planung/webfonts/fa-solid-900.woff | Bin 0 -> 86876 bytes .../planung/webfonts/fa-solid-900.woff2 | Bin 0 -> 67400 bytes 26 files changed, 4232 insertions(+), 77 deletions(-) create mode 100644 website/agenda/planung/css/fas.css create mode 100644 website/agenda/planung/webfonts/fa-brands-400.eot create mode 100644 website/agenda/planung/webfonts/fa-brands-400.svg create mode 100644 website/agenda/planung/webfonts/fa-brands-400.ttf create mode 100644 website/agenda/planung/webfonts/fa-brands-400.woff create mode 100644 website/agenda/planung/webfonts/fa-brands-400.woff2 create mode 100644 website/agenda/planung/webfonts/fa-regular-400.eot create mode 100644 website/agenda/planung/webfonts/fa-regular-400.svg create mode 100644 website/agenda/planung/webfonts/fa-regular-400.ttf create mode 100644 website/agenda/planung/webfonts/fa-regular-400.woff create mode 100644 website/agenda/planung/webfonts/fa-regular-400.woff2 create mode 100644 website/agenda/planung/webfonts/fa-solid-900.eot create mode 100644 website/agenda/planung/webfonts/fa-solid-900.svg create mode 100644 website/agenda/planung/webfonts/fa-solid-900.ttf create mode 100644 website/agenda/planung/webfonts/fa-solid-900.woff create mode 100644 website/agenda/planung/webfonts/fa-solid-900.woff2 diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index e46ff71..bfbd425 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -520,8 +520,7 @@ sub showCalendar { if ( $params->{part} == 0 ) { printSeries( $config, $permissions, $params, $cal_options ); print qq{ - </div><!--content--> - </center> + </main> }; } @@ -724,6 +723,11 @@ sub showEventList { my $events_by_day = shift; my $language = $params->{language}; + my $rerunIcon='<i class="fas fa-redo" title="$params->{loc}->{label_rerun}"></i>'; + my $liveIcon='<i class="fas fa-microphone-alt" title="$params->{loc}->{label_live}"></i>'; + my $draftIcon='<i class="fas fa-drafting-compass" title="$params->{loc}->{label_draft}"></i>'; + my $archiveIcon='<i class="fas fa-archive" title="$params->{loc}->{label_archived}"></i>'; + my $out = ''; $out = qq{ <div id="event_list"> @@ -737,10 +741,10 @@ sub showEventList { <th class="series_name">$params->{loc}->{label_series}</th> <th class="title">$params->{loc}->{label_title}</th> <th class="episode">$params->{loc}->{label_episode}</th> - <th class="rerun" title="$params->{loc}->{label_rerun}"><img src="image/32/rerun.png"></th> - <th class="live" title="$params->{loc}->{label_live}"><img src="image/32/live.png"></th> - <th class="draft" title="$params->{loc}->{label_draft}"><img src="image/32/draft.png"></th> - <th class="archive" title="$params->{loc}->{label_archived}"><img src="image/32/archived.png"></th> + <th class="rerun">$rerunIcon</th> + <th class="draft">$draftIcon</th> + <th class="live">$liveIcon</th> + <th class="archive">$archiveIcon</th> </tr> </thead> <tbody> @@ -795,11 +799,11 @@ sub showEventList { my $archived = $event->{archived} || '-'; $archived = '-' if $archived eq '0'; - $archived = 'x' if $archived eq '1'; + $archived = $archiveIcon if $archived eq '1'; my $live = $event->{live} || '-'; $live = '-' if $live eq '0'; - $live = 'x' if $live eq '1'; + $live = $liveIcon if $live eq '1'; my $rerun = $event->{rerun} || '-'; @@ -808,7 +812,7 @@ sub showEventList { my $draft = $event->{draft} || '0'; $draft = '-' if $draft eq '0'; - $draft = 'x' if $draft eq '1'; + $draft = $draftIcon if $draft eq '1'; my $title = $event->{title}; $title .= ': ' . $event->{user_title} if $event->{user_title} ne ''; @@ -862,8 +866,7 @@ sub showEventList { } $out .= qq{ - </div><!--content--> - </center> + </main> <script> var region='} . $params->{loc}->{region} . q{'; var calendarTable=0; diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index 37019df..737a721 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -11,7 +11,7 @@ body{ body #content{ margin:0; padding:1em; - max-width:980px; + max-width:1200px; color:#000; background:#fff; text-align:left; @@ -29,9 +29,8 @@ body, #content select, #content option, #content li{ - font-size:14px; font-size:0.75rem; - font-family:Roboto,sans-serif; + font-family:Roboto,sans-serif; } #content textarea{ @@ -90,24 +89,24 @@ body, #calcms_admin_menu select{ font-size:14px; padding:6px; - padding-top:1em; - padding-bottom:1em; + padding-top:1rem; + padding-bottom:1rem; line-height:3em; } -#calcms_admin_menu div:hover, +#calcms_admin_menu a:hover, #calcms_admin_menu select:hover{ - background:#888; + background:#666; } #calcms_admin_menu div { - transition: all 0.2s; + transition: background 0.2s; } #calcms_admin_menu select, #calcms_admin_menu option{ font-size:0.8rem; - width:8em; + max-width:8em; border:0; padding-left:0; padding-right:0; @@ -167,6 +166,7 @@ a{ #content .button{ width:10em; + cursor:pointer; } *:focus {outline: none;} @@ -335,6 +335,7 @@ tr.tablesorter-filter-row input{ #content a.ui-button:active, #content .ui-button:active{ background-color:#2196f3; + cursor:pointer; } #content input[type="submit"]:hover, @@ -439,3 +440,56 @@ input[type='checkbox']{ #content input[readonly] { border: 0; } + + +/* new */ + +#calcms_admin_menu{ + font-size:0.9375rem; + position:fixed; + top:0; + left:0; + right:0; + justify-content:end; +} + +#calcms_admin_menu div a, +#calcms_admin_menu select, +#calcms_admin_menu option{ + font-size:0.9375rem; +} + +#calcms_admin_menu select, +#calcms_admin_menu option{ + border:0; + text-align:left; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + border: none; +} + +body #content{ + margin-top:0; +} + +body, +#content input, +#content textarea, +#content td, +#content div, +#content select, +#content option, +#content li, +#content input[type="submit"], +#content input[type="file"], +#content button{ + font-size:0.85rem; +} + +#calcms_admin_menu .fa, +#calcms_admin_menu .far, +#calcms_admin_menu .fas{ + opacity:0.5; +} + diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index a3e21d8..36db7dd 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -75,14 +75,6 @@ button:hover{ } } -#calendar div.event img{ - width:16px; - height:16px; - border:0; - margin:-2px; - padding:0px; -} - #event_list tr{ border-bottom:1px solid #999; } @@ -99,9 +91,13 @@ button:hover{ #calendar div.event div.icons{ position:absolute; - top:-5px; - right:-7px; + top:0px; + right:0px; + margin:0; width:16px; + font-size:16px; + opacity:0.8; + line-height:1.5; } #calendar div.time.now { diff --git a/website/agenda/planung/css/fas.css b/website/agenda/planung/css/fas.css new file mode 100644 index 0000000..03c0a79 --- /dev/null +++ b/website/agenda/planung/css/fas.css @@ -0,0 +1,5 @@ +/*! + * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/website/agenda/planung/js/admin.js b/website/agenda/planung/js/admin.js index c6803f3..ab3c71e 100644 --- a/website/agenda/planung/js/admin.js +++ b/website/agenda/planung/js/admin.js @@ -207,12 +207,13 @@ function getUrlParameter(name){ // will be overridden by calendar.js function setupMenuHeight(){ - //$('#content').css("position", "absolute"); + var menu=$('#calcms_admin_menu'); - /* - var top = $('#calcms_admin_menu').height(); + $('#content').css("position", "absolute"); + var top = menu.height(); $('#content').css("top", top); + var left=0; if( $(window).width() >= $(document).width() ){ left=$(document).width()-$('#content').width(); @@ -220,7 +221,7 @@ function setupMenuHeight(){ if (left<40)left=0; } $('#content').css("left", left); - */ + return top; } @@ -326,10 +327,11 @@ $(document).ready( }); } initLabels(); - //setupMenuHeight(); - //$(window).resize(function() { - //setupMenuHeight(); - //}); + + setupMenuHeight(); + $(window).resize(function() { + setupMenuHeight(); + }); } ); diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index f59fcf4..c28b777 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -407,19 +407,24 @@ function checkStudio(){ function setIcons(){ var img=''; - img='<img class="img_live" src="image/live.png" title="live">' + //img='<img class="img_live" src="image/live.png" title="live">' + img='<i class="fas fa-microphone-alt" title="live"></i>'; $('#calendar div.event.live.no_rerun div.icons').append(img); - img='<img class="img_preproduced" src="image/preproduced.png" title="preproduced">' + img='<i class="fas fa-microphone-slash" title="preproduced"></i>'; + //img='<img class="img_preproduced" src="image/preproduced.png" title="preproduced">' $('#calendar div.event.preproduced.no_rerun div.icons').append(img); - img='<img class="img_rerun" src="image/rerun.png" title="rerun">' + img='<i class="fas fa-redo" title="rerun"></i>'; + //img='<img class="img_rerun" src="image/rerun.png" title="rerun">' $('#calendar div.event.rerun div.icons').append(img); - img='<img class="img_playout" src="image/playout.png" title="playout">' + img='<i class="fas fa-play" title="playout"></i>'; + //img='<img class="img_playout" src="image/playout.png" title="playout">' $('#calendar div.event.playout div.icons').append(img); - img='<img class="img_archived" src="image/archived.png" title="archived">' + img='<i class="fas fa-archive" title="archived"></i>'; + //img='<img class="img_archived" src="image/archived.png" title="archived">' $('#calendar div.event.archived div.icons').append(img); } diff --git a/website/agenda/planung/js/history.js b/website/agenda/planung/js/history.js index 7a44b44..2c9100c 100644 --- a/website/agenda/planung/js/history.js +++ b/website/agenda/planung/js/history.js @@ -133,11 +133,16 @@ function addBackButton(){ // add back button if history exists var history=getHistory(); //console.log(history.length); - if (history.length>1) $('#calcms_admin_menu').first().prepend( - '<div><a id="backButton" href="#" onclick="getBack();">' - +loc['button_back'] - +'</a></div>' - ); + if (history.length>1){ + $('#calcms_admin_menu').first().prepend( + '<div><a id="backButton" href="#" onclick="getBack();">' + +'<i class="fas fa-caret-square-left fa-1g"></i>' + +' ' + +loc['button_back'] + +'</a></div>' + ); + } + setupMenuHeight(); //showHistory(); } diff --git a/website/agenda/planung/pot/de/menu.po b/website/agenda/planung/pot/de/menu.po index d4d84d4..7181cb6 100644 --- a/website/agenda/planung/pot/de/menu.po +++ b/website/agenda/planung/pot/de/menu.po @@ -32,7 +32,7 @@ msgid "errors" msgstr "Fehler" msgid "logout" -msgstr "Abmelden" +msgstr "abmelden" msgid "studio" msgstr "Studio" @@ -55,3 +55,6 @@ msgstr "Bilder" msgid "schedule" msgstr "Dienstplan" +msgid "preview" +msgstr "Vorschau" + diff --git a/website/agenda/planung/pot/en/menu.po b/website/agenda/planung/pot/en/menu.po index f2293d8..b4cd0eb 100644 --- a/website/agenda/planung/pot/en/menu.po +++ b/website/agenda/planung/pot/en/menu.po @@ -53,5 +53,8 @@ msgid "images" msgstr "Images" msgid "schedule" -msgstr "roster" +msgstr "Schedule" + +msgid "preview" +msgstr "Preview" diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index 7ac0514..33a7197 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -1,72 +1,85 @@ <TMPL_INCLUDE header.html> <center> -<div id="calcms_admin_menu"> +<nav id="calcms_admin_menu"> -<div><a href="/"><img width="20px" height="20px" src="<TMPL_VAR static_files_url>/image/logo.jpg" alt="Hauptseite"/></a></div> +<div><a href="/"><i class="fas fa-rocket"></i> <TMPL_VAR .loc.preview></a></div> <TMPL_IF .allow.read_event> -<div> <a id="menu_calendar" href="calendar.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR studio_id>"><TMPL_VAR .loc.calendar></a> </div> +<div><a id="menu_calendar" href="calendar.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR studio_id>"><i class="fas fa-calendar-alt"></i> <TMPL_VAR .loc.calendar></a></div> </TMPL_IF> <TMPL_IF .allow.read_series> -<div> <a href="series.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.series></a> </div> +<div><a href="series.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-list-alt"></i> <TMPL_VAR .loc.series></a></div> </TMPL_IF> <TMPL_IF .allow.read_playout> -<div> <a href="show-playout.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.playout></a> </div> +<div><a href="show-playout.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-play"></i> <TMPL_VAR .loc.playout></a></div> </TMPL_IF> <TMPL_IF .allow.read_user> -<div> <a href="users.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.users></a> </div> +<div><a href="users.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-users"></i> <TMPL_VAR .loc.users></a></div> </TMPL_IF> <TMPL_IF .allow.read_role> -<div> <a href="roles.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.roles></a> </div> +<div><a href="roles.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-tasks"></i> <TMPL_VAR .loc.roles></a></div> </TMPL_IF> <TMPL_IF .allow.read_studio> -<div> <a href="studios.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.studios></a> </div> +<div><a href="studios.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-project-diagram"></i> <TMPL_VAR .loc.studios></a></div> </TMPL_IF> <TMPL_IF .allow.read_studio_timeslot_schedule> -<div> <a href="studio_timeslots.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.timeslots></a> </div> +<div><a href="studio_timeslots.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-clock"></i> <TMPL_VAR .loc.timeslots></a></div> </TMPL_IF> <TMPL_IF .allow.read_project> -<div> <a href="projects.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.projects></a> </div> +<div><a href="projects.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-broadcast-tower"></i> <TMPL_VAR .loc.projects></a></div> </TMPL_IF> <TMPL_IF .allow.read_schedule> -<div> <a href="work_time.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.schedule></a> </div> +<div><a href="work_time.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-clock"></i> <TMPL_VAR .loc.schedule></a></div> </TMPL_IF> +<!-- <TMPL_IF .allow.update_image_others> -<div> <a href="image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.images></a> </div> +<div><a href="image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-images"></i> <TMPL_VAR .loc.images></a></div> </TMPL_IF> +--> <TMPL_IF .allow.scan_series_events> -<div> <a href="assignments.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.import></a> </div> +<!-- +<div><a href="assignments.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.import></a></div> +--> </TMPL_IF> -<div> <a href="user_settings.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.profile></a> </div> +<div title="<TMPL_VAR .loc.profile>"><a href="user_settings.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-cog"></i> <TMPL_VAR .loc.profile></a></div> -<div> <a href="help.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.help></a> </div> +<div title="<TMPL_VAR .loc.help>"><a href="help.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-info"></i> <TMPL_VAR .loc.help></a></div> +<div> +<i class="fas fa-home"></i> <select id="studio_id" name="studio_id" onchange="set_studio($(this).val())"> <TMPL_LOOP .presets.studios> -<option value="<TMPL_VAR id>" <TMPL_IF selected> selected="selected"</TMPL_IF> ><TMPL_VAR .loc.studio> <TMPL_VAR name></option> +<option value="<TMPL_VAR id>" <TMPL_IF selected> selected="selected"</TMPL_IF> ><TMPL_VAR name></option> </TMPL_LOOP> </select> - -<select id="project_id" name="project_id" onchange="set_project($(this).val())"> -<TMPL_LOOP .presets.projects> -<option value="<TMPL_VAR project_id>" <TMPL_IF selected> selected="selected"</TMPL_IF> ><TMPL_VAR .loc.project> <TMPL_VAR name></option> -</TMPL_LOOP> -</select> - -<div><a id="logout" href="<TMPL_VAR .presets.logout_url>?action=logout" expires="<TMPL_VAR .expires>"><TMPL_VAR .loc.logout></a> <TMPL_VAR .presets.user></div> +<i class="fas fa-caret-down"></i> </div> -<div id="content"> +<div> +<i class="fas fa-broadcast-tower"></i> +<select id="project_id" name="project_id" onchange="set_project($(this).val())"> +<TMPL_LOOP .presets.projects> +<option value="<TMPL_VAR project_id>" <TMPL_IF selected> selected="selected"</TMPL_IF> ><TMPL_VAR name></option> +</TMPL_LOOP> +</select> +<i class="fas fa-caret-down"></i> +</div> + +<div><a id="logout" href="<TMPL_VAR .presets.logout_url>?action=logout" expires="<TMPL_VAR .expires>"><i class="fas fa-sign-out-alt"></i> <TMPL_VAR .presets.user> <TMPL_VAR .loc.logout></a></div> + +</nav> + +<main id="content"> diff --git a/website/agenda/planung/templates/header_head.html b/website/agenda/planung/templates/header_head.html index affea4e..6840b24 100644 --- a/website/agenda/planung/templates/header_head.html +++ b/website/agenda/planung/templates/header_head.html @@ -2,9 +2,10 @@ var event_manager=0; </script> -<link rel="stylesheet" href="css/admin.css" type="text/css" /> +<link rel="stylesheet" href="css/fas.css"> <link rel="stylesheet" href="css/jquery-ui.min.css" type="text/css" /> -<!--<TMPL_VAR static_files_url>--> +<link rel="stylesheet" href="css/admin.css" type="text/css" /> + <script src="js/jquery.min.js" type="text/javascript"></script> <script src="js/jquery-ui.min.js" type="text/javascript"></script> <script src="js/admin.js" type="text/javascript"></script> diff --git a/website/agenda/planung/webfonts/fa-brands-400.eot b/website/agenda/planung/webfonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..086c4a712335c4eded3332f881081fc86c66ec1c GIT binary patch literal 118560 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 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-brands-400.svg b/website/agenda/planung/webfonts/fa-brands-400.svg new file mode 100644 index 0000000..10f7cdc --- /dev/null +++ b/website/agenda/planung/webfonts/fa-brands-400.svg @@ -0,0 +1,1154 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<defs> + <font id="fontawesome-free" horiz-adv-x="640.4"> + <font-face font-family="Font Awesome 5 Brands" + units-per-em="512" ascent="448" + descent="64" + font-weight="400" + font-style="Regular" /> + <missing-glyph horiz-adv-x="0" /> + <glyph glyph-name="500px" + unicode="" + horiz-adv-x="448" d=" M103.3 103.7C96.8 117.9 96.4 122 110.7 126.8C136.3 134.8 118.7 117.6 153.9 77.6H154.2V171.5C155.4 221.7 198.2 263.7 251.9000000000001 263.7C305.8 263.7 349.6 220.2 349.6 166.9C349.6 103.5 288.8 53.7 221.1 73.6C210.6 77.8 219 105.3 229.6 102.2C282.6 102.2 319 112.3 319 166.6C319 227.6 241.9 256.2000000000001 202.1 211.2C178.6 184.8 184.5 169.1 184.5 53.6C235.2 22.6 302.8 31.6 344.9 73.7000000000001C369.7 98.5000000000001 383.4 131.7000000000001 383.4 166.7000000000001C383.4 201.9 369.6 234.9000000000001 344.6 260.0000000000001C319.8 284.8000000000001 286.8 298.5000000000001 251.3 298.5000000000001S182.5 284.7000000000001 157.8 260.0000000000001C157.5 259.7000000000001 141.8 243.5000000000001 136.6 236.1000000000001L136.1 235.5000000000001C132.8 230.8000000000001 129.8 226.4000000000001 116 229.4000000000001C109.1 231.1000000000001 101.7 235.2000000000001 101.7 241.2000000000001V428C101.7 433 105.6 438.5 112.2 438.5H353.5C361.8 438.5 361.8 426.9 361.8 423.4C361.8 419.5 361.8 408.3 353.5 408.3H130.3V275.4H130.6C234.8 385.2 413.4000000000001 311.4 413.4000000000001 166.5C413.4000000000001 -11.6 168.6 -53.8 103.3 103.7zM166.6 364.5C166.1 360.3 171.2 340 181.2 343.9C306 391.4 384 303.5 390.6 303.5C395.4000000000001 303.5 413.4000000000001 318.8 404.9000000000001 326.3C311.7000000000001 415.3 170.4 383.3 166.6 364.5zM393 33.3C283 -76.6 94 -27.5 61 137.5C61 149.7 30.6 144.9 32.1 134.2C56.1 -39.2 278.1 -122.7 413.7000000000001 12.9C420.6 20.7 401.1 41.3 393.0000000000001 33.3zM213.6 141.4C213.6 137.4 217.9 134.1 219.1 132.9C222.1 129.9 225.2 128.5 227.6 128.5C231.4 128.5 230.2 128.3 249.9 148C269.5 128.7 269 128.5 272.2 128.5C277.6 128.5 290.7 138.9 282.9 146.7L265.6 164L283.8 182.2C290.1 189 273.7 204 267.6 197.9L249.7 180C231.1 198.8 231.3 199.5 228.2 199.5C223.2 199.5 210.2 187.8 215.8 182.2L234 164C215.9 146.1 213.6 144.8 213.6 141.4z" /> + <glyph glyph-name="accessible-icon" + unicode="" + horiz-adv-x="448" d=" M423.9 192.2L411 34.9C407.7 -5.8 347.1 -0.2 350.4 39.8L360.4 162.3L319.3 160C329.4 139.3 335.1 116.1 335.1 91.4999999999999C335.1 50.3 319 12.8 292.8 -15.0000000000001L253.5 24.3C311.3999999999999 87.9999999999999 266.6 191.5 179.5 191.5C153.5999999999999 191.5 130 181.6 112.2999999999999 165.5L73 204.8C95 225.5 123.1 239.9 154.4 245L229.7 330.7L187.1 355.5L135.5 309.5C105.5 282.7 64.9 328 95 354.9L163 415.6C172.8 424.4000000000001 187.1 425.8 198.5 419.2C198.5 419.2 337.8 338.3 338 338.1C354.2 328 358.7 302.1 344.1 285.5L285.7 219L391.8 224.9C410.3 226 425.4 210.5 423.9 192.2zM359 346.2C387.1 346.2 409.9 369 409.9 397.1C409.9 425.2 387.1 448 359 448C330.9 448 308.1 425.2 308.1 397.1C308.1 369 330.9000000000001 346.2 359 346.2zM179.6 -8.5C99 -8.5 52.2 82.1 96.9 147.6L57.2 187.3C36.4 161 24 127.7 24 91.6C24 -39.1 174.7 -109.7999999999999 275.4 -30.9L235.7 8.8C219.7 -2.1 200.4 -8.5 179.6 -8.5z" /> + <glyph glyph-name="accusoft" + unicode="" + horiz-adv-x="640" d=" M482.2 75.9C476.5 82.8 250 373 242.3 382.5C228.6 399.7 242.3 399.3 261.5 399.4C271.2 399.5 367.8 400 378 400C402.1 400.1 406.7 399.4 416.4 387.2C418.5 384.5 621.5 141.4 623.5999999999999 138.9C629.0999999999999 132.2 638.8 119.8 630.8 115.5C628.4 114.2 516.1999999999999 67.8 513 66.6C502.9 62.6 495.5 59.8 482.2 75.9M596.9 81.5000000000001S481.9 31.1000000000001 479.4 29.9C463.4 22.6 452.5 33.1 442.7 44.5000000000001L385.6 118.5000000000001C380.2 119.4 325.2 128.1000000000001 320.3 127.8000000000001C317.2 127.6000000000001 310.7 127.0000000000001 305.9 124.9000000000001C301 122.8000000000001 160.7 72.1000000000001 155.7 70.2000000000001C150.6 68.2000000000001 144.3 66.6000000000001 144.6 62.6000000000001C144.8 60.1000000000001 146.6 60.0000000000001 149.2 59.1000000000001C151.9 58.3000000000001 450.1 -8.4999999999999 457.2 -9.9999999999999C472.8 -13.2999999999999 495.7 -20.4999999999999 510.8 -11.6999999999999C512.9 -10.4999999999999 634.6 64.7000000000002 636.6 66.1000000000001C642 70.1000000000001 640.9 72.9000000000002 634.9 74.3000000000001C632.6 74.6000000000001 610.3 79.0000000000001 596.9 81.5000000000001M270.9 262.8000000000002S258.9 261.2000000000002 245.9 247.7000000000002C236.9 238.4000000000001 3.8 8.6000000000001 2.5 6.8000000000001C-4.5 -3.1999999999999 4.1 1e-13 18.2 5.1000000000001C19 5.1000000000001 132.7 41.7000000000002 132.7 41.7000000000002C133.2 42.3000000000002 132.6 41.8000000000002 133.3 42.3000000000002C132.9 47.4000000000002 132.5 68.5000000000002 132.3 70.0000000000002C131.7 75.2000000000002 134.5 76.9000000000002 139.3 78.9000000000002L231.9 112.7000000000002C232.5 113.5000000000002 320.4 194.4000000000002 322.1 196.0000000000002V197.0000000000002L270.9 262.8000000000002" /> + <glyph glyph-name="adn" + unicode="" + horiz-adv-x="496" d=" M248 280.5L312.9 181.7H183.1L248 280.5zM496 192C496 55.1 384.9 -56 248 -56S0 55.1 0 192S111.1 440 248 440S496 328.9 496 192zM396.2 109.3L248 332.5L99.8 109.3H130.2L163.8 161H332.4L366 109.3H396.2z" /> + <glyph glyph-name="adversal" + unicode="" + horiz-adv-x="512" d=" M482.1 416H28.7C5.8 416 0 410.1 0 387.1V-3.1C0 -26.4 5.8 -32 28.7 -32H482.1C506.4999999999999 -32 511.9999999999999 -26.8 511.9999999999999 -2.3V385.8C511.9999999999999 410.4 506.6 416 482.1 416zM178.4 227.7C150.9 247.9 106.3 236.4 94.2 204.3C89.9 193.2 84.9 194.8 76.7 196C67 197.5 59.5 199.2 54.2 201.5C25.4 212.9 62.8 256.8 79.1 265.8C120.2 287.2 162.5 288 204.4 270.6C245.3 253.8 238.9 211.4 238.9 142.1C241.6 116.3 234.6 83.8 248.2 53.3C250.1 48.9 248.6 45.4 245.5 42.6C237.1 35.9 206.2 40.4 198.9 49.9999999999999C197 52.1999999999999 197.1 53.6 195 56.1999999999999C191.4 60.0999999999999 187.7 58.3999999999999 183.1 55.1999999999999C125.7 18.8 42.8 33.8 36.1 98.4999999999999C33 127.8 48.5 155.6 75.7 169.5C113.9 189 187.9 181.3 189.7 200.4C190.8 210.5999999999999 187.8 220.5 178.4 227.7zM465.1 5.7C465.1 -9.4 454 -4.2 447.3 -4.2H52.4C45 -4.2 34.2 -9 34.6 6.5C35 20.4 45.1 15.6 51.7 15.6C184 16 316.2 16 448.5 15.6C455.3 15.6 465.1 20 465.1 5.7zM468.9 346.2V55.2C468.9 49.5 468.2 41.3 460.8 41.3C448.4000000000001 41.7 433.3 34.2 424.7 46.9C418.9 55.6 416.9 50.9 412.3 48.1C358.9000000000001 18.4 284.2000000000001 41 267.9 133.3C261.8 166.7 267.2 200.4 283.6 233.3C295.4 257.2000000000001 340.5 309.4 419.7 263.8V334.8C419.7 361 419.5999999999999 361 445.7 361C448.8 361 452.3 360.6 455.3999999999999 361C465.4999999999999 361.8 468.9999999999999 356.6 468.9999999999999 346.7000000000001C468.8999999999999 346.5 468.8999999999999 346.4000000000001 468.8999999999999 346.2000000000001zM417.4000000000001 113.9C397.9000000000001 66.3 344.5 70.6 327.4000000000001 108.7C312.3 142 311.9000000000001 176.9 327.8 210.2C344.1 244.3 387.5 245.9 409.3 215C429.9000000000001 186.2 424.2 130.4 417.4000000000001 113.9zM122.6 78.6C115.1 79.9 89.6 81.9 88.9 106.4C88.5 120.3 96.7 129.4 108.7 132.2C133.1 138.1 158 142.1 182.4 146.9C191.3000000000001 148.9 189.8000000000001 142.5 190.2000000000001 137.4C191.6000000000001 104.4 164.1000000000001 78.2 122.6000000000001 78.6z" /> + <glyph glyph-name="affiliatetheme" + unicode="" + horiz-adv-x="512" d=" M159.7 210.6C108.4 139.7 43.1 99.8 14 121.4C-15.2 143.1 2.8 218 54.2 288.9C105.5 359.8 170.8 399.7 199.9 378.1C229 356.5 211 281.5 159.7 210.6zM510.9 267.9C437.1 144.5 319 80.2 246.4 124.3C221.4 139.5 205.1 165.5 197.4 198.1C163.8 133.3 104.6 84.3 33.3 64.9C83.1 5.6 157.4 -32 240.3 -32C390.3 -32 511.9 91.1 511.9 242.9C512 251.4 511.6 259.7 510.9 267.9z" /> + <glyph glyph-name="algolia" + unicode="" + horiz-adv-x="448" d=" M229.3 265.4C180 265.4 140.1 225.5 140.1 176.2C140.1 126.9 180 87 229.3 87S318.5 126.9 318.5 176.2C318.5 225.5 278.5 265.4 229.3 265.4zM292 208.8L233.1 178.2C231.3 177.3 229.3 178.6 229.3 180.5V247C229.3 248.5 230.6 249.7 232 249.6C258.2 248.6 280.9 233.9 293.1 212.5C293.8 211.2 293.3 209.5 292 208.8zM389.1 416H58.9C26.4 416 0 389.6 0 357.1V27C0 -5.6 26.4 -32 58.9 -32H389C421.6 -32 447.9 -5.6 447.9 26.9V357.1C448 389.6 421.6 416 389.1 416zM186.5 331.3C186.5 342.1 195.2 350.8 206 350.8H251.3C262.1 350.8 270.8 342.1 270.8 331.3V315.9C270.8 314.1 269.1 312.9 267.5 313.4C255.2 316.8 242.4 318.5 229.4 318.5C215.9 318.5 202.7 316.7 190 313C188.3 312.5 186.6 313.8 186.6 315.5V331.3zM102.1 294.3L111.3 303.5C118.9 311.1 131.2 311.1 138.8 303.5L146.5 295.8C147.6 294.7000000000001 147.5 292.8 146.2 291.8C140 287.3 134.1 282.4 128.6 276.9C123.2 271.5 118.2 265.6 113.8 259.5C112.8 258.2 110.9 258 109.8 259.2L102.1 266.9C94.5 274.4 94.5 286.7 102.1 294.3zM229.3 49.5C159.3 49.5 102.7 106.2 102.7 176.1S159.4 302.7000000000001 229.3 302.7000000000001C299.3 302.7000000000001 355.9 246.1 355.9 176.1C355.9 106.3 299.2 49.5 229.3 49.5z" /> + <glyph glyph-name="alipay" + unicode="" + horiz-adv-x="448" d=" M377.74 416H70.26C31.41 416 0 384.5900000000001 0 345.74V38.26C0 -0.59 31.41 -32 70.26 -32H377.74C416.26 -32 447.5 -0.92 448 37.6C402.04 63.22 337.41 97.9400000000001 276.4 126.04C244.33 82.0700000000001 192.26 45.04 127.78 45.04C57.19 45.04 34.05 90.34 30.74 121.41C26.77 160.42 45.62 202.91 130.26 202.91C165.64 202.91 209.61 192.66 257.39 177.9500000000001C273.92 208.0400000000001 283.84 238.2900000000001 283.84 238.2900000000001H105.64V254.9900000000001H197.72V286.23H88.28V305.24H197.72V355.66H248.64V305.24H358.08V286.23H248.63V254.99H337.4S322.19 208.37 299.05 164.07C347.98 147.37 399.06 128.03 447.67 111.33V345.74C447.83 384.43 416.43 416 377.74 416zM47.28 125.05C48.27 104.88 57.53 71.32 117.21 71.32C169.28 71.32 209.79 111 235.08 144.22C190.45 162.9 150.6 175.6300000000001 125.64 175.6300000000001C58.19 175.6300000000001 46.29 142.5700000000001 47.28 125.0500000000001z" /> + <glyph glyph-name="amazon-pay" + unicode="" + horiz-adv-x="611.2" d=" M0 122.8C2.3 127 5.2 127.7 9.7 125.3C20.1 119.7 30.3 113.9 40.9 108.6C81.6 88.2000000000001 124.1 73 168.3 62.3C189.2 57.3 210.2 53.3 231.5 50.5C263 46.3 294.7 44.5 326.5 45.3C343.9 45.7 361.3 47.1 378.6 49.1C435 55.8 489.5 69.9 541.9000000000001 91.9C544.8000000000001 93.1 547.8000000000001 93.9 551.0000000000001 93.1C557.7000000000002 91.3 560.0000000000001 84.1 555.1000000000001 79.2000000000001C552.3000000000002 76.4 548.8000000000002 74.1 545.5000000000001 71.8000000000001C514.8000000000001 50.7 481.3000000000001 35.4000000000001 445.9000000000001 23.9000000000001C421.3000000000001 16.0000000000001 396.3000000000001 10.1000000000001 370.8000000000001 6.3000000000001C353.2000000000001 3.7 335.4000000000001 1.9000000000001 317.6000000000001 1.5000000000001C316.8000000000001 1.5000000000001 315.9000000000001 1.3000000000001 315.1000000000001 1.2H294C293.2 1.3000000000001 292.3 1.5000000000001 291.5 1.5000000000001C287.9 1.7 284.3 1.8000000000001 280.8 1.9C263.9000000000001 2.6 247.1 4.5000000000001 230.4 7.2C203 11.7 176.2 18.6 150 28.1C95.9 47.7 47.4 76.7000000000001 4.4 115.1C2.6 116.7000000000001 1.4 118.9 0 120.8V122.8zM158 383C156.6 382.8 155.1 382.6 153.7 382.4C139.7 380.7 127.1 375.5 115.7 367.3C113.3 365.6 111.1 363.8 108.6 361.9C108.4 362.4 108.2 362.9 108.2 363.3C107.8 366 107.4 368.8 106.9 371.5C106.2 376.1 103.9 378.1 99.3 378.1H87.8C80.9 378.1 79.6 376.8 79.6 369.9V160.6C79.6 159.6 79.6 158.6 79.7 157.6C79.9 154.6 81.7 152.7000000000001 84.6 152.6C91.6 152.5 98.7 152.5 105.7 152.6C108.6 152.6 110.4 154.6 110.7 157.6C110.8 158.6 110.8 159.6 110.8 160.6V233C111.9 232.1 112.5 231.6 113 231.1C130.9 216.2 151.5 211.3 174 215.7C194.4 219.7 208.6 232.2 217.8 250.6C224.8 264.5 227.7 279.3 228.1 294.7C228.6 311.8 226.9000000000001 328.6 220 344.5C211.5 364.1 197.4 377 176.1 381.4C172.9 382.1 169.6 382.4 166.3 382.9C163.5 383 160.8 383 158 383zM110.6 341.1C110.6 342.6 111 343.5 112.3 344.4C126 353.9 141.1 358.9 157.9 357.6C172.8 356.5 185 349.2 191.4 331.7C195.3 321 196.3 309.9 196.3 298.7C196.3 288.3 195.5 278.1 192.3 268.1C185.5 246.8 169.9 238.7 149.7 239.6C135.7 240.2 123.5 245.6 112.3 253.5C111.1 254.4 110.6 255.2 110.6 256.8C110.7 270.9 110.6 284.9 110.6 299C110.6 313 110.7 327 110.6 341.1zM316.3 383C315.3 382.9 314.3 382.7 313.4000000000001 382.6C303.6 382.1 294.0000000000001 380.9 284.5000000000001 378.5C278.4000000000001 376.9 272.5000000000001 374.7 266.6000000000001 372.7C263.0000000000001 371.5 261.2000000000001 368.9 261.3000000000001 365C261.4000000000001 361.7 261.2000000000001 358.4 261.3000000000001 355.1C261.4000000000001 350.3 263.4000000000001 349 268.1000000000001 350.2C275.9000000000001 352.2 283.7000000000001 354.4 291.6000000000001 355.9C303.9000000000001 358.2 316.3000000000001 359.2 328.8000000000001 357.3C335.3000000000001 356.3 341.4000000000001 354.4 345.6000000000001 348.9C349.3000000000001 344.1 350.7000000000001 338.4 350.9000000000001 332.5C351.2000000000001 324.2 351.1000000000001 315.9 351.2000000000001 307.6C351.2000000000001 307.2 351.1000000000001 306.7 351.0000000000001 306.2C350.5000000000001 306.3 350.1000000000002 306.2 349.7000000000001 306.3C339.2000000000001 308.8 328.6000000000001 310.6 317.7000000000001 311.2C306.4000000000001 311.8 295.2000000000001 311.1 284.4000000000001 307.3C271.5000000000001 302.8 261.1000000000001 295 255.0000000000001 282.4C250.3000000000001 272.6 249.6000000000001 262.2 251.1000000000001 251.7C253.1000000000001 237.7 260.1000000000001 226.9 272.5000000000001 220C284.4000000000001 213.4 297.3000000000001 212.6 310.4000000000001 214.6C325.5000000000001 216.9 338.9000000000001 223.3 350.7000000000001 233C351.1 233.4 351.6 233.7 352.3000000000001 234.1C352.9000000000001 230.3 353.4000000000001 226.7 354.1000000000001 223.1C354.7000000000001 220 356.6000000000001 218 359.5000000000001 217.9C364.9000000000001 217.8 370.4000000000001 217.8 375.8000000000001 217.9C378.5000000000001 218 380.3000000000001 219.8 380.6000000000001 222.6C380.7000000000001 223.5 380.7000000000001 224.5 380.7000000000001 225.4V331.4C380.7000000000001 335.7 380.5000000000001 340 379.8000000000002 344.3C377.9000000000002 357.2000000000001 372.4000000000002 367.8 360.8000000000002 374.7000000000001C354.1000000000002 378.7000000000001 346.7000000000001 380.7000000000001 339.0000000000001 381.8C335.4000000000001 382.3 331.8000000000002 382.6 328.2000000000001 383.1C324.3000000000002 383 320.3000000000002 383 316.3000000000002 383zM351.3 255.3C351.3 254 350.9000000000001 253.1 349.8 252.3C338.6 244.2 326.3 238.8 312.4000000000001 237.4C306.7000000000001 236.8 301.0000000000001 237 295.6 239.2C289.3 241.7 285.2000000000001 246.1 283.2000000000001 252.5000000000001S281.2000000000001 265.5 283.1 271.9000000000001C285.6 280.2000000000001 291.5 284.9000000000001 299.5 287.5C307.6 290.1 316 290.5 324.3 289.7000000000001C332.7 289 340.9000000000001 287.4 349.3 286.3C350.9000000000001 286.1 351.4000000000001 285.3 351.4000000000001 283.7000000000001C351.3 278.9 351.4000000000001 274.2000000000001 351.4000000000001 269.4C351.3 264.7000000000001 351.2000000000001 260 351.3 255.3zM611.2 125.9C610.2 130.9 606.4000000000001 132.8 602.1 134.2C595.3000000000001 136.5 588.2 137.5 581.1 138.1C568 139.2 554.9 138.6 541.9 136.2C527.6 133.5 514 128.9 501.9 120.6C500.5 119.6 499.1 118.5 498.2 117.1C497.5 116 497.3 114.3 497.7 113.1C498.1 111.6 499.8 111.2 501.3 111.3C502 111.3 502.8 111.3 503.5 111.4C511.3 112.2 519 113.1 526.8 113.9C538.1999999999999 115 549.6999999999999 115.7 561.0999999999999 114.8C565.8999999999999 114.5 570.8 113.4 575.4999999999999 112.1C580.5999999999999 110.7 582.8999999999999 106.9 583.0999999999999 101.7C583.4999999999999 93.7 581.6999999999999 86 579.5999999999999 78.4C575.4999999999999 63 569.5999999999999 48.1 563.8 33.3C563.4 32.3 563 31.3 562.8 30.3C562.3 27.4 564 25.4999999999999 566.9 26.1999999999999C568.6 26.5999999999999 570.5 27.4999999999999 571.6999999999999 28.6999999999999C576.0999999999999 32.9999999999999 580.5999999999999 37.3 584.4 42.0999999999999C597.1999999999999 58.4999999999999 604.6999999999999 77.3999999999999 609.1 97.6999999999999C609.9 101.3 610.5 104.9999999999999 611.2 108.5999999999999V125.8999999999999zM479.1 249.1C466.2 284.8 453.3 320.6 440.4000000000001 356.3C438.4000000000001 362 436.2000000000001 367.6 434.1 373.2C433 376.1 430.9000000000001 378 427.7000000000001 378C420.1 378.1 412.5000000000001 378.2 404.8000000000001 378.1C402.3000000000001 378.1 401.1000000000001 376.1 401.6000000000001 373.6C402.1000000000001 371.5 402.7000000000001 369.5 403.5000000000001 367.5C423.1000000000001 319 442.8000000000001 270.4 462.6000000000001 222C464.3000000000001 217.9 464.7000000000001 214.4 462.8000000000001 210.2C459.5000000000001 202.9 456.9000000000001 195.2 453.5000000000001 187.9C450.5000000000001 181.4 445.5000000000001 176.5 438.3000000000001 174.6C433.2000000000001 173.2 428.1000000000001 173 422.9000000000001 173.5C420.4000000000001 173.6999999999999 417.9000000000001 174.3 415.4000000000001 174.5C412.0000000000001 174.6999999999999 410.3000000000001 173.1999999999999 410.2000000000001 169.6999999999999C410.1000000000001 166.3999999999999 410.1000000000001 163.0999999999999 410.2000000000001 159.8C410.3000000000002 154.3 412.2000000000001 151.8 417.6000000000001 150.9C423.2000000000001 149.9 428.9000000000001 149 434.5000000000001 148.9C451.6000000000001 148.5 465.2 155.4 474.0000000000001 170.3C477.5000000000001 176.1999999999999 480.7 182.4 483.2 188.6999999999999C506.9 248.5 530.3000000000001 308.3999999999999 553.8000000000001 368.3C554.5000000000001 370.0999999999999 555.1 371.8999999999999 555.4000000000001 373.8C555.8000000000001 376.5999999999999 554.5000000000001 378.2 551.7 378.2C545.1 378.3 538.4000000000001 378.2 531.8000000000001 378.2C528.1 378.2 525.5000000000001 376.5999999999999 524.1 373C523.6 371.5999999999999 523 370.3 522.5 368.8999999999999C510.9 335.5999999999999 499.3 302.3 487.7 268.8999999999999C485.2 261.7 482.6 254.3999999999999 480 246.7C479.6 247.8 479.4 248.3999999999999 479.1 249.1z" /> + <glyph glyph-name="amazon" + unicode="" + horiz-adv-x="448" d=" M257.2 285.3C208.5 283.5 87.7 269.8 87.7 167.8C87.7 58.3 226 53.8 271.2 124.6C277.7 114.4 306.6 87.1 316.5 77.8L373.3 133.8S341 159.1 341 186.6V333.7C341 359 316.5 416 228.7 416C140.7 416 94 361 94 311.7L167.5 304.9C183.8 354.4 221.7 354.4 221.7 354.4C262.4 354.5 257.2 324.6 257.2 285.3zM257.2 198.5C257.2 118.5 173 130.5 173 181.3C173 228.5 223.5 238 257.2 239.1V198.5zM393.2 35C385.5 25 323.2 -32 218.7 -32S34.2 39.5 9.7 69C2.9 76.7 10.7 80.3 15.2 77.3C88.5 32.8 203 -40.5 387.7 47C395.2 50.7 401 45 393.2 35zM433 32.8C426.5 17 417 6 411.8 1.8C406.3 -2.7 402.3 -0.9 405.3 5.6S424.6 52.1 418 60.6C411.5 68.9 381 64.9 370 63.8C359.2 62.8 357 61.8 356 64.1C353.7 69.8 377.7 79.6 393.5 81.6C409.2 83.4 434.5 82.4 439.5 75.9C443.2 70.8 439.5 48.8 433 32.8z" /> + <glyph glyph-name="amilia" + unicode="" + horiz-adv-x="448" d=" M240.1 416C178.2 416 108.6 399.1 55.9 360.6C50.8 357.5 46.8 351.4 48.7 341.2C49.8 336.1 53.8 313.8 58.9 301.6C63 291.4 73.1 291.4 79.2 295.5C111.7 317.8 175.7 343.2 231.5 343.2C289.4 343.2 290.4 314.8 290.4 270.1V231.6C203 220.3 78.2 197 46.7 183.8C11.2 167.5 16.3 90.3 16.3 72S31.5 -32 141.2 -32C189 -32 254.9000000000001 -11.3 294.5 10.1V-15.3C294.5 -18.3 296.6 -23.4999999999999 300.6 -24.4C303.7000000000001 -25.4 351.3 -26.4 360.5 -26.4S423 -26.7 427 -25.7C431.1 -24.7 432.1 -19.6 432.1 -16.6V280C432 360.3 374.2000000000001 416 240.1 416zM152.2 88.3C152.2 100.5 149.2 131 170.5 141.2C194.8 154.4 245.6 170.6 290.3 174.7V68C268.9000000000001 54.8 241.6 43.6 211.2 43.6C158.4 43.6 152.3 77.1 152.2 88.3" /> + <glyph glyph-name="android" + unicode="" + horiz-adv-x="448" d=" M89.6 243.5V127.7C89.6 112.3 77.5 100 62.1 100C46.8 100 32 112.4 32 127.7V243.5C32 258.6 46.8 271 62.1 271C77.2 271 89.6 258.6 89.6 243.5zM100.4 86.5C100.4 70.1 113.6 56.9 130 56.9H149.9L150.2 -4.2C150.2 -41.1 205.4 -40.8000000000001 205.4 -4.2V56.9H242.6V-4.2C242.6 -40.9 298.1 -41.0000000000001 298.1 -4.2V56.9H318.3C334.5 56.9 347.7 70.1 347.7 86.5V265.9H100.4V86.5zM348.4 275.6H99.3C99.3 318.4 124.9 355.6 162.9 375L143.8 410.3C141 415.2 148.1 418.3 150.5 414.1L169.9 378.5C204.8 394 244.9 393.2 278.2 378.5L297.5 414C300 418.3 307 415.1 304.2 410.2L285.1 375C322.8 355.6 348.4000000000001 318.4 348.4000000000001 275.6zM177.7 331.1C177.7 336.8 173.1 341.6 167.2 341.6C161.5 341.6 157 336.8 157 331.1S161.6 320.6 167.2 320.6C173.1 320.6 177.7 325.4 177.7 331.1zM291.1 331.1C291.1 336.8 286.5 341.6 280.9000000000001 341.6C275.0000000000001 341.6 270.4000000000001 336.8 270.4000000000001 331.1S275.0000000000001 320.6 280.9000000000001 320.6C286.5000000000001 320.6 291.1 325.4 291.1 331.1zM385.9000000000001 271C370.8 271 358.4000000000001 258.9 358.4000000000001 243.5V127.7C358.4000000000001 112.3 370.8 100 385.9000000000001 100C401.3 100 416.0000000000001 112.4 416.0000000000001 127.7V243.5C416.0000000000001 258.9 401.2000000000001 271 385.9000000000001 271z" /> + <glyph glyph-name="angellist" + unicode="" + horiz-adv-x="448" d=" M347.1 232.6C358.8 265.2 392.5 359.5 392.5 389.7C392.5 416.3 376.8 438.6 348.8 438.6C304.2 438.6 264.2000000000001 306.9 251.7 275.5C242 304 196.6 448 156.6 448C125.5 448 110.9 425.1 110.9 396.3C110.9 361 145.1 269.5 157.5 234.3C151.2 236.6 144.4 238.6 137.5 238.6C114.1 238.6 89.2 209.5 89.2 186C89.2 177.1 94.1 164.6 97.2 156.3C60.3 146.3 46.1 121.7 46.1 84.6C46 12.4 114.4 -64 210.6 -64C328.6 -64 402 24.6 402 138.9C402 182 395.1 220.9 347.1 232.6zM311.7 340C315.7 352.3 332.8 404.3 348.8 404.3C357.4000000000001 404.3 359.7 395.4 359.7 388.3C359.7 369.2 321.1 263.7 312.6 240.3L278.6 246.3L311.7 340zM142.3 399.7C142.3 411.6 156.8 445.4 188.6 352.6L223.2 252.3C207.6 253.6 195.5 255.3 187.8 250.9C176.9 279.7000000000001 142.3 370.6 142.3 399.7000000000001zM140 204C169.3 204 207.1 109.4 207.1 96.6C207.1 91.5 202.2 85.2000000000001 196.5 85.2000000000001C175.6 85.2000000000001 119.6 162.1 119.6 182.9C119.7 190.6 132.3 204 140 204zM324.3 17.7C295.2 -14.3 258 -30.9 214.6 -30.9C155.2 -30.9 108.3 1.7 85.7 57.4C68.6 100.8 89.5 125.7 106.3 125.7C117.7 125.7 160.6 65.4 160.6 52.6C160.6 47.7 152.9 44.3 148.9 44.3C132.8000000000001 44.3 126.5 59.8 97.8 95.7C68.1 66 118.3000000000001 8.8 156.1 8.8C182.2 8.8 199.2 32.9999999999999 194.1 50.8C197.8 50.8 202.4 50.4999999999999 205.8 51.4C206.9 24.3 214.9 -8 247.5 -10.3C247.5 -9.4 249.5 -3.2 249.5 -2.9C249.5 14.4999999999999 238.9 29.7 238.9 47.4C238.9 75.7 260.6 103.1 282.6 119.1C290.6 125.1 300.3 128.8 309.7000000000001 132.2C319.4000000000001 135.9 329.7000000000001 140.2 337.1 147.6C336 158.8 331.4000000000001 168.7 320.2000000000001 168.7C292.5000000000001 168.7 199.6000000000001 164.7 199.6000000000001 208.4C199.6000000000001 215.1 199.7000000000001 221.5 217.0000000000001 221.5C249.3000000000001 221.5 331.3000000000001 213.5 355.3000000000001 192.4C373.4000000000001 176.3 379.6000000000001 79.2 324.3000000000001 17.7zM225.7 143.7C235.4 140.6 245.4 139.7 255.4 137.7C248 132.3 241.4 125.7 235.1 118.6C232.3 127.1 228.9 135.4 225.7 143.7z" /> + <glyph glyph-name="angrycreative" + unicode="" + horiz-adv-x="640" d=" M640 209.8L636.8 181.6L602.3 179.3L600.3 161.2L634.8 163.5L631.5999999999999 135.3L597.1999999999999 133.1L594.9 113L629.3 115.2L626.3 89.1L561.5999999999999 84.9999999999999L574.3 198.1999999999999L527 82.8L495.1 80.8L471.3 198.6L501.6 200.6L515.2 121.2000000000001L546.9000000000001 203.6000000000001L640.0000000000001 209.8000000000001zM426.8 76.5L455.1 78.3L468 198.4L439.6 196.5L426.8 76.5zM162 59.9L142.6 95.9L139.1 58.5L110.9 56.8L113.6 85.9C102.6 67.9 81.6 51.6 56.7 50.1C23.9 48.1 -3 71 0.3 108.3C2.9 137.6 27 171.1 67.8 173.7000000000001C105.5 176.1 115.4 150.5000000000001 119.1 144.9L121.9 175.7000000000001L160.8 178.2000000000001C180.9 179.5000000000001 199.5 174.5000000000001 203.3 154.5000000000001L205.9 181.1000000000001L270.7 185.3000000000001L268 157.4000000000001L231.6 155.0000000000001L229.9 137.1000000000001L266.3 139.4000000000002L263.6 111.5000000000002L227.2 109.2000000000002L225.3 89.3000000000002L261.6 91.6000000000002L259.5 70.8000000000002L314.5 188.0000000000002L338.3 189.6000000000002L370.4 79L379.3 164.6L357 163.2000000000001L359.8999999999999 191.1L434.8999999999999 196L431.8999999999999 168L407.5999999999999 166.4L397.8999999999999 74.5L339.8999999999999 70.8L335.5999999999999 86.4L296.2 83.9L288.2 67.6L162 59.9zM117.7 130.1L91.3 128.4C84.6 140.8 76.9 145 65 144.2C46 143 31.7 126.7 30.4 110.9C29 94.9 37.7 78.4 59.1 79.7C71.9 80.5 80.4 88.3 88 98.6L115 100.3L117.7 130.1zM173.8 137.8C175 150.6999999999999 166.2 151.4 147.7 150.1999999999999L145 121.6999999999999C159.2 122.5999999999999 172.5 123.8 173.8000000000001 137.8zM194.9 66.9999999999999L200.7 127C195.7 113.5 186 105.8999999999999 172.8 100.3999999999999L194.9 66.9999999999999zM330.3 111.9999999999999L322.4000000000001 149.8L306.6 110.4999999999999L330.3 111.9999999999999zM160.2 186.5999999999999L155.9 204.0999999999999L116.3 201.4999999999999L108.2 183.2999999999999L76.3 181.1999999999999L133.3 303.0999999999999L157.2 304.6999999999999L187.9 202.6999999999999L197.8 307.3999999999999L224.8 309.1999999999999L262.6 245.5999999999999L269.1 312.1999999999999L297.6 314.0999999999999L293.6 272.8999999999999C301 286.3999999999999 316.5 317.5999999999999 357.2000000000001 320.3999999999999C397.7000000000001 323.1999999999999 409.6 291.0999999999999 410.6 290.0999999999999L413.9000000000001 322.0999999999999L453.2 324.7999999999999C465.9 325.6999999999999 481.0000000000001 324.4999999999999 489.5000000000001 315.0999999999999L485.1000000000001 326.9999999999999L517.3000000000001 329.1999999999999L530.2 285.9999999999999L553.2 331.6999999999999L584.2 333.8999999999999L540.6 255.4999999999999L535.8000000000001 211.1999999999999L507.4000000000001 209.2999999999999L512.2 253.5999999999999L496.4 296.5999999999999C497.4 274.2999999999999 487.2 256.4999999999999 464.4 246.9999999999999L489.6 208.1999999999999L453.2 205.7999999999999L434.0000000000001 242.5999999999999L430.0000000000001 204.2999999999999L401.6000000000001 202.3999999999998L404.9000000000001 233.8999999999999C398.2000000000001 224.5999999999998 385.2000000000001 198.4999999999998 345.3000000000001 195.8999999999998C319.1000000000001 194.1999999999999 299.7000000000001 206.1999999999999 289.9000000000001 235.0999999999999L285.9000000000001 194.7999999999999L260.9000000000001 193.1999999999999L223.3000000000001 256.4999999999999L217.0000000000001 190.2999999999999L160.2000000000001 186.5999999999999zM436.8000000000001 268.7C447.0000000000001 269.3999999999999 454.3000000000001 270.7999999999999 458.4000000000001 272.9999999999999C462.9000000000001 275.3999999999999 465.4000000000001 279.3999999999999 466.0000000000001 285.0999999999999C466.6000000000001 290.3999999999999 465.4000000000001 293.8999999999999 462.6000000000001 295.4999999999999C459.0000000000001 297.5999999999999 452.0000000000001 298.3 439.7000000000002 297.4999999999999L436.8000000000002 268.7zM327.7 234C333.3 228.1 340.4 225.5 349 226.1C353.7 226.4 358.1 227.9 362.3 230.2C367.8 233.2 372.9000000000001 238.2 377.4000000000001 244.5L343.2000000000001 242.2L345.6 266.1L408.7000000000001 270.4L409.9000000000001 282.4L378.7000000000001 280.3C374.6 284 370.9000000000001 286.9 367.6 288.4C363.6 290.1 359.5 291.2000000000001 355.4000000000001 290.9C347.4000000000001 290.4 340.1 287.3 333.4000000000001 281.7000000000001C325.7000000000001 275.3 321.4000000000001 267.2000000000001 320.5000000000001 257.3C319.4000000000001 247.7 321.9000000000001 240 327.7000000000001 234zM126.4 225.8L150.2 227.4L141.9 265L126.4 225.8z" /> + <glyph glyph-name="angular" + unicode="" + horiz-adv-x="415.6" d=" M169.7 179.9H245.9L207.8 271.5L169.7 179.9zM207.8 416L0 341.6L31.8 65.9L207.8 -32L383.8 65.9L415.6 341.6L207.8 416zM338 74.2H289.4L263.2 139.6H152.6L126.4 74.2000000000001H77.7L207.8 366.5L338 74.2z" /> + <glyph glyph-name="app-store-ios" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM127 63.5C121.5 53.9 109.2 50.7 99.7 56.2C90.1 61.7 86.9 74 92.4 83.5L106.7 108.2C122.8 113.1 136 109.3 146.3 96.8L127 63.5zM265.9 117.4H84C73 117.4 64 126.4 64 137.4S73 157.4 84 157.4H135L200.4 270.6L179.9 306C174.4 315.6 177.7 327.8 187.2 333.3C196.8 338.8 209 335.5 214.5 326L223.4 310.6L232.3000000000001 326C237.8000000000001 335.6 250.1000000000001 338.8 259.6 333.3C269.2000000000001 327.8 272.4000000000001 315.5 266.9000000000001 306L181.1 157.4H243.2C263.4000000000001 157.4 274.7000000000001 133.7 265.9000000000001 117.4zM364 117.4H335L354.6 83.5C360.1 73.9 356.8 61.7 347.3 56.2C337.7 50.7 325.5 54 320 63.5C287.1 120.4 262.5 163.2 246 191.6C229.3 220.6 241.2 249.6 253.1 259.4000000000001C266.2 236.7000000000001 285.8 202.7000000000001 312 157.4H364C375 157.4 384 148.4 384 137.4C384 126.3 375 117.4 364 117.4z" /> + <glyph glyph-name="app-store" + unicode="" + horiz-adv-x="512" d=" M255.9 327.1L265 342.8C270.6 352.6 283.1 355.9 292.9 350.3C302.7 344.7 306 332.2 300.4 322.4L212.9 170.9H276.2C296.7 170.9 308.2 146.8 299.3 130.1H113.8C102.5 130.1 93.4 139.2 93.4 150.5C93.4 161.8 102.5 170.8999999999999 113.8 170.8999999999999H165.8L232.4 286.3L211.6 322.3999999999999C206 332.2 209.3 344.5999999999999 219.1 350.3C228.9 355.8999999999999 241.3 352.5999999999999 247 342.8L255.9 327.0999999999999zM177.2 109.1L157.6 75.1C152 65.3 139.5 62 129.7 67.6C119.9 73.2000000000001 116.6 85.7000000000001 122.2 95.5L136.8 120.7C153.2 125.8 166.6 121.9 177.2 109.1zM346.1 170.8H399.2000000000001C410.5000000000001 170.8 419.6 161.7 419.6 150.4C419.6 139.1 410.5 130.0000000000001 399.2000000000001 130.0000000000001H369.7000000000001L389.6 95.5000000000001C395.2000000000001 85.7000000000001 391.9000000000001 73.3000000000001 382.1 67.6000000000001C372.3 62.0000000000001 359.9000000000001 65.3000000000001 354.2000000000001 75.1000000000001C320.7000000000001 133.2000000000001 295.5000000000001 176.7000000000001 278.8000000000001 205.7000000000001C261.7000000000001 235.2000000000001 273.9000000000001 264.8000000000001 286.0000000000001 274.8000000000001C299.4000000000001 251.8000000000001 319.4000000000001 217.1000000000001 346.1000000000001 170.8000000000001zM256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM472 192C472 73.3 375.9 -24 256 -24C137.3 -24 40 72.1 40 192C40 310.7 136.1 408 256 408C374.7 408 472 311.9 472 192z" /> + <glyph glyph-name="apper" + unicode="" + horiz-adv-x="640" d=" M42.1 208.9C64.3 208.9 71.1 206.1 75.6 194.3H76.4V217.2C76.4 228.5000000000001 71.6 232.6 58.5 232.6C47.2 232.6 44.1 230.1 43.4 219.8H4.8C5.1 233.7 6.3 238.9 10.6 244.2C17.9 253 29.5 256 56.7 256C89.7 256 103.8 251 110.6 237.1C112.6 232.8 114.6 221.5 114.6 213.4V137.1H76.3L77.6 156.2000000000001H76.6C71.3 140.6 63 135.8000000000001 41.1 135.8000000000001C10.8 135.8000000000001 0 145.9000000000001 0 173.1000000000001C0 198.3000000000001 12.3 208.9000000000001 42.1 208.9000000000001zM59.2 160.8C72.3 160.8 76.1 163.8 76.1 174.2C76.1 183.3 71.8 185.8 56.5 185.8C43.4 185.8 38.6 182.8 38.6 173.7C38.5 163.3 42.3 160.8 59.2 160.8zM137 255.7H175.3L173.8 235.1H174.6C183.7 252.2 190.5 256 212.1 256C226.5000000000001 256 236.8 253.0000000000001 243.6 246.9000000000001C253.4000000000001 238.3000000000001 256.4000000000001 226.5000000000001 256.4000000000001 198.8000000000001C256.4000000000001 168.8000000000001 253.4000000000001 155.7000000000001 244.3000000000001 145.9C237.5000000000001 138.6 227.9000000000001 135.8 211.1 135.8C190.7 135.8 181.9 141.3 177.3 157H176.5V86.7H137V255.7zM217.9 195C217.9 222.5 214.6 227.5 197.2 227.5C180.3 227.5 176.5 222.5 176.5 198.8C176.5 170.8 180 165.3 197.7 165.3C214.1 165.3 217.9 170.9 217.9 195zM275.8 255.7H314.1L312.6 235.1H313.4000000000001C322.5000000000001 252.2 329.3 256 350.9000000000001 256C365.3 256 375.6 253 382.4000000000001 246.9C392.2000000000001 238.3 395.2000000000001 226.5 395.2000000000001 198.8C395.2000000000001 168.8 392.2000000000001 155.7 383.1 145.9C376.3 138.6 366.7000000000001 135.8 349.8 135.8C329.4000000000001 135.8 320.6 141.3 316 157H315.2V86.7H275.7V255.7zM356.7000000000001 195C356.7000000000001 222.5 353.4000000000001 227.5 336.0000000000001 227.5C319.1000000000001 227.5 315.3000000000001 222.5 315.3000000000001 198.8C315.3000000000001 170.8 318.8000000000001 165.3 336.5000000000001 165.3C352.9000000000001 165.3 356.7000000000001 170.9 356.7000000000001 195zM410.5000000000001 198.8C410.5000000000001 224.2 413.8000000000001 236.6 422.8000000000001 244.6C431.6000000000001 252.7 445.0000000000001 255.9000000000001 467.9000000000001 255.9000000000001C510.7000000000001 255.9000000000001 523.6000000000001 243.1 523.6000000000001 200.2000000000001V189.1H448.3000000000002C448.0000000000001 187.1 448.0000000000001 185.1 448.0000000000001 184.3C448.0000000000001 167.4 452.5000000000001 162.4 468.1000000000001 162.4C482.0000000000001 162.4 486.0000000000001 165.4 486.0000000000001 176.3H523.5000000000001V174C523.5000000000001 164.2 521.0000000000001 155.1 516.7000000000002 149.3C509.4000000000001 139.5 497.1000000000001 135.7 472.4000000000001 135.7C444.9000000000002 135.7 430.8000000000002 139 421.8000000000002 148C413.3000000000002 156.5 410.5000000000001 169.3 410.5000000000001 198.8zM486.9000000000001 210.4C486.6000000000001 212.2 486.6000000000001 213.7 486.6000000000001 214.2C486.6000000000001 226.5000000000001 483.3000000000001 228.8 467.0000000000001 228.8C452.6000000000001 228.8 449.9000000000001 225.8 448.9000000000001 213.7L448.6 210.4H486.9zM542.5000000000001 255.7H580.8000000000001L579.0000000000001 235.8H579.7000000000002C586.5000000000001 250.7 594.1000000000001 256 609.4000000000002 256C620.2000000000002 256 628.5000000000002 252.7 632.8000000000002 246.7C638.1000000000001 239.4 639.6000000000001 232.3 639.6000000000001 212.7C639.6000000000001 211.2 639.6000000000001 207.7 639.8000000000002 203.4H604.8000000000002C605.1000000000001 205.2 605.1000000000001 206.7 605.1000000000001 207.4C605.1000000000001 222.8 603.1000000000001 226.8 594.8000000000002 226.8C588.5000000000002 226.8 584.0000000000002 223.5 581.7000000000002 217.5C580.7000000000002 214.5 580.7000000000002 213.1999999999999 580.7000000000002 205.1999999999999V137.1999999999999H542.4000000000002V255.7z" /> + <glyph glyph-name="apple-pay" + unicode="" + horiz-adv-x="640" d=" M116.9 289.5C109.4 280.6 97.4 273.6 85.4 274.6C83.9 286.6 89.8 299.4 96.7 307.2C104.2 316.3 117.3 322.8 128 323.3C129.2 310.9 124.3 298.6 116.9 289.5M127.8 272.3C110.4 273.3 95.5 262.4 87.3 262.4C78.9 262.4 66.3 271.8 52.5 271.5C34.6 271.2 18 261.1 8.9 245C-9.9 212.7 4 165 22.2 138.7C31.1 125.7 41.7 111.4 55.7 111.9C69 112.4 74.2 120.5 90.2 120.5C106.3 120.5 111 111.9 125 112.1C139.5 112.4 148.6 125.1 157.5 138.1C167.6 152.9 171.8 167.2000000000001 172 168C171.7 168.3 144 178.9 143.7 210.9C143.4 237.7 165.6 250.4 166.6 251.2C154.1 269.8 134.6 271.8 127.8 272.3M228.2 308.5V113.6H258.5V180.2000000000001H300.4C338.7 180.2000000000001 365.5 206.5000000000001 365.5 244.5000000000001S339.1 308.5000000000001 301.4 308.5000000000001H228.2zM258.5 283H293.4C319.7 283 334.7 269 334.7 244.4S319.7 205.6 293.3 205.6H258.5V283zM420.7 112.1C439.7 112.1 457.3 121.7000000000001 465.3 137H465.9V113.6H493.9V210.6C493.9 238.7 471.4 256.9000000000001 436.8 256.9000000000001C404.7 256.9000000000001 380.9000000000001 238.5000000000001 380 213.3000000000001H407.3C409.6 225.3000000000001 420.7 233.2000000000001 435.9000000000001 233.2000000000001C454.4 233.2000000000001 464.8 224.6000000000001 464.8 208.7000000000001V197.9L427 195.6C391.9 193.5 372.9 179.1 372.9 154.1C373 128.9 392.6 112.1 420.7 112.1zM428.9 135.2000000000001C412.8 135.2000000000001 402.5 143.0000000000001 402.5 154.8000000000001C402.5 167.1000000000001 412.4 174.2000000000001 431.3 175.3000000000001L464.9 177.4000000000001V166.4000000000001C464.9 148.2000000000001 449.4000000000001 135.2000000000001 428.9000000000001 135.2000000000001zM531.4 60.6C560.9 60.6 574.8 71.9 586.9 106L640 255H609.2L573.6 139.9H573L537.4 255H505.8L557 113.1L554.2 104.5C549.6 89.9 542.1 84.2 528.7 84.2C526.3000000000001 84.2 521.7 84.5 519.8000000000001 84.7V61.3C521.6 60.9 529.1 60.6 531.4000000000001 60.6z" /> + <glyph glyph-name="apple" + unicode="" + horiz-adv-x="376.5" d=" M314.7 179.3C314.5 216 331.1 243.7 364.7 264.1C345.9 291 317.5 305.8 280 308.7000000000001C244.5 311.5 205.7 288 191.5 288C176.5 288 142.1 307.7000000000001 115.1 307.7000000000001C59.3 306.8 0 263.2 0 174.5C0 148.3 4.8 121.2 14.4 93.3C27.2 56.6 73.4 -33.4 121.6 -31.9C146.8 -31.3 164.6 -14 197.4 -14C229.2 -14 245.7 -31.9 273.8 -31.9C322.4000000000001 -31.2 364.2000000000001 50.6 376.4 87.4C311.2 118.1 314.7 177.4 314.7 179.3000000000001zM258.1 343.5C285.4 375.9 282.9 405.4 282.1 416C258 414.6 230.1 399.6 214.2 381.1C196.7 361.3 186.4 336.8 188.6 309.2C214.7 307.2 238.5 320.6 258.1 343.5z" /> + <glyph glyph-name="asymmetrik" + unicode="" + horiz-adv-x="576" d=" M517.5 138.8C556.3 178.8 575.6 218.8 576 254.9C576.8 320.4 516.6 373.1 406.6 389.9C277.9 409.6 118.1 374.4 0 307.5C52 334 110.6 355.7 170.7 365.7C245.2 386.2 323.7 391.1 392 380.5C544.5 356.7 588.8 253 490.8 148.8C480.6 138 468.8 127.7 455.8 118.2L304.9 344.6L114.7 59.1C49.1 88.5 38.2 149.3 95.6 210.3C116.4 232.5 143.9 252.2 175.1 268.4C195.1 280.6 214.8 291 237.1 299.1C172 278.8 114.4 246.2 75.5 206.2C47.8 177.6 34.1 149.1 33.8 123.3C33.3 88.1999999999999 57.2 58.1999999999999 102.2 40.3L67.7 -11.4H169.3L191.3 22.9999999999999C213.5 21.9999999999999 236.6 22.9999999999999 259.9 25.6999999999999L237.1 -11.4000000000001H372.6L340 41.7C358.6 47 376.9 53.2 394.5 60.4L440.4 -11.4H542L468.6 99C487.1 111.1 503.6 124.5 517.5 138.8zM329.9 58.3L304.9 98.9L272.2 45.6C248.8 42.1 225.5 40.5 203 41.2L304.9 200.5000000000001L383.6 77.5000000000001C366.4 70.1000000000001 348.3 63.6000000000001 329.9 58.3000000000001z" /> + <glyph glyph-name="audible" + unicode="" + horiz-adv-x="640" d=" M640 248.1V194.1L320 -5.9L0 194V248L320 48L640 248.1zM445.5 176.1L492.6 205.5C455.4 261.3 391.9000000000001 298.1 319.9000000000001 298.1C247.9000000000001 298.1 184.4 261.4000000000001 147.3000000000001 205.7H147.6000000000001C150.1000000000001 208 152.7000000000001 210.2 155.3000000000001 212.4C245.0000000000001 286.8 374.7000000000001 270.5 445.5 176.1zM225.4 157.3C242.3 169.2 261.9 176 282.8 176C317.2 176 348 157.6 369.2000000000001 128.4L414.6 156.8C393.7000000000001 186.6999999999999 359 206.3 319.8 206.3C280.9000000000001 206.3 246.4 186.9 225.4 157.3zM103.6 286.9C235.4 391.2 421.8 363.3 521.1 224.8L521.8000000000001 223.8L570.6 254.2C517.1 335.9 424.8 389.9 319.9 389.9C216.4 389.9 123.3 336.4 69.4 254.3C79.3 264.8 92.1 277.8 103.6 286.9zM570.6 254.2z" /> + <glyph glyph-name="autoprefixer" + unicode="" + horiz-adv-x="640" d=" M318.4 432L157.4 -48H234.9L260.3 33.4H379.8L405 -48H482.5L318.4 432zM278.1 90.1L319.3 220.5H320.8L361.7 90.1H278.0999999999999zM640 43L630 74.4L462.1 90L481.5 33.5L640 43zM177.9 90L10 74.3L0 43L158.5 33.6L177.9 90z" /> + <glyph glyph-name="avianex" + unicode="" + horiz-adv-x="512" d=" M453.1 416H141.1C102.2 416 64.9 384.8 57.8 346.3L1.2 37.7C-5.9 -0.8 19.9 -32 58.9 -32H370.9C409.8 -32 447.1 -0.8 454.2 37.7L510.9 346.2C517.9 384.8 492.1 416 453.1 416zM394.9000000000001 68.7L362.9000000000001 55.2L247.5000000000001 165.2C232.8000000000001 155.2 218.3000000000001 145.7 205.8 138.1L227.9 73.9L210 61.2L169.4 122.2L117 170.3L132.7 185.7L190.7 154.6C200 165.1 211.5 177.2 223.5 189.5L203 219.1L134.2 318.9L153 347.8L161.9 352.6L265 240.2L269.9 235.7C289.3 254.5 303.7 268.1 303.7 268.1C311.4 274.6 325.2 271 334.4 260.2C343.4 249.7 345 235.5 337.1 228.9C335.3 227.6 321.6 217.5 301.8 203.3L306.3 196L401.2 76.6L394.8999999999999 68.7z" /> + <glyph glyph-name="aviato" + unicode="" + horiz-adv-x="640" d=" M107.2 164.5L88.2 206.3H36.1L17.1 164.5H0L62.2 295.9L124.4 164.5H107.2zM62.2 262.6L42.6 220.1H81.8L62.2 262.6zM174.9 160.2L112.7 291.6H129.8L174.9 195.6L220 291.6H237L174.9 160.2zM255.5 164.5V291.6H271V164.5H255.5zM464.6 280.1V164.5H447.3V280.1H406.1V291.6H505.7V280.1H464.6zM640 229.2C640 220 638.3 211.4 634.9 203.4C631.5 195.4 626.6999999999999 188.3 620.6999999999999 182.3C614.6999999999999 176.3 607.5999999999999 171.5 599.5999999999999 168.1C591.5999999999999 164.7 582.9999999999999 163 573.8 163S556 164.6999999999999 548 168.1C540 171.5 532.9 176.3 526.9 182.3C520.9 188.3 516.1 195.3 512.6999999999999 203.4C509.3 211.4 507.5999999999999 220 507.5999999999999 229.2S509.2999999999999 247 512.6999999999999 255C516.0999999999999 263 520.9 270.1 526.9 276.1C532.9 282.1 539.9 284.5 548 288C556 291.4 564.6 293.1 573.8 293.1S591.5999999999999 291.4 599.5999999999999 288C607.5999999999999 284.6 614.6999999999999 282.2 620.6999999999999 276.1C626.6999999999999 270.1 631.4 263 634.9 255C638.3 247 640 238.4 640 229.2zM624.5 229.2C624.5 236.5 623.2 243.2 620.6 249.5C618 255.8 614.4 261.2 609.8000000000001 265.8C605.2 270.4 599.8000000000001 274 593.6 276.7000000000001C587.4 279.4 580.8000000000001 280.7000000000001 573.8000000000001 280.7000000000001S560.2 279.4 554.0000000000001 276.7000000000001C547.8000000000001 274 542.4000000000001 270.4 537.8000000000001 265.8C533.2 261.2000000000001 529.6 255.8 527.0000000000001 249.5C524.4000000000001 243.2 523.1000000000001 236.4 523.1000000000001 229.2C523.1000000000001 221.9 524.4000000000001 215.2 527.0000000000001 208.9C529.6000000000001 202.6 533.2000000000002 197.2 537.8000000000001 192.6C542.4000000000001 188 547.8000000000001 184.4 554.0000000000001 181.7C560.2000000000002 179 566.8000000000001 177.7 573.8000000000001 177.7S587.4000000000001 179 593.6 181.7C599.8000000000001 184.4 605.2 188 609.8000000000001 192.6C614.4000000000001 197.2 618.0000000000001 202.6 620.6 208.9C623.2 215.2 624.5 222 624.5 229.2zM529.7 132.5V138.8L618.6 148.8L375.7000000000001 135.4C376.3000000000001 137.6 376.8000000000001 140.0000000000001 377.1 142.6C377.4000000000001 144.6 377.6 146.8 377.7000000000001 149.1L442.5000000000001 157.2000000000001L377.6 155.3000000000001C377.6 155.7000000000001 377.5 156.0000000000001 377.5 156.4000000000001C374.7 173.6000000000001 352 180.1000000000001 352 180.1000000000001L350.9 206.4000000000001H374.7L393.7 164.6000000000001H410.8L348.6 296L286.4000000000001 164.6H303.5000000000001L322.5000000000001 206.4H346.1000000000001L345 180S322.3 173.5 319.5 156.3C319.4 156 319.4 155.6 319.4 155.2L254.5 157.1L319.3 149C319.4 146.6999999999999 319.6 144.6 319.9 142.5C320.2 139.8999999999999 320.7 137.5 321.3 135.3L78.4 148.8L167.3 138.8V132.5C161.4 131.6 156.8 126.5 156.8 120.3C156.8 113.5 162.4 107.9 169.2 107.9C176 107.9 181.6 113.5000000000001 181.6 120.3C181.6 126.5 177 131.6 171.1 132.5V138.3L251.4000000000001 129.3V123.9C245.7000000000001 122.8 241.5000000000001 117.7000000000001 241.5000000000001 111.8C241.5000000000001 105 247.1 101.6 253.9000000000001 101.6C260.7000000000001 101.6 266.3 105 266.3 111.8C266.3 117.8 262 122.8 256.4000000000001 123.9V128.8L284.8 125.6V101.9H278.9000000000001V88H284.8V94.6H289.8V88H295.7V101.8H289.8V125L328.1 120.7C336.2000000000001 109.3 347.1 107.1 347.1 107.1L347 100.4L341.9 100.2L341.8 88.1H345.9L346 93.1H351.2L351.3 88.1H355.4000000000001L355.3 100.2L350.2 100.4L350.1 107.1S361 109.2 369.1 120.7L407.4 125V101.8H401.5V88H407.4V94.6H412.4V88H418.3V101.8H412.4V125.5L440.8 128.7V123.8C435.1 122.7 430.9 117.6 430.9 111.7C430.9 104.9 436.5 101.5 443.3 101.5C450.1 101.5 455.6999999999999 104.9 455.6999999999999 111.7C455.6999999999999 117.7 451.3999999999999 122.7 445.8 123.8V129.2L526.0999999999999 138.2V132.4C520.1999999999999 131.5 515.5999999999999 126.4 515.5999999999999 120.2C515.5999999999999 113.4 521.1999999999999 107.8 527.9999999999999 107.8C534.7999999999998 107.8 540.3999999999999 113.4 540.3999999999999 120.2C540.1999999999998 126.5 535.6999999999998 131.6 529.6999999999998 132.5zM328.9000000000001 220.1L348.5000000000001 262.6L368.1000000000001 220.1H350.2000000000001L348.5000000000001 260.4L346.8000000000002 220.1H328.9000000000002z" /> + <glyph glyph-name="aws" + unicode="" + horiz-adv-x="640" d=" M180.41 244.99C179.69 222.34 191.01 212.31 191.29 205.94A8.164 8.164 0 0 0 187.19 199.67L174.39 190.71A10.659999999999998 10.659999999999998 0 0 0 168.76 188.79C168.33 188.81 160.57 186.96 148.28 214.4A78.608 78.608 0 0 0 85.67 184.95C69.39 184.06 25.27 194.19 27.54 241.16C25.95 279.44 61.6 303.2200000000001 98.47 301.21C105.57 301.19 120.07 300.84 145.46 294.94V310.56C148.15 337.02 130.76 357.55 100.65 354.47C98.25 354.46 81.25 354.97 54.81 344.36C47.45 340.98 46.51 341.54 44.06 341.54C36.65 341.54 39.7 363.02 41.12 365.74C46.33 372.14 76.98 384.09 107.06 383.92A76.857 76.857 0 0 0 162.75 366.64A70.285 70.285 0 0 0 180.42 314.28L180.41 244.99zM93.99 212.6C126.42 213.07 140.15 232.57 143.28 243.07C145.74 253.12 145.33 259.48 145.33 270.4700000000001C135.66 272.79 121.74 275.32 105.77 275.3400000000001C90.62 276.48 62.95 269.7100000000001 64.03 243.08C62.79 226.29 75.15 211.68 93.99 212.6zM264.91 189.55C257.05 188.83 253.39 194.41 252.23 199.92L202.43 364.5700000000001C201.46 367.35 200.8199999999999 370.2200000000001 200.51 373.1500000000001A4.61 4.61 0 0 0 204.37 378.4000000000001C204.61 378.4400000000001 202.24 378.4000000000001 226.62 378.4000000000001C235.4 379.2800000000001 238.26 372.37 239.17 368.0300000000001L274.89 227.2L308.05 368.03C308.58 371.25 310.99 379.1 320.85 378.27H338.01C340.18 378.45 349.12 378.77 350.69 367.9L384.11 225.27L420.98 367.9C421.4600000000001 370.0800000000001 423.7000000000001 379.27 433.6600000000001 378.27H453.38C454.23 378.4 459.53 379.0800000000001 458.63 369.69C458.2 367.8400000000001 462.04 380.35 405.88 199.79C404.73 194.28 401.06 188.7000000000001 393.2 189.42H374.51C363.57 188.2700000000001 362 199.08 361.83 200.17L328.67 337.3L295.89 200.31C295.73 199.22 294.16 188.41 283.21 189.56H264.91zM538.39 183.92C532.51 183.91 504.47 184.22 481.03 196.21A12.802 12.802 0 0 0 473.22 208.12V218.87C473.22 227.32 479.42 225.77 482.05 224.76C492.09 220.7 498.53 217.62 510.86 215.16C547.51 207.63 563.63 217.46 567.5799999999999 219.64C580.7299999999999 227.45 581.77 245.32 572.8299999999999 254.59C562.3499999999999 263.38 557.3499999999999 263.71 519.6999999999999 275.59C515.06 276.88 475.9999999999999 289.2 475.9099999999999 327.95C475.2999999999999 356.19 500.9599999999999 384.13 545.43 383.9C558.0999999999999 383.91 591.8599999999999 379.77 601 368.28C602.35 366.19 603.02 363.73 602.92 361.24V351.13C602.92 346.69 601.3 344.47 598.05 344.47C590.3399999999999 345.33 576.66 355.64 548.89 355.22C542 355.58 509 354.31 510.48 330.25C510.05 311.29 537.09 304.18 540.1800000000001 303.36C576.6400000000001 292.39 588.83 290.57 603.3000000000001 273.78C620.44 251.53 611.2 225.48 607.6500000000001 218.34C588.57 180.85 539.2300000000001 183.9 538.3900000000001 183.92zM578.59 79.06C508.5600000000001 27.34 406.9000000000001 -0.19 320.1 -0.19A469.127 469.127 0 0 0 2.83 120.54C-3.7 126.43 2.06 134.5 10 130.0100000000001A637.37 637.37 0 0 1 326.88 45.89A630.22 630.22 0 0 1 568.47 95.4400000000001C580.25 100.4400000000001 590.24 87.64 578.59 79.0600000000001zM607.7800000000001 112.35C598.82 123.87 548.5000000000001 117.73 525.97 115.04C519.1800000000001 114.2700000000001 518.03 120.16 524.1800000000001 124.5100000000001C564.2500000000001 152.6800000000001 630.0600000000001 144.6100000000001 637.6200000000001 135.1400000000001C645.1700000000001 125.67 635.5700000000002 59.73 598.0600000000002 28.23C592.3000000000002 23.36 586.7900000000002 25.93 589.3500000000001 32.33C597.7900000000002 53.58 616.7400000000001 100.8200000000001 607.7800000000001 112.35z" /> + <glyph glyph-name="bandcamp" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM296.2 113.9H115.2L199.9 270H380.9L296.2 113.9z" /> + <glyph glyph-name="behance-square" + unicode="" + horiz-adv-x="448" d=" M186.5 155C186.5 135.7 172.5 129.6 155.3 129.6H110.2V182.5H156.2C174.8 182.4 186.5 174.7 186.5 155zM178.8 237.3C178.8 255 165.1 259.2000000000001 149.9 259.2000000000001H110.3V214.4H153C168.1 214.4 178.8 221 178.8 237.3000000000001zM311.1 214.1C292.8 214.1 280.6 202.7 279.4000000000001 184.4H341.6C339.9000000000001 202.9 330.3 214.1 311.1 214.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM271.7 263H349.5V281.9H271.7V263zM228.7 152.7C228.7 176.8 217.3 197.6 193.7 204.3C210.9 212.5 219.9 222 219.9 241.3C219.9 279.5 191.4 288.8 158.5 288.8H68V96.8H161.1C196 96.9999999999999 228.7 113.6999999999999 228.7 152.6999999999999zM380 167.5C380 208.6 355.9 242.9 312.4 242.9C270 242.9 241.3 211.1 241.3 169.3C241.3 126 268.6 96.3 312.4 96.3C345.6 96.3 367.1 111.2 377.5 143.1H343.8C340.1 131.2000000000001 325.2 125 313.6 125C291.2000000000001 125 279.5 138.1 279.5 160.3H379.7C379.8 162.6 380 165.1 380 167.5z" /> + <glyph glyph-name="behance" + unicode="" + horiz-adv-x="576" d=" M232 210.8C263.8 226 280.4 249 280.4 284.8C280.4 355.4 227.8 372.6 167.1 372.6H0V18.2H171.8C236.2 18.2 296.7000000000001 49.1 296.7000000000001 121.1C296.7000000000001 165.6 275.6 198.5 232.0000000000001 210.8zM77.9 312.1H151C179.1 312.1 204.4 304.2 204.4 271.6C204.4 241.5 184.7 229.4 156.9 229.4H77.9V312.1zM161.2 78.4H77.9V176H162.8C197.1 176 218.8 161.7 218.8 125.4C218.8 89.6 192.9 78.4 161.2 78.4zM519.7 319.1H376V354H519.7V319.1zM576 142.8C576 218.7 531.6 282 451.1 282C372.9000000000001 282 319.8 223.2 319.8 146.2C319.8 66.3 370.1 11.5 451.1 11.5C512.4 11.5 552.1 39.1 571.2 97.8H509C502.3 75.9 474.7 64.3 453.3 64.3C412 64.3 390.3 88.5 390.3 129.6H575.4C575.6999999999999 133.8 576 138.3 576 142.8zM390.4 174C392.7 207.7 415.1 228.8 448.9 228.8C484.3 228.8 502.1 208 505.1 174H390.4z" /> + <glyph glyph-name="bimobject" + unicode="" + horiz-adv-x="448" d=" M416 416H32C14.4 416 0 401.6 0 384V0C0 -17.6 14.4 -32 32 -32H416C433.6 -32 448 -17.6 448 0V384C448 401.6 433.6 416 416 416zM352 158.6C352 109.2000000000001 340.6 76 248.2 76H231.3C187.2 76 168.9 90.9 160.9 114.8H160V80H96V312H160V237.3H161.1C165.7 267.8 200.8 276.1 230.8 276.1H248.1C340.5 276.1 351.9000000000001 243.0000000000001 351.9000000000001 193.6V158.6zM288 187.5V164.6C288 142.9 284.6 130.8 249.6 130.8H204.3C175.4 130.8 160.2 137.3 160.2 166.5V185.5C160.2 214.8 175.4 221.2 204.3 221.2H249.6C284.6 221.4 288 209.2 288 187.5z" /> + <glyph glyph-name="bitbucket" + unicode="" + horiz-adv-x="512" d=" M23.1 416C14.2 416.1 7 409.1 6.9 400.2C6.9 399.3 7 398.4 7.1 397.4L74.9 -14C76.6 -24.4 85.6 -32 96.1 -32.1H421.2000000000001C429.1 -32.2 435.9000000000001 -26.5 437.2000000000001 -18.7L505.0000000000001 397.3C506.4 406 500.5000000000001 414.2 491.8000000000001 415.6C490.9000000000001 415.7 490.0000000000001 415.8 489.0000000000001 415.8L23.1 416zM308.4000000000001 118.7H204.6L176.5 265.5H333.5L308.4 118.7z" /> + <glyph glyph-name="bitcoin" + unicode="" + horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM362.349 227.33C367.286 260.329 342.158 278.069 307.799 289.903L318.945 334.605L291.732 341.386L280.881 297.862C273.727 299.645 266.379 301.326 259.078 302.992L270.007 346.802L242.809 353.583L231.656 308.897C225.734 310.246 219.9209999999999 311.579 214.279 312.981L214.31 313.121L176.78 322.491L169.541 293.429S189.732 288.802 189.3059999999999 288.516C200.3279999999999 285.765 202.3199999999999 278.472 201.9859999999999 272.691L189.2899999999999 221.766C190.0499999999999 221.572 191.0339999999999 221.293 192.119 220.859C191.2119999999999 221.084 190.243 221.332 189.243 221.572L171.447 150.2339999999999C170.098 146.8859999999999 166.68 141.8639999999999 158.976 143.7699999999999C159.2469999999999 143.375 139.196 148.7069999999999 139.196 148.7069999999999L125.6859999999999 117.56L161.0999999999999 108.733C167.6879999999999 107.0819999999999 174.1449999999999 105.3539999999999 180.5 103.727L169.238 58.514L196.4199999999999 51.733L207.5729999999999 96.466A1038.209 1038.209 0 0 1 229.26 90.8389999999999L218.1449999999999 46.3159999999999L245.3579999999999 39.5349999999999L256.6199999999999 84.6629999999999C303.0239999999999 75.8819999999999 337.9189999999999 79.4239999999999 352.6059999999999 121.3899999999999C364.4419999999999 155.1799999999999 352.0169999999999 174.6709999999999 327.6019999999999 187.3809999999999C345.3819999999999 191.4789999999999 358.7759999999999 203.1729999999999 362.3489999999999 227.3299999999999zM300.172 140.151C291.762 106.3609999999999 234.864 124.6279999999999 216.417 129.208L231.361 189.107C249.807 184.504 308.961 175.39 300.172 140.151zM308.589 227.818C300.916 197.082 253.558 212.698 238.196 216.526L251.744 270.853C267.107 267.025 316.58 259.88 308.589 227.818z" /> + <glyph glyph-name="bity" + unicode="" + horiz-adv-x="496" d=" M78.4 380.8C173.8 470 324.5 472 421.5 377C435.8 362.9 415.1 339.9 399.1 355.5C314.3 437.9 183.3 435.8 100.2000000000001 358.7C83.9000000000001 343.6 63.7000000000001 367 78.4000000000001 380.8zM177.3 -37.8C196.6 -43.5 206.6 -14.2 185.2 -7.8C73 26.1 9.4 141.9 37.7 253.2C42.7 272.8 12.8 281.3 7.5 260.3C-24.6 132.9 48.6 0.5 177.3 -37.8000000000001zM325.4 -35.8C447.3 4.4 518.3 131.1 489.8 255.2C485.3 274.9 454.9 269 459.8 247.3C483.9999999999999 139.6 422.7 29.4 316.6 -6.1C295.4 -13.1 306.2 -42.1 325.4 -35.8zM262.5 43.2L262.7 115C262.7 123.2 256.1 129.8 247.9 129.8C239.7 129.8 233.1 123.1 233.1 115L232.9 43.2C232.9 35 239.5 28.4 247.7 28.4S262.5 35 262.5 43.2zM333.5 312.2C335.6 221.3 338.2 180.3 248 179.7C155.5 180.4 161.1 224 162.5 312.2C162.5 334 130 331.8 130 312.2V240.6C130 171.3 190.7 149.7 248 150.5C305.3 149.7 366 171.3 366 240.6V312.2C366 331.8 333.5 334 333.5 312.2z" /> + <glyph glyph-name="black-tie" + unicode="" + horiz-adv-x="448" d=" M0 416V-32H448V416H0zM316.5 90.8L224 2.1L131.5 90.8L196 274.8L131.5 361.4H316.4L252 274.8L316.5 90.8z" /> + <glyph glyph-name="blackberry" + unicode="" + horiz-adv-x="512" d=" M166 331.1C166 307.7 149.6 282 93.5 282H23.4L44.4 370.8H112.2C154.3 370.8 166 347.5 166 331.1zM292.2 370.8H224.4L205.7 282H275.8C329.6 282 345.9 307.7 345.9 331.1C346 347.5 334.3 370.8 292.2 370.8zM88.8 239.9H21L0 151.1H70.1C126.2 151.1 142.6 174.5 142.6 200.2C142.6 216.5 130.9 239.9000000000001 88.8 239.9000000000001zM268.9 239.9H201.1L182.4 151.1H252.5C306.3 151.1 322.6 174.5 322.6 200.2C322.6 216.5 310.9 239.9000000000001 268.9 239.9000000000001zM458.2 293.7H390.4L371.7 204.9H441.8C495.6 204.9 511.9 228.3 511.9 254C512 270.3 500.3 293.7 458.2 293.7zM430.2 155.8H362.4L343.7 67H413.8C469.9 67 483.9 90.4 483.9 116.1C483.9 132.4 472.3 155.8 430.2 155.8zM240.8 102H173L154.3 13.2H224.4C280.5 13.2 294.5 38.9 294.5 62.3C294.6 78.6 282.9 102 240.8 102z" /> + <glyph glyph-name="blogger-b" + unicode="" + horiz-adv-x="448" d=" M446.6 225.3C444.8 233.3 439.8 240.7 434.1 243.8C432.3 244.8 421.1 246 409.1 246.5C389 247.4 386.8 247.8 380.4000000000001 251.5C370.3 257.4 367.6 263.8 367.5000000000001 281C367.4000000000001 314 353.7000000000001 344.7 326.6000000000001 372.3C307.3000000000001 392 285.7000000000001 405.3 261.1000000000001 412.8C255.2000000000001 414.6 242.0000000000001 415.2 197.8000000000001 415.7C128.4000000000001 416.5 113.0000000000001 415.1 89.4000000000001 405.7C45.9 388.5 14.7 351.9 3.3 305.1C1.2 296.3 0.7 282.2 0.2 201.2C-0.4 99.7 0.3 84.8 6.6 64.7C22.2 15.1 66.5 -21.6 111 -29.6C125.8 -32.3 308.3 -32.9 327 -30.4C359.5 -26.0000000000001 385 -12.9 408.9 11.4999999999999C426.2 29.1999999999999 437 48.3 444.1 73.6C449 91.2 448.6 216.4 446.6 225.3zM124.5 288.9C132.3 296.8 134.5 297.1 183.3 297.1C227.2 297.1 228.7 297 235.1 293.7C244.4000000000001 289 248.5000000000001 282.4 248.5000000000001 271.8C248.5000000000001 262.3 244.7 255.6 236.2 250.2C231.6 247.3 228.9 247.1 185.9 246.9C159.4 246.7 138.2000000000001 247.3 135.1 248.1C118.5 252.8 112.3 276.6 124.5 288.9zM316.3 89.1L301.4000000000001 86.7000000000001L223.9 85.8000000000001C155.8000000000001 85.0000000000001 136.6 86.2000000000001 133 87.8000000000001C125.9 90.9000000000001 119.2 99.5000000000001 118.1 107.2000000000001C117 114.5000000000001 120.7 124.5000000000001 126.3 129.6C133.4 136 136.5 136.2000000000001 223.6 136.3C313.2000000000001 136.4 312.7000000000001 136.4 321.2000000000001 128.5C333.3000000000001 117.2 330.7000000000001 97.3 316.3000000000001 89.1z" /> + <glyph glyph-name="blogger" + unicode="" + horiz-adv-x="448" d=" M162.4 252C167.2 256.9 168.6 257.1 198.8 257.1C226 257.1 226.9 257 230.9 255C236.7 252.1 239.2 248 239.2 241.4C239.2 235.5 236.8 231.4 231.6 228C228.8 226.2 227.1 226.1 200.5 225.9C184.1 225.8 171 226.1 169 226.7C158.7 229.6 154.9 244.4 162.4 252.0000000000001zM223.8 157.5C169.9 157.5 168 157.3 163.6 153.4C160.1 150.3 157.9 144 158.5 139.5C159.2 134.8 163.3000000000001 129.4 167.7 127.5C169.9 126.5 181.8 125.8 224 126.3L271.9 126.9L281.1 128.4C290.1 133.5000000000001 291.6 145.8 284.2 152.8C278.9 157.5 279.2 157.5 223.8 157.5zM447.2000000000001 27.4C443.7000000000001 -1 424.2000000000001 -23 396.1 -30.1C388.9000000000001 -31.9 386.4000000000001 -32 223.2 -31.9C65.4 -31.9 57.3 -31.8 51.2 -30.1C42.8 -27.9 35.6 -24.6 28.9 -20.1C23.3 -16.3 15 -8.3 11.9 -3.7C8.1 1.9 3.7 11.6 1.9 18.3C0.1 25 0 27.7 0 191.7C0 354.8 0 358.3 1.8 365.4C8.1 390.1 27.7 409 53 414.6C60.3 416.2 385.1 416.5 393 414.9C414.2 410.6 430.9 397.8 440.6 378.5C448.3 363.2 447.6 380 447.9000000000001 197.9C448.1 82.1 447.9000000000001 33.4 447.2000000000001 27.4zM361.8000000000001 212.6C360.7000000000001 217.6 357.6000000000001 222.2 354.1000000000001 224.1C353.0000000000001 224.7 346.1000000000001 225.4 338.6000000000001 225.8C326.2000000000001 226.4 324.8000000000001 226.6 320.8000000000001 228.9C314.6000000000001 232.5 312.9000000000001 236.5 312.8000000000001 247.2C312.8000000000001 267.6 304.3000000000001 286.6 287.5000000000001 303.7C275.5000000000001 315.9 262.2000000000001 324.2 246.9000000000001 328.8C243.3000000000001 329.9 235.1000000000001 330.3 207.7000000000001 330.6C164.8000000000001 331.1 155.2000000000001 330.2 140.6000000000001 324.4C113.6000000000001 313.7 94.3000000000001 291 87.2000000000001 262C85.9000000000001 256.5999999999999 85.6000000000001 247.8 85.3 197.6999999999999C84.9 134.8999999999999 85.3 125.5999999999999 89.3 113.1999999999999C99 82.4999999999999 126.4 59.8 153.9 54.8C163.1 53.1 276.1 52.6999999999999 287.6 54.3C307.7000000000001 56.9999999999999 323.5 65.1 338.3 80.1999999999999C349 91.0999999999999 355.7 102.9999999999999 360.1 118.6999999999999C363.3 129.5999999999999 363 207.0999999999999 361.8 212.5999999999999z" /> + <glyph glyph-name="bluetooth-b" + unicode="" + horiz-adv-x="320" d=" M196.48 187.977L289.106 291.31L143.125 448V241.67L57.014 327.781L25.608 296.376L133.669 187.977L25.608 79.578L57.014 48.173L143.125 134.284L145.84 -64L294.392 84.644L196.48 187.977zM237.34 290.973L187.363 240.995L187.025 341.29L237.34 290.973zM187.363 134.96L237.34 84.982L187.025 34.6659999999999L187.363 134.9599999999999z" /> + <glyph glyph-name="bluetooth" + unicode="" + horiz-adv-x="448" d=" M292.6 276.9L249.7 234L249.4 320L292.6 276.9M249.4 57.1L292.5 100.2000000000001L249.6 143.1L249.4 57.1zM416 188.6C416 -17 344.1 -64 230.9 -64S32 -17 32 188.6S115.4 448 228.6 448S416 394.1 416 188.6zM257.5 188.6L336.9 277.2000000000001L211.8 411.5V234.6L138 308.4L111 281.5L203.7 188.5L111 95.5L137.9 68.6L211.7 142.4L214 -27.6L341.4 99.9L257.5 188.6z" /> + <glyph glyph-name="btc" + unicode="" + horiz-adv-x="384" d=" M310.204 205.362C337.9340000000001 219.542 355.581 244.752 351.4840000000001 286.662C346.1260000000001 344.013 299.0260000000001 363.235 236.6340000000001 368.591V448H188.1060000000001V370.7970000000001C175.5010000000001 370.7970000000001 162.5810000000001 370.482 149.662 370.1670000000001V448H101.134V368.591C83.2920000000001 368.052 62.512 368.315 3.764 368.591V316.913C42.078 317.591 62.181 320.053 66.787 295.486V78.057C63.862 58.565 48.263 61.372 13.532 61.986L3.765 4.32C92.246 4.32 101.135 4.005 101.135 4.005V-64H149.663V3.06C162.897 2.745 175.817 2.745 188.107 2.745V-64H236.635V4.005C317.9340000000001 8.417 372.2820000000001 28.899 379.5300000000001 105.472C385.201 166.918 356.2100000000001 194.334 310.2040000000001 205.362zM150.608 313.447C178.023 313.447 263.7340000000001 321.954 263.7340000000001 264.919C263.7340000000001 210.404 178.0240000000001 216.707 150.608 216.707V313.447zM150.608 61.671V168.179C183.38 168.179 283.735 177.317 283.735 114.924C283.7340000000001 54.738 183.38 61.671 150.608 61.671z" /> + <glyph glyph-name="buromobelexperte" + unicode="" + horiz-adv-x="448" d=" M0 416V288H128V416H0zM120 296H8V408H120V296zM160 416V288H288V416H160zM280 296H168V408H280V296zM320 416V288H448V416H320zM440 296H328V408H440V296zM0 256V128H128V256H0zM120 136H8V248H120V136zM160 256V128H288V256H160zM280 136H168V248H280V136zM320 256V128H448V256H320zM440 136H328V248H440V136zM0 96V-32H128V96H0zM120 -24H8V88H120V-24zM160 96V-32H288V96H160zM280 -24H168V88H280V-24zM320 96V-32H448V96H320z" /> + <glyph glyph-name="buysellads" + unicode="" + horiz-adv-x="448" d=" M224 297.3L266.9 136.6H181.1L224 297.3zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM382.7 42.7L288.2 341.4H159.8L65.3 42.7H156L267.7 134.3L291.9 42.6999999999999H382.7z" /> + <glyph glyph-name="cc-amazon-pay" + unicode="" + horiz-adv-x="576" d=" M124.7 246.2C124.8 258 124.7 269.7 124.7 281.5V316.8C124.7 318.1 125.1 318.8 126.1 319.5C137.6 327.5 150.2 331.6 164.3 330.6C176.8 329.7 187 323.6 192.4 308.9C195.7 300 196.5 290.7000000000001 196.5 281.2000000000001C196.5 272.5 195.8 263.9 193.1 255.6C187.4 237.8 174.4 230.9000000000001 157.4 231.7C145.7 232.2 135.5 236.7 126 243.4C125.1 244.2 124.6 245 124.7 246.2zM279.6 231.6C284.2000000000001 229.8 288.9000000000001 229.6 293.7000000000001 230.1C305.3000000000001 231.3 315.6 235.8 325.0000000000001 242.6C325.9000000000001 243.2 326.3000000000001 243.9 326.3000000000001 245.1C326.2000000000001 249 326.3000000000001 253 326.3000000000001 256.9C326.3000000000001 260.9 326.2000000000001 264.9 326.3000000000001 268.9C326.3000000000001 270.3 325.9000000000001 270.9 324.5000000000001 271.1C317.5000000000001 272 310.6000000000001 273.3 303.6000000000001 274C296.6000000000001 274.6 289.6000000000001 274.3 282.8000000000001 272.1C276.1000000000001 269.9 271.1000000000001 265.9 269.1000000000001 259C267.5000000000001 253.6 267.5000000000001 248.2 269.2000000000001 242.8C270.8000000000002 237.3 274.4000000000001 233.6 279.6000000000001 231.6zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM368.5 344.1C368.9 342.4 369.4 340.7 370.1 339C386.6 298.4 403 257.7 419.6 217.1C421 213.6 421.3 210.7 419.8 207.2C417 201 414.9000000000001 194.6 412 188.5C409.4 183 405.3 179 399.3 177.3C395.1 176.2 390.8 176 386.4000000000001 176.4C384.3 176.6 382.2000000000001 177.1 380.1 177.2000000000001C377.3 177.4 375.9000000000001 176.1 375.8 173.2000000000001C375.7 170.4 375.7 167.6 375.8 164.9C375.9000000000001 160.3 377.4000000000001 158.2000000000001 382 157.4C386.7 156.6 391.4 155.8 396.2 155.7000000000001C410.5 155.4 421.9 161.1 429.3 173.6C432.2 178.5 434.9000000000001 183.7000000000001 437 189C456.8 239.1 476.5 289.3 496.2 339.5C496.8 341 497.3 342.5 497.5 344.1C497.9 346.5 496.8 347.7 494.4 347.8C488.8 347.9 483.3 347.8 477.7 347.8C474.6 347.8 472.4 346.4 471.3 343.5C470.9 342.4 470.4 341.2 470 340.1L440.9 256.4C438.8 250.3 436.7 244.3 434.4 237.8C434 238.7 433.8 239.2 433.6 239.7C422.8 269.6 412 299.6 401.2 329.5C399.5 334.2 397.7 339 395.9 343.7C395 346.2 393.2 347.7 390.5 347.7C384.1 347.8 377.7 347.9 371.3 347.8C369.1 347.8 368 346.2 368.5 344.1zM242.4 242C244.1 230.3 250 221.2 260.4 215.4C270.3 209.9 281.1 209.2 292.1 210.8C304.8 212.7 316 218.1 325.9 226.3C326.3 226.6 326.7 226.9 327.3 227.3C327.8 224.1 328.2 221.1 328.8 218.1C329.3 215.5 330.9 213.8 333.3 213.7C337.9 213.6 342.4 213.6 347 213.7C349.3 213.8 350.8 215.3 351 217.6C351.1 218.4 351.1 219.2 351.1 219.9V308.7000000000001C351.1 312.3000000000001 350.9 315.9000000000001 350.4 319.5000000000001C348.8 330.3000000000001 344.2 339.2000000000001 334.5 344.9000000000001C328.9 348.2000000000001 322.7 349.9000000000001 316.3 350.8000000000001C313.3 351.2000000000001 310.3 351.5000000000001 307.2 351.9000000000001H297.2C296.4 351.8000000000001 295.6 351.6000000000001 294.7 351.6000000000001C286.5 351.2000000000001 278.4 350.2000000000001 270.5 348.1000000000001C265.4 346.8000000000001 260.5 344.9000000000001 255.5 343.2000000000001C252.5 342.2000000000001 251 340.0000000000001 251.1 336.7000000000001C251.2 333.9000000000001 251 331.1000000000001 251.1 328.4000000000001C251.2 324.3000000000001 252.9 323.2000000000001 256.8 324.3000000000001C263.3 326.0000000000001 269.9000000000001 327.8000000000001 276.5 329.1000000000001C286.8 331.0000000000001 297.2 331.8000000000001 307.6 330.3000000000001C313 329.5000000000001 318.1 327.9000000000001 321.7000000000001 323.3000000000001C324.8000000000001 319.3000000000001 325.9000000000001 314.5000000000001 326.1 309.6000000000001C326.4000000000001 302.7000000000001 326.3 295.7000000000001 326.4000000000001 288.8000000000001C326.4000000000001 288.4000000000001 326.3 288.1000000000001 326.2000000000001 287.6000000000001C325.8000000000001 287.6000000000001 325.4000000000001 287.6000000000001 325.1 287.7000000000001C316.3 289.8000000000001 307.4000000000001 291.3000000000001 298.3 291.8000000000001C288.8 292.3000000000001 279.4000000000001 291.7000000000001 270.4000000000001 288.6000000000001C259.6 284.8000000000001 250.9000000000001 278.3000000000001 245.8000000000001 267.8000000000001C241.7000000000001 259.5000000000001 241.2000000000001 250.8000000000001 242.4000000000001 242.0000000000001zM98.7 341.1V165.8C98.7 165 98.7 164.1 98.8 163.3C99 160.8 100.5 159.1999999999999 102.9 159.1C108.8 159 114.7 159 120.6 159.1C123.1 159.1 124.6 160.8 124.7 163.2C124.8 164 124.8 164.9 124.8 165.7V226.4C125.7 225.7 126.2 225.2 126.7 224.8C141.7 212.3 158.9 208.2 177.8 211.9C194.9 215.3 206.7 225.8 214.5 241.1C220.3 252.7 222.8 265.2 223.2 278.1C223.7 292.4 222.2 306.5 216.4 319.8C209.3 336.2 197.5 347.1 179.7 350.7C177 351.3 174.2 351.5 171.5 351.9H164.5C163.3 351.7 162.1 351.6 160.9 351.4C149.2 350 138.6 345.6 129.1 338.7C127.1 337.3 125.2 335.7 123.2 334.2C123.1 334.7 122.9 335 122.8 335.4C122.4 337.7 122.1 340 121.7 342.3C121.1 346.2 119.2 347.8 115.3 347.9H105.6C99.7 348 98.7 346.9 98.7 341.1zM493.6 109C490.9 109.7 488.5 109 486 108C442.1 89.6 396.5 77.8 349.2 72.2C334.7 70.5 320.1 69.4 305.5 69C278.9 68.3 252.3 69.8 225.9 73.3C208.1 75.7 190.4 79 172.9 83.2C135.9 92.1 100.2 104.9 66.2 122C57.4 126.4 48.8 131.3 40.1 136C36.3 138.1 33.9 137.5 31.9 133.9V132.2C33.1 130.6 34.1 128.8 35.6 127.4C71.6 95.2 112.2 70.9 157.6 54.5C179.5 46.6 202 40.8 224.9 37C238.9 34.7 252.9 33.2 267.1 32.5C270.1 32.4 273.1 32.3 276.1 32.1C276.8 32.1 277.5 31.9 278.2 31.8H295.9C296.6 31.9 297.3 32.1 298 32.1C312.9 32.5 327.8 33.9 342.6 36.1C364 39.3 385 44.2 405.5 50.8C435.1 60.4 463.2 73.2 488.9 90.9C491.7 92.8 494.6 94.7000000000001 496.9 97.1C501.2 101.5 499.2 107.5 493.6 109zM544 136.7C543.2 140.9 540 142.5 536.4 143.7C530.6999999999999 145.6 524.8 146.5 518.8 147C507.8 147.9 496.8 147.4 485.9999999999999 145.4C473.9999999999999 143.2 462.6 139.3 452.4999999999999 132.3C451.3 131.5 450.1 130.5 449.3999999999999 129.3C448.7999999999999 128.4 448.7 127 448.8999999999999 125.9C449.2 124.6 450.5999999999999 124.3 451.8999999999999 124.4C452.4999999999999 124.4 453.0999999999999 124.4 453.6999999999999 124.5L473.1999999999999 126.6C482.8 127.5 492.3999999999999 128.1 501.9999999999999 127.4C506.1 127.1 510.1 126.2000000000001 514 125.2000000000001C518.3 124.1 520.2 120.8000000000001 520.4 116.5000000000001C520.6999999999999 109.8000000000001 519.1999999999999 103.4 517.5 97.0000000000001C514 84.1000000000001 509.2 71.6000000000001 504.2 59.2000000000001C503.9 58.4 503.5 57.5000000000001 503.4 56.7000000000001C503 54.2 504.4 52.7 506.8 53.2C508.1999999999999 53.5000000000001 509.8 54.3000000000001 510.8 55.3000000000001C514.5 58.9000000000001 518.3 62.5000000000001 521.4 66.5000000000001C532.1 80.3000000000001 538.4 96.1000000000001 542.1 113.1000000000001C542.8000000000001 116.1000000000001 543.3000000000001 119.2000000000001 543.8000000000001 122.2000000000001C544.0000000000001 126.9000000000001 544.0000000000001 131.8000000000001 544.0000000000001 136.7000000000001z" /> + <glyph glyph-name="cc-amex" + unicode="" + horiz-adv-x="576" d=" M576 192.6C538.1 192.8 531.8 193.5 521.5 187.6V192.6C476.2 192.6 468 194.3 456.6 187.4V192.6H378.4000000000001V187.5C367.0000000000001 194 357.0000000000001 192.6 302.7000000000001 192.6V187C296.4000000000001 190.7 288.2000000000001 192.6 278.4000000000001 192.6H220.4C216.9 188.8 207.9 178.9 204.7000000000001 175.4C192.0000000000001 189.5 194.2000000000001 187 189.2000000000001 192.6H106.1000000000001V100.3H188.1000000000001C191.4000000000001 103.8 201.0000000000001 114.1999999999999 204.2000000000001 117.6999999999999C216.9 103.3999999999999 214.5000000000001 105.9999999999999 219.6000000000001 100.3H268.5000000000001C268.5000000000001 115 268.6000000000001 108.6 268.6000000000001 123.3C280.1000000000001 123.1 292.9000000000001 123.5 302.9000000000001 129.5C302.9000000000001 115.6 302.8000000000001 112.3999999999999 302.8000000000001 100.3H342.4000000000001C342.4000000000001 118.8 342.5000000000001 107.6999999999999 342.5000000000001 125.6C348.7000000000001 125.6 350.2000000000001 125.6 351.9000000000001 125.5C352.0000000000001 124.1999999999999 351.9000000000001 125.5 351.9000000000001 100.3C504.7000000000001 100.3 497.8000000000001 99.1999999999999 508.6000000000001 104.8V100.3C543.4000000000001 100.3 563.4000000000001 98.1 576.1000000000001 106.4V16C576.1000000000001 -10.5 554.6000000000001 -32 528.1000000000001 -32H48C21.5 -32 0 -10.5 0 16V219.7H26.6C30.8 229.8 28.8 225 33 235H52.2C56.4 225 54.4 229.8 58.6 219.7H111.5V231.1C113.7 226.1 112.6 228.6 116.6 219.7H146.1C148.5 225.2 148.7 225.5 151.2 231.1V219.7H286.7V244.8C293.1 244.8 294.7 244.9 296.5 244.6C296.5 244.6 296.3 233.7 296.6 219.8H363.1V228.7C370.5 222.8 380.5 219.8 392.8 219.8H419.6C423.8 229.9 421.8 225.1 426 235.1H445C451.5 220.1 445.2 234.6 451.6 219.8H504.4V241.7C516.2 222 512.2 228.8 517.6 219.8H559.2V311.8H519.3000000000001V293.4C507.1000000000001 313.6 513.0000000000001 303.8 508.1000000000001 311.8H464.8000000000001V291.2C458.6000000000001 305.8 460.2 302 456.0000000000001 311.8H423.6000000000001C423.2000000000001 311.8 421.3000000000001 311.6 421.3000000000001 312.1H393.7000000000001C380.9000000000001 312.1 370.6 308.9 363.0000000000001 302.8V312.1H323.1000000000001V306.8C312.3000000000001 312.9 302.4000000000001 311.9 258.7000000000001 312.1C258.6 312.1 247.1000000000001 312.2 247.1000000000001 312.1H144.1000000000001C141.6000000000001 306 137.3000000000001 295.7 131.5000000000001 282.1C128.7000000000001 288.1 120.5000000000001 305.9 117.6000000000001 312.1H71.6000000000001V291C64.2000000000001 308.4 66.9000000000001 302 62.6000000000001 312.1H22.9C19.5 304.2 9.2 280.1 -0.2 258.2V368C-0.2 394.5 21.3 416 47.8 416H527.8C554.3 416 575.8 394.5 575.8 368V192.6zM389.4 273.2C389.1 273 388 271 388 265.6C388 259.6 388.9 257.9 389.1 257.7C389.3 257.6 390.2000000000001 257.2 392.5 257.2L399.8 274.1C398.7 274.1 397.7 274.2 396.7 274.2C391.1 274.2 389.7 273.5 389.4 273.2zM369.5 142.3C378.7 139 380.5 132.8 380.5 123.9L380.4 110.1H363.8L363.9 121.6C363.9 133.4 360.1 135.4 349.1 135.4H331.5L331.3999999999999 110.1H314.7999999999999L314.8999999999999 179.4H354.2999999999999C367.2999999999999 179.4 381.3999999999999 177.1 381.3999999999999 160.7C381.2999999999999 153.1 377.2 145.4 369.5 142.3zM363.2 157.6999999999999C363.2 164.0999999999999 357.6 165.0999999999999 352.5 165.0999999999999H331.5V149.4999999999999H352.2C357.8 149.4999999999999 363.2 150.7999999999999 363.2 157.6999999999999zM544.9 164.8H575V179.4H542.1C529.3000000000001 179.4 518.3000000000001 172.8 518.3000000000001 158.7C518.3000000000001 125.7 561.0000000000001 145.9 561.0000000000001 131.3C561.0000000000001 126.2 556.7000000000002 124.9 552.6000000000001 124.9H520.6000000000001L520.5000000000001 110.1H552.5000000000001C560.9000000000001 110.1 570.1000000000001 111.9 575.0000000000001 119V144.8C564.5000000000001 158.6 535.7000000000002 146.1 535.7000000000002 158.3C535.7000000000002 164.1 540.3000000000002 164.8 544.9000000000002 164.8zM445.7 165.1V179.4H390.5L390.4 110.1H445.6L445.7 124.4L407.1 124.7V138.5H445V152.6H407.2V165.1H445.7zM487.9 125H455.7L455.6 110.1999999999999H487.8C502.6 110.1999999999999 514 115.8 514 132.1999999999999C514 165.3999999999999 471.1 143.3999999999999 471.1 158.5C471.1 164.1 476 164.8999999999999 480.3 164.8999999999999H510.7V179.5H477.5C464.7 179.5 454 172.8999999999999 454 158.8C454 125.8 496.7 146.3 496.7 131.4C496.6 126 492 125 487.9 125zM409.8 283.7C392.4 284 376.6 287.8 376.6 264C376.6 252.2 379.4 244.1 392.7 244.1H400.1L423.6 298.5999999999999H448.4L476.3 233.2V298.5999999999999H501.6L530.6999999999999 250.5V298.5999999999999H547.5999999999999V229.6H524L492.8 281.5V229.6H459.1L452.5 244.9H418.2L411.8 229.6H392.6C369.8 229.6 359.6 241.4 359.6 263.5999999999999C359.6 286.9 370.1 298.8999999999999 393.6 298.8999999999999H409.7000000000001V283.7zM424.1 259.2H446.9L435.7 286.8L424.1 259.2zM351.5 298.8H334.6V229.5H351.5V298.8zM313.4 261.5C322.9 258.2 324.4 252.3 324.4 243.1V229.6H307.8C307.5 244.4 311.4 254.7 293 254.7H275V229.6H258.6V298.8999999999999L297.7 298.5999999999999C311 298.5999999999999 325.1 296.5999999999999 325.1 280.2C325.2 272.2 320.8 264.4999999999999 313.4 261.4999999999999zM306.7 276.8C306.7 283.2 301.1 284.2 296 284.2H275V268.9H295.7C301.4 268.9 306.7 270.2 306.7 276.8zM247.2 284.2V298.8H191.7V229.5H247.2V243.8H208.3V257.6H246.1V271.7H208.3V284.2H247.2zM162.6 229.5V283.7L138.6 229.5H124L100 283.7V229.5H66.2L59.8 244.8H25.3L18.9 229.5H1L30.7 298.8H55.2L83.3 233.1V298.8H110.4L132.1 251.8L151.8 298.8H179.4V229.5H162.6zM53.9 259.2L42.4 286.8L31.2 259.2H53.9zM306.9 156.7C306.9 128.8 276.5 133.4 257.6 133.4L257.5 110.1H225.3L204.9 133.1L183.5999999999999 110.1H118.1999999999999L118.2999999999999 179.4H184.7999999999999L205.2999999999999 156.6L226.3 179.4H279C294.6 179.4 306.9 174 306.9 156.7zM194.2 144.9L176.3 165.1H134.6V152.6H170.9V138.5H134.6V124.6999999999999H175.2L194.2 144.8999999999999zM241 172L215.7 144.6L241 116.5V172zM289.3 156.7C289.3 162.8 284.7 165.1 279.1 165.1H257.6V147.5H278.8C284.7 147.5 289.3 150.3 289.3 156.6999999999999z" /> + <glyph glyph-name="cc-apple-pay" + unicode="" + horiz-adv-x="576" d=" M302.2 229.6C302.2 212.4 291.7 202.5 273.2 202.5H248.9V256.7H273.3C291.7 256.7 302.2 246.9 302.2 229.6zM349.7 167C349.7 158.7 356.9 153.3 368.2 153.3C382.6 153.3 393.4 162.4 393.4 175.2V182.9L369.9 181.4C356.6 180.5 349.7 175.6 349.7 167zM576 369V17C576 -9.5 554.5 -31 528 -31H48C21.5 -31 0 -9.5 0 17V369C0 395.5 21.5 417 48 417H528C554.5 417 576 395.5 576 369zM127.8 250.8C136.2 250.1 144.6 255 149.9 261.2000000000001C155.1 267.6 158.5 276.2000000000001 157.6 284.9C150.2 284.6 141 280 135.7 273.6C130.9 268.1 126.8 259.2 127.8 250.8zM188.4 176.3C188.2 176.5 168.8 183.9 168.6 206.3C168.4 225 183.9 234 184.6 234.5C175.8 247.5 162.2 248.9 157.5 249.2C145.3 249.9 134.9 242.3 129.1 242.3C123.2 242.3 114.4 248.9 104.8 248.7C92.3 248.5 80.6 241.4 74.3 230.1C61.2 207.5 70.9 174.1 83.6 155.7C89.8 146.6 97.3 136.6 107.1 137C116.4 137.4 120.1 143 131.3 143C142.6 143 145.8 137 155.6 137.1C165.8 137.3 172.1 146.2000000000001 178.4 155.3C185.3 165.7 188.2 175.7 188.4 176.3zM323.8 229.7C323.8 256.3 305.3 274.5 278.9000000000001 274.5H227.7000000000001V138.1H248.9000000000001V184.7000000000001H278.2000000000001C305.0000000000001 184.7000000000001 323.8000000000001 203.1000000000001 323.8000000000001 229.7000000000001zM413.8 206C413.8 225.7 398 238.4000000000001 373.8 238.4000000000001C351.3 238.4000000000001 334.7 225.5000000000001 334.1 207.9H353.2000000000001C354.8000000000001 216.3000000000001 362.6 221.8000000000001 373.2000000000001 221.8000000000001C386.2000000000001 221.8000000000001 393.4000000000001 215.8000000000001 393.4000000000001 204.6000000000001V197.1000000000001L367.0000000000001 195.5000000000001C342.4000000000001 194.0000000000001 329.1000000000001 183.9 329.1000000000001 166.4C329.1000000000001 148.7000000000001 342.8000000000001 137.0000000000001 362.5000000000001 137.0000000000001C375.8000000000001 137.0000000000001 388.1000000000001 143.7000000000001 393.7000000000001 154.4H394.1V138H413.7000000000001V206zM516 237.1H494.5L469.6 156.5H469.2L444.3000000000001 237.1H422L457.9 137.8L456 131.8C452.8 121.6 447.5 117.6 438.1 117.6C436.4000000000001 117.6 433.2000000000001 117.8 431.9000000000001 117.9V101.5000000000001C433.1 101.1000000000001 438.4000000000001 101.0000000000001 440.0000000000001 101.0000000000001C460.7 101.0000000000001 470.4 108.9 478.9 132.8000000000001L516 237.1z" /> + <glyph glyph-name="cc-diners-club" + unicode="" + horiz-adv-x="576" d=" M239.7 368.1C142.8 368.1 63.9 289.5 63.9 192.3C63.9 95.4 142.8 16.5 239.7 16.5C336.9 16.5 415.5 95.4 415.5 192.3C415.5 289.5 336.9 368.1 239.7 368.1zM199.8 88.5C158.1 104.4 128.4 144.9 128.4 192.3S158.1 280.2000000000001 199.8 296.4V88.5zM279.6 88.2V296.4C321.3 280.2000000000001 351 239.7 351 192.3S321.3 104.4 279.6 88.2000000000001zM528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM329.7 0H239.4C133.2 0 45.6 85.5 45.6 190.2C45.6 304.8 133.2 384 239.4 384H329.7C434.7 384 530.4 304.8 530.4 190.2C530.4 85.5 434.7 0 329.7 0z" /> + <glyph glyph-name="cc-discover" + unicode="" + horiz-adv-x="576" d=" M83 235.9C83 228 79.8 220.4 74.1 215.2C69.2 210.8 62.5 208.8 52.2 208.8H48V263H52.2C62.5 263 68.9 261.3 74.1 256.4C79.8 251.4 83 243.8 83 235.9zM504.8 264H499.9V239.1H504.6C514.9 239.1 520.4 243.5 520.4 251.9C520.4 259.8 514.9 264 504.8 264zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM428 195H473.3V208.8H444V231H472.3V244.8H444V263H473.3V277H428V195zM341.8 277L376.8 192.8H385.4000000000001L420.9000000000001 277H403.4000000000001L381.2000000000001 221.8L359.3000000000001 277H341.8000000000001zM258.8 235.4C258.8 210.8 278.7 190.8 303.4000000000001 190.8C328.0000000000001 190.8 348.0000000000001 210.7 348.0000000000001 235.4C348.0000000000001 260 328.1000000000001 280 303.4000000000001 280C278.8 280 258.8 260.1 258.8 235.4zM190.8 235.9C190.8 203.4 224.4 183.4 254.1 197.7V216.7C234.8 197.4 207.3 210.9 207.3 235.9C207.3 259.6 234 275 254.1 254.9V273.9C223.9 288.9 190.8 267.1 190.8 235.9zM156.9 207.6C149.3 207.6 143.1 211.3 139.4 218.4L129.1 208.5C146.9 182.4 185.7 190.3 185.7 219.8C185.7 232.9 180.3 238.8 162.1 245.4C152.5 248.8 149.8 251.3 149.8 255.7C149.8 264.4 164.3 269.8 174.7 258.2000000000001L183.1 269C164 286.1 133.4 277.9000000000001 133.4 254.7C133.4 243.4 138.6 237.5000000000001 153.6 232.0000000000001C179.3 222.9 168.3 207.6 156.9 207.6zM99.5 235.9C99.5 260 81.5 277 55.4 277H32V195H55.4C86.3 195 99.5 217.4 99.5 235.9zM122.9 277H106.9V195H122.9V277zM544 160C510.7 139.2 317.6 35.6 128 0H529C537.2 0 544 6.8 544 15V160zM544 195L518.1 229.5C530.2 232 536.8000000000001 240.1 536.8000000000001 252.7C536.8000000000001 281.2 506.5000000000001 277.1 483.9000000000001 277.1V195.1H499.9000000000001V227.9H502.1000000000001L524.3000000000001 195.1H544z" /> + <glyph glyph-name="cc-jcb" + unicode="" + horiz-adv-x="576" d=" M431.5 203.7V236C472.7 236 470 235.8 470 235.8C477.3 234.5 483.3 228.5 483.3 219.8C483.3 211 477.3 205.3 470 204C468.8 203.6 466.7 203.7 431.5 203.7zM474.3 183.5C471.5 184.2 471 184 431.5 184V149C471.1 149 471.5 148.8 474.3 149.5C481.8 151 487.8 157.5 487.8 166.5C487.8 175.2 481.8 182 474.3 183.5zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM182 255.7H125C125 188.6 135.7 146 89.2 146C69.7 146 50.4 151.7 32 160.8V132.8C62 124.5 100 124.5 100 124.5C197.9 124.5 182 172.2 182 255.7zM360.5 251.2C297.1 267.2 195.5 266.1 195.5 191.9C195.5 114.8 303.7 118.3 360.5 132.7V161C312.9 136.3 253 139 253 192S312.8 247.6 360.5 223.2V251.2zM544 161.5C544 180 527.5 192 506 193.5V194.3C525.5 197 536.3 209.8 536.3 224.5C536.3 243.5 520.5999999999999 254.5 499.3 255.5C499.3 255.5 505.6 255.8 379 255.8V128.3H501.6999999999999C525.9999999999999 128.2 543.9999999999999 141.2 543.9999999999999 161.5z" /> + <glyph glyph-name="cc-mastercard" + unicode="" + horiz-adv-x="576" d=" M482.9 37.7C482.9 30.9 478.3 26 471.7 26C464.9 26 460.5 31.2 460.5 37.7C460.5 44.2 464.9 49.4 471.7 49.4C478.3 49.4 482.9 44.2 482.9 37.7zM172.1 49.4C165 49.4 160.9 44.2 160.9 37.7C160.9 31.2 165 26 172.1 26C178.6 26 183 30.9 183 37.7C182.9 44.2 178.6 49.4 172.1 49.4zM289.6 49.7C284.2 49.7 280.9 46.2 280.1 41H299.2C298.3 46.7 294.8 49.7 289.6 49.7zM397.4 49.4C390.6 49.4 386.5 44.2 386.5 37.7C386.5 31.2 390.6 26 397.4 26C404.2 26 408.6 30.9 408.6 37.7C408.6 44.2 404.2 49.4 397.4 49.4zM503.3 23.3C503.3 22.9999999999999 503.6 22.8 503.6 22.1999999999999C503.6 21.8999999999999 503.3 21.6999999999999 503.3 21.0999999999999C502.9999999999999 20.7999999999999 502.9999999999999 20.5999999999999 502.8 20.2999999999999C502.4999999999999 19.9999999999999 502.3 19.7999999999999 501.6999999999999 19.7999999999999C501.3999999999999 19.4999999999999 501.1999999999999 19.4999999999999 500.5999999999999 19.4999999999999C500.2999999999999 19.4999999999999 500.0999999999999 19.4999999999999 499.4999999999999 19.7999999999999C499.1999999999999 19.7999999999999 498.9999999999999 20.0999999999999 498.6999999999999 20.2999999999999C498.3999999999999 20.5999999999999 498.1999999999999 20.7999999999999 498.1999999999999 21.0999999999999C497.8999999999999 21.5999999999999 497.8999999999999 21.8999999999999 497.8999999999999 22.1999999999999C497.8999999999999 22.6999999999999 497.8999999999999 22.9999999999999 498.1999999999999 23.3C498.1999999999999 23.8 498.4999999999999 24.1 498.6999999999999 24.4C498.9999999999999 24.7 499.1999999999999 24.7 499.4999999999999 24.9C499.9999999999999 25.2 500.2999999999999 25.2 500.5999999999999 25.2C501.0999999999999 25.2 501.3999999999999 25.2 501.6999999999999 24.9C502.1999999999999 24.6 502.4999999999999 24.6 502.8 24.4S502.9999999999999 23.8 503.3 23.3zM501.1 21.9C501.6 21.9 501.6 22.2 501.9 22.2C502.2 22.5 502.2 22.7 502.2 23C502.2 23.3 502.2 23.5 501.9 23.8C501.6 23.8 501.4 24.1 500.8 24.1H499.1999999999999V20.6H499.9999999999999V22H500.3L501.4 20.6H502.2L501.1 21.9zM576 367V15C576 -11.5 554.5 -33 528 -33H48C21.5 -33 0 -11.5 0 15V367C0 393.5 21.5 415 48 415H528C554.5 415 576 393.5 576 367zM64 227.4C64 150.9 126.1 88.9 202.5 88.9C229.7 88.9 256.4 97.1 279 112C206.1 171.3 206.6 283.2 279 342.5C256.4 357.5 229.7 365.6 202.5 365.6C126.1 365.7 64 303.6 64 227.4zM288 118.6C358.5 173.6 358.2 280.8 288 336.1C217.8 280.8 217.5 173.5 288 118.6zM145.7 42.3C145.7 51 140 56.7 131 57C126.4 57 121.5 55.6 118.2 50.5C115.8 54.6 111.7 57 106 57C102.2 57 98.4 55.6 95.4 51.6V56H87.2V19.3H95.4C95.4 38.2 92.9 49.5 104.4 49.5C114.6 49.5 112.6 39.3 112.6 19.3H120.5C120.5 37.6 118 49.5 129.5 49.5C139.7 49.5 137.7 39.5 137.7 19.3H145.9V42.3zM190.6 56H182.7V51.6C180 54.9 176.2 57 171 57C160.7 57 152.8 48.8 152.8 37.7C152.8 26.5 160.7 18.4 171 18.4C176.2 18.4 180 20.3 182.7 23.8V19.1999999999999H190.6V56zM231.1 30.4C231.1 45.4 208.2 38.6 208.2 45.6C208.2 51.3 220.1 50.4 226.7 46.7L230 53.2C220.6 59.3 199.8 59.2 199.8 45C199.8 30.7 222.7 36.7 222.7 30C222.7 23.7 209.2 24.2 202 29.2L198.5 22.9C209.7 15.3 231.1 16.9 231.1 30.4zM266.5 21.1L264.3 27.9C260.5 25.8 252.1 23.5 252.1 32V48.6H265.2000000000001V56H252.1000000000001V67.2H243.9000000000001V56H236.3000000000001V48.7H243.9000000000001V32C243.9000000000001 14.4 261.2000000000001 17.6 266.5000000000001 21.1zM279.8 34.4999999999999H307.3C307.3 50.6999999999999 299.9000000000001 57.1 289.9000000000001 57.1C279.3 57.1 271.7000000000001 49.2 271.7000000000001 37.8C271.7000000000001 17.3 294.3000000000001 13.9 305.5000000000001 23.6L301.7000000000001 29.6C293.9000000000001 23.2 282.1 23.8 279.8000000000001 34.4999999999999zM338.9000000000001 55.9999999999999C334.3 57.9999999999999 327.3 57.8 323.7000000000001 51.6V56H315.5000000000001V19.3H323.7000000000001V40C323.7000000000001 51.6 333.2000000000001 50.1 336.5000000000001 48.4L338.9000000000001 56zM349.5000000000001 37.6999999999999C349.5000000000001 49.0999999999999 361.1000000000001 52.8 370.2000000000001 46.0999999999999L374.0000000000001 52.5999999999999C362.4000000000001 61.6999999999999 341.3000000000001 56.6999999999999 341.3000000000001 37.5999999999999C341.3000000000001 17.7999999999999 363.7000000000001 13.7999999999999 374.0000000000001 22.5999999999999L370.2000000000001 29.0999999999999C361.0000000000001 22.5999999999999 349.5000000000001 26.4999999999999 349.5000000000001 37.6999999999999zM416.2000000000001 55.9999999999999H408V51.6C399.7 62.6 378.1 56.4 378.1 37.7C378.1 18.5 400.5 13 408 23.8V19.2H416.2V56zM449.9000000000001 55.9999999999999C447.5000000000001 57.1999999999999 438.9000000000001 58.8999999999999 434.7000000000001 51.6V56H426.8000000000001V19.3H434.7000000000001V40C434.7000000000001 51 443.7000000000001 50.3 447.5000000000001 48.4L449.9000000000001 56zM490.2 70.8999999999999H482.3000000000001V51.5999999999999C474.1000000000001 62.4999999999999 452.4000000000001 56.6999999999999 452.4000000000001 37.6999999999999C452.4000000000001 18.3 474.9000000000001 13.0999999999999 482.3000000000001 23.8V19.1999999999999H490.2V70.8999999999999zM497.8000000000001 145.9999999999999V141.3999999999999H498.6000000000001V146H500.5000000000001V146.8H495.9V146H497.8zM504.4000000000001 22.1999999999999C504.4000000000001 22.6999999999999 504.4000000000001 23.2999999999999 504.1000000000001 23.7999999999999C503.8000000000001 24.0999999999999 503.6000000000001 24.5999999999999 503.3000000000001 24.8999999999999C503.0000000000001 25.1999999999999 502.5000000000001 25.3999999999999 502.2 25.6999999999999C501.7 25.6999999999999 501.1 25.9999999999999 500.6 25.9999999999999C500.3 25.9999999999999 499.8 25.6999999999999 499.2 25.6999999999999C498.7 25.3999999999999 498.4 25.1999999999999 498.1 24.8999999999999C497.6 24.5999999999999 497.3 24.0999999999999 497.3 23.7999999999999C497 23.2999999999999 497 22.6999999999999 497 22.1999999999999C497 21.8999999999999 497 21.3999999999999 497.3 20.7999999999999C497.3 20.4999999999999 497.6 19.9999999999999 498.1 19.6999999999999C498.4 19.3999999999999 498.6 19.1999999999999 499.2 18.8999999999999C499.7 18.5999999999999 500.3000000000001 18.5999999999999 500.6 18.5999999999999C501.1 18.5999999999999 501.7 18.5999999999999 502.2 18.8999999999999C502.5000000000001 19.1999999999999 503.0000000000001 19.3999999999999 503.3000000000001 19.6999999999999C503.6000000000001 19.9999999999999 503.8000000000001 20.4999999999999 504.1000000000001 20.7999999999999C504.4000000000001 21.3999999999999 504.4000000000001 21.8999999999999 504.4000000000001 22.1999999999999zM507.6000000000001 146.8999999999999H506.2000000000001L504.6000000000001 143.3999999999999L503.0000000000001 146.8999999999999H501.6000000000001V141.4999999999999H502.4000000000001V145.5999999999999L504.0000000000001 142.0999999999999H505.1000000000001L506.5000000000001 145.5999999999999V141.4999999999999H507.6000000000001V146.8999999999999zM512.0000000000001 227.3999999999999C512.0000000000001 303.5999999999999 449.9000000000001 365.6999999999999 373.5000000000001 365.6999999999999C346.3000000000002 365.6999999999999 319.6000000000002 357.4999999999999 297.0000000000001 342.5999999999999C369.1000000000002 283.2999999999999 370.2000000000001 171.0999999999999 297.0000000000001 112.0999999999999C319.6000000000002 97.0999999999999 346.5000000000001 88.9999999999999 373.5000000000001 88.9999999999999C449.9000000000001 88.8999999999999 512.0000000000001 150.8999999999999 512.0000000000001 227.3999999999999z" /> + <glyph glyph-name="cc-paypal" + unicode="" + horiz-adv-x="576" d=" M186.3 189.8C186.3 177.6 176.6 168.3 164.3 168.3C155.1 168.3 148.3 173.5 148.3 183.3C148.3 195.5 157.8 205.3 170 205.3C179.3 205.3 186.3 199.6 186.3 189.8zM80.5 238.3H75.8C74.3 238.3 72.8 237.3 72.6 235.6L68.3 208.9L76.5 209.2000000000001C87.5 209.2000000000001 96 210.7000000000001 98 223.4C100.3 236.8000000000001 91.8 238.3000000000001 80.5 238.3000000000001zM364.5 238.3H360C358.2 238.3 357 237.3 356.8 235.6L352.6 208.9L360.6 209.2000000000001C373.6 209.2000000000001 382.6 212.2000000000001 382.6 227.2000000000001C382.5 237.8000000000001 373 238.3000000000001 364.5 238.3000000000001zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM128.3 232.6C128.3 253.6 112.1 260.6 93.6 260.6H53.6C51.1 260.6 48.6 258.6 48.4 255.9L32 153.8C31.7 151.8 33.2 149.8 35.2 149.8H54.2C56.9 149.8 59.4 152.7 59.7 155.5L64.2 182.1C65.2 189.3 77.4 186.8 82.2 186.8C110.8 186.8 128.3 203.8 128.3 232.6zM212.5 223.8H193.5C189.7 223.8 189.5 218.3 189.3 215.6C183.5 224.1 175.1 225.6 165.6 225.6C141.1 225.6 122.4 204.1 122.4 180.4C122.4 160.9 134.6 148.2 154.1 148.2C163.1 148.2 174.3 153.1 180.6 160.1C180.1 158.6 179.6 155.4 179.6 153.9C179.6 151.6 180.6 149.9 182.8 149.9H200C202.7 149.9 205 152.8 205.5 155.6L215.7 219.9C216 221.8 214.5 223.8 212.5 223.8zM253 125.9L316.7 218.5C317.2 219 317.2 219.5 317.2 220.2C317.2 221.9 315.7 223.7 314 223.7H294.8C293.1 223.7 291.3 222.7 290.3 221.2L263.8 182.1999999999999L252.8 219.6999999999999C252 221.8999999999999 249.8 223.6999999999999 247.3 223.6999999999999H228.6C226.9000000000001 223.6999999999999 225.4000000000001 221.8999999999999 225.4000000000001 220.1999999999999C225.4000000000001 219 244.9000000000001 163.3999999999999 246.6 158.0999999999999C243.9000000000001 154.2999999999999 226.1 129.4999999999999 226.1 126.4999999999999C226.1 124.6999999999999 227.6 123.2999999999999 229.3 123.2999999999999H248.5C250.3 123.3999999999999 252 124.3999999999999 253 125.8999999999999zM412.3 232.6C412.3 253.6 396.1 260.6 377.6 260.6H337.9000000000001C335.2000000000001 260.6 332.7000000000001 258.6 332.4000000000001 255.9L316.2000000000001 153.9C316.0000000000001 151.9 317.5000000000001 149.9 319.4000000000001 149.9H339.9000000000001C341.9000000000001 149.9 343.4000000000001 151.4 343.9000000000001 153.1L348.4000000000001 182.1C349.4000000000001 189.3 361.6 186.8 366.4000000000001 186.8C394.8 186.8 412.3 203.8 412.3 232.6zM496.5 223.8H477.5C473.7 223.8 473.5 218.3 473.2 215.6C467.7 224.1 459.2 225.6 449.5 225.6C425 225.6 406.3 204.1 406.3 180.4C406.3 160.9 418.5 148.2 438 148.2C447.3 148.2 458.5 153.1 464.5 160.1C464.2 158.6 463.5 155.4 463.5 153.9C463.5 151.6 464.5 149.9 466.7 149.9H484C486.7 149.9 489 152.8 489.5 155.6L499.7 219.9C500 221.8 498.5 223.8 496.5 223.8zM544 257.1C544 259.1 542.5 260.6 540.8 260.6H522.3C520.8 260.6 519.3 259.4 519.0999999999999 257.9L502.8999999999999 153.9L502.5999999999999 153.4C502.5999999999999 151.6 504.0999999999999 149.9 506.0999999999999 149.9H522.5999999999999C525.0999999999999 149.9 527.5999999999999 152.8 527.8 155.6L544 256.8V257.1zM454 205.3C441.8 205.3 432.3 195.6 432.3 183.3C432.3 173.6 439.3 168.3 448.5 168.3C460.5 168.3 470.2 177.5 470.2 189.8C470.3 199.6 463.3 205.3 454 205.3z" /> + <glyph glyph-name="cc-stripe" + unicode="" + horiz-adv-x="576" d=" M396.9 191.5C396.9 172.4 388.1 158.1 375 158.1C366.7 158.1 361.7 161.1 358.2 164.8L358 217.6C361.7 221.7 366.8 224.6 375 224.6C387.9 224.7 396.9 210.1 396.9 191.5zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM122.2 166.9C122.2 209.2 67.9 201.6 67.9 217.6C67.9 223.1 72.5 225.3 80 225.3C90.8 225.3 104.5 222 115.3 216.2V249.6C103.5 254.3 91.8 256.1 80 256.1C51.2 256.1 32 241.1 32 215.9C32 176.6 86 183 86 166C86 159.4 80.3 157.3 72.4 157.3C60.6 157.3 45.5 162.2 33.5 168.6V134.7000000000001C46.7 129.0000000000001 60.1 126.6 72.3 126.6C101.9 126.8 122.2 141.3 122.2 166.9zM191.1 253.8H164.1V284.6L129.4 277.2L129.2000000000001 163.3C129.2000000000001 142.3 145.0000000000001 126.8 166.1000000000001 126.8C177.7000000000001 126.8 186.3000000000001 128.9 191.0000000000001 131.5V160.3999999999999C186.5000000000001 158.5999999999999 164.0000000000001 152.0999999999999 164.0000000000001 173V223.5H191.0000000000001V253.8zM264.9000000000001 253.8C260.2000000000001 255.5 243.6 258.6 235.3000000000001 243.3L233.1000000000001 253.8H202.4000000000001V129.3H237.9000000000001V213.7C246.3000000000001 224.7 260.5000000000001 222.6 265.0000000000001 221.1V253.8zM309.1 253.8H273.4000000000001V129.3H309.1V253.8zM309.1 301.1L273.4000000000001 293.5V264.6L309.1 272.2V301.1zM431.8 192.3C431.8 233.6 408.3 256.1 383.4000000000001 256.1C369.5000000000001 256.1 360.5000000000001 249.5 355.6 245L353.8 253.8H322.5V88L358 95.5L358.1 135.7C363.2000000000001 132 370.8 126.7 383.2000000000001 126.7C408.6 126.8 431.8000000000001 147.2 431.8000000000001 192.3zM544 191.1C544 227.5 526.4 256.2 492.7 256.2C458.9 256.2 438.4 227.5 438.4 191.3C438.4 148.5 462.6 126.8 497.2 126.8C514.2 126.8 526.9 130.6999999999999 536.6 136V164.6C526.9 159.7 515.8000000000001 156.7 501.7 156.7C487.9 156.7 475.7 161.6 474.1 178.2H543.6C543.7 180.2 544 187.6 544 191.1zM492.4 227.2C483.5 227.2 473.7 220.5 473.7 204.5H510.4C510.4 220.5 501.1 227.2 492.4 227.2z" /> + <glyph glyph-name="cc-visa" + unicode="" + horiz-adv-x="576" d=" M470.1 216.7S477.7 179.5 479.4 171.7H446C449.3 180.6 462 215.2 462 215.2C461.8 214.9 465.3 224.3 467.3 230.1L470.1 216.7zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM152.5 116.8L215.7 272H173.2L133.9 166L129.6 187.5L115.6 258.9C113.3 268.8 106.2 271.6 97.4 272H32.7L32 268.9C47.8 264.9 61.9 259.1 74.2 251.8L110 116.8H152.5zM246.9 116.6L272.1 272H231.9000000000001L206.8000000000001 116.6H246.9000000000001zM386.8 167.4C387 185.1 376.2 198.6 353.1 209.7000000000001C339 216.8000000000001 330.4000000000001 221.6000000000001 330.4000000000001 228.9000000000001C330.6 235.5000000000001 337.7000000000001 242.3000000000001 353.5000000000001 242.3000000000001C366.6000000000001 242.6000000000001 376.2000000000001 239.5000000000001 383.4000000000001 236.4000000000001L387.0000000000001 234.7000000000001L392.5000000000001 268.3000000000001C384.6000000000001 271.4000000000001 372.0000000000001 274.9000000000001 356.5000000000001 274.9000000000001C316.8000000000001 274.9000000000001 288.9000000000001 253.7000000000001 288.7000000000001 223.5C288.4000000000001 201.2 308.7000000000001 188.8 323.9000000000001 181.3C339.4000000000001 173.7 344.7000000000001 168.7 344.7000000000001 162C344.5000000000001 151.6 332.1 146.8 320.6 146.8C304.6 146.8 296 149.3 282.9000000000001 155.1L277.6 157.6L272 122.7000000000001C281.4 118.4 298.8 114.6 316.8 114.4C359 114.3 386.5 135.2000000000001 386.8 167.4zM528 116.6L495.6 272H464.5C454.9 272 447.6 269.2 443.5 259.1L383.8 116.6H426S432.9 135.8 434.4 139.9H486C487.2 134.4 490.8 116.6 490.8 116.6H528z" /> + <glyph glyph-name="centercode" + unicode="" + horiz-adv-x="512" d=" M329.2 179.4C325.4 144.2 293.8 118.8 258.6 122.6C223.4 126.4 198 158 201.8 193.2C205.6 228.4 237.2 253.8 272.4 250C307.5 246.2 333 214.5999999999999 329.2 179.4zM243.4 -55.7C96.7 -48 -8.2 82.5 10.1 223.7C21.3 310.3 75.9 380.6 149.2 415.7C310.2 492.8 498.9 378.3 503.9 199.1C508 52.1 385.5 -63.1 243.4 -55.7zM423.3 124.3C451.1999999999999 242.3 262.8 330.2 186.1 358.5C128.6 302.2 117 169.9 152.3 14.1C221.1 -1.7 321.4 40.4999999999999 423.3 124.3z" /> + <glyph glyph-name="chrome" + unicode="" + horiz-adv-x="496" d=" M131.5 230.5L55.1 347.9C102.7 407.1 174.1 439.7 247.1 440C289.4 440.3 332.6 429.5 371.9 406.8C415.3 381.6 448.3 345.4 469.3 303.8L264 314.6C205.9 318 150.6 285.3 131.5 230.5zM164.4 192C164.4 145.8 201.8 108.4 248 108.4S331.6 145.8 331.6 192S294.2000000000001 275.6 248.0000000000001 275.6S164.4 238.3 164.4 192zM479.3 281.2L339.6 274C377.5 229.7 378.1 165.8 346.2000000000001 116.8L234.1 -55.6C280.6 -58.1 328.5 -47.9 371.9 -22.7C479.3 39.3 522.8 169.3 479.3 281.2zM133.7 144.4L40.4 327.9C14.9 288.9 0 242.1 0 192C0 68 90.8 -34.7 209.5 -52.9L273.2 71.9C215.6 61.1 160 92.7000000000001 133.7 144.4z" /> + <glyph glyph-name="cloudscale" + unicode="" + horiz-adv-x="448" d=" M318.1 294L308.7000000000001 286.4C286.2000000000001 305.7000000000001 257.2000000000001 320 225.4000000000001 320C153.8 320 96 259.2 96 187.7C96 181.1 96.4 174.6 97.4 168.3C95.4 224.3 139.2 265.7000000000001 190 265.7000000000001C214.2 265.7000000000001 236.2 256.3 252.6 241.0000000000001L227.4 220.6C219.1 221.5 210.6 218.8 204.3 212.5C193.2 201.5 193.2 183.6 204.3 172.5C215.4 161.5 233.2 161.5 244.3 172.5C250.6 178.8 253.3 187.4 252.4 195.6L327.6 284.4C333.9000000000001 290.9 324.3 300.3 318.1 294zM234.3 182.5C228.7 177 219.7 177 214.1 182.5C208.5 188.1 208.5 197.1 214.1 202.7S228.7 208.3 234.3 202.7S239.9 188 234.3 182.5zM224 416C100.5 416 0 315.5 0 192S100.5 -32 224 -32S448 68.5 448 192S347.5 416 224 416zM224 32C135.8 32 64 103.8 64 192S135.8 352 224 352S384 280.2 384 192S312.2 32 224 32z" /> + <glyph glyph-name="cloudsmith" + unicode="" + horiz-adv-x="332" d=" M332.5 28.1C332.5 -18.3 294.9 -56 248.5 -56S164.5 -18.3 164.5 28.1S202.1 112.1 248.5 112.1S332.5 74.5 332.5 28.1zM248.5 272C294.9 272 328.5 309.6 328.5 356S294.9 440 248.5 440S160.5 402.4000000000001 160.5 356S130.9 280 84.5 280S0.5 238.4000000000001 0.5 192S38.1 112 84.5 112S168.5 145.6 168.5 192S202.1 272 248.5 272z" /> + <glyph glyph-name="cloudversify" + unicode="" + horiz-adv-x="616" d=" M148.6 144C156.8 75.5 216 28.5 294.6 32.7C345.8 -10.6 431.4000000000001 -13.1 481 38.3C550.2 37.2 599.5 82.9 612.5 137.8C627.3 200.3 594.3 270.3 520.4 292.9C487.4 381 389 394.4 333.9 377.9C276.6 360.6 249.6 324.7 234.6 268.2C226.8 265.5 208.1 259.3 189.6 244.1C201.3 244.1 204.8 235.2 204.8 224.6V204.2C204.8 193.5 196.1 184.7 185.3 184.7H165.1C154.4 184.7 145.6 190.7 145.6 201.4V208H98.8C95 208 88 203.7 88 196.1V155.7C88 149.3 93.3 143.9 99.7 143.9H148.6zM376 136C365.3 89.7 397.7 63.6 431.3 49.2C324.1 15.4 259.7 100 296 160C262.8 138.4 262.3 88.8 266.8 67.1C248.9 79.5 213 99.5 209.4 146.9C206.4 186.8 230.9 222.6 266.4 240.8000000000001C297 256.6 369.9 249.3 400 200C385.9 248 346.2 270.1 298.2 274.8C329.1 305.5 362.6 325.1 412.4 318.5C482.2 309.2 545.5999999999999 235.7 480.1 168C515.0999999999999 184.3 528.8 222.4 527.5999999999999 244.9L538.0999999999999 225.3C549.8999999999999 203.3 553.3 177.7 547.4999999999999 153.3C538.2999999999998 114.3 506.8999999999999 84.5 467.7999999999999 76.8C435.6999999999999 70.5 384.7 81.9 375.9999999999999 136zM128 240H88.2C79.3 240 72 247.3 72 256.2V295.8C72 304.7 79.3 312 88.2 312H128C136.9 312 144.2 304.7 144.2 295.8V256.2C144.2 247.3 136.9 240 128 240zM10.1 280C4.5 280 0 284.5 0 290.1V317.9C0 323.5 4.5 328 10.1 328H37.8C43.3 328 47.9 323.5 47.9 317.9V290.1C47.9 284.5 43.4 280 37.8 280H10.1zM168 305.3V326.7000000000001C168 331.8 172.2 336 177.3 336H198.7C203.8 336 208 331.8 208 326.7000000000001V305.3C208 300.2000000000001 203.8000000000001 296 198.7 296H177.3C172.2 296 168 300.2 168 305.3zM56 212.5V187.5C56 181.2 50.9 176 44.6 176H19.4C13.1 176 8 181.2 8 187.5V212.5C8 218.8 13.1 224 19.4 224H44.5C50.9 224 56 218.8 56 212.5z" /> + <glyph glyph-name="codepen" + unicode="" + horiz-adv-x="512" d=" M502.285 288.296L268.2850000000001 444.296C260.298 449.211 251.7740000000001 449.256 243.7140000000001 444.296L9.714 288.296C3.714 284.2970000000001 0 277.153 0 270.011V114.012C0 106.869 3.714 99.726 9.715 95.726L243.715 -60.296C251.702 -65.211 260.226 -65.256 268.286 -60.296L502.286 95.726C508.286 99.725 512.001 106.869 512.001 114.012V270.011C512 277.153 508.286 284.2970000000001 502.285 288.296zM278 384.8690000000001L450.286 270.011L373.429 218.582L278 282.2970000000001V384.8690000000001zM234 384.8690000000001V282.2970000000001L138.571 218.582L61.714 270.011L234 384.8690000000001zM44 228.868L99.143 192.011L44 155.154V228.868zM234 -0.847L61.714 114.011L138.571 165.4400000000001L234 101.725V-0.847zM256 140.011L178.285 192.011L256 244.011L333.7150000000001 192.011L256 140.011zM278 -0.847V101.725L373.429 165.4400000000001L450.286 114.0110000000001L278 -0.847zM468 155.154L412.857 192.011L468 228.868V155.154z" /> + <glyph glyph-name="codiepie" + unicode="" + horiz-adv-x="472" d=" M422.5 245.1C453.2 245.1 456 192 422.2 192H411.4V147.7H384.8V245.1H422.5zM472 95.4C429.9 3.5 350.4 -56 248 -56C111 -56 0 55 0 192S111 440 248 440C345.4 440 420.8 386.3 466.2 301.6L280.2 192.8L472 95.4zM433.5 82.9L373.2 113.6C346.1 69.3 302.8 42.1999999999999 250.8 42.1999999999999C168.3 42.1999999999999 101.6 108.8999999999999 101.6 191.0999999999999C101.6 273.5999999999999 168.3 340.2999999999999 250.8 340.2999999999999C299.2 340.2999999999999 339.7 316.7999999999999 367.7 276.8999999999999L427.2 311.4999999999999C386.5 374.0999999999999 322.5 411.4999999999999 248 411.4999999999999C126.8 411.4999999999999 28.5 313.1999999999999 28.5 191.9999999999999S126.8 -27.5 248 -27.5C326.6 -27.5 394.5 14.6 433.5 82.9z" /> + <glyph glyph-name="connectdevelop" + unicode="" + horiz-adv-x="576" d=" M550.5 207L500.411 293.786C501.482 295.928 502.286 298.339 502.286 301.0180000000001C502.286 309.054 495.59 315.751 487.554 316.019L432.107 411.9120000000001C432.643 413.519 433.178 415.126 433.178 416.733C433.178 425.304 426.214 432.001 417.91 432.001C413.089 432.001 409.071 429.858 406.124 426.376H299.518C296.839 429.857 292.8210000000001 432 288 432S279.161 429.857 276.482 426.375H170.411C167.464 429.857 163.447 432 158.625 432C150.322 432 143.357 425.304 143.357 416.732C143.357 415.125 143.893 413.25 144.429 411.911L88.446 314.678C83.09 312.2680000000001 79.339 307.178 79.339 301.017C79.339 300.482 79.607 299.9460000000001 79.607 299.41L26.303 207.267C19.071 205.928 13.713 199.767 13.713 192.267C13.713 185.035 18.802 178.874 25.767 177.267L80.946 81.909C80.41 80.302 80.142 78.963 80.142 77.088C80.142 69.8559999999999 85.231 63.6949999999999 92.196 62.356L143.893 -27.376C143.357 -28.983 142.822 -30.858 142.822 -32.733C142.822 -41.304 149.786 -48.001 158.09 -48.001C162.911 -48.001 166.929 -45.858 169.608 -42.6439999999999H276.483C279.161 -45.857 283.447 -48 288 -48S296.839 -45.857 299.5180000000001 -42.643H406.6610000000001C409.3390000000001 -45.589 413.3570000000001 -47.464 417.6430000000001 -47.464C426.2140000000001 -47.464 432.9110000000001 -40.5 432.9110000000001 -32.196C432.9110000000001 -30.589 432.6440000000001 -29.25 432.1080000000001 -27.911L483.8050000000001 62.357C490.7690000000001 63.696 495.859 69.857 495.859 77.0889999999999C495.859 78.696 495.5910000000001 80.3029999999999 495.0550000000001 81.91L549.9660000000001 177.268C556.9300000000002 178.607 562.2880000000001 184.768 562.2880000000001 192.268C562.2860000000002 199.5 557.1960000000001 205.661 550.5000000000001 207zM153.535 -2.732L109.875 73.071H153.535V-2.732zM153.535 81.107H109.875C109.607 82.178 109.071 83.249 108.536 84.321L153.535 131.731V81.107zM153.535 143.518L103.178 90.2139999999999C101.839 90.7499999999999 100.499 91.5539999999999 99.16 91.821L43.447 188.25C43.982 189.589 43.982 190.929 43.982 192.268S43.982 194.678 43.714 195.75L95.679 285.75C98.358 286.0180000000001 101.036 286.822 103.447 288.429L153.536 236.464V143.518zM153.535 245.84L107.732 293.25C109.071 295.393 109.875 298.071 109.875 301.017C109.875 301.285 109.607 301.821 109.607 302.089L153.535 317.893V245.84zM153.535 326.465L109.875 310.661L153.535 386.197V326.465zM480.054 287.357L480.8579999999999 286.018L445.5 118.875L381.75 186.107L479.786 287.625L480.054 287.357zM291.75 92.893L303.2680000000001 81.107H280.5L291.75 92.893zM291.4820000000001 104.143L208.179 189.589L287.7320000000001 273.964L370.7680000000001 186.375L291.4820000000001 104.1429999999999zM296.8390000000001 98.25L376.1250000000001 180.482L443.6250000000001 109.232L437.7330000000001 81.107H313.714L296.839 98.25zM410.411 403.607C411.4820000000001 403.0710000000001 412.553 402.535 413.8930000000001 402.267L471.75 301.553V301.017C471.75 298.0710000000001 472.553 295.3930000000001 473.893 293.25L376.393 192L293.358 279.589L410.411 403.607zM401.304 405.75L287.7320000000001 285.482L230.6780000000001 345.75L397.0170000000001 405.75H401.3040000000001zM277.821 405.75C280.499 403.072 283.981 401.4650000000001 288 401.4650000000001S295.5 403.072 298.1789999999999 405.75H373.1789999999999L224.786 352.179L173.893 405.75H277.8210000000001zM161.572 400.125L162.643 402.267A33.834 33.834 0 0 1 165.322 403.0710000000001L216.483 349.231L161.572 329.41V400.125zM161.572 320.839L222.375 342.803L282.107 279.589L202.554 195.482L161.572 237.535V320.839zM161.572 228.161L198 190.393L161.572 152.089V228.161zM161.572 140.303L203.625 184.767L286.393 98.785L269.25 81.107H161.572V140.303zM168.536 -21.75C166.929 -20.143 165.054 -19.072 162.643 -18.268L161.572 -16.6609999999999V73.071H261.482L169.875 -21.75H168.536zM298.447 -21.75C295.7680000000001 -19.34 292.019 -17.465 288 -17.465S280.233 -19.34 277.553 -21.75H181.124L272.731 73.071H311.035L402.642 -21.75H298.447zM418.447 -9.964L414.161 -17.464C412.822 -17.732 411.751 -18.267 410.679 -18.803L321.483 73.072H435.8589999999999L418.447 -9.964zM431.303 12.268L444.161 73.071H466.125L431.303 12.268zM466.125 81.107H445.7680000000001L450.3210000000001 102.2670000000001L467.4640000000001 84.0530000000001C466.929 83.2500000000001 466.393 82.179 466.1250000000001 81.107zM532.2860000000001 188.518L476.8390000000001 91.821C475.5000000000001 91.286 474.1600000000001 90.75 472.8210000000001 89.947L452.1960000000001 111.911L486.7500000000001 275.839L532.5530000000001 196.553C532.2860000000001 195.214 531.7500000000001 193.875 531.7500000000001 192.268C531.7500000000001 190.929 532.0180000000001 189.857 532.2860000000001 188.518z" /> + <glyph glyph-name="contao" + unicode="" + horiz-adv-x="512" d=" M45.4 143C59.8 75.9 71.8 14 113.6 -32H34C15.3 -32 0 -16.8 0 2V382C0 400.7 15.2 416 34 416H91.7C77.9 403.4 65.6 388.8 54.8 372.4C9.4 302.4 27.8 225.6 45.4 143zM478 416H387.8C409.2 394.6 427 366.5 440.5 331.9L303.4 302.6C288.5 331.6 265.6 355.9 220.8 346.5C196.2 341.2 179.8 327.2 172.5 311.9C163.7 293.2000000000001 159.3 272.1 180.7 171.6C201.8 71.4 214.4 53.9 230.2 40.4C243.1 29.3 263.6 23.4 288.5 28.7C333 38.1 344.2 69.4 345.9 101.9L483.3 131.5000000000001C486.4999999999999 60.0000000000001 464.6 6.3000000000001 425.9 -32.0999999999999H478C496.7 -32.0999999999999 512 -16.8999999999999 512 1.9000000000001V382C512 400.8 496.8 416 478 416z" /> + <glyph glyph-name="cpanel" + unicode="" + horiz-adv-x="640" d=" M52.9 234.3H92.9L86.7 210.7C84.8 204.2 79.3 199.8 72.4 199.8H53.8C28.9 199.8 29.1 162.4 53.8 162.4H65.1C69.3 162.4 72.7 158.5000000000001 71.5 154.1L64.4 128H52C18.5 128 -7 159.4 1.7 193.2C9 220.2 30 234.3 52.9 234.3M73.1 128L108 258.1C109.8 264.5 115.2 269 122.3 269H159.3C183.4 269 204.7 252.6 210.3 227.8C216.9 198.7 195.8 162.5 158.6 162.5H126.6L133 186.3C134.8000000000001 192.5 140.3000000000001 197.1 147.3000000000001 197.1H157.6000000000001C170.0000000000001 197.1 178.4000000000001 208.8 175.9000000000001 219.7C173.8000000000001 228.9 166.0000000000001 234.5000000000001 157.6000000000001 234.5000000000001H137.8000000000001L112 138.8C110.1 132.6 104.6 128.1 97.8 128.1L73.1 128M293.7 197.4C294 198.4 295.6 202.7 291.6 202.7H234.1C224.4 202.7 217.5 211.6 219.9 221.2L223.4 234.6H301.3C320.1 234.6 334.6 217 329.8 197.8L315.8 146C313 135.4 303.6 128.2 292.4 128.2L234.9 128.4C192 128.4 196.4 192.2 235.6 192.2H284L280.5 179C278.6 172.8 273.1 168.2 266.3 168.2H244.7C239.4 168.2 239.4 160.3 244.7 160.3H279.6C284.2000000000001 160.3 284.7000000000001 164.2 285.1 165.6L293.7000000000001 197.4M396.8000000000001 234.3000000000001C431.2000000000001 234.3000000000001 456.1000000000001 202.0000000000001 447.1000000000001 168.9L438.3000000000001 135.8C437.1000000000001 130.9 432.6000000000001 128 428.0000000000001 128H408.9000000000001C404.4000000000001 128 401.3 132 402.5000000000001 136.3L413.1000000000001 176.3C416.4000000000001 187.9 407.5000000000001 199.7 395.0000000000001 199.7H375.2000000000001L358.0000000000001 135.7000000000001C356.8000000000001 130.9 352.4000000000001 127.9 347.6000000000001 127.9H328.7000000000001C324.5000000000001 127.9 321.1000000000001 131.8 322.3000000000002 136.2000000000001L348.5000000000001 234.2000000000001H396.8000000000002M498 196.4L490 166.4C489.1 163.1 491.5 159.7 495.1 159.7H568.4L562.6999999999999 138.7C560.8 132.5 555.3 128 548.4999999999999 128H481.7999999999999C461.7999999999999 128 448.4999999999999 147 453.4999999999999 164.7L464.2999999999999 204.7C469.0999999999999 222.3 484.9999999999999 234.3 502.8999999999999 234.3H550.1999999999999C569.1999999999999 234.3 583.4 216.6 578.4999999999999 197.5L575.2999999999998 185.5C572.3999999999999 174.5 562.5999999999998 167.9 552.0999999999998 167.9H498.6999999999998L502.1999999999998 180.9C503.7999999999998 187.1 509.3999999999998 191.7 516.3999999999999 191.7H538C540 191.7 541.3 192.7 541.9 194.7L542.6 197.3C543.3000000000001 200 541.3000000000001 202.4 538.7 202.4H505.8000000000001C501.7 202.4 498.9000000000001 200.3 498.0000000000001 196.4zM568.2 128L603.8000000000001 261.1C605.0000000000001 265.8 609.3000000000001 269 614.2 269H633.1C637.6 269 640.8000000000001 265 639.6 260.7L613.1 162.5C608 141.8 588.9 128 568.2 128" /> + <glyph glyph-name="creative-commons-by" + unicode="" + horiz-adv-x="496" d=" M314.9 253.6V152.2H286.6V31.7H209.5V152.1H181.2V253.6C181.2 258 182.8 261.8 185.8 264.9C188.9 268 192.7 269.6 197.1 269.6H299C303.1 269.6 306.8 268 310.1 264.9C313.2000000000001 261.7000000000001 314.9000000000001 258 314.9000000000001 253.6zM213.4 317.3C213.4 340.6 224.9 352.3 247.9 352.3S282.4 340.6 282.4 317.3C282.4 294.3 270.9 282.8 247.9 282.8S213.4 294.3 213.4 317.3zM247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3z" /> + <glyph glyph-name="creative-commons-nc-eu" + unicode="" + horiz-adv-x="496" d=" M247.7 440C103.6 440 0 323.2 0 192C0 55.7 111.7 -56 247.7 -56C377.9 -56 496 44.9 496 192C496 331 388.4 440 247.7 440zM248.3 -10.7C136.3 -10.7 44.7 81.8 44.7 192C44.7 215.2 48.4 237.2 55.6 258L121.3 228.9H116.6V199.4H139.9C139.9 193.2 139.5 196.2 139.5 179.9H116.7V150.4H143.7C155.1 83.4 210.9 49.1 268.3 49.1C294.9 49.1 318.9 56.9999999999999 333.1 64.9L323.1 111C314.4 106.4 294.9 100.2 275.8 100.2C247.6 100.2 217.7 111.1 208.5 150.4H298.8L427.1 93.6C425.6 91.4999999999999 370.9 -10.7 248.3 -10.7zM231.6 179.9L231.1 180.3L232 179.9H231.6zM308.8 199.4H312.5V228.9H242.2L213.6 241.5C216.1 247 219 252 222.4 255.8C235.3 271.6 253.5 278.2 273.5 278.2C291.8 278.2 308.8 272.8 319.6 268.2L331.2000000000001 315.5C316.2000000000001 322.1 294.2000000000001 327.9 268.9000000000001 327.9C229.9000000000001 327.9 196.7000000000001 312.1 173 285.6C167.7 279.5 163.2 272.7000000000001 159.1 265.5L77.5 301.6C142.1 398.4000000000001 235.2 395.2000000000001 248.2 395.2000000000001C361.2000000000001 395.2000000000001 451.2 305 451.2 191.8C451.2 173.1 449.1 155.5 444.9000000000001 138.9L308.8000000000001 199.4z" /> + <glyph glyph-name="creative-commons-nc-jp" + unicode="" + horiz-adv-x="496" d=" M247.7 440C103.6 440 0 323.2 0 192C0 55.6 111.8 -56 247.7 -56C377.9 -56 496 44.8 496 192C496 330.8 388.5 440 247.7 440zM248.3 -10.7C136.3 -10.7 44.7 81.8 44.7 192C44.7 213.1 47.7 233.2 53.7 252.3L180.7 195.8H152.8V157.2H210.9L216.6 145.4V126.7H152.8V88H216.6V32H278.3V88H342.5V123.7L423.5 87.6C422 85.4 366.3999999999999 -10.7 248.3 -10.7zM335.9 126.6H278.3V145.3L281.2 150.9L335.8999999999999 126.6zM342.4 178V195.8H303.8L366.8 311.8H301L257.6 215.8L234.6 226L195 311.7H129.2000000000001L156.5000000000001 260.7L74.6000000000001 297.2C102.4000000000001 341.3 157.2000000000001 395.3 248.3000000000001 395.3C361.1 395.3 451.3000000000001 305.3 451.3000000000001 191.9C451.3000000000001 170.9 448.6000000000001 151.3 443.4000000000001 132.9L342.4000000000001 178z" /> + <glyph glyph-name="creative-commons-nc" + unicode="" + horiz-adv-x="496" d=" M247.6 440C387.4 440 496 332.1 496 192C496 44.8 377.5 -56 247.6 -56C113.1 -56 0 54.8 0 192C0 324.9 104.7 440 247.6 440zM55.8 258.9C48.4 238.5 44.7 216.2 44.7 192C44.7 81.1 136.8 -10.4 248.4 -10.4C370.8 -10.4 425.6 91.4 426.9 93.7000000000001L333.5 135.3000000000001C325.8 98.2000000000001 292.3 82.3000000000001 265.3 79.9000000000001V41.8000000000001H236.5V80C209 80.3 183.9 90.2 161.2 109.7L195.3 144.2C227 114.8 281.7 112.4 281.7 146.4C281.7 152.6 279.5 157.6 275.1 161.5C260.9 167.5 273.3 161.6 55.8 258.9zM248.4 395.7C210 395.7 136 387 77.9 302.7L172.7 260.2C182.7 291.5 213.1 303.1 236.5 304.5V342.6H265.3V304.5C288 303.3 308.7 295.6 327.3 281.5L295 248.3C252.3 278.2000000000001 211.5 256.3 225 237.2C278.4 213.1 268.8 217.4 318 195.6L445.1 138.9C449.2000000000001 156.3 451.3 174.0000000000001 451.3 192C451.3 249.0000000000001 431.5 297 392 335.9000000000001C352.7 375.8000000000001 304.8 395.7000000000001 248.4 395.7000000000001z" /> + <glyph glyph-name="creative-commons-nd" + unicode="" + horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM342.4 251V208.5H162.1V251H342.4zM342.4 171.2V128.7H162.1V171.2H342.4z" /> + <glyph glyph-name="creative-commons-pd-alt" + unicode="" + horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM135.5 124.7V262H203.7C237.4 262 254.2 246.5 254.2 215.5C254.2 206.5 251.2 169 197.1 169H170.1V124.7H135.5zM169.6 236.3V194.7H198.8C226.7 194.7 228.8 236.3 197.9 236.3H169.6zM263.5 124.7V262H316.7C338.1 262 386.7 256.8 386.7 193.4C386.7 129.9 338.1 124.8 316.7 124.8H263.5zM297.6 233.2V153.5H317.5C341.5 153.5 352 168.8 352 193.4C352 235.4 320.8 233.3 317 233.3L297.6 233.2z" /> + <glyph glyph-name="creative-commons-pd" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 328.9 0 192C0 55 111 -56 248 -56S496 55 496 192C496 328.9 385 440 248 440zM248 -9.5C108.8 -9.5 12.2 128.5 57.8 258.4L136.6 223.3C134.5 212.8 133.3 201.8 133.3 190.4C133.3 91.4 207.2 63.5 253.7 63.5C276.6 63.5 307.2000000000001 70.2 333.1 93L297 136.9C291.5 130.6 279.4 120.2 260.7 120.2C222.9 120.2 207 160.1 206.8 192.1C437.2 89.5 423.3 95.6 424.7 95.3C390.4 32.9 324.1 -9.5 248 -9.5zM442.2 140.5L218.2 240.5C237 274.5 273.1 271.2 292.9 251.5L333.3 293.1C306.2 316.4 275.3 320.6 255.2 320.6C207.8 320.6 174.3 300.1 154.5 269L79.5999999999999 302.4C115.6999999999999 357.3 177.6999999999999 393.6 248.1 393.6C359.2 393.6 449.5999999999999 303.2 449.5999999999999 192.1C449.5999999999999 174.1 447.2 156.7000000000001 442.7999999999999 140.1C442.4999999999999 140.2000000000001 442.3999999999999 140.3 442.1999999999999 140.5z" /> + <glyph glyph-name="creative-commons-remix" + unicode="" + horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM410.1 187.6L415 185.4V115.4C407.8 111.8 351.6 87.9 347.7 86.6C341.2 88.4 234 133.4 210.4 142.8L146.2 116.2L82.9 143.7V207.5L142.2 232.3C141.5 233 141.8 227.3 141.8 302.7000000000001L209.1 332.4000000000001L361 269.5V207.9L410.1 187.6zM339.7000000000001 106.1V149.9H339.3000000000001V151.7000000000001L225.5000000000001 198.2000000000001V153L339.3000000000001 106.1V106.5L339.7000000000001 106.1zM347.2000000000001 163.7000000000001L387.1 180.1L350.3 195.6L311.3 179.2000000000001L347.2 163.7000000000001zM399.5000000000001 125.6V168.6L355.2 150V106.6L399.5 125.6z" /> + <glyph glyph-name="creative-commons-sa" + unicode="" + horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM137.7 227C150.7 310.9 218.2 322.7 246.6 322.7C346.4 322.7 374.1 240.2 374.1 188.5C374.1 124.9 333.1 55.6 245.2 55.6C206.3 55.6 146.1 75.6 135.8 152.6H198.3C199.8 122.5 217.9 107.4 252.8 107.4C276.1 107.4 310.8 125.6 310.8 190.2000000000001C310.8 272.7000000000001 261.7 270.8000000000001 254.1 270.8000000000001C221 270.8000000000001 202.4 256.2000000000001 198.3 227.0000000000001H216.5L167.3 177.8000000000001L118.3 227.0000000000001H137.7z" /> + <glyph glyph-name="creative-commons-sampling-plus" + unicode="" + horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM355.4 189.7C350.7 189.7 346.4 186.9 344.7 182.5L340.7 173L329.7 265.8C328 279.7000000000001 307.7 279.2000000000001 306.6 265.4L302.3 214L297.1 282.8C296 297.1 275 297 273.9 282.8L270.4 237.9L264.5 332.2C263.6 346.7 242.2 346.6 241.3 332.2L236.2 248.5L231.9 314.8C231 329.2000000000001 209.7 329.2000000000001 208.7 314.8L203.4 234.6L199.3 291.6C198.2 305.9000000000001 177.3 305.9000000000001 176.1 291.8L168.4 202L166.6 214.2C164.9 225.6 149.5 227.8 144.6 217.5L131.4 189.8H87.5V166.6H138.8C143.2 166.6 147.2 169.1 149.2 173L159.9 99.9C161.9 86.4 181.8 86.9 183 100.6L186.8 144.2L192.5 65.9C193.6 51.5 214.8 51.7 215.7 66L220.3 136.4L225.1 63.1C226 48.7 247.4 48.7 248.3 63.2L253.2 143.7L257.7 71.9C258.6 57.6 279.8 57.4 280.9 71.7L285.5 130.3L290.4 65.9C291.5 51.6 312.4 51.7 313.5 65.8L320.3 148.8L323 126.5C324.4 114.6999999999999 340.7 112.3999999999999 345.3 123.3999999999999L363.3 166.7999999999999H413.8V190L355.4000000000001 189.7zM277.4 184.5H255.5V162.6C255.5 158.5 252.2 155.1 248 155.1C243.9 155.1 240.5 158.4 240.5 162.6V184.5H218.6C214.5 184.5 211.1 187.8 211.1 192C211.1 196.1 214.5 199.5 218.6 199.5H240.5V221.4C240.5 225.5 243.9 228.9 248 228.9S255.5 225.6 255.5 221.4V199.5H277.4C281.5 199.5 284.9 196.2 284.9 192C284.9 187.9 281.5 184.5 277.4 184.5z" /> + <glyph glyph-name="creative-commons-sampling" + unicode="" + horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM252 342.1C254.8 342.4 263.5 341.1 263.5 330.6L270.1 223.4L275 282.7C275 288.7 279.7 293.3 285.6 293.3C291.5 293.3 296.2000000000001 288.6 296.2000000000001 282.7C296.2000000000001 280.2 295.7000000000001 288.4 301.9000000000001 201.2L307.7000000000001 265.4C308.0000000000001 268.3 310.6 274.7 317.9000000000001 274.7C321.7000000000001 274.7 327.8 272.4 328.5000000000001 265.8L340.0000000000001 169.3L345.3000000000001 182.1C347.1000000000001 186.5 350.5000000000001 188.7 355.5000000000001 188.7H413.5000000000001V167.4H362.6000000000001L344.4000000000001 123.1C340.5000000000001 113.2 324.9000000000001 114 323.6000000000001 126.2L319.6000000000001 158.1L312.1000000000001 65.5C311.8000000000001 62.5 309.1000000000001 56.2 301.9000000000001 56.2C298.9000000000001 56.2 292.1000000000001 58.3 291.3000000000001 65.5C291.3000000000001 67.4 291.9000000000001 59.7 285.1000000000001 143.4L279.8000000000001 71.2C278.7000000000001 66.4 275.0000000000001 61.9 269.2000000000001 61.9C266.3000000000001 61.9 259.4000000000001 63.9 258.6 71.2C258.6 73.1 259.1 64.5 252.8 158.9L247 64.1C247 57.8 243.4 51.7 236.4 51.7C231.2 51.7 225.8 55.8 225.8 63.7L220 151.4C214.2 58.9 214.7 67.4 214.7 65.5C213.6 60.7 209.9 56.2 204.1 56.2C201.1 56.2 194.3 58.3 193.5 65.5C193.5 66.2 193.1 66.6 193.1 68.1L186.9 156.7000000000001L182 100C181.3 93.5 175.3 90.7 171.4 90.7C165.6 90.7 161.8 94.8 160.8 99.6L149.7 176C147.7 172 146.2 167.6 138.6 167.6H87.2V188.9H132L145.7 216.8000000000001C150.1 226.7000000000001 163.9 224 165.6 214.1000000000001L168.7 193.7000000000001L177.1 291.6C177.1 297.6 181.9 302.2000000000001 187.7 302.2000000000001C188.2 302.2000000000001 198.3 302.4000000000001 198.3 289.8000000000001L203.2 220.7000000000001L209.8 313.3000000000001C209.8 323.4000000000001 219.3 323.9000000000001 220 323.9000000000001C220.6 323.9000000000001 230.6 323.2000000000001 230.6 313.3000000000001L235.9 232.7000000000001L242.1 330.6C242.2 331.7000000000001 241.5 340.9000000000001 252 342.1z" /> + <glyph glyph-name="creative-commons-share" + unicode="" + horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM349.4 262.9C357.2 262.9 363.1 256.8 363.1 249.2V66.7C363.1 59 357 53 349.4 53H214.3C206.6 53 200.6 59 200.6 66.7V120.7H146.6C138.8 120.7 132.9 126.7 132.9 134.4V316.9C132.9 325.1 139.5 329.6 145.3000000000001 330.6H281.7000000000001C289.4000000000001 330.6 295.4000000000001 324.6 295.4000000000001 316.9V262.9H349.4000000000001zM159.9 147.7H200.6V249.1C200.6 256.5 206.4 261.7 212.6 262.8H268.4000000000001V303.1H159.9V147.6999999999999zM336.1 235.8H227.6V80.4H336.1V235.8z" /> + <glyph glyph-name="creative-commons" + unicode="" + horiz-adv-x="496" d=" M245.83 233.13L212.61 215.85C203.18 235.43 187.37 235.78 185.15 235.78C163.02 235.78 151.93 221.17 151.93 191.94C151.93 168.37 161.14 148.1 185.15 148.1C199.62 148.1 209.8 155.19 215.72 169.36L246.27 153.86C240.1 142.35 220.58 114.88 181.17 114.88C158.57 114.88 107.21 125.2 107.21 191.93C107.21 250.62 150.21 268.99 179.84 268.99C210.56 269 232.54 257.04 245.8300000000001 233.13zM388.88 233.13L356.1 215.85C346.6 235.62 330.38 235.78 328.2000000000001 235.78C306.0600000000001 235.78 294.98 221.17 294.98 191.94C294.98 168.39 304.2100000000001 148.1 328.2000000000001 148.1C342.6500000000001 148.1 352.85 155.19 358.7400000000001 169.36L389.7400000000001 153.86C387.6400000000001 150.11 368.3500000000001 114.88 324.6500000000001 114.88C301.9600000000001 114.88 250.6900000000001 124.75 250.6900000000001 191.93C250.6900000000001 250.6 293.6600000000001 268.99 323.3200000000001 268.99C354.0300000000001 269 375.9000000000001 257.04 388.8800000000001 233.13zM247.56 439.95C104.74 439.95 0 324.89 0 191.95C0 53.46 113.6 -56.05 247.56 -56.05C377.49 -56.05 496 44.82 496 191.95C496 329.82 389.38 439.95 247.56 439.95zM248.43 -10.86C135.89 -10.86 44.73 82.18 44.73 191.95C44.73 297.37 130.16 395.2200000000001 248.45 395.2200000000001C360.98 395.2200000000001 451.27 305.76 451.27 191.96C451.26 70.27 351.59 -10.86 248.43 -10.86z" /> + <glyph glyph-name="css3-alt" + unicode="" + horiz-adv-x="384" d=" M0 416L34.9 20.2L192 -32L349.1 20.2L384 416H0zM313.1 336L308.3 288.7L193 239.4L192.7 239.3H304.2L291.4 92.7000000000001L193.2 64.0000000000001L94.4 93.2000000000001L88 167.1H136.9L140.1 128.8L192.7 115.5L247.4 130.9L251.1 192.5L84.8 193V193.1L84.6 193L81 239.3L193.1 286L199.6 288.7H76.7L70.9 336H313.1z" /> + <glyph glyph-name="css3" + unicode="" + horiz-adv-x="512" d=" M480 416L416 48L192.7 -32L0 48L19.6 142.8H101.6L93.6 102.2L210 57.8L344.1 102.2L362.9000000000001 199.3H29.5L45.5 281.3H379.2L389.7 334H56.3L72.6 416H480z" /> + <glyph glyph-name="cuttlefish" + unicode="" + horiz-adv-x="440" d=" M344 142.5C326.5 110.9 286.6 88 248 88C191.4 88 144 135.4 144 192S191.4 296 248 296C286.6 296 326.5 273.1 344 241.5C357.7 292.4 385.7 334.8 431 359.3C385.7 408.9 320.5 440 248 440C111 440 0 329 0 192S111 -56 248 -56C320.5 -56 385.7 -24.9 431 24.7C385.7 49.2 357.7 91.6 344 142.5z" /> + <glyph glyph-name="d-and-d" + unicode="" + horiz-adv-x="576" d=" M82.5 349.1C81.9 366.3 84.5 382.9 95.2 397.3C95.5 389.9 96.4 382.8 99.4 375.7C105.3 403.2 119.1 425 141.7 441.2C139.8 435.3 138.2 429.4 138.7 423.5C147.4 430.9 157.5 441.3 183.1 446.2C197.8 449 212.8 448.2 225.2 445.2C263.7 435.9 286.2 410.9 294.9 372.9C300.2 349.8 295.6 327.9 286.6 306.5C281.4 294.1 274.6 282.1 265.9 271.4C263.9 273.3 262 275.2000000000001 260.1 277C217.3 317.8 233.3 302.2 222.7 314.4C221.6 315.6 221.7 316.6 222.6 318C230.9 331.5 234.4 346.2 232.6 362C231.5 371.8 228.3 380.9 221.3 388.2C206.8 403.5 182.1 403.2 167.8 387.6C156.4 375.1 153.7 360.2 156.9 344C157.0999999999999 342.7 157.3 341.3 156.9 340.1C153.5 326.4 152.3 312.5 154.4 298.5C154.5 298 154.5 297.4 154.5 296.9C154.5 296.6 154.4 296.4 154.3 295.8C132.5 306.8 118.3 324.1 111.1 348C102.8 330.2000000000001 100 312.5 104.5 293.9C88.9 309.1 83.2 328.2 82.5 349.1zM552.1 225.9C540.5 237.5 527.1 246.3 512 252.5C499.2 257.7 486 260.4 472.1 259.6C462.1 259 452.5 256.5 443.1 253.2C440.6 252.3 438 251.6 435.4000000000001 251C430.5000000000001 249.8 428.1 254.1 430.7000000000001 257.8C433.9000000000001 262.4 434.1 262 445.7000000000001 269.8C446.3000000000001 270.2 446.9000000000001 270.6 447.9000000000001 271.3H445.4000000000001C444.8 271.3 444.2000000000001 271.1 443.5000000000001 271C424.2000000000001 267.7 412.8000000000001 255.5 394.6000000000001 241.4C384.2000000000001 233.3 380.8000000000001 237.6 382.6000000000001 241.9C384.0000000000001 245.4 385.9000000000001 248.6 387.7000000000001 251.9C388.7000000000001 253.7 390.0000000000001 255.3 391.2000000000001 257C391.0000000000001 257.2 390.7000000000001 257.3 390.5000000000001 257.5C363.5000000000001 239.2 343.8000000000002 215.1 332.8000000000002 184.2C333.1000000000002 183.9 333.5000000000001 183.6 333.8000000000002 183.3C334.1000000000002 183.9 334.3000000000002 184.5 334.7000000000001 185C345.1000000000001 197.1 357.5000000000001 206.8 371.3000000000002 214.8C389.5000000000001 225.4 408.8000000000002 233.1 430.0000000000001 235C434.3000000000002 235.4 438.7000000000001 235.1 443.1000000000002 235.1C441.3000000000002 234.4 439.6000000000002 234.2 437.8000000000002 234C419.3000000000002 231.6 402.3000000000002 225 386.3000000000002 215.5C356.1000000000002 197.6 331.8000000000002 173.3 311.2000000000002 145.1C310.9000000000002 144.7000000000001 310.8000000000002 144.2000000000001 310.5000000000002 143.8C325.0000000000002 138.5 334.5000000000002 126.5 346.6000000000002 118.2C346.8000000000002 118.3 346.9000000000002 118.4 347.0000000000002 118.6L348.2000000000002 121.3C360.4000000000002 148.1999999999999 375.2000000000002 173.6 394.9000000000002 195.8C411.6000000000002 214.6 432.9000000000002 221.1 457.4000000000001 215.8C463.3000000000001 214.5 468.8000000000001 211.4 474.6000000000001 209C476.9000000000001 210.4 479.7000000000002 212.1999999999999 482.6000000000001 213.6999999999999C491.0000000000001 218 500.0000000000001 220.6999999999999 509.3000000000001 222.6999999999999C524.0000000000001 225.8 538.8000000000002 227.6 553.8000000000002 224V224.5C553.3000000000002 224.9 552.6000000000001 225.3 552.1000000000001 225.9zM316.7 50.4C277.3 83.4 293.9 69.9 274 86C273.2 85.1 274 86.2 272.1 83C260.9000000000001 63.9 246.6 47.7 228.1 35.4C217.8 28.6 206.6 23.6 194 23.6C172.4 23.6 155.8 33.1 144.6 51.4C132.6 70.9 131.3 92.1 136.4 114C144.2000000000001 147.8 166.5 169.2 175 178.3C156.3000000000001 184.5 142 176.6 128.6 164.4C129.4 178.3 132.9 190.6 140.4 201.7000000000001C116.1 191.1 94.5 176.7000000000001 75.6 157.8000000000001C75.3 163.6000000000001 81 201.5000000000001 81.2 202.5000000000001C81.5 205.2000000000001 80.6 207.8000000000001 78.2 209.9000000000001C54 185.2000000000001 33.7 158.1000000000001 22.1 125.3000000000001C29.5 131.2000000000001 37 136.7000000000001 45.7 141.5000000000001C37.4 119.2000000000001 26.1 88.7000000000001 37.9 40.4000000000001C42.5 21.4000000000001 49.8 3.6000000000001 62 -11.8999999999999C64.9 -15.5999999999999 68.3 -18.7999999999999 71.5 -22.1999999999999C71.7 -21.9999999999999 71.9 -21.8999999999999 72.1 -21.6999999999999C70.7 -14.6999999999999 69.9 -7.5999999999999 70.6 0.2C72.8 -2.9999999999999 74.5 -5.8 76.5 -8.4C89.1 -24.4 105.2 -35.8 123.7 -44C148.7000000000001 -55.3 174.8000000000001 -57.3 201.6 -52.6C256.5 -42.9 292.3 -4 317.6 46.2C318.6 48 318.2000000000001 49.1 316.7000000000001 50.4zM488.7 96.8C479.2 99.9 466.5 100.9999999999999 460 99.6999999999999C469.9 95.6999999999999 474.1 93.0999999999999 478.8 87.6999999999999C491.4 73.3 489.2 52.9999999999999 473.4 42.0999999999999C461.7 33.9999999999999 448.5000000000001 31.5999999999999 434.5000000000001 32.9999999999999C433.3000000000001 33.0999999999999 432.2000000000001 33.3999999999999 431.5000000000001 33.5999999999999C434.3000000000001 37.2999999999999 437.5000000000001 40.5999999999999 439.6000000000001 44.3999999999999C449.0000000000001 61.1999999999999 445.0000000000001 86.4999999999999 430.9000000000001 100.4999999999999C428.8000000000001 102.6 426.3000000000001 104.3999999999999 423.9000000000001 106.3999999999999C423.6000000000001 105.0999999999999 423.8000000000001 104.2999999999999 424.0000000000001 103.5999999999999C428.2000000000001 86.9999999999999 415.9000000000001 71.1999999999999 399.2000000000001 71.7999999999999C391.6000000000001 72.0999999999999 385.3000000000002 75.5999999999999 379.6000000000001 80.2999999999999C360.1000000000001 96.3999999999999 340.5000000000001 112.3999999999999 321.1000000000001 128.5999999999999C315.2000000000001 133.4999999999999 308.6000000000001 136.6999999999999 301.0000000000001 137.2999999999999C296.4000000000001 137.6999999999999 291.7000000000001 137.8999999999999 287.1000000000001 138.1999999999999C281.2000000000001 138.5999999999999 278.3000000000001 140.9999999999999 276.7000000000001 146.5999999999999C275.8000000000002 149.9999999999998 275.2000000000001 153.3999999999999 274.5000000000001 156.7999999999999C273.0000000000001 164.8999999999999 268.3000000000002 169.7999999999999 260.2000000000001 170.9999999999998C255.8000000000001 171.6999999999998 251.3000000000001 171.9999999999998 246.9000000000001 172.4999999999998C233.9000000000001 173.8999999999998 227.1000000000001 179.8999999999998 224.3000000000001 192.7999999999999C219.3000000000001 181.7999999999999 222.7000000000001 170.3999999999999 231.6000000000001 162.8999999999999C236.1000000000001 159.0999999999999 240.9000000000001 155.5999999999999 245.4000000000001 151.6999999999999C250.0000000000001 147.8999999999999 252.8000000000002 142.9999999999999 253.3000000000002 136.8999999999999C253.7000000000002 132.1999999999999 254.1000000000002 127.3999999999999 255.1000000000002 122.7999999999999C257.3000000000002 112.1999999999998 264.0000000000001 104.3999999999999 272.1000000000002 97.6999999999998C288.6000000000002 83.9999999999998 305.1000000000002 70.3999999999998 321.6000000000002 56.5999999999998C339.5000000000001 41.5999999999998 335.5000000000001 23.7999999999998 334.6000000000002 0.5999999999998C333.7000000000002 -22.3000000000002 346.8000000000002 -42.3000000000002 368.1000000000002 -50.6000000000002C369.1000000000002 -51.0000000000002 370.1000000000002 -51.2000000000002 371.7000000000002 -51.7000000000002C356.0000000000002 -33.5000000000002 361.6000000000002 -7.6000000000002 372.4000000000002 0.5999999999998C372.7000000000002 -1.6000000000002 372.8000000000002 -3.7000000000002 373.3000000000002 -5.8000000000002C382.7000000000001 -49.9000000000002 418.7000000000001 -70.0000000000002 458.3000000000001 -62.7000000000002C474.3000000000001 -59.8000000000002 488.9000000000001 -53.8000000000002 501.2000000000001 -42.9000000000001C503.2000000000001 -41.1000000000001 504.9000000000001 -38.8000000000001 507.1000000000001 -36.4000000000001C487.8000000000001 -41.0000000000002 471.3000000000001 -36.5000000000002 456.2000000000001 -25.8000000000001C456.9000000000001 -25.5000000000001 457.5000000000001 -25.5000000000001 458.1000000000001 -25.5000000000001C479.4000000000001 -27.3000000000001 498.7000000000001 -22.1000000000001 515.1000000000001 -8.1000000000001C534.6000000000001 8.4999999999999 541.7000000000002 34.7999999999998 532.5000000000001 57.8999999999999C524.2000000000002 77.9999999999999 508.9000000000001 90.1999999999999 488.7000000000001 96.7999999999998zM99.4 268.7C94.1 277.9 86.2 284.3 77.3 290C91 290.5 103.9 289.8 116.9 286.3C109.9 298.5 108.4 311 111.9 325C117.2 313.1 125.6 304.9 135.5 298.2000000000001C155.2 285 171.2 278.6 182.2 268C185.6 264.7000000000001 188.5 260.9000000000001 191.8 257.1C191 259.2000000000001 190.4 261.2000000000001 189.6 263.1C184.6 273.7000000000001 176.6 281.7000000000001 167 288.1C165.2 289.3 164.2 290.6 163.6 292.6C160.3 305.1 160.6 317.7000000000001 162.9 330.2000000000001C163.9 335.7000000000001 165.7 341.1 167.4 346.5C168.2 348.9000000000001 169.7 351.1 171.4 353.1C172 346.2 171.4 327.6 191 307.1C201.8 295.8 213.4 285.2000000000001 224.9 274.4000000000001C233.9 265.9000000000001 243.2 257.7000000000001 250.4 247.6C251.5 246.0000000000001 252.6 244.3 254.2 242.9000000000001C249.2 255.9000000000001 240.0000000000001 267 230.0000000000001 276.7000000000001C220.4 286.0000000000001 210.6 295.1 200.8000000000001 304.1C197.5 307.1 196.2000000000001 310.8000000000001 195.7000000000001 315.0000000000001C194.5000000000001 325.4000000000001 195.7000000000001 335.6 200.0000000000001 345.2000000000001C200.5000000000001 346.2000000000001 201.1000000000001 347.2000000000001 201.9000000000001 348.5000000000001C202.4000000000001 344.3000000000001 202.5000000000001 340.6 203.3000000000001 336.9000000000001C208.1000000000001 313.8000000000001 223.7000000000001 300.6000000000001 252.6000000000001 273.4000000000001C262.6000000000001 264.0000000000001 271.9000000000001 254.2000000000001 278.2000000000001 241.8000000000001C283.0000000000001 232.5000000000001 285.5000000000001 222.8000000000001 283.9000000000001 212.2000000000001C283.8000000000001 211.6000000000001 284.4000000000001 210.5000000000001 285.0000000000001 210.2000000000001C291.2000000000001 207.6000000000001 295.0000000000001 203.3000000000001 294.7000000000001 195.9000000000001C302.4000000000001 198.5000000000001 307.2000000000001 203.9000000000001 311.1000000000001 210.4000000000001C315.3000000000001 190.2000000000001 302.0000000000001 160.1000000000001 283.9000000000001 151.7000000000001C284.3000000000001 156.2000000000001 288.9000000000001 175.1 267.4000000000001 179.4C260.6000000000001 180.7000000000001 254.6000000000001 180.7000000000001 244.5000000000001 181.5000000000001C249.2000000000001 190.5000000000001 254.9000000000001 202.1000000000001 245.0000000000001 203.9000000000001C220.1000000000001 208.5000000000001 192.2000000000001 202.0000000000001 187.2000000000001 199.3000000000001C195.4000000000001 198.9000000000001 203.5000000000001 198.3000000000001 210.7000000000001 196.0000000000001C208.7000000000001 189.5000000000001 206.7000000000001 183.3000000000001 204.9000000000001 177.1000000000001C203.0000000000001 170.6000000000001 207.0000000000001 162.5000000000001 214.2000000000001 167.5000000000001C215.4000000000001 168.4 216.5000000000001 169.4 217.5000000000001 170.2000000000001C214.4000000000001 152.3000000000001 214.6000000000001 154.3000000000001 214.7000000000001 151.9C215.0000000000001 141.7000000000001 224.2000000000001 144.1 230.4000000000001 144.6C227.9000000000001 132.8 200.9000000000001 117.3 185.0000000000001 118.8C192.0000000000001 123.5 197.7000000000001 129.1 200.9000000000001 136.7C194.4000000000001 135.9 188.0000000000001 135.1 181.7000000000001 134.3L181.4000000000001 135.2C186.1000000000001 138.6 189.4000000000001 143 191.6000000000001 148.3C200.3000000000001 169.4 188.0000000000001 186.3 166.6000000000001 188.2C157.5000000000001 189 148.8000000000001 187.4 140.7000000000001 182.7C146.9000000000001 198.3 157.9000000000001 209.3 173.3000000000001 217.2C158.1000000000001 221.5 164.4000000000001 219.9 148.7000000000001 223.5C163.3000000000001 232.8 178.9000000000001 236.7 195.2000000000001 238.1C190.0000000000001 241.3 147.1000000000001 241.7 125.0000000000001 217.2C132.9000000000001 215.8 140.5000000000001 214.4 148.2000000000001 213C124.4000000000001 206 104.2000000000001 193.3 85.8000000000001 177.4C86.9000000000001 182.2 88.5000000000001 186.9 89.1000000000001 191.7C89.7000000000001 196.2 89.9000000000001 200.9 89.2000000000001 205.3C87.7000000000001 214.7 80.3000000000001 220.4 69.5000000000001 221.6C61.6000000000001 222.5 53.9000000000001 221.5 46.2000000000001 220.3C45.3000000000001 220.2 44.5000000000001 220 43.3000000000001 220.3C59.1000000000001 235.1 79.3000000000001 242 96.4000000000001 253.8C102.4000000000001 258.3 103.2000000000001 262 99.4000000000001 268.7zM227.8 241.9C231.1 225.9 240.4 216.4 251.6 217.6C247.0000000000001 228.9 239.5000000000001 237.1 227.8 241.9z" /> + <glyph glyph-name="dashcube" + unicode="" + horiz-adv-x="448" d=" M326.6 344H110.4C59.3 344 19.2 300.7 19.2 250.5V21C19.2 -29.5 59.3 -64 110.4 -64H337.6C388.7000000000001 -64 428.8 -29.5 428.8 21V448L326.6 344zM153.9 31.5C136.2 31.5 121.5 46.6 121.5 64.3V207.2C121.5 224.9 136.2 239.7 153.9 239.7H294.6C312.3 239.7 326.6 224.9 326.6 207.2V83.7L377.7000000000001 31.4H153.9z" /> + <glyph glyph-name="delicious" + unicode="" + horiz-adv-x="448" d=" M446.5 380C446.1 381.5 445.6 383 445.1 384.5C444.2000000000001 387 443.1 389.3 441.8 391.6C440.4000000000001 394 438.8 396.4 437.1 398.5C435 401 432.7000000000001 403.3 430.2000000000001 405.3C429.1 406.2 428.0000000000001 407 426.9000000000001 407.8C425.6 408.7 424.3 409.5 422.9000000000001 410.2C421.1 411.2 419.3 412 417.4000000000001 412.7C415.7000000000001 413.4 413.9000000000001 414 412.0000000000001 414.4C408.2000000000001 415.4 404.1000000000001 415.9 400.0000000000001 415.9H48C21.5 416 0 394.5 0 368V16C0 11.9 0.5 7.8 1.5 4C3.5 -3.7 7.3 -10.6 12.5 -16.3C13.5 -17.4 14.6 -18.5 15.8 -19.6C21.5 -24.8 28.4 -28.6 36.1 -30.6C39.9 -31.6 44 -32.1 48.1 -32.1H400.1C426.6 -32.1 448.1 -10.6 448.1 15.9V368C448 372.1 447.5 376.2 446.5 380zM416 16C416 7.2 408.8 0 400 0H224V192H32V368C32 376.8 39.2 384 48 384H224V192H416V16z" /> + <glyph glyph-name="deploydog" + unicode="" + horiz-adv-x="512" d=" M382.2 312H433.9V72.4H382.2V93.1C362.4 68.3 329.4 68.9999999999999 308.4 78.4C282.2 90.1 264.1 116.5 264.1 150.2C264.1 180 278.9 208.1 307.4 221C327.6 230.1 360.1 231.6 382.2 208.1V312zM317.5 150.2C317.5 132 331.1 116.7 350.7 116.7C370.5 116.7 383.9 133.1 383.9 149.6C383.9 166.7 370.2 182.8 350.7 182.8C331.1 182.8 317.5 166.4 317.5 150.1999999999999zM188.5 312H240.2V72.4H188.5V93.1C168.7 68.3 135.7 68.9999999999999 114.7 78.4C88.5 90.1 70.4 116.5 70.4 150.2C70.4 180 85.2 208.1 113.7 221C133.9 230.1 166.4 231.6 188.5 208.1V312zM123.8 150.2C123.8 132 137.4 116.7 157 116.7C176.8 116.7 190.2 133.1 190.2 149.6C190.2 166.7 176.5 182.8 157 182.8C137.3 182.8 123.8 166.4 123.8 150.1999999999999zM448 352C465.5 352 480 337.6 480 320V64C480 46.5 465.6 32 448 32H64C46.5 32 32 46.4 32 64V320C32 337.5 46.4 352 64 352H448M448 384H64C28.8 384 0 355.2 0 320V64C0 28.8 28.8 0 64 0H448C483.2 0 512 28.8 512 64V320C512 355.2 483.2 384 448 384z" /> + <glyph glyph-name="deskpro" + unicode="" + horiz-adv-x="480" d=" M205.9 -64L237 -25.6C249.3 -25.4 262.6 -24.2 273.5 -19C312.4 -0.4 311.9 42.9 311.8 44.8C311.7 49.8 311 49.2 282.9000000000001 82.2H362C361.8 32.1 354.7 13.7 351.8 6.5C342.4000000000001 -17.2 307.9000000000001 -56.3 256.6 -62.9C247.9000000000001 -64 223.8 -64.1 205.9 -64zM406.3 103.7C444.9000000000001 103.7 464.8 117.3 480 134.6L304.5 134.9L287.1 103.6L406.3 103.7zM362.7 327.6V159.3H289.2L256.5 103.8H250C197.7 103.8 191.9 160.3 191.7 162.6999999999999C190.5 175.8999999999999 170.4 174.3 171.6 160.8999999999999C173 145.0999999999999 180.4 120.8999999999999 198 103.7999999999999H107C81.5 103.7999999999999 -3.8 130.5999999999999 0 217.7999999999999V431.1C0 447.1 9.7 447.7 15 447.9H97C97.2 447.9 97.3 447.8 97.5 447.8C101.8 448.2 147.6 449.9 147.6 404.1C147.6 390.8 167.8 390.7 167.8 404.1C167.8 422.3 162.3 436.9 152 447.8H236.2C344.9 448.2 362.7 368.4 362.7 327.6zM230.2 271.6L294.2 242.3C307.5 287.8 252 314 230.2 271.6z" /> + <glyph glyph-name="deviantart" + unicode="" + horiz-adv-x="320" d=" M320 354.8L221.8 175.7L229.2 166.2H320V38.5H159.1L145.6 29.3L101.9 -54.7C101.6 -54.7 93.3 -63.3 92.7 -63.9H0V29.3L93.2 208.7L85.8 217.9H0V345.5H156L169.5 354.7L213.2 438.7C213.5 438.7 221.8 447.3 222.4 447.9H320V354.8z" /> + <glyph glyph-name="digg" + unicode="" + horiz-adv-x="512" d=" M81.7 275.7H0V101.3H132.7V352H81.7V275.7zM81.7 142.3H50.9V234.6H81.7V142.3zM378.9 275.7V101.3H460.7V72.8H378.9V32H512V275.7H378.9zM460.7 142.3H429.9V234.6H460.7V142.3zM225.1 101.3H307.2V72.8H225.1V32H358.4V275.7H225.1V101.3zM276.3 234.6H307.1V142.3H276.3V234.6zM153.3 352H204.6V301H153.3V352zM153.3 275.7H204.6V101.3H153.3V275.7z" /> + <glyph glyph-name="digital-ocean" + unicode="" + horiz-adv-x="512" d=" M256 -56V40.1C357.8 40.1 436.8 141 397.7 248.1C383.4 287.7000000000001 351.6 319.5 311.9 333.8C204.8 372.6 103.8 293.9000000000001 103.8 192.1H8C8 354.3 164.9 480.8 335 427.7C409.2 404.4 468.6 345.3 491.6 271.1C544.8 100.8 418.6 -56 256 -56zM256.3 135.4H160.7V39.8H256.3V135.4zM160.7 39.8H87V-33.8000000000001H160.7V39.8zM87 101.4H25.4V39.8H87V101.4z" /> + <glyph glyph-name="discord" + unicode="" + horiz-adv-x="448" d=" M297.216 204.8C297.216 189.184 285.6960000000001 176.384 271.104 176.384C256.768 176.384 244.992 189.184 244.992 204.8S256.512 233.216 271.104 233.216C285.696 233.216 297.216 220.416 297.216 204.8zM177.664 233.216C163.072 233.216 151.552 220.416 151.552 204.8S163.328 176.384 177.664 176.384C192.256 176.384 203.776 189.184 203.776 204.8C204.032 220.416 192.256 233.216 177.664 233.216zM448 395.264V-64C383.506 -7.006 404.132 -25.872 329.216 43.776L342.784 -3.584H52.48C23.552 -3.584 0 19.968 0 49.152V395.264C0 424.448 23.552 448 52.48 448H395.5200000000001C424.448 448 448 424.448 448 395.264zM375.04 152.576C375.04 235.0080000000001 338.1760000000001 301.824 338.1760000000001 301.824C301.3120000000001 329.472 266.24 328.704 266.24 328.704L262.656 324.608C306.176 311.296 326.4 292.096 326.4 292.096C265.589 325.425 194.156 325.4310000000001 135.168 299.52C125.696 295.168 120.064 292.096 120.064 292.096S141.312 312.32 187.392 325.632L184.832 328.704S149.76 329.472 112.896 301.824C112.896 301.824 76.032 235.008 76.032 152.576C76.032 152.576 97.536 115.456 154.112 113.6640000000001C154.112 113.6640000000001 163.584 125.184 171.264 134.912C138.752 144.6400000000001 126.464 165.12 126.464 165.12C130.23 162.484 136.44 159.067 136.96 158.72C180.17 134.5220000000001 241.548 126.5940000000001 296.704 149.7600000000001C305.664 153.088 315.648 157.9520000000001 326.144 164.864C326.144 164.864 313.344 143.872 279.808 134.4C287.488 124.672 296.704 113.6640000000001 296.704 113.6640000000001C353.28 115.456 375.04 152.576 375.04 152.576z" /> + <glyph glyph-name="discourse" + unicode="" + horiz-adv-x="448" d=" M225.9 416C103.3 416 0 317.5 0 195.9C0 192 0.1 -32 0.1 -32L225.9 -31.8C348.6 -31.8 448 70.5 448 192.1C448 313.7 348.6 416 225.9 416zM224 64C204.6 64 186.1 68.3 169.6 76.1L88.5 56L111.4 131C101.6 149.1 96 169.9 96 192C96 262.7 153.3 320 224 320S352 262.7 352 192S294.7 64 224 64z" /> + <glyph glyph-name="dochub" + unicode="" + horiz-adv-x="416" d=" M397.9 288H256V428.4L397.9 288zM304 256V126C304 59.2 267.5 25.9 190.7 25.9H96V363.2H190.7C202.7 363.2 213.8 362.4 223.8 360.7V444.7C212.9 446.9 201.4 448 189.2 448H0V-64H189.2C329.7 -64 400 0.6 400 129.9V256H304z" /> + <glyph glyph-name="docker" + unicode="" + horiz-adv-x="640" d=" M349.9 211.7H283.8V271.1H349.9V211.7zM349.9 416H283.8V355.3H349.9V416zM428.1 271.2H362V211.8H428.1V271.2zM271.8 343.3H205.7V283.2H271.8V343.3zM349.9 343.3H283.8V283.2H349.9V343.3zM626.7 243.3C612.3000000000001 253 579.1 256.5 553.6 251.7C550.3000000000001 275.7 536.9 296.6 512.5 315.4L498.5 324.7L489.2 310.7C470.8 282.9 465.8 237.1 485.5 206.9C476.8 202.2 459.7 195.8 437.1 196.2H2.4C-6.3 145.4 8.2 79.4 46.4 34.1C83.5 -9.8 139.1 -32.1 211.8 -32.1C369.2000000000001 -32.1 485.7 40.4 540.2 172.1C561.6 171.7000000000001 607.8000000000001 172 631.5 217.3C633 219.8 638.1 230.5 640 234.4L626.7 243.3zM115.6 271.2H49.6V211.8H115.7V271.2zM193.7 271.2H127.6V211.8H193.7V271.2zM271.8 271.2H205.7V211.8H271.8V271.2zM193.7 343.3H127.6V283.2H193.7V343.3z" /> + <glyph glyph-name="draft2digital" + unicode="" + horiz-adv-x="480" d=" M369.9 22.6V77L417 49.8L369.9 22.6zM82.4 67.4C107.9 94.7 180.1 172.1 233.3 237.4C268.4000000000001 280.5 273.6 319.8 261.7 350.1C254.3 368.9 244.2 380.3 237.4 385.8C282.7 383.7 305.4 362.4 319.6 347.5C319.6 347.5 362 299.3 325.4 234.2C288.4 168.3 214.5 86.7 196.9 67.5H82.4zM134.2 286.6C134.2 274.2 124.2 264.2 111.8 264.2C99.4 264.2 89.4 274.2 89.4 286.6C89.4 299 99.4 309 111.8 309C124.2 309 134.2 298.9 134.2 286.6M336 132.1V67.4H244.7C275.5 102.4 326.5 163.3000000000001 356.5 216.7000000000001C391.7 279.3000000000001 372.6 340.1 343.7 370.0000000000001C339.3 374.6 281.5 432.9000000000001 177.7 411.2000000000001C118.6 398.8000000000001 88.3 367.8000000000001 73.4 343.9000000000001C60.3 323.0000000000001 56.4 304.1000000000001 55.2 296.2000000000001C49.7 263.2000000000001 74.6 229.1000000000001 111.9 229.1000000000001C143.6 229.1000000000001 169.2 254.8000000000001 169.2 286.5000000000001C169.2 313.6 149.5 338.6 121.2 343.3000000000001C123 350.6 138.9 364.4000000000001 147.5 368.0000000000001C188.6 385.3000000000001 225.5 362.8000000000001 230.8 334.5000000000001C239.1 290.2000000000001 193.7 244.1000000000001 161.1 206.9000000000001C84.5 119.9 18.3 51.2 0 32.1L336 32.2V-32L480 49.9L336 132.1z" /> + <glyph glyph-name="dribbble-square" + unicode="" + horiz-adv-x="448" d=" M90.2 219.8C99.1 262.2000000000001 127.6 297.5 165.9 315.5C169.5 310.6 193.9 276.7 216.6 236.5C152.6 219.5 96.3 219.7 90.2 219.8zM314.6 294C281 323.8 235.3 335.1 192 324.6C195.8000000000001 319.5 220.6 285.7 243.0000000000001 244.6C291.6 262.9 312.1 290.5 314.6 294zM140.1 84C180.6 52.4 233.4 47.3 277.4 66C275.4 78 267.4 119.8 248.2 169.6C193.1 150.8 154.4 113.2000000000001 140.1 84zM238.9 192.2C235.5 200 231.7 207.7 227.8 215.4C159.6 195 93.4 195.8 87.4 196C87.4 194.6 87.3 193.2 87.3 191.8C87.3 156.7 100.6 124.7000000000001 122.4 100.4C144.6 138.3 189.5 178.3 238.9 192.2zM273.8 175.9C291.7 126.8 298.9 86.8 300.3 78.5C331 99.2 352.8 132.1 358.9 170.1C354.3 171.6 316.6 182.8 273.8 175.9zM253.5 224.3C258.3 214.5 261.8 206.5 265.5 197.5C311 203.2 356.2 194.1 360.7 193.1C360.3999999999999 225.4 348.8999999999999 255 329.8 278.2C326.9 274.3 304 245 253.5 224.3zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM384 192C384 280.2 312.2 352 224 352S64 280.2 64 192S135.8 32 224 32S384 103.8 384 192z" /> + <glyph glyph-name="dribbble" + unicode="" + horiz-adv-x="512" d=" M256 440C119.252 440 8 328.748 8 192S119.252 -56 256 -56S504 55.252 504 192S392.748 440 256 440zM419.9700000000001 325.634C449.473 289.588 467.3390000000001 243.677 467.805 193.679C460.821 195.156 390.7870000000001 209.361 320.303 200.497C314.551 214.538 309.122 226.89 301.686 242.111C380.007 274.088 415.504 319.593 419.97 325.634zM396.421 350.13C392.611 344.703 360.724 301.844 285.4 273.611C250.688 337.387 212.215 389.779 206.36 397.619C273.536 413.812 344.326 396.349 396.421 350.13zM165.941 383.38C171.526 375.721 209.379 323.264 244.478 260.871C145.391 234.558 58.118 234.937 48.644 235.062C62.38 300.795 106.678 355.427 165.941 383.38zM44.17 191.677C44.17 193.843 44.213 195.999 44.278 198.15C53.546 197.96 156.198 196.637 261.984 228.2960000000001C268.048 216.4280000000001 273.841 204.3810000000001 279.158 192.347C202.559 170.7720000000001 132.964 108.8200000000001 98.627 50.0410000000001C64.794 87.595 44.17 137.27 44.17 191.677zM125.977 24.564C148.104 69.797 208.155 128.186 293.5560000000001 157.3200000000001C323.2960000000001 80.037 335.5950000000001 15.2670000000001 338.7450000000001 -3.318C270.6330000000001 -32.331 188.7300000000001 -24.371 125.9770000000001 24.564zM374.357 16.075C372.186 28.9610000000001 360.911 90.972 333.205 167.1080000000001C399.585 177.734 457.905 160.3400000000001 465.152 158.0530000000001C455.71 99.1120000000001 421.879 48.2090000000001 374.357 16.075z" /> + <glyph glyph-name="dropbox" + unicode="" + horiz-adv-x="528" d=" M264.4 331.7L132.4 247.4L264.4 163.1L132.4 78.8L0 163.9L132.3 248.2L0 331.7L132.3 416L264.4 331.7zM131.6 52.3L263.6 136.6L395.6 52.3L263.6 -32L131.6 52.3zM264.4 163.9L396.4 248.2L264.4 331.8L395.7 416L528 331.7L395.7 247.4L528 163.2L395.7 78.9L264.4 163.9z" /> + <glyph glyph-name="drupal" + unicode="" + horiz-adv-x="448" d=" M319.5 333.3C297.3 347.3 276 352.8 254.8 366.8C241.8 375.6 223.5 396.8 208.3 415.1C205.6 385.8 196.8 373.9 186.3 365.6C165 348.6 151.5 343.4 132.8 333.3C117 325 32 266.5 32 157.5C32 48.3 123.8 -32 225.8 -32C327.5 -32 416 42 416 154C416 266.3 333 325 319.5 333.3zM322 7.7C301.9 -12.4 231.9 -21 205.3 3.5C200.5 8.3 205.6 15.5 211.8 15.5C211.8 15.5 228.8 2.2 263.3 2.2C290.3 2.2 309.3 9.9 317.8 16.2C323.9000000000001 20.8 326.2 11.9 322 7.7zM267.5 60.3C276.2 63.9 296.5 64.1 304.3 59C308.4000000000001 56.2 320.4000000000001 40.2 310.5 35.3C302.1 31.1 309.3 51 284 51C269.3 51 264.5 45.8 257.3 40C250.3 34 247.5 32 245.1 35.3C239.1 43.5 261 57.6 267.5 60.3zM360 43C344.8 44 314.5 91.8 295 92.5C264.1 93.4 190.9 11.8 133.7 50.5C94.9 77.1 119.1 155.3 185.5 155.7C235 156.2 269.3 106.7 294 107.2C315.3 107.5 355.8 149 375.8 149C424.5 149 399.1 39.7 360 43z" /> + <glyph glyph-name="dyalog" + unicode="" + horiz-adv-x="416" d=" M0 416V296.8H64V352H171.2C284.6 352 352 271.8 352 192.1C352 116 293.4 32 171.2 32H0V-32H171.2C331.9 -32 416 80.7 416 192.1C416 250.8 393.9 305.5 353.7 346.4C308.9 392 245.7 416 171.2 416H0z" /> + <glyph glyph-name="earlybirds" + unicode="" + horiz-adv-x="480" d=" M313.2 400.5C314.4 413.5 334.5 414.5 349.8 409.2C350.7 408.9 376 399.5 368.8 394C340.9000000000001 401.4 312.4000000000001 375.8 313.2 400.5zM112.2 393.6C142.9 401.7 174.2 373.6 173.3 400.7C172 414.9 149.9 416 133.1 410.3C132.1 410 104.4 399.8 112.2 393.6zM319.4 288C310.6 288 303.4 280.8 303.4 272S310.6 256 319.4 256S335.4 263.2 335.4 272S328.2 288 319.4 288zM159.7 288C150.9 288 143.7 280.8 143.7 272S150.9 256 159.7 256S175.7 263.2 175.7 272S168.5 288 159.7 288zM478.2 124.8C468.3 100.8 437.5 113.8 414.3 126C400.8 56.9 356.2 14.6 288 1.8C288.3 0.9 286 1.9 312 0.8C345.6 -0.6 375.8 3.9 409.4 8.8C389.6 22.6 398 45.9 399.6 46.9C401 47.8 414.3 45.2 421.2 35.4C429.8 47.9 449.6 50.2 451.4 49.0000000000001C453 47.9 458 28.1000000000001 444.5 14.4C449.2 15.3 452.7 16.0000000000001 454.3 16.5000000000001C456.9 17.3000000000001 472 5.2 457.4 3.2C443.1 0.9 434.8 -1.9 410.3 -7.6C364.4000000000001 -18.3 324.4 -19.4 292.6 -20.4L293.6 -32C297.4000000000001 -50.1 270.2000000000001 -56.3 266 -38.2C266.8 -56.1 238.9 -60 237.6 -37.2L237.1 -42.5C236.4 -60.9 208.7 -60.4 208.8 -41.9C201.3 -55.4 180.7 -48.7 182.4 -33.4L183.6 -21C146.9 -21.9 123.9 -24.1 121.8 -24.1C100.9 -24.1 100.9 7.5 121.8 7.5C124.2 7.5 149.5 6.2 185 4.7C123.9 20.2 81.3 59.7 70.1 122.9C45.1 110.1 12.6 96.1 1.9 122.1C-8.6 147.5 23.4 164.7 68.7 195.5C69.4 202.1 70.3 208.8 71.4 215.3C57 234.9 59.8 251.6 55.3 275.7C38.5 273.3 32.1 284.8 31.7 298.8C32 306.1 33.8 313.7 34.1 314.2C35.2 316 44.2 316.2 46.8 316.8C52.8 348.5 97.4 350 137.7 351.3C157.4 373.1 182.9 392.8 218.6 399.6C203.3 419 215.2 439.5 216.2 440C217.9 440.8 237.4 435.7 242.5 416.8C247.7 425.6 260.8 428.2 262.1 427.5C263.2000000000001 426.9 268.5 412.5 257.2000000000001 401.6C297.5000000000001 398.1 329.4000000000001 376.9 353.2000000000001 350.9C389.3000000000001 349.4 425.0000000000001 345 430.3000000000001 316.9C433.0000000000001 316.3 441.9000000000001 316.1 443.0000000000001 314.3C443.3000000000001 313.8 445.1000000000001 306.2000000000001 445.4000000000001 298.9C444.9000000000001 285 438.6 273.5 421.8 275.8C418.6 258.5 419.1 242.9 413.1 228.1C415.5 216.4 417.1 204.3 417.9000000000001 191.7000000000001C454.9 166.3000000000001 488.2 149.2000000000001 478.2 124.8000000000001zM207.4 288.1C208.3 332.1 169.5 330.3 128.8 328.4C107.1 327.4 89.9 326.5 83.3 314.5C71.9 293.6 89.2 221.6 106.5 213.3C116.3 208.6 179.9 205.4 192.8 220.4C201 229.8 207.8 269.8 207.4 288.1zM259.4 229.8C255.1 242.2 253.4 259.9 244.1 262.5C242.1 263 235.1 263 233.1 262.5C223.1 259.7 222.3 240.4 216.1 225.3C231.5 225.3 235.4 215.6 239.8 215.6C244.1 215.6 246.1 226.9000000000001 259.4 229.8zM395.1 314.5C388.5 326.6 370.3 327.4 348.6 328.4C308.4 330.3 270.4 332.2 271.3 288.1C270.8 269.8 276.3 229.8 284.5 220.3C297.5 205.4 361.0999999999999 208.5 370.8 213.2C386.6 220.8 407.3 292.1 395.1 314.5z" /> + <glyph glyph-name="ebay" + unicode="" + horiz-adv-x="640" d=" M405.2 184.2C376.1 183.3 358 178 358 158.9C358 146.5 367.9 133.1 393 133.1C426.7 133.1 444.6 151.5 444.6 181.5V184.8C432.8 184.8 418.3 184.6999999999999 405.2000000000001 184.1999999999999M476.7 144.5C476.7 135.1999999999999 477.0000000000001 125.8999999999999 477.7 117.6999999999999H447.9000000000001C447.1 124.5999999999999 446.8 131.3 446.8 137.8999999999999C430.7 118.0999999999999 411.5 112.3999999999999 384.9000000000001 112.3999999999999C345.4000000000001 112.3999999999999 324.3 133.2999999999999 324.3 157.3999999999999C324.3 192.3999999999999 353.1 204.6999999999999 402.9 205.7999999999999C416.6 206.0999999999999 431.9 206.1999999999999 444.6 206.1999999999999V209.5999999999999C444.6 233 429.6 242.6 403.6 242.6C384.3 242.6 370 234.6 368.6 220.7999999999999H334.9C338.5 255.2 374.6 263.8999999999999 406.4 263.8999999999999C444.5 263.8999999999999 476.7 250.3999999999999 476.7 210.0999999999999V144.4999999999999zM127.7000000000001 201.3C125.4000000000001 256 40.2 257.9 33.3 201.3H127.7000000000001zM32.7 179.9C36.2 121.6 111.9000000000001 122.5 123.9000000000001 158.3H157C150.6 123.9 114 112.1999999999999 82.6 112.1999999999999C25.4 112.1999999999999 0.1 143.6999999999999 0.1 186.1999999999999C0.1 233 26.3 263.8 83.1 263.8C128.4 263.8 161.5 240.1 161.5 188.3999999999999V179.8999999999999H32.7zM243.7000000000001 134.2C273.5000000000001 134.2 293.9000000000001 155.7 293.9000000000001 188C293.9000000000001 220.4 273.5000000000001 241.8 243.7000000000001 241.8C214.1000000000001 241.8 193.5000000000001 220.4 193.5000000000001 188C193.5000000000001 155.7 214.1000000000001 134.2 243.7000000000001 134.2M161.5000000000001 320.2H193.6000000000001V239.6C209.3000000000001 258.3 231.0000000000001 263.8 252.3000000000001 263.8C288.0000000000001 263.8 327.7000000000001 239.7 327.7000000000001 187.6C327.7000000000001 144 296.2000000000001 112.1999999999999 251.7000000000001 112.1999999999999C228.4000000000001 112.1999999999999 206.6000000000001 120.5 193.0000000000001 137.0999999999999C193.0000000000001 130.4999999999999 192.6000000000001 123.8999999999999 191.9000000000001 117.5999999999999H160.4000000000001C160.9000000000001 127.7999999999999 161.5000000000001 140.3999999999999 161.5000000000001 150.6999999999999V320.2zM640 258.5L540.8 63.7H504.9L533.4 117.8L458.8 258.5H496.3L551.1999999999999 148.6L606 258.5H640z" /> + <glyph glyph-name="edge" + unicode="" + horiz-adv-x="512" d=" M25.714 219.837C25.825 219.999 25.944 220.16 26.056 220.322C26.035 220.16 26.011 219.999 25.991 219.837H25.714zM486.286 204.329C486.286 248.361 478.532 288.794 457.485 326.734C416.498 400.121 343.912 439.999 258.893 439.999C118.962 440.276 40.617 334.786 26.056 220.321C68.485 281.633 143.129 341.697 246.431 345.287C246.431 345.287 356.097 345.287 345.85 240.33H169.997C176.366 277.716 188.551 299.316 204.336 319.256C129.288 284.363 82.486 223.16 83.594 130.941C84.424 59.493 133.718 -13.895 204.337 -41.035C287.694 -72.8820000000001 397.113 -48.235 444.469 -19.711V84.693C363.605 28.199 173.598 23.768 172.214 152.265H486.287V204.329z" /> + <glyph glyph-name="elementor" + unicode="" + horiz-adv-x="448" d=" M425.6 416H22.4C10 416 0 406 0 393.6V-9.6C0 -22 10 -32 22.4 -32H425.6C438 -32 448 -22 448 -9.6V393.6C448 406 438 416 425.6 416M164.3 92.5H124.5V291.5H164.3V92.5zM323.6 92.5H204.1V132.3H323.6V92.5zM323.6 172.1H204.1V211.9H323.6V172.1zM323.6 251.8H204.1V291.6H323.6V251.8z" /> + <glyph glyph-name="ello" + unicode="" + horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM391.8400000000001 154.8C375.31 89.49 315.79 43.2 248 43.2S120.69 89.49 104.16 154.8C102.51 162.24 106.64 170.5099999999999 114.08 172.16C121.52 173.81 129.79 169.68 131.44 162.24C145.49 109.3299999999999 193.44 72.1299999999999 248 72.1299999999999S350.51 109.3299999999999 364.56 162.24C366.21 169.68 374.48 174.6399999999999 381.92 172.16C389.36 170.51 394.32 162.24 391.8400000000001 154.8z" /> + <glyph glyph-name="ember" + unicode="" + horiz-adv-x="640" d=" M639.9 193.4C638.8 204.1 629.1999999999999 200.2 629.1999999999999 200.2S613.5999999999999 188.1 599.9 189.5C586.1999999999999 190.8 590.5 221.5 590.5 221.5S593.5 249.6 585.4 251.9C577.3 254.3 567.4 244.6 567.4 244.6S555 230.9 549.1 213.4L547.5 212.9S549.4 243.5 547.2 250.5C545.6 254 530.8000000000001 253.7 528.4000000000001 247.5S514.2 198.3 513.4000000000001 180.3C513.4000000000001 180.3 490.3000000000001 160.7 470.1000000000001 157.5S445.1000000000001 166.9 445.1000000000001 166.9S499.9000000000001 182.2 498.0000000000001 226C496.1000000000001 269.8 453.8000000000001 253.6 449.0000000000001 250C444.4000000000001 246.5 419.6000000000001 231.6 412.4000000000001 190.3C412.2000000000001 188.9 411.7000000000001 182.8 411.7000000000001 182.8S390.5000000000001 168.6 378.7000000000001 164.8C378.7000000000001 164.8 411.7000000000001 220.4 371.4000000000001 245.7C353.1 256.7 338.6 233.6 338.6 233.6S393.1 294.3 381.1 345.6C375.3 370 363.1 372.7 351.9000000000001 368.7C334.9000000000001 362 328.4000000000001 352 328.4000000000001 352S306.4000000000001 320 301.3 272.5S288.7 167.4 288.7 167.4S278.2 157.2 268.5 156.7S263.1 185.4 263.1 185.4S270.6 230 270.1 237.5S269 249.1 260.2000000000001 251.7C251.3000000000001 254.4 241.7000000000001 243.1 241.7000000000001 243.1S216.2000000000001 204.4 214.0000000000001 198.5L212.7000000000001 196.1L211.4 197.7S229.4000000000001 250.4 212.2000000000001 251.2C195.0000000000001 252 183.7000000000001 232.4 183.7000000000001 232.4S164.1000000000001 199.6 163.3000000000001 195.9L162 197.5S170.1 235.7 168.4 245.1C166.8000000000001 254.5 157.9 252.6 157.9 252.6S146.6 253.9 143.7000000000001 246.7S130.0000000000001 191.3999999999999 128.7000000000001 176C128.7000000000001 176 100.5 155.8 81.9000000000001 155.6C63.4000000000001 155.3 65.2000000000001 167.4 65.2000000000001 167.4S133.2000000000001 190.7 114.6000000000001 236.6C106.3000000000001 248.4 96.6000000000001 252.1 82.9000000000001 251.9C69.2000000000001 251.6 52.6000000000001 243.3 41.6000000000001 218.6C36.3000000000001 206.8 34.8000000000001 195.6 33.8000000000001 187.1C33.8000000000001 187.1 21.5000000000001 184.7 15.0000000000001 190S5.0000000000001 190 5.0000000000001 190S-6.1999999999999 176 4.9000000000001 171.6999999999999S33.0000000000001 165.5999999999999 33.0000000000001 165.5999999999999C34.6000000000001 158.0999999999999 39.2000000000001 146.0999999999999 52.6000000000001 135.8999999999999C72.8000000000001 120.5999999999999 111.4000000000001 137.1999999999999 111.4000000000001 137.1999999999999L127.3000000000001 146S127.8000000000001 131.3999999999999 139.4000000000001 129.3C151.0000000000001 127.1999999999999 155.8000000000001 128.3 175.9000000000001 177.1999999999999C187.7000000000001 202.1999999999999 188.5000000000001 200.7999999999999 188.5000000000001 200.7999999999999L189.8000000000001 201.0999999999999S180.7000000000001 154.3 184.2000000000001 141.3999999999999C187.7 128.6 203 130 203 130S211.3 127.6 218 151.2C224.7 174.8 237.6 201.1 237.6 201.1H239.2S233.6 153 242.2 137.4C250.8 121.8 273.1 132.1 273.1 132.1S288.7 139.9 291.1 142.3C291.1 142.3 309.6 126.5 335.7 129.4C394 140.9 414.8 155.3 414.8 155.3S424.8 130.9 455.9 128.6C491.4 125.9 510.7 147.2 510.7 147.2S510.4 133.7 522.8 128.6C535.1999999999999 123.5 543.5 151.4 543.5 151.4L564.2 208.6H566.1S567.2 171.3 587.6 165.4S634.6 179.1 634.6 179.1S641 182.6 639.9 193.4zM61.9 188.1C62.7 220.1 83.7 234.0000000000001 90.9 227.1C98.2 220.1 95.5 205.1 81.8 195.7C68.1 186.2000000000001 61.9 188.1 61.9 188.1zM334.7 311.9000000000001S353.8 361.6 358.3 337.4000000000001S318.3 241.2000000000001 318.3 241.2000000000001C318.8 257.4000000000001 334.7 311.9000000000001 334.7 311.9000000000001zM357.5 173.5C344.9 140.5 314.2 153.9 314.2 153.9S310.7 165.7 320.6 198.8S353.9 219 353.9 219S370.1 206.6 357.5 173.5zM442.1 188.1S439.1 198.6 450.2000000000001 218.7C461.2 238.9 469.8000000000001 227.8 469.8000000000001 227.8S479.2 217.6 468.5000000000001 202.3S442.1000000000001 188.1 442.1000000000001 188.1z" /> + <glyph glyph-name="empire" + unicode="" + horiz-adv-x="496" d=" M287.6 393.8C276.8 396 265.5 397.1 254.1 397.4V415.6C332.2000000000001 413.4 400.2000000000001 371.6 438.7000000000001 309L422.9000000000001 299.9C416.8 309.6 410.2000000000001 318.7000000000001 402.7000000000001 327L384.7000000000001 311.5C358.7000000000001 341.1 323.3000000000001 362.2 282.8000000000001 369.9L287.6000000000001 393.8zM53.4 125.6L76.4 133.3C70 151.6 66.4 171.5 66.4 192S69.7 232.4 76.1 250.7L53.4 258.4C57 269.2 61.7 279.7 67 289.4L51.2 298.5C34 267 24.1 230.5 24.1 192S34.1 117 51.2 85.4L67 94.5C61.7 104.5 57.3 114.8 53.4 125.6zM213.1 14C172.7 22 137.3 43.1 111.2 72.7L93.2 56.9C85.7 65.5 78.8 74.6 73 84.3L57 74.9C95.5 12.6 163.8 -29.4 241.9 -31.7V-13.4C230.6 -13.1 219.2 -11.7 208.4 -9.8L213.1 14zM93.3 327.1L111.3 311.6C137.3 341.2 172.7 362.3 213.2 370L208.5 393.8C219.3 396 230.6 397.1 242 397.4V415.6C163.9 413.4 95.9 371.6 57.4 309L73.2 299.9C79.2 309.6 85.8 318.8 93.3 327.1zM402.7 56.9L384.7 72.7C358.7 43.1 323.3 22 282.8 14L287.5 -9.8C276.7 -11.7 265.3999999999999 -13.1 254 -13.4V-31.7C332.0999999999999 -29.5000000000001 400.4 12.6 438.9 74.9L422.8 84.3C417.1 74.6 410.2 65.4999999999999 402.7 56.9zM496 192C496 55 385 -56 248 -56S0 55 0 192S111 440 248 440S496 329 496 192zM483.8 192C483.8 322.1 378.1 427.8 248 427.8S12.2 322.1 12.2 192S117.9 -43.8 248 -43.8S483.8 61.9 483.8 192zM444.8 298.6L429 289.5C434.3 279.8 439 269.3 442.6 258.5L419.9000000000001 250.8C426.3 232.5 429.6 212.6 429.6 192.1S426 151.7000000000001 419.6 133.4L442.6 125.7000000000001C438.7000000000001 114.9 434.3 104.7000000000001 429 94.7000000000001L444.8 85.6C462 117 471.9 153.5 471.9 192S462 267 444.8 298.6zM261.8 120.9C278.1 124.2 292.2 132.5 302.5 144.4L353.7 99.6C365.6 113.2 375 128.9 380.8 146.4L316.6 168.5C319.1 176 320.5 183.7 320.5 192S319.1 208.1 316.6 215.5L381.1 237.6C375 255 365.6 270.8 353.7000000000001 284.4L302.5000000000001 239.6C292.3000000000001 251.5 278.1000000000001 260.1 261.8000000000001 263.4L275.1000000000001 329.8C266.5000000000001 331.7 257.4000000000001 332.6 248.0000000000001 332.6C238.6000000000001 332.6 229.5000000000001 331.8 220.9000000000001 329.8L234.2000000000001 263.4C217.9000000000001 260.1 203.8000000000001 251.5 193.5000000000001 239.6L142.3000000000001 284.4C130.4000000000001 270.8 121.0000000000001 255.1 114.9000000000001 237.6L179.4000000000001 215.5C176.9000000000001 208 175.5000000000001 200.3 175.5000000000001 192S176.9000000000001 175.9 179.4000000000001 168.5L115.2000000000001 146.4C121.0000000000001 129 130.4000000000001 113.2 142.3000000000001 99.6L193.5000000000001 144.4C203.7000000000001 132.5 217.9000000000001 124.2 234.2000000000001 120.9L220.9000000000001 54.2C229.5000000000001 52.5 238.6000000000001 51.4 248.0000000000001 51.4C257.4000000000001 51.4 266.5000000000001 52.5 275.1000000000001 54.2L261.8000000000001 120.9z" /> + <glyph glyph-name="envira" + unicode="" + horiz-adv-x="448" d=" M0 416C477.6 416 366.6 98.7 367.1 49.7L448 -32H422L351.6 39.2C312.6 35 227.2 4.7 137.2 76.2C47 147.7 52 233.3 0 416zM79.7 370C30 393.5 74.5 360.8 74.5 360.8C119.7 329.6 140.5 287.1 164.7 240.9C196.2 180.7 243.7 101.2 308.9 73.2C373.9 45.2 343.1 60.7 314.9 81.7C286.7 102.9 246.7 168.7 223.9 211.9C192.2 271.9 162.9 330.5 79.7 370z" /> + <glyph glyph-name="erlang" + unicode="" + horiz-adv-x="640" d=" M21.7 201.6C21.6 114.8 50.7 42.1 100.4 -10.5H0V394.5H87.2C45.7 344.3 21.6 278.3 21.7 201.6zM640 394.4H556.4C587.8 351.7 605.1 296.9 602.6 231.7C603.1 225.7 603.1 220 602.6 207.6H230.2C230 97.9 269.1 12.7 368.8 12.3C437.3 12.6 486.8 63.3 520.6999999999999 118.4L617.0999999999999 70.2C599.6999999999999 39.3 580.5999999999999 12.4 559.1999999999999 -10.6H640V394.4zM559.2 -10.6S559.2 -10.5 559.2 -10.6H559H559.2zM556.1 394.4H556.4L556.3 394.5L556.0999999999999 394.4zM325.4000000000001 384.8C279.5000000000001 384.7 240.3000000000001 351.3 236.2000000000001 301.6H406.1C405 351.3 371.6 384.7 325.4000000000001 384.8z" /> + <glyph glyph-name="ethereum" + unicode="" + horiz-adv-x="320" d=" M311.9 187.2L160 94.4L8 187.2L160 448L311.9 187.2zM160 64.6L8 157.4L160 -64L312 157.4L160 64.6z" /> + <glyph glyph-name="etsy" + unicode="" + horiz-adv-x="384" d=" M384 100C382.25 89.25 370.25 -10 368.5 -32C250.621 -27.701 148.605 -27.257 0 -32V-6.5C45.457 2.448 60.627 1.519 61 28.75C62.793 101.072 64.524 272.8930000000001 61 350.75C59.971 379.2100000000001 48.87 377.515 0 386.75V412.25C73.886 409.892 255.933 403.699 362.999 416C359.499 377.75 355.249 289.5 355.249 289.5H332C320.947 332.335 313.241 380 277.25 380H140.25C130 380 129.5 376.5 129.5 370.25V206.5C187.5 206 218 209 218 209C247.77 209.951 245.56 217.502 258.75 274.251H284.5C280.093 172.9 280.59 212.422 282.75 114.001H257C247.845 154.087 247.935 175.046 217.499 175.501C217.499 175.501 195.999 177.501 129.499 177.501V38.501C129.499 12.501 143.749 0.251 173.749 0.251H263C326.636 0.251 329.564 25.247 361.751 100.001H384z" /> + <glyph glyph-name="expeditedssl" + unicode="" + horiz-adv-x="496" d=" M248 404.6C130.6 404.6 35.4 309.4 35.4 192S130.6 -20.6 248 -20.6S460.6 74.6 460.6 192S365.4 404.6 248 404.6zM150.6 271.7C150.6 325.4 194.3 369.1 248 369.1S345.4 325.4 345.4 271.7V245.1C345.4 240.1 341.5 236.2 336.5 236.2H318.8C313.8 236.2 309.9000000000001 240.1 309.9000000000001 245.1V271.7C309.9000000000001 353.8 185.9 353.8 185.9 271.7V245.1C185.9 240.1 182 236.2 177 236.2H159.3000000000001C154.3000000000001 236.2 150.4 240.1 150.4 245.1V271.7zM389.7 68C389.7 58.3 381.7 50.3 372 50.3H124C114.3 50.3 106.3 58.3 106.3 68V209.7C106.3 219.4 114.3 227.4 124 227.4H372C381.7 227.4 389.7 219.4 389.7 209.7V68zM141.7 205.3V72.4C141.7 69.9 139.8 68 137.3 68H128.4C125.9 68 124 69.9 124 72.4V205.3C124 207.8 125.9 209.7 128.4 209.7H137.3C139.8 209.7 141.7 207.8 141.7 205.3zM283.4 156.6C283.4 143.6 276.2 132.2000000000001 265.7 126.2000000000001V94.6C265.7 89.6 261.8 85.7000000000001 256.8 85.7000000000001H239.1C234.1 85.7000000000001 230.2 89.6 230.2 94.6V126.2000000000001C219.7 132.3000000000001 212.5 143.6 212.5 156.6C212.5 176.3 228.3000000000001 192 247.9000000000001 192S283.4000000000001 176.2000000000001 283.4000000000001 156.6zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -38.3C121 -38.3 17.7 65 17.7 192S121 422.3 248 422.3S478.3 319 478.3 192S375 -38.3 248 -38.3z" /> + <glyph glyph-name="facebook-f" + unicode="" + horiz-adv-x="264" d=" M76.7 -64V165H0V256H76.7V327.7C76.7 405.6 124.3 448 193.8 448C227.1 448 255.7 445.5 264 444.4V363H215.8C178 363 170.7 345 170.7 318.7V256H256L244.3 165H170.7V-64" /> + <glyph glyph-name="facebook-messenger" + unicode="" + horiz-adv-x="448" d=" M224 416C15.9 416 -77.5 170 84.6 47.4V-32L160.3 10C302.5 -29.8 445.7 69.9 445.7 208.7C445.8 323.2 346.5 416 224 416zM247.4 137.9L190 197.5L79.6 136.4L200.7 264.9L258.1 205.3L368.5 266.4L247.4 137.9z" /> + <glyph glyph-name="facebook-square" + unicode="" + horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H314.7V145.2H375.3L384 212.8H314.7V256C314.7 275.6 320.1 288.9 348.2 288.9H384V349.3C377.8 350.1 356.6 352 331.8 352C280.2 352 244.8 320.5 244.8 262.6V212.7H184V145.1H244.9V-32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368z" /> + <glyph glyph-name="facebook" + unicode="" + horiz-adv-x="448" d=" M448 391.3V-7.2C448 -20.9 436.9 -31.9 423.3 -31.9H309.1V141.5H367.3L376 209.1H309V252.3C309 271.9 314.4 285.2000000000001 342.5 285.2000000000001H378.3V345.7000000000001C372.1 346.5 350.9000000000001 348.4000000000001 326.1 348.4000000000001C274.5 348.4000000000001 239.1 316.9000000000001 239.1 259V209.1H180.7V141.5H239.1V-32H24.7C11.1 -32 0 -20.9 0 -7.3V391.3C0 404.9 11.1 416 24.7 416H423.2C436.9 416 448 404.9 448 391.3z" /> + <glyph glyph-name="firefox" + unicode="" + horiz-adv-x="480" d=" M478.1 212.7C477.4 217.2 476.7 219.8 476.7 219.8S474.9 217.8 472.0000000000001 213.9C471.1000000000001 224.6 469.2 235.1 466.2 245.5C462.5000000000001 258.4 457.7 270.9 451.7 282.9C447.9000000000001 290.9 443.5000000000001 298.5 438.4000000000001 305.7C436.6 308.4 434.7000000000001 311.1 432.8 313.6C424 328 413.8 336.9 402.1 353.6C394.5 366.4 389.2000000000001 380.5 386.7000000000001 395.2C383.5000000000001 386.3 381.0000000000001 377.2 379.3000000000001 367.9C367.2000000000001 380.1 356.8000000000001 388.7 350.4000000000001 394.6C319.4 423.8 323 438.9 323 438.9S264.7 373.8 289.9 306C298.6 283 313.7 262.9 333.3 248.1C357.7 227.9 384.1 212.1 398 171.5C386.8 192.8 369.8999999999999 210.7 349.2 223C355.3999999999999 208.3 358.5999999999999 192.4 358.5 176.5C358.5 115.5 308.8999999999999 66 247.9 66.1C239.6 66.1 231.4 67 223.4 68.9C213.9 70.7000000000001 204.7 73.8 196 78.2000000000001C183.0999999999999 86.0000000000001 172 96.3000000000001 163.1999999999999 108.5000000000001L163 108.8000000000001L165 108.1000000000001C169.5999999999999 106.5000000000001 174.1999999999999 105.3000000000001 179 104.4000000000001C197.6999999999999 100.4000000000001 217.3 102.7000000000001 234.6 111.0000000000001C252.1 120.7000000000001 262.5999999999999 127.9000000000001 271.2 125.0000000000001H271.3999999999999C279.7999999999999 122.3000000000001 286.3999999999999 130.5000000000001 280.3999999999999 139.0000000000001C270 152.4000000000001 252.9999999999999 159.0000000000001 236.2 156.0000000000001C218.6999999999999 153.5000000000001 202.6999999999999 141.0000000000001 179.7999999999999 153.1000000000001C178.2999999999999 153.9000000000002 176.8999999999999 154.7000000000002 175.4999999999999 155.6000000000001C173.8999999999999 156.5000000000001 180.3999999999999 154.3000000000001 178.8999999999999 155.3000000000001C173.8999999999999 157.8000000000001 169.0999999999999 160.7000000000001 164.4999999999999 163.9000000000002C164.1999999999999 164.2000000000002 167.9999999999999 162.8000000000001 167.5999999999999 163.1000000000001C161.6999999999999 167.1000000000001 156.5999999999999 172.3000000000001 152.5999999999999 178.3000000000001C148.4999999999999 185.7000000000001 148.0999999999999 194.7000000000001 151.5999999999999 202.4000000000001C153.6999999999999 206.2000000000001 156.9999999999999 209.3000000000001 160.8999999999999 211.1000000000001C163.8999999999999 209.6000000000001 165.6999999999999 208.5000000000001 165.6999999999999 208.5000000000001S164.3999999999999 211.0000000000001 163.5999999999999 212.3000000000001C163.9 212.4000000000001 164.0999999999999 212.3000000000001 164.4 212.5000000000001C167 211.4000000000001 172.7 208.5000000000001 175.8 206.7000000000001C177.9 205.6000000000001 179.6 204.0000000000001 181 202.0000000000001C181 202.0000000000001 182 202.5000000000001 181.3 204.7000000000001C180.2 207.4000000000001 178.4 209.7000000000001 175.9 211.3000000000001H176.0999999999999C178.4 210.1000000000001 180.5999999999999 208.7000000000001 182.6999999999999 207.2000000000001C184.5999999999999 211.6000000000001 185.5 216.4000000000001 185.2999999999999 221.2000000000001C185.4999999999999 223.8000000000001 185.0999999999999 226.5000000000001 184.1999999999999 229.0000000000001C183.3999999999999 230.6000000000001 184.6999999999999 231.2000000000001 186.0999999999999 229.5000000000001C185.9 230.8000000000002 185.4 232.0000000000001 184.9 233.2000000000001V233.3000000000001S185.7 234.4000000000001 186.0999999999999 234.8000000000001C187.0999999999999 235.8000000000001 188.1999999999999 236.7000000000001 189.5 237.5000000000001C196.6999999999999 242.0000000000001 204.3 245.9000000000001 212.1999999999999 249.1000000000001C218.5999999999999 251.9000000000001 223.8999999999999 254.0000000000001 225 254.7000000000001C226.6 255.7000000000001 228.1 256.9000000000001 229.5 258.2000000000001C234.8 262.7000000000001 238.5 269.0000000000001 239.7 275.9000000000001C239.8 276.8000000000001 239.8999999999999 277.7000000000001 240 278.7000000000001V280.2000000000001C239.1 283.7000000000001 233.1 286.3000000000001 201.5999999999999 289.3000000000001C190.5 291.1000000000001 181.5999999999999 299.4000000000001 179.0999999999999 310.4000000000001V310.3000000000001C178.6999999999999 309.2000000000001 178.1999999999999 308.0000000000001 177.7999999999999 306.8000000000001C178.1999999999999 308.0000000000001 178.5999999999999 309.1000000000001 179.0999999999999 310.3000000000001V310.5000000000001C185.0999999999999 326.2000000000001 195.9 339.6 209.9 348.8000000000001C210.7 349.5000000000001 206.7 348.6 207.5 349.3000000000001C210.1999999999999 350.6 212.9 351.8000000000001 215.6999999999999 352.8000000000001C217.0999999999999 353.4000000000001 209.6999999999999 356.2000000000001 203.0999999999999 355.5000000000001C199.0999999999999 355.3000000000001 195.0999999999999 354.3000000000001 191.4 352.7000000000001C193 354.0000000000001 197.5999999999999 355.8000000000001 196.5 355.8000000000001C188.0999999999999 354.2000000000001 180 351.1 172.5999999999999 346.8000000000001C172.5999999999999 347.6 172.6999999999999 348.3000000000001 173.0999999999999 349.0000000000001C167.1999999999999 346.5000000000001 162.0999999999999 342.5000000000001 158.0999999999999 337.5000000000001C158.1999999999999 338.4000000000001 158.2999999999999 339.3000000000001 158.2999999999999 340.2000000000001C155.5999999999999 338.2000000000001 153.0999999999999 335.9000000000001 150.9999999999999 333.3000000000001L150.8999999999999 333.2000000000001C133.4999999999999 339.9000000000001 114.5999999999999 341.5000000000001 96.2999999999999 337.9000000000001L96.0999999999999 338.0000000000001H96.2999999999999C92.4999999999999 341.1 89.1999999999999 344.7000000000001 86.5999999999999 348.9000000000001L86.3999999999999 348.8000000000001L85.9999999999999 349.0000000000001C84.7999999999999 350.8000000000001 83.5999999999999 352.8000000000001 82.2999999999999 355.0000000000001C81.3999999999999 356.6000000000001 80.4999999999999 358.4000000000001 79.5999999999999 360.2000000000001C79.5999999999999 360.3000000000001 79.4999999999999 360.4000000000001 79.3999999999999 360.4000000000001C78.9999999999999 360.4000000000001 78.7999999999999 358.7000000000001 78.4999999999999 359.1000000000001V359.2000000000001C75.2999999999999 367.5000000000001 73.7999999999999 376.4000000000001 74.0999999999999 385.4000000000001L73.8999999999999 385.3000000000001C68.7999999999999 381.8000000000001 64.8999999999999 376.7000000000001 62.7999999999999 370.8000000000001C61.8999999999999 368.7000000000001 61.1999999999999 367.5000000000001 60.5999999999999 366.3000000000001V366.8000000000001C60.6999999999999 367.9000000000001 61.1999999999999 370.1000000000001 61.0999999999999 369.9000000000001C60.9999999999999 369.7000000000001 60.8999999999999 369.6000000000001 60.7999999999999 369.5000000000001C59.2999999999999 367.8000000000001 57.8999999999999 365.8000000000001 56.8999999999999 363.7000000000001C55.9999999999999 361.8000000000001 55.1999999999999 359.8000000000001 54.5999999999999 357.8000000000001C54.4999999999999 357.5000000000001 54.5999999999999 358.1 54.5999999999999 358.8000000000001S54.6999999999999 360.8000000000001 54.5999999999999 360.5000000000001L54.2999999999999 359.8000000000001C47.5999999999999 344.9000000000001 43.3999999999999 329.0000000000001 41.8999999999999 312.7000000000001C41.4999999999999 309.9000000000001 41.2999999999999 307.1 41.3999999999999 304.4000000000001V304.2000000000001C36.5999999999999 299.0000000000001 32.3999999999999 293.2000000000001 28.6999999999999 287.1C16.5999999999999 266.7000000000001 7.5999999999999 244.6000000000001 1.8999999999999 221.5000000000001C5.8999999999999 230.3000000000001 10.6999999999999 238.7000000000001 16.1999999999999 246.6000000000001C5.5 219.5 0 190.6 0 161.4C1.8 170 4.2 178.4 7 186.7C5.3 152.2 11.9 117.8 26.4 86.4C45.8 42.9 78 6.4 118.7 -18.3C135.3 -29.5 153.4 -38.2 172.5 -44.1C175 -45 177.6 -45.9 180.2 -46.8C179.4 -46.5 178.6 -46.1 177.8 -45.8C200.4 -52.6 224 -56.1 247.6 -56.1C331.3 -56.1 358.9 -24.2 361.4 -21.1C365.5 -17.4 368.9 -12.9 371.3 -7.8C372.9 -7.1 374.5 -6.4 376.2 -5.7L377.2 -5.2L379.0999999999999 -4.3C391.7 1.6 403.5999999999999 9.1 414.3999999999999 17.8C430.7 29.5 442.2999999999999 46.5 447.2999999999999 65.9C450.2999999999999 73.0000000000001 450.3999999999999 80.9 447.6999999999999 88.1C448.5999999999999 89.5 449.3999999999999 90.9 450.3999999999999 92.4C468.3999999999999 121.3 478.5999999999999 154.3 479.9999999999999 188.3000000000001V191.1000000000001C479.9999999999999 198.4000000000001 479.3999999999999 205.6000000000001 478.0999999999999 212.7000000000001z" /> + <glyph glyph-name="first-order-alt" + unicode="" + horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 -48.21C115.34 -48.21 7.79 59.34 7.79 192S115.34 432.21 248 432.21S488.21 324.66 488.21 192S380.6600000000001 -48.21 248 -48.21zM248 411.7100000000001C126.66 411.71 28.29 313.3400000000001 28.29 192S126.66 -27.71 248 -27.71S467.71 70.66 467.71 192S369.34 411.71 248 411.71zM248 -19.51C131.19 -19.51 36.49 75.18 36.49 192S131.19 403.51 248 403.51S459.51 308.81 459.51 192S364.81 -19.51 248 -19.51zM434.23 143.47A191.613 191.613 0 0 0 414.1 94.78L339.9700000000001 130.66L401.4500000000001 75.84A193.515 193.515 0 0 0 364.2500000000001 38.55L309.4500000000001 100.12L345.3300000000001 25.85A190.94399999999996 190.94399999999996 0 0 0 296.7000000000001 5.62L269.4100000000001 84.09L274.2000000000001 1.16C265.5900000000001 -0.02 256.8000000000001 -0.64 247.8700000000001 -0.64S230.1500000000001 -0.02 221.5400000000001 1.16L226.3000000000001 83.62L199.1500000000001 5.59A191.365 191.365 0 0 0 150.5000000000001 25.79L186.4300000000001 100.13L131.5600000000001 38.49A193.85 193.85 0 0 0 94.3400000000001 75.77L155.9300000000001 130.67L81.6700000000001 94.74A191.638 191.638 0 0 0 61.5300000000001 143.43L139.3700000000001 170.54L57.1400000000001 165.78C55.9800000000001 174.35 55.3600000000001 183.1 55.3600000000001 191.99C55.3600000000001 200.99 55.9900000000001 209.83 57.1800000000001 218.5L139.5600000000001 213.7299999999999L61.6200000000001 240.89A191.726 191.726 0 0 0 81.8500000000001 289.56L156.0700000000001 253.64L94.55 308.5A193.85 193.85 0 0 0 131.8300000000001 345.7199999999999L186.59 284.19L150.7600000000001 358.36A191.48999999999998 191.48999999999998 0 0 0 199.4100000000001 378.49L226.2800000000001 301.24L221.5700000000001 382.85C230.1800000000001 384.03 238.9600000000001 384.65 247.8900000000001 384.65S265.6 384.03 274.2100000000001 382.85L269.4700000000001 300.69L296.5200000000001 378.45C313.79 373.95 330.1200000000001 367.1 345.1500000000001 358.28L309.3300000000001 284.16L364.0500000000001 345.63A193.12999999999997 193.12999999999997 0 0 0 401.2900000000001 308.4L339.8400000000001 253.63L413.9600000000001 289.49A191.51499999999996 191.51499999999996 0 0 0 434.1600000000001 240.84L356.3500000000001 213.74L438.5900000000001 218.49C439.7800000000001 209.83 440.4100000000001 200.99 440.4100000000001 192C440.4100000000001 183.12 439.8000000000001 174.37 438.6300000000001 165.81L356.5100000000001 170.56L434.2300000000002 143.47z" /> + <glyph glyph-name="first-order" + unicode="" + horiz-adv-x="448" d=" M12.9 218.8C13 218.9 13.1 219.1 13.2 219.2C13.2 219.1 13.2 218.9 13.1 218.8H12.9zM224 351.4C216.9 351.4 209.4 350.8 202.6 349.7L206.3 282.3L184.3 346.3C170 342.6 156.6 336.9 144.3 329.7000000000001L173.7 268.3L128.6 319.2000000000001C117.2 310.3 106.9 300.1 98 288.3L148.6 242.9L87.5 272.6C80.4 260.3 74.6 246.9 70.9 232.6L135.2 210L67.2 214C66.3 206.9 65.8 199.4 65.8 192S66.4 177.4 67.2 170.3L134.9 174.3L70.9 151.7C74.6 137.4 80.3 124 87.5 111.4L148.6 141.1L97.7 96C106.6 84.3 116.8 73.7 128.6 65.1L173.5 116L144 54.6C156.3 47.2 169.7 41.5 184 37.7L206.3 102.3000000000001L202.3 34.3000000000001C209.4 33.2 216.9 32.6000000000001 224 32.6000000000001C231.4 32.6000000000001 238.6 33.2000000000001 245.7 34.3000000000001L241.7 102.9000000000001L264.3 37.8000000000001C278.6 41.8000000000001 292 47.2 304.3 54.7L274.9 116L319.8 65.1C331.5 74 341.8 84.2000000000001 350.4 96L299.8 141.1L360.9 111.7000000000001C368 124.0000000000001 373.8 137.4 377.5 152.0000000000001L313.5 174.3000000000001L380.9 170.3000000000001C382 177.4000000000001 382.3 184.6000000000001 382.3 192.0000000000001S382 206.9000000000001 380.9 214.0000000000001L313.2 210.0000000000001L377.2 232.3000000000001C373.5 246.6000000000001 368.1 260.3000000000001 360.6 272.6000000000001L299.7 242.9000000000001L350.3 288.3000000000001C341.4000000000001 300.0000000000001 331.2 310.3000000000001 319.7 319.2000000000001L274.6 268.3000000000001L304 329.4000000000001C291.7 336.8000000000001 278.3 342.5000000000001 264 346.3000000000001L241.7 282L245.7 349.7C238.6 350.9 231.4 351.4 224 351.4zM443.4 320V64L224 -64L4.6 64V320L224 448L443.4 320zM426.3 309.7L224 427.1L21.7 309.7V74.6L224 -43.1L426.3 74.6V309.7zM224 410.9L411.7 301.5V82.6L224 -26.9L36.3 82.6V301.4L224 410.9zM224 360C131.7 360 57.1 284.9 57.1 192C57.1 99.4 131.7 24.3 224 24.3C316 24.3 390.9 99.4 390.9 192C390.9 284.9 316 360 224 360z" /> + <glyph glyph-name="firstdraft" + unicode="" + horiz-adv-x="384" d=" M384 256H320V128H192V0H0V25.6H166.4V153.6H294.4V281.6H384V256zM358.4 217.6V89.6H230.4V-38.4H64V-64H256V64H384V217.6H358.4zM384 25.6H294.4V-64H320V0H384V25.6zM0 448V64H128V192H256V320H384V448H0z" /> + <glyph glyph-name="flickr" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM144.5 129C109.4 129 81 157.4 81 192.5S109.4 256 144.5 256S208 227.6 208 192.5S179.6 129 144.5 129zM303.5 129C268.4 129 240 157.4 240 192.5S268.4 256 303.5 256S367 227.6 367 192.5S338.6 129 303.5 129z" /> + <glyph glyph-name="flipboard" + unicode="" + horiz-adv-x="448" d=" M0 416V-32H448V416H0zM358.4 236.8H268.8V147.2000000000001H179.2V57.6H89.6V326.4H358.4V236.8z" /> + <glyph glyph-name="fly" + unicode="" + horiz-adv-x="384" d=" M197.8 20.2C210.7 8.5 231.5 -13.1 231 -30.5C231 -31.3 230.9 -32.1 230.9 -33C229.1 -52.8 212.1 -64.1 191.8 -64C166.8 -63.9 151.9 -47.2 153.1 -28.2C154.1 -12 173.6 8.5 185.5 19.4C187.8000000000001 21.5000000000001 188.2 22.1 191.1 23.0000000000001C194.5 23.0000000000001 195 22.7 197.8 20.2zM331.9 380.7C315.6 406.4 293.3 421.3 268.6 432.8C243.1 443.5 214 448.2 192 448C147.9 448 120.8 434.8 110.9 430.7C57.3 402.8 26.5 360.8 28 289.4C35.1 207.2 125 113.4 183.8 55.6C185.5 54 188.3 51.1 190 50.5L193.3 50.4C195.4 51.1 195.1 50.9 196.8 52.5C249.1 101.7 337.5 198.3 352.7000000000001 268.2C359.7000000000001 307.4 355.8000000000001 340.7 331.9000000000001 380.7zM186.8 96.1C158.8 147.2000000000001 121.6 226.8 117.5 285.1C114.1 332.6 128.9 416.3 186.8 421.8V96.1zM328.7 268C312.3 211.2 251.4 140 209.8 97.7C237.6 149.6 275 231 277 289.6C278.6 335.5 267.2 395.4 229 421C317.8 402.7 344.5 322.9 328.7 268z" /> + <glyph glyph-name="font-awesome-alt" + unicode="" + horiz-adv-x="448" d=" M397.8 380.2C405.6 380.2 412.1 373.6 412.1 365.9V18.3C412.1 10.4999999999999 405.5 3.9999999999999 397.8 3.9999999999999H50.2C42.4 3.9999999999999 35.9 10.6 35.9 18.3V365.8C35.9 373.6 42.5 380.1 50.2 380.1H397.8M397.8 416H50.2C22.7 416 0 393.3 0 365.8V18.2C0 -9.3 22.7 -32 50.2 -32H397.8C425.3 -32 448 -9.3 448 18.2V365.8C448 393.3 425.3 416 397.8 416zM339.3 276.8C333.3 276.8 309.4000000000001 261.3 286.7 261.3C282.5 261.3 278.3 261.9 274.2 263.7000000000001C254.5 271.5 237.2 277.4 215.1 277.4C194.8 277.4 173.3 270.8 155.4 263.7000000000001C153.6 263.1 151.8 262.5 150.6 261.9V279.8C158.4 285.8 163.1 294.7000000000001 163.1 305.5C163.1 323.4 148.8 337.8 130.8 337.8S98.5 323.5 98.5 305.5C98.5 295.3 103.3 285.8 111 279.8V67.7000000000001C111 56.9 120 48.0000000000001 130.7 48.0000000000001C139.7 48.0000000000001 146.8 54.0000000000001 149.2 61.7000000000001V63C149.8 64.8 149.8 66 149.8 67.8V112C151 112 152.2 112.6 152.8 113.2C172.5 121.6 195.8 129.9 218.5 129.9C249.6 129.9 261.5 113.8 287.8 113.8C306.3 113.8 324.2 120.4 339.8 127.5C344 129.3 347 131.1 347 135.3V269.7C348.8 273.8 344.7 276.8 339.3 276.8z" /> + <glyph glyph-name="font-awesome-flag" + unicode="" + horiz-adv-x="448" d=" M444.373 88.576C444.373 81.408 438.229 78.336 431.061 75.264C402.389 62.976 371.669 51.712 338.901 51.712C292.821 51.712 271.317 80.384 216.021 80.384C176.085 80.384 134.101 66.048 100.309 50.688C98.261 49.664 96.213 49.664 94.165 48.64V-29.184C94.165 -50.5890000000001 78.043 -64 60.373 -64C40.9169999999999 -64 25.5569999999999 -48.64 25.5569999999999 -29.184V345.6C12.245 355.8400000000001 3.029 372.224 3.029 390.656C3.029 422.4 28.629 448 60.373 448S117.717 422.4 117.717 390.656C117.717 372.224 109.525 355.8400000000001 95.189 345.6V313.856C99.313 315.23 153.957 342.528 209.877 342.528C275.147 342.528 307.553 314.88 336.853 314.88C375.765 314.88 418.773 342.528 429.0130000000001 342.528C437.2050000000001 342.528 444.3730000000001 336.384 444.3730000000001 329.216V88.576z" /> + <glyph glyph-name="font-awesome" + unicode="" + horiz-adv-x="448" d=" M397.8 416H50.2C22.7 416 0 393.3 0 365.8V18.2C0 -9.3 22.7 -32 50.2 -32H397.8C425.3 -32 448 -9.3 448 18.2V365.8C448 393.3 425.3 416 397.8 416zM352.4000000000001 131.7C352.4000000000001 127.5 348.8 125.7 344.6 123.9C327.9000000000001 116.7 310 110.2 290.8 110.2C263.9000000000001 110.2 251.4 126.9 219.1 126.9C195.8 126.9 171.3 118.5 151.6 109.6C150.4 108.9999999999999 149.2 108.9999999999999 148 108.4V63C148 61.2 148 59.4 147.4 58.2V57C145 48.6 137.2000000000001 42.7 128.3000000000001 42.7C117.0000000000001 42.7 108 51.7 108 63V281.6C100.2000000000001 287.6 94.9000000000001 297.1 94.9000000000001 307.9C94.9000000000001 326.4 109.8000000000001 341.4 128.4 341.4C146.9 341.4 161.9 326.5 161.9 307.9C161.9 297.1 157.1 287.6 148.8000000000001 281.6V263.1C150.6000000000001 263.7 152.4 264.3 154.2000000000001 265.5C172.7000000000001 273.3 194.8000000000001 279.8 215.7000000000001 279.8C238.4000000000001 279.8 256.3000000000001 273.8 276.6 266.1C280.8 264.3 285 263.7000000000001 289.7000000000001 263.7000000000001C312.4000000000001 263.7000000000001 337.5000000000001 279.8 343.5000000000001 279.8C348.3000000000001 279.8 352.5000000000001 276.2000000000001 352.5000000000001 272V131.7z" /> + <glyph glyph-name="fonticons-fi" + unicode="" + horiz-adv-x="384" d=" M114.4 224H206.8L191.6 172.8H115.2V15C115.2 7 112.4 5.8 119.6 5L179.2 -0.6V-35H0V0.2L29.2 3C36.4 3.8 38.4 6.2 38.4 13.8V169.6C38.4 172.8 34.4 172.8 30.4 172.8H0V224H38.4V252.8C38.4 320.8 74.8 348.8 144.4 348.8C191.2 348.8 233.2 337.6 233.2 276.4L163.6 268C164 293.6 157.6 299.6 141.2 299.6C116 299.6 115.2 286 115.2 262V230C115.2 226.8 110.4 224 114.4 224zM384 -35H243.2V-0.6L271.2 3C278.4 3.8 281.6 5.4 281.6 13V161C281.6 166.6 277.6 170.2 272.4 171.8L239.2 180.6L248.4 221H358.4V13C358.4 5 354.8 4.2 362.4 3L384 -0.6V-35zM354 312.2L366.4 266.6L356.4 256.6L313.6 279.4L270.8 256.6L260.8 266.6L273.2 312.2L243.2 348.6L248 358.6H286L307.2 397H320L341.2 358.6H379.2L384 345.4L354 312.2z" /> + <glyph glyph-name="fonticons" + unicode="" + horiz-adv-x="448" d=" M0 416V-32H448V416H0zM167.4 220H234.8L223.7 182.7H168V69.8C168 63.9999999999999 166 63.1 171.2 62.4999999999999L214.7 58.3999999999999V33.2999999999999H84V59L105.3 61C110.5 61.6 112 63.3 112 68.9V180.3C112 182.6 109.1 182.6 106.2 182.6H84V220H112V241C112 290.6 138.5 311 189.3 311C223.4 311 254 302.8 254 258.2L203.3 252.1C203.6 270.8 198.9 275.1 187 275.1C168.6 275.1 168 265.2 168 247.7V224.4C168 222 164.5 220 167.4 220zM364 33.3H261.3V58.4L281.7 61.0000000000001C286.9 61.6000000000001 289.3 62.7000000000001 289.3 68.3000000000001V176.2C289.3 180.3 286.4000000000001 182.9 282.6 184.1L258.4000000000001 190.5L265.1 220H345.3V68.3C345.3 62.4999999999999 342.7 61.9 348.2 60.9999999999999L363.9 58.3999999999999V33.2999999999999zM342.1 288.8L351.1 255.6L343.8 248.3L312.6 264.9L281.4000000000001 248.3L274.1 255.6L283.1 288.8L261.3 313L264.8 322.6H292.5L308 350.6H317.3L332.8 322.6H360.5L364 313L342.1 288.8z" /> + <glyph glyph-name="fort-awesome-alt" + unicode="" + horiz-adv-x="512" d=" M211.7 206.9V155.2C211.7 153.1 210.1 151.5 208 151.5H185.8C183.7 151.5 182.1 153.1 182.1 155.2V206.9C182.1 209 183.7 210.6 185.8 210.6H208C210.1 210.6 211.7 209 211.7 206.9zM326.2 210.6H304C301.9 210.6 300.3 209 300.3 206.9V155.2C300.3 153.1 301.9000000000001 151.5 304 151.5H326.2C328.3 151.5 329.9 153.1 329.9 155.2V206.9C329.8 209 328.2 210.6 326.2 210.6zM297.1 -52.6C296.2 -52.7 295.4 -52.9 294.5 -53C293.5 -53.2 292.3999999999999 -53.3 291.3999999999999 -53.5C290.5 -53.6 289.5999999999999 -53.8 288.5999999999999 -53.9C287.5999999999999 -54 286.5999999999999 -54.2 285.5999999999999 -54.3C284.5999999999999 -54.4 283.5999999999999 -54.4999999999999 282.7 -54.6C281.7 -54.7 280.8 -54.8 279.8 -54.9C278.8 -55 277.7 -55.1 276.7 -55.2C275.8 -55.3 274.8999999999999 -55.4 274 -55.4C272.8999999999999 -55.5 271.7 -55.5 270.6 -55.6C269.8 -55.6 268.9 -55.7 268.1 -55.7C266.8 -55.8 265.5 -55.8 264.2 -55.8C263.5 -55.8 262.8 -55.9 262.1 -55.9C260.1 -55.9 258.1 -56.0000000000001 256.1 -56.0000000000001S252.1 -56.0000000000001 250.1 -55.9C249.4 -55.9 248.7 -55.9 248 -55.8C246.7 -55.8 245.4 -55.7 244.1 -55.7C243.3 -55.7 242.4 -55.6 241.6 -55.6C240.5 -55.4999999999999 239.3 -55.4999999999999 238.2 -55.4C237.3 -55.3 236.4 -55.3 235.5 -55.2C234.5 -55.1 233.4 -55 232.4 -54.9C231.4 -54.8 230.5 -54.7 229.5 -54.6C228.5 -54.4999999999999 227.5 -54.4 226.6 -54.3C225.6 -54.1999999999999 224.6 -54.1 223.6 -53.9C222.7 -53.8 221.8 -53.6 220.8 -53.5C219.8 -53.4 218.7 -53.2 217.7 -53C216.8 -52.9 216 -52.7 215.1 -52.6C149.5 -41.7 92.6 -4.9 55.1 46.8C54.9 46.9999999999999 54.8 47.3 54.6 47.4999999999999C53.8 48.6 53 49.6999999999999 52.3 50.8C52 51.1999999999999 51.7 51.6 51.5 51.9999999999999C50.8 53.1 50.1 54.1 49.4 55.1999999999999C49.1 55.6999999999999 48.8 56.0999999999999 48.5 56.5999999999999C47.8 57.6999999999999 47.1 58.6999999999999 46.5 59.7999999999999C46.2 60.2999999999999 45.9 60.6999999999999 45.6 61.1999999999999C44.9 62.2999999999999 44.3 63.3999999999999 43.6 64.4999999999999C43.4 64.8999999999999 43.1 65.2999999999999 42.9 65.6999999999999C40.5 69.6999999999999 38.3 73.7999999999999 36.1 77.8999999999999C36 78.0999999999999 35.9 78.1999999999999 35.8 78.3999999999999C35.2 79.4999999999999 34.7 80.5999999999999 34.1 81.6999999999999C33.8 82.2999999999999 33.5 82.7999999999999 33.3 83.3999999999999C32.8 84.3999999999999 32.3 85.4999999999999 31.8 86.4999999999999C31.5 87.1999999999999 31.2 87.7999999999999 30.9 88.4999999999999C30.4 89.4999999999999 30 90.4999999999999 29.5 91.4999999999999L28.6 93.5999999999999C28.2 94.5999999999999 27.7 95.5999999999999 27.3 96.5999999999999C27 97.2999999999999 26.7 98.0999999999999 26.4 98.7999999999999L25.2 101.7999999999999C24.9 102.5999999999999 24.6 103.2999999999999 24.3 104.0999999999999C23.9 105.0999999999999 23.5 106.0999999999999 23.2 107.0999999999999C22.9 107.9999999999999 22.6 108.8999999999999 22.2 109.8999999999999C21.6 111.4999999999999 21.1 113.1999999999999 20.5 114.7999999999999C20.2 115.6999999999999 19.9 116.5999999999999 19.6 117.5999999999999C19.3 118.4999999999999 19.1 119.3999999999999 18.8 120.2999999999999C18.5 121.1999999999999 18.2 122.1999999999999 18 123.0999999999999C17.7 123.9999999999999 17.5 124.8999999999999 17.2 125.7999999999999C16.9 126.7999999999999 16.7 127.6999999999999 16.4 128.6999999999999C16.2 129.5999999999999 15.9 130.4999999999999 15.7 131.3999999999999C15.4 132.3999999999999 15.2 133.3999999999999 15 134.3999999999999C14.8 135.2999999999999 14.6 136.0999999999999 14.4 136.9999999999999C14.2 138.0999999999999 13.9 139.1999999999999 13.7 140.1999999999999C13.5 140.9999999999999 13.4 141.7999999999999 13.2 142.5999999999999C12.9 143.8999999999999 12.7 145.2999999999999 12.4 146.5999999999999C12.3 147.1999999999999 12.2 147.6999999999999 12.1 148.2999999999999L11.2 153.9999999999998C11.1 154.5999999999999 11 155.2999999999999 10.9 155.8999999999998C10.7 157.1999999999998 10.5 158.4999999999998 10.4 159.7999999999998C10.3 160.5999999999998 10.2 161.2999999999998 10.1 162.0999999999998C10 163.2999999999998 9.8 164.4999999999998 9.7 165.6999999999998C9.6 166.4999999999998 9.5 167.2999999999999 9.5 168.0999999999998C9.4 169.2999999999998 9.3 170.4999999999998 9.2 171.5999999999998C9.1 172.3999999999998 9.1 173.1999999999998 9 173.9999999999998C8.9 175.1999999999998 8.8 176.3999999999998 8.8 177.6999999999998C8.8 178.4999999999998 8.7 179.1999999999998 8.7 179.9999999999998C8.6 181.2999999999998 8.6 182.6999999999998 8.5 183.9999999999998C8.5 184.6999999999998 8.5 185.2999999999998 8.4 185.9999999999998C8.4 187.9999999999998 8.3 189.9999999999998 8.3 191.9999999999998C8.3 245.4999999999998 25.2 294.9999999999998 54.1 335.5999999999998C56.4 338.7999999999998 58.8 341.9999999999998 61.2 345.0999999999998C66.1 351.2999999999998 71.3 357.3999999999998 76.8 363.0999999999998C79.5 365.9999999999998 82.3 368.7999999999998 85.2 371.4999999999998C88.1 374.1999999999998 91 376.8999999999998 94 379.4999999999998C98.5 383.3999999999998 103.1 387.0999999999998 107.9 390.6999999999998C109.5 391.8999999999998 111.1 393.0999999999998 112.7 394.1999999999998C140 413.8 171.7 427.9 206 435C222.1 438.3 238.9 440 256 440S289.8 438.3 306 435C340.3 428 372 413.9 399.6 394.3C401.2000000000001 393.1 402.8 392 404.4000000000001 390.8C409.2000000000001 387.2 413.8 383.5 418.3 379.6C430.3 369.2 441.3 357.7 451.1 345.2C453.6 342.1 455.9 338.9 458.2 335.7C487.1 295 504 245.5 504 192C504 190 504 188 503.9 186C503.9 185.3 503.9 184.7 503.8 184C503.8 182.7 503.6999999999999 181.3 503.6 180C503.6 179.2 503.4999999999999 178.5 503.4999999999999 177.7C503.3999999999999 176.5 503.3999999999999 175.3 503.3 177C503.1999999999999 176.2 503.1999999999999 175.4 503.1 174.6C502.9999999999999 173.4 502.9 172.2000000000001 502.8 171.1C502.6999999999999 170.3 502.6 169.5 502.6 168.7000000000001C502.4999999999999 167.5000000000001 502.3 166.3000000000001 502.2 165.1C502.1 164.3 502 163.6 501.9 162.8C501.7 161.5 501.5 160.2 501.4 158.9C501.3 158.3 501.2 157.6 501.1 157.0000000000001L500.2 151.3000000000001C500.1 150.7000000000001 500 150.2000000000001 499.9 149.6000000000001C499.7 148.3000000000001 499.4 146.9000000000001 499.1 145.6000000000001C498.9 144.8000000000001 498.8 144.0000000000001 498.6 143.2000000000001C498.4 142.1000000000001 498.1 141.0000000000001 497.9 140.0000000000001C497.7 139.1000000000001 497.5 138.3000000000001 497.3 137.4000000000001C497.1 136.4000000000001 496.8 135.4000000000001 496.6 134.4000000000001C496.4 133.5000000000001 496.1 132.6000000000001 495.9 131.7000000000001C495.6 130.7000000000001 495.4 129.8000000000001 495.1 128.8000000000001C494.9 127.9000000000002 494.6 127.0000000000001 494.3 126.1000000000001C493.9999999999999 125.2000000000002 493.6999999999999 124.2000000000002 493.4999999999999 123.3000000000001C493.1999999999999 122.4000000000002 492.9999999999999 121.5000000000001 492.6999999999999 120.6000000000001C492.3999999999999 119.7000000000002 492.0999999999999 118.8000000000001 491.8 117.8000000000001C491.3 116.2000000000001 490.6999999999999 114.5000000000001 490.1 112.9000000000002C489.8 112.0000000000002 489.4999999999999 111.1000000000001 489.1 110.1000000000001C488.7 109.1000000000001 488.4 108.1000000000001 487.9999999999999 107.1000000000001C487.6999999999999 106.3000000000001 487.3999999999999 105.6000000000001 487.1 104.8000000000001L485.9 101.8000000000001C485.6 101.1000000000001 485.3 100.3000000000001 485 99.6000000000001C484.6 98.6000000000001 484.2 97.6000000000001 483.7 96.6000000000001L482.8 94.5000000000001C482.4 93.5000000000001 481.9 92.5000000000001 481.4 91.5000000000001C481.1 90.8000000000001 480.8 90.2000000000001 480.5000000000001 89.5000000000001C480.0000000000001 88.5000000000001 479.5000000000001 87.4000000000001 479.0000000000001 86.4000000000001C478.7 85.8000000000001 478.4 85.3000000000001 478.2 84.7000000000001C477.6 83.6000000000001 477.1 82.5000000000001 476.5000000000001 81.4000000000001C476.4 81.2000000000001 476.3000000000001 81.1000000000001 476.2 80.9000000000001C474.0000000000001 76.8000000000001 471.8000000000001 72.7000000000001 469.4 68.7000000000001C469.2 68.3000000000001 468.9 67.9000000000001 468.7 67.5000000000001C468.0000000000001 66.4000000000001 467.4 65.3000000000001 466.7 64.2000000000001C466.4 63.7000000000001 466.1 63.3000000000001 465.8000000000001 62.8000000000001C465.1000000000001 61.7000000000001 464.4000000000001 60.7000000000001 463.8000000000001 59.6000000000001C463.5000000000001 59.1000000000001 463.2 58.7000000000002 462.9000000000001 58.2000000000002C462.2000000000001 57.1000000000001 461.5000000000001 56.1000000000001 460.8000000000001 55.0000000000002C460.5000000000001 54.6000000000002 460.2 54.2000000000002 460.0000000000001 53.8000000000002C459.2 52.7000000000002 458.5000000000001 51.6000000000002 457.7 50.5000000000002C457.5000000000001 50.3000000000002 457.4 50.0000000000002 457.2 49.8000000000002C419.6 -4.8999999999998 362.7000000000001 -41.5999999999998 297.1 -52.5999999999998zM414.4 33.6C427.4 46.6 438.6 60.9999999999999 448 76.4999999999999V147.8C448 149.9 446.4 151.5 444.3 151.5H422.1C420 151.5 418.4000000000001 149.8999999999999 418.4000000000001 147.8V122H388.9000000000001V266C388.9000000000001 268.1 387.3 269.7 385.2000000000001 269.7H363.1C361 269.7 359.4000000000001 268.1 359.4000000000001 266V240.1H329.9000000000001V266C329.9000000000001 268.1 328.3 269.7 326.2000000000001 269.7H304C301.9 269.7 300.3 268.1 300.3 266V240.1H270.8V266C270.8 270.8 264.3 269.7 261.3 269.7V300.4C268 302 275.1 303.2 282.1 303.2C290.9000000000001 303.2 298.9000000000001 299.7 307.5 299.7C311.2 299.7 329.9 300.6 329.9 306.2V354.6C329.9 356.7 328.3 358.3 326.2 358.3C322 358.3 314 354.8 306.8 354.8C298.9000000000001 354.8 289.9000000000001 358.3 280.5 358.3C274 358.3 267.6 357.4 261.3 356V359.9C265.7 362 268.7 366.6 268.7 371.4C268.7 388.2 243.3 388.2 243.3 371.4C243.3 366.6 246.3 361.9 250.7 359.9V269.7C247.7 269.7 241.2 270.8 241.2 266V240.1H211.7V266C211.7 268.1 210.1 269.7 208 269.7H185.8C183.7 269.7 182.1 268.1 182.1 266V240.1H152.6V266C152.6 268.1 151 269.7 148.9 269.7H126.8000000000001C124.7000000000001 269.7 123.1 268.1 123.1 266V122H93.5V147.8C93.5 149.9 91.9 151.5 89.8 151.5H67.7C65.6 151.5 64 149.9 64 147.8V76.5C73.4 61 84.6 46.6 97.6 33.6C118.2 13 142.1 -3.1 168.8 -14.4C182.7 -20.3 197 -24.7 211.7 -27.6V48.2C211.7 106.8000000000001 300.3 106.8000000000001 300.3 48.2V-27.6C315 -24.7 329.3 -20.2 343.2 -14.4C369.9 -3.1 393.8 13 414.4 33.6" /> + <glyph glyph-name="fort-awesome" + unicode="" + horiz-adv-x="512" d=" M489.2 160.1H461.8C459.2 160.1 457.2 158.1 457.2 155.5V123.5H420.6V301.8C420.6 304.4 418.6 306.4 416 306.4H388.6C386 306.4 384 304.4 384 301.8V269.8H347.3999999999999V301.8C347.3999999999999 304.4 345.3999999999999 306.4 342.7999999999999 306.4H315.3999999999999C312.7999999999999 306.4 310.7999999999999 304.4 310.7999999999999 301.8V269.8H274.1999999999999V301.8C274.1999999999999 307.8 266.1999999999999 306.4 262.4999999999999 306.4V344.4C270.7999999999999 346.4 279.5999999999999 347.8 288.1999999999999 347.8C299.0999999999999 347.8 309.0999999999999 343.5 319.5999999999999 343.5C324.1999999999999 343.5 347.2999999999999 344.6 347.2999999999999 351.5V411.5C347.2999999999999 414.1 345.2999999999999 416.1 342.6999999999998 416.1C337.5999999999998 416.1 327.5999999999998 411.8 318.6999999999998 411.8C308.9999999999999 411.8 297.7999999999999 416.1 286.0999999999998 416.1C278.0999999999998 416.1 270.0999999999998 415 262.3999999999998 413.2000000000001V418.1C267.7999999999998 420.7000000000001 271.4999999999999 426.4000000000001 271.4999999999999 432.4000000000001C271.4999999999999 453.1 240.0999999999998 453.2 240.0999999999998 432.4000000000001C240.0999999999998 426.4000000000001 243.7999999999998 420.7000000000001 249.1999999999998 418.1V306.4C245.4999999999999 306.4 237.4999999999999 307.8 237.4999999999999 301.8V269.8H200.8999999999998V301.8C200.8999999999998 304.4 198.8999999999998 306.4 196.2999999999999 306.4H168.8999999999998C166.2999999999999 306.4 164.2999999999999 304.4 164.2999999999999 301.8V269.8H128V301.8C128 304.4 126 306.4 123.4 306.4H96C93.4 306.4 91.4 304.4 91.4 301.8V123.5H54.8V155.5C54.8 158.1 52.8 160.1 50.2 160.1H22.8C20.2 160.1 18.2 158.1 18.2 155.5V-64H201.1V32C201.1 104.6 310.8 104.6 310.8 32V-64H493.7V155.5C493.8000000000001 158.1 491.8000000000001 160.1 489.2 160.1zM201.1 164.6C201.1 162 199.1 160 196.5 160H169.1C166.5 160 164.5 162 164.5 164.6V228.6C164.5 231.2 166.5 233.2 169.1 233.2H196.5C199.1 233.2 201.1 231.2 201.1 228.6V164.6zM347.5 164.6C347.5 162 345.5 160 342.9 160H315.5C312.9 160 310.9 162 310.9 164.6V228.6C310.9 231.2 312.9 233.2 315.5 233.2H342.9C345.5 233.2 347.5 231.2 347.5 228.6V164.6z" /> + <glyph glyph-name="forumbee" + unicode="" + horiz-adv-x="448" d=" M5.8 138.3C2 155.3 0 172.5 0 189.7C0 313 99.8 413 223.1 413C239.7 413 256.4 411 272.4 407.5C149 360.5 51.9 262 5.8 138.3zM398.7 327.5C385 345 369 360.2 350.9 372.8C201.3 328.5 84.6 210.7 41.2 60.8C53.7 42.7 69.2 25.2 86.4 11.8C129.5 163.1 247.6 283.5 398.7 327.5zM414.5 74.8C429.7 99.9 439.9 128.5 444 157.6C364.6 114.7000000000001 299 47 256.4 -32.7C286.4 -28.3 315.3 -17.4 341 -1.4C376 -14.5 411.9 -25.7 448 -35C438.7 1.5 427.6 39.5 414.5 74.8zM444.2 220.3C441.6 239.8 436.3 259 428.4 277.1C290.5 231.3 182 120.5 137.1 -18C155.2 -25.6 174.1 -30.5 193.7 -33.2C240 80.9 330.5 173.6 444.2 220.3z" /> + <glyph glyph-name="foursquare" + unicode="" + horiz-adv-x="368" d=" M323.1 445H49.9C12.4 445 0 416.7 0 398.9V-34.9C0 -55.2 12.1 -62.6 18.2 -65C24.4 -67.5 41 -69.6 51.1 -57.9C180 91.5 182.2 94 182.2 94C185.3 97.4 185.6 97.1 189 97.1H272.4C307.5 97.1 313 122.3 316.7 136.8L365.3 379.8C373.8 422.2 363.1 445 323.1 445zM306.8 371.2L295.4000000000001 311.5C294.2000000000001 305 285.9000000000001 298.3 278.5000000000001 298.3H172.1C160.1 298.3 151.5 290 151.5 278V265C151.5 253 160.1 244.4 172.1 244.4H262.5C270.8 244.4 279.1 235.2 277.3 226.2C275.5 217.3 266.8 172.4 265.9000000000001 167.4C265.0000000000001 162.5000000000001 259.1 153.9 249.0000000000001 153.9H175.5C162 153.9 158.3000000000001 152.1 149 141.3C149 141.3 140.1 129.9 59.5 33C58.6 32.1 57.7 32.4 57.7 33.3V372.1C57.7 379.8 64.5 388.7 74.3 388.7H293.3000000000001C301.5000000000001 388.7 308.9000000000001 381 306.8000000000001 371.2z" /> + <glyph glyph-name="free-code-camp" + unicode="" + horiz-adv-x="576" d=" M69.3 303.5C28.3 235 32.9 140.5 70.3 76.5C92.5 38.3 120 24.1 120 10C120 3.2 114 -3 107.2 -3C87.7 -3 8 72.5 8 194.8C8 306.3 86 380.8 105.1 380.8C111.1 380.8 120 376 120 369.7000000000001C120 357 91.7 341.1 69.3 303.5zM265.1 89.7C269.6 87.9 277.4000000000001 84.5 277.4000000000001 90.9C277.4000000000001 93.6 275.2000000000001 93.8 273.1 94.5C264.6 97.9 259.1 102.2 254.0000000000001 109.7C245.8000000000001 121.8 243.9000000000001 133.9 243.9000000000001 148.3C243.9000000000001 180.4 288.1 186.2 288.1 218.3C288.1 230.6 280.4000000000001 234.2 280.4000000000001 237.6C280.4000000000001 239.8 281.1 239.8 283.3 239.8C291.3 239.8 302.4000000000001 226.5 305.8 220C308 215.4 308.2 214 308.2 208.9C308.2 201.9 307.5 194.7 307.5 187.6C307.5 160.6 339.4 167.8 339.4 180.8C339.4 186.8 335.8 192.4 335.8 198.2C335.8 198.9 335.8 199.4 336.5 199.4C339.8999999999999 199.4 345.8999999999999 191.7 347.6 189.3C353.4 180.4 356.1 168.5 356.1 157.9C356.1 125.5000000000001 326.6 108.9 326.6 101.9C326.6 100.9 329.5 94.2000000000001 338.7 100.0000000000001C368.4 115.1000000000001 391.8 147.6000000000001 391.8 189.8000000000001C391.8 223.4000000000001 383.1 247.5000000000001 359.7 272.4000000000001C355.8 276.5000000000001 343.3 289.3000000000001 337.2 289.3000000000001C329 289.3000000000001 344.4 270.7000000000001 344.4 258.1000000000001C344.4 250.9000000000001 339.6 245.8000000000001 332.1 245.8000000000001C320.5 245.8000000000001 317.6 271.2000000000001 316.2 279.1000000000001C310.4 312.9000000000001 303.4 337.3000000000001 269.8 353.2000000000001C259.4000000000001 358.2000000000001 233.3 365.0000000000001 233.3 355.4000000000001C233.3 353.0000000000001 236 351.3000000000001 237.9 350.3000000000001C247.1 344.7000000000001 257.5 328.9000000000001 257.5 312.1000000000001C257.5 266.0000000000001 199.8 223.9000000000001 199.8 175.9000000000001C199.6 135.6000000000001 227.9 103.3000000000001 265.1 89.7000000000001zM470.4 381C464.4 381 456 374.5 456 368.4C456 359.7 468.1 348.8 473.6 343C555.2 257.9 552.2 128.7 491.2 52C484.2 43.1 455.9 16.7 455.9 8.5C455.9 3.4 464.1 -2.9 469.1 -2.9C494.5 -2.9 567.9 77.9 567.9 182.8C568 302.1 491.8 381 470.4 381zM428.1 57.9H167C157.6 57.9 151.5 50.4 151.5 41.5C151.5 33 158.5 26 167 26H428.1C437.5 26 440 33.5 440 42.4C440 50.9 436.5 57.9 428.1 57.9z" /> + <glyph glyph-name="freebsd" + unicode="" + horiz-adv-x="448" d=" M303.7 351.8C314.8 362.9 419.2 428.8 442.9 405C466.6 381.3 400.8 276.9 389.7 265.8C378.6 254.7 350.3 264.9 326.6 288.7000000000001C302.8 312.4 292.5 340.7000000000001 303.7 351.8zM109.9 379.9C73.6 400.5 22 423.4 5.6 406.9C-11 390.3 12.7 337.5 33.5 301.2C52 333.4 78.3 360.5 109.9 379.9zM406.7 274C410 262.7 409.4 253.3 404 247.9C383.7 227.6 316.5 274.9 294.7 318C276.7 350.3 283.6 371.4 309.6 366.7C315.3 370.3 321.9 374.3 329.2 378.3C299.4 393.8 265.6 402.6 229.7 402.6C110.6 402.6 14.1 306.1 14.1 187C14.1 68 110.6 -28.6 229.7 -28.6S445.3 67.9 445.3 187C445.3 225.4 435.2 261.5 417.6 292.8C413.7000000000001 285.8 410 279.5 406.7000000000001 274z" /> + <glyph glyph-name="fulcrum" + unicode="" + horiz-adv-x="269.66" d=" M70.75 283.86L35.37 240.31L0 283.86L35.38 327.4100000000001L70.75 283.86zM119.23 448L98.69 249.82L47.72 192L98.7 134.18L119.23 -64V147.11L78.15 192L119.23 236.89V448zM198.9 283.86L234.28 240.31L269.6600000000001 283.86L234.2800000000001 327.4100000000001L198.9 283.86zM150.42 236.89L191.5 192L150.42 147.11V-64L170.96 134.18L221.94 192L170.96 249.82L150.42 448V236.89z" /> + <glyph glyph-name="galactic-republic" + unicode="" + horiz-adv-x="496" d=" M248 -56C111.25 -56 0 55.25 0 192S111.25 440 248 440S496 328.75 496 192S384.75 -56 248 -56zM248 423.4700000000001C120.37 423.4700000000001 16.53 319.63 16.53 192S120.37 -39.47 248 -39.47S479.47 64.37 479.47 192S375.63 423.4700000000001 248 423.4700000000001zM275.62 401.6600000000001V377.04A185.933 185.933 0 0 0 359.19 342.5L376.58 359.86C347.83 381.92 313.28 396.75 275.62 401.6600000000001zM220.25 401.5900000000001C182.61 396.6500000000001 148.09 381.79 119.37 359.74L136.65 342.38H136.73C160.8 360.2200000000001 189.28 372.4400000000001 220.25 377.05V401.5900000000001zM232.5 351.42V268.55C222.46 266.52 213.08 262.61 204.83 257.13L146.21 315.7200000000001L124.28 293.79L182.95 235.12C177.48 226.89 173.5 217.53 171.48 207.5H88.58V176.5H171.48C173.5 166.48 177.49 157.19 182.95 148.96L124.28 90.27L146.21 68.34L204.83 126.96A77.873 77.873 0 0 1 232.5 115.49V32.5899999999999H263.5V115.4899999999999C273.55 117.5199999999999 282.87 121.5499999999999 291.12 127.0399999999999L349.79 68.3499999999999L371.7200000000001 90.2799999999999L313.05 148.9699999999999C318.51 157.1999999999999 322.5200000000001 166.4899999999999 324.55 176.5099999999999H407.42V207.5099999999999H324.55C322.5300000000001 217.53 318.5200000000001 226.89 313.05 235.13L371.7200000000001 293.8L349.79 315.73L291.12 257.06C282.87 262.55 273.55 266.53 263.5 268.56V351.42H232.5zM415.74 320.7000000000001L398.38 303.3400000000001A186.337 186.337 0 0 0 433.05 219.67H457.67C452.72 257.36 437.8400000000001 291.9600000000001 415.74 320.7000000000001zM80.19 320.5700000000001C58.13 291.85 43.28 257.3100000000001 38.34 219.66H62.99C67.59 250.6200000000001 79.75 279.11 97.58 303.18L80.19 320.57zM38.34 164.33C43.26 126.69 58.09 92.15 80.14 63.43L97.5 80.8199999999999C79.69 104.8899999999999 67.58 133.3899999999999 62.99 164.3399999999999H38.34zM433.04 164.33C428.43 133.34 416.24 104.83 398.37 80.73L415.73 63.37C437.81 92.11 452.71 126.66 457.66 164.33H433.04zM136.66 41.62L119.3 24.26C148.03 2.17 182.6 -12.72 220.26 -17.67V6.97C189.27 11.6 160.73 23.76 136.66 41.62zM359.19 41.57C335.1 23.73 306.61 11.49 275.62 6.9V-17.67C313.29 -12.75 347.83 2.12 376.58 24.18L359.27 41.57H359.19z" /> + <glyph glyph-name="galactic-senate" + unicode="" + horiz-adv-x="512" d=" M249.86 414.52V388.45C236.28 367.83 226 279.86 225.39 173.1C237.13 188.72 244.52 206.43 244.52 221.34V238.2200000000001C244.49 243.54 245.27 248.7500000000001 246.71 253.8700000000001C247.36 256.01 248.1 257.9500000000001 249.33 259.6900000000001C250.56 261.4400000000001 252.76 263.48 256.01 263.48C259.25 263.48 261.46 261.43 262.69 259.6900000000001C263.92 257.9400000000001 264.6600000000001 256.01 265.31 253.8700000000001C266.75 248.7500000000001 267.5300000000001 243.54 267.5 238.2200000000001V221.34C267.5 206.43 274.89 188.72 286.63 173.1C286 279.86 275.72 367.8300000000001 262.14 388.4500000000001V414.52H249.86zM223.52 266.75C214 264.6 204.82 261.56 196.06 257.67C204.96 241.55 205.82 225.03 197.77 220.38C189.77 215.76 175.92 224.61 166.41 240.2C154.83 231.41 144.53 220.88 135.85 209.11C150.58 199.49 158.74 186.19 154.17 178.45C149.63 170.75 134.14 171.31 118.7 179.41C112.92 166.16 108.95 151.9 107.05 136.99C116.73 136.81 125.72 134.61 133.23 130.9499999999999C151.01 131.25 166 132.9099999999999 173.72 135.17C179.2700000000001 161.52 196.7400000000001 183.4 220.04 194.68C220.77 220.23 221.92 244.35 223.52 266.75zM288.48 266.75C290.07 244.35 291.23 220.23 291.9500000000001 194.68C315.2400000000001 183.4 332.7200000000001 161.52 338.2700000000001 135.17C345.9900000000001 132.91 360.98 131.25 378.7600000000001 130.95C386.2700000000001 134.61 395.2600000000001 136.8 404.9400000000001 136.99C403.0400000000001 151.9 399.0800000000001 166.16 393.2900000000001 179.41C377.8500000000001 171.31 362.3600000000001 170.75 357.8200000000001 178.4500000000001C353.2500000000001 186.1900000000001 361.4200000000001 199.5000000000001 376.1400000000001 209.1100000000001C367.4600000000001 220.8800000000001 357.1600000000001 231.4100000000001 345.5800000000001 240.2000000000001C336.0700000000001 224.6100000000001 322.2200000000001 215.7600000000001 314.2200000000001 220.3800000000001C306.17 225.0300000000001 307.0300000000001 241.5400000000001 315.93 257.6700000000001A147.49 147.49 0 0 1 288.48 266.7500000000001zM256 258.15C252.77 258.15 250.14 249.34 249.91 238.22H249.86V221.34C249.86 179.92 200.85 126.3 156.37 126.3C104.37 126.3 33.62 127.75 0 97.13V94.62C9.42 77.5 20.58 61.45 33.18 46.65C45.7 67.74 84.77 87.6 141.2 88C186.88 86.98 220.23 67.67 231.96 47.13C231.97 47.12 231.95 47.09 231.96 47.08C239.63 44.94 247.81 43.85 256 43.87C264.19 43.85 272.37 44.94 280.04 47.08C280.05 47.09 280.03 47.12 280.04 47.13C291.78 67.67 325.12 86.98 370.8 88C427.23 87.61 466.29 67.74 478.8199999999999 46.65C491.42 61.45 502.5799999999999 77.51 511.9999999999999 94.62V97.13C478.3899999999999 127.75 407.63 126.3 355.63 126.3C311.1499999999999 126.3 262.14 179.92 262.14 221.34V238.2200000000001H262.0899999999999C261.8599999999999 249.3400000000001 259.2299999999999 258.1500000000001 255.9999999999999 258.1500000000001zM256 161.56C278.42 161.56 296.6 143.38 296.6 120.96S278.42 80.31 256 80.31S215.4 98.54 215.4 120.96C215.4 143.38 233.58 161.56 256 161.56zM256 153.92C237.81 153.92 223.04 139.15 223.04 120.96S237.81 88 256 88S288.96 102.77 288.96 120.96S274.19 153.92 256 153.92zM256 147.78C270.81 147.78 282.82 135.7700000000001 282.82 120.96S270.81 94.14 256 94.14S229.18 106.15 229.18 120.96S241.19 147.78 256 147.78zM141.2 81.11C131.01 81.04 119.6 80.75 110.7 79.45C111.13 75.03 112.21 60.82 117.81 49.69C126.92 52.25 136.17 53.59 145.43 53.59C186.71 52.65 216.91 19.24 223.69 -20.88L223.8 -25.58C234.2 -27.49 244.99 -28.52 256.01 -28.52C267.04 -28.52 277.82 -27.5 288.22 -25.58L288.33 -20.88C295.11 19.24 325.31 52.65 366.59 53.59C375.85 53.59 385.1 52.2500000000001 394.21 49.6900000000001C399.81 60.8200000000001 400.89 75.03 401.32 79.4500000000001C392.42 80.7500000000001 381 81.03 370.82 81.1100000000001C352.06 80.6900000000001 335.63 76.9400000000001 322.21 71.4400000000001C309.67 55.4100000000001 293.05 41.4100000000001 272.63 38.3700000000001C272.54 38.3500000000001 272.46 38.33 272.36 38.3200000000001C272.31 38.3100000000001 272.25 38.28 272.2 38.27C266.96 37.2 261.57 36.67 256.01 36.67C250.46 36.67 245.06 37.2 239.82 38.27C239.77 38.28 239.71 38.3100000000001 239.66 38.3200000000001C239.56 38.34 239.49 38.3600000000001 239.39 38.3700000000001C218.97 41.4 202.36 55.4100000000001 189.81 71.4400000000001C176.39 76.9300000000001 159.95 80.6900000000001 141.2 81.1100000000001z" /> + <glyph glyph-name="get-pocket" + unicode="" + horiz-adv-x="448" d=" M407.6 384H40.6C18.5 384 0 365.5 0 343.4V208.2C0 83.5 99.7 -16 224.2 -16C348.2 -16 448 83.5 448 208.2V343.4C448 365.8 430.3 384 407.6 384zM245.6 115.5C233.2 103.7 214.2 104.4 203.2 115.5C89.5 224.4 88.3 220.6 88.3 238.7C88.3 255.6 102.1 269.4 119 269.4C136 269.4 135.1 265.6 224.2 180.1C314.8 267 312.8 269.4 329.7 269.4C346.6 269.4 360.4 255.6 360.4 238.7C360.4 220.9 357.5 223 245.6 115.5z" /> + <glyph glyph-name="gg-circle" + unicode="" + horiz-adv-x="512" d=" M257 440C120 440 9 329 9 192S120 -56 257 -56S505 55 505 192S394 440 257 440zM207.5 65.2L81.8 190.9L207.5 316.6L242.7 281.2L218.5 257L207.4 268.1L130.2 190.9L207.4 113.7L234 140.3L180.9 193.2L205.3 217.6L282.5 140.4L207.5 65.2000000000001zM306.5 67.4L271.3 102.6L295.4000000000001 127L306.5000000000001 115.8999999999999L383.7000000000001 193.0999999999999L306.5000000000001 270.2999999999999L280.0000000000001 243.7999999999999L333.1000000000001 190.8999999999999L308.7000000000001 166.5L231.5000000000001 243.7L306.5000000000001 318.7L432.2 193L306.5 67.4z" /> + <glyph glyph-name="gg" + unicode="" + horiz-adv-x="512" d=" M179.2 217.6L281.6 115.2L179.2 12.8L0 192L179.2 371.2L224 326.4L198.4 300.8L179.2 320L51.2 192L179.2 64L230.7 115.5L153.6 192L179.2 217.6zM332.8 371.2L230.4 268.8L332.8 166.4L358.4000000000001 192L281.3000000000001 268.5L332.8000000000001 320L460.8000000000001 192L332.8000000000001 64L313.6000000000001 83.2L288.0000000000001 57.6L332.8000000000001 12.8L512 192L332.8 371.2z" /> + <glyph glyph-name="git-square" + unicode="" + horiz-adv-x="448" d=" M140.1 99.5C152.2 99.5 169.6 97.4 169.6 81.6C169.6 66.1 155.7 62.8 142.6 62.8C130.3 62.8 111.7 64.8 111.7 80.8S127.4 99.5 140.1 99.5zM115.4 216.1C115.4 201.3 122 192 137.7 192C153.2 192 158.9 202 158.9 216.5C159 250.9 115.4 251.3 115.4 216.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM207 274.3C194.7 269.5 181.5 265.9 168.1 265.9C129.6 288 77.4 265 77.4 216.4C77.4 198.4 89 173.5 107 167.5V166.8C93.6 160.9 89.9 130.7 107.7 119.8V119.1C88.2 112.7000000000001 75.4 100.3 75.4 78.9C75.4 42.1 110.2 31.9 140.8 31.9C177.9 31.9 205.6 45.3 205.6 86.2000000000001C205.6 136.6 133.5 118.0000000000001 133.5 145.3000000000001C133.5 154.9000000000001 138.7 158.7000000000001 147.6 160.5000000000001C177.2 166.0000000000001 195.8 189.1000000000001 195.8 219.2000000000001C195.8 224.4 194.7 229.4000000000001 192.9 234.2000000000001C197.7 235.3000000000001 202.4 236.5000000000001 207 238.1000000000001V274.3000000000001zM263.8 272.5H224.2C225.5000000000001 261.9 225.3 129.9 224.2 117H263.8C262.7 129.8 262.6 262.1 263.8 272.5zM268.3 325.8C268.3 339.2 258.3 352 244.2 352C229.9 352 219.6 339.5 219.6 325.8C219.6 312.2 230.1 299.9 244.2 299.9C257.9000000000001 299.9 268.3 312.4 268.3 325.8zM372.6 272.5H336.2000000000001C336.2000000000001 282.3 335.8000000000001 292.1 337.3000000000001 302H296.8000000000001C298.1000000000001 294.7 297.9000000000001 288.4 297.9000000000001 272.5H280.8000000000001V238.6C292.7000000000001 240.5 292.9000000000001 239.3 297.9000000000001 239.3V238.6H297.5000000000001V175.9C297.5000000000001 144.8 302.0000000000001 114.7 340.2000000000001 114.7C350.9000000000001 114.7 363.2000000000001 116.5 372.7000000000001 121.7V156.7C367.0000000000001 152.8 358.8000000000002 150.8 351.8000000000002 150.8C338.6000000000002 150.8 336.3000000000002 163.7 336.3000000000002 174.2V239.4C359.0000000000001 239.4 372.7000000000001 238.7 372.7000000000001 238.7V272.5z" /> + <glyph glyph-name="git" + unicode="" + horiz-adv-x="448" d=" M18.8 226.3C18.8 201 35 166.3 60.3 157.8V156.8C41.5 148.5 36.3 106.2 61.3 91V90C34 81 16 63.7 16 33.8C16 -17.7 64.8 -32 107.5 -32C159.5 -32 198.2 -13.3 198.2 44C198.2 114.5 97.2 88.5 97.2 126.8C97.2 140.3 104.4 145.5 116.9 148.1C158.4 155.8 184.4 188.1 184.4 230.3C184.4 237.6 182.9 244.5 180.4 251.3C187.1 252.8 193.6 254.6 200.1 256.8V307.3C182.9 300.5 164.4 295.5 145.6 295.5C91.8 326.5 18.8 294.2 18.8 226.3zM106.5 62.5C123.5 62.5 147.7 59.5 147.7 37.5C147.7 15.7 128.2 11.2 110 11.2C92.7 11.2 66.7 13.9 66.7 36.4C66.8 58.7 88.8 62.5 106.5 62.5zM103.3 192C81.3 192 72 205 72 225.8C72 275.1 133 274.6 133 226.3C133 206 125 192 103.3 192zM432 142.5V93.5C418.7 86.2 401.5 83.7 386.5 83.7C333 83.7 326.7 125.9 326.7 169.4V257.1H327.2V258.1C320.2 258.1 319.9 259.7 303.2 257.1V304.6H327.2C327.2 326.9 327.5 335.6 325.7 345.8H382.4C380.4 332 380.9 318.3 380.9 304.6H431.9V257.1S412.6 258.1 380.9 258.1V167C380.9 152.2 384.2 134.2 402.7 134.2C412.5 134.2 424 137 432 142.5zM286 379.3C286 360.6 271.5 343.1 252.2 343.1C232.4 343.1 217.7 360.3 217.7 379.3C217.7 398.6 232.2 416 252.2 416C272 416 286 398 286 379.3zM279.8 304.8C278 290.2000000000001 278.2 105 279.8 87H224.3C225.9 105.1 226.1 290 224.3 304.8H279.8z" /> + <glyph glyph-name="github-alt" + unicode="" + horiz-adv-x="480" d=" M186.1 119.3C186.1 98.4 175.2 64.2 149.4 64.2S112.7 98.4 112.7 119.3S123.6 174.4 149.4 174.4S186.1 140.2000000000001 186.1 119.3zM480 169.8C480 137.9 476.8 104.1 462.5 74.8C424.6 -1.8 320.4 0 245.8 0C170 0 59.6 -2.7 20.2 74.8C5.6 103.8 0 137.9 0 169.8C0 211.7 13.9 251.3 41.5 283.4C36.3 299.2000000000001 33.8 315.8 33.8 332.2C33.8 353.7 38.7 364.5 48.4 384C93.7 384 122.7 375 157.2 348C186.2 354.9 216 358 245.9000000000001 358C272.9000000000001 358 300.1 355.1 326.3000000000001 348.8C360.3000000000001 375.5 389.3000000000001 384 434.1000000000001 384C443.9000000000001 364.5 448.7000000000001 353.7 448.7000000000001 332.2C448.7000000000001 315.8 446.1000000000001 299.5 441.0000000000001 284C468.5000000000001 251.6 480.0000000000001 211.7 480.0000000000001 169.8zM415.7 119.3C415.7 163.2 389 201.9 342.2 201.9C323.3 201.9 305.2 198.5 286.2 195.9C271.3 193.6 256.4 192.7 241.1 192.7C225.9 192.7 211 193.6 196 195.9C177.3 198.5 159 201.9 140 201.9C93.2 201.9 66.5 163.2 66.5 119.3C66.5 31.5 146.9 18 216.9 18H265.1C335.4000000000001 18 415.7000000000001 31.4 415.7000000000001 119.3zM333.1 174.4C307.3 174.4 296.4000000000001 140.2000000000001 296.4000000000001 119.3S307.3 64.2 333.1 64.2S369.8 98.4 369.8 119.3S358.9000000000001 174.4 333.1 174.4z" /> + <glyph glyph-name="github-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM277.3 32.3C268.9000000000001 30.8 265.8 36 265.8 40.3C265.8 45.7 266 73.3 266 95.6C266 111.2000000000001 260.8 121.1 254.7 126.3C291.7 130.4 330.7 135.5 330.7 199.4C330.7 217.6 324.2 226.7 313.6 238.4C315.3 242.7 321 260.4 311.9 283.4C298 287.7000000000001 266.2 265.5 266.2 265.5C253 269.2 238.7 271.1 224.6 271.1C210.5 271.1 196.2 269.2 183 265.5C183 265.5 151.2 287.7 137.3 283.4C128.2 260.5 133.8 242.8 135.6 238.4C125 226.7 120 217.6 120 199.4C120 135.8 157.3 130.4 194.3 126.3C189.5 122 185.2 114.6 183.7 104C174.2 99.7 149.9 92.3 135.4 117.9C126.3000000000001 133.7 109.9 135 109.9 135C93.7 135.2 108.8 124.8 108.8 124.8C119.6 119.8 127.2000000000001 100.6 127.2000000000001 100.6C136.9 70.9 183.3000000000001 80.9 183.3000000000001 80.9C183.3000000000001 67.0000000000001 183.5 44.4 183.5 40.3C183.5 36 180.5 30.8 172 32.3C106 54.4 59.8 117.2000000000001 59.8 190.6C59.8 282.4000000000001 130 352.1 221.8 352.1S388 282.4 388 190.6C388.1 117.2000000000001 343.3 54.3 277.3 32.3zM179.2 93.4C177.3 93.0000000000001 175.5 93.8 175.3 95.1C175.1 96.6 176.4 97.9 178.3 98.3C180.2 98.5 182 97.7 182.2 96.4C182.5 95.1 181.2 93.8 179.2 93.4zM169.7 94.3C169.7 93 168.2 91.9 166.2 91.9C164 91.7000000000001 162.5 92.8 162.5 94.3C162.5 95.6 164 96.7 166 96.7C167.9 96.9 169.7 95.8 169.7 94.3zM156 95.4C155.6 94.1 153.6 93.5000000000001 151.9 94.1C150 94.5 148.7000000000001 96 149.1 97.3C149.5 98.6 151.5 99.2 153.2 98.8C155.2 98.2 156.5 96.7 156 95.4zM143.7 100.8C142.8 99.7 140.9 99.9 139.4 101.4C137.9 102.7000000000001 137.5 104.6 138.5 105.5000000000001C139.4 106.6000000000001 141.3 106.4 142.8 104.9C144.1 103.6 144.6 101.6 143.7 100.8zM134.6 109.9C133.7 109.3 132 109.9 130.9 111.4S129.8000000000001 114.6 130.9 115.3C132 116.2 133.7000000000001 115.5 134.6 114C135.7 112.5 135.7 110.7 134.6 109.9zM128.1 119.6C127.2 118.7000000000001 125.7 119.2000000000001 124.6 120.2000000000001C123.5 121.5000000000001 123.3 123.0000000000001 124.2 123.7000000000001C125.1 124.6 126.6 124.1 127.7 123.1C128.8 121.8 129 120.3 128.1 119.6zM121.4 127C121 126.1 119.7 125.9 118.6 126.6C117.3 127.2000000000001 116.7 128.3 117.1 129.2000000000001C117.5 129.8000000000001 118.6 130.1 119.9 129.6C121.2 128.9 121.8 127.8 121.4 127z" /> + <glyph glyph-name="github" + unicode="" + horiz-adv-x="496" d=" M165.9 50.6C165.9 48.6 163.6 47 160.7 47C157.4 46.7 155.1 48.3 155.1 50.6C155.1 52.6 157.4 54.2 160.3 54.2C163.3 54.5000000000001 165.9 52.9 165.9 50.6zM134.8 55.1C134.1 53.1 136.1 50.8 139.1 50.2C141.7 49.2 144.7 50.2 145.3 52.2S144 56.5000000000001 141 57.4C138.4 58.1 135.5 57.1 134.8 55.1zM179 56.8C176.1 56.1 174.1 54.2 174.4 51.9C174.7 49.9 177.3 48.6 180.3 49.3C183.2 50 185.2 51.9 184.9 53.9C184.6 55.8 181.9 57.1 179 56.8zM244.8 440C106.1 440 0 334.7 0 196C0 85.1 69.8 -9.8 169.5 -43.2C182.3 -45.5 186.8 -37.6 186.8 -31.1C186.8 -24.9 186.5 9.3 186.5 30.3C186.5 30.3 116.5 15.3 101.8 60.1C101.8 60.1 90.4 89.2000000000001 74 96.7000000000001C74 96.7000000000001 51.1 112.4 75.6 112.1C75.6 112.1 100.5 110.1 114.2 86.3C136.1 47.7 172.8 58.8 187.1 65.4C189.4 81.4 195.9 92.5000000000001 203.1 99.1C147.2 105.3 90.8 113.4 90.8 209.6C90.8 237.1 98.4 250.9000000000001 114.4 268.5C111.8 275 103.3 301.8 117 336.4000000000001C137.9 342.9000000000001 186 309.4000000000001 186 309.4000000000001C206 315 227.5 317.9000000000001 248.8 317.9000000000001S291.6 315 311.6 309.4000000000001C311.6 309.4000000000001 359.7000000000001 343 380.6 336.4000000000001C394.3 301.7000000000001 385.8 275 383.2000000000001 268.5C399.2000000000001 250.8000000000001 409.0000000000001 237.0000000000001 409.0000000000001 209.6C409.0000000000001 113.1 350.1000000000001 105.4 294.2000000000001 99.1C303.4000000000001 91.2000000000001 311.2000000000001 76.2000000000001 311.2000000000001 52.7C311.2000000000001 19.0000000000001 310.9000000000001 -22.6999999999999 310.9000000000001 -30.9C310.9000000000001 -37.4 315.5000000000001 -45.3 328.2000000000001 -43C428.2 -9.8 496 85.1 496 196C496 334.7 383.5 440 244.8 440zM97.2 95.1C95.9 94.1 96.2 91.8 97.9 89.9C99.5 88.3 101.8 87.6 103.1 88.9C104.4 89.9 104.1 92.2000000000001 102.4 94.1C100.8 95.7000000000001 98.5 96.4 97.2 95.1zM86.4 103.2000000000001C85.7 101.9 86.7 100.3000000000001 88.7 99.3000000000001C90.3 98.3000000000001 92.3 98.6000000000001 93 100.0000000000001C93.7 101.3000000000001 92.7 102.9 90.7 103.9C88.7 104.5000000000001 87.1 104.2000000000001 86.4 103.2000000000001zM118.8 67.6C117.2 66.3 117.8 63.3 120.1 61.4C122.4 59.1 125.3 58.8 126.6 60.4C127.9 61.7000000000001 127.3 64.7000000000001 125.3 66.6C123.1 68.9 120.1 69.2000000000001 118.8 67.6zM107.4 82.3C105.8 81.3 105.8 78.7 107.4 76.4C109 74.1 111.7 73.1 113 74.1C114.6 75.4 114.6 78 113 80.3C111.6 82.6 109 83.6 107.4 82.3z" /> + <glyph glyph-name="gitkraken" + unicode="" + horiz-adv-x="592" d=" M565.7 329.9C563.4000000000001 336 556.4000000000001 339.1 550.4000000000001 336.5C544.7 334.1 541.9000000000001 327.6 544.1000000000001 321.9C555.0000000000001 292.9 561.0000000000001 261.4 561.0000000000001 228.6C561.0000000000001 94 460.7000000000001 -17.1 330.8000000000002 -34.1V89.6C338.7000000000001 91.1 346.3000000000002 93.2000000000001 353.8000000000002 95.8V-8.2C460.5000000000001 17.7 539.7000000000002 113.9 539.7000000000002 228.6C539.7000000000002 320.4000000000001 488.9000000000001 400.4000000000001 413.9000000000002 441.9000000000001C408.2000000000002 445.1 400.9000000000002 442.8 398.0000000000002 436.9000000000001C395.3000000000002 431.4000000000001 397.4000000000002 424.7000000000001 402.7000000000002 421.8C470.6000000000001 384.2000000000001 516.6000000000001 311.8000000000001 516.6000000000001 228.6000000000001C516.6000000000001 135.3000000000001 458.7000000000002 55.5000000000001 376.8000000000002 23.2V115.4C391.0000000000001 119.9 401.7000000000001 133.1 401.7000000000001 148.9C401.7000000000001 162.0000000000001 394.9000000000001 173.3 384.4000000000001 179.4C392.7000000000001 258.9000000000001 428.9000000000001 238.0000000000001 428.9000000000001 263.3000000000001V278C428.9000000000001 316 341.0000000000001 439.8 299.9000000000001 442.7C297.4000000000001 442.9 294.9000000000001 442.9 292.3000000000001 442.7C251.1 439.7 163.2 316 163.2 278V263.2C163.2 237.9 199.5 258.9 207.7 179.3C197.1 173.1999999999999 190.4 161.9 190.4 148.8C190.4 133 201 119.8 215.2 115.3V23.1C133.3 55.3 75.4 135.1 75.4 228.5C75.4 311.6 121.4 384 189.3 421.7C194.7 424.7 196.7 431.3 194 436.8C191.1 442.7 183.9 445 178.1 441.8C103.1 400.3 52.3 320.3 52.3 228.5C52.3 113.8 131.5 17.6999999999999 238.2 -8.3000000000001V95.6999999999999C245.8 93.1999999999999 253.3 91.0999999999999 261.2 89.4999999999999V-34.2C131.4 -17.2 31 93.9 31 228.5C31 261.3 37 292.8 47.9 321.8C50.1 327.6 47.3 334 41.6 336.4C35.6 339 28.6 336 26.3 329.8C14.5 298.3 8 264.2 8 228.5C8 73.4 130.6 -53.1 284.3 -59.3V86.6C291.1 86.2000000000001 299.3 86.1 307.7 86.6V-59.2C461.4 -53.1 584 73.4 584 228.5C584 264.2 577.5 298.3 565.7 329.9zM365.9 172.5C378.9 172.5 389.6 162 389.6 148.8C389.6 135.7 379 125.1 365.9 125.1C352.9 125.1 342.2 135.6 342.2 148.8C342.2 161.9 352.8 172.5 365.9 172.5zM226.1 125.2C212.9 125.2 202.4 135.9 202.4 148.9S212.9 172.6 226.1 172.6C239.2 172.6 249.8 162 249.8 148.9C249.8 135.9 239.3 125.2 226.1 125.2z" /> + <glyph glyph-name="gitlab" + unicode="" + horiz-adv-x="512" d=" M29.782 248.268L256 -45.714L8.074 138.301C1.218 143.443 -1.638 152.297 0.933 160.294L29.782 248.268zM105.187 423.074C102.045 431.928 89.478 431.928 86.336 423.074L29.782 248.268H161.743L105.187 423.074zM161.743 248.268L256 -45.714L350.257 248.2680000000001H161.743zM511.067 160.294L482.218 248.268L256 -45.714L503.926 138.301C510.781 143.443 513.637 152.297 511.067 160.294zM425.663 423.074C422.521 431.928 409.954 431.928 406.812 423.074L350.257 248.268H482.218L425.663 423.074z" /> + <glyph glyph-name="gitter" + unicode="" + horiz-adv-x="384" d=" M66.4 125.5H16V448H66.4V125.5zM166.9 371.9H116.5V-64H166.9V371.9zM267.5 371.9H217.1V-64H267.5V371.9zM368 372H317.6V125H368V372z" /> + <glyph glyph-name="glide-g" + unicode="" + horiz-adv-x="448" d=" M407.1 236.8C403.6 238.2 395.5 240.6 391.7000000000001 240.6C354.6 240.6 329.5000000000001 223.8 298.2000000000001 206.1L297.3000000000001 207C304.3000000000001 254.3 320.8000000000001 298.9000000000001 320.8000000000001 347.4000000000001C320.8 418.9 282.6 448 212.4 448C97.3 448 39 334.3 39 249.6C39 161.7 90.3 113 177.6 113C189.6 113 188.6 114 188.6 109.2C171.7 -19.7 97.8 -23.9 97.8 14.6C97.8 53.8 142.8 73.2000000000001 143.3 75.6C143 87.8 96.3 103.2000000000001 84.4 103.2000000000001C50.5 103.1 32 52.0000000000001 32 23.9C32 -28 64.8 -64 117.5 -64C194.9 -64 251.5 13.8 268.9 81.4C284 141.9 280.1 144.7 288.6 149C320.8 165.2 346.1 176 382.4 176C400.2 176 412.9 172.3 441.3 167.6C444.2 167.6 448 170.5 448 173.4C448 181.4 414.6 233.9000000000001 407.1 236.8000000000001zM231.8 321.2000000000001C222.5 276.5 213.2 231.6 204 186.9C201.7 176.7 190.7 179.1 182 179.1C143.7 179.1 133 220.9 133 252.2C133 299.2 151 361.5 194.8 385.6C201.8 389.7 209.6 392.3 217.4 392.3C236 392.3 237.4 379 237.4 363.6C237.3 349.3 234.7 335.1 231.8 321.2z" /> + <glyph glyph-name="glide" + unicode="" + horiz-adv-x="448" d=" M252.8 299.4C252.8 290.6 251.2 281.7000000000001 249.4 273C243.6 245.2 237.8 217.2 232.1 189.4C230.7 183.1 223.8 184.5 218.4 184.5C194.6 184.5 187.9 210.5 187.9 230C187.9 259.3 199.1 298.1 226.4 313.1C230.7 315.6 235.6 317.3 240.5 317.3C251.9 317.3 252.8 309 252.8 299.4zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM384 181C384 186.1 363.2 218.7 358.5 220.5C356.3 221.4 351.3 222.8 348.9 222.8C325.8 222.8 310.2 212.3 290.7 201.3L290.2 201.8C294.5 231.2 304.8 259 304.8 289.2000000000001C304.8 333.8 281 351.9000000000001 237.3 351.9000000000001C165.6 351.9000000000001 129.3 281.1 129.3 228.4000000000001C129.3 173.7000000000001 161.3 143.4 215.6 143.4C223.1 143.4 222.5 144.0000000000001 222.5 141.1C212 60.8 166 58.2000000000001 166 82.2000000000001C166 106.6 194 118.7000000000001 194.3000000000001 120.2000000000001C194.1000000000001 127.8000000000001 165 137.4 157.6 137.4C136.5 137.4 124.9 104.4 124.9 86.8C124.9 54.5 145.3 32.1 178.2 32.1C226.4000000000001 32.1 261.6 81.8 272.5 123.8C281.9 161.5 279.5 163.2 284.8 165.9C304.8 176.0000000000001 320.6 182.7000000000001 343.2 182.7000000000001C354.3 182.7000000000001 362.2 180.4 379.9 177.5000000000001C381.7 177.4 384 179.2000000000001 384 181.0000000000001z" /> + <glyph glyph-name="gofore" + unicode="" + horiz-adv-x="400" d=" M324 128.2H310.8V93.5C286.3 70.4 254.5 57.7 220.9 57.7C147.7 57.7 88.5 117.9 88.5 192.1C88.5 266.2 147.7 326.5 220.9 326.5C256.2 326.5 289.5 312.5 314.5 287.1L376.8 350.4C335 392.7 279.7 416 220.7 416C98 416 0 315.4 0 192C0 69.5 97 -32 220.7 -32C283.9 -32 345.2 -5.8 391.7 50.5C389.7 78.1 378.3 128.2 324 128.2zM311.9 240.7H205.6V151.7H324C357.5 151.7 384.5 136.6 400 109.9V140.5C400 205.7 359.6 240.7 311.9 240.7z" /> + <glyph glyph-name="goodreads-g" + unicode="" + horiz-adv-x="384" d=" M42.6 44.7H45.4C58.1 44.7 70.9 44.7 83.6 44.6C85.2 44.6 86.7 44.9999999999999 87.2 42.4999999999999C94.3 7.6 117.2 -12.1000000000001 150.1 -21.4C177 -29.0000000000001 204.2 -29.2 231.4 -23.2C265.2 -15.8000000000001 287.4 5.1 299.4 37.1999999999999C307.4 58.6999999999999 310.1 80.9999999999999 310.4 103.6999999999999C310.5 109.4999999999999 310.7 150.6999999999999 310.2 156.5L309.3 156.8C308.5 155.3 307.6 153.9 306.8 152.4C284.7 109.3 245.5 85 201.4 83.3C98.4 79.3 32 140.3 29.4 259.5C28.9 283.2 31.2 306.4 37.7 329.2C58.3 400.3 112.3 447.4 191.6 448C252.9 448.4 293.1 409.3 307.8 377.7C308.3 376.6 309.1 375.4 310.2 375.8V437.4H354.5C354.5 157.1 354.6 105.2 354.6 105.2C354.5 26.7 327.9000000000001 -38.5 251.6 -57C182.1 -73.9 92.6 -61.8 55.6 0.2C47.6 13.7 43.8 28.5 42.6 44.7zM188.9 411.5C136.4 412 80.4 370.8 73.9 277.7C69.8 218.7 88.7 155.5 145.4 129.1C173 116.2000000000001 219.7 114.1 253.7 137.8C301.3 171 316.4 234.8 308.5 291.8C298.8 362.9 260.7 411.8 188.9 411.5z" /> + <glyph glyph-name="goodreads" + unicode="" + horiz-adv-x="448" d=" M299.9 256.8C305 219.5 295.2 177.8 264 156.1C241.7 140.6 211.2 142 193.2 150.4C156.1 167.7000000000001 143.7 209 146.4 247.6C150.7 308.5 187.3 335.5 221.7 335.1C268.6 335.3 293.5 303.3 299.9 256.8zM448 360V24C448 -6.9 422.9 -32 392 -32H56C25.1 -32 0 -6.9 0 24V360C0 390.9 25.1 416 56 416H392C422.9 416 448 390.9 448 360zM330 134.8S329.9 168.8 329.9 352.1H300.9V311.8C300.1 311.5 299.7 312.3 299.3 313C289.7 333.7 263.4 359.3 223.3 359C171.4 358.6 136.1 327.8 122.7 281.2C118.4 266.3 116.9 251.1 117.2 235.6C118.9 157.7 162.3 117.8 229.6 120.4C258.5 121.5 284.1 137.4 298.6 165.6C299.1 166.6 299.7 167.5 300.3 168.5C300.5 168.3999999999999 300.7 168.3999999999999 300.9 168.3C301.2 164.5 301.1 137.6 301 133.8C300.8 119 299 104.3 293.8 90.3C286 69.3 271.5 55.6 249.3 50.8C231.5 46.9 213.7 46.9999999999999 196.1 51.9999999999999C174.6 58.1 159.6 70.9999999999999 155 93.8C154.7 95.4 153.7 95.1 152.7 95.1H125.9C126.7 84.4999999999999 129.1 74.8 134.4 65.9C158.6 25.4 217.1 17.4 262.6 28.5C312.5 40.8 329.9000000000001 83.4 330 134.8z" /> + <glyph glyph-name="google-drive" + unicode="" + horiz-adv-x="512" d=" M339 133.1L175.4 416H336.6L500.2 133.1H339zM201.5 109.5L120.9 -32H431.4L512 109.5H201.5zM154.1 380.6L0 109.5L80.6 -32L237 239.2L154.1 380.6z" /> + <glyph glyph-name="google-play" + unicode="" + horiz-adv-x="512" d=" M325.3 213.7L104.6 435L385.4 273.8L325.3 213.7zM47 448C34 441.2 25.3 428.8 25.3 412.7V-28.6C25.3 -44.7 34 -57.1 47 -63.9L303.6 192.1L47 448zM472.2 222.4L413.3 256.5L347.6 192L413.3 127.5L473.4 161.6C491.4 175.9 491.4 208.1 472.2 222.4zM104.6 -51L385.4 110.2L325.3 170.3L104.6 -51z" /> + <glyph glyph-name="google-plus-g" + unicode="" + horiz-adv-x="640" d=" M386.061 219.504C387.895 209.812 389.204 200.12 389.204 187.548C389.204 77.795 315.599 0 204.8 0C98.716 0 12.8 85.915 12.8 192S98.716 384 204.8 384C256.664 384 299.8830000000001 365.141 333.411 333.708L281.2850000000001 283.678C267.1400000000001 297.299 242.2570000000001 313.277 204.8 313.277C139.316 313.277 85.88 259.056 85.88 192C85.88 124.944 139.316 70.723 204.8 70.723C280.761 70.723 309.313 125.468 313.765 153.496H204.8V219.505H386.0610000000001zM571.467 213.067V268.8H515.466V213.067H459.733V157.066H515.466V101.333H571.467V157.066H627.2V213.067H571.4670000000001z" /> + <glyph glyph-name="google-plus-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM164 92C108.7 92 64 136.7 64 192S108.7 292 164 292C191 292 213.5 282.2 231 265.8L203.9 239.7C196.5 246.8 183.6 255.1 164.1 255.1C130 255.1 102.2 226.9000000000001 102.2 191.9C102.2 157.0000000000001 130 128.7000000000001 164.1 128.7000000000001C203.7 128.7000000000001 218.5 157.2000000000001 220.9 171.8000000000001H164V206.2000000000001H258.4C259.4 201.2000000000001 260 196.1000000000001 260 189.6000000000001C260 132.5000000000001 221.7 92.0000000000001 164 92.0000000000001zM384 173.8H355V144.8H325.8V173.8H296.8V203H325.8V232H355V203H384V173.8z" /> + <glyph glyph-name="google-plus" + unicode="" + horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM177.3 68C108.5 68 53.3 123.5 53.3 192S108.5 316 177.3 316C208.6 316 237.4 305 260.3 283.7L226.7 251.1C213.5 264 195.4 270.2 177.3 270.2C134.4 270.2 100.1 234.7 100.1 192.1S134.3 114 177.3 114C209.9 114 242.2 133.1 247.4 167.3H177.3V209.9H294.2000000000001C295.5000000000001 203.1 296.1 196.3 296.1 189.2C296.1 118.4 248.6 68 177.3 68zM407.5 174.2V138.7H372V174.2H336.5V209.7H372V245.2H407.5V209.7H442.7V174.2H407.5z" /> + <glyph glyph-name="google-wallet" + unicode="" + horiz-adv-x="448" d=" M156.8 321.2C194.4 260.6 221 208.1 241.1 158.7C232.8 124.9 222.3 92.2 209.8 60.4C196.6 112.7 183.3 161.7 153.8 208.9C160.3 245.3 156.1 282.5 156.8 321.2zM109.3 248H16.1C9.6 248 5.6 240.5 9.6 235.3C51.8 181 81.3 117.5 101.3 48H204.8C188.6 117.7 166.1 181.7 122.3 241.5C119.3 245.5 114.3 248 109.3 248zM157.1 336C225.6 228 287.1 101.5 295.3 -32H409C397 106 340.6 233 265.8 336H157.1zM408.9 404.5C407.1 411.3 400.7 416 393.7 416H305.4C300.1 416 296.4 411 297.6 405.7C310.8 359.2 319.9 310.2 324.1 259.7C372.3 173.5 403.8 81.4 414.7 -11.1C430.5 49.4 440 122.4 440 191.9C440 265.5 427.8999999999999 337 408.8999999999999 404.5z" /> + <glyph glyph-name="google" + unicode="" + horiz-adv-x="488" d=" M488 186.2C488 44.7 391.1 -56 248 -56C110.8 -56 0 54.8 0 192S110.8 440 248 440C314.8 440 371 415.5 414.3 375.1L346.8 310.2C258.5 395.4 94.3 331.4 94.3 192C94.3 105.5 163.4 35.4 248 35.4C346.2 35.4 383 105.8 388.8 142.3H248V227.6H484.1C486.4 214.9 488 202.7 488 186.2z" /> + <glyph glyph-name="gratipay" + unicode="" + horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM362.6 213.6L249.6 60.9L136.9 213.6C128.2000000000001 225.5 117.8000000000001 264 150.5 285.6C178.6 303.7 205.1 289.8 219 273.7C234.9000000000001 255.8 265.6 256.8 280.7000000000001 273.7C294.6 289.8 321.1 303.7 348.8000000000001 285.6C381.7000000000001 264 371.4000000000001 225.6 362.6000000000001 213.6z" /> + <glyph glyph-name="grav" + unicode="" + horiz-adv-x="512" d=" M301.1 236C305.5 231.6 305.5 224.1 301.1 219.7L291.4000000000001 210C287.0000000000001 205.3 279.5000000000001 205.3 274.8 210L264.3 220.5C259.9000000000001 225.2 259.9000000000001 232.4 264.3 237.1L274 246.8C278.4 251.2 285.9 251.2 290.6 246.8L301.1 236zM270.9000000000001 255.7C273.9000000000001 258.7 273.9000000000001 263.5 270.9000000000001 266.2C268.1 269.2 263.4000000000001 269.2 260.4000000000001 266.2C257.6 263.4 257.6 258.7 260.4000000000001 255.7C263.5000000000001 252.9 268.2000000000001 252.9 270.9000000000001 255.7zM244.9000000000001 250.4C241.9000000000001 247.6 241.9000000000001 242.9 244.9000000000001 240.2C247.7000000000001 237.2 252.4000000000001 237.2 255.4000000000001 240.2C258.2000000000001 243 258.2000000000001 247.7 255.4000000000001 250.4C252.4000000000001 253.4 247.7000000000001 253.4 244.9000000000001 250.4zM317.4000000000001 263.7C297.5000000000001 278.1 283.6 306.9 305.5000000000001 331.8C327.1000000000001 356.7 346.2000000000001 349 365.3000000000001 331C377.2000000000001 319.7 394.6000000000001 306.1 382.5000000000001 282.8C370.0000000000001 259.3 337.4000000000001 249.6 317.4000000000001 263.7zM365.1 308.2C356.2000000000001 318.2 341.8 301.3 349.6 292.1C357 283.1 381.7000000000001 289.7 365.1 308.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM437.8 149.4C440.3 165.5 417.6 166 412.6 175.1C399 199.2 384.9000000000001 211.9 358.1 205.5C369.7000000000001 213.5 381.6 211.6 381.6 211.6C381.9000000000001 218 381.6 224.6 372.2000000000001 236.5C376.1 249 372.5000000000001 258.9 372.5000000000001 258.9C388.0000000000001 267.5 399.3000000000001 283.3 401.6000000000001 302.1C405.2000000000001 333.1 382.8000000000001 361.3 351.8000000000001 364.9C329.7000000000001 367.4 308.1000000000001 357.2 297.5000000000001 339.2C274.3000000000001 299.1 298.9000000000001 268.3 319.9000000000001 257.8C305.5000000000001 259.2 285.6 269.7 279.8 292.1C273.2 317.8 282.6 341.9 288.7 353.5C288.7 353.5 284.3 359.3 280.7 362.4C280.7 362.4 266.9 362.4 256.1 357.1C268 372.3 281.3 371.5 281.3 371.5C281.3 377.9 280.7 386.4 277.7 393.1C272.3 404.1 253.8999999999999 406 246 390.3C246.1 390.5 246.3 390.7 246.4 390.8C241.4 378.9 245.3 334.9 263.3 303.6C260.8 302.2 254.2 297.5 250.3 293.6C228.7 283.9 194.1 233.3 194.1 233.3C165.9 222.5 116.9 182.4 123.5 153.6C123.8 150.6 124.9 148.1 126.5 146.1C123.7 143.9 121 141.1 118.2 137.8C106.3 124 112.9 102.6 135.9 113.4C151.7 120.6 165.5 133.6 172.2 143.8C172.2 143.8 166.7 148.8 155.9 148.2C183.6 154.8 190.2 157.6 202.1 157.3C210.1 153.4 210.1 191.6 210.1 191.6C210.1 206.3 207.9 222.6 199 233.1C211.5 220.9 228.1 200.4 227 172.5C226.2 154.2 211.8 149.5 211.8 149.5C202.7 132.9 168.6 83.6 181.4 43.5C181.4 43.5 171.7 58.4 171.2 65.6C153.8 46.2 124.7 13.3 146.6 1.1C173.2 -13.6 255.4 89.7000000000001 272.8 143.4C307.4000000000001 164.2000000000001 328.2 190.7000000000001 336.7 208.4C358.7 164.9 432 113.9 437.8 149.4z" /> + <glyph glyph-name="gripfire" + unicode="" + horiz-adv-x="384" d=" M171.8 -55.8C171.8 -50.5 176.6 -43.6 176.6 -33.5C176.6 -18.3 163.6 6.4 98.5 53.1C64.2 82.2 32 111.6 32 161.4C32 276.1 179.1 337.9 179.1 430C179.1 433.3 178.9 436.7 178.5 440C183.6 437.6 217.6 396.7 217.6 349.6C217.6 269.1 112.5 220.4 112.5 146.6C112.5 119.7000000000001 129.1 99.4 145.1 77.1C167.6 46.9 189.3 20.2 189.3 -9.4C189.2 -23.9 184.9 -39.1 171.8 -55.8zM317.8 185.6C319.3 177.2000000000001 320 169 320 161C320 109.2 290.6 63.5 252.7 24.2C251.7 23.2 250.5 21.8 249.5 21.8C245.9 21.8 214 63.4 214 75C214 75 255.8 130.7 255.8 171.9C255.8 182.7 253.1 193.6 246.7 205.3C245.2 173 191 117.6 188.6 117.6C185.9 117.6 170.7 139.6 170.7 159.7C170.7 165 171.7 170.4 173.9 175.5C176.3 181 230.5 247.5 230.5 292.2C230.5 298.4 229.5 304.2 227.1 309.3L223.1 316.5C239.8 310 305.7 252.4 317.8 185.6" /> + <glyph glyph-name="grunt" + unicode="" + horiz-adv-x="384" d=" M61.3 258.7C60.2 248.7 66.5 239.6 66.5 239.6C67.2 247.1 68.7 252.4 70.5 256.2C70.9 245.9 73.7 232.7 83.3 222.1C90.2 214.5 118.9 198.8 138.2 216C139.2 213.6 140.3 210.7 141.2 207.5C144.1 197.2 138.5 182.2 138.5 182.2S153.6 199.3 152.4 214.7C163.2 215.2 173.8 223.1 173.5 234.2C173.5 234.2 154.6 223.8 138 243C128.3 254.2 97.1 285 54.9 274.8C59.2 273.8 63.8 272.4 68.4 270.7000000000001H68.3C64.1 268.7000000000001 61.8 263.6 61.3 258.7000000000001zM89.6 260.5C109.1 249.5 127 234.8 134.5 223.5C128.8 220.2 112.8 213.1 96.5 225.2C86.2 232.8 86.7 251.4 89.6 260.5zM168.8 26.8C171 24.5 170.3 21.5 169.7 20C168.6 17.3 164.2 8.4 156.7 0.2C154 -2.7 150.1 -4.4 145.7 -4.4C141.4 -4.4 137 -2.8 133.9 -0.1C131.6 2 123.7 9.4 120.2 18.5C118.9 21.9 119.2 24.6 121.1 26.6C122.4 27.9 125.1 29.5 130.6 29.5H160C164.1 29.5 167 28.6 168.8 26.8zM231.7 214.7C230.5000000000001 199.2 245.6 182.2000000000001 245.6 182.2000000000001S240.0000000000001 197.2000000000001 242.9000000000001 207.5000000000001C243.8000000000001 210.7000000000001 244.9000000000001 213.5000000000001 245.9000000000001 216.0000000000001C265.2000000000001 198.7000000000001 293.9000000000001 214.5000000000001 300.7000000000001 222.1000000000001C310.3000000000001 232.7000000000001 313.0000000000001 245.9000000000001 313.5000000000001 256.2000000000001C315.3000000000001 252.4000000000001 316.9000000000001 247.1000000000001 317.5000000000001 239.6000000000001C317.5000000000001 239.6000000000001 323.9000000000001 248.7000000000001 322.7000000000001 258.7000000000001C322.1 263.7000000000001 319.8000000000001 268.7000000000001 315.7000000000001 270.5000000000001H315.6C320.2000000000001 272.3000000000001 324.8 273.7000000000001 329.1 274.6C286.8 284.8000000000001 255.7 254.0000000000001 246.0000000000001 242.8000000000001C229.3000000000001 223.6000000000001 210.5 234.0000000000001 210.5 234.0000000000001C210.3000000000001 223.1 220.9 215.1 231.7 214.7zM249.5000000000001 223.5C257 234.9000000000001 274.9000000000001 249.5000000000001 294.4000000000001 260.5C297.4000000000001 251.4000000000001 297.8 232.8000000000001 287.4000000000001 225.1C271.1 213 255.2000000000001 220.1 249.5000000000001 223.5C249.4000000000001 223.4 249.5000000000001 223.5 249.5000000000001 223.5zM263 26.6C264.9 24.7 265.2 22 263.9 18.7C260.4 9.8000000000001 252.5 2.6 250.2 0.6C247.1 -2 242.8 -3.6 238.4 -3.6S230.1 -1.9999999999999 227.4 0.9C219.9 8.9 215.4 17.6 214.4 20.2C213.8 21.7 213.1 24.6 215.3 26.9C217 28.7 220 29.6 224.2 29.6H253.6C259 29.5 261.7 27.9 263 26.6zM164.7 278.1C174.6 272.1 183.5 270 192 269.8C200.5 270 209.4 272.1 219.3 278.1C219.3 278.1 204.8 260.4000000000001 192.1 260.3H191.9C179.2000000000001 260.5 164.7000000000001 278.1 164.7000000000001 278.1zM349.2 130.7000000000001C346.8 112.8000000000001 336.2 96.9 324.6 87.0000000000001C321.5 109.7000000000001 320.9 142.5000000000001 320.9 149.4C320.9 164.1 330.4 173.9 333.1 175.5000000000001C335.6 177.0000000000001 338.5 178.5000000000001 341.4 180.1000000000001C359.4 189.7000000000001 381.8 201.7000000000001 381.8 223.8000000000001C381.8 240.0000000000001 372.5 247.0000000000001 366.4 251.6000000000001C365.6 252.2000000000001 364.9 252.7000000000001 364.2 253.3000000000001C362.1 255.0000000000001 360.5 256.3000000000001 359.9 257.7000000000001C355.5 267.5000000000001 356.3 291.9000000000001 358.2 295.3000000000001C358.8 295.9000000000001 374.9 316.2000000000001 370 334.5000000000001C368 341.9000000000001 363.1 347.8000000000001 355.9 351.5000000000001C350.6 354.2000000000001 344 355.7000000000001 336.4 356.0000000000001C336.3 358.0000000000001 335.9 359.9000000000001 335.5 361.9000000000001C334.9 364.5000000000001 334.4 367.2000000000001 334.6 370.0000000000001C335 374.7000000000001 335.4000000000001 379.0000000000001 336.8 381.3000000000001C345.2 394.6000000000001 365.6 398.9000000000001 365.8 398.9000000000001L378.1 401.3000000000001L370 410.8000000000001C369.9 411.0000000000001 352.7 428.3000000000001 323.7 428.3000000000001C315.8 428.3000000000001 307.7 427.0000000000001 299.6 424.4000000000001C275.4 416.6000000000001 256.7 393.9000000000001 250.2 385.1000000000001C247.1 386.1000000000001 243.9 387.0000000000001 240.6 387.8000000000001C236.4 403.6000000000001 249.6 426.3000000000001 249.6 426.3000000000001S236 429.3000000000001 215.9 411.1000000000001C213.3 417.6000000000001 207.8 431.6000000000001 214.1 448.3000000000001C184.6 437.9 177.2 422 175 407.6C167.4 413 168.3 430.7 167.8 435.2C160.3 434.3 138.6 413.3 139.6 386.9C137.6 386.4 135.7 385.8 133.7 385.2C127.2 394 108.6 416.7 84.3 424.5C76.4 426.7 68.3 428 60.4 428C31.4 428 14.3 410.7 14.1 410.5L6 401.1L18.3 398.7C18.5 398.7 38.9 394.4 47.3 381.1C48.7 378.9 49.1 374.5 49.5 369.8C49.7 367 49.1 364.3 48.6 361.7C48.2 359.8 47.8 357.8 47.7 355.8C40 355.5 33.5 354 28.2 351.3C21 347.6 16.1 341.7 14.1 334.3C9.1 316.1 25.3 295.8 25.9 295.1C27.8 291.7 28.6 267.3 24.2 257.5C23.6 256.1 22 254.8 19.9 253.1C19.2 252.6 18.5 252 17.7 251.4C11.6 246.8 2.3 239.7 2.3 223.6C2.3 201.5 24.7 189.5 42.7 179.9C45.7 178.3 48.5 176.8 51 175.3C53.7 173.6999999999999 63.2 163.9 63.2 149.1999999999999C63.2 142.3 62.6 109.4999999999999 59.5 86.8C47.9 96.6999999999999 37.3 112.6999999999999 34.9 130.6C34.9 130.6 5.7 107.9999999999999 14.3 59.8C19.5 30.3 37.5 13.6999999999999 61.3 5.1C70.1 -14.0000000000001 90.7 -40.6 128.6 -44.5000000000001C143 -56.3 163 -64 192.2 -64H192.4C221.5 -64 241.5 -56.3 256 -44.5C293.9 -40.6 314.5 -14 323.3 5.1C347.1 13.8 365 30.3 370.3 59.8C378.5 108.2 349.2 130.7000000000001 349.2 130.7000000000001zM305.7 410.3C311.3 412.1 317.3 413 323.4 413C334.4 413 343.3 410 348.1 408C345 406.6 341.7 404.8 338.4 402.7C336 403.1 332.8 403.5 329.2 403.5C318.7 403.5 308.7 400.4 300.5 394.6C288.2 385.9 282.5 377.7 279.8 372.2C277.6 373.5 275.3 374.7 272.7 375.9C271.1 376.7 269.6 377.4 268 378.1C274.1 387.2 287.9 404.6 305.7 410.3zM326.7 392.1C325.9 391.1 325.1 390 324.4 388.9C321.1 383.7 320.5 377.3 320 371.1C319.5 364.7 318.9 358.6 315.6 354.1C311.4000000000001 353.3 307.5 352.4 304.1 351.4C301.8 354.5 298.5 358.4 293.6 362.6C295 367.4 299.1 378.7 307.1 385.1C312.7000000000001 389.4 319.3 391.8 326.7000000000001 392.1zM45.6 402.7C42.3 404.9 39 406.7 35.9 408C40.7 410 49.6 413 60.6 413C66.7 413 72.6 412.1 78.3 410.3C96.1 404.5 109.9 387.1 116 378.2C114.4 377.5 112.8 376.8 111.2 376C108.7 374.8 106.3 373.5 104.1 372.3C101.5 377.7 95.8 386 83.4 394.7C75.1 400.5 65.2 403.6 54.6 403.6C51.2 403.5 48 403.1 45.6 402.7zM90.3 362.6C85.4 358.4 82 354.6 79.8 351.4C76.4 352.3 72.5 353.3 68.3 354.1C65 358.5 64.5 364.6 64 371C63.5 377.2 62.9 383.6 59.6 388.8C58.9 389.9 58.1 391 57.3 392C64.7 391.7 71.3 389.4 76.8 385C84.8 378.7 88.9 367.4 90.3 362.6zM58.1 188.1C55.4 189.7000000000001 52.5 191.2000000000001 49.7 192.7C34.8 200.7 19.5 209 19.5 223.2C19.5 234.3 23.8 237.8 28.4 241.4L28.9 241.8C29.6 242.4 30.3 243 31.1 243.6C30.2 236.4000000000001 29.2 230.3 28.4 228.7C28.4 228.7 40.5 243.7 44.1 273C45.5 284.5 43 307.3 39 316C39.2 311.1 39 306.2 38.7 301.6C38.3 302.4 37.9 303.2 37.4 303.8C34.2 307.8 25.6 321.3 28 330.4C28.9 333.9 31.1 336.4 34.7 338.2C38.5 340.1 43.5 341.1 49.8 341.1C62.1 341.1 75.7 337.4 82.7 335.1C107.8 327.1 138.1 304.2 146.8 297.4C147 297.2 147.2 297.1 147.2 297.1L152.8 293.2L149.3 299C149.1 299.3 130.2 330.4 96.1 345.5C98.1 348.4 103.5 353.6 117.7 360.6C139.1 371.1 164.2 376.4 192 376.4C219.9 376.4 244.9 371.1 266.3 360.6C280.5 353.7 285.9000000000001 348.4 287.9000000000001 345.5C253.9000000000001 330.4 235.0000000000001 299.3 234.8000000000001 299L231.3000000000001 293.2L236.9000000000001 297.1S237.1 297.2 237.3000000000001 297.4C246.0000000000001 304.2 276.3000000000001 327.2 301.4000000000001 335.1C308.4000000000001 337.3 322.0000000000001 341.1 334.3 341.1C340.6 341.1 345.6 340.1 349.4000000000001 338.2C352.9000000000001 336.4 355.1 333.8 356.1 330.4C358.6 321.3 350 307.8 346.7000000000001 303.8C346.2000000000001 303.2 345.8000000000001 302.5 345.4000000000001 301.6C345.1 306.2 344.9000000000001 311.1 345.1 316C341.1 307.2 338.6 284.5 340 273C343.6 243.7 355.7 228.7 355.7 228.7C354.9 230.3 353.9 236.4 353 243.6C353.7 243 354.5 242.4 355.2 241.8L355.7 241.4C360.3 237.7 364.6 234.3 364.6 223.2C364.6 209 349.2 200.7 334.4 192.7C331.5 191.2 328.7 189.6 326 188.1C317.3 183.1 308 171.4 306.9 153.9C306 139.3 307.8 104 310.3 78C297.9 73.2 283.6 71.6 270.6 71.2C268.6 75.3 266.7 79.7 265.1 84.3C264.4 86.3 245.5 135.4 238.7 146.5C244.2 107.5 256.2 72.8 262.2 56.9C258.7 57.4 254.8999999999999 57.6 250.5 57.6H133.5C129.0999999999999 57.6 125.2 57.3 121.8 56.9C127.8 72.8 139.9 107.5 145.3 146.5C138.5 135.3 119.6 86.2 118.9 84.3C117.3 79.7 115.4 75.3 113.4 71.2C100.4 71.6 86.2 73.2 73.7 78C76.2 104 77.9999999999999 139.2 77.1 153.9C76.2 171.3 66.8 183.1 58.1 188.1zM34.8 43.4C22.7 63.4 26.1 97.5 31.1 102.5C42 68.1 78.3 58.2 105.5 57.1C102.8 52.9 100.3 49.5 98.5 47.1L97.1 45.7C89.9 37.9 88.5 27.2 93 13.9C70.3 14.0000000000001 46.7 23.7 34.8 43.4zM80.5 -0.1C86.5 -1.2 92.7 -2 99.1 -2.5C102.6 -10.5 106.5 -18.4 111.4 -25.6C97 -19.7 87 -9.6 80.5 -0.1zM192 -50.2C131.4 -50.1 113.7 -4.4 107.1 14.5C103.4 25 103.7 32.7 108 37.6C110.9 40.9 117.5 44.8 132.6 44.8H251.4C266.5 44.8 273.2 40.9 276 37.6C280.2 32.8 280.5 25 276.9 14.5C270.3 -4.3 252.6 -50.1 192 -50.2zM272.6 -25.6C277.5 -18.4 281.4000000000001 -10.4999999999999 284.9000000000001 -2.4999999999999C291.3 -1.9999999999999 297.5000000000001 -1.1999999999999 303.5000000000001 -0.1C297.0000000000001 -9.6 287.0000000000001 -19.7 272.6000000000001 -25.6zM349.2000000000001 43.4C337.2000000000001 23.7 313.6 14.1 291.1 13.7C295.6 27.0000000000001 294.2000000000001 37.8000000000001 287 45.5000000000001C286.6 46.0000000000001 286.1 46.5000000000001 285.6 47.0000000000001C283.8 49.4 281.3 52.8000000000001 278.6 57.0000000000001C305.8 58.2000000000001 342.1 68.0000000000001 353 102.4C358 97.4 361.4 63.3 349.2 43.4z" /> + <glyph glyph-name="gulp" + unicode="" + horiz-adv-x="256" d=" M209.8 56.9L195.7 32.3L191.1 -47.9C191.1 -56.8 162.8 -64 128 -64S64.9 -56.8 64.9 -47.9L59.1 31.5L44.2 56.9C85.4 39.6 170.2000000000001 40.2 209.8000000000001 56.9zM13.8 310.2L27.4 184.7C33.3 204.7 48.2 231.7 67.4 239.9C73.7 242.6 80.1 242.6 86.1 239C91.3 236 95.7 229.7 96.2 227.2C97.4 220.7 94.2 218.1 91.7 218.1C88.7 218.1 86.4 222.7 84.9 225.4C80.8 232.7 74.6 233 68 228.2C61.1 223.2 55.1 214.8 50.9 207.5C45.8 198.7 41.5 189 38.9 179.3C37.4 173.7 36 164.7 38.3 159.4C39.3 157.2000000000001 40.8 155.8 43.2 155.8C48.2 155.8 55.5 162.4 59 165.9C63.5 170.4 69.3 177.4 71.5 181.9L76.7 197.4C79.3 204.2000000000001 86.6 203 86.6 197.4C86.6 187.2000000000001 82.9 183.8 76.6 162.7000000000001C70.8 143.2000000000001 69 136.9 69 136.9C68.3 134.1 65.6 129.4 62.7 129.4C61.5 129.4 60.6 129.8 60.1 130.6C59.1 132 59.2 135.9 59.3 136.9C59.5 140.1 65.6 159.1 66.6 162.1C64.6 159.9 62.5 157.7000000000001 60.2 155.5C54.8 150.4 46.1 143.7 38.7 143.7C35.3 143.7 33.1 144.6 31 146.1L38.6 66.5C40.6 61.5 77.8 49.4 126.8 49.4C175.9 49.4 213.1 61.6 215 66.5L225.9000000000001 161.1C220.2000000000001 155.9 213.6 149.5 206.3000000000001 146.3C200.9 144 188.9 142.5 188.9 152C188.9 157.2 198 166.8 203.3000000000001 173.5C204.7000000000001 175.2 208 179.4 208 181.6C208 184.5 202 183.8 196.3000000000001 179.1C193.1000000000001 176.4 190.1000000000001 172.8 187.6000000000001 169.4C183.3000000000001 163.4 181.0000000000001 158.2000000000001 179.1000000000001 153.9C172.9000000000001 139.7000000000001 175.0000000000001 145.3 170.0000000000001 131.9C165.0000000000001 118.6 165.8000000000001 120.1 164.8000000000001 117.9C163.9000000000001 116.0000000000001 162.6000000000001 114.4 160.8000000000001 113.4C158.9000000000001 112.4 156.3000000000001 112.5000000000001 154.7000000000001 113.7000000000001C153.8000000000001 114.3000000000001 153.4000000000001 115.6 153.4000000000001 117.4C153.4000000000001 118.3 153.5000000000001 119.2000000000001 153.7000000000001 120.1C155.2000000000001 126.2000000000001 161.5000000000001 138.2000000000001 168.7000000000001 154.4C170.3000000000001 158.1 169.7000000000001 157.0000000000001 169.5000000000001 156.7000000000001C163.3000000000001 150.7000000000001 158.6000000000001 147.8000000000001 155.1000000000001 146.2000000000001C149.3000000000001 143.6 142.1000000000001 143.6 140.6000000000001 150.3000000000001C140.5000000000001 150.7000000000001 140.5000000000001 151.1000000000001 140.4000000000001 151.5000000000001C128.6000000000001 142.3000000000001 116.1000000000001 139.8000000000001 120.4000000000001 159.6000000000001C115.8000000000001 151.4000000000001 107.8000000000001 144.7000000000001 98.0000000000001 144.7000000000001C93.9000000000001 144.7000000000001 90.9000000000001 146.1000000000001 89.4000000000001 149.8000000000001C87.1000000000001 155.3000000000001 90.7000000000001 164.7000000000001 94.0000000000001 173.6000000000001C95.7000000000001 178.1000000000001 98.0000000000001 183.5000000000001 101.1000000000001 189.8000000000001C102.7000000000001 193.2000000000001 105.3000000000001 195.2000000000001 108.7000000000001 194.3000000000001C109.3000000000001 194.1000000000001 109.8000000000001 193.9000000000001 110.3000000000001 193.6000000000001C112.9000000000001 191.8000000000001 111.9000000000001 189.1000000000001 110.6000000000001 186.4000000000002C106.8000000000001 178.9000000000002 103.5000000000001 173.4000000000002 101.3000000000001 165.6000000000001C100.4000000000001 162.3000000000001 99.3000000000001 156.6000000000001 102.8000000000001 156.6000000000001C105.2000000000001 156.6000000000001 107.5000000000001 157.4000000000002 109.7000000000001 159.0000000000001C114.3000000000001 162.4000000000001 118.0000000000001 167.5000000000001 120.8000000000001 172.5000000000001C122.8000000000001 176.1000000000001 125.2000000000001 180.8000000000001 126.4000000000001 184.8000000000001C126.9000000000001 186.5000000000001 127.5000000000001 188.1000000000001 128.2000000000001 189.6000000000001C129.3000000000001 192.1000000000001 130.8000000000001 194.7000000000001 133.4000000000001 194.7000000000001C134.7000000000001 194.7000000000001 135.8000000000001 194.2000000000001 136.6000000000001 193.2000000000001C138.3000000000001 191.0000000000001 137.9000000000001 188.7000000000002 137.0000000000001 186.3000000000001C135.0000000000001 180.7000000000001 132.3000000000001 175.7000000000001 130.1000000000001 169.6000000000001C128.8000000000001 166.1000000000001 127.4000000000001 161.6000000000001 127.4000000000001 157.9000000000002C127.4000000000001 154.5000000000002 131.1000000000001 155.3000000000001 134.2000000000001 156.7000000000002C136.6000000000001 157.8000000000002 139.0000000000001 159.5000000000002 141.0000000000001 161.2000000000002C142.2000000000001 166.1000000000001 141.9000000000001 165.0000000000002 167.4000000000001 229.4000000000002C168.7000000000001 232.7000000000002 171.1000000000001 234.1000000000002 173.5000000000001 234.1000000000002C174.7000000000001 234.1000000000002 175.7000000000001 233.7000000000002 176.7000000000001 233.0000000000002C178.4 231.7000000000002 178.4 228.9000000000002 177.7000000000001 226.8000000000002C177.0000000000001 224.9000000000002 177.1000000000001 225.5000000000002 173.2000000000001 216.3000000000002C168.0000000000001 204.2000000000002 164.6000000000001 195.5000000000002 160.0000000000001 184.4000000000002C158.1000000000001 179.8000000000001 152.3000000000001 165.5000000000002 151.3000000000001 162.1000000000001C150.7000000000001 159.9000000000002 150.0000000000001 156.3000000000001 152.3000000000001 156.3000000000001C157.7000000000001 156.3000000000001 171.6000000000001 169.4000000000002 175.4000000000001 173.3000000000001C175.6000000000001 173.6000000000001 175.9000000000001 173.7000000000001 176.3000000000001 173.9000000000002C176.9000000000001 175.8000000000001 177.5000000000001 177.6000000000001 178.0000000000001 179.4000000000002C179.4000000000001 183.2000000000002 180.7000000000001 187.6000000000001 183.3000000000001 190.7000000000002C184.1000000000001 191.7000000000002 185.0000000000001 192.3000000000002 186.0000000000001 192.3000000000002C188.8000000000001 192.3000000000002 190.2000000000001 191.1000000000001 190.2000000000001 188.3000000000002C190.2000000000001 187.2000000000002 189.5000000000001 183.2000000000002 189.1000000000001 182.1000000000002C190.5000000000001 183.6000000000002 192.0000000000001 185.1000000000002 193.6000000000001 186.6000000000002C208.6000000000001 200.5000000000002 219.3000000000001 193.4000000000002 219.3000000000001 186.4000000000002C219.3000000000001 179.0000000000002 210.4 168.7000000000002 205.5 163.0000000000002C203.9 161.1000000000003 200.6 157.6000000000003 200.5 156.6000000000003C200.5 155.3000000000003 201.4 154.8000000000003 202.7 154.8000000000003C204.7 154.8000000000003 209.1 158.3000000000003 210.7 159.5000000000002C215.7 163.4000000000002 222.5 169.4000000000002 227.3 173.6000000000003L242.1 310.4000000000003C211.6 293.3000000000003 44.5 293.2000000000003 13.8 310.2000000000003zM243.5 318.7C243.5 297.7 12.3 297.7 12.3 318.7C12.3 327.5 64.1 334.6 127.9 334.6C136.9 334.6 145.7 334.5 154.2 334.2L166.8 382.9L228.1 447.4C229.5 448.8 233.9 447.6 238 443.9S244.6 436 243.3 434.6L243.2 434.5L185.9 374L175.9 333.3C215.8 330.7 243.5 325.2 243.5 318.7zM174.1 314.1C174.1 314.9 173.2 315.6 171.6 316.2L171.4 315.4C171.4 314.1 166.4 313 160.3 313S149.2 314.1 149.2 315.4C149.2 315.5 149.2 315.6 149.3 315.7L149.5 316.4C147.7 315.8 146.5 315 146.5 314.1C146.5 312 152.7 310.4 160.2 310.4C167.9 310.3 174.1 312 174.1 314.1z" /> + <glyph glyph-name="hacker-news-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM21.2 218.8H21C21.1 218.9 21.2 219.1 21.3 219.2C21.3 219.1 21.3 218.9 21.2 218.8zM239.2 164.9V64H207.8V166.7L128 320H165.3C217.8 221.7 214.5 218.8 224.6 194.4C236.9000000000001 221.4 230.4000000000001 218.8 285.2000000000001 320H320L239.2 164.9z" /> + <glyph glyph-name="hacker-news" + unicode="" + horiz-adv-x="448" d=" M0 416V-32H448V416H0zM21.2 218.8H21C21.1 218.9 21.2 219.1 21.3 219.2C21.3 219.1 21.3 218.9 21.2 218.8zM239.2 164.9V64H207.8V166.7L128 320H165.3C217.8 221.7 214.5 218.8 224.6 194.4C236.9000000000001 221.4 230.4000000000001 218.8 285.2000000000001 320H320L239.2 164.9z" /> + <glyph glyph-name="hackerrank" + unicode="" + horiz-adv-x="464.36" d=" M453.5 320C439.01 344.95 261.13 448 232.16 448C203.2 448 25.25 345.21 10.84 320C-3.57 294.79 -3.65 89.2 10.84 63.99C25.33 38.79 203.22 -64 232.16 -64S439.01 38.92 453.49 64C467.97 89.08 467.98 295.05 453.5 320zM292.13 33.78C288.17 33.78 251.22 69.55 254.13 72.47C255 73.34 260.39 73.95 271.68 74.3C271.68 100.53 272.27 142.89 272.62 160.62C272.6600000000001 162.6399999999999 272.18 164.05 272.18 166.47H192.25C192.25 159.37 191.79 130.27 193.62 93.59C193.85 89.05 192.04 87.63 187.88 87.65C177.75 87.68 167.61 87.76 157.47 87.73C153.37 87.72 151.6 89.2599999999999 151.73 93.84C152.65 127.28 154.69 177.86 151.58 306.51V309.68C141.91 310.03 135.2 310.64 134.32 311.52C131.4 314.44 168.86 350.2099999999999 172.81 350.2099999999999C176.77 350.2099999999999 213.98 314.43 211.08 311.52C210.21 310.65 203.18 310.03 194.31 309.68V306.52C191.89 280.77 192.28 226.93 191.68 201.13H271.94C271.94 205.68 272.33 235.87 270.74 284.7699999999999C270.64 288.1599999999999 271.69 289.94 274.95 289.9699999999999C286.02 290.05 297.1 290.0999999999999 308.18 290.0299999999999C311.64 290.0099999999999 312.75 288.31 312.68 284.6499999999999C309.0300000000001 93.3599999999999 312.02 106.7099999999999 312.02 74.31C320.89 73.9599999999999 328.84 73.35 329.71 72.47C332.59 69.56 296.09 33.78 292.13 33.78z" /> + <glyph glyph-name="hips" + unicode="" + horiz-adv-x="640" d=" M0 367.8C0 369.6 0.9 370.5 2.7 370.5H43.6C45.5 370.5 46.4 369.6 46.4 367.8V286.6C61.6 294.3 78.1 298.1 96.2 298C120.2 297.9 140.4 291.8 156.5 280C175.2 266.5 184.5 248.1 184.5 224.7V88.6C184.5 86.7000000000001 183.6 85.8 181.8 85.8H154.5C145.4 85.8 138.1 93.1 138.1 102.1V224.7C138.1 225.6 140.8 251.7 92.3 251.7C43.7 251.7 46.5 225.5 46.5 224.7V88.6C46.5 86.7000000000001 45.6 85.8 43.7 85.8H2.7C0.9 85.8 0 86.7 0 88.6V367.8zM497.7 146.3C511.4 136.1 531.8 127.2 556.1 127.2C579.4 127.2 588.9 131.7 592.6 140.8C595.6 148.7 592 156.9 580.4 162L526.8 185.5C505.4 194.9 492.9999999999999 209.5 489.6 229.1C483.9 262.8 511.8 282.4 512.3 282.8C525.5 292.4 544.3 298.2000000000001 570.8 298.2000000000001C589.8 298.2000000000001 608.1999999999999 294.9 625.9 288.3C627.1999999999999 287.8 627.8 287 627.8 285.7000000000001V241C627.8 238.9 625.5 237.6 623.8 238.6C584.0999999999999 259.3 547.1999999999999 250.9 539.8 245.4C533.1999999999999 240.5 533.8 232.9 542.4 229.3L600 204C616.5 196.9 628.1 185.6 634.9 169.9C640.4 157.3 641.5 144.3 638 130.8C628.4 93.9 593.1 85.3 592.4 84.9999999999999C581.9 81.8999999999999 568.8 80.6999999999999 556.1 80.6999999999999C539.5 80.6999999999999 523.5 83.3999999999999 507.9 88.8999999999999C498.2 92.2999999999999 493.3 99.1999999999999 493.3 109.5999999999999V144C493.3 146.1 495.6 147.7 497.7 146.3zM376.2 298.2C344.5 298.2 272 278.1 272 194.7V11.2C272 10.4 272.6 8.5 274.7 8.5H315.6C317.5 8.5 318.4 9.4 318.4 11.2V100C334.9 87.3 354.2 80.9 376.1 80.9C436.6 80.9 484.8 129.4 484.8 189.6C484.9 249.9 436.6 298.2 376.2 298.2zM376.2 127.3C359 127.3 344.3 133.4 332.2 145.5C320 157.6999999999999 314 172.3 314 189.5C314 224 341.6 251.7 376.2 251.7C410.7 251.7 438.4 224.0999999999999 438.4 189.5C438.5 155.1999999999999 411.1 127.3 376.2 127.3zM251.6 88.6C251.6 86.7 250.7 85.8 248.8 85.8H207.9C206.3 85.8 205.2 87.1999999999999 205.2 88.6V290.4C205.2 291.8 206.3 293.2000000000001 207.9 293.2000000000001H248.8C250.7 293.2000000000001 251.6 292.3 251.6 290.4V88.6M228.3 375.5C244.2 375.5 257.2 362.8 257.2 346.6C257.2 330.8 244.5 317.7 228.3 317.7S199.4 331 199.4 346.6C199.5 362.6 212.4 375.5 228.3 375.5" /> + <glyph glyph-name="hire-a-helper" + unicode="" + horiz-adv-x="512" d=" M443.1 448H71.9C67.9 410.7 37.4 380.2 0 376.3V4.8C37.4 -0.1 66 -27.6 71.9 -64H444.1C447.1 -27.6 476.6 1.8 512 5.8V376.3C475.6 382.2 447 411.6 443.1 448zM406.1 43.1C369.8 43.1 387.3 45.1 351 45.1C315.2 45.1 330 43.1 294.9 43.1C289 43.1 290 51.3 294.9 52.9C317.7 60.5000000000001 317.8 63.1 319.5 65.7000000000001C329.9 81.3000000000001 325.4 148.7000000000001 325.4 178.7000000000001C325.4 184.0000000000001 319 191.5000000000001 311.6 191.5000000000001H200.4C193 191.5000000000001 186.6 184.0000000000001 186.6 178.7000000000001C186.6 148.7000000000001 182.1 81.3000000000001 192.5 65.7000000000001C194.2 63.2000000000001 194.3 60.5000000000001 217.1 52.9C222 51.3 223.1 43.1 217.1 43.1C182 43.1 196.8 45.1 161 45.1C124.7 45.1 142.2 43.1 105.9 43.1C98 43.1 100.1 53.9 105.9 53.9C116.1 57.3 119.4 57.4 127.6 67.7000000000001C135.3 80.6 135.5 112.1 135.5 195.5000000000001V296.7C135.5 318.9 123.3 325 106.9 329.1C98.1 331.3 102.9 340.9 107.9 340.9C144.4 340.9 128.5 338.9 165 338.9C197.7 338.9 181.5 340.9 214.2 340.9C217.5 340.9 222.7 332.6 215.2 330.1C210.3 328.5 187.6 326.4 187.6 290.8C187.6 245.2 187.4 235 188.6 222C188.6 220.7 190.9 209.2 201.4 209.2H310.6C321.1 209.2 323.4000000000001 220.7 323.4000000000001 222C324.6 235 324.4000000000001 245.2 324.4000000000001 290.8C324.4000000000001 326.4 301.7000000000001 328.5 296.8 330.1C289.3 332.6 294.5 340.9 297.8 340.9C330.5 340.9 314.3 338.9 347 338.9C383.5 338.9 367.6 340.9 404.1 340.9C409 340.9 414 331.3 405.1 329.1C388.7000000000001 325 376.5 318.8 376.5 296.7000000000001V195.5C376.5 112.1 376.6 80.6 384.4 67.7C392.6 57.5 395.8 57.3 406.1 53.9C411.9 53.9 413.9 43.1 406.1 43.1z" /> + <glyph glyph-name="hooli" + unicode="" + horiz-adv-x="640" d=" M508.4 96H566.3V291.3L508.4 264V96zM582.1 206.5V96H640V206.5H582.1zM331.4000000000001 215.4C313.2000000000001 233.6 281.0000000000001 232.5 281.0000000000001 232.5S248.8000000000001 233.6 230.6000000000001 215.4C228.7000000000001 213.5 226.9000000000001 211.5 225.3000000000001 209.4C187.1 239 152.8000000000001 255.9 123.2000000000001 270.5V291.2L100.7000000000001 280.6C46.3000000000001 302.7 11.7 298.8 3.4 280.5C3.4 280.5 -21.4999999999999 247.7 65.3 169.6V200.6C16.5 255.2 26.3 276.7000000000001 30 279.8C43.5 291.2000000000001 67.5 287.8 94.4000000000001 277.7000000000001L65.2 264V200.7C78.3 186 95.7 169.2 118.7 150.3L123.2 146.7V176.5C123.2 183.4 124.9 194.7 134 194.7S144.6 187.8 144.6 179.7V131C162.6 118.8 181.9 108.9 202.3 101.4V195.3C202.3 214 188.9 232.7 161.7 232.7C145.9 232.8 131.2 224.5 123.2 210.8V265.1C165.1 244.2 207.1 218.6 223.1 206.8C212.9 192.2 213.8 178.6999999999999 213.8 163.1C213.8 144.4 212.4 128.8 230.6 110.6C248.8 92.4 281 93.4999999999999 281 93.4999999999999S313.3 92.3999999999999 331.4 110.6C349.6 128.8 348.1 144.4 348.1 163.1C348.1 181.6 349.6 197.3 331.4 215.4zM291.7000000000001 143.5C291.7000000000001 139.9 289.9000000000001 131 281.0000000000001 131C272.1000000000001 131 270.3000000000001 139.9 270.3000000000001 143.5V183.9C270.3000000000001 192.6 277.6000000000001 194.8 281.0000000000001 194.8C284.4000000000001 194.8 291.7000000000001 192.7 291.7000000000001 183.9V143.5zM477.4 215.4C459.2 233.6 427.0000000000001 232.5 427.0000000000001 232.5S394.7000000000001 233.6 376.6000000000001 215.4C358.4000000000001 197.2 359.8000000000001 181.5 359.8000000000001 162.8C359.8000000000001 144.1 358.4000000000001 128.5 376.6000000000001 110.3C394.8000000000001 92.1 427.0000000000001 93.2 427.0000000000001 93.2S459.3000000000001 92.1 477.4 110.3C495.6 128.5 494.2 144.1 494.2 162.8C494.1 181.6 495.5000000000001 197.3 477.4 215.4zM437.6 143.5C437.6 139.9 435.8 131 426.9000000000001 131C418.0000000000001 131 416.2000000000001 139.9 416.2000000000001 143.5V183.9C416.2000000000001 192.6 423.5000000000001 194.8 426.9000000000001 194.8C430.3 194.8 437.6 192.7 437.6 183.9V143.5zM611.1 216.5C627 216.5 640 229.4 640 245.4S627.1 269.9 611.1 269.9C595.2 269.9 582.2 261.3 582.2 245.4S595.1 216.5 611.1 216.5zM144.5 96L182.8 95.2C169.6 99.8 156.8 105.4 144.5 112V96zM123.1 96V124.6C116.6 128.8 110.1 133.3 103.7 138.2000000000001C88.9 149.4 76.2 159.9 65.2 169.7000000000001V96H123.1zM182.8 95.2C219.3 82.7 252.7 81 277.5 88C257.6 87.8 231.7 90.6 202.2 101.3V96L182.8 95.2z" /> + <glyph glyph-name="hornbill" + unicode="" + horiz-adv-x="509.02" d=" M75.37 77.7C77.51 61.87 69.6 45.72 54.43 38.41C35.58 29.3099999999999 12.88 37.24 3.75 56.09C-5.33 74.92 2.62 97.67 21.45 106.74C28.5 110.1399999999999 36.08 111.16 43.3 110.12C-34.98 221.47 95.3 300.65 95.3 300.65C89.44 257.61 87.06 209.49 87.06 209.49C19.75 168.04 87.98 145.43 126.87 136.62C146.64 82.9999999999999 198.05 44.68 258.5300000000001 44.68C260.4500000000001 44.68 262.3 44.8899999999999 264.2000000000001 44.9599999999999L264.3100000000001 26.0999999999999C165.0900000000001 24.7099999999999 105.6100000000001 55.2399999999999 75.3700000000001 77.6999999999999zM183.38 405.4C184.27 412.4 183.28 419.73 179.99 426.55C170.89 445.39 148.17 453.33 129.33 444.24C110.47 435.14 102.53 412.41 111.64 393.56C118.62 379.0900000000001 133.66 371.14 148.82 372.33C126.27 342.42 94.99 282.76 96.4 182.3L118.24 182.45C118.22 183.35 118.1 184.22 118.1 185.13C118.1 244.08 154.47 294.46 205.95 315.29C213.96 353.04 236.6900000000001 429.59 279.79 359.58C279.79 359.58 327.93 357.2 370.9700000000001 351.34C370.9700000000001 351.35 293.13 479.37 183.38 405.4zM487.56 271.23C506.4 280.3200000000001 514.37 303.04 505.26 321.88C496.16 340.73 473.43 348.6500000000001 454.59 339.5700000000001C439.32 332.2000000000001 431.4 315.88 433.72 299.93C402.01 321.87 343.88 348.98 250.27 347.67L250.41 325.17C253.11 325.3200000000001 255.8 325.5800000000001 258.55 325.5800000000001C317.85 325.5800000000001 368.45 288.7800000000001 389.04 236.82C428.14 227.8 494.1 205.24 427.5 164.28C427.5 164.28 425.16 116.15 419.29 73.12C419.29 73.12 552.74 154.28 468.2499999999999 267.73C474.6799999999999 267.23 481.3199999999999 268.2200000000001 487.5599999999999 271.23zM373.05 11.76C394.48 44.22 419.4700000000001 101.45 418.19 191.42L398.67 191.28C398.75 189.22 398.9700000000001 187.21 398.9700000000001 185.13C398.9700000000001 124.86 360.92 73.58 307.5800000000001 53.68C298.73 14.73 276.1400000000001 -52.98 234.8100000000001 14.19C234.8100000000001 14.19 186.6900000000001 16.53 143.6200000000001 22.41C143.6200000000001 22.41 223.5400000000001 -108.9299999999999 335.5200000000001 -28.5599999999999C335.8300000000001 -33.28 336.9700000000001 -38.0099999999999 339.1600000000001 -42.53C348.2200000000001 -61.42 370.9600000000001 -69.3099999999999 389.8000000000001 -60.2399999999999C408.6600000000001 -51.1399999999999 416.5900000000001 -28.41 407.5000000000001 -9.59C400.9400000000001 4.03 387.2400000000001 11.84 373.0500000000001 11.76z" /> + <glyph glyph-name="hotjar" + unicode="" + horiz-adv-x="448" d=" M414.9 286.5C340.2 419 121.1 448 121.1 448S222.2 337.6 93 250.3C11.3 195.2 -21 123.6 14 45.4C40.8 -14.5 97.5 -38.9 158.6 -48C129.4 7.1 152 74.4 154.5 81.6C211.6 -4.8 319.5 81.6 265.3 175.5C336.3 160.1 346.9 36.9 292.4000000000001 -40C372.9000000000001 -14.7 426.5 48.9 441.2000000000001 105.6C456.7 164.9 444.9000000000001 233.5000000000001 414.9000000000001 286.5z" /> + <glyph glyph-name="houzz" + unicode="" + horiz-adv-x="414.6" d=" M258.9 117.3H154.3V-32H0V416H109.5V311.5L414.6 225.9V-32H258.9V117.3z" /> + <glyph glyph-name="html5" + unicode="" + horiz-adv-x="384" d=" M0 416L34.9 20.2L191.5 -32L349.1 20.2L384 416H0zM308.2 288.1H124.4L128.5 238.7H304.1L290.5 90.3L192.6 63.3V62.9999999999999H191.5L92.8 90.3L86.8 166.1H134.5L138 128L191.5 113.5L245.2 128L251.2 190.2H84.3L71.5 335.8H312.6L308.2000000000001 288.1z" /> + <glyph glyph-name="hubspot" + unicode="" + horiz-adv-x="512" d=" M267.4 236.4C242.3 212.7 226.6 179.1 226.6 141.8C226.6 112.5 236.3 85.5 252.6 63.8L203.1 14C198.7 15.6 194 16.5 189.1 16.5C178.3 16.5 168.2 12.3 160.6 4.7C153 -2.9 148.8 -13.1 148.8 -23.9S153 -44.8 160.6 -52.4C168.2 -60.0000000000001 178.4 -64 189.1 -64C199.9 -64 210 -60.1 217.7 -52.4C225.3 -44.8 229.5 -34.6 229.5 -23.9C229.5 -19.7 228.9 -15.7 227.6 -11.8L277.6 38.4C299.6 21.5000000000001 327 11.5000000000001 356.9000000000001 11.5000000000001C428.8000000000001 11.5000000000001 486.9 69.8000000000001 486.9 141.7000000000001C486.9 206.9 439.2000000000001 260.9000000000001 376.7000000000001 270.4000000000001V332C394.2000000000001 339.4 404.9000000000001 355.8 404.9000000000001 374.9C404.9000000000001 401 384.0000000000001 422.8 357.9000000000001 422.8S311.2 401 311.2 374.9C311.2 355.8 321.9 339.4 339.4 332V270.8C324.2 268.7000000000001 309.8 264.1 296.7 257.2000000000001C269.1 278.1 179.2 342.9000000000001 127.8 382C129 386.4000000000001 129.8 391 129.8 395.8C129.8 424.6 106.3 448 77.4 448C48.6 448 25.2 424.6 25.2 395.8C25.2 366.9 48.6 343.5 77.4 343.5C87.2 343.5 96.3 346.4 104.2 351.1L267.4 236.4zM356.9 72.8C318.8 72.8 287.9 103.7 287.9 141.8S318.8 210.8 356.9 210.8S425.9 179.9 425.9 141.8S395 72.8 356.9 72.8z" /> + <glyph glyph-name="imdb" + unicode="" + horiz-adv-x="448" d=" M350.5 159.3C350.5 153.9 352.1 144.9 344.3 144.9C342.7 144.9 341.3 145.7000000000001 340.5 147.3C338.3 152.4 339.4 191.4 339.4 192C339.4 195.8 338.3 204.7 344.3 204.7C351.6 204.7 350.5 197.4 350.5 192V159.3zM265 218.1C265 227.8 266.6 234.1 254.7 234.1V150.4C266.9 150.1 265 159.1 265 168.8V218.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM21.3 219.2C21.2 219.1 21.1 218.9 21 218.8H21.3V219.2zM97 256H64V128.2H97V256zM210.3 256H167.2L159.6 196.1C156.9 216.1 154.2 236.2 150.9 256H108.1V128.2H137.1V212.7L149.3 128.2H169.9L181.5 214.6V128.2H210.2V256zM296.6 210.7C296.6 218.8 296.9000000000001 227.5 295.2000000000001 235.1C290.9000000000001 257.6 263.8000000000001 256 246.2000000000001 256H221.6000000000001V128.2C307.7000000000001 128.1 296.6 122.2 296.6 210.7zM382.5 193.4C382.5 210.7 381.7 223.5 360.3 223.5C351.4000000000001 223.5 345.4000000000001 220.8 339.4000000000001 214.3V256H307.7000000000001V128.2H337.5000000000001L339.4000000000001 136.3C345.1 129.5 351.3 126.5 360.3 126.5C380.1 126.5 382.5 141.7 382.5 157.4V193.4z" /> + <glyph glyph-name="instagram" + unicode="" + horiz-adv-x="448" d=" M224.1 307C160.5 307 109.2 255.7 109.2 192.1S160.5 77.2 224.1 77.2S339 128.5 339 192.1S287.7 307 224.1 307zM224.1 117.4C183 117.4 149.4 150.9 149.4 192.1S182.9 266.8 224.1 266.8S298.8 233.3 298.8 192.1S265.2 117.4 224.1 117.4zM370.5 311.7C370.5 296.8 358.5 284.9 343.7 284.9C328.8 284.9 316.9 296.9 316.9 311.7S328.9 338.5 343.7 338.5S370.5 326.5 370.5 311.7zM446.6 284.5C444.9000000000001 320.4 436.7000000000001 352.2 410.4000000000001 378.4C384.2000000000001 404.6 352.4000000000001 412.8 316.5 414.6C279.5 416.7 168.6 416.7 131.6 414.6C95.8 412.9 64 404.7 37.7 378.5S3.3 320.5 1.5 284.6C-0.6 247.6 -0.6 136.7 1.5 99.7C3.2 63.8 11.4 32 37.7 5.8S95.7 -28.6 131.6 -30.4C168.6 -32.5000000000001 279.5 -32.5000000000001 316.5 -30.4C352.4 -28.7 384.2 -20.5000000000001 410.4 5.8C436.6 31.9999999999999 444.8 63.8 446.6 99.6999999999999C448.7 136.6999999999999 448.7 247.5 446.6 284.5zM398.8 60C391 40.4 375.9000000000001 25.3 356.2 17.4C326.7 5.7 256.7 8.4 224.1 8.4S121.4 5.8 92 17.4C72.4 25.2 57.3 40.3 49.4 60C37.7 89.5 40.4 159.5 40.4 192.1S37.8 294.8 49.4 324.2C57.2 343.8 72.3 358.9 92 366.8C121.5 378.5 191.5 375.8 224.1 375.8S326.8 378.4 356.2 366.8C375.8 359 390.9 343.9 398.8 324.2C410.5 294.7 407.8 224.7 407.8 192.1S410.5 89.4 398.8 60z" /> + <glyph glyph-name="internet-explorer" + unicode="" + horiz-adv-x="512" d=" M483.049 288.294C493.904 312.8690000000001 504.473 348.7320000000001 504.473 376.165C504.473 448.887 424.832 474.536 294.8 414.742C187.168 421.923 83.579 341.072 57.7019999999999 228.2850000000001C88.554 263.1470000000001 135.973 310.5830000000001 179.679 329.4430000000001C125.404 281.15 79.128 219.998 43.992 156.275C23.246 118.349 0 57.06 0 11.253C0 -87.322 92.854 -75.2470000000001 180.251 -30.753C211.674 -46.183 246.81 -46.326 281.9460000000001 -46.326C379.0700000000001 -46.326 466.1950000000001 7.968 498.76 99.696H377.927C325.418 11.103 181.108 46.7 181.108 147.132H509.9C516.307 190.713 508.245 242.847 483.049 288.294zM64.559 101.123C82.27 49.973 118.262 5.252 164.825 -22.181C76.084 -71.1210000000001 -8.442 -51.277 64.559 101.1229999999999zM180.536 209.996C182.536 265.147 230.812 304.867 284.516 304.867C337.9340000000001 304.867 386.497 265.147 388.497 209.996H180.536zM365.072 397.596C386.497 407.883 413.635 419.599 437.63 419.599C469.052 419.599 491.904 397.882 491.904 365.877C491.904 345.874 484.477 316.87 477.335 298.01C451.0549999999999 340.302 411.349 379.594 365.072 397.596z" /> + <glyph glyph-name="ioxhost" + unicode="" + horiz-adv-x="640" d=" M616 288H548.7C511.2 377.3 422.9 440 320 440C183 440 72 329 72 192C72 175.6 73.6 159.5 76.7 144H24C10.7 144 0 133.2 0 120C0 106.7 10.7 96 24 96H91.3C128.8 6.7 217.1 -56 320 -56C457 -56 568 55 568 192C568 208.4 566.4 224.5 563.3 240H616C629.3 240 640 250.8 640 264C640 277.3 629.3 288 616 288zM520 192C520 81.5 430.5 -8 320 -8C244.3 -8 178.4 34 144.5 96H424C437.3 96 448 106.8 448 120C448 133.3 437.3 144 424 144H125.8C122 159.4 120 175.4 120 192C120 302.5 209.5 392 320 392C395.7 392 461.6 350 495.5 288H216C202.7 288 192 277.2 192 264C192 250.7 202.7 240 216 240H514.2C518 224.6 520 208.6 520 192zM216 216H424C437.3 216 448 205.3 448 192C448 178.8 437.3 168 424 168H216C202.7 168 192 178.7 192 192C192 205.2 202.7 216 216 216z" /> + <glyph glyph-name="itunes-note" + unicode="" + horiz-adv-x="384" d=" M381.9 59.8C375.5 32.4 354.7 17 326.8 11.8C302.3 7.3 281.9 6.2 262.3 22C238.4 42.1 238.1 75.4 259.6 96.4C276.6 112.6 300.5 115.9 336.4 122.2C342.4 123.3 347.6 124.7 352 129.6C358.4 136.8 356.4 133.7 356.4 292.8C356.4 304 350.9 307.1 339.4 305.1C331.2 303.7 153.7 270.5 153.7 270.5C143.5 268.3 140.3 265.3 140.3 253.8C140.3 19.1 141.4 29.9 137.8 14.3C133.6 -3.9 122.4 -17.6 107.6 -25.2C90.8 -34.5000000000001 60.4 -38.6 44.2 -35.6C1 -27.5 -14.2 22.4 15.1 51C32.1 67.2 56 70.5 91.9 76.8C97.9 77.9 103.1 79.3 107.5 84.2C117.6 95.7 109.3 340.8 112.7 354.4C113.5 359.6 115.7 364 119.8 367.3C124 370.8 131.6 372.8 133.2 372.8C337.2 411 362.1 415.9 365.6 415.9C377.1 416.7 383.7 409.9 383.7 398.3C383.9 53.8 384.8 72.3 381.9 59.8z" /> + <glyph glyph-name="itunes" + unicode="" + horiz-adv-x="448" d=" M223.6 367.7C129 367.7 52.5 291 52.5 196.5S129 25.2 223.6 25.2S394.8 101.9 394.8 196.4C394.8 291 318.1 367.7 223.6 367.7zM303 127.7C299.8 114.1 289.5 106.5 275.7 103.9C263.6 101.7 253.5 101.1 243.8 108.9C232 118.9 231.8 135.3 242.4 145.7C250.8 153.7 262.7 155.3 280.4 158.5C283.4 159 286 159.7 288.1 162.2C291.3 165.8 290.3 164.2 290.3 243C290.3 248.6 287.6 250.1 281.9 249.1C277.9 248.4 190 232 190 232C185 230.9 183.3 229.4 183.3 223.7C183.3 107.6 183.8 112.9 182.1 105.2C180 96.2 174.5 89.4 167.2 85.6C158.9 80.9999999999999 143.8 78.9999999999999 135.8 80.4C114.4 84.4 106.9 109.1 121.4 123.3C129.8 131.3 141.7 132.9 159.4 136.1C162.4 136.6 165 137.3 167.1 139.8C172.1 145.5 168 266.8 169.7 273.5C170.1 276.0999999999999 171.2 278.3 173.2 279.9C175.3 281.5999999999999 179 282.5999999999999 179.9 282.5999999999999C280.9 301.5999999999999 293.2 304 295 304C300.7 304.4 304 301 304 295.3C303.8999999999999 124.6999999999999 304.3999999999999 133.9 303 127.6999999999999zM345.2 416H102.8C45.9 416 0 370.1 0 313.2V70.8C0 13.9 45.9 -32 102.8 -32H345.2C402.2 -32 448 13.9 448 70.8V313.2C448 370.1 402.1 416 345.2 416zM223.6 4C117.3 4 31.1 90.2 31.1 196.5S117.3 389 223.6 389S416.1 302.8 416.1 196.5S329.9 4 223.6 4z" /> + <glyph glyph-name="java" + unicode="" + horiz-adv-x="377.6" d=" M121.6 52S102 40.6 135.5 36.8C176.1 32.2 196.8 32.8 241.5 41.3C241.5 41.3 253.3 33.9 269.7 27.5C169.5 -15.4 42.9 30 121.6 52M109.4 108.1S87.5 91.9 121 88.4C164.3 83.9 198.6 83.6 257.8 95.0000000000001C257.8 95.0000000000001 266 86.7000000000001 278.9000000000001 82.2000000000001C157.6 46.7 22.6 79.3000000000001 109.4 108.1M212.6 203.2C237.3 174.8 206.1 149.2000000000001 206.1 149.2000000000001S268.8 181.6 240.0000000000001 222.1000000000001C213.1 259.9000000000001 192.5 278.7000000000001 304.1 343.4000000000001C304.2000000000001 343.4000000000001 128.9 299.6 212.6 203.2000000000001M345.2000000000001 10.6S359.7000000000001 -1.3 329.3000000000001 -10.6C271.4000000000001 -28.1 88.5000000000001 -33.4 37.7 -11.3C19.4 -3.4 53.7 7.7 64.5 10.0000000000001C75.7000000000001 12.4 82.2000000000001 12.0000000000001 82.2000000000001 12.0000000000001C61.9000000000001 26.3000000000001 -49.1 -16.1 25.8 -28.1999999999999C230.0000000000001 -61.3999999999999 398.2000000000001 -13.3 345.2000000000001 10.6000000000001M131 166.2S37.9 144.1 98 136.1C123.4 132.7 174 133.5 221.1 137.4C259.6 140.6 298.3 147.6 298.3 147.6S284.7 141.8 274.9000000000001 135.1C180.4 110.2 -2.1 121.8 50.4 147.2C94.9 168.6 131 166.2 131 166.2M298 72.9C394.1 122.8 349.6 170.8 318.6 164.3C311 162.6999999999999 307.6 161.3 307.6 161.3S310.4000000000001 165.6999999999999 315.8 167.6C377.1 189.2 424.3 103.9999999999999 296 70.3C296 70.4 297.5 71.6999999999999 298 72.9M240 448S293.2 394.8 189.5 313C106.4 247.4 170.5 209.9 189.5 167.2C141 211 105.4 249.5 129.3 285.4C164.4 337.9 261.5 363.5 240 448M140.5 -62.4C232.7 -68.2999999999999 374.3 -59.1 377.6 -15.5C377.6 -15.5 371.2000000000001 -32 301.4000000000001 -45.2C222.7000000000001 -60 125.6 -58.3 68.1 -48.8C68.1 -48.7 79.9 -58.5 140.5 -62.4" /> + <glyph glyph-name="jedi-order" + unicode="" + horiz-adv-x="448" d=" M231.89 112.28L263.33 158.17L243.15 102.67L305.71 93.58L243.15 84.5L267.37 37.07S237.15 68.84 232.88 73.32C234.64 4.54 235.07 -12.38 235.07 -12.38S389.4700000000001 59.27 303.69 217.71C303.69 217.71 410.66 335.78 313.78 408.44C313.78 408.44 479.28 308.53 374.33 136.98C374.33 136.98 461.11 221.75 415.7 307.52C415.7 307.52 494.41 196.51 398.54 74.41C398.54 74.41 424.78 90.56 447.99 152.12C447.99 152.12 431.06 -31.14 226.03 -33.5400000000001V-33.5600000000001H221.9499999999999V-33.5400000000001C16.93 -31.14 0 152.12 0 152.12C23.21 90.56 49.44 74.41 49.44 74.41C-46.43 196.5200000000001 32.29 307.5200000000001 32.29 307.5200000000001C-13.12 221.7400000000001 73.67 136.98 73.67 136.98C-31.28 308.54 134.21 408.44 134.21 408.44C37.33 335.78 144.3 217.71 144.3 217.71C58.52 59.27 212.92 -12.38 212.92 -12.38S213.35 4.55 215.11 73.32L180.63 37.07L204.85 84.5L142.29 93.58L204.85 102.67L184.67 158.17L216.11 112.28C218.36 200.13 223.93 418.1 223.96 419.13L223.97 421.56L223.99 420.56L224.02 421.56L224.03 419.13C224.08 417.41 229.64 199.93 231.89 112.28z" /> + <glyph glyph-name="jenkins" + unicode="" + horiz-adv-x="512" d=" M487.1 23C485.7 34.2 468.1 46.1 458.9 54.9C453.8 59.9 429.9000000000001 78 428.5000000000001 84.8C427.1000000000001 91.4 438.2000000000001 106.3 441.8000000000001 113.6999999999999C446.9000000000001 124.3999999999999 450.6000000000001 137.3999999999999 453.1000000000001 146.3C471.9000000000001 212.4 473.8000000000001 303.2 446.9000000000001 357.5C436.7000000000001 378.0999999999999 408.3000000000001 406.5 390.5000000000001 420C348.5000000000001 451.6999999999999 270.9000000000001 455.3 220.4000000000001 436.6C206.3000000000001 431.3999999999999 192.6000000000001 426.8 180.3000000000001 419.5C147.2000000000001 400.1 112.0000000000001 387 102.2000000000001 347.9C78.0000000000001 337.1 70.7000000000001 306.1 71.9000000000001 270.1C72.1000000000001 263.1 76.0000000000001 254.3 74.6000000000001 247.7C73.9000000000001 244.4 69.4000000000001 240.1 68.5000000000001 237.9C56.9000000000001 210.2 66.2000000000002 173.9 79.6000000000001 154.1999999999999C87.7000000000001 142.3 101.1000000000001 131.8 118.8000000000002 129C119.5000000000002 118.3999999999999 122.1000000000001 109.3 127.0000000000002 98.6C130.1000000000001 91.8 141.7000000000001 79.6 137.4000000000002 70.9C135.2000000000002 66.5 116.4000000000002 57.1 110.1000000000002 53.3C89 40.8 73.7 33 54.2 19C41.6 10 21.9 8.8 25 -12.1C27.1 -26.2 35.1 -43.7 39.7 -57.9C40.4 -59.9 41.1 -62.0000000000001 41.8 -63.9H463.8C468.7 -48.6 473.5 -33.0000000000001 478.4 -16.7C481.8 -5.3000000000001 488.6 11.1 487.1 22.9999999999999zM205.9 414.3C207.7 414.8 209.3 413.6 210.8 411.9C210.6 406.7 205.4 406.8 201.9 405.1C196.5 398.4 188.5 395.3 181.9 387.9C175.1 380.4 167.5 360.2 158.5 357.9C154 356.8 148.8 358.7 144.9 358.4C134.5 357.7 127.2 352.4 116.6 350.9C130.2 380.8 172.7 404.9 205.9 414.3zM101.1 320.7C114.6 335.6 133.2 344.8 155.9 346.6C167.6 316.9 147.5 281.6 155 249C157.3 239.1 165.2 223.6 152.6 223.3C152.9 251.6 117.8 269.6 91.3 252.9C89.5 274.4 86.4 304.6 101.1 320.7zM137.8 120.5C136.8 124.6 135.1 133.4 135.5 135.6C137.1 144.3 152.6 148.1 146.5 160.3C135.2 160.4 132.7 150.1 122.4 149C95.7 146.4 76.8 184.4 78 207.4C79 226.9 95.6 245.6 118.1 243.2C134.1 241.4 139.5 224 142.6 208.5C151.8 208 165.1 208.9 169.5 216.1C168.9 233.6 160.7 247.7 161.3 263.8C162.3 294.1 178.8 321.4 166.1 351.2000000000001C179.7 382.1 219.6 406.5 249.2 421.2000000000001C285.8 439.5 344.1 424.9000000000001 378.5 405.4000000000001C398.2 394.3 412.9 372.7000000000001 426.8 354.7000000000001C407.3 360.5 390.7 350.5 393.7 334.4000000000001C410 349.3 437.9 334.6 446.2 318C454.1 302.2000000000001 454 278.7000000000001 455.2 255.2000000000001C458.1 198.2000000000001 444.8 139.3000000000001 416.1 98.1C408.4 87.1 402 75.1 391.2 67.5C365.2 49.3 325.8 32.8 292 44.1C247.3 59.1 227 88.9 202.5 122.9C203.2 104.2000000000001 216.3 88.8 229.3 74.5000000000001C240.6 62.0000000000001 254.3 47.9 269 42.1000000000001C256.7 45.0000000000001 237.9 45.9000000000001 232.8 34.9000000000001C204.2 36.8000000000001 177.7 39.7000000000001 164.1 59.1000000000001C153.5 74.5000000000001 142.7 100.5000000000001 137.8 120.5000000000001zM359.8 -3.6C363.9000000000001 -0.6 370.9000000000001 -0.7 377.2 0C371.8 2.7 364.2 3.7 357.9 2.2C357.8 6.4 355.9 9 354.7 12.4C365.3 16.2 390.2 40.9 404.3 32.7C411 28.8 413.8 6.5 414.4000000000001 -4.3C414.8 -13.3 413.6 -22.3 409.9000000000001 -27.1C391.1 -26.5 374.1 -24.3 359.2000000000001 -20.1C360.1 -14 358.2000000000001 -8 359.8000000000001 -3.6zM342.6 16.4C325.8 15.6 316.6 17.6 304.3 27.2C304.5 28 305.7 27.7 305.8 28.6C323.8 20.6 346.6 31.9 364.8 33.4999999999999C356.9000000000001 28.3999999999999 350.2 21.8999999999999 342.6 16.3999999999999zM330.5 -16.8C328.9 -7.4 327 -4.8 327.7 3.4C352.7 20 357.4 -25.2 330.5 -16.8zM226 9.4C214.4 10.1 177.9 23.4 187.5 33.1C196.9 26.6 215 28.2 228.8 25.8C229.6 21.4 226 15.6 226 9.4zM57.7 -49.1C53.4 -36.4 48.5 -24 42.9 -12.2C73.7 11.6 108.2 36.6999999999999 145.1 51.3C147.9 52.4 168.3 25.9 171.3 23.6999999999999C187.8 11.9999999999999 208.3 2.6999999999999 227.5 -6.5000000000001C228.7 -15.3000000000001 231.4 -26.7 236.2 -42.0000000000001C236.9 -44.3000000000001 237.6 -46.7 238.4 -49.2H57.7zM298.3 -54.8H297.5C297.8 -54.6 298 -54.4 298.3 -54.3V-54.8zM305.8 -49.1C307.9000000000001 -47.7 310.1 -46.3 312.2 -44.8C313.3 -46.2 314.4 -47.6 315.4 -49.1H305.8zM320.9000000000001 -24.4C310.1 -31.7 300.3 -42.7 287.6 -49.6C281.6 -52.9 260.6 -61.3 254.2 -59.8C250.6 -59 250.3 -54.5 248.8 -50.3C245.7 -41.3 238.7 -26.9 238 -13.3C237.2 3.9 235.5 32.7 254 29.1C268.9 26.2 286.3 19.4 297.9 12.9999999999999C305 9.1 309 4.3999999999999 319.8 3.4999999999999C319.7 2.1 319.7 0.6999999999999 319.6 -0.8000000000001C313.7 -4.7 304.3 -4.6000000000001 297.8 -7.9000000000001C307.3 -8.3000000000001 314.8 -10.6000000000001 321.3 -13.8000000000001C321.2 -17.2 321 -20.8000000000001 320.9 -24.4000000000001zM374.3 -49.1H360.3C360.2 -45.9 357.5 -43.3 354.2 -43.3S348.3 -45.9 348.1 -49.1H330.7C327.9 -44.7 325 -40.5 321.8 -36.6C323.9000000000001 -34.4 325.8 -31.9 327.8 -29.7C336.8 -33.4 342.6 -24.8000000000001 349.5 -25.5000000000001C357.4 -26.3000000000001 363.7 -37.2 374.9 -36.5000000000001L374.3 -49.1000000000001zM383 -49.1C383.2 -45.1 383.4 -41.3 383.6 -37.6C399.2000000000001 -30.3 412.6 -38.9 419.3 -49.1H383zM466.4 -12.1C464.1 -23.3 460.6 -36.1 456.5 -49.2C456.3 -49.1 456.1 -49.1 455.9 -49.1H428C428.6 -48 429.2 -46.9 429.9 -45.8C427.3 -39.7 420.9 -37.1 419 -30.3C431.1 -7.6 425.5 63.1 394.8 48.2C399.1 54.5 410.4000000000001 59.7 415.6 67.5C428.6 57.1 436.4000000000001 47.2 448.8 36.1C455.6 30.1 468.8 22.8 470.2 13C471 7.5 467.6 -5.9 466.4 -12.1zM222.2 317.5C227.6 332.4 249.4 352.2 267.2 349.5C274.9 348.3 285.2 341.3 279.4 331.8C249.2 338.8 234.2 319.2 225 298.7C216.9 300.7 220.1 311.8 222.2 317.5zM406.3 254.4C414.5 258 428.7 255.1 435.9 259.7000000000001C431.7 271.2000000000001 425.6 281.1 426.6 297.4000000000001C427.1 297.4000000000001 427.6 297.4000000000001 428 297.3000000000001C434.8 283.1 440.7 268.1 449.3999999999999 255.6C443.7 242.1 405.7999999999999 230.2 406.2999999999999 254.4000000000001zM426.7 297.4zM309.5 251.7C302.7 262.6 290.5 284.2 295 297C301.5 285.1 303.6 272.6 312.8 263.7C316.9 259.7 325 254.7 321 243.5C320.1 240.8 313.2 234.9 309.3 233.8C294.9 229.5 261.4 232.9 272.7 250.9C284.5999999999999 250.2 300.5999999999999 243.1 309.5 251.7zM336.8 181.7C340.6 175.1 338.2 163 348.9 161.1C369.1 157.7 392.5 173.4 407 178.9C416 194.1 406.2 199.6 398.1 209.4C381.5 229.4 359.3 254.2 360.1 284.1C366.8 289 367.4000000000001 276.7 368.3 274.4C377 254.1 398.7 228.2 414.6 210.9C418.5 206.6 424.9000000000001 202.5 425.6 199.7C427.7000000000001 191.5 420.2000000000001 181.7 421.1 176.2C399.4000000000001 162.3 375.3 147.1 339.7000000000001 150.6C332.3000000000001 157.3 329.4000000000001 172 336.8000000000001 181.7zM135.5 190.9C128.6999999999999 194.8 127.0999999999999 211.9 119.0999999999999 212.3C107.6999999999999 213 109.7999999999999 190.1 109.7999999999999 176.8C101.9999999999999 183.9 100.5999999999999 205.9 106.2999999999999 217.1C99.7 220.3 96.7999999999999 213.5 93.2 211.2C97.9 245.3 143 227 135.5 190.9zM435.1 162.1C425 142.9 410.7 121.7 381.1 121.1C380.5 127.3 380 136.7 381.1 140.5C403.8 142.6999999999999 417.7 154.1999999999999 435.1 162.1zM293.2 149.7C312.0999999999999 139.8 346.8 138.7 372.5 139.5C373.8999999999999 133.9 373.8 126.9 373.8999999999999 120.1C340.8999999999999 118.3 301.8999999999999 126.5 293.2 149.7000000000001zM385.3999999999999 103C383.7 98.7 380.0999999999999 93.7 375.5999999999999 91.9C363.4999999999999 87 329.9999999999999 83.2 313.2 92.2C302.5 97.9 295.7 110.7 289.8 118.2C287 121.8 272.9 131.1 289.6 131.1C302.7 98.4 347.6 102.1 385.4 102.9999999999999z" /> + <glyph glyph-name="joget" + unicode="" + horiz-adv-x="496" d=" M227.5 -20.7C218.5 -7.1 207.6 12.6 203.8 21.7C198.1 35.4 176.6 67.3 235 88.8C286.7 107.9 411.7 105.3 443.8 106.4C439.8 97.4 435.2 88.5 429.9000000000001 79.8C389.5000000000001 14.3 319.5 -21.7 247.9000000000001 -21.7C241.1 -21.7 234.3000000000001 -21.3000000000001 227.5000000000001 -20.7M66.1 304.1C128 404.6 259.6 435.8 360.1 373.9C434.9000000000001 327.8 471.3 243 459.4 161.2000000000001C434.5000000000001 161.7000000000001 280.1 164.8000000000001 229.1 166.1C173.6 167.5 147.4 186.9 170.6 214.3C193.8 241.7 221.7 255 239.5000000000001 265.5C257.4000000000001 276 266.8 299.2 215.9 295.2C87.3 286.5 48.6 195.9 37.6 155C28.8 204.7 37.5 257.7 66.1 304.1M36.9 322.1C-35 205.5 1.3 52.8 117.9 -19.1C234.5 -91 387.2 -54.7 459.1 61.8C531 178.4 494.7 331.2 378.1 403C337.6 428.1 292.6 440 248.2 440C165 440 83.8 398.1 36.9 322.1M281.3 211.7C249.8 191.2 216 180.4 216 180.4L385.5 182L432 205.4S435.6 214.9 412.9 220.9C390.2 226.9 355.9 209.6 326.2 193.7C296.5 177.9 295.1 185.5 295.1 185.5S335.3 213.6 345.8 220C356.3 226.4 377.7 234 359.2 244.6C356 246.4 352.5 247.3 348.8 247.3C331 247.3 307.3 228.6 281.3 211.7" /> + <glyph glyph-name="joomla" + unicode="" + horiz-adv-x="448" d=" M0.6 355.9C0.6 389.2 27.4 416 60.4 416C90.4 416 114.9 394.1 119.6 365.8C152.2 373.4 186.7 365.2 216.1 335.8L171.8 291.5C151.3 312 129.2 307.8 116.4 295C102.1 280.7 102.1 257.1 116.4 242.8L215.9 143.3L171.9 99C84.2 186.2 122.2 148.7 72.1 198.7C45.3 225.2 37.1 263.5 47.3 297.6C20.4 303.4 0.6 327.3 0.6 355.9zM130.1 239.5L174.4 195.2C184.4 205.2 264.1 284.9 274.1 295C288.4 309.3 311.7 309.3 326 295C338.8 282.2 343 260 322.5 239.6L366.5 195.3C397.7 226.5 405 262.9 395.3999999999999 296.5C424.5999999999999 300.6 447.2999999999999 325.7 447.2999999999999 356C447.2999999999999 389.2 420.4999999999999 416.1 387.4999999999999 416.1C357.1999999999999 416.1 332.0999999999999 393.6 327.9999999999999 364.5C294.1999999999999 374.4 256.2999999999999 366 229.6999999999999 339.4C211.3999999999999 320.3 158.5999999999999 267.9 130.0999999999999 239.5zM396.4 87.3C404.6 120 395.5 155.8 370.1 181.2000000000001C358.3 193.4 375.1 176.5000000000001 270.6 280.9000000000001L226.3 236.6L326 136.9C340.3 122.6 340.3 99.3 326 85.0000000000001C313.2 72.2000000000001 291 68.0000000000001 270.6 88.5000000000001L226.6 44.2C254.2 14.0000000000001 294.6 5.4 329.3 16.2C334.8 -11.1999999999999 359 -31.9 388.2 -31.9C421.2 -31.9 448 -5.1 448 28.2C448 58.4 425.5 83.2000000000001 396.3999999999999 87.3000000000001zM312.1 140.4L268.1 184.7000000000001C181.1 98.3000000000001 217.7 134.3000000000001 168.4 84.9C154.1 70.6 130.8 70.6 116.5 84.9C103.4 98.3 99.6 120.2000000000001 119.7 140.3L75.7 184.6C45.5 154.4 37.7 119.4 46.2 86.3C19.5 80.3 0 56.4 0 28.1C0 -5.2 26.8 -32 59.8 -32C88.4 -32 112.3 -12.2 118.4 14.7C151.1 6.5 186.9 15.3 212.6 40.7C244.7 72.7 224.8 53.1 312.1 140.4z" /> + <glyph glyph-name="js-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM243.8 66.6C243.8 23 218.2 3.1 180.9 3.1C147.2 3.1 127.7 20.5 117.7 41.6L152 62.3C158.6 50.6 164.6 40.7 179.1 40.7C192.9 40.7 201.7 46.1 201.7 67.2V210.3H243.8V66.6zM343.4 3.1C304.3 3.1 279 21.7 266.7 46.1L301 65.9C310 51.2 321.8 40.3 342.5 40.3C359.9 40.3 371.1 49 371.1 61.1C371.1 75.5 359.7000000000001 80.6 340.4000000000001 89.1L329.9000000000001 93.6C299.5000000000001 106.5 279.4000000000001 122.8 279.4000000000001 157.1C279.4000000000001 188.7000000000001 303.5000000000001 212.7 341.0000000000001 212.7C367.8000000000001 212.7 387.0000000000001 203.4 400.8000000000001 179L368 158C360.8 170.9 353 176 340.9 176C328.6 176 320.8 168.2 320.8 158C320.8 145.4 328.6 140.3 346.7 132.4L357.2 127.9C393 112.6 413.0999999999999 96.9 413.0999999999999 61.7C413.0999999999999 23.9 383.2999999999999 3.1 343.3999999999999 3.1z" /> + <glyph glyph-name="js" + unicode="" + horiz-adv-x="448" d=" M0 416V-32H448V416H0zM243.8 66.6C243.8 23 218.2 3.1 180.9 3.1C147.2 3.1 127.7 20.5 117.7 41.6L152 62.3C158.6 50.6 164.6 40.7 179.1 40.7C192.9 40.7 201.7 46.1 201.7 67.2V210.3H243.8V66.6zM343.4 3.1C304.3 3.1 279 21.7 266.7 46.1L301 65.9C310 51.2 321.8 40.3 342.5 40.3C359.9 40.3 371.1 49 371.1 61.1C371.1 75.5 359.7000000000001 80.6 340.4000000000001 89.1L329.9000000000001 93.6C299.5000000000001 106.5 279.4000000000001 122.8 279.4000000000001 157.1C279.4000000000001 188.7000000000001 303.5000000000001 212.7 341.0000000000001 212.7C367.8000000000001 212.7 387.0000000000001 203.4 400.8000000000001 179L368 158C360.8 170.9 353 176 340.9 176C328.6 176 320.8 168.2 320.8 158C320.8 145.4 328.6 140.3 346.7 132.4L357.2 127.9C393 112.6 413.0999999999999 96.9 413.0999999999999 61.7C413.0999999999999 23.9 383.2999999999999 3.1 343.3999999999999 3.1z" /> + <glyph glyph-name="jsfiddle" + unicode="" + horiz-adv-x="576" d=" M510.634 210.538C505.907 213.159 504.97 216.286 504.253 221.314C501.9010000000001 237.802 500.7140000000001 254.933 495.1560000000001 270.409C459.2610000000001 370.366 341.1660000000001 413.795 248.3070000000001 362.055C220.9370000000001 346.805 199.3360000000001 325.6860000000001 182.8140000000001 298.1520000000001C179.6300000000001 299.6600000000001 177.3560000000001 300.862 174.9900000000001 301.838C144.8880000000001 314.259 115.9410000000001 311.9590000000001 89.6590000000001 292.6710000000001C64.1280000000001 273.9340000000001 53.2370000000001 248.123 56.9830000000001 216.263C57.3380000000001 213.238 55.0160000000001 208.642 52.4690000000001 206.7180000000001C12.7570000000001 176.7260000000001 -3.5619999999999 128.653 10.5670000000001 82.1030000000001C24.3980000000001 36.5340000000001 68.0810000000001 2.3070000000001 116.1750000000001 0.6700000000001C146.4660000000001 -0.3609999999999 176.8120000000001 0.1240000000001 207.1340000000001 0.1310000000001C291.1750000000001 0.1520000000001 375.2240000000001 -0.3999999999999 459.2540000000001 0.6110000000001C511.9180000000001 1.2450000000001 555.3620000000001 37.4840000000001 567.4660000000001 87.9040000000001C579.0060000000001 135.9780000000001 556.3220000000001 185.2040000000001 510.6340000000001 210.5380000000001zM531.741 53.658C513.511 31.226 489.398 18.405 460.461 18.008C403.587 17.227 346.694 17.778 289.8090000000001 17.778C289.8090000000001 17.078 126.781 17.619 126.081 17.624C82.22 17.956 49.342 37.39 30.906 77.619C12.004 118.864 26.902 168.4670000000001 65.092 193.725C74.274 199.798 77.597 205.291 75.188 216.861C69.698 243.222 79.641 264.817 101.608 279.842C124.595 295.5650000000001 149.03 295.988 173.642 282.925C183.911 277.475 188.249 271.361 195.84 285.452C210.0620000000001 311.851 230.3970000000001 332.179 256.511 346.746C353.971 401.112 484.881 339.178 486.751 214.049C486.873 205.899 489.163 201.621 496.599 198.155C554.1590000000001 171.326 571.0550000000001 102.033 531.7410000000001 53.658zM443.952 134.1570000000001C438.104 103.0000000000001 409.33 79.061 377.286 79.062C360.3330000000001 79.063 345.228 85.607 333.207 96.767C305.51 122.48 262.066 171.747 237.27 190.154C217.214 205.042 195.28 202.487 176.998 186.372C127.002 142.3010000000001 192.857 64.597 244.061 109.184C248.609 113.144 251.901 118.727 256.805 122.028C264.989 127.537 277.571 122.912 269.973 111.406C252.615 85.122 220.643 73.209 191.11 82.105C162.213 90.809 142.27 118.073 142.484 152.284C143.709 174.769 154.848 195.344 177.898 208.249C200.473 220.887 224.267 221.395 244.889 205.775C295.68 167.3 320.467 124.03 352.185 104.53C376.743 89.431 406.439 97.167 421.008 122.036C449.838 171.245 386.416 227.052 342.14 185.4959999999999C338.151 181.7519999999999 335.223 176.5639999999999 330.73 173.7759999999999C319.755 166.9649999999999 313.397 177.8889999999999 317.921 184.1289999999999C338.6239999999999 212.6829999999999 368.385 224.5689999999999 401.192 212.3429999999999C432.6209999999999 200.6289999999999 450.3 167.9769999999999 443.952 134.1569999999999z" /> + <glyph glyph-name="kaggle" + unicode="" + horiz-adv-x="291.72" d=" M291.7200000000001 -60.98C291.2100000000001 -62.99 289.2100000000001 -63.99 285.7100000000001 -63.99H218.79C214.77 -63.99 211.28 -62.24 208.27 -58.72L97.74 81.86L66.92 52.54V-56.48C66.92 -61.4999999999999 64.41 -63.9999999999999 59.4 -63.9999999999999H7.52C2.5 -64 0 -61.5 0 -56.48V440.49C0 445.49 2.5 448 7.52 448H59.4C64.41 448 66.92 445.49 66.92 440.49V134.49L199.24 268.31C202.75 271.81 206.26 273.57 209.76 273.57H278.9400000000001C285.9000000000001 273.57 286.8400000000001 265.7 284.2000000000001 263.05L144.35 127.74L290.2100000000001 -53.46" /> + <glyph glyph-name="keybase" + unicode="" + horiz-adv-x="412.3" d=" M177.2 17.1C177.2 7.3 169.2 -0.7 159.4 -0.7S141.6 7.3 141.6 17.1S149.6 34.9 159.4 34.9C169.2 35.0000000000001 177.2 27.0000000000001 177.2 17.1zM270 35C260.2 35 252.2 27 252.2 17.2S260.2 -0.6 270 -0.6S287.8 7.4 287.8 17.2S279.8 35 270 35zM412.3 71C412.3 32.1 404.7 -2.9 390.1 -32H362.8C386.3 6.7 393.3 62.8 385.2 102.3C369.1 72.8 333.1 63.7 299.3 73.5C171.5 111 106.8 53.8 64.7 23.2L83.6 82.5L43.7 40.2C48.5 13.5 59.4 -11.1 74.9 -32.1H46.1C36.4 -16.3 28.9 0.9 23.9 19.2L0.1 -6C0.1 68.9 -5.4 141.6 61.6 209.2C81.8 229.6 105.3 245.4 130.7 255.9C123.9 269.4 121.2 285.1 122.9 301.9L103 303.1C85.1 304.2 71.4 319.6 72.4 337.5V337.6L74 363.8C75.1 380.9 89.4 394.4 106.5 394.4C107.8 394.4 106.2 394.5 134.7 392.7C148.6 391.9 156.2 382.9 157.5 381.3C164.6 391.7 172 401.8 182.1 415.8L202.7 403.7C189.1 374.7 193.6 367.5 193.7 367.4C197.6 367.4 207.6 367.9 226.1 361.7C246 355.1 262 341 271 322C271.4 321.1 286.5 293 272.2 259.4C291.2 253.3 323.5 239.5 354.6 207.6C391.2000000000001 170 412.3 120.2000000000001 412.3 71zM128 325.7C131.2 335.7 135.7 345.4 141.1 355.1C141.2 357.1 143.3 368.2 133.3 368.9C104.8 370.7 107 370.5 106.6 370.5C102 370.5 98.3 367 98 362.4L96.4 336.2C96.1 331.5 99.8 327.4 104.5 327.1L128 325.7zM153.8 263.9C159.4 254.5 167.9 247.8 176.1 243.9C176.1 265.1 204.6 285.8 228.9000000000001 261.4L237.3000000000001 251.1C258.1 269.9 256.7000000000001 296.4 249.4000000000001 312C235.6 341.1 202.5 344 195.1 343.7C184.8 343.3 175.4 349.1 171.4 359C157.7000000000001 337.8 134.2000000000001 296.5 153.8000000000001 263.9zM236.7 195.5L217 179.4C215.1 177.8 214.8 175 216.4 173.1L225.3 162.2C226.3 161 229.1 159.5 231.6 161.6L251.2 177.6L256.7000000000001 170.8C261.6 164.8 270.5000000000001 172.1999999999999 265.7000000000001 178.1C202.1000000000001 256.4 224.2000000000001 229.2 210.4 246.2C205.7000000000001 252.2 196.5 244.8 201.4 238.9C203.3000000000001 236.6 219.8000000000001 216.3 221.2000000000001 214.5999999999999L211.6000000000001 206.6999999999999C207.0000000000001 202.8999999999999 214.2000000000001 193.3999999999999 219.0000000000001 197.2999999999999L228.7000000000001 205.2999999999999L236.7000000000001 195.4999999999999zM355.1 169.8C338.2000000000001 193.5 312.5 216.5 281.7000000000001 230.2C273.8000000000001 233.7 266.7000000000001 236.3 258.8000000000001 238.8C256.8000000000001 236.6 254.7000000000001 234.5 252.4000000000001 232.6L284.3000000000001 193.4C294.7000000000001 180.7000000000001 292.8000000000001 161.9 280.1000000000001 151.5000000000001C278.8000000000001 150.4 267.0000000000001 140.8000000000001 251.1000000000001 146.6000000000001C248.2000000000001 144.3000000000001 241.0000000000001 136.7000000000001 228.9000000000001 136.7000000000001C220.3000000000001 136.7000000000001 212.3000000000001 140.5000000000001 206.8000000000001 147.2000000000001L197.9000000000001 158.1000000000001C191.6000000000001 165.9000000000001 190.0000000000001 176.0000000000001 192.9000000000001 184.9000000000001C184.7000000000001 194.8000000000001 184.6000000000001 206.2000000000001 188.3000000000001 214.9000000000001C181.1000000000001 216.2000000000001 161.6000000000001 221.1000000000001 145.6000000000001 236.3000000000001C89.8000000000001 215.6000000000001 57.6000000000001 171.9000000000001 44.3000000000001 145.1000000000001C29.4000000000001 114.9000000000001 25.5000000000001 84.2000000000001 24.4000000000001 54.9000000000001C32.6000000000001 63.6000000000001 20.5000000000001 50.8000000000001 138.4000000000001 175.8000000000001L108.5000000000001 82.2000000000001C166.3000000000001 113.3000000000001 232.5000000000001 118.2000000000001 305.9000000000001 96.6C329.5000000000001 89.7000000000001 351.0000000000001 95 361.9000000000001 110.5C373.0000000000001 126.1 370.4000000000001 148.2 355.1000000000001 169.8zM110.6 340.7L126.2 339.7L127.2 355.3L111.6 356.3L110.6 340.7z" /> + <glyph glyph-name="keycdn" + unicode="" + horiz-adv-x="512" d=" M63.8 38.7L124.3 97.7C156.4 54.9 195.4 31.7 250.9 30.3C281.4 29.6 311.2 37.3 337.3 52.6999999999999C342.4 47.3999999999999 355.8 33.1999999999999 358.2 30.6999999999999C326 9.9999999999999 288.5999999999999 -0.4000000000001 250.1 0.4999999999999C206.8 1.6 165.5 17.1999999999999 132.3999999999999 44.8999999999999C132.6999999999999 45.4999999999999 94.1999999999999 7.3999999999999 93.7999999999999 6.9999999999999C103.2999999999999 -22.8000000000001 80.6999999999999 -55.4 47.4999999999999 -55.4C20.7 -55.3 0 -33.7 0 -6.9C0 27.4 33.1 49.7 63.8 38.7zM418.7 291.1C437.8 259.8 448.3 223.7 447.4 187.1C446.3 142.3 428.4 99.6 398.8 66.1C399.1 65.8 422.6 40.9 422.9 40.6C432.5 41.9 442.1 38.6 448.8 31.5C460.1 19.5 459.6999999999999 0.6 447.7 -10.9C435.7 -22.2 416.8 -21.8 405.3 -9.8C398.6 -2.8 395.9 7.0000000000001 397.7 16.5000000000001C372.8 43.1000000000001 353.3 63.7000000000001 353.3 63.7000000000001C396 97.8000000000001 416.6 143.3000000000001 417.7 187.9C418.3999999999999 216.8000000000001 410.5 245.1 396.5999999999999 270.1L418.7 291.1zM104 394.9C110.7 387.9 113.4 378.1 111.6 368.6L157.5 320.5C152.8 316.7 144.2 310.1 134.7 299.2C109.3 270.7 95.1 234.4 94 196.3C93.3 167.4 100.1 139.1 114 113.9L92 92.4C72.7 124 63.1 160.1 64.2 197.1C65.2 241.7 82.5 284.7 111.7 318.2L86.4 344.6C76.8 343.3 67.2 346.6 60.5 353.7C49.2 365.7 49.6 384.6 61.6 396.1C73.5 407.3 92.2 407 104 394.9zM464.9 440C490.9 440 512 417.6 512 391.7S490.9 344 464.9 344C458.6 343.9 450.9 345.1 449 345.8L386.1 286.1C353.4000000000001 329.7 309.4000000000001 352 259.2000000000001 353.3C228.7000000000001 354 198.9 346.5 173.0000000000001 330.9L151.9000000000001 352.9C184.1 373.7 221.5 384 260 383.1C303.3 382 344.6 366.4 377.7 338.5L418.8 377.1C417.3 381.8 416.6 386.7 416.6 391.6C416.5 418.3 438.9 440 464.9 440zM256.7 334.6C262.2 334.6 267.6 334.2 273.1 333.5C351.2 323.7 406.5 252.4 396.9 174.4C387.1 96.3 315.8 41 237.8 50.6C159.7 60.4 104.4 131.6999999999999 114 209.8C123.3 282.2 184.1 334.4 256.7 334.6zM197.7 215.2C198.3 192.5 209.9 173.4 230.1 163L219.1 111.3H292.8L281.8 163C301.9000000000001 173.9 313.9000000000001 192 314.2 215.2C313.8 248 288.4 272.7 255.9 273.5C223.8 272.7 198.6 248.7 197.7 215.2zM256 288" /> + <glyph glyph-name="kickstarter-k" + unicode="" + horiz-adv-x="384" d=" M147.3 333.6C147.3 389.8 114.8 416 73.9 416C26.2 416 0 379.8 0 334.6V51.6C0 4.3 25.3 -31.8 74.9 -31.8C114.7 -31.8 147.3 -6.1999999999999 147.3 51.6V128.1L259.4 -10.2C282.1 -37.4 331.5 -40.9 362.6 -10.2C389.6 17.4 389.9 57.2000000000001 370 82L279.2 196.8L354.0999999999999 304.2000000000001C371.4999999999999 328.9000000000001 371.5999999999999 367.3 343.7 394C313.3999999999999 423 261.3 425.6 230.1 381.2000000000001L147.3 263V333.6z" /> + <glyph glyph-name="kickstarter" + unicode="" + horiz-adv-x="448" d=" M400 -32H48C21.6 -32 0 -10.4 0 16V368C0 394.4 21.6 416 48 416H400C426.4 416 448 394.4 448 368V16C448 -10.4 426.4 -32 400 -32zM199.6 269.5C199.6 300.2 182 314.6 159.9 314.6C134.1 314.6 119.9 294.8 119.9 270.1V115.3C119.9 89.4999999999999 133.6 69.6999999999999 160.4 69.6999999999999C181.9 69.6999999999999 199.6 83.6999999999999 199.6 115.3V157.1L260.2 81.4C272.5 66.5 299.2 64.6 316 81.4C330.6 96.5 330.8 118.2 320 131.8L270.9 194.6L311.4 253.3C320.8 266.8 320.9 287.8 305.8 302.4C289.4 318.3 261.2 319.7 244.4 295.4L199.6 230.7V269.5z" /> + <glyph glyph-name="korvue" + unicode="" + horiz-adv-x="446" d=" M386.5 414H59.5C26.8 414 0 387.2 0 354.5V27.4C0 -5.2 26.8 -32 59.5 -32H386.6C419.6 -32 446.1 -5.2 446.1 27.5V354.5C446 387.2 419.2 414 386.5 414zM87.1 327.2H183.1V211.2L244.9 327.2H355.8L274.6 195.2H87.1V327.2zM248.9 55.1L183.2 168.6999999999999V55.0999999999999H87.2V185.9H278.7L367.3 55.1H248.9z" /> + <glyph glyph-name="laravel" + unicode="" + horiz-adv-x="640" d=" M637.5 206.4C633.3 211.2 574.7 284.5 564.4 296.9C554.1 309.3 549 307.1 542.6999999999999 306.2000000000001C536.3 305.3 462.1999999999999 292.8 453.5999999999999 291.4C444.9999999999999 289.9 439.5999999999999 286.5 444.8999999999999 279.1C449.5999999999999 272.5 498.2999999999999 203.4 509.0999999999999 188.2L315.3999999999999 141.8L161.2 399.3C155.1 408.4 153.8 411.6 139.8 410.9C125.8 410.3 18.9 401.4 11.3 400.7C3.7 400.1 -4.7 396.7 2.9 378.7S131.9 99.1 135.3 91.5C138.7 83.9 147.5 71.5 168.1 76.5C189.2 81.6 262.4 100.7 302.4 111.2C323.5 72.9 366.6 -4.7 374.6 -15.8C385.2 -30.7 392.6 -28.2 408.9 -23.2C421.7 -19.3 608.5 47.9 616.9 51.3C625.3 54.8 630.5 57.2 624.8 65.7C620.5999999999999 71.9 571.3 137.9 545.5 172.5C563.2 177.2 626.1 193.9 632.8 195.8C640.6999999999999 197.8 641.8 201.6 637.5 206.4zM285.3 134.4C283 133.9 174.5 107.9 168.7 106.6C162.9 105.3 162.9 105.9 162.2 107.9C161.5 109.9 33.2 374.6 31.4 377.9C29.6 381.2 29.7 383.8 31.4 383.8S133.9 392.8 137.4 393C141 393.2 140.6 392.4 141.9 390.2C141.9 390.2 284.1 144.8 286.5 140.5C289.1 136.2 287.6 134.9 285.3 134.4zM591.3 77C593 74.3 594.8 72.5 589.3 70.6C583.9 68.6 405.6 8.5 402.2 7C398.7 5.5 396 5 391.5999999999999 11.5S329.2 118.3 329.2 118.3L518 167.4C522.7 168.9 524.2 169.9 527.2 165.2C530.1 160.4 589.6 79.7 591.3000000000001 77zM603.4 211.1C599.1999999999999 210.2 529.8 193 529.8 193L473.1 270.8C471.4999999999999 273.1 470.2 275.3 474.2 275.8S542.6 288 545.5 288.6C548.4 289.3 550.9 290.1 554.5 285.2000000000001C558.1 280.3 607.1 218.2 609 215.8C610.8 213.5 607.6 212.1 603.4 211.1z" /> + <glyph glyph-name="lastfm-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM307.8 103.1C244.4 103.1 222.4 131.7000000000001 210.7 167.2000000000001C194.4 218.2000000000001 189.2 251.5000000000001 147.7 251.5000000000001C125.3 251.5000000000001 102.6 235.4000000000001 102.6 190.3000000000001C102.6 155.1000000000001 120.6 133.1000000000001 145.9 133.1000000000001C174.5 133.1000000000001 193.5 154.4000000000001 193.5 154.4000000000001L205.2 122.5000000000001S185.4 103.1000000000001 144 103.1000000000001C92.7 103.1000000000001 64.1 133.2000000000002 64.1 188.9000000000002C64.1 246.8000000000002 92.7 280.9000000000002 146.6 280.9000000000002C220.1 280.9000000000002 227.4 239.5000000000002 247.4 179.0000000000001C256.2 152.2000000000001 271.6 132.8000000000001 308.6 132.8000000000001C333.5 132.8000000000001 346.7 138.3000000000001 346.7 151.9000000000002C346.7 171.8000000000001 324.9 173.9000000000002 296.8 180.5000000000002C266.4000000000001 187.8000000000002 254.3 203.6000000000002 254.3 228.5000000000002C254.3 268.5000000000002 286.6 280.9000000000002 319.5 280.9000000000002C356.9 280.9000000000002 379.6 267.3000000000002 382.5 234.3000000000002L345.8 229.9000000000002C344.3 245.7000000000002 334.8 252.3000000000002 317.2 252.3000000000002C301.1 252.3000000000002 291.2 245.0000000000002 291.2 232.5000000000002C291.2 221.5000000000002 296 214.9000000000002 312.1 211.2000000000002C344.8 204.1000000000002 383.9 199.2000000000002 383.9 153.7000000000002C384 117.0000000000002 353.2 103.1000000000001 307.8 103.1000000000001z" /> + <glyph glyph-name="lastfm" + unicode="" + horiz-adv-x="512" d=" M225.8 80.9L207 131.9S176.5 97.9 130.8 97.9C90.3 97.9 61.6 133.1 61.6 189.4C61.6 261.5 98 287.3 133.7 287.3C200.2 287.3 208.5 234 234.6 152.4C253.4 95.5 288.6 49.8 390 49.8C462.7 49.8 512 72.1 512 130.6999999999999C512 203.5999999999999 449.3 211.2999999999999 397 222.7999999999999C371.2 228.7 363.6 239.2 363.6 256.8C363.6 276.7 379.4000000000001 288.4999999999999 405.2000000000001 288.4999999999999C433.4000000000001 288.4999999999999 448.6 277.8999999999999 450.9 252.7L509.5000000000001 259.7C504.8000000000001 312.5 468.4 334.2 408.6 334.2C355.8 334.2 304.2000000000001 314.3 304.2000000000001 250.3C304.2000000000001 210.3999999999999 323.6 185.1999999999999 372.2000000000001 173.5C417.1 162.8999999999999 452.0000000000001 159.6999999999999 452.0000000000001 127.8C452.0000000000001 106.1 430.9000000000001 97.3 391.0000000000001 97.3C331.8000000000001 97.3 307.1 128.4 293.1 171.1999999999999C261.1 268 249.5000000000001 334.2 131.8 334.2C45.7 334.2 0 279.7 0 187C0 97.9 45.7 49.8 127.9 49.8C194.1 49.8 225.8 80.9 225.8 80.9z" /> + <glyph glyph-name="leanpub" + unicode="" + horiz-adv-x="576" d=" M386.539 336.515L401.635 87.56L390.656 87.835C354.424 88.659 319.016 79.052 287.999 59.838C256.983 79.052 221.575 87.835 185.3420000000001 87.835C139.7780000000001 87.835 103.2720000000001 77.13 61.826 60.112L93.117 318.4C121.663 330.203 154.601 336.515 185.343 336.515C226.516 336.515 259.1790000000001 323.3400000000001 288 293.971C315.723 322.242 347.013 335.692 386.539 336.515zM569.07 0C543.5440000000001 0 521.585 5.215 498.528 15.645C464.218 31.29 428.5350000000001 40.623 390.6570000000001 40.623C351.6800000000001 40.623 315.7230000000001 27.722 288.0000000000001 0C260.2770000000001 27.723 224.3200000000001 40.623 185.3430000000001 40.623C147.4650000000001 40.623 111.7820000000001 31.29 77.4720000000001 15.645C55.239 5.764 32.731 0 8.303 0H6.93L49.475 349.141C88.726 371.374 136.486 384 181.775 384C218.83 384 256.984 376.315 288 354.905C319.016 376.315 357.17 384 394.225 384C439.514 384 487.274 371.374 526.5250000000001 349.141L569.07 0zM525.702 44.741L491.666 324.987C460.924 338.986 424.418 346.397 390.657 346.397C352.229 346.397 316.272 334.32 288 307.695C259.728 334.32 223.772 346.397 185.343 346.397C151.582 346.397 115.076 338.986 84.334 324.987L50.298 44.741C97.509 64.228 133.192 78.227 185.343 78.227C222.947 78.227 256.16 68.621 288 48.583C319.84 68.621 353.052 78.227 390.657 78.227C442.808 78.227 478.491 64.228 525.702 44.741z" /> + <glyph glyph-name="less" + unicode="" + horiz-adv-x="640" d=" M612.7 229C612.7 249.5 615.9000000000001 261.6 615.9000000000001 283.6C615.9000000000001 317.8 603.3000000000001 328.8 575.4000000000001 328.8H554.9000000000001V304.6H561.2C575.4000000000001 304.6 578.5 299.9 578.5 282.5C578.5 266.2 576.9 249.9 576.9 231C576.9 206.8 584.8 197.4 600.5 193.7V192.1C584.7 188.4 576.9 179 576.9 154.8C576.9 135.9 578.5 120.6 578.5 103.3C578.5 85.4 574.8 80.7 561.2 80.7V80.2H554.9000000000001V55H575.4000000000001C603.2 55 615.9000000000001 66 615.9000000000001 100.2C615.9000000000001 122.8 612.7 134.4 612.7 154.8C612.7 165.8 619.5 177.4 640 178.4V205.7000000000001C619.5 206.4 612.7 218.0000000000001 612.7 229.0000000000001zM507.1 197C491.3 203.3 476.6 207 476.6 217.5C476.6 225.4 482.9 230.1 494.5 230.1S516.6 225.4 528.1 217L549.1 244.8C536 254.8 518.1 265.3 493.9 265.3C458.2 265.3 434.0000000000001 244.8 434.0000000000001 215.9C434.0000000000001 190.2 456.6000000000001 177 475.5000000000001 169.7C491.8000000000001 163.4 507.6000000000001 158.1 507.6000000000001 147.6C507.6000000000001 139.7 501.3000000000001 134.5 487.1000000000001 134.5C474.0000000000001 134.5 460.8000000000001 139.8 446.6000000000001 150.8L425.6000000000001 120.3C441.4000000000001 107.1999999999999 465.5000000000001 98.1999999999999 485.5000000000001 98.1999999999999C527.5 98.1999999999999 550.1 120.3 550.1 149.1999999999999S527.6 190.1999999999999 507.1 197zM148.2000000000001 137.6C144.5000000000001 137.6 139.8000000000001 140.8 139.8000000000001 150.7000000000001V328.9H65.2C36.8 328.9 24.2 317.9 24.2 283.7C24.2 261.1 27.4 248.5 27.4 229.1C27.4 218.1 20.6 206.5 0.1 205.5V178.2C20.6 177.7 27.4 166.1 27.4 155.1C27.4 135.7 24.2 124.1 24.2 101.4999999999999C24.2 67.3 36.8 56.3 64.7 56.3H85.2V80.4999999999999H78.9C65.8 80.4999999999999 61.6 85.8 61.6 103.1S63.2 135.2 63.2 154.6C63.2 178.8 55.3 188.2 39.6 191.9V193.5C55.4 197.2 63.2 206.6 63.2 230.8C63.2 249.7 61.6 265 61.6 282.3S65.3 304.4 78.9 304.4H93V153.5999999999999C93 121.4999999999999 104 100.4999999999999 136.1 100.4999999999999C146.1 100.4999999999999 154 102.0999999999999 159.7 104.1999999999999L154.4 138.3999999999999C151.3 137.5999999999999 149.8 137.5999999999999 148.2 137.5999999999999zM379.9 197C363.6 203.3 348.9 207 348.9 217.5C348.9 225.4 355.2 230.1 366.8 230.1C378.4 230.1 388.9 225.4 400.4 217L421.4 244.8C408.3 254.8 390.4 265.3 366.2 265.3C330.5 265.3 306.3 244.8 306.3 215.9C306.3 190.2 328.9000000000001 177 347.8 169.7C364.1 163.4 379.9000000000001 158.1 379.9000000000001 147.6C379.9000000000001 139.7 373.6 134.5 359.4000000000001 134.5C346.3 134.5 333.1 139.8 318.9000000000001 150.8L298.4000000000001 120.3C314.2000000000001 107.1999999999999 338.3 98.1999999999999 358.3 98.1999999999999C400.3 98.1999999999999 422.9 120.3 422.9 149.1999999999999C423 178.0999999999999 400.4 190.1999999999999 379.9 197zM224.9 265.8C186.5 265.8 149.8 233.7 150.8 183.3C150.8 131.3 185 100.8 230.1 100.8C249 100.8 270 107.6 286.3 118.7L270.5 146.5C258.8999999999999 139.7 247.9 136.5 236.3 136.5C215.3 136.5 199 146.5 194.8 170.7H290C290.5 174.4 291.6 181.7 291.6 190.1C292.2000000000001 232.7 269 265.8 224.9 265.8zM194.9 199.6C198.1 220.6 210.7 230.6 225.4 230.6C244.3 230.6 251.7 217.5 251.7 199.6H194.9z" /> + <glyph glyph-name="line" + unicode="" + horiz-adv-x="448" d=" M272.1 243.8V172.7000000000001C272.1 170.9 270.7000000000001 169.5000000000001 268.9000000000001 169.5000000000001H257.5000000000001C256.4000000000001 169.5000000000001 255.4000000000001 170.1000000000001 254.9000000000001 170.8000000000001L222.3000000000001 214.8000000000001V172.6000000000001C222.3000000000001 170.8000000000001 220.9000000000001 169.4000000000001 219.1000000000001 169.4000000000001H207.7000000000001C205.9000000000001 169.4000000000001 204.5000000000001 170.8000000000001 204.5000000000001 172.6000000000001V243.7000000000001C204.5000000000001 245.5000000000001 205.9000000000001 246.9000000000001 207.7000000000001 246.9000000000001H219C220 246.9000000000001 221.1 246.4000000000001 221.6 245.5000000000001L254.2 201.5000000000001V243.7000000000001C254.2 245.5000000000001 255.6 246.9000000000001 257.4 246.9000000000001H268.8C270.6 247.0000000000001 272.1 245.5000000000001 272.1 243.8000000000001zM190.1 247H178.7C176.9 247 175.5 245.6 175.5 243.8V172.7000000000001C175.5 170.9 176.9 169.5000000000001 178.7 169.5000000000001H190.1C191.9 169.5000000000001 193.3 170.9 193.3 172.7000000000001V243.8000000000001C193.3 245.5000000000001 191.9 247.0000000000001 190.1 247.0000000000001zM162.6 187.4H131.5V243.8C131.5 245.6 130.1 247 128.3000000000001 247H116.9C115.1 247 113.7 245.6 113.7 243.8V172.7C113.7 171.8 114 171.1 114.6 170.5C115.2 170 115.9 169.6 116.8000000000001 169.6H162.5000000000001C164.3000000000001 169.6 165.7000000000001 171 165.7000000000001 172.8V184.2C165.7000000000001 185.9 164.3000000000001 187.4 162.6000000000001 187.4zM332.1 247H286.4000000000001C284.7000000000001 247 283.2000000000001 245.6 283.2000000000001 243.8V172.7000000000001C283.2000000000001 171.0000000000001 284.6 169.5000000000001 286.4000000000001 169.5000000000001H332.1C333.9000000000001 169.5000000000001 335.3 170.9 335.3 172.7000000000001V184.1C335.3 185.9 333.9000000000001 187.3 332.1 187.3H301V199.3H332.1C333.9000000000001 199.3 335.3 200.7 335.3 202.5V214C335.3 215.8 333.9000000000001 217.2 332.1 217.2H301V229.2H332.1C333.9000000000001 229.2 335.3 230.6 335.3 232.4V243.8C335.2 245.5 333.8 247 332.1 247zM448 334.3V49C447.9 4.2 411.2 -32.1 366.3 -32H81C36.2 -31.9 -0.1 4.9 0 49.7V335C0.1 379.8 36.9 416.1 81.7 416H367C411.8 415.9 448.1 379.2 448 334.3zM386.4 211.7C386.4 284.7 313.2 344.1 223.3 344.1C133.4 344.1 60.2 284.7 60.2 211.7C60.2 146.3 118.2 91.5 196.6 81.1C215.7 77 213.5 70 209.2 44.3C208.5 40.2 205.9 28.2 223.3 35.5C240.7 42.8 317.2 90.8 351.5 130.2C375.1 156.2 386.4 182.5 386.4 211.7z" /> + <glyph glyph-name="linkedin-in" + unicode="" + horiz-adv-x="448" d=" M100.3 -32H7.4V267.1H100.3V-32zM53.8 307.9C24.1 307.9 0 332.5 0 362.2C0 391.9 24.1 416 53.8 416C83.5 416 107.6 391.9 107.6 362.2C107.6 332.5 83.5 307.9 53.8 307.9zM448 -32H355.3V113.6C355.3 148.3 354.6 192.8 307 192.8C258.7 192.8 251.3 155.1 251.3 116.1V-32H158.5V267.1H247.6V226.3H248.9C261.3 249.8 291.6 274.6 336.8 274.6C430.8 274.6 448.1 212.7 448.1 132.3V-32z" /> + <glyph glyph-name="linkedin" + unicode="" + horiz-adv-x="448" d=" M416 416H31.9C14.3 416 0 401.5 0 383.7V0.3C0 -17.5 14.3 -32 31.9 -32H416C433.6 -32 448 -17.5 448 0.3V383.7C448 401.5 433.6 416 416 416zM135.4 32H69V245.8H135.5V32zM102.2 275C80.9 275 63.7 292.3 63.7 313.5S80.9 352 102.2 352C123.4 352 140.7 334.7 140.7 313.5C140.7 292.2 123.5 275 102.2 275zM384.3 32H317.9V136C317.9 160.8 317.4 192.7 283.4 192.7C248.8 192.7 243.5 165.7 243.5 137.8V32H177.1V245.8H240.8V216.6H241.7C250.6 233.4000000000001 272.3 251.1 304.6 251.1C371.8 251.1 384.3 206.8 384.3 149.2000000000001V32z" /> + <glyph glyph-name="linode" + unicode="" + horiz-adv-x="448" d=" M437.4 221.7C437.1 222.6 436.5 223.1 436 223.7L366 262.3C365.1 262.9 364 262.9 362.9 262.3L304 226.3C303.1 225.7 302.6 224.6 302.6 223.7L301.7000000000001 192.3L277.7000000000001 208.3C276.8000000000001 208.9 275.4000000000001 208.9 274.6 208.3L240 187.1L238.6 222.2C238.6 223.1 238 224.2 237.2 224.5L201.2 248.8000000000001L234.9 266.2000000000001C236 266.8000000000001 236.6 267.9000000000001 236.6 269.1L230.9 401.4000000000001C230.9 402.3000000000001 230 403.4000000000001 229.2 404.0000000000001L138.6 447.7C137.7 448 136.9 448 136.3 448L12.6 409.4C11.2 408.8 10.3 407.4 10.6 405.7L38 272.6C38.9 269.2 72 245.2 76.6 241.7L49.7 228.8C48.3 227.9 47.7 226.5 48 225.4L68.6 125.1C69.2 122.2 92.3 101.9999999999999 95.7 98.8L78.3 88.1999999999999C77.4 87.5999999999999 76.6 86.1999999999999 76.9 85.0999999999999C78.3 77.9999999999999 92.3 7.3999999999999 93.8 5.9999999999999L158.9 -63.1000000000001C159.5 -63.7000000000002 160.3 -63.7000000000002 161.2 -64.0000000000001C161.8 -64.0000000000001 162.3 -63.7000000000001 162.9 -63.4000000000001L246.6 3.4999999999999C247.5 4.0999999999999 247.7 4.8999999999999 247.7 5.7999999999999L245.7 51.7999999999999L273.7 28.0999999999999C274.8 27.1999999999999 276.5999999999999 27.1999999999999 277.7 28.0999999999999L344.5999999999999 81.4999999999999C345.4999999999999 82.0999999999999 345.7 82.8999999999999 345.7 83.7999999999999L348 117.1999999999999L368.3 103.1999999999999C369.4 102.2999999999999 370.9 102.2999999999999 372 103.1999999999999L426.6 146.8999999999999C427.2 147.1999999999999 427.7 147.9999999999999 427.7 148.8999999999999C428.6 155.3999999999999 438 219.6999999999999 437.4 221.6999999999999zM232.6 216.9L236.6 124.3L146 63.1L132 159.6999999999999L232.6 216.8999999999999zM224.9 396.9L230.3 270.9L123.7 215.5L104 350.3L224.9 396.9zM44 274.9L18 400L97.7 350.6L117.1 217.7L44 274.9zM74.6 127.1L55.7 218L125.7 159.7L139.4 66.3L74.6 127.1zM98.9 9.4L85.2 76.5L146.9 15.6L156.6 -51.8L98.9 9.4zM163.4 -55.1L152.8 15.8000000000001L238.5 77.2000000000001L241.6 7.2L163.4 -55.1zM245.4 60C245.4 63.4 246.3 82.9 243.4 85.1L219.1 105.1L241.4 120C243.7 121.7 242.5 125.7 242.5 128L271.9 105.4L272.5 37.1L245.4 59.9999999999999zM339.7 85.4L278.8 36.8L278.2 105.4L343.9 152.3L339.7 85.4zM367.4 111.1L348.3 124.5L350.3 158.5C350.6 159.3999999999999 350 160.5 349.2 161.1L308 188.3L308.6 218.3L373.2000000000001 177.7L367.4000000000001 111.1zM422 150.9L373.7 112.6L379.4 177.6999999999999L430.5 214.2999999999999L422 150.8999999999999z" /> + <glyph glyph-name="linux" + unicode="" + horiz-adv-x="448" d=" M196.1 324.4C195.9 325.8 198 326.7 199.3 327.3C201 328 203.2 328.3 204.8 327.4C205.2 327.2 205.6 326.7 205.4 326.3C205 325.1 203 325.3 201.9 324.7000000000001C200.9 324.2000000000001 200.1 323 198.9 323C197.9 322.9000000000001 196.2 323.4000000000001 196.1 324.4000000000001zM220.8 324.7C221.8 324.2 222.6 323 223.8 323C224.9 323 226.6 323.4 226.7 324.5C226.9 325.9 224.8 326.8 223.5 327.4C221.8 328.1 219.6 328.4 218 327.5C217.6 327.3 217.2 326.8 217.4 326.4C217.7 325.1 219.7 325.3 220.8 324.7zM435.5 14.5C435 6.3 429 0.7 421.6 -3.8C406.7000000000001 -12.8 384.3 -19.6 370.7000000000001 -36L368.1 -33.8L370.7000000000001 -36C356.5000000000001 -52.9 339.0000000000001 -62.6 322.4000000000001 -63.9C305.9000000000001 -65.1999999999999 290.4000000000001 -57.6 282.1 -40.9V-40.8C281 -38.6999999999999 280.2000000000001 -36.4 279.6 -34.1C258.1 -35.3 239.4000000000001 -28.8 224.5 -29.9999999999999C202.5 -31.1999999999999 188.7000000000001 -36.4999999999999 176.2000000000001 -36.6C171.4 -47.2 161.9 -54.2 150.3000000000001 -56.7999999999999C134.3000000000001 -60.4999999999999 114.2000000000001 -56.7999999999999 94.4 -46.4L96 -43.4L94.4 -46.4C75.9 -36.6 52.4 -37.5 35.1 -33.9C26.4 -32.1 18.8 -28.9 15 -21.6C11.3 -14.3 12 -4.3 17.2 10.1C18.9 15.2 17.6 22.8 16.4 30.9C15.8 34.8 15.2 38.8 15.2 42.7C15.2 47.0000000000001 15.9 51.2 18 55.1C22.5 63.6 29.8 67.2000000000001 36.5 69.6C43.2 72 49.3 73.6 53.5 77.9C58.7 83.4 63.6 92.3 70.1 98.1C67.5 115.3 70.3 133.5 76.3 151.4C88.9 189.3 115.5000000000001 225.6 134.4 248.1C150.5 271 155.2000000000001 289.4000000000001 156.9 312.8C158 344.6 132.4 448.2 234.8 448C315.7000000000001 447.9 311.1 362.6 310.6 316.7C310.3 286.6 326.9000000000001 266.2 344 244.7C359.2 226.7 379.1 200.4 390.5 170.3C399.8 145.6999999999999 403.4 118.5 394.2 91.1999999999999C395.6 90.6999999999999 397 89.9999999999999 398.3 89.1999999999999C399.7 88.3999999999999 401 87.3999999999999 402.3 86.3C408.9000000000001 80.6999999999999 411 71.9999999999999 412.8 63.9C414.7 55.8 416.4000000000001 48.2 420 44.2C431.1 31.8 435.9 22.7 435.5 14.5zM220.8 338.9C224.4 338 229.7 336.5 233.8 334.5C231.7 346.7 238.3 358 245.6 357.5C254.5000000000001 357.2 259.5 342 254.7 330.2C253.9 328.3 251.9 326.8 250.8 325.6C257.5 323.3 261.8 321.5 263.4000000000001 320.7C271.3 330.2 274.2000000000001 346.9 267.7000000000001 361.1C257.9000000000001 382.5 233.5000000000001 382.9 223.7000000000001 360.7C220.5000000000001 353.5 219.8000000000001 345.8 220.8000000000001 338.9zM174.6 320.1C182.4 325.8 181.5 324.8 180.5 325.6C172.5 332.5 173.9 353 182.3000000000001 353.7000000000001C188.6000000000001 354.2000000000001 193.1000000000001 343 191.9 334.1C195 336.2000000000001 198.6 337.7000000000001 202.1 338.7000000000001C203.8 358 193.1 372.2000000000001 183 372.2000000000001C164.1 372.2000000000001 159 334.7000000000001 174.6 320.1zM165.2 299.2000000000001C166.7 294.3 171.3 288.7000000000001 179.9 283.9C187.7 279.3 191.9 272.4 199.9 268.9C202.5 267.8 205.6 267 209.5 266.8C227.9 265.7000000000001 236.6 278.1 247.7 281.7000000000001C259.4 285.4 267.8 292.7000000000001 270.4 299.8C273.6 308.3 268.3 314.5 259.9 318C248.6 322.9 243.6 323.2 237.3 327.3C227 333.9 218.5 336.2 211.4 336.2C197 336.2 188.2 326.4 183.5 322C183 321.5 175.6 316.1 169.4 311.5C165.2 308.2 163.8 304.1 165.2 299.2zM131.7 46.4L112.1 82C105.3 91.2 98.3 96.8 90.2 98C82.5 99.2 77.6 96.6 72.5 91.1C67.7 86 63.7 78.8 58.2 73.1C50.4 66.6 48.9 66.9 38.6 63.2000000000001C32.3 61.0000000000001 27.3 58.6 23.8 51.9C21.1 46.9 21.7 39.7 22.9 31.9C24.1 24.0000000000001 25.9 15.6 23.5 8.0000000000001V7.8000000000001C18.5 -5.8999999999999 18.5 -13.8999999999999 20.9 -18.5999999999999C28.8 -33.9999999999999 67.5 -24.6999999999999 97.4 -40.4999999999999C128.8 -56.8999999999999 170 -57.5999999999999 172.7 -22.4999999999999C174.8 -1.9999999999999 141.2 26.5000000000001 131.7 46.4000000000001zM285.6 10.6C288.8 21.6 291.9000000000001 31.9 292.4000000000001 39.6C293.2000000000001 54.8 294.0000000000001 68.3 296.8 79.4999999999999C299.9000000000001 92.1 306.1 102.6 318.2 106.8C320.5 127.9 336.9 127.9 356.5 119.3C375.4 110.8 382.5 103.3 379.3 93.1999999999999C380.3 93.1999999999999 381.3 93.3 383.5 93.1999999999999C388.7 110.0999999999999 369.2 121.1999999999999 352.8 128C355.7 140 355.2 152.1 352.4000000000001 163.6999999999999C346.4000000000001 189 329.8 211.5 317.2000000000001 222.6999999999999C314.9000000000001 222.7999999999999 315.1 220.7999999999999 319.8000000000001 216.1999999999999C331.4000000000001 205.5 356.9000000000001 167 343.1000000000001 131.3C339.2000000000001 132.3 335.5000000000001 132.8 332.2000000000001 132.6999999999999C326.9000000000001 161.8 314.7000000000001 185.8999999999999 308.6000000000001 197.2999999999999C297.1000000000001 218.6999999999999 279.1000000000001 262.5999999999999 271.4000000000001 293C266.9000000000001 286.5999999999999 259.0000000000001 281.0999999999999 249.1000000000001 278C244.4000000000001 276.5 239.4000000000001 272.5 233.2000000000001 269C219.3000000000001 261 203.2000000000001 260.2 190.8000000000001 270.2C186.3000000000001 273.8 182.8000000000001 277.8 178.2000000000001 280.5C176.6000000000001 281.4 173.1000000000001 283.8 172.0000000000001 284.5999999999999C170.0000000000001 246.8 144.7000000000001 199.3 132.7000000000001 171.8999999999999C124.4000000000001 152.1999999999999 119.5000000000001 131.0999999999999 118.9000000000001 110.3999999999999C97.1000000000001 139.5 113.0000000000001 176.6999999999999 121.5000000000001 192.7999999999999C131.0000000000001 210.3999999999999 132.5000000000001 215.2999999999999 130.2000000000001 213.5999999999999C121.6000000000001 199.5999999999999 108.2000000000001 177.3 103.0000000000001 154.3999999999999C100.3000000000001 142.5 99.8000000000001 130.3999999999999 103.3000000000001 119.1999999999999C106.8000000000001 107.9999999999999 114.4000000000001 97.6999999999999 127.9000000000001 89.3C127.9000000000001 89.3 152.7000000000001 74.9999999999999 166.2000000000001 56.8C173.6000000000001 46.8 175.9000000000001 38.1 173.6000000000001 31.9C171.1000000000001 25.2 164.0000000000001 23 156.9000000000001 23C161.7000000000001 17 167.2000000000001 10 171.3000000000001 3.4C208.9000000000001 -22.3 253.5000000000001 -12.3 285.6000000000002 10.6zM415 39.5C405 50.8 407.8 72.6 397.9 81.1C391 87.1 384.3 86.5 375.3 86.2000000000001C367.6 77.4 349.5 66.6 336.9 69.9C325.4 72.8 318.9 86.2000000000001 318.1 99.4C317.8 99.2000000000001 317.4 99.1 317.1 98.9C310 95.0000000000001 306 88.1 303.4 77.8C300.9 67.6 300 54.3 299.2 39.1C298.5 27.3 293 12.7 289.3 -1.5C285.8 -14.7 283.5 -26.7 288.2 -37.8C295.4 -52.3 307.7 -58.2 321.9 -57.1C336.1 -56 352.3 -47.3 365.5 -31.6C387.5 -5 427.8 -1.9 428.7 14.9C429 20 425.6 27.9 415 39.5zM173.3 299.3C175.3 297.4 178 294.8 181.3 292.2000000000001C187.9 287 197.1 281.6 208.6 281.6C220.2 281.6 231.1 287.5 240.4000000000001 292.4000000000001C245.3000000000001 295 251.3000000000001 299.4000000000001 255.2000000000001 302.8000000000001C259.1 306.2000000000001 261.1 309.1 258.3000000000001 309.4000000000001C255.5000000000001 309.7000000000001 255.7000000000001 306.8000000000001 252.3000000000001 304.3000000000001C247.9000000000001 301.1 242.6000000000001 296.9000000000001 238.4000000000001 294.5C231.0000000000001 290.3000000000001 218.9000000000001 284.3000000000001 208.5000000000001 284.3000000000001C198.1000000000001 284.3000000000001 189.8000000000001 289.1 183.6000000000001 294C180.5000000000001 296.5 177.9000000000001 299 175.9000000000001 300.9000000000001C174.4000000000001 302.3000000000001 174.0000000000001 305.5 171.6000000000001 305.8000000000001C170.2000000000001 305.9000000000001 169.8000000000001 302.1 173.3000000000001 299.3000000000001z" /> + <glyph glyph-name="lyft" + unicode="" + horiz-adv-x="512" d=" M0 366.9H77.8V158.2000000000001C77.8 125.1 92.8 105.4 105 97.2000000000001C92.3 86.1 53.8 76.3000000000001 24.8 100.0000000000001C7.8 114 0 137.3 0 159V366.9zM485.9 193.4V215.4H509.7V292.2H483.6C473.4999999999999 338.5 432.4 372.9 383.3 372.9C326.7 372.9 280.6 326.9 280.6 270.2V91C296.6 88.7 316 91.3 332.3 105C349.4 119 357.1 142.2 357.1 164V170.7H395.9V247.5H357.1V270.8C357.1 305.4 409.3 305.4 409.3 270.8V193.7C409.3 137.1 455.3 91 511.9999999999999 91V167.5C497.4999999999999 167.5 485.8999999999999 179.2 485.8999999999999 193.4zM191.6 292.4V179.4C191.6 164 167.8 164 167.8 179.4V292.4H91V159.7C91 135.9 99 105.7 136 95.8C173 86 194.2 106.4 194.2 106.4C192.1 93.0000000000001 179.7 83.1 159.3 81.1C143.8 79.5 124.1 84.7000000000001 114.3 88.9V18.6C139.4 11.1 165.8 8.8 191.9 13.9C239 23.0000000000001 268.7 62.3 268.7 114.7000000000001V292.9H191.6V292.4z" /> + <glyph glyph-name="magento" + unicode="" + horiz-adv-x="448" d=" M445.7 320.1V64L382.3 27.5V283.3L223.8 374.9L65.2 283.3L65.6 27.4L2.3 64V319.9L224.2 448L445.7 320.1zM255.6 27.5L224 9.1L192.2 27.3V283.3L128.9 246.7L129 -9.2L223.9 -64.1L319 -9.2V246.8L255.6 283.4V27.4999999999999z" /> + <glyph glyph-name="mailchimp" + unicode="" + horiz-adv-x="428.07" d=" M426.56 124.28C423.4700000000001 130.87 417.59 135.41 410.21 137.16C407.74 148.43 404.33 153.96 404.02 154.79C405.32 156.27 406.58 157.76 406.86 158.11C417.28 171.04 410.48 189.97 392.67 194.44C382.65 204.0799999999999 373.58 208.6099999999999 366.13 212.34C358.99 215.91 361.8399999999999 214.5099999999999 355.14 217.53C353.36 226.24 352.7699999999999 246.5 349.94 260.7199999999999C347.3999999999999 273.51 342.2799999999999 282.78 334.38 288.87C331.2199999999999 295.7099999999999 326.79 302.61 321.45 307.68C346.2899999999999 345.76 352.83 383.37 334.64 403.07C326.5399999999999 411.8399999999999 314.51 416 300.12 416C279.86 416 254.94 407.74 229.78 392.4599999999999C229.78 392.4599999999999 213.4 405.64 213.05 405.92C142.97 461.11 -55.23 217.22 14.73 163.92L32.79 150.12C21.45 118.5799999999999 37.22 80.98 70.08 68.91C77.34 66.24 85.22 64.9399999999999 93.39 65.4C93.39 65.4 146.48 -31.96 258.49 -31.99C388.07 -32.03 421.04 94.73 421.39 95.87C421.39 95.86 431.89 111.38 426.56 124.28zM20.12 180.05C5.92 204.01 30.63 253.24 48.21 281.2200000000001C91.66 350.37 163.98 404.94 196.82 397.15L205.85 400.61C205.88 400.58 230.52 379.76 230.55 379.74C247.52 389.93 269.13 400.31 289.35 402.38C277.05 399.61 262.06 393.23 244.3 382.37C243.87 382.12 202.28 354.05 176.87 328.85C163.02 315.12 107.42 248.44 107.4699999999999 248.5C117.63 267.73 124.33 277.17 140.41 297.4C149.5099999999999 308.8400000000001 159.22 319.9700000000001 169.15 330.24C173.76 335.01 178.43 339.6 183.0999999999999 343.9500000000001C186.31 346.94 189.5399999999999 349.8200000000001 192.75 352.5700000000001C194.2299999999999 353.8400000000001 195.71 355.0700000000001 197.18 356.2800000000001L197.19 356.29L164.6 383.2L166.32 371.14L190.01 350.27S169.05 336.16 158.62 327.26C116.83 291.6 75.82 236.86 60.56 183.57L61.29 183.6C53.69 179.41 46.15 172.69 39.56 163.55C39.4 163.59 22.52 175.98 20.12 180.05zM89.23 79.96C64.2 79.96 43.9 101.33 43.9 127.6800000000001C43.9 154.0400000000001 64.19 175.4000000000001 89.23 175.4000000000001C95.72 175.4000000000001 101.89 173.9600000000001 107.47 171.3800000000001C107.47 171.3800000000001 117.1 166.5200000000001 119.81 143.5700000000001C122.63 150.7400000000001 124.05 156.6300000000001 124.05 156.6300000000001C127.28 146.7500000000001 128.93 136.3700000000001 128.28 125.8700000000001C130.96 129.4300000000001 133.83 136.1400000000001 133.83 136.1400000000001C138.83 106.8100000000001 117.43 79.9600000000001 89.23 79.9600000000001zM145.03 248.4900000000001S164.52 285.5500000000001 207.36 310.0600000000001C204.17 310.5700000000001 196.37 309.5800000000001 195 309.4200000000001C202.78 316.11 217.24 320.5800000000001 227.23 322.61C224.31 324.4700000000001 217.34 324.9400000000001 213.89 325.0300000000001C212.87 325.0600000000001 212.88 325.0500000000001 211.67 325.0000000000001C221.07 330.2500000000001 238.49 333.3400000000001 254.32 330.5500000000001C252.33 333.1900000000001 247.82 335.12 244.65 336.0600000000001C244.37 336.1400000000001 243.13 336.4500000000001 243.13 336.4500000000001L244.32 336.73C253.86 338.5700000000001 265.01 336.5800000000001 273.82 333.0400000000001C272.82 335.36 270.37 338.0700000000001 268.53 339.7800000000001C268.34 339.9600000000001 267.24 340.7500000000001 267.24 340.7500000000001C276.46 338.8400000000001 285.3 334.8100000000001 291.95 330.2500000000001C291.05 332.0000000000001 288.81 334.9400000000001 287.26 336.5400000000001C296.07 334.0200000000001 305.9699999999999 327.73 310.2099999999999 318.7200000000001C310.31 318.5200000000001 310.58 317.7800000000001 310.6099999999999 317.6900000000001C293.9099999999999 330.5300000000001 245.1699999999999 326.8900000000001 196.3699999999999 295.2700000000001C174.0399999999999 280.7900000000001 157.6599999999999 264.9500000000001 145.0299999999999 248.4900000000001zM408.35 102.15C407.7600000000001 101.0000000000001 401.62 67.7500000000001 366.49 40.14C322.12 5.28 263.8300000000001 8.8100000000001 241.82 28.34C230.06 39.34 224.97 55.0700000000001 224.97 55.0700000000001S223.64 46.2 223.41 42.72C214.54 57.81 215.29 76.24 215.29 76.24S210.56 67.41 208.39 62.47C201.86 79.09 205.23 96.25 205.23 96.25L200.07 88.55S197.65 107.36 203.59 123.02C209.95 139.76 222.27 151.92 224.7 153.44C215.35 156.41 204.58 164.93 204.56 164.95C204.56 164.95 208.84 164.67 211.82 165.35C211.82 165.35 192.92 178.89 189.6 199.61C192.34 196.23 198.09 192.4 198.09 192.4C196.23 197.8199999999999 195.1 209.89 196.84 221.7599999999999L196.85 221.7699999999999C200.43 244.45 219.12 259.2199999999999 240.29 259.04C262.83 258.8399999999999 277.94 254.11 296.84 271.54C300.84 275.2299999999999 304.03 278.41 309.65 279.6499999999999C310.24 279.7799999999999 311.71 280.3999999999999 314.72 280.3999999999999C317.77 280.3999999999999 320.7 279.7099999999999 323.39 278.1099999999999C333.64 272.01 335.85 256.0999999999999 336.95 244.4299999999999C341.02 201.1499999999999 339.38 208.8599999999999 356.89 199.9399999999999C365.25 195.6899999999999 374.63 191.6499999999999 385.32 180.2199999999999C385.35 180.19 385.4 180.13 385.4 180.13H385.53C394.54 179.9099999999999 399.18 172.8199999999999 395.03 167.6599999999999C364.8 131.5599999999999 322.57 114.2699999999999 275.52 112.8199999999999C273.58 112.7699999999999 269.2 112.67 269.18 112.67C250.17 112.09 243.99 87.5099999999999 255.91 72.72C263.45 63.37 277.94 60.3 289.88 60.26L290.05 60.32C341.5 59.28 393.19 95.69 402.12 115.76C402.18 115.91 402.73 117.18 402.73 117.18C400.6600000000001 114.75 350.55 67.57 289.6500000000001 69.28C289.6500000000001 69.28 282.99 69.42 276.7200000000001 70.8800000000001C268.4500000000001 72.8000000000001 262.17 76.4400000000001 259.7700000000001 84.6800000000001C264.8200000000001 83.6700000000001 271.2200000000001 83.02 278.6400000000001 83.02C322.6 83.02 354.2700000000001 103.0000000000001 350.9700000000001 103.27C350.8400000000001 103.27 350.7100000000001 103.2400000000001 350.49 103.1900000000001C345.36 102.0000000000001 292.52 81.53 259.12 92.03C259.2 93.05 259.36 94.04 259.6 94.93C262.5700000000001 104.88 267.85 103.49 276.3900000000001 103.86C306.8700000000001 104.87 331.4600000000001 112.54 349.8900000000001 121.29C369.54 130.62 384.5200000000001 142.6400000000001 389.9200000000001 148.71C396.9200000000001 136.92 396.8800000000001 121.79 396.8800000000001 121.79S399.6200000000001 122.75 403.2600000000001 122.75C414.6400000000001 122.74 416.9900000000001 112.52 408.35 102.15zM259.0600000000001 88.4500000000001C259.0600000000001 88.5000000000001 259.0500000000001 88.5500000000001 259.0500000000001 88.6C259.0600000000001 88.55 259.0600000000001 88.5 259.0600000000001 88.4500000000001zM259.0500000000001 88.66C259.0400000000001 88.79 259.0400000000001 88.92 259.0300000000001 89.05C259.0100000000001 89.7 259.0000000000001 90.38 259.0300000000001 91.07C259.0100000000001 90.33 259.0100000000001 89.65 259.0300000000001 89.05C259.0400000000001 88.92 259.0400000000001 88.78 259.0500000000001 88.66zM259.1700000000001 87.2000000000001C259.1700000000001 87.1800000000001 259.1700000000001 87.16 259.1800000000001 87.14C259.1800000000001 87.16 259.1800000000001 87.1800000000001 259.1700000000001 87.2000000000001zM259.1900000000001 87.08C259.3900000000001 85.5000000000001 259.7000000000001 84.77 259.7400000000001 84.6800000000001C259.5100000000001 85.1700000000001 259.3200000000001 86.02 259.1900000000001 87.08zM193.96 388.32L196.83 397.15L201.71 379.43L195.68 381.38L193.96 388.32zM216.34 370.6L212.72 383.19L222.69 374.83C220.45 373.39 218.33 371.9700000000001 216.34 370.6zM259.05 88.66C259.04 88.79 259.04 88.92 259.0300000000001 89.05C259.04 88.92 259.04 88.78 259.05 88.66zM259.04 89.05C259.0200000000001 89.6999999999999 259.0100000000001 90.3799999999999 259.04 91.0699999999999C259.0100000000001 90.3199999999999 259.0100000000001 89.6499999999999 259.04 89.05zM259.06 88.4499999999999C259.06 88.4999999999999 259.05 88.55 259.05 88.5999999999999M259.18 87.1399999999999C259.18 87.1599999999999 259.18 87.18 259.17 87.1999999999999M259.19 87.0799999999999C259.39 85.4999999999999 259.7 84.7699999999999 259.74 84.68C259.51 85.17 259.32 86.0199999999999 259.19 87.0799999999999zM311.29 225.69C311.2200000000001 229.05 311.7600000000001 234.61 314.92 235.64H314.93C320.3400000000001 237.5199999999999 327.51 223.66 327.8400000000001 211.3599999999999C323.5600000000001 213.4999999999999 318.54 214.41 313.37 213.9599999999999C312.07 217.9299999999999 311.45 221.6599999999999 311.29 225.6899999999999zM205.38 362.73L191.79 374.11L212.36 367.83C209.71 365.95 207.36 364.23 205.38 362.73zM233.08 195.79C229.67 194.49 227.25 193.48 226.08 193.65C224.19 193.93 226.02 197.4 230.16 200.7600000000001C238.49 207.4 249.92 209.46 259.69 205.8300000000001C263.97 204.2600000000001 268.77 201.1100000000001 271.29 197.4400000000001C272.24 196.0500000000001 272.5 195.0000000000001 272.11 194.5600000000001C271.3400000000001 193.6600000000001 268.6 194.8700000000001 264.56 196.4500000000001C254.21 200.3100000000001 246.58 200.9 233.08 195.7900000000001zM247.63 181.2600000000001C245.32 180.3200000000001 243.82 179.6 243.21 180.09C242.59 180.5700000000001 243.2 182.5100000000001 245.36 184.6C247.24 186.41 249.1900000000001 187.43 251.43 188.37C251.78 188.52 252.15 188.65 252.53 188.75C253.57 189.03 254.62 189.38 255.76 189.55C264.88 191.1 271.56 186.04 270.69 184.57C270.3 183.88 268.61 184.04 266.09 184.21C260.86 184.57 255.38 184.48 247.63 181.26zM60.86 124.88zM85.16 150.66C83.31 150.27 84.35 150.49 82.52 149.98A7 7 0 0 1 81.75 149.73C81.17 149.46 80.64 149.28 80.13 149C79.7 148.7599999999999 76.06 147.1399999999999 73.1 143.5199999999999C69.11 138.5699999999999 67.66 132.0899999999999 67.91 125.8499999999999C68.15 119.7899999999999 69.93 116.4399999999999 70.26 115.6199999999999C71.64 112.6599999999999 68.41 112.0499999999999 65.47 115.2299999999999L65.46 115.2399999999999C63.11 117.7299999999999 61.6 121.5299999999999 60.86 124.8999999999999C57.88 138.8499999999999 64.1 152.8699999999999 78.47 158.4699999999999C79.27 158.7899999999999 80.21 158.9799999999999 80.97 159.1999999999999H80.96C82.43 159.6399999999999 87.68 160.6999999999999 93.03 159.87C98.9 158.9599999999999 104.07 156.0199999999999 107.36 152.1999999999999L107.37 152.19C109.9 149.3199999999999 111.8 145.2699999999999 111.46 141.66V141.65C111.33 140.15 110.67 138 109.32 137.44C108.82 137.23 108.31 137.34 107.96 137.69C106.98 138.65 107.74 140.62 105.36 143.99C102.19 148.46 95.05 152.75 85.16 150.66zM115.44 119.49C117.32 108.67 109.44 98.99 99.92 98.79C93.25 98.64 89.61 102.81 90.26 103.72C90.56 104.15 91.58 103.96 93.14 103.73C101.64 102.41 106.8 107.59 108.04 113.02C108.06 113.11 108.39 114.56 108.38 115.56C108.45 116.44 108.35 117.32 108.22 118.12C107.22 123.74 100.77 124.8 96.62 129.27C92.9 133.31 93.63 138.49 95.97 140.98C98.78 143.75 102.8 142.74 102.75 141.7599999999999C102.75 141.24 101.78 140.8499999999999 100.58 140.0199999999999C99.02 138.9199999999999 98.81 137.8599999999999 99.21 136.0399999999999C99.47 135.0399999999999 99.92 134.3899999999999 100.89 133.6199999999999C104.37 130.8599999999999 113.74 128.9199999999999 115.44 119.4899999999999zM328.31 200.96C330.89 200.56 332.5300000000001 197.37 331.98 193.83C331.43 190.29 328.8900000000001 187.75 326.31 188.16C323.73 188.56 322.09 191.75 322.64 195.29C323.2 198.82 325.73 201.36 328.31 200.96zM299.98 190.65C301.4000000000001 193.24 305.42 193.76 308.9700000000001 191.81C312.5200000000001 189.87 314.24 186.19 312.8300000000001 183.61C311.4100000000001 181.0200000000001 307.3900000000001 180.5 303.8400000000001 182.45C300.29 184.39 298.5600000000001 188.06 299.98 190.65z" /> + <glyph glyph-name="mandalorian" + unicode="" + horiz-adv-x="390.88" d=" M203.28 -63.89C202.3 -60.63 201.59 -48.06 201.89 -39.31C202.44 -23.42 202.87 -14.59 203.29 -10.55C203.93 -4.35 206.16 10.17 206.57 10.83C207.17 11.79 206.97 38.7 206.33 43.96C206.02 46.54 205.7 55.86 205.64 64.69C205.51 81.16 205.11 84.81 202.91 89.45C201.81 91.77 201.68 93.29 201.92 100.88C202.08 105.69 201.92 111.41 201.58 113.59C199.53 126.56 198.12 141.29 198.33 147.49C198.54 153.61 198.76 154.6399999999999 200.39 157.16C203.44 161.87 206.9 171.2 209.01 180.43C211.27 190.29 212.89 197.61 213.6 201.17C214.49 205.59 216.03 210.89 217.96 216.22C220.2300000000001 222.47 220.4500000000001 231.61 218.3300000000001 231.61C218.03 231.61 216.9500000000001 230.39 215.9200000000001 228.9C214.8900000000001 227.41 211.1600000000001 224.0999999999999 207.6300000000001 221.5399999999999C199.2600000000001 215.4599999999999 195.9300000000001 212.1499999999999 194.9700000000001 208.9599999999999C194.0400000000001 205.8499999999999 193.9500000000001 201.7299999999999 194.8100000000001 201.1999999999999C195.1500000000001 200.9899999999999 196.1000000000001 198.7999999999999 196.9200000000001 196.3199999999999C198.5400000000001 191.44 198.7900000000001 186.1999999999999 197.6400000000001 180.9599999999999C197.2500000000001 179.19 196.5900000000001 175.4899999999999 196.1800000000001 172.7299999999999C195.7700000000001 169.9699999999999 195.2000000000001 166.2699999999999 194.9300000000001 164.5099999999999C194.6500000000001 162.7499999999999 193.9600000000001 160.8299999999999 193.3800000000001 160.2499999999999C192.4200000000001 159.2899999999999 192.2400000000001 159.3399999999999 191.3300000000001 160.7799999999999C190.78 161.6499999999999 190.1300000000001 163.7899999999999 189.8900000000001 165.5299999999999C189.6400000000001 167.2699999999999 188.2600000000001 172.6399999999999 186.81 177.4599999999999C183.53 188.3599999999999 183.29 193.6099999999999 185.85 198.4199999999999C186.77 200.1499999999999 187.52 202.2299999999999 187.52 203.0299999999999C187.52 205.4199999999999 185.32 208.3499999999999 180.11 212.9199999999999C173.06 219.0999999999999 171.48 220.8399999999999 169.88 224.2199999999999C168.17 227.8199999999999 166.82 228.2799999999999 165.34 225.7599999999999C163.56 222.7499999999999 162.7400000000001 216.6499999999999 162.37 203.7399999999999L162.0200000000001 191.6099999999999L163.97 189.3599999999999C167.18 185.6599999999999 176.04 172.9099999999999 177.75 169.5299999999999C181.16 162.7899999999999 182.09 157.8399999999999 182.16 145.9699999999999C182.23 134.13 183.11 123.2199999999999 184.16 121.2599999999999C184.5200000000001 120.5999999999999 184.67 119.9099999999999 184.5 119.74C184.3300000000001 119.5699999999999 184.91 117.65 185.79 115.47C186.67 113.29 187.6 109.2499999999999 187.85 106.49C188.1 103.73 188.87 99.06 189.56 96.12C191.79 86.56 192.3300000000001 82.04 191.95 75.98C191.75 72.71 191.42 64.91 191.22 58.66C189.91 16.9 189.37 0.68 189.18 -2.55C189.06 -4.57 188.7900000000001 -14.06 188.5800000000001 -23.62C188.22 -39.92 187.28 -50.99 186.1600000000001 -52.27C185.5200000000001 -53 178.0900000000001 -47.36 173.6400000000001 -42.78C169.8900000000001 -38.91 169.62 -37.9899999999999 170.81 -32.83C171.51 -29.82 173.07 -14.54 174.1400000000001 -0.21C174.5000000000001 4.57 174.9500000000001 10.29 175.15 12.5C175.9800000000001 21.87 176.81 32.85 177.7600000000001 47.28C178.3200000000001 55.74 179.0900000000001 63.72 179.4800000000001 65.01C179.8600000000001 66.3 180.37 74.9 180.6100000000001 84.12L181.0400000000001 100.89L178.7800000000001 105.19C177.0600000000001 108.47 173.9100000000001 112.13 165.5600000000001 120.53C159.5300000000001 126.6 153.7200000000001 132.83 152.6500000000001 134.38L150.7000000000001 137.19L151.4500000000001 148.09C152.5400000000001 163.8 152.5500000000001 196.66 151.4700000000001 207.15L150.5800000000001 215.85L147.3000000000001 220.37C141.4400000000001 228.45 141.5000000000001 228.12 141.0800000000001 253.64C140.9800000000001 259.71 140.7000000000001 265.14 140.4500000000001 265.7C139.6200000000001 267.57 137.4000000000001 268.36 131.9100000000001 268.75C123.0500000000001 269.37 120.9500000000001 270.65 108.0600000000001 283.3C101.9100000000001 289.3400000000001 95.7200000000001 295.27 94.3100000000001 296.49C91.5000000000001 298.91 91.5200000000001 298.48 93.7500000000001 306.12L95.1000000000001 310.77L93.4100000000001 313.81C92.4800000000001 315.48 91.3200000000001 317.32 90.8200000000001 317.88C89.4900000000001 319.39 85.3200000000001 328.77 84.8300000000001 331.37C84.5200000000001 333.03 84.7400000000001 334.04 85.7000000000001 335.27C87.9300000000001 338.13 89.1000000000001 340.95 90.1500000000001 346C92.4800000000001 357.19 97.8900000000001 372.0900000000001 100.7500000000001 375.2200000000001C103.9300000000001 378.69 108.4500000000001 376.27 110.1600000000001 370.19C111.5000000000001 365.4 111.5300000000001 360.4 110.2600000000001 351.64C109.7300000000001 347.96 109.2800000000001 342.9600000000001 109.2700000000001 340.53C109.2500000000001 336.52 109.4600000000001 335.8400000000001 111.5200000000001 333.14C114.8500000000001 328.77 119.2500000000001 325.73 126.7200000000001 322.62C128.4200000000001 321.9100000000001 130.5400000000001 320.63 131.4400000000001 319.77C142.6100000000001 309.05 150.0600000000001 303.5900000000001 154.3900000000001 302.92C159.5700000000001 302.12 162.3700000000001 298.38 164.4300000000001 289.5300000000001C165.7400000000001 283.88 168.4300000000001 278.3900000000001 169.8900000000001 278.3900000000001C170.4800000000001 278.3900000000001 171.9800000000001 279.0200000000001 173.2200000000001 279.7800000000001C175.2000000000001 281 175.4700000000001 281.51 175.4700000000001 283.9600000000001C175.4600000000001 287.6700000000001 174.3000000000001 298.0400000000001 173.4700000000001 301.8000000000001C173.1000000000001 303.4600000000001 172.6900000000001 305.86 172.5400000000001 307.1500000000001C172.4000000000001 308.4400000000001 171.9300000000001 311 171.5100000000001 312.8400000000001C168.9600000000001 324 167.8600000000001 328.3000000000001 167.4100000000001 328.8900000000001C165.8600000000001 330.9100000000001 163.3300000000001 339.0900000000001 162.4800000000001 344.8100000000001C160.8400000000001 355.92 158.5200000000001 359.04 149.5700000000001 362.2000000000001C144.9300000000001 363.8400000000001 140.6800000000001 366.3200000000001 136.2500000000001 369.98C135.1000000000001 370.9300000000001 132.2400000000001 373.2000000000001 129.9000000000001 375.04C127.5500000000001 376.87 125.4900000000001 378.5700000000001 125.3000000000001 378.8000000000001C125.1200000000001 379.0300000000001 123.9100000000001 379.9400000000001 122.6100000000001 380.8200000000001C116.3700000000001 385.04 113.7700000000001 387.8000000000001 111.3500000000001 392.7800000000001L108.9100000000001 397.8000000000001L108.6900000000001 410.7800000000001L108.4700000000001 423.7600000000001L115.3800000000001 430.3100000000001C119.3300000000001 434.0600000000001 123.8600000000001 437.6600000000001 125.9700000000001 438.7400000000001C129.2800000000001 440.4300000000001 130.4200000000001 440.6300000000001 137.3400000000001 440.79C145.8700000000001 440.98 147.4600000000001 440.7700000000001 149.0000000000001 439.23C150.5300000000001 437.7000000000001 150.3600000000001 432.8300000000001 148.7100000000001 430.73C147.9700000000001 429.79 147.3700000000001 428.7500000000001 147.3700000000001 428.4100000000001C147.3700000000001 427.8300000000001 144.7600000000001 423.5000000000001 141.9500000000001 419.4200000000001C141.2700000000001 418.4300000000001 139.8200000000001 414.0700000000001 139.5800000000001 412.6C160.0200000000001 399.2100000000001 161.1300000000002 408.8300000000001 153.6500000000001 383.6200000000001L165.0500000000001 381.0800000000001C168.1600000000002 389.74 171.5200000000001 398.3400000000001 173.6600000000002 407.3000000000001C173.9500000000001 414.9300000000001 161.6800000000002 411.49 158.2600000000001 415.98C155.9300000000001 421.9100000000001 161.3900000000001 430.1600000000001 164.3200000000001 435.1800000000001C165.9200000000001 437.5200000000001 170.9400000000002 439.8800000000001 173.1400000000001 439.3300000000001C174.0200000000001 439.11 177.3000000000001 439.6800000000001 180.5100000000001 440.61C183.6900000000002 441.5300000000001 187.0900000000002 442.29 188.0600000000002 442.29C189.0300000000002 442.29 191.7200000000002 442.8700000000001 194.0400000000001 443.5800000000001C197.6900000000002 444.6900000000001 198.5400000000001 444.7500000000001 200.3900000000001 443.98C201.5600000000001 443.5000000000001 204.1800000000001 442.8900000000001 206.2100000000001 442.6200000000001C208.2300000000001 442.36 210.9300000000001 441.5000000000001 212.2100000000001 440.7100000000001C213.4900000000001 439.92 215.7400000000001 438.9400000000001 217.2300000000001 438.54C219.7400000000001 437.86 220.2300000000001 437.9700000000001 224.2800000000002 440.2100000000001L228.6300000000002 442.61L239.3300000000002 443.0200000000001C249.7700000000001 443.42 250.1400000000002 443.4900000000001 254.5900000000001 445.7000000000001L259.1700000000002 448.0000000000001L261.6300000000001 446.5700000000001C263.3900000000001 445.55 264.7700000000001 443.8400000000001 266.4800000000002 440.5900000000001C268.8400000000002 436.0800000000001 268.8600000000002 436.0100000000001 267.8500000000002 433.2200000000001C266.9700000000002 430.7800000000001 266.9600000000002 429.92 267.7500000000001 426.8300000000001C268.2500000000001 424.8700000000001 269.2000000000001 422.2100000000001 269.8500000000002 420.92C270.5000000000001 419.6300000000001 271.0900000000002 417.8300000000001 271.1600000000002 416.9100000000001C271.4700000000002 412.5800000000001 271.1300000000002 411.61 268.7500000000001 409.99C266.5800000000001 408.5200000000001 261.7700000000001 402.0800000000001 261.7700000000001 400.6500000000001C261.7700000000001 400.3300000000001 261.2900000000001 398.9600000000001 260.7000000000001 397.62C255.6600000000001 386.11 253.9400000000001 384.0600000000001 246.4400000000001 380.6400000000001C237.2400000000001 376.4400000000001 234.1400000000001 375.4500000000001 230.2300000000001 375.4500000000001C227.1300000000001 375.4500000000001 226.2300000000001 375.2000000000001 225.6900000000001 374.1900000000001C225.3200000000001 373.5 223.4800000000001 371.8200000000001 221.6000000000001 370.48C219.5600000000001 369.0100000000001 217.8000000000001 367.1 217.2200000000001 365.7000000000001C216.6800000000001 364.42 215.5600000000001 363.11 214.7300000000001 362.79C213.9000000000001 362.4700000000001 212.7900000000001 361.7100000000001 212.2800000000001 361.0800000000001C211.7600000000001 360.4600000000001 208.6200000000001 358.04 205.2800000000001 355.7000000000001C201.9500000000001 353.36 198.4100000000001 350.6800000000001 197.4100000000001 349.7400000000001C196.4100000000001 348.8000000000001 195.3400000000001 348.0300000000001 195.0200000000001 348.0300000000001S193.7400000000001 347.2900000000001 192.8900000000001 346.3800000000001C191.5800000000001 344.9900000000001 191.4000000000001 344.2700000000001 191.7500000000002 341.7800000000001C191.9700000000002 340.1500000000001 192.6100000000002 337.5100000000001 193.1700000000001 335.9000000000001C194.4900000000001 332.1000000000001 194.4800000000001 328.0400000000001 193.1200000000001 325.3300000000001C191.6900000000001 322.4700000000001 192.2300000000001 318.6800000000001 194.4700000000001 315.7400000000001C196.4800000000001 313.1100000000001 196.6300000000001 311.1800000000001 195.1800000000001 306.9000000000001C194.5700000000001 305.1 194.1300000000001 301.4500000000001 194.1200000000001 297.9900000000001C194.1000000000001 293.1100000000001 194.3400000000001 291.7100000000001 195.5800000000001 289.6100000000001C196.7800000000001 287.5700000000001 197.4000000000001 287.1300000000001 198.8200000000001 287.2900000000001C200.8000000000001 287.5200000000001 201.1200000000002 288.3400000000001 203.5300000000002 299.4100000000001C205.7100000000002 309.4400000000001 207.2400000000002 311.3300000000001 217.2900000000001 316.4900000000001C220.2300000000001 318.0000000000001 224.7500000000002 320.4500000000001 227.3200000000002 321.9300000000001C229.9000000000002 323.4100000000001 234.1100000000002 325.6200000000001 236.6900000000002 326.8400000000001C243.3600000000002 330.0000000000001 247.7400000000002 333.3600000000001 251.9100000000002 338.5100000000001C259.0200000000002 347.3000000000001 261.8900000000002 354.7300000000001 264.7600000000002 371.8100000000001C265.3100000000002 375.0900000000001 266.1900000000002 377.4600000000001 267.6200000000002 379.5400000000001C268.9100000000002 381.4100000000001 269.9900000000002 384.1600000000001 270.5100000000002 386.8500000000001C271.5300000000002 392.1500000000001 273.3600000000002 395.9300000000001 276.0900000000002 398.3600000000001C280.7900000000002 402.5400000000001 282.0900000000002 399.4500000000001 280.6800000000001 387.4900000000001C280.2200000000002 383.6300000000001 279.5800000000001 377.1600000000001 279.2400000000001 373.1100000000001L278.6300000000001 365.7500000000001L283.0800000000001 361.6600000000001L287.5300000000001 357.5700000000001L287.6400000000001 349.1500000000001C287.7000000000001 344.5200000000001 288.1100000000002 339.6200000000001 288.5600000000001 338.2600000000001L289.3800000000001 335.7900000000001L282.9500000000001 329.5100000000001C274.4100000000001 321.1800000000001 270.0700000000001 315.5800000000001 266.1900000000001 307.9000000000001C264.4200000000002 304.4100000000001 262.4500000000001 300.7900000000001 261.8100000000001 299.8700000000001C259.6300000000001 296.7600000000001 255.3500000000001 286.8600000000001 253.0500000000002 279.6100000000001L250.7600000000002 272.3900000000001L243.7900000000002 265.9000000000001C239.9600000000001 262.3300000000001 235.8300000000002 258.6500000000001 234.6200000000002 257.7300000000001C231.5700000000002 255.4100000000001 230.3600000000002 252.5800000000001 230.3600000000002 247.7400000000001C230.3600000000002 244.7600000000001 230.7900000000002 242.7800000000001 231.9500000000002 240.4800000000001C232.8200000000002 238.7400000000001 233.7600000000002 236.5700000000001 234.0400000000002 235.6500000000001C234.3200000000002 234.7300000000001 235.0200000000002 233.4300000000001 235.6100000000002 232.7600000000001C237.0100000000002 231.1700000000001 237.5300000000002 216.6400000000001 236.4400000000002 209.5400000000001C235.7600000000002 205.0600000000001 232.8100000000002 197.5200000000001 231.7400000000002 197.5200000000001C229.9500000000002 197.5200000000001 227.6800000000002 188.2500000000001 226.6700000000002 176.7800000000001C226.4900000000002 174.7600000000001 226.0500000000002 170.8400000000001 225.6900000000002 168.0800000000001C225.3300000000002 165.3200000000001 224.7300000000002 158.1000000000001 224.3400000000002 152.0300000000001C223.5700000000002 139.8100000000001 224.1500000000002 133.2600000000001 226.3900000000002 128.8800000000001C229.8000000000002 122.1900000000001 226.9100000000002 116.1900000000001 215.3600000000002 106.0400000000001L211.3900000000002 102.5500000000001L211.4600000000002 97.3600000000001C211.5000000000002 94.5000000000001 212.0100000000002 90.5100000000001 212.6000000000002 88.4900000000001C217.2100000000002 72.5100000000001 217.3300000000002 71.5700000000001 216.9800000000002 51.3600000000001C216.5200000000002 24.9600000000002 216.7200000000002 11.0900000000001 217.6100000000002 7.2100000000002C218.0300000000002 5.3700000000002 218.5200000000002 2.2100000000002 218.6900000000002 0.1900000000002C218.8600000000002 -1.8299999999998 219.3500000000002 -5.1399999999998 219.7700000000002 -7.1699999999998C220.2400000000002 -9.4299999999998 220.5500000000002 -18.1899999999998 220.5600000000002 -29.9099999999999L220.5800000000002 -48.9699999999999L218.7700000000002 -51.5999999999998C216.0600000000002 -55.5099999999999 203.6600000000002 -65.1399999999999 203.2800000000002 -63.8899999999999zM232.81 -18.78C232.63 -18.48 232.48 -11.91 232.48 -4.19C232.48 9.87 231.59 23.35 230.22 30.26C229.82 32.28 229.41 39.96 229.32 47.32C229.17 59.25 227.92 71.69 226.68 73.7C226.02 74.77 223.66 91.36 223.65 95C223.64 99.23 224.67 101 228.93 104.13C233.07 107.17 233.79 107.27 234.41 104.85C234.69 103.75 235.86 99.23 237.01 94.8200000000001C240.94 79.7000000000001 241.15 78.5500000000001 241.06 73.08C240.96 67.3000000000001 240.93 66.9500000000001 239.32 55.35C238.34 48.28 238.15 42.96 238.28 26.92C238.45 7.52 237.64 -8.81 236.24 -14.35C235.53 -17.1299999999999 233.44 -19.83 232.81 -18.78zM161.82 18.8C161.58 19.18 160.81 24.04 160.09 29.59C159.37 35.15 158.6 40.0000000000001 158.36 40.3800000000001C158.13 40.7600000000001 157.68 43.6800000000001 157.37 46.8700000000001C157.06 50.0600000000001 156.46 54.33 156.04 56.3500000000001C155.05 61.1400000000001 152.69 75.7000000000001 152.62 77.4200000000001C152.59 78.1600000000001 152.28 81.4700000000001 151.92 84.7800000000001C151.25 90.9900000000001 151.08 112.4500000000001 151.7 113.0700000000001C152.66 114.0300000000001 158.33 110.3100000000001 163.03 105.6400000000001L168.31 100.3900000000001L167.8600000000001 93.9200000000001C167.6100000000001 90.3600000000001 167.2600000000001 83.6900000000001 167.0800000000001 79.0900000000001C166.9 74.4900000000001 166.59 69.2200000000001 166.4100000000001 67.3800000000001C166.2300000000001 65.5400000000001 165.8000000000001 58.0200000000001 165.4700000000001 50.6600000000001C164.6800000000001 33.2500000000001 163.5300000000001 19.3700000000001 162.8200000000001 18.6600000000001C162.5000000000001 18.3600000000001 162.0600000000001 18.4200000000001 161.8200000000001 18.8000000000001zM74.63 285.39C95.7 272.6 92.47 271.24 103.12 267.73C116.13 263.44 121.99 260.6 126.27 250.86C82.61 214.72 57.26 192.96 49.56 180.04C18.54 128.03 43.57 78.4499999999999 112.31 92.83C98.13 63.6 34.34 64.2 13.63 97.73C-11.05 137.68 -8.46 216.03 74.63 285.39zM285.42 106.37C342.08 99.49 367.74 144.11 331.96 195.6C331.96 195.6 305.09 224.94 267.68 263.56C270.66 279.01 277.17 295.68 298.25 317.38C387.45 253.87 390.25 175.77 390.7099999999999 168.02C394.9799999999999 97.44 312.05 76.9 285.4199999999999 106.37z" /> + <glyph glyph-name="markdown" + unicode="" + horiz-adv-x="640" d=" M593.85 -4.92H46.15C20.7 -4.92 0 15.78 0 41.23V342.77C0 368.2200000000001 20.7 388.92 46.15 388.92H593.84C619.2900000000001 388.92 639.99 368.2200000000001 639.99 342.77V41.23C640 15.78 619.3 -4.92 593.85 -4.92zM153.85 87.38V207.38L215.39 130.46L276.93 207.38V87.38H338.4700000000001V296.62H276.93L215.39 219.7L153.85 296.62H92.31V87.39H153.85zM566.15 192H504.61V296.62H443.07V192H381.5299999999999L473.8399999999999 84.31L566.15 192z" /> + <glyph glyph-name="mastodon" + unicode="" + horiz-adv-x="417.8" d=" M417.8 268.9C417.8 366.1 354.1 394.6 354.1 394.6C291.6 423.3 125.6 423 63.7000000000001 394.6C63.7000000000001 394.6 0 366.1 0 268.9C0 153.2 -6.6 9.5 105.6 -20.2C146.1 -30.9 180.9 -33.2 208.9 -31.6C259.7000000000001 -28.8 288.2000000000001 -13.5 288.2000000000001 -13.5L286.5000000000001 23.4S250.2000000000001 12 209.4000000000001 13.3C169.0000000000001 14.6999999999999 126.4000000000001 17.6999999999999 119.8000000000001 67.3C119.2000000000001 71.6999999999999 118.9000000000001 76.3 118.9000000000001 81.1999999999999C204.5000000000001 60.3 277.5000000000001 72.0999999999999 297.6 74.4999999999999C353.7000000000001 81.1999999999999 402.6 115.8 408.8 147.4C418.6 197.2 417.8 268.9 417.8 268.9zM342.7000000000001 143.7H296.1V257.9C296.1 307.6 232.1 309.5 232.1 251V188.5H185.8V251C185.8 309.5 121.8 307.6 121.8 257.9V143.7H75.1C75.1 265.8 69.9 291.6 93.5 318.7C119.4 347.6 173.3 349.5 197.3 312.6L208.9 293.1L220.5 312.6C244.6 349.7 298.6 347.4 324.3 318.7C348 291.4 342.7 265.7 342.7 143.7z" /> + <glyph glyph-name="maxcdn" + unicode="" + horiz-adv-x="512" d=" M461.1 5.3H363.7000000000001L415.6 248C417.9000000000001 258.2 416.5 267.5 411.2000000000001 273.7C406.2000000000001 279.8 397.5000000000001 283.3 387.0000000000001 283.3H337.7000000000001L278.2000000000001 5.3H180.8000000000001L240.3000000000001 283.3H156.9L97.4 5.3H0L59.5 283.3L14.9 378.7H387C426.4 378.7 462.3 362.4 485.3 333.8C508.6 305.2 517.1 266.4 508.9 227.9L461.1 5.3z" /> + <glyph glyph-name="medapps" + unicode="" + horiz-adv-x="320" d=" M118.3 209.6C121.8 222.1 125.2 243.2 131.5 243.2C139.8 241.4 141.1 219.8 150.1 206.6C154.7 230.1 155.4 291.7 164.2 293.3C173.2 294 183.9 226.8 186.2 215.8C196.1 211.7 235.1 209.2 235.1 209.2C237 201.9 211.1 201.6 195.1 201.4C190.5 186.6 189.7 173.7 183.7 173.4C179 173.2 175.5 202.2 166.2 223L156.8 157.5C152.4 144.5 141.3 180 134.9 196.8C131.6 196.9 72.5 198.4 87.3 204.6L118.3 209.6zM228 0C249.2 0 249.2 32 228 32H92C70.8 32 70.8 0 92 0H228zM204 -64C225.2 -64 225.2 -32 204 -32H116C94.8 -32 94.8 -64 116 -64H204zM238.2 77.5C241.4 96.4 243.4 113.9 250.1 126.3C258 141 266.2 154.4 274.1 167.3C298.7000000000001 207.7 320 242.5 320 292.8C320 378.4 248.2 448 160 448S0 378.4 0 292.8C0 242.6 21.3 207.7 45.9 167.3C53.8 154.4 61.9 141 69.9 126.3C76.6 113.8 78.6 96.5 81.8 77.4C85.3 56.4 117.9 61.7000000000001 114.4 82.5000000000001C110.8 104.2000000000001 108.8 123.2000000000001 99.1 141.1000000000001C66.5 201.5 33 236.7 33 292.8C33 360.7 90 416 160 416S287 360.7 287 292.8C287 236.7 253.5 201.5 220.9 141.2000000000001C211.2 123.2000000000001 209.2 103.8000000000001 205.6 82.6C202.2 62 234.6 56.2 238.2 77.5z" /> + <glyph glyph-name="medium-m" + unicode="" + horiz-adv-x="512" d=" M71.5 305.7C72.1 311.6 69.8 317.5 65.4 321.5L20.3 375.9V384H160.5L268.9 146.3L364.2 384H497.9V375.9L459.3 338.9C455.9999999999999 336.4 454.3 332.2 454.9999999999999 328.1V56.1C454.3 52 455.9999999999999 47.8 459.3 45.3L496.9999999999999 8.3V0.2H307.3V8.3L346.4000000000001 46.2C350.2000000000001 50 350.2000000000001 51.2 350.2000000000001 57V276.8L241.5 0.9H226.8L100.4 276.8V91.9C99.3 84.1 101.9 76.3 107.4 70.7L158.2 9.1V0.9999999999999H14.2V8.9999999999999L65 70.7C70.4 76.3 72.9 84.2 71.5 91.9V305.7z" /> + <glyph glyph-name="medium" + unicode="" + horiz-adv-x="448" d=" M0 416V-32H448V416H0zM372.2 309.9L348.2 286.9C346.1 285.3 345.1 282.7000000000001 345.5 280.2000000000001V110.9C345.1 108.3 346.1 105.7 348.2 104.2L371.7 81.2V76.1H253.7V81L278 104.6C280.4 107 280.4 107.7000000000001 280.4 111.3V248.2L212.8 76.6H203.7L125 248.2V133.2C124.3 128.4 126 123.5 129.4 120L161 81.7V76.6H71.2V81.7L102.8 120C106.2 123.5 107.7 128.4 106.9 133.2V266.2C107.3 269.9 105.9 273.5 103.1 276L75 309.9V315H162.3L229.7 167L289 314.9H372.2V309.9z" /> + <glyph glyph-name="medrt" + unicode="" + horiz-adv-x="544" d=" M113.7 192C113.7 70.2 197.6 -30.8 307.2 -49.1C288.5 -53.6 269 -56 249 -56C111.4 -56 0 55 0 192S111.4 440 248.9 440C269 440 288.5 437.6 307.1 433.1C197.5 414.8 113.7 313.8 113.7 192M411.1 91.7C333.4 36.3 231.5 44.2 170.7 106.3C176.2 92.2 183.4 78.6 192.4 65.8C254 -22.4 374.8 -43.5 462.0999999999999 18.8C549.3999999999999 81.1 570.1999999999999 203.1 508.5999999999999 291.4000000000001C499.5999999999999 304.3000000000001 489.2999999999999 315.7000000000001 478.0999999999999 325.6C515.4999999999999 246.8000000000001 488.7999999999999 147.1 411.0999999999999 91.7000000000001M192.2999999999999 335.7000000000001C190.8999999999999 334.7000000000001 189.5999999999999 333.6 188.2999999999999 332.6C252.5999999999999 350.4000000000001 324.2 328.6 367.2 272.1C402.8999999999999 225.1000000000001 410.0999999999999 165.5000000000001 391.5999999999999 114.1C448.2999999999999 170.3 459.1999999999999 256.2000000000001 413.8999999999999 315.9000000000001C363.8999999999999 381.4000000000001 264.8 390.3000000000001 192.2999999999999 335.7000000000001M296 224C291.6 224 288 227.6 288 232V272C288 276.4 284.4 280 280 280H232C227.6 280 224 276.4 224 272V232C224 227.6 220.4 224 216 224H176C171.6 224 168 220.4 168 216V168C168 163.6 171.6 160 176 160H216C220.4 160 224 156.4 224 152V112C224 107.6 227.6 104 232 104H280C284.4 104 288 107.6 288 112V152C288 156.4 291.6 160 296 160H336C340.4 160 344 163.6 344 168V216C344 220.4 340.4 224 336 224H296z" /> + <glyph glyph-name="meetup" + unicode="" + horiz-adv-x="512" d=" M99 33.7C100.1 28 96.7 22.6 91 21.4C85.6 20.3 80.1 23.7 79 29.4C77.9 34.8 81.3 40.5 86.7 41.7C92.1 42.9 97.8 39.4 99 33.7zM242.1 -37.7C235.8 -42.3000000000001 234.1 -51.1 238.4 -57.7C243 -64.3000000000001 251.8 -66 258.4 -61.4C264.7 -56.8 266.4 -48.0000000000001 261.8 -41.4C257.6 -34.9 248.7 -33.1 242.1 -37.7zM156.1 424.6C162.4 426 166.4 432.3 165 438.6C163.9 445.2 157.6 449.2 151.3 447.7C145 446.3 141 440 142.2 433.7C143.6 427.1 149.8 423.1 156.1 424.6zM34.4 221.7C24.4 228.6 10.7 226 3.8 215.7C-3.1 205.7 -0.5 191.7 9.5 184.8C19.5 177.7 33.2 180.2 40.1 190.5C47 200.9 44.4 214.6 34.4 221.7zM306.4 392.6C317 398.9 320.1 412.6 314.1 422.9C307.8 433.5 294.4 436.9 284.1 430.6S270.4 410.6 276.7 400C282.7 389.7 296.1 386.3 306.4 392.6zM115.3 334.6C123 340 124.7 350.6 119.6 358.3S103.9 367.7 96.5 362.6C88.8 357.2 87.1 346.6 92.2 338.9C97.3 331.1 107.8 329.4 115.3 334.6zM487.6 178.6C480.2 176.9 475.3 169.5 477 161.7000000000001C478.4 154.3000000000001 485.9 149.4 493.3 151.1C500.7 152.5 505.6 160 503.9 167.7000000000001C502.4 175.1 495.0000000000001 180.0000000000001 487.6 178.6zM527.3000000000001 235.4000000000001C526.2 241.1 520.7 244.5000000000001 515.3000000000001 243.4000000000001C509.6000000000001 242.3000000000001 506.2 236.5000000000001 507.3000000000001 230.8000000000001C508.4000000000001 225.4000000000001 513.9000000000001 221.7000000000001 519.6 222.8000000000001C525 224.3000000000001 528.7 229.7000000000001 527.3000000000001 235.4000000000001zM447 309.1C438.4 303.1 436.4 291.4 442.1 282.8C447.8 274.2 459.5 272.2 468.1 277.9C476.4 283.9 478.4 295.6 472.7 304.2C467.0000000000001 312.9 455.3000000000001 315.1 447.0000000000001 309.1zM440.7 169.7C467 126.6 455.8 69.7 414.4 40.6C397 28.3 377.3 22.9 357.5 23.5C345.5 -23.6 288.1 -41.1 252.4 -9.1C251.3 -10 249.8 -10.8 248.7 -12C209.6 -39.1 156.4 -29.4 129.3 10.3C119.6 24.6 114.7 40.9 114.2 57.2C48.8 68.1 24.2 151.2 73.1 196.9C44.8 243.8 73.7 304.3 126.5 311.8C151.6 378 234.1 409.4 290.1 366C357.5 388.3 426.4000000000001 336.6 421 264.9C462.1 252.3 473.8 198 440.7 169.7zM370.7 95.4C367.6 116 329.8 100 327.6 122.5C324.5 154.5 371.3 223.6 367.6 250.5C364.2 274.5 348.2 279.6 334.2 279.9C320.8 280.2000000000001 317.3 277.9 312.8 275.3C309.9000000000001 273.6 306.2 270.4 301.1 275.6C294.8 281.6 290 287.3 281.7000000000001 288.5C269.4000000000001 290.5 264.0000000000001 286.5 255.1000000000001 278.8000000000001C251.7000000000001 275.9000000000001 243.1000000000001 265.9000000000001 235.1000000000001 269.7000000000001C231.7000000000001 271.4000000000001 219.7000000000001 277.4000000000001 211.1000000000001 281.1C194.8000000000001 288.2000000000001 171.1000000000001 276.5000000000001 162.5000000000001 261.1C149.6000000000001 238.2000000000001 124.5000000000001 148.0000000000001 120.8000000000001 136.0000000000001C112.2000000000001 109.4 131.7000000000001 87.4 157.7000000000001 88.9C168.8000000000001 89.5000000000001 176.0000000000001 93.5000000000001 183.1000000000001 106.3C187.1000000000001 113.7 224.8000000000001 214 227.7000000000001 218.9C229.7000000000001 222.3 236.6000000000001 226.9 242.3000000000001 224C248.0000000000001 220.9 249.2000000000001 214.6 248.3000000000001 208.9C247.2000000000001 199.2 220.3000000000001 138 219.4 131.2C216 108.3 246.3000000000001 104.6 258.0000000000001 127.2C261.7000000000001 134.3 303.7000000000001 219.8 307.4000000000001 225.5C311.7000000000001 231.8 314.8 233.8 319.1 233.5C322.2000000000001 233.5 327.4000000000001 232.6 326.2000000000001 222.6C324.8000000000001 213.2 291.1 150.3 287.3000000000001 134.9C282.7000000000001 114.3 293.9000000000001 93.5 312.2000000000001 84.3C323.6 78.6 374.7000000000001 68.6 370.7000000000001 95.4zM376.4 3.1C366.1 -4.3 363.5 -18.9 370.7 -29.5000000000001C377.8 -40.1000000000001 392.1 -42.6000000000001 402.7 -35.5000000000001C413.3 -28.1000000000001 415.8 -13.5000000000001 408.7 -2.9C401.3 7.7 387 10.6 376.4 3.1z" /> + <glyph glyph-name="megaport" + unicode="" + horiz-adv-x="496" d=" M248 440C111.04 440 0 328.96 0 192C0 55.03 111.04 -56 248 -56C384.9600000000001 -56 496 55.03 496 192C496 328.96 384.96 440 248 440zM333.46 172.33L393.12 112.66V25.61L367.05 6.3799999999999L341 25.61V91.07L307.56 124.51L274.12 91.07V25.61L248 6.38L221.88 25.61V91.07L188.44 124.51L155 91.08V25.62L128.93 6.39L102.87 25.62V112.67L162.34 172.14V260L221.84 319.5V395.12L247.9 414.35L273.96 395.12V319.48L333.46 259.98M247.9 271.84L281.34 238.4V172L248 138.67L214.46 172.21V238.4100000000001L247.9 271.8400000000001z" /> + <glyph glyph-name="microsoft" + unicode="" + horiz-adv-x="448" d=" M0 416H214.6V201.4H0V416zM233.4 416H448V201.4H233.4V416zM0 182.6H214.6V-32H0V182.6zM233.4 182.6H448V-32H233.4V182.6z" /> + <glyph glyph-name="mix" + unicode="" + horiz-adv-x="448" d=" M0 384V35.1C0 -21.1 88 -23 88 35.1V273.7C95.9 326.6 176 324.1 176 267.2V91.9C176 34 272 33.9 272 91.9V208C277.3 262.7 360 260.5 360 203.7V179.9C360 120 448 123.3 448 179.9V384H0z" /> + <glyph glyph-name="mixcloud" + unicode="" + horiz-adv-x="640" d=" M424.43 228.271C416.124 313.273 344.135 380 256.919 380C184.653 380 120.695 333.4840000000001 97.714 265.926C43.169 257.897 1.084 211.104 1.084 154.344C1.084 92.046 51.752 41.378 114.327 41.378H403.9409999999999C456.2699999999999 41.378 498.9099999999999 83.74 498.9099999999999 136.071C498.9099999999999 181.202 466.7919999999999 219.134 424.4299999999999 228.271zM403.9410000000001 83.741H114.327C75.287 83.741 43.446 115.305 43.446 154.345S75.287 224.949 114.327 224.949C133.154 224.949 150.875 217.474 164.165 204.183C184.128 184.22 214.298 214.41 194.345 234.363C179.67 248.761 161.673 258.728 142.292 263.712C162.227 308.012 207.082 337.638 256.92 337.638C326.416 337.638 382.899 281.155 382.899 211.936C382.899 198.368 380.6840000000001 185.079 376.53 172.342C367.587 144.825 408.663 133.403 416.677 159.052C419.446 167.358 421.661 175.941 423.046 184.524C442.4269999999999 177.048 456.5479999999999 158.221 456.5479999999999 136.0709999999999C456.5479999999999 107.2759999999999 433.0129999999999 83.7409999999999 403.9409999999999 83.7409999999999zM639.01 136.071C639.01 92.047 626.273 49.6849999999999 601.908 13.414C597.755 7.322 591.11 4 584.188 4C567.871 4 557.061 22.826 566.745 36.949C586.126 66.298 596.648 100.631 596.648 136.071S586.1270000000001 205.844 566.745 234.9160000000001C551.09 257.747 586.106 282.1560000000001 601.908 258.4500000000001C626.274 222.457 639.01 180.0940000000001 639.01 136.071zM568.13 136.071C568.13 104.506 558.9929999999999 74.05 541.273 47.746C537.12 41.655 530.475 38.61 523.553 38.61C506.352 38.61 496.531 57.5889999999999 506.11 71.5579999999999C519.123 90.6619999999999 525.768 112.8129999999999 525.768 136.0709999999999C525.768 159.0519999999999 519.123 181.4789999999999 506.11 200.5829999999999C490.349 223.5689999999999 525.118 247.6779999999999 541.273 224.1179999999999C558.9920000000001 198.0919999999999 568.13 167.6349999999999 568.13 136.0709999999999z" /> + <glyph glyph-name="mizuni" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 328.9 0 192C0 55 111 -56 248 -56S496 55 496 192C496 328.9 385 440 248 440zM168 88.1C136.6 77.5 109.2 60.8 88 39.9V312C88 334.1 105.9 352 128 352S168 334.1 168 312V88.1zM288 98C275.1 100 261.8 101.1 248.2 101.1C234.4 101.1 221 100 208 98V312C208 334.1 225.9 352 248 352S288 334.1 288 312V98zM408 40.3C386.8 61.1 359.4 77.7 328 88.3V312C328 334.1 345.9 352 368 352S408 334.1 408 312V40.3z" /> + <glyph glyph-name="modx" + unicode="" + horiz-adv-x="448" d=" M356 206.2L392.7 182.5V-32L259.7 51.8L356 206.2zM440 373H226.3L203.3 335.2L356.8 238.7L440 373zM351 230.2L55.2 416V201.5L101.2 172.5L351 230.2zM97 153.8L8 11H221.7L346.7 211.5L97 153.8z" /> + <glyph glyph-name="monero" + unicode="" + horiz-adv-x="496" d=" M352 64H460.4C417 -7.9 338.1 -56 248 -56S79 -7.9 35.6 64H144V191.8L248 87L352 192V64zM88 112V320L247.4 160.6L408 320V112H482.8C491.3 137.1 496 164 496 192C496 329 385 440 248 440S0 329 0 192C0 164 4.6 137.1 13.2 112H88z" /> + <glyph glyph-name="napster" + unicode="" + horiz-adv-x="496" d=" M298.3 74.4C284.1 60.8 267 50.3 247.9 43.9C228.9 50.3 211.7 60.8 197.6 74.4H298.3zM342.3 274C362.3 290.9 385.9000000000001 303.2 411.9 310.2V149C411.9 -70.4 83.9 -68.6 83.9 148.7V310.3C109.8 303.4 133.5 290.7000000000001 153.4 273.9C210.2 313.9 285.9 313.8 342.3 274zM133.5 332.5C197.9 392.5 297.8 392.6 362.4 332.7C355.3 329.2 348.5 325.4 341.8 321.2C283.1 351.7 212.6 351.6 153.9 321.1C147.5999999999999 325.1 140 329.3 133.5 332.5zM43.8 354.8V285.5C-14.6 249 -14.6 164.4 43.9 127.2C70.3 -117.9 425.6 -113.1 451.5 125.7L451.8 127.4C510.5 163.7 510.7 249.1 452 285.6V354.8C434.7 354.3 418 351.8 401.9 347.4C319.9 438.9 176.4 438.9 94.4 347.3C78.1 351.7 61.3 354.3 43.8 354.8zM259.2 96S295.2 96.3 320.5 97.5C330.7 98 341.6 101.5 346 104C372.3 119.1 371.4 143.2 372.2 151.4C292.7 152 272.3 155.3 259.2 96zM123.7 151.3C124.5 143.1 123.6 119 149.9 103.9C154.3 101.4 165.1 97.9 175.4 97.4C200.7 96.3 236.7 95.9 236.7 95.9C223.5 155.3 203 152.0000000000001 123.7 151.3zM292.8 27.9C289.6 33.2 285.9 35.2 285.9 35.2C261.1 27.9 233.7 28.3 210 35.2C210 35.2 207.1 33.7 203.6 28.6C200.8 24.4999999999999 199.9 18.9999999999999 199.9 18.9999999999999C229 1.3999999999999 267 1.3999999999999 296.1 18.9999999999999C296 19.1 295.8 22.9999999999999 292.8 27.8999999999999z" /> + <glyph glyph-name="neos" + unicode="" + horiz-adv-x="456.38" d=" M387.44 -64H292.33L184.12 90.54V-0.5599999999999L97.69 -64H0V418.18L40.47 448H148.52L272.26 271.87V384.55L358.69 448H456.38V-13.5L387.44 -64zM10.77 412.73V-47.99L82.78 4.89V254.05L298.27 -53.64H383.06L435.4100000000001 -15.47H357.1400000000001L40.96 435.02L10.77 412.73zM93.31 -53.88L173.35 4.9V105.94L93.55 220.3V-0.64L20.97 -53.89H93.31zM52.63 437.23L363.23 -5.34H445.6V437.23H365.85V119.67L142.91 437.23H52.63zM283.0300000000001 256.35L355.04 153.54V432.07L283.0300000000001 379.11V256.35z" /> + <glyph glyph-name="nimblr" + unicode="" + horiz-adv-x="355.52" d=" M232.6 148.71C248.17 148.71 259.75 137.25 259.75 121.75C259.75 106.2 248.13 94.79 232.6 94.79C216.9 94.79 205.45 106.36 205.45 121.75C205.45 137.26 217.03 148.71 232.6 148.71zM99.01 121.75C99.01 137.36 110.69 148.71 126.16 148.71C141.73 148.71 153.31 137.25 153.31 121.75C153.31 106.34 141.84 94.79 126.16 94.79C110.72 94.79 99.01 106.1 99.01 121.75M177.76 289.05C143 289.05 75.45 269.23 45.25 221L0 448V112.52C0 14.87 79.61 -64 177.76 -64C276 -64 355.52 14.95 355.52 112.52C355.52 209.98 276.13 289.05 177.76 289.05zM177.76 -19.07C104.49 -19.07 45.25 39.83 45.25 112.52C45.25 185.2 104.49 244.11 177.76 244.11C251.03 244.11 310.27 185.2 310.27 112.52S251.02 -19.07 177.76 -19.07z" /> + <glyph glyph-name="nintendo-switch" + unicode="" + horiz-adv-x="448" d=" M95.9 414.5C51.3 406.5 15.4 373.5 4.1 330.1C0 314.4 -0.3 305.2 0.2 183.6C0.4 72 0.5 69.4 2.4 60.7C12.7 14.2 45.7 -18.9 92.7 -29.8C98.8 -31.2 106.6 -31.5 156.8 -31.7C208.7 -32.1 214.1 -32 215.5 -30.6C216.9 -29.2 217 -11.3 217 191.6C217 342.1 216.7 412.9000000000001 216.1 414.2000000000001C215.2 415.9000000000001 213.6 416 159.2 415.9000000000001C115 415.8 101.7 415.5 95.9 414.5zM179.8 191.9V4L142 4.5C107.2 4.9 103.5 5.1 96.5 6.8C66.6 14.5 44.5 37.5 38.2 67.5C36.2 76.9 36.2 307.6 38.1 316.8C43.7 342.9 61.8 364.5 86.1 374.2000000000001C98.3 379.1 104 379.7000000000001 143.7 379.8L179.6 379.9V191.9zM103.9 323.1C98.1 322 89.2 317.5 84.4 313.4C74.7 305 69.8 293 70.6 278.9C71 271.6 71.4 269.6 74.4 263.7C78.8 254.7 85.3 248.1 94.3 243.7C100.5 240.6 102.1 240.3 110.2 240C117.5 239.7 120.1 240 125 241.7C145.1 248.5 157.3 268 153.8 288.1C149.9 311.8 127.2 327.8 103.9 323.1zM262.1 415.4C261.7000000000001 415.1 261.5 314.6 261.5 191.9C261.5 -10.4 261.6 -30.9 263 -31.5C265.5 -32.4 337.5 -32.1 346.4 -31.1C384.1 -26.8 417.4 -3.9 435.4 30.1C437.7 34.4999999999999 440.8 41.8 442.4 46.3C448.2 63.6999999999999 448.1 59.1 448.1 192.4C448.1 298.8 447.9 314.7 446.6 321.4C437.4 369.7 400.5 406.2 352.1 414.5C345.6 415.6 335.6 415.8999999999999 303.3 415.8999999999999C280.9 416 262.4 415.7 262.1 415.3999999999999zM361.2000000000001 213.3C375.7000000000001 209.5 387.5000000000001 198.5 392.4000000000001 184.4C395.5000000000001 175.7 395.4000000000001 162.9 392.3 154.9C386.6 140.2 375.5 129.9 361.2 126.1C338 120.1 313.3 134.1 306.6 157.1C304.6 164.1 304.7 176 307 183.3C313.8999999999999 206 338 219.4 361.2 213.3z" /> + <glyph glyph-name="node-js" + unicode="" + horiz-adv-x="448" d=" M224 -60C217.3 -60 210.5 -58.2 204.6 -54.8L142.9 -18.3C133.7 -13.1 138.2 -11.3 141.2 -10.3C153.5 -6 156 -5.1 169.1 2.4C170.5 3.2 172.3 2.9 173.7 2L221.1 -26.1C222.8 -27.1 225.2 -27.1 226.8 -26.1L411.5 80.5C413.2 81.5 414.3 83.5 414.3 85.5V298.7C414.3 300.8 413.2 302.7 411.4000000000001 303.8L226.8 410.3C225.1 411.3 222.8 411.3 221.1 410.3L36.6 303.7C34.8 302.7 33.7 300.7 33.7 298.6V85.5C33.7 83.5 34.8 81.5 36.6 80.6L87.2 51.4C114.7 37.7 131.5 53.8 131.5 70.1V280.5C131.5 283.5 133.9 285.8 136.9 285.8H160.3C163.2 285.8 165.7 283.5 165.7 280.5V70C165.7 33.4 145.7 12.4 111 12.4C100.3 12.4 91.9 12.4 68.5 24L20.1 51.9C8.1 58.8 0.7 71.7 0.7 85.6V298.7C0.7 312.5 8.1 325.5 20.1 332.4L204.6 439C216.3 445.6 231.8 445.6 243.4 439L428.1 332.3C440.1 325.4 447.5 312.5 447.5 298.6V85.5C447.5 71.7 440.1 58.8 428.1 51.8L243.4 -54.8C237.5 -58.2 230.8 -60 224 -60zM373.1 150.1C373.1 190 346.1 200.6 289.4000000000001 208.1C232.0000000000001 215.7 226.2000000000001 219.6 226.2000000000001 233.0000000000001C226.2000000000001 244.1 231.1000000000001 258.9000000000001 273.6 258.9000000000001C311.5 258.9000000000001 325.5 250.7000000000001 331.3 225.1C331.8 222.7 334 220.9 336.5 220.9H360.5C362 220.9 363.4 221.5 364.4 222.6S365.9 225.2 365.8 226.7C362.1 270.8 332.8 291.3 273.6 291.3C220.9 291.3 189.5 269.1 189.5 231.8C189.5 191.4 220.8 180.2 271.3 175.2C331.8 169.3 336.5 160.4 336.5 148.5C336.5 127.9 319.8999999999999 119.1 281 119.1C232.1 119.1 221.4 131.4 217.8 155.7000000000001C217.4 158.3000000000001 215.2 160.2000000000001 212.5 160.2000000000001H188.5999999999999C185.5999999999999 160.2000000000001 183.2999999999999 157.8000000000001 183.2999999999999 154.9C183.2999999999999 123.8 200.1999999999999 86.7000000000001 281.0999999999999 86.7000000000001C339.4999999999999 86.8000000000001 373.0999999999999 109.9 373.0999999999999 150.1z" /> + <glyph glyph-name="node" + unicode="" + horiz-adv-x="640" d=" M316.3 -4C314.2 -4 312.1 -3.4 310.2 -2.4L291 9C288.1 10.6 289.5 11.2 290.5 11.5C294.3 12.8 295.1 13.1 299.2 15.5C299.6 15.7 300.2 15.6 300.6 15.4L315.4 6.6C315.9 6.3 316.7 6.3 317.2 6.6L375 40C375.5 40.3 375.9 40.9 375.9 41.6V108.3C375.9 109 375.6 109.6 375 109.9L317.2 143.2000000000001C316.7 143.5000000000001 316 143.5000000000001 315.4 143.2000000000001L257.6 109.9C257 109.6 256.7 108.9 256.7 108.3V41.6C256.7 41 257.1 40.4 257.6 40.1L273.4 31C282 26.7 287.3 31.8 287.3 36.8V102.7000000000001C287.3 103.6 288 104.4 289 104.4H296.3C297.2 104.4 298 103.7000000000001 298 102.7000000000001V36.8000000000001C298 25.3000000000001 291.8 18.8000000000001 280.8999999999999 18.8000000000001C277.5999999999999 18.8000000000001 274.8999999999999 18.8000000000001 267.5999999999999 22.4000000000001L252.3999999999999 31.1000000000001C248.7 33.3000000000001 246.3 37.3000000000001 246.3 41.6000000000001V108.3000000000001C246.3 112.6000000000001 248.6 116.7000000000001 252.3999999999999 118.8000000000001L310.2 152.2000000000001C313.8999999999999 154.3000000000001 318.7 154.3000000000001 322.3 152.2000000000001L380.1 118.8000000000001C383.8 116.6000000000001 386.2 112.6000000000001 386.2 108.3000000000001V41.6000000000001C386.2 37.3000000000001 383.9 33.2000000000001 380.1 31.1000000000001L322.3 -2.2999999999999C320.6 -3.3999999999999 318.5 -3.9999999999999 316.3 -3.9999999999999zM363 61.8C363 74.3 354.6 77.6 336.8 80C318.8 82.4 317 83.6 317 87.8C317 91.3 318.5 95.9 331.8 95.9C343.7 95.9 348.1 93.3 349.9000000000001 85.3C350.1 84.5 350.7000000000001 84 351.5000000000001 84H359.0000000000001C359.5000000000001 84 359.9000000000001 84.2 360.2000000000001 84.5C360.5000000000001 84.9 360.7000000000001 85.3 360.6 85.8C359.4000000000001 99.6 350.3 106 331.8 106C315.3 106 305.5 99 305.5 87.4C305.5 74.7 315.3 71.3 331.1 69.7C350 67.8 351.5 65.1 351.5 61.4C351.5 54.9 346.3 52.2 334.1 52.2C318.8 52.2 315.4000000000001 56 314.3 63.6C314.2 64.4 313.5 64.9999999999999 312.6 64.9999999999999H305.1C304.2000000000001 64.9999999999999 303.4000000000001 64.3 303.4000000000001 63.3C303.4000000000001 53.6 308.7000000000001 41.9999999999999 334.0000000000001 41.9999999999999C352.5000000000001 41.9999999999999 363.0000000000001 49.1999999999999 363.0000000000001 61.8zM417.5 111.9C417.5 105.8 412.5 100.8 406.4 100.8S395.3 105.8 395.3 111.9C395.3 118.2000000000001 400.5 123.0000000000001 406.4 123.0000000000001C412.4 123.1000000000001 417.5 118.2000000000001 417.5 111.9zM415.7 111.9C415.7 117.1 411.5 121.2000000000001 406.3 121.2000000000001C401.2 121.2000000000001 397 117.1 397 111.9C397 106.7000000000001 401.2 102.5000000000001 406.3 102.5000000000001C411.5 102.6000000000001 415.7 106.8000000000001 415.7 111.9zM411.2 105.7000000000001H408.6C408.5 106.3000000000001 408.1 109.5000000000001 408.1 109.6C407.9 110.3 407.7 110.7000000000001 406.8 110.7000000000001H404.6V105.7000000000001H402.2V118.2000000000001H406.5C408 118.2000000000001 410.9 118.2000000000001 410.9 114.9C410.9 112.6 409.4 112.1 408.5 111.8C410.2 111.7 410.3 110.6 410.6 109C410.7000000000001 108 410.9000000000001 106.3 411.2000000000001 105.7zM408.4 114.5000000000001C408.4 116.2000000000001 407.2 116.2000000000001 406.6 116.2000000000001H404.6V112.7000000000001H406.5C408.1 112.7000000000001 408.3999999999999 113.8000000000001 408.3999999999999 114.5000000000001zM137.3 257C137.3 259.7 135.9 262.1 133.6 263.4L72.3 298.7C71.3 299.3 70.1 299.6 68.9 299.7H68.3C67.1 299.7 66 299.3 64.9 298.7L3.7 263.4C1.4 262.1 0 259.6 0 257L0.1 162C0.1 160.7 0.8 159.5 1.9 158.8C3 158.1 4.4 158.1 5.6 158.8L42 179.7C44.3 181.1 45.7 183.5 45.7 186.1V230.5C45.7 233.1 47.1 235.6 49.4 236.9L64.9 245.8C66.1 246.5 67.3 246.8 68.6 246.8C69.9 246.8 71.2 246.5 72.3 245.8L87.8 236.9C90.1 235.6 91.5 233.1 91.5 230.5V186.1C91.5 183.5 92.9 181 95.2 179.7L131.6 158.8C132.7 158.1 134.2 158.1 135.3 158.8C136.4 159.4 137.1 160.7 137.1 162L137.3 257zM472.5 360.7V184.3C472.5 181.7 471.1 179.2 468.8 177.9L407.5 142.5000000000001C405.2 141.2000000000001 402.4 141.2000000000001 400.1 142.5000000000001L338.8 177.9C336.5 179.2000000000001 335.1 181.7000000000001 335.1 184.3V255.1C335.1 257.7000000000001 336.5 260.2000000000001 338.8 261.5L400.1 296.9000000000001C402.4000000000001 298.2000000000001 405.2000000000001 298.2000000000001 407.5 296.9000000000001L422.8 288.1C424.5 287.1 426.7 288.4000000000001 426.7 290.3V384.3C426.7 387.1 429.7 388.9000000000001 432.2 387.5L468.7 367.1C471 365.9000000000001 472.5 363.4000000000001 472.5 360.7000000000001zM426.5 231.8C426.5 232.5 426.1 233.1 425.6 233.4L404.6 245.6C404 245.9 403.3 245.9 402.7000000000001 245.6L381.7000000000001 233.4C381.1 233.1 380.8000000000001 232.5 380.8000000000001 231.8V207.5C380.8000000000001 206.8 381.2000000000001 206.2 381.7000000000001 205.9L402.7000000000001 193.8C403.3000000000001 193.5 404.0000000000001 193.5 404.5000000000001 193.8L425.5000000000001 205.9C426.1000000000001 206.2 426.4000000000001 206.8 426.4000000000001 207.5V231.8zM636.3 232.5C638.5999999999999 233.8 640 236.3 640 238.9V256C640 258.6 638.6 261.1 636.3 262.4L575.4 297.8C573.1 299.1 570.3 299.1 568 297.8L506.7 262.4C504.4 261.1 503 258.6 503 256V185.2C503 182.5 504.4 180.1 506.7 178.8L567.6 144.1C569.8000000000001 142.8 572.6 142.8 574.9 144.1L611.6999999999999 164.6C614.1999999999999 166 614.1999999999999 169.6 611.6999999999999 171L550 206.4C548.8 207.1 548.1 208.3 548.1 209.6V231.8C548.1 233.1 548.8000000000001 234.3 550 235L569.2 246.1C570.3000000000001 246.8 571.8000000000001 246.8 572.9000000000001 246.1L592.1000000000001 235C593.2000000000002 234.3 594.0000000000001 233.1 594.0000000000001 231.8V214.4C594.0000000000001 211.6 597.1000000000001 209.8 599.6000000000001 211.2L636.3000000000002 232.5zM559 229C558.6 228.7 558.3 228.3 558.3 227.8V214.2C558.3 213.7 558.5999999999999 213.2 559 213L570.8 206.2C571.1999999999999 205.9 571.8 205.9 572.1999999999999 206.2L584 213C584.4 213.3 584.7 213.7 584.7 214.2V227.8C584.7 228.3 584.4000000000001 228.8 584 229L572.2 235.8C571.8000000000001 236.1 571.2 236.1 570.8000000000001 235.8L559 229zM304.8 185.5V255.9C304.8 258.5 303.2 261 300.9000000000001 262.3L239.8000000000001 297.5C237.7000000000001 298.7 234.8000000000001 298.9 232.4000000000001 297.5L171.3000000000001 262.3C169 261 167.4 258.6 167.4 255.9V185.5C167.4 182.7 169.3000000000001 180.3 171.4 179.1L232.6 143.9C235.0000000000001 142.5000000000001 237.8 142.6 240.0000000000001 143.9L301 179.1C302.8 180.1 304.1 181.8 304.6 183.8C304.7000000000001 184.3 304.8 184.9 304.8 185.5zM230.5 310.4L229.7 309.9H230.8L230.5 310.4zM306.7 180.2000000000001L306.3 180.9V180.0000000000001L306.7 180.2000000000001z" /> + <glyph glyph-name="npm" + unicode="" + horiz-adv-x="576" d=" M288 160H256V224H288V160zM576 288V96H288V64H160V96H0V288H576zM160 256H32V128H96V224H128V128H160V256zM320 256H192V96H256V128H320V256zM544 256H352V128H416V224H448V128H480V224H512V128H544V256z" /> + <glyph glyph-name="ns8" + unicode="" + horiz-adv-x="640" d=" M187.1 288.1L152.9 174.4L98.4 288.1H49L0 128H44.9L76 234.5L126.6 128H183.5L232 288.1H187.1zM639.6 289C636.7 307 615.7 317.1 597.5 320.3C552.9 328.1 495.6 304 509 261.5V261.4C465.2 252.7 434.7 234.6 414.8 213.2C411.8 223 401.2 229.8 380.8 229.8H293.2000000000001C283.9000000000001 229.8 280.3000000000001 232.1 281.7000000000001 237.2C283.3000000000001 242.7 283.6 244 285.4000000000001 249.4C287.5000000000001 255.8 293.2000000000001 256.5 298.7000000000001 256.5H432.2000000000001L441.9000000000001 288C302.2000000000001 288 297.4000000000001 288.5 281.8000000000001 286.8C269.5000000000001 285.5 258.3000000000001 282 251.2000000000001 271.8C244.4000000000001 261.9 236.8000000000001 236.2 233.6000000000001 224.7C228.2000000000001 205.3 233.0000000000001 196.1 266.4000000000001 196.1H353.7000000000001C361.5000000000001 196.1 362.5000000000001 193.4 361.4000000000001 189.5C360.3000000000001 185.1 358.6000000000001 179.5 356.9000000000001 174.9C355.3000000000001 170.7 352.2000000000001 167.5 343.1000000000001 167.5H216.3L204.7 128C344.6 128 350 128.6 365.6 130.3C372.2000000000001 131 378.6 132.4 384.1 135.2C384.3 131.5 384.6 127.9 385.3 124.4C390.7 93.9 412.7 72.1 442.1 64.9C490.7 53 550.8000000000001 81.7 577.2 132.9C595.9000000000001 169.1 591.3000000000001 209.1 573.8000000000001 238.4H573.9000000000001C603.5000000000001 244.3 644.2 260.4 639.6000000000001 289zM530.7 184.3C524.8000000000001 154.8 494.1 136.5 469.1 140.4C438.2000000000001 145.2000000000001 430.6 179.9 455 205.2000000000001C471.2 222.0000000000001 500.2 229.2000000000001 523.5 232.1000000000001C530.2 218.0000000000001 533.8 200.1000000000001 530.7 184.3000000000001zM552.5 267.4C548.3 273.4 542.7 285.9 550 293.7000000000001C556.7 300.9 570.9 303.8 581.8 301.4C597.0999999999999 298 601.5 285.5 586.6999999999999 277C575.9999999999999 270.9 563.0999999999999 268.9 552.4999999999999 267.4z" /> + <glyph glyph-name="nutritionix" + unicode="" + horiz-adv-x="400" d=" M88 439.9S221.4 448.1 209 335.5C209 335.5 228.1 410.4 312 376.1C312 376.1 294.3 302.1 224 320.1C224 320.1 238.6 374.7 290.1 376.7C290.1 376.7 250.2 387 208 327.9C208 327.9 188.2 422.4 114.4 427.6C114.4 427.6 189.6 408.2 192 320.1C192 320 85.6 313.1 88 439.9zM400 124.3C400 75.8 390.3 28.9999999999999 368 -8.0000000000001C325.8 -38.9 263 -56.0000000000001 200 -56.0000000000001C137.1 -56.0000000000001 74.2 -38.9 32 -8.0000000000001C9.7 29 0 75.8 0 124.3C0 172.7 17.7 219 40 256C82.2 286.9 137.1 304.6 200 304.6C263 304.6 317.8 287 360 256C382.3 219 400 172.7 400 124.3zM120 20C120 35.5 107.5 48 92 48S64 35.5 64 20S76.5 -8 92 -8S120 4.5 120 20zM120 86.2C120 101.7 107.5 114.2 92 114.2S64 101.7 64 86.2S76.5 58.2 92 58.2S120 70.7 120 86.2zM120 152.4C120 167.9 107.5 180.4 92 180.4S64 167.9 64 152.4S76.5 124.4 92 124.4S120 136.9 120 152.4zM192 20C192 35.5 179.5 48 164 48S136 35.5 136 20S148.5 -8 164 -8S192 4.5 192 20zM192 86.2C192 101.7 179.5 114.2 164 114.2S136 101.7 136 86.2S148.5 58.2 164 58.2S192 70.7 192 86.2zM192 152.4C192 167.9 179.5 180.4 164 180.4S136 167.9 136 152.4S148.5 124.4 164 124.4S192 136.9 192 152.4zM264 20C264 35.5 251.5 48 236 48S208 35.5 208 20S220.5 -8 236 -8S264 4.5 264 20zM264 86.2C264 101.7 251.5 114.2 236 114.2S208 101.7 208 86.2S220.5 58.2 236 58.2S264 70.7 264 86.2zM264 152.4C264 167.9 251.5 180.4 236 180.4S208 167.9 208 152.4S220.5 124.4 236 124.4S264 136.9 264 152.4zM336 20C336 35.5 323.5 48 308 48S280 35.5 280 20S292.5 -8 308 -8S336 4.5 336 20zM336 86.2C336 101.7 323.5 114.2 308 114.2S280 101.7 280 86.2S292.5 58.2 308 58.2S336 70.7 336 86.2zM336 152.4C336 167.9 323.5 180.4 308 180.4S280 167.9 280 152.4S292.5 124.4 308 124.4S336 136.9 336 152.4zM360 192C355.2 214.3 352.6 228.9 344 248C305.2 267.9 253.5 280 200 280S94.8 267.9 56 248C47.2 228.5 44.8 214.1 40 192C82.2 199.9 138.7 206.8 200 206.8S317.8 199.9 360 192z" /> + <glyph glyph-name="odnoklassniki-square" + unicode="" + horiz-adv-x="448" d=" M184.2 270.9C184.2 293 202.1 310.9 224 310.9S263.8 293 263.8 270.9C263.8 248.9 245.9 231.1 224 231.1S184.2 249.0000000000001 184.2 270.9000000000001zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM142.9 270.9C142.9 226.3 179.3 190 224 190S305.1 226.2 305.1 270.9C305.1 315.7 268.7 352 224 352S142.9 315.8 142.9 270.9zM317.4 180.2C312.8 189.3 300.1 197 283.3 183.8C283.3 183.8 260.6 165.8 224 165.8S164.6999999999999 183.8 164.6999999999999 183.8C147.8999999999999 197 135.1999999999999 189.3 130.5999999999999 180.2C122.6999999999999 164.1 131.6999999999999 156.5 152 143.2C169.3 132.1 193.1999999999999 128 208.5999999999999 126.4L195.6999999999999 113.5C177.5 95.5 160.1999999999999 78 148 65.8C130.4 48.2 158.6999999999999 20 176.4 37.2L224.1 85.1C242.3 66.9 259.8 49.4 271.8 37.2C289.4 20 317.8 47.9 300.4 65.8L252.7 113.5L239.7 126.4C255.2 128 278.8 132.3 295.9 143.2C316.3 156.5 325.2 164.2 317.4 180.2z" /> + <glyph glyph-name="odnoklassniki" + unicode="" + horiz-adv-x="320" d=" M275.1 114C247.7 96.6 210 89.7 185.1 87.1L206 66.5L282.3 -9.8C310.2 -38.4 264.8 -83.1 236.6 -55.5C217.5 -36.1 189.5 -8.1 160.3 21.1L84 -55.4C55.8 -82.9 10.4 -37.8 38.6 -9.7C58 9.7 85.7 37.7 114.9 66.6L135.5 87.2000000000001C110.9 89.8000000000001 72.6 96.3000000000001 44.9 114.1C12.3 135.1 -2 147.4 10.6 173.1C18 187.7000000000001 38.3 200 65.2 178.8C65.2 178.8 101.5 149.9 160.1 149.9S255.0000000000001 178.8 255.0000000000001 178.8C281.9000000000001 199.9 302.1 187.7 309.6 173.1C322 147.4 307.7000000000001 135.1 275.1 114zM30.3 318.3C30.3 390 88.6 448 160 448S289.7 390 289.7 318.3C289.7 246.9 231.4 188.9 160 188.9S30.3 246.9 30.3 318.3zM96.3 318.3C96.3 283.2000000000001 124.9 254.6 160 254.6S223.7 283.2000000000001 223.7 318.3C223.7 353.7000000000001 195.1 382.3 160 382.3S96.3 353.7000000000001 96.3 318.3z" /> + <glyph glyph-name="old-republic" + unicode="" + horiz-adv-x="496" d=" M235.76 437.77C243.26 438.08 250.76 438.05 258.26 437.86C261.87 437.7200000000001 265.46 437.46 269.05 437.13C273.9700000000001 436.86 278.8400000000001 436.1 283.7200000000001 435.51C286.6500000000001 435.08 289.55 434.53 292.4700000000001 434.05C300.37 432.72 308.1400000000001 430.77 315.86 428.65C328.1 425.18 340.05 420.73 351.62 415.44C378.18 403.2 402.56 386.23 423.25 365.56C443.28 345.4700000000001 459.97 322.01 472.14 296.37C473.27 293.78 474.58 291.27 475.61 288.63C478.42 282.2 481 275.66 483.19 269C487.33 256.67 490.53 244.01 492.61 231.17C493.18 228.0300000000001 493.65 224.87 494.01 221.7C494.56 217.87 494.95 214.01 495.19 210.14C496.02 201.8 496.03 193.41 495.96 185.04C495.89 180.07 495.7 175.1 495.21 170.15C494.97 166.7700000000001 494.7 163.3900000000001 494.23 160.03C493.84 157.31 493.6 154.5700000000001 493.1199999999999 151.86C492.22 146.71 491.42 141.55 490.2499999999999 136.45C486.1499999999999 117.95 479.9499999999999 99.9 471.74 82.82C455.97 49.99 432.91 20.65 404.62 -2.3A246.503 246.503 0 0 0 347.7099999999999 -37.16C341.5 -39.84 335.25 -42.41 328.8399999999999 -44.57C325.33 -45.7300000000001 321.83 -46.95 318.2699999999999 -47.96C311.6499999999999 -49.84 304.9799999999999 -51.6 298.2299999999999 -52.96C293.5699999999999 -53.8700000000001 288.89 -54.6900000000001 284.2 -55.4400000000001C278.95 -56.1000000000001 273.7 -56.88 268.4099999999999 -57.1800000000001C261.7199999999999 -57.8400000000001 254.9999999999999 -58.02 248.2899999999999 -57.9900000000001C241.4699999999999 -58.02 234.6399999999999 -57.8700000000001 227.8399999999999 -57.2C224.5499999999999 -56.97 221.2699999999999 -56.7 218.0099999999999 -56.2500000000001C215.2899999999999 -55.8600000000001 212.5499999999999 -55.6200000000001 209.8399999999999 -55.14C205.7199999999999 -54.42 201.5899999999999 -53.77 197.4899999999999 -52.92C193.2399999999999 -51.98 188.9999999999999 -51.03 184.7999999999999 -49.9C176.1699999999999 -47.73 167.7199999999999 -44.89 159.3899999999999 -41.77C148.8999999999999 -37.65 138.5999999999999 -33.02 128.75 -27.52C126.61 -26.3700000000001 124.47 -25.23 122.4 -23.95C111.18 -17.3700000000001 100.54 -9.85 90.48 -1.6100000000001C55.8 26.8 29.07 64.8199999999999 14.13 107.0899999999999C11.04 115.8299999999999 8.42 124.7399999999999 6.33 133.7699999999999C4.85 139.93 3.81 146.19 2.75 152.43C2.35 154.78 2.14 157.16 1.8 159.5199999999999C1.2 163.4799999999999 1.05 167.4799999999999 0.63 171.4599999999999C-0.17 180.93 -0.08 190.4499999999999 0.12 199.9499999999999C0.26 203.4599999999999 0.46 206.9599999999999 0.82 210.4599999999999C1.13 213.6299999999999 1.28 216.8299999999999 1.74 219.9799999999999C2.15 222.7899999999999 2.39 225.63 2.9 228.42C3.6 232.36 4.2 236.32 5.02 240.2399999999999C8.45 256.76 13.49 272.9699999999999 20.28 288.42C21.43 291.3399999999999 22.87 294.14 24.14 297.01C32.19 313.7199999999999 42.04 329.57 53.63 344.07C73.63 369.45 98.73 390.75 126.9 406.54C134.4 410.69 142.06 414.5899999999999 149.97 417.9099999999999C165.7899999999999 424.7899999999999 182.38 429.86 199.28 433.2899999999999C202.7899999999999 433.9599999999999 206.3199999999999 434.5299999999999 209.84 435.14C212.46 435.61 215.12 435.8399999999999 217.75 436.2199999999999C221.28 436.75 224.8499999999999 436.8999999999999 228.4 437.26C230.86 437.5 233.31 437.62 235.76 437.7699999999999M244.4 413.36C235.17 413.26 225.97 412.37 216.83 411.13C209.53 410.05 202.3 408.5299999999999 195.12 406.83C181.21 403.33 167.64 398.49 154.66 392.41C144.2 387.42 134.07 381.7099999999999 124.48 375.19C120.3 372.2699999999999 116.08 369.39 112.14 366.16C107.06 362.19 102.16 357.99 97.46 353.57C94.95 351.33 92.65 348.87 90.24 346.51C62.02 317.7199999999999 41.8 281.12 32.74 241.82C30.7 233.38 29.2 224.7999999999999 28.3 216.1699999999999C27.2 207.2799999999999 26.86 198.3199999999999 26.89 189.37C27 182.23 27.27 175.09 28.11 168C28.73 160.88 29.98 153.8399999999999 31.31 146.8199999999999C32.3799999999999 142.17 33.3399999999999 137.5 34.64 132.9099999999999C40.93 109.5299999999999 51.14 87.2099999999999 64.71 67.1599999999999C73.35 54.1799999999999 83.49 42.2299999999999 94.69 31.3899999999999C110.97 15.5699999999999 129.74 2.3499999999999 150.03 -7.83C157.31 -11.35 164.69 -14.7 172.3 -17.46C177.34 -19.22 182.36 -21.03 187.52 -22.4400000000001C198.78 -25.6700000000001 210.29 -28.0400000000001 221.91 -29.5000000000001C224.82 -29.7900000000001 227.72 -30.1100000000001 230.63 -30.4C244.45 -31.48 258.37 -31.4 272.17 -29.97C276.62 -29.37 281.09 -28.98 285.52 -28.1900000000001C289.15 -27.52 292.8 -26.9400000000001 296.39 -26.09C300.52 -25.11 304.67 -24.18 308.75 -23.02C335.25 -15.6800000000001 360.33 -3.3100000000001 382.33 13.18C398.11 24.9999999999999 412.29 38.9399999999999 424.45 54.4599999999999C427.71 58.4799999999999 430.62 62.7699999999999 433.58 67.0099999999999C436.97 72.0699999999999 440.16 77.2599999999999 443.18 82.55C445.58 86.99 447.92 91.46 450.13 95.9999999999999C455.82 108.05 460.41 120.62 463.88 133.49C466.47 143.5 468.63 153.65 469.78 163.94C471.55 177.41 471.72 191.04 471.07 204.59C470.78 208.4799999999999 470.4 212.36 470.07 216.25C467.84 235.33 463.28 254.16 456.25 272.05C450.3 287.18 442.7200000000001 301.68 433.64 315.18C420.95 333.98 405.4 350.86 387.67 365.01C362.62 385.01 333.2 399.56 302.02 407.0899999999999C294.24 409.0199999999999 286.33 410.43 278.39 411.54C274.48 412.13 270.54 412.36 266.62 412.78C259.23 413.35 251.81 413.5 244.4 413.36zM139.26 364.4700000000001C152.56 373.36 167.34 379.85 182.56 384.65C179.39 382.88 176.12 381.27 173.03 379.36C161.82 372.68 151.51 364.46 142.65 354.87C135.85 347.44 129.89 339.14 125.64 329.98C122.35 323.12 120 315.79 118.78 308.27C117.85 303.42 117.48 298.4600000000001 117.61 293.52C117.74 279.86 122.05 266.44 128.9 254.7C134.82 244.48 142.53 235.37 151.26 227.4400000000001C156.11 223.08 161.5 219.35 166.21 214.84C168.47 212.65 170.7 210.4200000000001 172.64 207.93C175.26 204.62 177.53 200.94 178.63 196.8300000000001C179.53 193.81 179.29 190.6300000000001 179.32 187.5200000000001C179.34 183.42 179.28 179.3200000000001 179.35 175.22C179.49 171.68 179.33 168.1300000000001 179.46 164.59C179.54 162.21 179.48 159.8300000000001 179.51 157.4500000000001C179.67 151.6800000000001 179.57 145.9200000000001 179.66 140.15C179.7700000000001 137.24 179.68 134.3300000000001 179.79 131.41C179.82 129.78 179.92 128.1300000000001 179.76 126.5C178.85 126.38 177.94 126.32 177.03 126.34C166.04 126.34 155.15 128.97 145.0800000000001 133.27C139.0800000000001 135.97 133.2700000000001 139.16 127.9900000000001 143.1C122.2400000000001 147.29 116.9 152.06 112.2000000000001 157.41C105.6700000000001 164.65 100.22 172.8 95.58 181.36C94.5100000000001 183.3899999999999 93.3400000000001 185.38 92.4 187.48C91.24 190.12 89.78 192.62 88.73 195.3C84.68 204.98 82.16 215.24 80.65 225.61C80.16 230.05 79.56 234.49 79.45 238.96C78.75 254.69 80.29 270.51 84.12 285.78C86.24 293.93 88.89 301.9599999999999 92.43 309.61C98.75 323.81 107.77 336.79 118.73 347.8C125.01 354 131.8600000000001 359.64 139.2600000000001 364.47zM314.63 384.5900000000001C317.37 383.85 320.04 382.85 322.72 381.91C329.08 379.58 335.4 377.07 341.43 373.95C354.54 367.51 366.74 359.14 377.25 348.98C387.45 339.03 395.99 327.38 402.39 314.64C403.6699999999999 311.89 405.0299999999999 309.18 406.2 306.38C412.51 291.28 416.2 275.12 417.43 258.81C417.84 254.27 417.87 249.72 417.88 245.17C417.95 233.5300000000001 416.39 221.92 413.58 210.64C411.6099999999999 203.37 409.2299999999999 196.15 405.7199999999999 189.46C402.5399999999999 182.8200000000001 399.0399999999999 176.3 394.88 170.22C387.94 159.75 379.2799999999999 150.35 369.06 143C358.58 135.36 346.42 129.98 333.66 127.62C330.15 126.93 326.58 126.54 323 126.41C321.1499999999999 126.35 319.2799999999999 126.25 317.44 126.5100000000001C317.16 128.66 317.44 130.8200000000001 317.43 132.97C317.4 136.7000000000001 317.57 140.42 317.53 144.1400000000001C317.72 151.16 317.55 158.1900000000001 317.74 165.21C317.7699999999999 167.59 317.71 169.97 317.7699999999999 172.35C317.94 177.42 317.7299999999999 182.49 317.9099999999999 187.56C318.01 190.55 317.6699999999999 193.6 318.4199999999999 196.52C319.08 199.02 320.1999999999999 201.38 321.5099999999999 203.6C325.9699999999999 210.91 332.5699999999999 216.56 339.1899999999999 221.86C344.5699999999999 226.04 349.6599999999999 230.63 354.2099999999999 235.7C361.8899999999999 244.07 368.3799999999999 253.58 372.9899999999999 263.9700000000001C375.4899999999999 269.9000000000001 377.5099999999999 276.0700000000001 378.5399999999999 282.4300000000001C379.3999999999999 286.8000000000001 379.5999999999999 291.2600000000001 379.5499999999999 295.7000000000001C379.5299999999999 303.5500000000001 378.1499999999999 311.35 375.9099999999999 318.8700000000001C374.1599999999999 324.6000000000001 371.64 330.0500000000001 368.82 335.3200000000001C364.95 342.2500000000001 360.17 348.6300000000001 354.86 354.5200000000001C344.92 365.3700000000001 333.11 374.4600000000001 320.26 381.6200000000001C318.4099999999999 382.6400000000001 316.42 383.4400000000001 314.63 384.5900000000001zM213.83 326.14C214.81 327.32 215.82 328.4700000000001 216.95 329.52C216.34 328.59 215.68 327.71 215 326.84C211.9 322.96 209.46 318.53 207.97 313.78C207.1 310.51 206.29 307.18 206.24 303.78C206.17 301.26 206.16 298.7100000000001 206.56 296.2100000000001C207.69 288.5800000000001 210.89 281.36 215.33 275.0900000000001C217.33 272.39 219.58 269.82 222.25 267.76C223.87 266.49 225.78 265.67 227.59 264.71C230.7 263.03 233.91 261.48 236.66 259.23C239.33 257.14 241.21 253.9 241.06 250.44C241.05 176.77 241.06 103.1 241.05 29.42C241.05 28.0699999999999 240.97 26.72 241.09 25.3799999999999C241.22 23.8999999999999 241.91 22.55 242.56 21.23C243.42 19.5699999999999 244.34 17.89 245.74 16.61C246.59 15.84 247.71 15.21 248.89 15.3699999999999C250.39 15.5699999999999 251.55 16.72 252.34 17.9399999999999C253.3 19.4499999999999 254.02 21.1 254.62 22.79C255.38 24.92 255.06 27.21 255.16 29.42C255.3 33.4499999999999 255.14 37.48 255.3 41.5099999999999C255.33 47.3999999999999 255.33 53.2799999999999 255.36 59.17C255.5 62.79 255.39 66.41 255.47 70.03C255.62 74.06 255.45 78.09 255.61 82.12C255.64 88.11 255.64 94.1 255.68 100.0899999999999C255.82 103.7099999999999 255.7 107.3299999999999 255.79 110.9499999999999C255.93 114.88 255.77 118.81 255.93 122.7299999999999C255.96 128.7199999999999 255.96 134.7099999999999 255.99 140.6999999999999C256.15 144.6399999999999 255.98 148.5799999999999 256.18 152.5199999999999C256.4700000000001 151.0799999999999 256.31 149.5999999999999 256.4000000000001 148.1399999999999C256.5900000000001 144.5299999999999 256.8200000000001 140.9099999999999 257.1600000000001 137.3C257.48 133.86 257.6 130.41 258.0200000000001 126.98C258.3900000000001 123.88 258.5300000000001 120.7599999999999 258.9700000000001 117.67C259.54 113.58 259.8400000000001 109.46 260.5100000000001 105.3799999999999C261.9700000000001 96.3399999999999 263.3400000000001 87.2699999999999 265.6 78.3899999999999C266.73 73.5699999999999 268 68.7799999999999 269.6 64.0899999999999C272.1400000000001 56.1899999999999 275.3200000000001 48.4199999999999 279.9100000000001 41.4699999999999C281.6400000000001 38.8299999999999 283.7800000000001 36.4899999999999 286.0100000000001 34.2599999999999C286.2800000000001 34.0099999999999 286.5600000000001 33.7499999999999 286.8900000000001 33.55C287.4900000000001 33.3 288.2000000000001 33.62 288.5900000000001 34.12C289.3 34.9999999999999 289.7600000000001 36.0599999999999 290.29 37.05C294.3400000000001 44.85 298.4700000000001 52.61 302.63 60.36C303.33 61.67 304.07 62.98 305.19 63.97C306.94 65.54 309.03 66.66 311.17 67.6C314.05 68.82 317.07 69.79 320.2 70.02C326.78 70.64 333.31 69.27 339.76 68.17C343.45 67.59 347.16 66.9999999999999 350.89 66.7599999999999C354.63 66.6599999999999 358.37 66.7099999999999 362.1 67.0399999999999C370.65 67.9599999999999 379.09 69.9999999999999 387.04 73.2899999999999C392.34 75.5299999999999 397.5 78.1199999999999 402.35 81.2199999999999C413.81 88.4299999999999 423.81 97.7899999999999 432.39 108.2299999999999C433.56 109.6499999999999 434.64 111.1299999999999 435.85 112.5099999999999C434.65 109.2699999999999 433.18 106.1399999999999 431.69 103.0299999999999C430.44 100.1299999999999 428.85 97.4199999999999 427.42 94.6099999999998C422.26 84.9799999999999 416.4 75.6999999999998 409.67 67.0899999999999C405.64 61.8799999999999 401.14 57.0399999999999 396.34 52.5199999999999C389.7 46.4699999999999 382.27 41.1499999999999 373.91 37.7599999999999C365.7 34.3899999999999 356.6 33.1299999999999 347.82 34.4699999999999C344.26 35.0499999999998 340.81 36.1599999999999 337.41 37.3499999999999C334.62 38.3199999999999 332.02 39.7299999999999 329.38 41.0399999999999C325.95 42.7499999999998 322.74 44.8499999999999 319.67 47.1199999999998C322.38 44.0599999999998 325.36 41.2599999999998 328.37 38.5099999999998C332.64 34.7499999999998 337.11 31.1999999999998 342 28.2799999999998C345.98 25.8299999999998 350.29 23.8799999999998 354.84 22.7699999999998C356.3 22.3999999999998 357.8 22.3099999999998 359.29 22.1699999999998C358.04 21.0699999999998 356.66 20.1299999999998 355.3 19.1899999999998C345.69 12.6499999999998 335.29 7.3299999999998 324.61 2.7599999999998C303.75 -5.9400000000002 281.44 -11.2100000000003 258.87 -12.5800000000002C254.21 -12.8200000000002 249.55 -12.9400000000002 244.89 -12.9400000000002C239.91 -12.8300000000002 234.92 -12.8100000000002 229.97 -12.2900000000002C218.77 -11.5300000000003 207.68 -9.5600000000002 196.8 -6.8600000000002C186.45 -4.1500000000003 176.25 -0.7400000000002 166.5 3.6899999999998C157.7899999999999 7.5499999999998 149.38 12.1099999999998 141.5099999999999 17.4799999999998C139.6799999999999 18.7899999999998 137.7699999999999 20.0099999999998 136.1399999999999 21.5599999999998C142.7399999999999 22.7499999999998 149.1699999999999 24.9499999999998 155.13 28.0399999999998C160.87 30.8999999999998 166.12 34.6999999999998 170.7599999999999 39.1099999999998C173 41.2999999999998 175.0499999999999 43.6999999999998 176.9499999999999 46.1999999999998C173.5199999999999 44.0699999999998 170.0199999999999 42.0499999999998 166.3299999999999 40.4199999999998C161.9199999999999 38.2599999999998 157.2599999999999 36.6499999999998 152.5199999999999 35.3999999999998C146.7899999999999 33.8799999999998 140.7799999999999 33.6699999999998 134.9099999999999 34.2599999999998C126.7799999999999 35.2099999999998 119.0499999999999 38.5299999999998 112.3999999999999 43.2399999999998C108.0799999999999 46.1799999999998 104.1799999999999 49.6699999999998 100.4399999999999 53.2999999999998C90.5099999999999 63.4599999999999 82.2399999999999 75.1099999999998 74.7799999999999 87.1599999999999C70.8399999999999 93.4299999999998 67.2499999999999 99.9099999999999 63.6599999999999 106.3799999999999C62.6099999999999 108.4199999999999 61.5099999999999 110.4299999999999 60.4799999999999 112.4799999999999C63.3299999999999 109.5599999999999 66.0499999999999 106.5099999999999 68.9099999999999 103.5999999999999C77.8999999999999 94.6299999999999 87.4699999999999 86.1599999999999 98.0699999999999 79.1199999999999C105.6199999999999 74.2199999999999 113.7399999999999 69.8899999999999 122.6299999999999 68.0899999999999C125.7399999999999 67.3599999999999 128.9499999999999 67.6199999999999 132.0999999999999 67.2799999999999C134.8699999999999 66.9999999999999 137.6599999999999 67.0799999999999 140.4399999999999 66.9799999999999C145.4899999999999 66.9199999999999 150.5499999999999 66.9399999999999 155.5999999999999 67.1399999999999C159.2499999999999 67.3 162.8699999999999 67.8 166.4899999999999 68.2299999999999C168.5599999999999 68.4799999999999 170.5999999999999 68.9399999999999 172.6299999999999 69.4299999999999C176.5099999999999 70.3799999999999 180.7399999999999 70.3899999999999 184.4599999999999 68.8199999999999C189.2199999999999 66.9699999999999 192.8999999999999 63.1799999999999 195.8399999999999 59.1099999999999C197.9999999999999 56.0899999999999 199.8999999999999 52.8899999999999 201.4999999999999 49.5299999999999C202.6599999999999 47.0999999999999 203.9599999999999 44.7399999999999 205.0499999999999 42.2699999999999C206.0499999999999 40.0299999999999 207.1999999999999 37.8499999999999 208.4699999999999 35.7499999999999C209.1399999999999 34.73 209.8699999999999 33.6 211.0899999999999 33.1999999999999C212.1499999999999 33.9499999999999 212.7999999999999 35.11 213.3699999999999 36.2299999999999C215.4699999999999 40.3899999999999 216.7899999999999 44.8799999999999 218.2599999999999 49.2799999999999C220.2799999999999 55.8699999999999 222.0399999999999 62.5499999999999 223.4499999999999 69.2999999999999C225.6599999999999 78.5499999999999 226.6999999999999 88.0199999999999 227.9899999999999 97.4299999999999C228.5499999999999 101.4099999999999 228.8199999999999 105.4199999999999 229.2999999999999 109.3999999999999C230.1699999999999 120.0399999999999 231.1999999999999 130.6699999999999 231.5399999999999 141.3399999999999C231.6199999999999 143.1999999999999 231.7799999999999 145.0499999999999 231.7899999999999 146.9099999999999C231.7999999999999 151.2599999999999 232.0399999999999 155.5999999999999 232.0099999999999 159.9399999999999C231.9999999999999 162.3199999999999 231.9999999999999 164.6999999999999 232.0099999999999 167.0699999999999C232.0599999999999 172.1399999999999 231.8099999999999 177.2099999999999 231.7899999999999 182.2799999999999C231.5899999999999 188.8899999999999 231.0799999999999 195.4799999999999 230.4999999999999 202.0599999999999C229.7699999999999 207.9399999999999 228.9499999999999 213.8399999999999 227.3799999999999 219.5699999999999C225.3299999999999 227.3199999999999 221.7899999999999 234.5999999999999 217.5799999999999 241.3899999999999C214.4199999999999 246.4599999999999 210.7899999999999 251.2699999999999 206.4899999999999 255.4199999999999C202.6099999999999 259.2799999999999 197.9099999999999 262.4999999999999 192.5499999999999 263.8699999999999C191.0499999999999 264.2799999999999 189.4899999999999 264.3199999999998 187.9599999999999 264.5099999999998C188.0299999999999 267.4999999999999 188.6599999999999 270.4399999999999 189.2199999999999 273.3599999999998C190.8099999999999 281.0699999999998 193.0199999999999 288.6599999999999 195.9799999999999 295.9599999999998C197.4999999999999 299.9899999999998 199.3899999999999 303.8599999999998 201.3699999999998 307.6799999999999C204.8199999999998 314.2399999999998 208.9899999999999 320.4699999999998 213.8299999999999 326.1399999999998zM245.1 324.44C245.45 324.5 245.81 324.56 246.17 324.63C246.36 322.84 246.26 321.05 246.27 319.26V281.13C246.26 279.39 246.4 277.64 246.12 275.91C245.76 275.94 245.41 275.9600000000001 245.06 275.9600000000001C244.11 279.7100000000001 243.34 283.51 242.44 287.27C242.06 288.8 241.86 290.36 241.37 291.86C239.67 292.1 237.94 292.03 236.22 292.06C231.16 292.07 226.09 292.06 221.03 292.07C219.37 292.08 217.71 291.98 216.05 292.1C216.02 292.49 215.79 293.01 216.21 293.28C217.49 293.93 218.93 294.16 220.27 294.63C223.7 295.77 227.15 296.79 230.58 297.94C231.97 298.42 233.48 298.66 234.74 299.48C234.78 300.04 234.76 300.61 234.69 301.16C233.46 301.7100000000001 232.16 302.03 230.88 302.44C227.75 303.4700000000001 224.59 304.4 221.47 305.4600000000001C219.68 306.0800000000001 217.8 306.4600000000001 216.06 307.25C216.03 307.62 215.99 307.98 215.95 308.3400000000001C221.04 308.53 226.15 308.28 231.25 308.4600000000001C234.61 308.5900000000001 237.98 308.38 241.34 308.53C241.46 308.92 241.6 309.3 241.71 309.69C242.79 314.63 244.04 319.52 245.1 324.44zM251.07 324.64C251.43 324.5900000000001 251.79 324.52 252.15 324.44C253.13 320.5900000000001 253.88 316.68 254.86 312.83C255.2200000000001 311.41 255.42 309.95 255.89 308.56C258.42 308.38 260.9600000000001 308.57 263.5 308.51C268.6600000000001 308.39 273.83 308.39 278.99 308.44C279.75 308.45 280.51 308.41 281.27 308.36C281.23 308 281.2 307.64 281.17 307.28C279.35 306.45 277.39 306.03 275.5 305.39C271.7699999999999 304.16 268.0199999999999 303 264.2799999999999 301.82C263.7099999999999 301.65 263.1599999999999 301.4 262.6099999999999 301.18C262.4599999999999 300.63 262.4299999999999 300.06 262.4899999999999 299.49C263.3599999999999 299.01 264.3099999999999 298.68 265.2599999999999 298.4C270.1399999999999 296.88 274.9899999999999 295.26 279.8899999999999 293.8C280.2699999999999 293.67 280.6699999999999 293.53 281.0199999999999 293.31C281.4199999999999 293.04 281.2499999999999 292.52 281.1699999999999 292.13C279.5099999999998 292 277.8599999999999 292.1 276.1999999999998 292.09C271.0299999999998 292.08 265.8699999999999 292.1 260.6999999999998 292.08C259.0899999999998 292.05 257.4799999999998 292.1 255.8799999999998 291.87C255.3599999999998 290.2 255.1599999999999 288.45 254.7099999999999 286.76C253.7699999999999 283.19 253.1899999999999 279.52 252.1699999999999 275.98C251.8099999999999 275.97 251.4599999999999 275.9599999999999 251.1099999999999 275.92C250.8199999999999 277.65 250.9599999999999 279.4 250.9599999999999 281.14V319.27C250.9799999999999 321.05 250.8799999999998 322.85 251.0699999999999 324.64zM65.05 279.67C66.17 281.82 67.13 284.07 68.42 286.13C66.6 278.57 65.51 270.86 64.8 263.13C64 255.42 63.95 247.64 64.26 239.9C65.31 219.96 69.8 200.07 78.49 182.02C81.48 176.03 84.84 170.19 88.99 164.91C95.11 157.44 101.52 150.15 108.83 143.82C113.63 139.72 118.82 136.04 124.37 133.02C127.64 131.37 130.88 129.63 134.31 128.34C139.32 126.31 144.5 124.73 149.73 123.4C153.56 122.44 157.51 121.99 161.25 120.69C166.25 119.12 170.72 116.08 174.28 112.26C179.21 107.03 182.37 100.39 184.48 93.59C185.47 90.69 186.07 87.68 186.65 84.67C186.8 83.92 186.87 83.15 186.81 82.3799999999999C180.31 79.6 173.55 77.3199999999999 166.55 76.1999999999999C162.44 75.42 158.26 75.2099999999999 154.09 75.12C143.84 74.8799999999999 133.62 76.8799999999999 123.97 80.24C120.23 81.66 116.48 83.09 112.94 84.96C104.88 88.8 97.3 93.66 90.48 99.42C87.56 101.97 84.65 104.55 82.08 107.4499999999999C72.92 117.2799999999999 65.78 128.86 60.29 141.0999999999999C57.9 146.6499999999999 55.68 152.2799999999999 53.92 158.0599999999999C52.75 161.9999999999999 51.56 165.9499999999999 50.66 169.9699999999999C49.91 172.9099999999999 49.44 175.9199999999999 48.79 178.8899999999999C48.33 181.0299999999999 48.1 183.2099999999999 47.76 185.37C46.91 190.8 46.48 196.3 46.43 201.8C46.54 207.98 46.68 214.17 47.5 220.3C47.9 223.16 48.17 226.04 48.65 228.9C49.63 234.6 50.79 240.27 52.36 245.83C55.45 257.48 59.84 268.78 65.05 279.67zM428.7800000000001 286.11C429.8800000000001 284.45 430.6900000000001 282.63 431.56 280.85C433.6600000000001 276.4 435.8 271.95 437.58 267.36C445.19 248.6 449.88 228.57 450.62 208.31C450.64 206.55 450.69 204.79 450.73 203.02C450.86 193.45 449.4600000000001 183.93 447.55 174.57C446.82 170.98 446.01 167.4 444.9700000000001 163.88C440.93 149.16 434.9700000000001 134.88 426.56 122.1C418.35 109.53 407.55 98.55 394.7200000000001 90.69C388.99 87.1 382.93 84.05 376.67 81.5C370.8900000000001 79.31 364.9600000000001 77.47 358.87 76.39C352.4700000000001 75.34 345.96 74.87 339.4700000000001 75.16C331.55 75.64 323.6900000000001 77.23 316.2600000000001 80.01C314.3200000000001 80.81 312.3200000000001 81.47 310.4200000000001 82.34C310.2100000000001 83.85 310.6700000000001 85.33 310.9500000000001 86.8C312.1100000000001 92.54 313.98 98.16 316.6500000000001 103.3799999999999C319.0200000000001 107.8899999999999 322.17 112.0299999999999 326.11 115.2799999999999C328.54 117.3299999999999 331.35 118.8899999999999 334.2700000000001 120.1099999999999C337.85 121.6099999999999 341.7400000000001 122.0799999999999 345.5100000000001 122.9399999999999C352.7400000000001 124.6499999999999 359.8800000000001 126.8699999999999 366.6600000000001 129.9399999999999C377.0100000000001 134.5899999999999 386.37 141.3199999999999 394.31 149.3999999999999C395.9 151.0099999999999 397.54 152.5799999999999 399.05 154.2699999999999C402.42 158.0299999999999 405.76 161.8399999999999 408.9000000000001 165.7999999999999C416.3800000000001 175.8699999999998 421.7200000000001 187.3899999999998 425.61 199.2799999999998C427.19 204.5799999999999 428.82 209.8799999999998 429.82 215.3299999999999C430.45 218.1999999999999 430.86 221.1099999999999 431.34 224.0099999999999C432.21 230.0999999999999 432.93 236.2299999999999 433.02 242.3899999999999C433.14 249.0399999999999 433.16 255.7099999999999 432.49 262.3299999999998C431.76 270.3199999999998 430.62 278.2899999999999 428.7800000000001 286.1099999999999z" /> + <glyph glyph-name="opencart" + unicode="" + horiz-adv-x="640" d=" M423.3 7.3C423.3 -18 403 -38.3 377.7 -38.3S331.9 -18 331.9 7.3S352.5 53.1 377.7 53.1C403.1 53.1 423.3 32.6 423.3 7.3zM169.4 53.1C144.1 53.1 123.8 32.5 123.8 7.3S144.1 -38.3 169.4 -38.3S215.2 -18 215.2 7.3S194.7 53.1 169.4 53.1zM461.1 323.1C158.9 323.1 81.9 335.9 0 422.3C34.4 370.6 53.3 273.4 373.1 278.1C706.4000000000001 283.1 503.1 192 443.9000000000001 89.2000000000001C630.6 255.9000000000001 763.3 323.1 461.1 323.1z" /> + <glyph glyph-name="openid" + unicode="" + horiz-adv-x="448" d=" M271.5 16L203.5 -16C88.5 -5.7 0 55.5 0 129.8C0 201.3 82.5 260.8 191.7 274.1V231.1C120.2 218.6 67.7 178.1 67.7 129.8C67.7 78.8 126.2 36.5 203.4 26.8V366.8L271.4 400V16zM448 157L316.7 185.5L353.5 206.2C334 217.7 310 226.2 283.5 231V274C329.7 268.5 371.2 254.5 403.8 234.7L438.8 254.5L448 157z" /> + <glyph glyph-name="opera" + unicode="" + horiz-adv-x="496" d=" M313.9 415.3C143.7 415.3 61.3 191.5 166.4 60.2C202.9 14.8 255 -15.4 313.9 -15.4C350.2 -15.4 384.2 -4.3 413.3 15C369.5 -24.2 311.4 -48 248 -48C244.1 -48 240 -48 236.1 -47.7C104.6 -41.6 0 66.9 0 200C0 337 111 448 248 448H248.8C311.9000000000001 447.7 369.5 423.9 413.2000000000001 384.9C384.2000000000001 404.3 350.1 415.3 313.9000000000001 415.3zM415.7 17.6C374.8 -7.1 325 -6 283.7 23.4C339.9 43.9 381.4 115 381.4 200C381.4 284.7000000000001 340.2 355.8000000000001 284 376.6C325.8 405.8 375.2 406.9000000000001 416.9 381.6C522.8 282.9000000000001 522.4 115.9 415.7 17.6z" /> + <glyph glyph-name="optin-monster" + unicode="" + horiz-adv-x="576" d=" M550.671 -2.303C550.671 -13.923 534.998 -21.76 518.513 -17.166C506.353 -13.923 487.167 0.399 482.302 10.128C476.628 21.748 486.356 42.826 501.218 40.934C516.892 39.313 550.671 15.533 550.671 -2.3030000000001zM372.86 372.777C369.077 444.928 272.064 452.495 246.932 396.2870000000001C291.5200000000001 420.608 337.189 411.9600000000001 372.86 372.777zM74.795 40.934C59.122 39.313 25.343 15.533 25.343 -2.303C25.343 -13.923 41.016 -21.76 57.5 -17.166C69.66 -13.923 88.576 0.399 93.44 10.128C99.386 21.748 89.658 42.826 74.795 40.934zM572.56 26.612C573.641 23.099 574.452 19.586 574.452 15.803C575.262 -15.813 530.135 -48.242 500.949 -49.322C483.654 -50.132 466.359 -40.945 458.253 -25.812C344.7560000000001 -29.865 231.2590000000001 -30.676 118.033 -25.812C109.656 -40.945 92.361 -49.862 75.066 -49.322C46.151 -48.241 1.023 -15.813 1.563 15.803C1.833 19.586 2.374 23.099 3.455 26.612C-2.111 36.075 -1.39 41.894 8.86 38.232C12.103 43.366 15.886 47.6900000000001 19.94 52.014C17.37 62.931 21.21 66.108 31.019 61.202C35.613 64.445 41.017 67.687 46.963 70.39C46.963 86.147 58.802 81.521 64.258 76.065C76.725 77.845 84.387 75.356 91.011 70.39V90.116C78.024 90.116 50.37 101.491 45.071 126.328C40.097 147.053 47.678 164.403 70.203 173.888C71.013 179.833 78.31 187.94 85.065 189.832C92.632 191.724 97.496 185.238 99.117 179.563C106.542 179.563 116.874 178.098 120.195 171.456C125.6 171.997 131.274 172.808 136.679 173.348C134.2470000000001 175.24 131.545 176.861 128.572 177.942C123.438 186.859 114.79 189.021 103.981 189.562C103.981 190.372 103.981 191.183 104.251 192.264C84.524 192.805 60.203 197.939 49.394 210.099C28.073 233.737 33.459 293.6760000000001 61.554 313.5970000000001C69.931 319.2720000000001 83.172 314.408 84.253 303.8690000000001C86.678 283.271 84.652 277.0360000000001 110.465 277.927C118.572 285.7630000000001 127.22 292.519 136.948 297.9240000000001C122.086 299.2760000000001 108.034 296.303 93.17 294.1410000000001C105.922 306.6210000000001 117.123 319.5830000000001 149.918 336.5680000000001C173.429 348.4580000000001 199.911 357.3760000000001 226.123 359.807C207.477 367.6440000000001 186.13 371.6980000000001 166.402 376.2910000000001C242.877 392.5050000000001 340.971 398.4500000000001 410.691 338.7290000000001C428.796 323.326 443.118 302.5180000000001 453.3869999999999 278.7370000000001C493.1859999999999 273.884 489.857 284.3180000000001 492.03 303.8690000000001C493.111 314.1380000000001 506.352 319.2720000000001 514.7289999999999 313.3270000000001C529.5909999999999 302.7880000000001 536.8879999999999 282.5210000000001 539.319 265.2260000000001C541.481 247.3910000000001 539.5889999999999 223.8810000000001 526.889 210.0990000000001C516.08 197.9390000000001 492.569 192.5340000000001 473.113 191.994V189.2910000000001C462.033 189.0210000000001 452.845 186.859 447.44 177.6710000000001C444.468 176.59 441.766 174.9680000000001 439.063 173.0770000000001C444.738 172.537 450.413 171.7260000000001 455.818 171.186C457.687 176.8050000000001 468.353 179.5630000000001 476.895 179.5630000000001C478.516 184.968 483.651 191.453 490.947 189.8320000000001S504.999 179.8340000000001 505.81 173.888C516.619 169.564 527.969 161.728 530.941 148.216C532.8330000000001 140.109 532.562 133.083 531.211 126.328C525.485 101.066 497.85 90.116 485.272 90.116C485.272 83.36 485.272 76.8750000000001 485.002 70.39C493.012 76.3960000000001 501.369 77.5480000000001 511.754 76.0650000000001C517.673 81.984 529.3190000000001 85.4750000000001 529.3190000000001 70.39C534.994 67.6870000000001 540.6680000000001 64.4450000000001 545.263 61.2020000000001C555.363 66.253 558.932 61.741 556.072 52.0140000000001C560.125 47.6910000000001 564.179 43.0970000000001 567.151 38.2320000000001C577.2869999999999 41.8520000000001 578.1719999999999 36.1540000000001 572.56 26.6120000000001zM498.7869999999999 280.6280000000001C516.0819999999999 273.872 524.9989999999999 258.4690000000001 529.0519999999999 244.9580000000001C530.1329999999999 255.497 526.3499999999999 284.4110000000001 515.2699999999999 296.0310000000001C507.9739999999999 303.327 501.2179999999998 301.165 501.2179999999998 295.221C501.2189999999998 289.005 499.8679999999998 283.601 498.7869999999999 280.6280000000001zM480.1409999999999 268.198C493.1119999999999 252.525 497.1649999999999 226.583 492.8409999999999 205.235C503.6499999999999 207.397 513.3779999999999 211.45 519.0529999999999 217.395C520.9449999999999 219.557 522.8359999999999 222.259 523.9169999999999 224.961C522.8359999999999 246.3090000000001 513.6479999999999 267.658 494.1919999999999 273.8730000000001C490.9499999999999 270.63 485.0049999999999 269.009 480.1409999999999 268.198zM458.2519999999999 267.387C465.8189999999999 246.85 470.6829999999999 224.691 472.5739999999999 202.802C476.0869999999999 202.802 480.1409999999999 203.072 484.1939999999999 203.613C490.1389999999999 227.9340000000001 483.9239999999999 255.2270000000001 470.1419999999999 267.117C466.3589999999999 267.117 462.0349999999999 267.117 458.2519999999999 267.3870000000001zM77.768 280.628C76.687 283.601 75.336 289.005 75.336 295.221C75.336 301.166 68.31 303.328 61.284 296.031C49.934 284.411 46.421 255.497 47.502 244.958C51.555 258.47 60.473 273.873 77.768 280.628zM83.443 205.234C79.119 226.582 83.173 252.525 96.144 268.197C91.279 269.008 85.335 270.629 82.092 273.872C62.635 267.657 53.717 246.309 52.366 224.96C53.717 222.258 55.338 219.556 57.23 217.394C62.905 211.179 72.633 207.396 83.443 205.234zM124.788 266.307C119.654 265.226 114.79 263.334 109.926 261.442L97.766 256.308V256.578C90.47 242.526 87.767 222.259 92.361 203.613C96.955 203.072 101.008 202.802 105.061 202.802C107.493 224.961 114.249 246.58 124.788 266.307zM212.883 289.546C212.883 247.391 247.202 213.341 289.088 213.341S365.293 247.391 365.293 289.546C365.293 331.432 330.974 365.481 289.088 365.481S212.883 331.432 212.883 289.546zM365.293 192.263C375.262 141.655 368.592 127.571 381.777 134.164C397.721 142.271 404.476 173.347 404.747 191.183C391.776 191.993 378.534 191.993 365.293 192.263zM293.682 192.804V193.074C293.4120000000001 187.94 293.952 154.971 298.0060000000001 151.999C309.0850000000001 146.594 337.4590000000001 147.405 349.079 150.918C354.484 152.5389999999999 351.511 187.94 350.7 192.804C331.784 193.074 312.598 193.074 293.682 192.804zM279.629 192.804V193.074C260.173 192.804 240.987 192.804 221.8 192.263C219.908 183.076 217.206 143.352 223.692 140.649C236.663 134.974 265.308 135.515 278.278 139.028C282.8730000000001 141.46 280.711 184.427 279.629 192.804zM193.967 135.244C199.372 132.812 202.614 132.812 203.695 139.568C205.587 148.215 206.127 176.32 208.56 191.723C196.4 191.453 183.969 190.912 171.808 190.102C166.403 170.375 172.078 144.973 193.967 135.244zM128.301 146.324C172.079 99.304 220.99 60.661 284.2240000000001 39.8539999999999C351.7820000000001 59.0399999999999 399.8830000000001 99.8449999999999 447.4430000000001 146.8649999999999C436.348 151.1799999999999 439.7280000000001 157.2279999999999 440.1470000000001 158.4849999999999C431.2290000000001 159.2949999999999 422.3120000000001 160.3769999999999 413.6640000000001 161.1869999999999C404.206 128.2189999999999 377.7240000000001 108.2219999999999 366.9140000000001 129.5709999999999C364.2120000000001 134.7049999999999 363.4010000000001 141.1909999999999 362.3200000000001 146.3249999999999C358.5370000000001 137.9479999999999 349.0780000000001 138.218 337.7290000000001 137.4069999999999C324.4880000000001 136.3259999999999 306.112 136.0559999999999 293.6810000000001 140.3789999999999C290.7090000000001 127.4079999999999 282.6020000000001 127.4079999999999 266.9290000000001 126.0569999999999C252.8770000000001 124.7049999999999 218.287 122.0029999999999 212.072 136.8659999999999C210.9910000000001 108.2219999999999 176.942 126.868 166.9430000000001 143.892C163.7000000000001 149.567 161.5380000000001 155.242 159.917 161.4569999999999C152.0800000000001 160.6469999999999 144.244 159.836 136.406 158.755C138.8490000000001 155.0919999999999 137.9550000000001 149.7029999999999 128.3010000000001 146.324zM115.6 -5.545C109.926 17.694 96.954 44.177 82.092 48.501C59.663 55.257 13.183 24.991 15.885 -6.085C28.586 -25.542 55.879 -41.755 75.066 -42.566C92.901 -43.376 111.006 -31.486 114.79 -13.652C115.329 -11.22 115.6 -8.518 115.6 -5.5450000000001zM122.896 0.399C156.405 19.856 192.075 36.07 228.827 47.419C190.184 67.956 160.729 95.25 131.544 124.435C129.382 123.083 126.41 122.003 123.708 120.922C122.071 116.012 132.426 115.5920000000001 129.113 108.491C126.951 104.4370000000001 120.465 100.924 113.98 99.3030000000001C111.819 96.6010000000001 108.846 94.4390000000001 106.144 92.818H105.874C105.604 79.307 105.604 65.794 106.144 52.283C115.083 36.319 121.57 18.969 122.896 0.399zM443.6600000000001 -12.301C406.908 9.047 369.6160000000001 29.044 328.0010000000001 40.664C314.2190000000001 34.449 300.168 29.315 285.846 25.261C283.6840000000001 24.45 283.6840000000001 24.45 281.522 25.261C269.632 29.044 258.283 33.3679999999999 246.663 38.502C206.398 26.8819999999999 169.377 9.317 134.247 -12.301H133.977V-12.571C134.247 -12.571 134.247 -12.571 134.247 -12.301C237.474 -16.355 340.702 -15.814 443.66 -12.301zM470.683 51.744L470.4130000000001 51.474C470.9540000000001 65.256 471.224 79.037 471.224 92.8190000000001C468.251 94.4400000000001 465.549 96.8730000000001 463.1170000000001 99.5750000000001C456.6320000000001 100.9260000000001 450.1460000000001 104.7090000000001 447.9840000000001 108.4930000000001C446.0920000000001 112.5460000000001 449.3350000000001 116.059 453.9290000000001 118.7620000000001C453.6590000000001 119.3030000000001 453.3880000000001 120.3830000000001 453.3880000000001 121.1940000000001C450.4160000000001 122.0050000000001 447.9830000000001 123.0860000000001 445.8210000000001 124.4370000000001C414.2050000000001 94.9820000000001 380.4250000000001 67.6880000000001 342.3230000000001 47.6910000000001C381.2370000000001 36.0710000000001 418.2580000000001 19.5870000000001 454.1980000000001 0.1300000000001C455.2480000000001 14.8220000000001 461.4290000000001 35.8790000000001 470.6830000000001 51.7440000000001zM493.9230000000001 48.5C479.33 44.177 466.0890000000001 17.694 460.414 -5.546C460.414 -29.372 481.6920000000001 -43.443 500.948 -42.568C520.134 -41.757 547.428 -25.544 560.129 -6.087C563.102 24.99 516.6220000000001 55.257 493.923 48.5zM290.709 313.867C290.754 313.867 290.798 313.8640000000001 290.843 313.8640000000001C290.889 313.8640000000001 290.933 313.867 290.9790000000001 313.867H290.7090000000001zM290.709 217.124C319.354 217.124 342.593 238.742 342.593 265.495C342.593 301.587 302.086 323.574 270.442 309.813C279.9000000000001 306.841 286.926 298.193 286.926 288.195C286.926 264.938 253.635 256.24 240.446 276.8450000000001C233.149 242.778 259.814 217.124 290.709 217.124zM68.039 -26.083C68.579 -32.569 80.199 -38.784 89.657 -35.5410000000001C96.413 -32.8380000000001 104.25 -25.0020000000001 106.952 -19.3270000000001C109.925 -12.301 105.871 0.67 97.224 -0.9520000000001C88.307 -2.573 67.499 -17.7060000000001 68.039 -26.0830000000001zM478.789 -0.952C470.412 0.669 466.358 -12.301 469.331 -19.327C471.763 -25.002 479.6 -32.838 486.626 -35.541C495.813 -38.784 507.704 -32.569 507.974 -26.083C508.785 -17.706 487.707 -2.573 478.789 -0.952z" /> + <glyph glyph-name="osi" + unicode="" + horiz-adv-x="495.8" d=" M0 188.8C2.3 324.6 97.4 421.2 213.8 436.9C352.6 455.5 469.4 361.1 491.8 235.8C513.1 117 447.8 5.8 340.2000000000001 -38.2C330.9000000000001 -42 325.8000000000001 -39.9 322.2000000000001 -30.5C304.4000000000001 15.8 286.6 62.2 268.8000000000001 108.5C265.7000000000001 116.6 267.8000000000001 121.7 275.8000000000001 125.3C300.0000000000001 136.3 315.1000000000001 154.7 319.1000000000001 181.1C325.5000000000001 223.5 294.6000000000001 259.8 254.6000000000001 263.3C215.6000000000001 266.7000000000001 182.8000000000001 239.6 177.1000000000001 203.6C171.9000000000001 170.6 188.2000000000001 139.9 219.0000000000001 125.9C228.6000000000001 121.5000000000001 230.5000000000001 117.3 226.8000000000001 107.5000000000001C208.9000000000001 60.9 191.0000000000001 14.3000000000001 173.1000000000001 -32.4C170.5000000000001 -39.3 164.8000000000001 -41.7 157.6000000000001 -38.9C105.0000000000001 -18.6 56.2000000000001 22.1 26.8000000000001 80.1C1.9 129.3 1.6 167.8 0 188.8zM20.9 190.7C21.3 184.1 21.5 176.4 22.2 168.6C28.5 96.6999999999999 71.8 25.1 153.2 -14.5C156.4 -16 157.6 -15.3 158.8 -12.2C173.7 26.9 188.7 66 203.8 105.1C205.1 108.4 204.4 109.9 201.4 111.8C169.8 131.7 154.1 160.3 155.8 197.8C156.8 219.4 165.1 238.3 179.6 254.1C209.6 286.8 256.6 293.9000000000001 295.1 271.7000000000001C327 253.3 344.6 217.9 340.3 181.3C336.7 150.7 321 127.4 294.6 111.5C291.9000000000001 109.9 291.1 108.6 292.3 105.5C307.5 66.3 322.5 27.1 337.5 -12.2C338.7 -15.3 339.9 -16 343.1 -14.5C378.6 2.1 408.3 25.8 431.2000000000001 57.5C466.0000000000001 105.7 480.3000000000001 159.4 473.5000000000001 218.5C459.8 336 354.1 433.3 218 416.5C111.9 403.5 22.7 314 20.9 190.7z" /> + <glyph glyph-name="page4" + unicode="" + horiz-adv-x="496" d=" M248 -56C111 -56 0 55 0 192S111 440 248 440C268.9 440 289.3 437.4 308.7 432.5L42.3 56H248V-56zM248 87.6V301.2L98.6 87.6H248zM344 56V-36.7C389.7 -17.5 428.5 15 455.4 56H344zM401.4 194.2L380.2 185.8L401.4 177.5V194.2zM381.1 139.7C374.4 139.7 373.1 133.4 373.1 126.8V119.1H389.3V129.1C389.3 135 387 139.7000000000001 381.1 139.7000000000001zM496 192C496 154.7 487.8 119.3 473 87.6H344V420.7C433.3 383.2 496 294.9 496 192zM360.4 304.4H428.6V352H414.7V319.4H400.8V349H386.9000000000001V319.4H374.2000000000001V352H360.3000000000001V304.4zM428.5 119.1H402V130.1C402 145.5 396.4 155.3 381.1 155.3C365.7000000000001 155.3 360.4000000000001 144.7 360.4000000000001 129.4V104.1H428.6V119.1zM428.5 222.1L360.3 192.4V180L428.5 150.5V167.1L414.1 172.8V199.3L428.5 205.2V222.1zM423.7 290.6H388.1V264H402V276.2H413C421.6 260.4 414.3 240.9 394.4 240.9C371.9 240.9 366.1 266.2 378.9 278.6L367.3 289.2C351.1 271.7 355.1 225.3 394.4 225.3C428.4 225.3 439.1 261.2 423.7 290.6z" /> + <glyph glyph-name="pagelines" + unicode="" + horiz-adv-x="384" d=" M384 135.3C328.9 -1.4 196.9 81.3 196.9 81.3C156.4 -0.5 89.5 -53.1 12.3 -53.4C-3.8 -53.4 -4.3 -29 12.3 -29C76.7 -28.7 132.8 13.7 169.5 81.1C128.4 65.2000000000001 50.9 53.2 7.9 163.3C116.9 208.2 167 152.1 186.2 117.8C196.1 142.2 203.2 168.7 207.8 197.5C207.8 197.5 68.1 175.6 58.3 295.6C177.4 343.5 210.9 218.9 210.9 218.9C212.5 235.6 214.2 271.5 214.2 272.3C214.2 272.3 107.9 346 176.1 437.5C300.7000000000001 394.5 237.5000000000001 275.1 237.5000000000001 275.1C238.0000000000001 273.5 238.0000000000001 251.3 237.5000000000001 241.7C237.5000000000001 241.7 282.7000000000001 330.7 373.9000000000001 299.2C369.7000000000001 165.1999999999999 232.0000000000001 192.8 232.0000000000001 192.8C227.6 165.4 220.8000000000001 139.4 212 115.3C212 115.3 295 207.1 384 135.3z" /> + <glyph glyph-name="palfed" + unicode="" + horiz-adv-x="576" d=" M384.9 254.1C384.9 301.5 329.7 298.3 289.5 283.9C288.2 244.5 287 203.2 286.5 164.1C287.2 161.3 289.1 157.9 301.6 157.9C338.4000000000001 157.9 385 200.7000000000001 384.9000000000001 254.1zM190.4 181.9C190.6 181.9 196.9 184.6 201.6 184.6C228.2 184.6 222.3 140.5 187.2 140.5C165.7 140.5 150.1 158.6 150.1 183.5C150.1 225.5 193 279.0999999999999 250.8 310C251.8 322.4 253.8 332 261.3 338.2C272.5 347.2 287.9 341.7 290.8 327.1C363 349.3 426 326.1 426 255.1C426 177.1999999999999 346.7 102.5 285.9 116.9C285.8 77.5 286.8 42.5 288.6 16.9V16.7C288.8 13.3 289.2 4.2 283.3 -2.4C273.7 -13.0000000000001 249.9 -12.4 246.9 19.9C242.8 64.3 247.1 226 248.3 262.4C226.8 247.4 189.8 212.1 189.8 186.5C190 184 190.2 182.5 190.4 181.9zM8 266.9S7.9 229.5 46.4 229.5H76.4L98.8 12.3S98.8 -32 143.5 -32H432.4S477.1 -31.6 477.1 12.3L499.4999999999999 229.5H529.5S567.9 228.3 567.9 266.9C567.9 266.9 568 304.3 529.5 304.3H499.4C492.1 329.9 469.2 378.6 380 378.6H352V397.7S349.3 416.1 330.9 416.1H245.1S224 416.1 224 397.7V378.6H195.9S90.9 374.4 75.4 304.3H46.4S8 305.5 8 266.9z" /> + <glyph glyph-name="patreon" + unicode="" + horiz-adv-x="512" d=" M512 253.2C512 151.9 429.6 69.4 328.2 69.4C226.5 69.4 143.8 151.8 143.8 253.2C143.8 354.8 226.5 437.5 328.2 437.5C429.6 437.5 512 354.8 512 253.2zM0 -53.5H90V437.5H0V-53.5z" /> + <glyph glyph-name="paypal" + unicode="" + horiz-adv-x="384" d=" M111.4 152.1C107.9 132.9 94 43.4 89.9 18.1C89.6 16.3 88.9 15.6 86.9 15.6H12.3C4.7 15.6 -0.8 22.2 0.2 29.5L58.8 401.4C60.3 411 68.9 418.3 78.8 418.3C231.1 418.3 243.9 422 282.8 406.9C342.9000000000001 383.6 348.4 327.4 326.8 266.6C305.3 204 254.3 177.1 186.7 176.3C143.3 175.6 117.2 183.3 111.4 152.1zM357.1 296C355.3 297.3 354.6 297.8 354.1 294.7C352.1 283.3 349 272.2 345.3 261.1C305.4000000000001 147.3 194.8 157.2 140.8 157.2C134.7 157.2 130.7 153.9 129.9 147.8C107.3 7.4 102.8 -21.9 102.8 -21.9C101.8 -29 106.3 -34.8 113.4 -34.8H176.9C185.5 -34.8 192.6 -28.4999999999999 194.3 -19.9C195 -14.5 193.2 -26 208.7 71.4C213.3 93.4 223 91.1 238.0000000000001 91.1C309 91.1 364.4000000000001 119.9 380.9000000000001 203.4C387.4000000000001 238.2000000000001 385.5000000000001 274.8000000000001 357.1 296z" /> + <glyph glyph-name="periscope" + unicode="" + horiz-adv-x="448" d=" M370 384.4C331.4 425.4 280.5 448 226.6 448C111.9 448 18.5 351.8 18.5 233.6C18.5 158.5 76.3 73.8 101.2 40.9C137.8 -7.5 192.6 -64 226.6 -64C268.2 -64 339.5 30.2 347.5 41C372.1 74.1 429.5 159.3 429.5 233.6C429.5 290.1 408.4 343.7 370 384.4zM226.6 -45.9C184.1 -45.9 36.6 121.4 36.6 233.5C36.6 340.9 120.5 429.8 226.6 429.8C327.4 429.8 411.3 340.8 411.3 233.5C411.4 121.4 263.9 -45.9 226.6 -45.9zM338 241.2C338 182.1 286.9 131.5 227.2 131.5C126.6 131.5 76.5 239.7 134.3 313.3V312.9C134.3 288.4 154.4 268.5 179.1 268.5C203.8 268.5 223.9 288.4 223.9 312.9C223.9 331.1 212.8 346.7 197 353.6C273.6 372.8 338 314.3 338 241.2z" /> + <glyph glyph-name="phabricator" + unicode="" + horiz-adv-x="496" d=" M323 185.9L322.9 198.9S344.6 218.7 344 220.1L334.5 240.1C333.9 241.5 305 240.6 305 240.6L295.6 249.9S295.8 278.4 294.4000000000001 279L274.3 288.2C272.9000000000001 288.8 253.6 267.2 253.6 267.2L240.5000000000001 267.4S220 288.8 218.6 288.2L198.6 279.9C197.2 279.4 198.8 251 198.8 251L189.7 241.9S160.5 242.8 160 241.5L151.9 221.6999999999999C151.3000000000001 220.2999999999999 172.9 200.6999999999999 172.9 200.6999999999999L173 187.8S151.3000000000001 168 151.9 166.6L161.4 146.6C162 145.2 190.9 146.1 190.9 146.1L200.3000000000001 136.8S200.1000000000001 104.9999999999999 201.5 104.4999999999999L221.6 96.1999999999999C223 95.5999999999999 242.3 119.6999999999999 242.3 119.6999999999999L255.4 119.5S275.9 95.6999999999999 277.2 96.1999999999999L297.2 103.6999999999999C298.6 104.3 297 135.8 297 135.8L306.1 144.9S335.3 144 335.8 145.4L343.9000000000001 165.2C344.6 166.3 323.0000000000001 185.9 323.0000000000001 185.9zM278.1 194.6C278.8 177.5 265.3 163 248.0000000000001 162.2C230.7 161.4 215.9 174.7 215.2000000000001 191.8C214.5000000000001 208.9 228.0000000000001 223.4 245.3000000000001 224.1C262.6 224.9 277.4000000000001 211.6 278.1 194.6zM479.3 232.5L382.3 329.5L382.2 329.4C307.1 402.7 186.8 402.2 112.4 327.8C61.5 276.8 84.6 299.9 16.7 232.5C-5.6 210.2 -5.6 173.8 16.7 151.5C86.6 82.1 63.1 105.5 114.1 54.5L114.2 54.6C189.3 -18.7 309.6 -18.3 384 56.2C435 107.1 411.9 84.1 479.3 151.5000000000001C501.6 173.8000000000001 501.6 210.2000000000001 479.3 232.5000000000001zM140.4 84.2C80.8 143.7 80.8 240.2 140.4 299.7C199.9 359.3 296.4 359.2 356 299.7C415.5 240.2 415.6 143.7 356 84.1C296.4 24.6 200 24.7 140.4 84.2000000000001z" /> + <glyph glyph-name="phoenix-framework" + unicode="" + horiz-adv-x="640" d=" M212.9 103.7C216.7 103.8 235.7 105.1 238.5 105.9C236.1 108.5 194.9 106.9 170.5 155.5C166.2 164.1 163 173.1 164.1 183.1C167 208.6 197 213.1 216.1 201.6C252.1 180 279.4 110.3 329.8 104.1C366.8 99.6 414.4 121.1 438 149.5C437.4 149.6 437.2 149.7 437 149.6C436.6 149.5 436.2 149.4 435.9 149.3C402.6 137.2 341.6 139.6 301.2 164.1C263.6 186.9 248.1 222.8 249.4 238.7C251.2 260 272.3 261.9 285.3 258.3C299.7 254.4 309.7 240.7 324.2 230.9C339.8 220.5 357.0999999999999 217.2 375.5 220.6C390.3999999999999 223.3 409.8999999999999 232.9 412 235.1C410.8999999999999 235.2 410.2 235.2 409.5 235.3C403.3 235.9 397.1 236.1 391 237C279.8 253.5 262.1 400.6 138.5 410.1C94.2 413.5 39.1 402 2.2 375.1C1.4 374.5 0.7 373.9 0 373.3C0.1 373.1 0.1 373 0.2 372.8C1 372.8 1.8 372.9 2.6 373C8.9 374 15.1 373.8 21.3 372.7C45.1 368.4 69 349.6 77.2 296.2C82.5 261.9 76.5 245.4 85.2 210.1C104.2 133 176.2 102.5 212.9 103.7zM75.3 383.1C74.4 384.1 74.4 384.3 74 385.1C86.1 387.7 98.2 389.2 110.6 389.9C109.5 375.2 88.4 368.6 75.3 383.1zM272.2 32.6C229.4 31.4 180.2 59.3 148.7 94C144.1 99 131.9 114.2 130.1 117.4L130.5 117.8C137.1 113.6999999999999 156.2 99.1999999999999 185.3 90.8C209.5 83.8 233.4 84.4999999999999 256.9 94.1C279.6 103.4 297.9 94.6 300 91.2C281.5 87.4 279.9 86.8 276 83.3C270.9 78.9 271.4 71.6 283 66.1C309.2 53.7 346 68.9 380.2 40.7C382.6 38.7 388.3 32.9 390.3 30.0000000000001C390.2 29.8000000000001 390 29.7 389.9000000000001 29.5000000000001C385.1 31.0000000000001 373.5000000000001 37.0000000000001 349.7000000000001 38.8000000000001C325.0000000000001 40.8000000000001 303.4000000000001 33.5000000000001 272.2000000000001 32.6000000000001zM447 284.6C463.4 289.8 488.3 298 513.5 287.9000000000001C529.6 281.4000000000001 539.7 269.2000000000001 545.6 253.3000000000001C549.1 243.9000000000001 550.7 233.6000000000001 550.7 224.6000000000001C550.5 224.6000000000001 550.3000000000001 224.6000000000001 550.1 224.5000000000001C549.9 224.9000000000001 549.7 225.4000000000001 549.6 225.8000000000001C544.6 247.8000000000001 519.7 269.6000000000001 482 255.7000000000001C431.8 237.1000000000001 351.6 246.0000000000001 305.1 303.7000000000001C304.4000000000001 304.6000000000001 302.7000000000001 305.4000000000001 303.8 306.9000000000001C303.9000000000001 307.1 305.9000000000001 306.3000000000001 306.8 305.6C324.9000000000001 292.2000000000001 345.1 283.7000000000001 367.1 279.4000000000001C397.6 273.3000000000001 421.7000000000001 276.5000000000001 447 284.6zM549.7 167.1C517.3000000000001 166.9 515.9000000000001 117 446.1 102.7000000000001C427.9000000000001 99.0000000000001 407.4000000000001 98.1 401.2000000000001 98.5000000000001V98.9C404.0000000000001 100.4 415.9000000000001 101.5000000000001 430.9000000000001 115.5000000000001C438.8 122.8000000000001 446.2000000000001 130.6000000000001 453.7 138.4C473.2 158.6 495.1 180.6 535.6 177.4C558.7 175.6 564.9 169.2000000000001 571.7 164.7000000000001C572 164.5000000000001 572.1 164.2000000000001 572.4000000000001 163.8000000000001C571.9000000000001 163.8000000000001 571.7 163.7000000000001 571.5000000000001 163.8000000000001C564.5000000000001 166.5000000000001 557.2000000000002 167.1000000000001 549.7000000000002 167.1000000000001zM537.4000000000001 191.2000000000001C537.3000000000001 191.0000000000001 537.3000000000001 190.8000000000001 537.2 190.6C508.3000000000001 195 489.2 198.5 468.7 186.6C451.7 176.7000000000001 437.3000000000001 166.1 406.7000000000001 162.2000000000001C379.6 158.8000000000001 361.6 159.8000000000001 340.6 170.2000000000001C340.3 170.4 340 170.6 339.6 170.8000000000001C339.6 171.0000000000001 339.7000000000001 171.1000000000001 339.7000000000001 171.3000000000001C364.6 167.5000000000001 376.1 166.2000000000001 395.2000000000001 177.1000000000001C417.5000000000001 190.0000000000001 435.3000000000001 203.7000000000001 466.5000000000001 208.1000000000001C496.1000000000001 212.2000000000001 517.8000000000001 205.6000000000001 537.4000000000001 191.2000000000001zM268.6 350.7C268 351.3 267.5 351.9 266.5 353C274.1 353 296.2 354.2 319.9 344.6C339.6 336.6 352.1 323.6 370.1 311.7C381.2 304.4 393.5 302.4 406.5 303.6C410.8 304 415 304.8 419.3 305.3C419.7 305.4 420.2 305.3 420.8 305C420.2 304.6 419.6 304.1 419 303.8C410.8999999999999 299.8 402.3 297.5 393.3999999999999 296.7C367.2999999999999 294.1 343.0999999999999 300.4 319.9999999999999 312.1C300.6999999999999 322 283.5999999999999 335 268.5999999999999 350.7zM640 112.3C636.5 109.2 617.3 100.7 597.3 107C585 110.9 577.8 121.9 565.6999999999999 131.1C555.6999999999999 138.7000000000001 544.8 139 537.5999999999999 139.5C538.1999999999999 140.3 538.4999999999999 140.7 538.8 140.9C553.5999999999999 150.1 569.3 153.1 586.0999999999999 147.4C598.5999999999999 143.2 605.3 133.9 616.4999999999999 123.2C627.2999999999998 112.8 637.4999999999999 113.3 639.5999999999999 112.7C639.6999999999999 112.8 639.8 112.7 639.9999999999999 112.3zM427.5 -24.7C429.7 -25.9 429.1 -26.2 429 -26.7C410.5 -25.3 395.1 -19.1 382.2 -4.5C360.4 20.2 340.5 23.4 333.6 25.2C334.1 25.4 334.4 25.6 334.7 25.6C347.8 25.4999999999999 360.8 24.9 373.6 21.7C398.9 15.3 408.6 -3.7 415.2 -13.6C418.4 -18.4 422.5 -21.9 427.5 -24.7z" /> + <glyph glyph-name="phoenix-squadron" + unicode="" + horiz-adv-x="513.52" d=" M96.24 385.19C142.91 421.43 202.15 441.43 261.28 439.92C290.95 440.3 320.57 434.54 348.45 424.55C324.25 429.19 299.27 430.9 274.85 427C231.85 421.65 191.59 399.77 162.69 367.65C168.38 368.64 173.5 371.3300000000001 178.76 373.53C196.95 381.42 216.36 386.82 236.1600000000001 388.4C255.9600000000001 390.54 275.9100000000001 388.83 295.61 386.4700000000001C281.1500000000001 383.68 266.4100000000001 381.89 252.5 376.86C217.97 365.75 187.04 343.6 165.95 314.04C152.11 294.27 142.25 271.05 141.21 246.71C140.86 230.17 146.44 211.8 161.1 202.54C172.23 195.88 185.95 193.15 198.73 195.78C214.22 198.25 228.89 204.45 242.46 212.16C254.01 219 265.19 226.75 274.51 236.48C278.31 239.71 277.05 244.96 277.14 249.31C275.01 249.65 272.74 250.42 270.82 249.01A203.975 203.975 0 0 0 234.89 233.59C214.8199999999999 227.4 192.6099999999999 225.11 172.6099999999999 232.81C185.44 231.08 198.75 232.5 210.4599999999999 238.27C230.7499999999999 248.02 247.38 263.54 265.06 277.15C292.8999999999999 298.44 322.7 317.26 354.23 332.62C380.01 344.63 407.32 355.47 436.04 356.82C420.36 343.06 403.79 330.22 389.12 315.31C374.57 301.27 361.58 285.73 348.89 270C345.36 265.39 339.9099999999999 263.04 335.2699999999999 259.81C313.0299999999999 244.78 294.6699999999999 223.85 283.2299999999999 199.53C273.8699999999999 179.79 268.6799999999999 157.56 271.4199999999999 135.69C273.3699999999999 121.9599999999999 280.1599999999999 108.0199999999999 292.3799999999999 100.68C305.3199999999999 92.6899999999999 321.5199999999999 92.59 335.9899999999999 95.5699999999999C368.8899999999999 103.04 397.5999999999999 124.54 417.2699999999999 151.5699999999999C437.7699999999999 179.17 447.8799999999999 213.9499999999999 446.5199999999999 248.2099999999999C445.9999999999999 255.73 444.9399999999999 263.2099999999999 444.8499999999999 270.76C452.8699999999998 251.22 459.7199999999999 230.93 461.5499999999998 209.75C463.5599999999998 195.43 462.2999999999998 180.91 459.9299999999998 166.73C458.0099999999998 155.71 454.2399999999998 145.15 452.1199999999998 134.1999999999999C472.4799999999998 156.93 486.2899999999998 185.44 491.5799999999998 215.5099999999999C497.2999999999998 250.88 492.1599999999998 287.87 477.3299999999998 320.4599999999999C498.1699999999998 288.3399999999999 509.7599999999998 250.67 513.1399999999999 212.66C513.6399999999999 199.8899999999999 513.6399999999999 187.0799999999999 513.1399999999999 174.3199999999999C510.2299999999998 140.06 500.1699999999998 106.37 483.3799999999999 76.3199999999999C457.1799999999999 28.8399999999999 415.1799999999999 -9.57 365.8399999999999 -32.0000000000001C287.3199999999999 -68.34 190.6399999999999 -63.4100000000001 117.1199999999999 -17.28C78.2799999999999 6.5 46.0599999999999 41.04 25.4399999999999 81.68C10.72 110.57 2.04 142.5 0 174.87V206.3C3.94 276.27 40.99 342.62 96.24 385.19M318.89 304.62C324.4 305.42 329.71 307.19 334.91 309.12C339.9 310.89 344.18 315.07 345.26 320.37C336.35 315.37 327.31 310.42 318.89 304.62z" /> + <glyph glyph-name="php" + unicode="" + horiz-adv-x="640" d=" M320 343.5C491.4 343.5 623.2 271.3 623.2 192S491.3 40.5 320 40.5C148.6 40.5 16.8 112.7 16.8 192S148.7 343.5 320 343.5M320 360.3C143.3 360.3 0 285 0 192S143.3 23.7 320 23.7S640 99 640 192S496.7 360.3 320 360.3zM218.2 205.5C210.3 165 182.4 169.2 148.1 169.2L161.8 239.8C199.8 239.8 225.6 243.9 218.2 205.5zM97.4 97.7H134.1L142.8 142.5C183.9 142.5 209.4 139.5 233 161.6C259.1 185.6 265.9 228.3 247.3 249.7C237.6 260.9 222 266.4 200.8 266.4H130.1L97.4 97.7zM283.1 311.3H319.6L310.9000000000001 266.5C342.4000000000001 266.5 371.6 268.8 385.7000000000001 255.8C400.5000000000001 242.2 393.4000000000001 224.8 377.4000000000001 142.7000000000001H340.4000000000001C355.8 222.1000000000001 358.7000000000001 228.7000000000001 353.1 234.7000000000001C347.7000000000001 240.5000000000001 335.4000000000001 239.3000000000001 305.7000000000001 239.3000000000001L286.9000000000001 142.7000000000001H250.4000000000001L283.1 311.3000000000001zM505 205.5C497 164.4 468.3 169.2 434.9 169.2L448.6 239.8C486.8 239.8 512.4 243.9 504.9999999999999 205.5zM384.2 97.7H421L429.7 142.5C472.9 142.5 496.8 140 519.9 161.6C546 185.6 552.8 228.3 534.1999999999999 249.7C524.4999999999999 260.9 508.8999999999999 266.4 487.6999999999999 266.4H417L384.2 97.7000000000001z" /> + <glyph glyph-name="pied-piper-alt" + unicode="" + horiz-adv-x="576" d=" M242 261C248.3 272.8 255.2 278 267.9 282.8C295.2 293.1 308.1 313.3 326.8 333.9C338.7 325.5 338.8 309.3 358.4 310.9V289.1L364.7 288.8C402.1 303.2 439.4 319 471.3 343.4C519.5999999999999 380.2 524.1999999999999 393.4 552.5999999999999 443.4L554.5999999999999 446C553.9999999999999 431.9 548.3 418.7 542.1999999999999 406.1C511.6999999999999 342.3 463.4999999999999 305.8 395.3999999999999 289.4C383 286.5 369 286.2 357.7999999999999 280.5C359.1999999999999 270.7 370.9999999999999 262.4 370.9999999999999 257.5C370.9999999999999 254.1 365.4999999999999 250.3 363.4999999999999 248.9C352.2999999999999 261.8 347.3999999999999 268.2 340.7999999999999 271C333.1999999999999 274.5 276.8999999999999 277.4 241.9999999999999 261zM379.9 4.1C360.9 4.1 315.8 -5.4 300 -15.7L306.9 -60.8C342.6 -66.9 377 -64.4 412.9 -51C408.1 -41 389.4 4.1 379.9 4.1zM244 202C240.8 204 237.7 204.9 233.9 204.9C227.3 204.9 221.3 201.7 214.6 201.2L216.3 196.3L244 202zM231.4 170.2L255.5 109L276.5 122.8L245.2 173.7L231.4 170.2zM555.5 448L554.9 446.9L554.6 446L555.2 446.6L555.5 448zM496.3 65.9C462.4 122.8 421 184.3 346.3 181.4L346 187.4C344.9 200.9 378.8 184.2 381.1 218.4L366.7000000000001 211.2C346.9000000000001 256.9 358.1 265.5 301.2000000000001 265.5C286.5000000000001 265.5 274.5000000000001 263.8 259.8000000000001 260.9C262.7000000000001 242.3 262.0000000000001 224.2 248.9000000000001 210.6L268.4000000000001 205.1C266.7000000000001 201.9 265.5000000000001 198.8 265.5000000000001 195.3C265.5000000000001 174.3 308.3000000000002 192.4 308.3000000000002 161.7C308.3000000000002 143.3 271.5000000000001 101.6 253.4000000000001 101.6C245.4000000000001 101.6 199.7000000000001 151.6 200.0000000000001 161.7L200.3000000000001 166.3L252.6000000000002 177.8C265.6000000000002 180.4 264.9000000000002 200.5 249.7000000000002 200.5C246.0000000000002 200.5 206.6000000000001 191.3 200.3000000000001 189.9C198.3000000000001 195.1 192.8000000000001 204 186.5000000000001 204C183.3000000000001 204 180.2000000000001 200.8 177.0000000000001 200C167.8000000000001 197.4 146.0000000000001 197.1 155.5000000000001 179.9L15.9 149.5C10.4 148.4 7 143.2 7 137.7C7 131.7 12.5 126.8 18.5 126.8C26.5 126.8 149.8 155.2 165.9 159C168.5 155.8 170.5 152.7 173.7 150.4C193.8 136 233.5 64.5 250.1 64.5C274.2000000000001 64.5 308.1 86.9 321.4000000000001 106.4C324.6 110.7 328.3 113.9 333.8 113.3C334.4000000000001 99.4999999999999 302.2 79.1 300.8 69.6C299.4000000000001 59.4 299.8 34.4 300.5 28.4999999999999C327.2 20.3999999999999 352.5 32.1 378.4 31.3999999999999C382.7 52.3999999999999 389 73.2999999999999 388.2 94.8999999999999L387.9 104.3999999999999C386.5 138.5999999999999 377 142.8999999999999 353.1 163C352 164.1 350.5 165.6 349.4 167C351.6 168.3999999999999 350.5 168 354 168.6999999999999C442.5 168.6999999999999 410.3 -14.9000000000001 465.5 -61.2C498.6 -46.2 538 -33.3000000000001 569 -14.0000000000001C540 11.6 516.4 31.6999999999999 496.3 65.9zM300.1 19.9V-7.4L311.9000000000001 -4.0000000000001L309.0000000000001 19.8H300.1000000000001zM376.2000000000001 17C376.2000000000001 18.4 375.6 20.2 375.3000000000001 21.6C348.5000000000001 21.6 338.4000000000001 17.8 315.8000000000001 15.3L317.8000000000001 2.9C326.8000000000001 4.4 376.2000000000001 9.5000000000001 376.2000000000001 17.0000000000001z" /> + <glyph glyph-name="pied-piper-hat" + unicode="" + horiz-adv-x="640" d=" M640 423.1C559.2 369.5 550.6 330.6 543.6 318.7C536.9 306.5 531.9 258.4 520.3000000000001 235.1C508.6000000000001 211.5 466.1000000000001 192.9 454.2 185.1C442.5000000000001 177.3 425.9000000000001 147 412.3000000000001 120.9C304.2000000000001 125.3 244.9000000000001 82.1 153.1000000000001 27.3000000000001C182.5000000000001 37.0000000000001 196.4000000000001 44.0000000000001 196.4000000000001 44.0000000000001C290.6000000000001 80.0000000000001 335.7000000000001 112.3000000000001 477.5000000000001 93.2000000000001C478.6000000000001 93.2000000000001 479.4000000000001 92.6 480.3000000000001 92.4C484.2000000000001 90.2000000000001 485.6000000000001 85.5000000000001 483.4000000000001 81.6L429.5000000000002 -14.2C427.0000000000002 -18.9 421.7000000000002 -21.4 416.4000000000002 -20.3C289.6000000000002 3.5 189.5000000000002 -37.6 97.5000000000002 -38.9C24.1 -40 0 -5.4 0 -3.8C0 -2.7 0.6 -2.1 1.7 -2.1C1.7 -2.1 40 -2.1 104.8 13.2C178.4 153.5 244 202.6 315.4 202.6C315.4 202.6 387.1 202.6 406 140.7C428.8 180.4 434.3 189.9 434.3 189.9C439.6 199.3 469.3 267.1 520.7 331.3C572.2 395.3 611.1 411.2 640 423.1z" /> + <glyph glyph-name="pied-piper-pp" + unicode="" + horiz-adv-x="448" d=" M205.3 273.4C205.3 252.3 191.1 235.3 173.6 235.3C166.5 235.3 160.8 236.5 156.4 239V307C160.8000000000001 309.7 166.5 311.2 173.6 311.2C191.1 311.2 205.3 294.3 205.3 273.4zM257.9000000000001 206.4C250.8000000000001 206.4 245.1 204.9 240.7000000000001 202.2V134.2000000000001C245.1000000000001 131.7000000000001 250.8000000000001 130.5000000000001 257.9000000000001 130.5000000000001C275.3 130.5000000000001 289.6 147.4 289.6 168.3000000000001C289.6 189.4000000000001 275.3 206.4000000000001 257.9000000000001 206.4000000000001zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM185 192.9C226 192.9 259.2 228.5 259.2 272.5C259.2 316.5 226 352.1 185 352.1C173 352.1 160.9 348.9 150.4 343.3H104.7V137L156.5 147.1V197.7C165.1 194.6 174.6 192.9 185 192.9zM343.4 167.6C343.4 211.6 310.2 247.2 269.5 247.2C266.3 247.2 263.1 247.0000000000001 259.9 246.5000000000001C256.2 234.0000000000001 249.8 222.7 240.7 213.1C226.9 198.1 208.5 189.3 188.9 188.3V32L240.7 42.1V92.7000000000001C249.3 89.5000000000001 258.9 88.0000000000001 269.4 88.0000000000001C310.2 88.0000000000001 343.4 123.6000000000001 343.4 167.6z" /> + <glyph glyph-name="pied-piper" + unicode="" + horiz-adv-x="448" d=" M32 29L0 -31.2L0.8 296.8C0.8 362.7 54 416 120 416H447.2C354.2 387.1 257.3 321.8 193.3 247.4C122.7 166 82.6 110 32 29M448 416S305.2 349.2 261.6 248.9C238.4000000000001 195.3 232.7 130.8 190.6 90.3C161.7 62.5 120.8 52.1 85.3 34C62.1 22 18.9 -6.5 0.4 -32H328.8C394.8 -32 448.1 21.3 448.1 87.2C448 87.2 448 416 448 416z" /> + <glyph glyph-name="pinterest-p" + unicode="" + horiz-adv-x="384" d=" M204 441.5C101.4 441.5 0 373.1 0 262.4C0 192 39.6 152 63.6 152C73.5 152 79.2 179.6 79.2 187.4C79.2 196.7 55.5 216.5 55.5 255.2C55.5 335.6 116.7 392.6 195.9 392.6C264 392.6 314.4 353.9 314.4 282.8C314.4 229.7 293.1 130.1 224.1 130.1C199.2 130.1 177.9 148.1 177.9 173.9C177.9 211.7000000000001 204.3 248.3000000000001 204.3 287.3000000000001C204.3 353.5000000000001 110.4 341.5000000000001 110.4 261.5C110.4 244.7 112.5 226.1 120 210.8C106.2 151.4 78 62.9 78 1.7C78 -17.1999999999999 80.7 -35.8 82.5 -54.6999999999999C85.9 -58.4999999999999 84.2 -58.0999999999999 89.4 -56.1999999999999C139.8 12.8000000000001 138 26.3000000000001 160.8 116.6000000000001C173.1 93.2000000000001 204.9 80.6000000000001 230.1 80.6000000000001C336.3 80.6000000000001 384 184.1000000000001 384 277.4000000000001C384 376.7 298.2 441.5 204 441.5z" /> + <glyph glyph-name="pinterest-square" + unicode="" + horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H154.4C164.2 -15.6 176.8 8 181.8 27.3C184.8 38.8 197.1 85.7 197.1 85.7C205.1 70.4 228.5000000000001 57.5 253.4000000000001 57.5C327.5 57.5 380.8000000000001 125.6 380.8000000000001 210.2C380.8000000000001 291.3 314.6000000000001 352 229.4000000000001 352C123.4000000000001 352 67.2000000000001 280.9 67.2000000000001 203.4C67.2000000000001 167.4 86.4000000000001 122.6 117.0000000000001 108.3C121.7000000000001 106.1 124.1000000000001 107.1 125.2000000000001 111.6C126.0000000000001 115 130.2000000000001 131.7000000000001 132.0000000000001 139.4C132.6000000000001 141.9 132.3000000000001 144.0000000000001 130.3000000000001 146.4C120.2000000000001 158.7000000000001 112.0000000000001 181.3 112.0000000000001 202.4C112.0000000000001 256.6 153.0000000000001 309 222.9000000000001 309C283.2000000000001 309 325.5000000000001 267.9000000000001 325.5000000000001 209.1C325.5000000000001 142.7000000000001 292.0000000000001 96.7000000000001 248.3000000000002 96.7000000000001C224.2000000000001 96.7000000000001 206.2000000000001 116.6 211.9000000000001 141.1C218.8000000000001 170.3 232.2000000000002 201.8 232.2000000000002 222.9C232.2000000000002 275.9000000000001 156.7000000000001 268.6 156.7000000000001 197.9C156.7000000000001 176.2000000000001 164.0000000000002 161.4 164.0000000000002 161.4C132.6000000000001 28.6 127.9000000000002 26.9 134.4000000000002 -31.1999999999999L136.6000000000001 -31.9999999999999H48C21.5 -31.9999999999999 0 -10.4999999999999 0 16.0000000000001V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368z" /> + <glyph glyph-name="pinterest" + unicode="" + horiz-adv-x="496" d=" M496 192C496 55 385 -56 248 -56C222.4 -56 197.8 -52.1 174.6 -44.9C184.7 -28.4 199.8 -1.4 205.4 20.1C208.4 31.7 220.8 79.1 220.8 79.1C228.9 63.7000000000001 252.5 50.6 277.6 50.6C352.4000000000001 50.6 406.3 119.4 406.3 204.9C406.3 286.8000000000001 339.4 348.1 253.4 348.1C146.4 348.1 89.5 276.3 89.5 198C89.5 161.6 108.9 116.3 139.8 101.9C144.5 99.7000000000001 147 100.7000000000001 148.1 105.2000000000001C148.9 108.6 153.1 125.5000000000001 155 133.3000000000001C155.6 135.8000000000001 155.3000000000001 138.0000000000001 153.3000000000001 140.4000000000001C143.2000000000001 152.9000000000001 135 175.7000000000001 135 197.0000000000001C135 251.7000000000001 176.4 304.6000000000001 247.0000000000001 304.6000000000001C307.9000000000001 304.6000000000001 350.6 263.1000000000001 350.6 203.7000000000001C350.6 136.6000000000001 316.7000000000001 90.1000000000001 272.6 90.1000000000001C248.3 90.1000000000001 230.0000000000001 110.2000000000001 235.9000000000001 134.9000000000001C242.9000000000001 164.4000000000001 256.4000000000001 196.2000000000001 256.4000000000001 217.5000000000001C256.4000000000001 236.5000000000001 246.2000000000001 252.4000000000001 225 252.4000000000001C200.1 252.4000000000001 180.1 226.7000000000001 180.1 192.2000000000001C180.1 170.2000000000001 187.5 155.4000000000001 187.5 155.4000000000001S163 51.6000000000001 158.5 32.2000000000001C153.5 10.8000000000001 155.5 -19.3999999999999 157.6 -38.9999999999999C65.4 -2.9 0 86.9 0 192C0 329 111 440 248 440S496 329 496 192z" /> + <glyph glyph-name="playstation" + unicode="" + horiz-adv-x="576" d=" M570.9 75.7C559.6 61.5 532.1 51.4 532.1 51.4L327 -22.2V32.1L477.9 85.9C495 92.0000000000001 497.7 100.7000000000001 483.7 105.3C469.8 109.9 444.6 108.6 427.5 102.4L327 66.9V123.3C350.2 131.1 374.1 136.9 402.7 140.1C443.6 144.6 493.6 139.5 532.9 124.6C577.1 110.6 582.1 89.9 570.9 75.7zM346.5 168.2V307.2C346.5 323.5 343.5 338.5 328.2 342.8C316.5 346.6 309.2 335.7 309.2 319.4V-28.5L215.4 1.3V416C255.3 408.6 313.4 391.1 344.6 380.6C424.1 353.3 451 319.3 451 242.8C451 168.3 405 140 346.5 168.2000000000001zM43.2 37.8C-2.2 50.6 -9.8 77.3 10.9 92.6C30 106.8 62.6 117.5 62.6 117.5L197.1 165.3V110.8L100.3 76.2C83.2 70.1 80.6 61.4 94.5 56.8C108.4 52.2 133.6 53.5 150.7000000000001 59.7L197.1000000000001 76.6V27.8C145.5000000000001 18.4999999999999 95.7000000000001 20.4999999999999 43.2 37.8z" /> + <glyph glyph-name="product-hunt" + unicode="" + horiz-adv-x="512" d=" M326.3 229.2C326.3 208.7 309.6 192 289.1 192H218.8V266.4H289.1C309.6 266.4 326.3 249.7 326.3 229.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM375.9 229.2C375.9 277.1 337 316 289.1 316H169.2V68H218.8V142.4H289.1C337 142.4 375.9 181.3 375.9 229.2z" /> + <glyph glyph-name="pushed" + unicode="" + horiz-adv-x="432" d=" M407 336.1L308.5 345.1L322.5 378.5C332.9 402 311.7 418.9 293.8 415.5L22.5 371.1C7.4 368.4 -3.5 352.8 1.1 334.5L106.2 -13.8C112.7 -35.1 142.9 -38 153.9 -20.8L189.2 60L424.4 291.3C440.8 308.1 428.7 334.2000000000001 407 336.1zM297.6 394.4C302.7000000000001 395.1 305.1 391.9 302.8 387L286 347.1L108.6 363.4L297.6 394.4zM22.7 340.1C19.6 345.2 23.7 350.1 28.8 349.2L277.5 326.5L180.6 95.8L22.7 340.1zM136 -8.4C133.4 -12.4 128.1 -11.5 126.6 -7.2L43.5 268.3L171.2 70.7000000000001C164.2 55.7 136 -8.4 136 -8.4zM408.8 306.1L210.1 110.7L299.8 324.4L406.2000000000001 314.7C410.2000000000001 313.6 411.9000000000001 309.4 408.8000000000001 306.1z" /> + <glyph glyph-name="python" + unicode="" + horiz-adv-x="448" d=" M167.8 411.6C122.6 403.6 114.4 386.9 114.4 356V315.3H221.3V301.7000000000001H74.3C43.2 301.7000000000001 16 283 7.5 247.5C-2.3 206.8 -2.7 181.4 7.5 138.9C15.1 107.3 33.2 84.7 64.3 84.7H101V133.5C101 168.8 131.5 199.9 167.8 199.9H274.6C304.3 199.9 328 224.4 328 254.2V356.1C328 385.1 303.6 406.8 274.6 411.7C238.8 417.6 199.9 417.3 167.8 411.6zM161.1 383.2C172.1 383.2 181.2 374 181.2 362.8S172.2 342.5 161.1 342.5C150 342.5 141 351.6 141 362.8C141.1 374.1 150 383.2000000000001 161.1 383.2000000000001zM346.3 301.8V254.3C346.3 217.5 315.1 186.5 279.5 186.5H172.7C143.5 186.5 119.3 161.5 119.3 132.2V30.4C119.3 1.4 144.5 -15.6 172.7 -23.9C206.5 -33.8 239 -35.6 279.5 -23.9C306.4 -16.1 332.9 -0.4 332.9 30.4V71.1H226.2V84.7H386.4C417.5 84.7 429 106.4 439.8 138.9C450.9999999999999 172.4 450.4999999999999 204.6 439.8 247.5C432.1 278.4 417.5 301.7 386.4 301.7H346.3zM286.2 44C297.3 44 306.3 34.9 306.3 23.7C306.3 12.4 297.3 3.3 286.2 3.3C275.2 3.3 266.1 12.5 266.1 23.7C266.2 35 275.2 44 286.2 44z" /> + <glyph glyph-name="qq" + unicode="" + horiz-adv-x="448" d=" M433.754 27.555C422.228 26.162 388.894 80.296 388.894 80.296C388.894 48.951 372.758 8.049 337.843 -21.49C354.685 -26.682 392.6860000000001 -40.657 383.646 -55.911C376.3300000000001 -68.254 258.136 -63.792 224.014 -59.948C189.892 -63.792 71.698 -68.254 64.382 -55.911C55.337 -40.661 93.3 -26.697 110.165 -21.496C75.245 8.043 59.106 48.949 59.106 80.2960000000001C59.106 80.2960000000001 25.772 26.162 14.247 27.5550000000001C8.877 28.205 1.823 57.1990000000001 23.594 127.2590000000001C33.855 160.2830000000001 45.589 187.7370000000001 63.738 233.0380000000001C60.683 349.937 108.982 447.9940000000001 224 448C337.737 447.9940000000001 387.156 351.867 384.264 233.037C402.382 187.814 414.176 160.187 424.408 127.259C446.1760000000001 57.199 439.124 28.206 433.754 27.555z" /> + <glyph glyph-name="quinscape" + unicode="" + horiz-adv-x="489.1" d=" M301.9 -26.6H300.6C213.3 -26.6 142.5 44.2 142.5 131.5S213.3 289.6 300.6 289.6C395.5 289.6 468.8 206.5 457.6 113C461.6 107.9 465.8 103.4 468.8 97.7C482.1999999999999 128 489.1 160.1 489.1 195.4C489.1 330.5 379.6 440 244.5 440C109.5 440 0 330.5 0 195.4S109.5 -49.2 244.5 -49.2C269.3 -49.2 292.3 -46 314.9 -39.1C309.7 -35.6 305.9 -30.9 301.5 -26.4999999999999L301.9 -26.6zM280.7 43.2C280.7 98 325.1 142.4 379.9 142.4C434.7 142.4 479.1 98 479.1 43.2C479.1 -11.6 434.7 -56 379.9 -56C325.1 -56 280.7 -11.6 280.7 43.2" /> + <glyph glyph-name="quora" + unicode="" + horiz-adv-x="448" d=" M440.5 61.3H411.2C409.7 47.8 400.7 30.5 378.2 30.5C357.7 30.5 342.9 44.7 328.7 66.3C372.9 100.5 403.4 153.8 403.4 219.3C403.5 336.8 306.8 416 205 416C105.3 416 7.3 336.3 7.3 219.3C7.3 85.2000000000001 138.6 -2.3 256.3 30.3C276 -3.3 302 -32 351.5 -32C433.3 -32 442.3 43.3 440.5 61.3zM297 118.8C277.5 148 253.3 171 205.5 171C175 171 151.2 161 136.5 148.2L148.7 123.9C154.9 126.9 161.7 127.9 168.5 127.9C204 127.9 222.2 97.1 237.7 66.6C227.7 63.6 217 62.4 205 62.4C130 62.4 97.5 115.4 97.5 219.1C97.5 323.5 130 377 205 377C281.2 377 313.7 323.5 313.7 219.3C313.8 177.5 308.3 143.7000000000001 297 118.8z" /> + <glyph glyph-name="r-project" + unicode="" + horiz-adv-x="581" d=" M581 221.4C581 328.9 450.9 416 290.5 416S0 328.9 0 221.4C0 125.6 103.3 46 239.4 29.9V-32H338.5V29.5C362.8 32.2 386.1 36.9 407.9 43.4L448 -32H560L492.6 81.7C547.1 117.1 581 166.6 581 221.4zM114.2 206.9C114.2 280.4 213.1 339.9 335 339.9S546.9 299.2 546.9 206.9C546.9 156.8 520.4 121.9 476.6 100.5C474.2 102.1 471.9 103.4 470.2 104.2C460 109.4 442.4 114.7 442.4 114.7S529 121.1 529 207.4S438.4 295.3 438.4 295.3H239.4V87C165.3 108.5 114.2 154.1 114.2 206.9zM339.3 168.6V224.2C397.1 224.2 427.1 231.0000000000001 427.1 196.9C427.1 160.4 388.9 168.6 339.3 168.6zM338.4 96.1H365C375.8 96.1 383.9 84.4 389 76.9C372.9 75.0000000000001 356 74.1 338.4 74.0000000000001V96.1000000000001z" /> + <glyph glyph-name="ravelry" + unicode="" + horiz-adv-x="512" d=" M407.4 386.5C331.6 425.9 257.8 417 182.9 382C171.6 376.8 167.4 371.4 163 363C152.7 343.8 146.8 325.6 143.1 310.3C121.9 284.7000000000001 106.7 254.2 99.8 220.4C89.2 202.4 78.9 179 76.7 149C76.7 149 76 141.4 76.2 141.1C40.9 145.7000000000001 0 168.1 0 168.1C9.1 153.6 61.3 135.8 76.3 130.2000000000001C76.3 130.2000000000001 78 32.2 140.8 -0.9999999999999C129.5 16.2 127.5 19.2 127.5 19.2S94.8 79 100.4 123.3C101.1 123.3 101.9 123.1 102.6 123.1C126.5 35.7 205.8 -28.3 299.5 -28.3C305.7 -28.3 311.6 -28.1 317.5 -27.6C331.5 -29.1 345.1 -28.1 357.6 -23.7C364.5 -21.5 371.4000000000001 -17.3 377.8 -12.9C448 26.2 478.7 69.1 500.9 134.8C506.3 150.8 509 170.3 510.7 187C519.4 269.3 480.1 348.6 407.4 386.5zM138.8 284.8S137.6 272.5 138.1 265.1C134.7 262.6 128 257 119.9 248.4000000000001C125.1 261.2000000000001 131.2 273.5 138.8 284.8000000000001zM107.6 162.9C112 180.1 120.9 202 137.4 218C137.4 218 139.1 170 153.2 127.9L111.8 134.8C109.6 144 108.3 153.3 107.6 162.9zM115.5 120.1C130.3 116.9 149.5 112.4999999999999 158.6 110.9999999999999C185.9 34.1999999999999 266.9000000000001 -13.3000000000001 266.9000000000001 -13.3000000000001C267.9000000000001 -13.8000000000001 268.6 -14.0000000000001 269.6 -14.3000000000001C196.5 -2.7 136.9 50.3999999999999 115.5 120.0999999999999zM386 3.9C371.5 -0.8 349.8 -4.5 321.3 0.2C321.3 0.2 230.2 23.3 193.8 108C232 107.3 246.2 108.2 271.8 111.9C311.2 117.6 350.8 128.1 386.8 144.9C398.6 150.3 397.9000000000001 164.3 396.4000000000001 174.7C394.4000000000001 187.5 385.3 186.8 375.0000000000001 179.4C375.0000000000001 179.4 293.0000000000001 120.8 185.2000000000001 125.7C166.5000000000001 157.7 158.4 236.5 158.4 236.5C199.8000000000001 271.7 241.6 296.1 326.8000000000001 288.9C327.0000000000001 295.3 329.8000000000001 316 306.4000000000001 317C306.4000000000001 317 212.9000000000001 328.1 160.4000000000001 283.5C162.9000000000001 300 166.3000000000001 312.8 171.5000000000001 322.9C205.7000000000001 353.7 250.5000000000001 372.4 299.8000000000001 372.4C406.2000000000001 372.4 492.8000000000001 285.3 492.8000000000001 177.9C492.6000000000001 101.9 449.0000000000001 35.9 386.0000000000001 3.9z" /> + <glyph glyph-name="react" + unicode="" + horiz-adv-x="512" d=" M418.2 270.8C412.8 272.6 407.4 274.3 402 275.9C402.9 279.6 403.7 283.3 404.5 287C416.8 346.6 408.7 394.5 381.4 410.3C355.1 425.4 312.2 409.7 268.8 371.9C264.5 368.2 260.3 364.3 256.3 360.4C253.6 363 250.8 365.6 248 368.1C202.5 408.5 156.9 425.5 129.5999999999999 409.6C103.3999999999999 394.4 95.5999999999999 349.3 106.5999999999999 292.9C107.6999999999999 287.3 108.8999999999999 281.8 110.2999999999999 276.2000000000001C103.8999999999999 274.4 97.5999999999999 272.4 91.6999999999999 270.3C38.3 251.8 0 222.6 0 192.4C0 161.2 40.8 129.9 96.3 110.9C100.8 109.4 105.3 107.9 109.9 106.6C108.4 100.6 107.1 94.7 105.9 88.6C95.4 33.1 103.6 -10.9 129.8 -26C156.8 -41.6 202.2 -25.6 246.4 13.1C249.9 16.2 253.4 19.4 256.9 22.8C261.3 18.5 265.9 14.4 270.5 10.4C313.3 -26.4 355.6 -41.3 381.7 -26.2C408.7 -10.6 417.5 36.7 406.1 94.3C405.2 98.7 404.2 103.2 403.1 107.8C406.3 108.7 409.4 109.7 412.5 110.7C470.1999999999999 129.8 511.9999999999999 160.7 511.9999999999999 192.4C511.9999999999999 222.7 472.6 252.1 418.2 270.8zM282.9 355.7C320.1 388.1 354.8 400.8 370.6 391.7C387.5 382 394 342.8 383.4 291.3C382.7 287.9 382 284.6 381.1 281.3C358.9 286.3 336.4 289.9 313.8 291.9C300.8 310.5 286.6 328.3 271.2 345C275.0999999999999 348.7 278.8999999999999 352.2 282.8999999999999 355.7zM152.9 166.6C157.5 157.8 162.2 149.1 167.2 140.5C172.3 131.8 177.5 123.1 183 114.6C167.4 116.3 151.9 118.8 136.6 122.1C141 136.5 146.5 151.4 152.9 166.6zM152.9 217.2C146.6 232.1 141.3 246.7 136.9 260.8C151.3 264 166.6 266.6 182.5 268.6C177.2 260.3 172 251.8 167.1 243.2C162.2 234.7 157.4 226.0000000000001 152.9 217.2zM164.3 191.9C170.9 205.7000000000001 178.1 219.2000000000001 185.7 232.5000000000001C193.3 245.8000000000001 201.5 258.7000000000001 210.1 271.4000000000001C225.1 272.5 240.4 273.1 256 273.1C271.6 273.1 287 272.5 301.9 271.4000000000001C310.4 258.8000000000001 318.5 245.9000000000001 326.2 232.7000000000001C333.9 219.5000000000001 341.1 206.0000000000001 347.9 192.3000000000001C341.2 178.5000000000001 334 164.9 326.3 151.5000000000001C318.7 138.2000000000001 310.6 125.3000000000001 302.1 112.5000000000001C287.2 111.4 271.7 110.9 256 110.9C240.3 110.9 225.1 111.4 210.4 112.3C201.7 125 193.5 138 185.8 151.3C178.1 164.6 171 178.1 164.3 191.9zM344.9 140.7000000000001C350 149.5000000000001 354.8 158.4 359.5 167.4C365.9 152.9 371.5 138.2000000000001 376.4 123.1C360.9 119.6 345.2 116.9 329.4 115.1C334.8 123.5 339.9 132.1 344.9 140.7000000000001zM359.3 217.2000000000001C354.6 226.0000000000001 349.8 234.8000000000001 344.8 243.4000000000001C339.9 251.9000000000001 334.8 260.3000000000001 329.5 268.6C345.6 266.6 361 263.9000000000001 375.3999999999999 260.6C370.7999999999999 245.8 365.3999999999999 231.4000000000001 359.2999999999999 217.2zM256.2 329.7C266.7 318.3 276.6 306.3 285.8 293.9C266 294.8 246.1 294.8 226.3 293.9C236.1 306.8 246.2 318.8 256.2 329.7zM140.2 391C157 400.8 194.3 386.8 233.6 352C236.1 349.8 238.6 347.4 241.2 345C225.7 328.3 211.4 310.5 198.3 291.9C175.7 289.9 153.3 286.4 131.1 281.5C129.8 286.6 128.7 291.8 127.6 297C118.2 345.4 124.4 381.9 140.2 391zM115.7 127.4C111.5 128.6 107.4 129.9 103.3 131.3C82 138 57.8 148.6 40.3 162.5C30.2 169.5 23.4 180.3 21.5 192.4C21.5 210.7 53.1 234.1 98.7 250C104.4 252 110.2 253.8 116 255.5C122.8 233.8 131 212.5 140.5 191.8999999999999C130.9 171 122.6 149.3999999999999 115.7 127.3999999999999zM232.3 29.4C215.8 14.3 196.7 2.3 175.9 -5.9C164.8 -11.2 152 -11.7 140.6 -7.2C124.7 1.9999999999999 118.1 37.3 127.1 84.8C128.2 90.4 129.4 95.9999999999999 130.8 101.4999999999999C153.2 96.6999999999999 175.8 93.3999999999999 198.7 91.6999999999999C211.9 72.9999999999999 226.4 55.0999999999999 241.9 38.3C238.7 35.1999999999999 235.5 32.1999999999999 232.3 29.4zM256.8 53.7C246.6 64.7 236.4 76.9 226.5 90C236.1 89.6 246 89.4 256 89.4C266.3 89.4 276.3999999999999 89.6 286.3999999999999 90.1C277.2 77.4 267.2999999999999 65.3 256.7999999999999 53.7zM387.5 23.7C386.6 11.5 380.6 0.1 371 -7.6C355.1 -16.8 321.2 -4.8 284.5999999999999 26.6C280.3999999999999 30.2 276.2 34.1 271.8999999999999 38.1C287.2 54.9999999999999 301.2999999999999 72.9 314.0999999999999 91.7C336.9999999999999 93.6 359.7999999999999 97.1 382.2999999999999 102.2C383.2999999999999 98.1 384.1999999999999 94 384.9999999999999 90C389.8999999999999 68.4 390.6999999999999 45.9 387.4999999999999 23.7zM405.7 131.2C402.8999999999999 130.3 400.0999999999999 129.4 397.2 128.6C390.2 150.4 381.5999999999999 171.7 371.7 192.4C381.3 212.8 389.3999999999999 233.8 396.2 255.3C401.3999999999999 253.8 406.3999999999999 252.2 411.2 250.6C457.8 234.6 490.4999999999999 210.8 490.4999999999999 192.6C490.4999999999999 173 455.6 147.7 405.7 131.2zM256 237.8C281.3 237.8 301.8 217.3 301.8 192C301.8 166.7 281.3 146.2 256 146.2C230.7 146.2 210.2 166.7 210.2 192C210.2 217.3 230.7 237.8 256 237.8" /> + <glyph glyph-name="readme" + unicode="" + horiz-adv-x="576" d=" M528.3 401.5H388.5C340.4 401.5 298.6 368.2 288.1 321.2C277.5 368.2 235.8 401.5 187.7 401.5H48C21.5 401.5 0 380 0 353.5V107.7C0 81.2 21.5 59.7 48 59.7H137.7C239.9 59.7 270.4 35.3 285 -15.3C285.7 -18.1 290.2 -18.1 291 -15.3C305.7 35.3 336.2 59.7 438.3 59.7H528C554.5 59.7 576 81.2 576 107.7V353.4C576 379.8 554.7 401.3 528.3 401.5zM242 136.1C242 134.2000000000001 240.5 132.6 238.5 132.6H78.2C76.3 132.6 74.7 134.1 74.7 136.1V159C74.7 160.9 76.2 162.5 78.2 162.5H238.6C240.5000000000001 162.5 242.1 161 242.1 159V136.1zM242 197C242 195.1 240.5 193.5 238.5 193.5H78.2C76.3 193.5 74.7 195 74.7 197V219.9C74.7 221.8000000000001 76.2 223.4 78.2 223.4H238.6C240.5000000000001 223.4 242.1 221.9 242.1 219.9V197zM242 257.9000000000001C242 256 240.5 254.4000000000001 238.5 254.4000000000001H78.2C76.3 254.4000000000001 74.7 255.9000000000001 74.7 257.9000000000001V280.8000000000001C74.7 282.7000000000001 76.2 284.3000000000001 78.2 284.3000000000001H238.6C240.5000000000001 284.3000000000001 242.1 282.8000000000001 242.1 280.8000000000001V257.9000000000001zM501.3 136.2000000000001C501.3 134.3000000000001 499.8 132.7000000000001 497.8 132.7000000000001H337.5C335.6 132.7000000000001 334 134.2000000000001 334 136.2000000000001V159.1C334 161 335.5 162.6 337.5 162.6H497.9C499.8 162.6 501.4 161.1 501.4 159.1V136.2000000000001zM501.3 197.1000000000001C501.3 195.2000000000001 499.8 193.6000000000001 497.8 193.6000000000001H337.5C335.6 193.6000000000001 334 195.1000000000001 334 197.1000000000001V220C334 221.9 335.5 223.5 337.5 223.5H497.9C499.8 223.5 501.4 222 501.4 220V197.1zM501.3 258.0000000000001C501.3 256.1 499.8 254.5000000000001 497.8 254.5000000000001H337.5C335.6 254.5000000000001 334 256.0000000000001 334 258.0000000000001V280.8000000000001C334 282.7000000000001 335.5 284.3000000000001 337.5 284.3000000000001H497.9C499.8 284.3000000000001 501.4 282.8000000000001 501.4 280.8000000000001V258z" /> + <glyph glyph-name="rebel" + unicode="" + horiz-adv-x="512" d=" M256.5 -56C117.2 -56 9 60.2 13.2 198.1C16 277.3 56.4 350.3 129.7 398.5C130 398.5 131.6 399.1 130.8 397.7C125 392.2 19.5 267.9 116.7 171.3C166.5 121.8 206.7 168.8 206.7 168.8C245.2 218.9 206.1 294.7000000000001 206.1 294.7000000000001C196.1 319.6 160.4 334.8 160.4 334.8L189.2 366.6C213.6 356.1 232.4 327.9 232.4 327.9C233.2 357.5 210.5 389.3 210.5 389.3L255.1 440L299.4 389.9C278.9 361.1 277.5 327.3 277.5 327.3C291.3 350.3 321 366.6 321 366.6L349.5 334.8C322.1 325.9 304.1 294.9 304.1 294.9C288.3 266.4 277 205.5 304.7000000000001 167.6C337.1 123 392.4000000000001 170.4 392.4000000000001 170.4C495.1 262.3000000000001 381.9000000000001 395.4000000000001 381.9000000000001 395.4000000000001C375.8 400.9000000000001 382.7000000000001 398.2000000000001 382.7000000000001 398.2000000000001C432.8000000000001 361.7000000000001 497.3000000000001 313.8 498.9 193.4C500.9 47.8 399 -56 256.5 -56z" /> + <glyph glyph-name="red-river" + unicode="" + horiz-adv-x="448" d=" M353.2 416H94.8C42.4 416 0 373.6 0 321.2V62.8C0 10.4 42.4 -32 94.8 -32H353.2C405.6 -32 448 10.4 448 62.8V321.2C448 373.6 405.6 416 353.2 416zM144.9 247.1V190.8C144.9 163.8 123 141.9 96 141.9V296.1C96 309.3 106.7 320 119.9 320H274.1C274.1 293 252.2 271.1 225.2 271.1H168.9C156.6 271.7 144.3000000000001 259.5 144.9 247.1zM321.2000000000001 175.1H264.9000000000001C252.6 175.7000000000001 240.3000000000001 163.5 240.9000000000001 151.1V94.8C240.9000000000001 67.8 219 45.9 192 45.9V200.1C192 213.3 202.7 224 215.9 224H370.1C370.1 197 348.2000000000001 175.1 321.2000000000001 175.1z" /> + <glyph glyph-name="reddit-alien" + unicode="" + horiz-adv-x="512" d=" M440.3 244.5C425.3 244.5 412.1 238.3 402.4000000000001 228.6C366.7000000000001 253.3 318.6 269.2 265.3000000000001 270.9L293 395.7L381.2 375.9C381.2 354.3 398.8 336.7 420.4 336.7C442.4 336.7 460.1 354.8 460.1 376.4S442.5 416.1 420.4 416.1C405 416.1 391.7 406.8 385.1 394.1L287.7 415.7C282.8 417 278 413.5 276.7 408.6L246.3 271C193.4 268.8 145.8 252.9 110 228.2C100.3 238.3 86.6 244.5 71.6 244.5C16 244.5 -2.2 169.9 48.7 144.4C46.9 136.5 46.1 128.1 46.1 119.7C46.1 35.9 140.5 -32 256.4 -32C372.8 -32 467.2 35.9 467.2 119.7C467.2 128.1 466.3 136.9 464.1 144.8C514 170.4 495.6 244.5 440.3 244.5zM129.4 139.1C129.4 161.1 147 178.8 169.1 178.8C190.7 178.8 208.3 161.2 208.3 139.1C208.3 117.5 190.7 99.9 169.1 99.9C147.1 99.8 129.4 117.5000000000001 129.4 139.1zM343.7000000000001 45.6C307.3000000000001 9.2 204.6000000000001 9.2 168.2000000000001 45.6C164.2000000000001 49.1 164.2000000000001 55.3 168.2000000000001 59.3C171.7000000000001 62.8 177.9 62.8 181.4 59.3C209.2000000000001 30.8 301.4000000000001 30.3 330.4000000000001 59.3C333.9000000000001 62.8 340.1 62.8 343.6 59.3C347.7000000000001 55.3 347.7000000000001 49.1 343.7000000000001 45.6zM342.9000000000001 99.8C321.3 99.8 303.7000000000001 117.4 303.7000000000001 139C303.7000000000001 161 321.3000000000001 178.7 342.9000000000001 178.7C364.9000000000001 178.7 382.6 161.1 382.6 139C382.5 117.5 364.9000000000001 99.8 342.9000000000001 99.8z" /> + <glyph glyph-name="reddit-square" + unicode="" + horiz-adv-x="448" d=" M283.2 102.5C285.9 99.8 285.9 95.7 283.2 93.3C258.7 68.8 189.4 68.7 164.8 93.3C162.1 95.7 162.1 99.8 164.8 102.5C167.2 104.9 171.3 104.9 173.7 102.5C192.4 83.3 254.7 82.9 274.2 102.5C276.6 104.8 280.8 104.8 283.2 102.5zM191.9 156.3C191.9 171.2 180 183.1 165.4 183.1C150.5 183.1 138.6 171.2000000000001 138.6 156.3C138.6 141.7 150.5 129.8 165.4 129.8C180 129.8 191.9 141.7 191.9 156.3zM282.6 183.1C268 183.1 256.1 171.2000000000001 256.1 156.3C256.1 141.7 268 129.8 282.6 129.8C297.5 129.8 309.4 141.7 309.4 156.3C309.4 171.2 297.5 183.1 282.6 183.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM348.3 227.4C338.2 227.4 329.3 223.2 322.7 216.7C298.6 233.4 266.2 244.1 230.2 245.3L248.9 329.5L308.4 316.1C308.4 301.5 320.3 289.6 334.9 289.6C349.8 289.6 361.7 301.8 361.7 316.4000000000001C361.7 331 349.8 343.2000000000001 334.9 343.2000000000001C324.5 343.2000000000001 315.6 337 311.1 328.3L245.4 342.9000000000001C242.1 343.8 238.9 341.4000000000001 238 338.1L217.5 245.3C181.8 243.8 149.7 233.1 125.6 216.4C119.1 223.2 109.8 227.4 99.7 227.4C62.2 227.4 49.9 177 84.2 159.9C83 154.5 82.4 148.9 82.4 143.2C82.4 86.7 146.1 40.9 224.3 40.9C302.8 40.9 366.5 86.7 366.5 143.2C366.5 148.9 365.8999999999999 154.8 364.3999999999999 160.2C398 177.4 385.5999999999999 227.4 348.2999999999999 227.4z" /> + <glyph glyph-name="reddit" + unicode="" + horiz-adv-x="512" d=" M201.5 142.5C187.7 142.5 176.6 153.6 176.6 167.1C176.6 180.9 187.7 192 201.5 192C215.1 192 226.1 180.9 226.1 167.1C226.1 153.5 215 142.5 201.5 142.5zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM371.7 233.2C362.3 233.2 354 229.3 347.9 223.2C325.5 238.7 295.3 248.7 261.8 249.8L279.2 328.1L334.5999999999999 315.6C334.5999999999999 302 345.7 291 359.2 291C373 291 384.0999999999999 302.3 384.0999999999999 315.9S372.9999999999999 340.8 359.2 340.8C349.5 340.8 341.2 335 337.0999999999999 327L275.8999999999999 340.6C272.8999999999999 341.4 269.7999999999999 339.2 269 336.2L249.9 249.8C216.6999999999999 248.4 186.8 238.5 164.4 223C158.3 229.4 149.7 233.2 140.3 233.2C105.4 233.2 94 186.3 125.9 170.3999999999999C124.8 165.3999999999999 124.2 160.1999999999999 124.2 154.8999999999999C124.2 102.2999999999999 183.4 59.6999999999999 256.2 59.6999999999999C329.3 59.6999999999999 388.5 102.3 388.5 154.8999999999999C388.5 160.1999999999999 387.8999999999999 165.6999999999999 386.6 170.6999999999999C417.9 186.6999999999999 406.4 233.2 371.7 233.2zM302.8 117C284.6 98.8 226.7 99.1 209.2 117C207 119.2 203.1 119.2 200.9 117C198.4 114.5 198.4 110.6 200.9 108.4C223.7 85.6 288.2 85.6 311.1 108.4C313.6 110.6 313.6 114.5 311.1 117C308.9000000000001 119.2 305 119.2 302.8 117zM310.5 192C296.9 192 285.9 180.9 285.9 167.1C285.9 153.5 297 142.5 310.5 142.5C324.3 142.5 335.4 153.6 335.4 167.1C335.4 180.9 324.4 192 310.5 192z" /> + <glyph glyph-name="rendact" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56C266.6 -56 284.7 -53.9 302.1 -50.1C296.5 -42.7 291.3 -35.7 286.2000000000001 -28.8C273.8000000000001 -30.9 261.0000000000001 -32.1 247.9000000000001 -32.1C124.3 -32 24 68.3 24 192S124.3 416 248 416S472 315.7 472 192C472 121 439 57.8 387.5 16.7C361.6 -2.1 348.4 -4.7 304 60.9C225.3 173.8 256 132 230.3 169.2C303.1 160.3 458.8 241.2 398.9 337.8C314 474.8 15 354.2 59.7 221.6C62.9 211.8 74.1 183 105.3 183C107.3 183 107.9 183.6 107.3 184.7C102.9 193.4 87.2 194.5 87.2 222.1C87.2 262.6 127.7 311.7 187.5 342.1C253.6 374.4 319.4 372.3 345.7 336.7C372.9 298.4 324.8 217.5 225.3 199.8C232.8 209.2 282.3 275 288.1 283.8C310.8 318.4 311.7 332.8 302.1 343C286.6 359.9 272.6 353.3 251.4 354.7C240.6 355.6 137.7 173.5 115 137.8C109.1 128.8 93.8 103.6999999999999 93.8 86.9C93.8 65.6 96.6 35.5 114.4 35.5C125 35.5 122.4 54.2 122.4 62.1C122.4 75 149.8 111.5 197.2 166.7000000000001C217.6 130.6 254.9 52.4 327.4 -42.9999999999999C425.4 -9.8999999999999 495.9 82.8000000000001 495.9 192.0000000000001C496 329 385 440 248 440z" /> + <glyph glyph-name="renren" + unicode="" + horiz-adv-x="512" d=" M214 278.9C214 168.5 153 73.5 66.4 31.5C30 74.8 8 130.3 8 191.4C8 314.1 97.1 415.8 214 435.5V278.9zM255 -56C212.1 -56 171.7 -45 136.5 -25.6C193.7 10.5 239.9 65.1 255 129C270.5 65.1 316.7 10.5 373.8 -25.7C338.7 -45 298.3 -56 255 -56zM445.6 31.5C359 73.5 298 168.4 298 278.9V435.5C414.9 415.8 504 314.1 504 191.4C504 130.3 482 74.8 445.6 31.5z" /> + <glyph glyph-name="replyd" + unicode="" + horiz-adv-x="448" d=" M320 -32H128C57.6 -32 0 25.6 0 96V288C0 358.4 57.6 416 128 416H320C390.4 416 448 358.4 448 288V96C448 25.6 390.4 -32 320 -32zM193.4 174.8C187.3 176.8 181.8 177.9 177 177.9C169.8 177.9 163.5 176.0000000000001 158.1 172.3C152.7 168.6 148.5 163.3 145.3 156.5H144.2L140 174.8H112V35.9H148.1V125.6C149.6 131 152.5 135.4 156.8 138.8C161.1 142.1999999999999 166.6 143.9 173 143.9C177.6 143.9 182.8 142.9 188.6 140.8L193.4 174.8zM308.6 71.4C305.4000000000001 69 300.9000000000001 66.6 294.9000000000001 64.3C288.9000000000001 61.9999999999999 282.1 60.8 274.5000000000001 60.8C262.3000000000001 60.8 253.4000000000001 63.8 248.0000000000001 69.6999999999999C242.5000000000001 75.5999999999999 239.5000000000001 84.3999999999999 239.0000000000001 96.0999999999999H322.3000000000001C323.2000000000001 100.8999999999999 323.9000000000001 105.4999999999999 324.4000000000001 109.9999999999999C324.9000000000001 114.3999999999999 325.1000000000001 118.5999999999999 325.1000000000001 122.4999999999999C325.1000000000001 133.1999999999999 323.5000000000001 142.1999999999999 320.4000000000001 149.3999999999999C317.2000000000001 156.5999999999999 313.1000000000001 162.3999999999999 307.9000000000001 166.5999999999999C302.7000000000001 170.8999999999999 296.8000000000001 173.8999999999999 290.1000000000001 175.7999999999999C283.4000000000001 177.5999999999999 276.6000000000001 178.5999999999999 269.5000000000001 178.5999999999999C248.4000000000001 178.5999999999999 232.0000000000001 172.4999999999998 220.3000000000001 160.2999999999999S202.8000000000001 129.7999999999999 202.8000000000001 105.2999999999998C202.8000000000001 82.4999999999998 208.0000000000001 64.5999999999999 218.4000000000001 51.5999999999999C228.8000000000001 38.4999999999998 245.2000000000001 31.9999999999998 267.6000000000001 31.9999999999998C278.3000000000001 31.9999999999998 288.5000000000001 33.4999999999998 298.0000000000001 36.5999999999999C307.5000000000001 39.6999999999999 315.1000000000001 43.3999999999999 320.6000000000001 47.7999999999998L308.6000000000001 71.3999999999999zM286.8 141.7C290.6 136.3 292.1 128.6 291.4000000000001 118.6H239.7000000000001C240.6000000000001 128 243.4000000000001 135.6 247.9000000000001 141.2C252.4000000000001 146.8 259.4000000000001 149.7 268.9000000000001 149.7C277.1 149.8 283.0000000000001 147.1 286.8 141.7zM366.7000000000001 139.2C370.8000000000001 135.3 376.1 133.4 382.8000000000001 133.4C389.8000000000001 133.4 395.4000000000001 135.3 399.5000000000001 139.2S405.6000000000001 148.3 405.6000000000001 154.8S403.6000000000001 166.4 399.5000000000001 170.2C395.4000000000001 174 389.9000000000001 175.9 382.8000000000001 175.9C376.1000000000001 175.9 370.8000000000001 174 366.7000000000001 170.2C362.6 166.4 360.6 161.3 360.6 154.8S362.6 143.1 366.7000000000001 139.2zM366.7000000000001 38.7C370.8000000000001 34.8 376.1 32.9 382.8000000000001 32.9C389.8000000000001 32.9 395.4000000000001 34.8 399.5000000000001 38.7S405.6000000000001 47.8 405.6000000000001 54.3S403.6000000000001 65.9 399.5000000000001 69.7C395.4000000000001 73.5 389.9000000000001 75.4 382.8000000000001 75.4C376.1000000000001 75.4 370.8000000000001 73.5 366.7000000000001 69.7C362.6 65.9 360.6 60.8 360.6 54.3C360.6 47.7 362.6 42.6 366.7000000000001 38.7z" /> + <glyph glyph-name="researchgate" + unicode="" + horiz-adv-x="448" d=" M0 416V-32H448V416H0zM262.2 81.6C255.6 78.6 229 75.6 212.2 95.8C203 106.4 186.9 129.1 170 159.4C161.1 159.4 155.3 159.4 148.6 160.0000000000001V113.6000000000001C148.6 90.1000000000001 154.6 92.4000000000001 174.4 89.7000000000001V81.6000000000001C167.5 81.9000000000001 151.3 82.4000000000001 138.8 82.4000000000001C125.7 82.4000000000001 112.7 81.8000000000001 105.2 81.6000000000001V89.7000000000001C120.7 92.6000000000001 127.2 91.0000000000001 127.2 113.6000000000001V223C127.2 245.6 120.8 244 105.2 246.9V255C131 254 158.3 255.6 176.1 255.6C207.8 255.6 232.0000000000001 241.2 232.0000000000001 210C232.0000000000001 188.9 215.3000000000001 167.8 192.8 162.5C206.4 138.3 222.8 116.9 235 103.6C242.2 95.8 252.2 88.9 262.2 88.9V81.6zM285.1 216.6C261.8 216.6 252.9 232.3 252.9 248.8V281C252.9 293.2 261.7 311.4 286.9 311.4S317.3 293.5 317.3 293.5L306.6 286.3S301.1 298.8 286.9 298.8C279 298.8 267.2 291.5 267.2 279.1V252.3C267.2 238.9 273.8 229 285.1 229C299.2 229 306.6 239.9 306.6 255.8H288.7V266.5H319.1C319.1 246 323.8 216.6 285.1 216.6zM168.6 171.9C159.2 171.9 155 172.2000000000001 148.6 172.7000000000001V242.4000000000001C155 243.0000000000001 163.6 243.0000000000001 171.1 243.0000000000001C194.4 243.0000000000001 208.3 230.8000000000001 208.3 208.5C208.3 186.6 193.3 171.9 168.6 171.9z" /> + <glyph glyph-name="resolving" + unicode="" + horiz-adv-x="496" d=" M281.2 169.8C327.2 183.1 330.8 193.3 325.2 213.2L314 252.5C307.9 273.4 295.6 280.6 242.9 265.3L54.7 211.2L83.3 112.6L281.2000000000001 169.8zM248.5 440C131.4 440 33.2 359.3 7.2 250.5L229.1 314.4C263.9 324.6 283.3 326.1 308.4 322.6C344.7 316.5 361.1 297.6 369.8 267.4L380.5 229.6C388.7 201.5 381.5 179 357 156C337.6 138.6 325.8 131.5 295.6 122.8L203 96.2L423.4 69.1L433.1 34.9L385 21.6L98.1999999999999 58.9L121.1999999999999 -21.3C158 -43.3 201.5 -56 247.5 -56C384.5 -56 495.9999999999999 55.4 495.9999999999999 192.3C497 328.6 385.5 440 248.5 440zM38.3 59.4L0 191.2C0 142.7 14.3 97.8 38.3 59.4z" /> + <glyph glyph-name="rev" + unicode="" + horiz-adv-x="410.22" d=" M270.67 173.11C270.67 136.9500000000001 241.26 107.54 205.11 107.54S139.54 136.9500000000001 139.54 173.11S168.95 238.67 205.11 238.67S270.67 209.27 270.67 173.11zM410.2200000000001 178.16H410.0900000000001C408.6 239.7100000000001 379.99 294.51 335.7700000000001 331.14L290.3900000000001 304.9400000000001C333.5600000000001 276.9100000000001 362.2000000000001 228.3100000000001 362.2000000000001 173.12C362.2000000000001 86.5 291.73 16.03 205.1100000000001 16.03S48.02 86.5 48.02 173.12C48.02 254.98 110.98 322.39 191.01 329.55V290.43L299.7700000000001 353.2200000000001L191.01 416V377.68C84.31 370.43 0 281.64 0 173.11C0 61.52 89.12 -29.1799999999999 200.06 -31.87V-32H410.2200000000001V178.16z" /> + <glyph glyph-name="rocketchat" + unicode="" + horiz-adv-x="448" d=" M448 191.8C448 279 348.4 345.1 228.2 345.1C209.4 345.1 190.9 343.5 172.9 340.3C161.8 350.8 148.7 360.3 134.9 367.7000000000001C61.2 403.8 0 368.6 0 368.6S56.9 321.5 47.6 280.3C-4.7 228 -4.9 156.2000000000001 47.6 103.7000000000001C56.9 62.4 0 15.4 0 15.4S61.2 -19.8 134.9 16.2C148.7 23.7 161.8 33.1 172.9 43.6C190.9 40.4 209.4 38.8 228.2 38.8C348.5 38.9 448 104.6 448 191.8zM228.3 67.8C204.6 67.8 182 70.6 161 75.6C139.7 49.8 92.9 13.9 47.4 25.5C62.2 41.5 84.1 68.6 79.4 113.1C52.1 134.5 35.8 161.8 35.8 191.6C35.8 260 122 315.5 228.3 315.5S420.8 260 420.8 191.6C420.8 123.3 334.6 67.8 228.3 67.8zM253.9 191.7000000000001C253.9 177.5000000000001 242.4 165.9 228.3 165.9C214.2 165.9 202.7 177.4 202.7 191.7000000000001C202.7 205.9 214.2 217.5000000000001 228.3 217.5000000000001C242.4 217.5000000000001 253.9 205.9000000000001 253.9 191.7000000000001zM342.8 191.7000000000001C342.8 177.5000000000001 331.4000000000001 165.9 317.2 165.9C303.1 165.9 291.6 177.4 291.6 191.7000000000001C291.6 205.9 303 217.5000000000001 317.2 217.5000000000001C331.3 217.5000000000001 342.8 205.9000000000001 342.8 191.7000000000001zM164.9 191.7000000000001C164.9 177.5000000000001 153.5 165.9 139.3 165.9C125.2 165.9 113.7 177.4 113.7 191.7000000000001C113.7 205.9 125.1 217.5000000000001 139.3 217.5000000000001C153.5 217.5000000000001 164.9 205.9000000000001 164.9 191.7000000000001z" /> + <glyph glyph-name="rockrms" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM405.4 20.5H315.4L203.4 151.8C185.5 172.2 199.5 207.9 230 207.9H305.3L220.7 307.2L136.4 208.3H46.4L193.5 380.8C207.9 399.2 234.8 398.1 248 380.8L405.7 195.7C424.7 172.9 407.7 138.5 378.1 139.6C377.5 139.6 303.9 139.4 303.9 139.4L405.4 20.5z" /> + <glyph glyph-name="safari" + unicode="" + horiz-adv-x="512" d=" M236.9 191.2C236.9 200.3 243.5 208.9 253.2 208.9C262.1 208.9 270.6 202.5 270.6 192.8C270.6 183.7 264.2000000000001 175.1 254.5000000000001 175.1C245.5000000000001 175.1 236.9000000000001 181.8 236.9000000000001 191.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM477.4 192C477.4 314.3 378.3 413.4 256 413.4S34.6 314.3 34.6 192S133.7 -29.4 256 -29.4S477.4 69.7 477.4 192zM404.9 95.4C404.9 91.8 417.9 85.2 421.2 83.2C393.8 41.7 351.4 11.8 303.3 -0.1L298.9 18.4C298.6 20.9 297 21.2 294.7 21.2C292.8 21.2 291.7 18.4 291.9 17L296.3 -1.8C283 -4.6 269.5 -6 255.9 -6C219.6 -6 183.9 4.2 152.9 23.1C154.5999999999999 25.9 165.0999999999999 41.1 165.0999999999999 43.3C165.0999999999999 45.2 163.4 46.9 161.5 46.9C157.5999999999999 46.9 149.3 30.3 146.8 27.0000000000001C105 54.7 74.8 97.6 63.2 146.6L82.3 150.8C84.5 151.4 85.1 153 85.1 155C85.1 156.9 82.3 158 80.7 157.8L62 153.5C59.5 166.2 58.1 179 58.1 192C58.1 229.1 68.6 265.6 88.3 296.9C91.1 295.2000000000001 104.4 286.1 106.6 286.1C108.5 286.1 110.2 287.5 110.2 289.4C110.2 293.3 95.5 300.7000000000001 92.2 303C120.4 344.2 163.3 373.9 212 384.9L216.2 366.4C216.8 364.2 218.4 363.6 220.4 363.6S223.4 366.4 223.2 368L219 386.3C231.2 388.5 243.6 389.9 256.1 389.9C293.2000000000001 389.9 329.4000000000001 379.4 361 359.7C359.1 356.9 350.2 343.9 350.2 341.7C350.2 339.8 351.6 338.1 353.5 338.1C357.4 338.1 364.8 352.5 366.8 355.8C407.8 328.1 437.1 285.8 448.5 237.6L433 234.3C430.5 233.7 430.2 232.1 430.2 229.9C430.2 228 433 226.9 434.4 227.1L450.2 230.7C452.7 218 454.1 205 454.1 192C454.1 155.7 444.1 120 425.3 89.3C422.5 90.7 410.9 99 408.7 99C406.5999999999999 99 404.8999999999999 97.3 404.8999999999999 95.4zM371.7 337.6C358.7 325.4 237.5 213.9 234.1 208.1L137.5 47.6C150.2 59.4999999999999 271.7 171.6 274.8 176.9L371.7000000000001 337.6z" /> + <glyph glyph-name="sass" + unicode="" + horiz-adv-x="640.4" d=" M551.1 156.1C528.7 156 509.3 150.6 493.1 142.6C487.2 154.5 481.1 164.9 480.1 172.7000000000001C478.9 181.8000000000001 477.6 187.2000000000001 479 198.0000000000001S486.7 224.1000000000001 486.6 225.2000000000001C486.5 226.3000000000001 485.2 231.8000000000001 472.3 231.9000000000001C459.4 232.0000000000001 448.3 229.4000000000001 447 226.0000000000001C445.7 222.6 443.2 214.9 441.7 206.9C439.4 195.2000000000001 415.9 153.4 402.6 131.6C398.2 140.1 394.5 147.6 393.7 153.6C392.5 162.7000000000001 391.2 168.1 392.6 178.9S400.3 205 400.2 206.1C400.1 207.2 398.8 212.7 385.9 212.8C373 212.9 361.9 210.3 360.6 206.9C359.3 203.5 357.9 195.5 355.3 187.8C352.7 180.1 321.4 110.5 313.2 92.4C309 83.2 305.3999999999999 75.8 302.8 70.8S302.6 70.4999999999999 302.4 69.9C300.2 65.6 298.9 63.2 298.9 63.2V63.1C297.2 59.9 295.3 56.9999999999999 294.4 56.9999999999999C293.8 56.9999999999999 292.5 65.3999999999999 294.7 76.8999999999999C299.4 101.0999999999999 310.5 138.6999999999999 310.4 140C310.3 140.6999999999999 312.5 147.1999999999999 303.1 150.6999999999999C294 154 290.7 148.5 289.9 148.5C289.1 148.5 288.5 146.5 288.5 146.5S298.6 188.8999999999999 269.1 188.8999999999999C250.7 188.8999999999999 225.1 168.6999999999999 212.5 150.3999999999999C204.6 146.0999999999999 187.5 136.7999999999999 169.5 126.8999999999999C162.6 123.0999999999999 155.5 119.1999999999999 148.8000000000001 115.5C148.3000000000001 116 147.9 116.5 147.4 117C111.6 155.1999999999999 45.5 182.1999999999999 48.3 233.5C49.3 252.2 55.8 301.3 175.4 360.9C273.4000000000001 409.7 351.8000000000001 396.3 365.3000000000001 366.5C384.7000000000001 324 323.4000000000001 244.9 221.6000000000001 233.5C182.8000000000001 229.2 162.4000000000001 244.2 157.3000000000001 249.8C152.0000000000001 255.7 151.2000000000001 256 149.2000000000001 254.9C145.9000000000001 253.1 148.0000000000001 247.9 149.2000000000001 244.8C152.2000000000001 236.9 164.7000000000001 222.9 186.0000000000001 215.9C204.7000000000001 209.8 250.2000000000001 206.4 305.2000000000001 227.7C367 251.5 415.1 317.8 401 373.3C386.6 429.7 293.1 448.2 204.6 416.8C151.9 398.1 94.9 368.7 53.9 330.4C5.2 284.8 -2.6 245.1 0.6 228.5C12 169.6 93.2 131.2 125.7 102.8C124.1 101.9 122.6 101.1 121.2 100.3C104.9 92.2 43 59.8 27.5 25.6C10 -13.2 30.4 -41 43.8 -44.8C85.6 -56.4 128.4 -35.4999999999999 151.4 -1.1999999999999S171.6 77.9000000000001 161 98.3000000000001C160.9 98.6000000000001 160.7 98.8000000000001 160.6 99.1000000000001C164.8 101.6000000000001 169.1 104.1000000000001 173.4 106.6000000000001C181.7 111.5000000000001 189.8 116.0000000000001 196.9 119.9000000000001C192.9 109.1000000000001 190 96.1000000000001 188.5 77.3000000000001C186.7 55.3000000000001 195.8 26.8000000000001 207.6 15.6000000000001C212.8 10.7000000000001 219.1 10.6000000000001 223 10.6000000000001C236.8 10.6000000000001 243 22.0000000000001 249.9 35.6000000000001C258.4 52.2000000000001 265.9 71.5000000000001 265.9 71.5000000000001S256.5 19.3000000000001 282.2 19.3000000000001C291.6 19.3000000000001 301 31.4000000000001 305.2 37.6000000000001V37.5000000000001S305.4 37.9 305.9 38.7C306.9 40.2 307.4 41.1 307.4 41.1V41.4C311.2 47.9 319.5 62.8 332 87.4C348.2 119.2000000000001 363.7 158.9 363.7 158.9S365.1 149.2000000000001 369.9 133.1C372.7 123.6 378.6 113.2000000000001 383.3 103.1C379.5 97.9 377.2 94.9 377.2 94.9S377.2 94.8 377.3 94.7000000000001C374.3 90.7000000000001 370.9 86.4 367.4 82.2000000000001C354.6 67.0000000000001 339.4 49.6 337.4 44.6C335 38.7 335.6 34.3 340.2 30.9C343.6 28.3 349.6 27.9 355.9 28.4C367.4 29.2 375.5 32.0000000000001 379.4 33.8C385.6 36 392.8 39.5 399.6 44.4C412.1 53.6 419.7 66.8 419 84.2000000000001C418.6 93.8000000000001 415.5 103.4 411.7 112.4C412.8 114.0000000000001 414 115.7000000000001 415.0999999999999 117.4C434.8999999999999 146.3 450.2 178.0000000000001 450.2 178.0000000000001S451.5999999999999 168.3000000000001 456.3999999999999 152.2000000000001C458.7999999999999 144.1 463.4999999999999 135.2000000000001 467.7999999999999 126.5000000000001C449.1999999999999 111.4 437.6999999999999 93.9 433.6999999999999 82.4C426.2999999999999 61.1 432.0999999999999 51.5000000000001 442.9999999999999 49.3C447.8999999999999 48.3 454.8999999999999 50.6 460.0999999999999 52.8C466.5999999999999 55 474.3999999999999 58.5 481.6999999999999 63.9C494.1999999999999 73.1 506.3 86.0000000000001 505.4999999999999 103.5000000000001C505.1999999999999 111.4 502.9999999999999 119.3000000000001 500.1 126.9C515.8 133.5000000000001 536.1999999999999 137.1 562.1999999999999 134.1C617.9 127.6 628.8 92.8 626.6999999999999 78.3C624.5999999999999 63.7 612.9 55.7 608.9999999999999 53.3C605.0999999999999 50.9 603.8999999999999 50 604.1999999999999 48.2C604.6999999999999 45.6 606.4999999999999 45.7 609.8 46.3C614.4 47.1 639 58.1 640.0999999999999 85C641.6999999999999 119 608.9999999999999 156.4 551.0999999999999 156.1zM121.8 11.4C103.4 -8.7 77.6 -16.3 66.5 -9.9C54.6 -3 59.3 26.6 82 48C95.8 61 113.6 73 125.4 80.4C128.1 82 132 84.4 136.8 87.3C137.6 87.8 138 87.9999999999999 138 87.9999999999999C138.9 88.6 139.9 89.1 140.9 89.6999999999999C149.2 59.3 141.2 32.4999999999999 121.8 11.3999999999999zM256.2 102.8C249.8 87.1 236.3 47.1 228.1 49.1999999999999C221.1 50.9999999999999 216.8 81.4999999999999 226.7 111.4999999999999C231.7 126.6 242.3 144.6 248.6 151.6C258.7 162.9 269.8 166.5 272.4 162C275.9 156.1 260.2 112.6 256.2 102.8zM367.2 49.8C364.5 48.4 362 47.4999999999999 360.8 48.1999999999999C359.9000000000001 48.6999999999999 361.9000000000001 50.5999999999999 361.9000000000001 50.5999999999999S375.8 65.4999999999999 381.3 72.2999999999999C384.5 76.2999999999999 388.2 80.9999999999999 392.2 86.1999999999999C392.2 85.6999999999999 392.3 85.1999999999999 392.3 84.5999999999999C392.2 66.6999999999999 375 54.5999999999999 367.2 49.7999999999998zM452.8 69.3C450.8 70.6999999999999 451.1 75.4 457.8 89.9999999999999C460.4 95.6999999999999 466.4 105.3 476.8 114.5C477.9999999999999 110.6999999999999 478.6999999999999 107.1 478.6999999999999 103.6999999999999C478.5999999999999 81.1999999999999 462.4999999999999 72.8 452.8 69.3z" /> + <glyph glyph-name="schlix" + unicode="" + horiz-adv-x="448" d=" M350.5 290.3L296.3 336.4L369.7000000000001 375.4L448.0000000000001 331.2L350.5000000000001 290.3zM192 325.9L237.7 354.1L272.4 319.5L217 290.5L192 325.9zM126.9 319.3L158.8 341.4L176 313L139.3 290.5L126.9 319.3zM103.6 231.1L94.8 265.9000000000001L124.4 284.2000000000001L137.5 248.9000000000001L103.6 231.1zM82.4 314.8L106.3 332.9L115.2 308.9L88.5 290.6L82.4 314.8zM59 241.5L55.4 269.9L77.7 285.4L83.8 256.7000000000001L59 241.5zM28.4 224.9L49.2 237.7L52.5 204.3L29.6 192.3L28.4 224.9zM1.4 180L20.6 190.2L21 152L0 143.2L1.4 180zM60.5 120.7L32.2 112.4L30.6 159.2L55.7 169.9L60.5 120.7zM99 184.8L67.9 171.8L62.7 212.6L90.1 227L99 184.8zM123.2 71L81.6 65.1L73.5 128.6L108.7 139.4L123.2 71zM151.7 210.9L172.9 153.8L126.7 140.2L113 194.3L151.7 210.9zM237.4 -19.6L166.5 -16.3L142.2 79.5L197.4 88.1L237.4 -19.6zM152.5 260.1L194.7 282.5L222.7 236.6L171.9 215.3L152.5 260.1zM193.5 165.1999999999999L254.8 183.8999999999999L307.6 97.3L227.8 85.9999999999999L193.5 165.1999999999999zM244.9 250.8L312.2 279.5999999999999L377.7 214.1999999999999L289.1 188L244.9000000000001 250.8z" /> + <glyph glyph-name="scribd" + unicode="" + horiz-adv-x="384" d=" M42.3 195.3C26.2 214.3 17.6 241.2 17.5 275.2000000000001C17.5 375.6 92.7 428.3 184.7 428.3C283.3 429.9000000000001 341.5 379.3 369 357.7000000000001L318.5 285.6L281.2 310.2000000000001L308.1 348.8C271.6 372.8 228.7 385.3 185.1 384.6C134.4 385.4 73.4 357.4 73.4 308.4C73.4 289.7000000000001 84.6 287.7000000000001 102 292.8C125.3 298.1 143.9 292.2000000000001 157.8 278.8C184.2 254.5 181 211.2 157.1 186.9C127.9 157.4 71.9 159.6 42.3 195.3zM360 189.4C344.5 208.2000000000001 321.1 218.8000000000001 296.8 218C258.7 220 225.7 190 226.3 150.8C225.6 134 232.3 117.8 244.7 106.5C258.8 92.6 277.7000000000001 86.8 301 92.1C318.4 97.2000000000001 329.6 95.2000000000001 329.6 76.5C329.6 72.2 329.1 68 328.2000000000001 63.8C311.5000000000001 22.9 268.7000000000001 -0.6 206.8000000000001 -0.6C154.9 -0.8 104.4 15.8 62.7000000000001 46.7L96.4000000000001 86.1L60.8000000000001 113.5L0 41.7L15.4 27.9C67.9 -18.9 135.8 -44.6 206.1 -44.3C257.5 -44.3 300.5 -33.8 339.7 -0.2C396.8 51.2 393.9 149 360 189.4z" /> + <glyph glyph-name="searchengin" + unicode="" + horiz-adv-x="460" d=" M220.6 317.7L153.4 289.5V404.8L98.7 214.5L153.4 238.7V108.4L220.6 317.7zM137.4 414.4L136.1 409.7L120.9 356.8C80.6 341.3 52 302.2 52 256.5C52 204.2 86.3 160.6 135.4 151V97.4C57.5 107.9 0 175.6 0 256.4C0 336.9 59.8 403.6 137.4 414.4zM448.8 -32.8C437.6 -44 425.7 -45.1 420.2 -43.3C414.8 -41.5 393.0999999999999 -23.4 359.8 1.1C326.5 25.7 326.2 36.8 316.8 57.8C307.4 78.6999999999999 286.4 100.4 259.3 110.1999999999999L249.6 124.8999999999999C224.9 107.9999999999999 196.6 97.9999999999999 168.3 96.1999999999999L170.4 102.8L186.3 152.3C232.8 164.1999999999999 267.2 206.3 267.2 256.5C267.2 311 228.8 358.5999999999999 171.1999999999999 363.5999999999999V415.7C254.4 410.6 320 341.2 320 256.4C320 222.8 308.8 191.7 291 166L305.6 156.4C315.4000000000001 129.3 337.1 108.4 358 99S390.2 89.3 414.8 56C439.4000000000001 22.8 457.5 1.1 459.3 -4.3S460 -21.6 448.8 -32.8zM438.9 -14.9C438.9 -10.5000000000001 435.3 -6.9 430.9 -6.9S422.9 -10.5000000000001 422.9 -14.9S426.5 -22.9 430.9 -22.9S438.9 -19.3 438.9 -14.9z" /> + <glyph glyph-name="sellcast" + unicode="" + horiz-adv-x="448" d=" M353.4 416H94.7C42.6 416 0 373.4 0 321.4V62.7000000000001C0 10.6 42.6 -32 94.7 -32H353.4C405.5 -32 448.1 10.6 448.1 62.6V321.4C448.1 373.4 405.5 416 353.4 416zM303.4 99.6C275.5 51.4 213.5 34.7 165.2 62.4C142.3 22.6 110.3 53.8 122.9 75.6L138.6 102.8C144.5 113.1 157.8 116.7 168.1 110.7C186.7 99.9 168 110.8 186.6 100C214.2 84.1 250 93.7 266 121.3C281.9 148.9 272.3 184.7 244.7 200.7C226.9 210.9 244.1 201.1 226.1 211.3C201.5 225.5 222.7 263.2000000000001 247.7 248.8C266.3 238 247.6 248.9 266.2 238.1C314.6 210.1 331.3 147.8 303.4 99.6zM325.2 308.4000000000001C308.2 278.9000000000001 308.9 279.6 306.2 276.9000000000001C299.7 270.4000000000001 289.9 268.2000000000001 279.7 273.3000000000001C261.1 284.1 279.8 273.2000000000001 261.2 284C233.6 299.9000000000001 197.8 290.3000000000001 181.8 262.7000000000001S175.5 199.3 203.1 183.3C203.1 183.3 221.6 172.7 221.7 172.7C246.3 158.5 225.1 120.8 200.1 135.2C181.5 146 200.2 135.1 181.6 145.9C133.4 173.7 116.7 236 144.5 284.3C172.4 332.5 234.4 349.2 282.7 321.5L287.5 329.9C301.8 354.8 339.5 333.2 325.2 308.4z" /> + <glyph glyph-name="sellsy" + unicode="" + horiz-adv-x="640" d=" M539.71 210.692C542.774 222.949 544 235.513 544 248.076C544 340.618 468.618 416 376.076 416C298.856 416 231.4420000000001 362.988 213.056 288.219C197.734 301.395 178.122 308.749 157.899 308.749C111.628 308.749 73.937 271.059 73.937 224.788C73.937 217.434 74.857 209.773 77.002 202.419C34.102 182.194 6.217 138.6810000000001 6.217 91.185C6.216 23.157 61.68 -32 129.401 -32H510.599C578.319 -32 633.783 23.157 633.783 91.184C633.784 147.568 594.867 197.209 539.71 210.692zM199.88 46.446C199.88 38.172 192.832 31.125 184.559 31.125H153.61C145.336 31.125 138.289 38.173 138.289 46.446V157.374C138.289 165.6470000000001 145.337 172.6950000000001 153.61 172.6950000000001H184.559C192.833 172.6950000000001 199.88 165.6470000000001 199.88 157.374V46.446zM289.357 46.446C289.357 38.172 282.309 31.125 274.035 31.125H243.086C234.812 31.125 227.765 38.173 227.765 46.446V177.904C227.765 186.178 234.813 193.225 243.086 193.225H274.035C282.309 193.225 289.357 186.177 289.357 177.904V46.446zM378.834 46.446C378.834 38.172 371.7869999999999 31.125 363.5129999999999 31.125H332.5639999999999C324.2899999999999 31.125 317.2419999999999 38.173 317.2419999999999 46.446V209.16C317.2419999999999 217.434 324.2899999999999 224.481 332.5639999999999 224.481H363.5129999999999C371.7869999999999 224.481 378.834 217.433 378.834 209.16V46.446zM465.8609999999999 46.446C465.8609999999999 38.172 458.8129999999999 31.125 450.5389999999999 31.125H422.0419999999999C413.7679999999999 31.125 406.7209999999999 38.173 406.7209999999999 46.446V271.059C406.7209999999999 279.6380000000001 413.7679999999999 286.687 422.0419999999999 286.687H450.5389999999999C458.8129999999999 286.687 465.8609999999999 279.639 465.8609999999999 271.0590000000001V46.446z" /> + <glyph glyph-name="servicestack" + unicode="" + horiz-adv-x="496" d=" M88 232C169.7 221.8 361.7 129.7 392 0H0C99.5 8.1 184.5 137 88 232zM120 384C152.3 348.4 167.7 300.1 166.4 250.4C249.3 216.7 373.7 126.7 400 0H496C455.3 216.1 222.8 368.5 120 384z" /> + <glyph glyph-name="shirtsinbulk" + unicode="" + horiz-adv-x="448" d=" M395.2080000000001 226.417H406V192.875H395.2080000000001V226.417zM395.2080000000001 236.042H406V269.584H395.2080000000001V236.042zM395.2080000000001 149.709H406V183.25H395.2080000000001V149.709zM358.75 312.75H325.208V302.25H358.75V312.75zM395.208 106.542H406V140.0840000000001H395.2080000000001V106.542zM311.5 312.75H277.958V302.25H311.5V312.75zM264.25 312.75H231V302.25H264.25V312.75zM217 312.75H183.75V302.25H217V312.75zM395.208 279.208H406V312.75H372.458V302.25H395.208V279.208zM139.416 20.208L170.041 6.791L174.416 16.708L143.791 30.1249999999999L139.416 20.208zM179.083 3L209.417 -10.708L213.791 -0.792L183.458 12.6249999999999L179.083 2.9999999999999zM395.208 63.375H406V96.917H395.2080000000001V63.375zM60.3749999999999 55.208L91 41.792L95.375 51.416L64.75 65.125L60.375 55.208zM100.0409999999999 37.709L130.666 24.292L135.041 34.209L104.4159999999999 47.625L100.0409999999999 37.709zM232.458 -0.792L236.833 -10.708L267.459 3L263.084 12.625L232.458 -0.792zM350.875 51.4160000000001L355.25 41.792L385.874 55.208L381.5 65.125L350.875 51.416zM311.5 34.209L315.875 24.292L346.5 37.709L342.126 47.625L311.5 34.209zM271.833 16.708L276.208 6.7910000000001L306.833 20.208L302.458 30.125L271.833 16.708zM311.5 401.4170000000001H277.958V390.9170000000001H311.5V401.4170000000001zM405.709 401.4170000000001H372.4580000000001V390.9170000000001H405.709V401.4170000000001zM217 401.4170000000001H183.75V390.9170000000001H217V401.4170000000001zM358.75 401.4170000000001H325.208V390.9170000000001H358.75V401.4170000000001zM264.25 401.4170000000001H231V390.9170000000001H264.25V401.4170000000001zM448 444.292V38.292L221.666 -60.292L0 38.292V444.292H448zM418.834 327.334H29.166V57.25L221.958 -28.5L418.833 57.25V327.334zM418.834 415.125H29.166V356.5H418.833V415.125zM75.542 401.4170000000001H42.291V390.9170000000001H75.542V401.4170000000001zM170.042 401.4170000000001H136.5V390.9170000000001H170.042V401.4170000000001zM122.791 401.4170000000001H89.25V390.9170000000001H122.792V401.4170000000001zM130.375 164.875C130.375 215.042 171.5 256.1670000000001 221.667 256.1670000000001C272.125 256.1670000000001 312.959 215.042 312.959 164.875C312.959 114.417 272.126 73.583 221.667 73.583C171.5 73.584 130.375 114.417 130.375 164.875zM251.125 146.791C251.125 133.666 227.208 132.5 218.459 132.5C206.209 132.5 188.709 135.125 182.584 147.375H181.709L172.666 129C187.542 119.667 201.833 116.75 219.916 116.75C239.458 116.75 270.958 122.583 270.958 147.959C270.958 196.084 192.5 164.292 192.5 185.875C192.5 199 213.208 200.75 222.25 200.75C233.041 200.75 251.416 197.542 257.833 187.626H258.708L267.459 204.542C252.292 210.667 240.042 216.501 223.125 216.501C203 216.501 173.542 210.084 173.542 184.709C173.542 140.375 251.125 172.75 251.125 146.791zM122.791 312.75H89.25V302.25H122.792V312.75zM52.792 302.25H75.542V312.75H42V279.208H52.792V302.25zM52.792 269.584H42V236.042H52.792V269.584zM170.042 312.75H136.5V302.25H170.042V312.75zM52.792 226.417H42V192.875H52.792V226.417zM52.792 140.083H42V106.5409999999999H52.792V140.083zM52.792 183.25H42V149.708H52.792V183.25zM52.792 96.917H42V63.375H52.792V96.917z" /> + <glyph glyph-name="shopware" + unicode="" + horiz-adv-x="495.99" d=" M395.5 -7.27C352.55 -39.06 301.55 -55.86 248.02 -55.86C110.81 -55.86 0 55.14 0 192.14C0 329.33 111.04 440.14 248.02 440.14C309.32 440.14 368.1600000000001 417.59 413.7000000000001 376.64C416.3200000000001 374.28 414.2800000000001 370 410.8400000000001 370.46C393.17 372.89 374.0900000000001 374.12 354.1300000000001 374.12C224.7700000000001 374.12 131.7300000000001 320.65 131.7300000000001 218.77C131.7300000000001 109.73 223.8600000000001 72.89 308.5600000000001 40.04C342.2000000000001 26.9999999999999 373.9600000000001 14.68 395.5200000000001 -1.5500000000001C397.42 -2.9900000000001 397.4100000000001 -5.8600000000001 395.5000000000001 -7.2700000000001zM494.96 215.05C494.88 215.99 494.41 216.88 493.69 217.49C441.93 260.4500000000001 400.07 277.9700000000001 349.2100000000001 277.9700000000001C265.0800000000001 277.9700000000001 268.9600000000001 225.8 268.9600000000001 224.34C268.9600000000001 181.74 321.0200000000001 162.33 381.3000000000001 139.85C412.3700000000001 128.2600000000001 444.4900000000001 116.28 473.9800000000001 99.92C475.8600000000001 98.87 478.2400000000001 99.73 479.0300000000001 101.74C497.9200000000001 150.13 496.9700000000001 191.97 494.9600000000001 215.05z" /> + <glyph glyph-name="simplybuilt" + unicode="" + horiz-adv-x="512" d=" M481.2 384H375.2C360.7 384 348.6 372.2 348.6 357.7V318.1H163.3V357.7C163.3 372.2 151.3 384 136.7 384H30.7C16.1 384 4.3 372.2 4.3 357.7V26.3C4.3 11.8 16.1 0 30.9 0H481.3C496.1 0 507.9 11.8 507.9 26.3V357.7C507.7 372.2 495.9 384 481.2 384zM149.8 92.2C113.2 92.2 83.4 121.9 83.4 158.6C83.4 195.5 113.1 225.2 149.8 225.2C186.7 225.2 216.4 195.5 216.4 158.6C216.4 121.9 186.7 92.2000000000001 149.8 92.2000000000001zM362.2000000000001 92.2C325.3000000000001 92.2 295.6 121.9 295.6 158.8C295.6 195.4 325.3 225.2 362.2000000000001 225.2C398.8000000000001 225.2 428.6 195.5 428.6 158.8C428.6 121.9 398.8 92.1999999999999 362.2000000000001 92.1999999999999z" /> + <glyph glyph-name="sistrix" + unicode="" + horiz-adv-x="448" d=" M448 -1L301.2 147.8C321.2 175.7 333.1 210 333.1 247C333.1 340.1 258.4 415.9 166.6 415.9C74.7 416 0 340.2 0 247.1S74.7 78.2 166.5 78.2C206.3 78.2 242.8 92.4 271.5 116.1L417.5 -32L448 -1zM166.5 117.2C95.9 117.2 38.4 175.5 38.4 247.1S95.9 377 166.5 377S294.6 318.7 294.6 247.1S237.2 117.2 166.5 117.2z" /> + <glyph glyph-name="sith" + unicode="" + horiz-adv-x="448" d=" M0 416L69.71 297.25L10.85 308.77L80.69 217.74A146.741 146.741 0 0 1 80.69 166.29L10.85 75.26L69.71 86.78L0 -32L118.75 37.71L107.23 -21.15L198.26 48.6899999999999C215.28 45.6499999999999 232.73 45.6499999999999 249.74 48.6899999999999L340.77 -21.1500000000001L329.25 37.7099999999999L448 -32L378.29 86.78L437.1500000000001 75.26L367.3100000000001 166.29C370.3400000000001 183.3 370.3500000000001 200.73 367.3100000000001 217.74L437.1500000000001 308.77L378.2900000000001 297.25L448 416L329.25 346.29L340.77 405.19L249.71 335.32C241.21 336.84 232.61 337.61 224 337.61S206.79 336.83 198.29 335.32L107.23 405.19L118.75 346.29L0 416zM224 316.2200000000001C255.8 316.2200000000001 287.6 304.1 311.85 279.85C360.35 231.35 360.3400000000001 152.64 311.85 104.15S184.65 55.69 136.15 104.18C87.65 152.68 87.66 231.39 136.15 279.88C160.3900000000001 304.13 192.2000000000001 316.2199999999999 224 316.2199999999999zM224 279.56C201.58 279.56 179.17 271.04 162.08 253.95C127.9 219.77 127.89 164.27 162.08 130.08S251.73 95.9 285.92 130.08C320.1 164.26 320.11 219.76 285.92 253.95C268.83 271.04 246.42 279.56 224 279.56z" /> + <glyph glyph-name="skyatlas" + unicode="" + horiz-adv-x="640" d=" M640 118.7C640 52.8 587.5 4.3 522.5 4.3C356.6 4.3 325.9 254 162.8 254C15.9 254 15.7 41.8 168.4 41.8C210.9 41.8 259.3 59.6 293.7 84.3C299.3 88.4 310.6 100.6 316.5 100.6S327.4 95.6 327.4 89.7C327.4 81.9 314.3 70.6 308.7 65.6C267.8 29.9999999999999 208.4 4.4 154 4.4C70.6 4.3 0 63.4 0 149.3S67.5 298.4 152.8 298.4C338.1 298.4 375.3 52.4999999999999 514.7 52.4999999999999C614.6 52.4999999999999 609.5 192.1999999999999 518.1 192.1999999999999C500.6 192.1999999999999 483.1 180.5999999999999 471.2 180.5999999999999C462.8000000000001 180.5999999999999 455.3000000000001 187.7999999999999 455.3000000000001 196.1999999999999C455.3000000000001 207.7999999999999 460.6000000000001 219.8999999999999 460.6000000000001 232.4999999999999C460.6000000000001 299.0999999999999 409.7000000000001 347.1999999999999 343.7000000000001 347.1999999999999C290.6 347.1999999999999 263.7000000000001 310.2999999999999 254.9000000000001 310.2999999999999C248.7000000000001 310.2999999999999 243.7000000000001 315.2999999999999 243.7000000000001 321.4999999999999C243.7000000000001 327.0999999999999 247.8000000000001 331.7999999999999 251.5000000000001 335.8999999999999C276.8000000000001 364.7 316.2000000000001 379.5999999999999 354.3000000000001 379.5999999999999C433.7000000000001 379.5999999999999 493.4000000000001 321.2 493.4000000000001 241.7999999999999C493.4000000000001 234.8999999999999 493.1000000000001 228.0999999999999 492.2000000000001 221.1999999999999C504.1000000000001 224.2999999999999 516.3000000000001 225.8999999999999 528.1000000000001 225.8999999999999C588.8000000000002 225.8999999999999 640.0000000000001 180.5999999999999 640.0000000000001 118.6999999999999z" /> + <glyph glyph-name="skype" + unicode="" + horiz-adv-x="448" d=" M424.7 148.2C427.6 162.2 429.4 177.1 429.4 192C429.4 305.5 337.5 397.3 224.1 397.3C209.2 397.3 194.4 395.6 180.3 392.6C161.3 407.3 137.7 416 112 416C50.2 416 0 365.8 0 304C0 278.3 8.7 254.7 23.3 235.8C20.4 221.8 18.6 206.9 18.6 192C18.6 78.5 110.5 -13.3 223.9 -13.3C238.8 -13.3 253.6 -11.6 267.7 -8.6C286.7 -23.2 310.3 -31.9 335.9 -31.9C397.7 -31.9 447.9 18.3 447.9 80.1C448 105.7 439.3 129.3 424.7 148.1999999999999zM230.1 56.7C164.5 56.7 109.6 85.9 109.6 121.7C109.6 137.7 118.6 152.3 139.1 152.3C170.3 152.3 173.2 107.4 227.2 107.4C252.9 107.4 269.5 118.8 269.5 133.7000000000001C269.5 152.4 253.5 155.3000000000001 227.5 161.7000000000001C165 177.1 109.7 183.7000000000001 109.7 248.9000000000001C109.7 308.1 168.3 330 218.8 330C273.9000000000001 330 329.6 308.1 329.6 274.6C329.6 257.7000000000001 318.2000000000001 242.8 299.3 242.8C271 242.8 270.1 276.3 224.3 276.3C198.6 276.3 182.3 269.3 182.3 253.8C182.3 234 203.1 232 251.4 220.8C292.8 211.5 342.1 194 342.1 143.2000000000001C342.1 84.1 285 56.7000000000001 230.1 56.7000000000001z" /> + <glyph glyph-name="slack-hash" + unicode="" + horiz-adv-x="448" d=" M446.2 177.6C440 196.6 419.3 206.7 400.2 200.5L354.8 185.4L324.5 275.4000000000001L369.9 290.5C389 296.7000000000001 399 317.3000000000001 392.9 336.4000000000001C386.7 355.4000000000001 366 365.5 346.9 359.3000000000001L301.5 344.2000000000001L285.8 391.2000000000001C279.6 410.2000000000001 258.9000000000001 420.3000000000001 239.8 414.1C220.7 407.9000000000001 210.7 387.3000000000001 216.8 368.2000000000001L232.5 321.2000000000001L139.1 290.0000000000001L123.4 337.0000000000001C117.2 356.0000000000001 96.5 366.1 77.4 359.9000000000001C58.3 353.7000000000001 48.3 333.1000000000001 54.4 314.0000000000001L70.1 267.0000000000001L24.8 252.0000000000001C5.7 245.8000000000001 -4.3 225.2000000000001 1.8 206.1000000000001C6.8 191.6 20.9 182.1 35.4 181.5000000000001C42.2 180.5000000000001 47.4 183.1000000000001 93.1 198.3000000000001L123.4 108.3000000000001L78 93.2C59 87 48.9 66.3 55 47.3C60 32.8 74.1 23.3 88.6 22.7C95.4 21.7 100.6 24.3 146.3 39.5L162 -7.5C167.9 -24.4 186.7 -36.5 208 -30.4C227.1 -24.2 237.1 -3.6 231 15.5L215.3 62.5L308.9 93.8L324.6 46.8C330.5 29.9 349.3 17.8 370.6 23.9C389.7 30.1 399.7 50.7 393.6 69.8L377.9 116.8L423.3 131.9C442.3 137.9 452.4 158.6 446.2 177.6zM192.1 130.4L161.8 220.6L255.3 251.9000000000001L285.6 161.7000000000001L192.1 130.4z" /> + <glyph glyph-name="slack" + unicode="" + horiz-adv-x="448" d=" M244.2 230.5L263.5 172.8L203.7 152.8L184.4 210.5L244.2 230.5zM285.6 -13.2C131.6 -59.4 65 -23.6 18.8 130.4S8.4 351 162.4 397.2C316.4 443.4 383 407.6 429.2 253.6C475.4 99.6 439.6 33 285.6 -13.2zM366.2 183C362.3 195.2 349 201.6 336.8 197.7L307.8 188L288.5 245.7L317.5 255.4C329.7 259.3 336.1 272.6 332.2 284.8C328.3 297 315 303.4 302.8 299.5L273.8 289.8L263.8 319.9C259.9000000000001 332.1 246.6 338.5 234.4 334.6C222.2 330.7 215.8 317.4 219.7 305.2L229.7 275.1L169.9 255L159.9 285.1C156 297.3 142.7000000000001 303.7 130.5 299.8C118.3 295.9 111.9 282.6 115.8 270.4L125.8 240.3L96.8 230.6C84.6 226.7 78.2 213.4 82.1 201.2C85.3 191.9 94.3 185.8 103.6 185.4C107.9 184.8 111.3 186.4 140.5 196.1L159.8000000000001 138.4L130.8000000000001 128.7C118.6 124.8 112.2000000000001 111.5 116.1 99.3C119.3000000000001 90 128.3000000000001 83.9 137.6 83.5C141.9 82.9 145.3 84.5 174.5 94.2L184.5 64.1C188.2 53.3 200.3000000000001 45.4999999999999 213.9 49.4C226.1 53.3 232.5000000000001 66.6 228.6 78.8L218.6 108.9L278.4000000000001 129L288.4000000000001 98.9C292.1 88.1 304.2000000000001 80.3 317.8 84.2C330 88.1 336.4000000000001 101.4 332.5 113.6L322.5 143.7L351.5 153.4C363.7 157.6 370.1 170.9 366.2 183z" /> + <glyph glyph-name="slideshare" + unicode="" + horiz-adv-x="512" d=" M249.429 236.564C249.429 204.848 221.714 178.847 187.712 178.847C153.711 178.847 125.996 204.848 125.996 236.564C125.996 268.565 153.711 294.28 187.712 294.28C221.713 294.28 249.429 268.565 249.429 236.564zM503.723 186.562C485.437 163.989 450.579 136.274 397.4340000000001 114.559C453.722 -77.163 260 -107.735 263.143 -9.446C263.143 -11.16 262.857 43.413 262.857 83.986C258.572 84.844 254.286 85.986 249.143 87.129C249.143 46.271 248.857 -11.16 248.857 -9.446C252 -107.735 58.278 -77.163 114.566 114.559C61.421 136.274 26.563 163.989 8.276 186.562C-0.867 200.276 9.134 214.849 24.277 204.277C26.277 202.849 28.562 201.42 30.562 199.992V398.284C30.563 425.713 51.135 448 76.565 448H435.722C461.151 448 481.724 425.713 481.724 398.284V199.991L487.724 204.276C502.867 214.849 512.867 200.276 503.723 186.562zM457.151 375.712C457.151 408.57 446.579 421.428 416.2920000000001 421.428H98.566C66.85 421.428 57.993 410.5700000000001 57.993 375.712V183.419C125.71 147.989 183.713 154.275 215.428 155.418C228.857 155.704 237.429 153.132 242.572 147.703C244.261 146.016 252.595 138.257 262.859 130.5600000000001C264.002 146.275 272.86 156.275 296.575 155.4180000000001C328.862 153.9900000000001 388.293 147.7030000000001 457.152 185.1340000000001V375.712zM331.146 294.28C297.144 294.28 269.43 268.565 269.43 236.564C269.43 204.848 297.145 178.847 331.146 178.847C365.433 178.847 392.862 204.848 392.862 236.564C392.862 268.565 365.4330000000001 294.28 331.146 294.28z" /> + <glyph glyph-name="snapchat-ghost" + unicode="" + horiz-adv-x="512" d=" M510.846 55.327C505.635 43.17 483.607 34.238 443.486 28.009C441.422 25.223 439.711 13.323 436.979 4.053C435.354 -1.513 431.356 -4.816 424.851 -4.816L424.554 -4.811C415.159 -4.811 405.351 -0.4880000000001 385.702 -0.4880000000001C359.181 -0.4880000000001 350.04 -6.5310000000001 329.448 -21.0760000000001C307.616 -36.5140000000001 286.677 -49.8400000000001 255.421 -48.4750000000001C223.775 -50.8090000000001 197.396 -31.5670000000001 182.55 -21.0710000000001C161.836 -6.4280000000001 152.722 -0.4890000000001 126.309 -0.4890000000001C107.445 -0.4890000000001 95.573 -5.2090000000001 87.457 -5.2090000000001C79.384 -5.2090000000001 76.244 -0.2870000000001 75.035 3.8309999999999C72.332 13.0199999999999 70.631 25.0939999999999 68.512 27.9609999999999C47.833 31.1699999999999 1.202 39.3049999999999 0.014 60.1109999999999A10.627 10.627 0 0 0 8.891 71.1799999999999C78.474 82.6349999999999 109.815 154.0809999999999 111.118 157.1139999999999C111.192 157.2899999999999 111.273 157.4579999999999 111.355 157.6289999999999C115.068 165.1659999999999 115.899 171.4779999999999 113.818 176.3819999999999C108.768 188.2779999999999 86.946 192.5459999999999 77.765 196.1779999999999C54.05 205.5439999999999 50.75 216.3059999999999 52.153 223.6819999999999C54.59 236.5179999999999 73.878 244.4169999999999 85.155 239.1349999999999C94.074 234.9539999999999 101.998 232.8379999999999 108.702 232.8379999999999C113.724 232.8379999999999 116.914 234.0419999999999 118.662 235.0089999999999C116.619 270.9449999999999 111.561 322.2989999999999 124.349 350.9779999999999C158.122 426.6960000000001 229.705 432.58 250.826 432.58C251.77 432.58 259.967 432.669 260.936 432.669C313.084 432.669 363.19 405.889 387.659 351.026C400.436 322.376 395.408 271.234 393.354 235.017C394.936 234.145 397.711 233.075 401.953 232.878C408.35 233.164 415.768 235.267 424.022 239.135C430.107 241.981 438.428 241.596 444.502 239.077L444.531 239.067C454.007 235.682 459.97 228.852 460.12 221.197C460.304 211.45 451.598 203.032 434.242 196.179C432.124 195.344 429.548 194.524 426.808 193.654C417.011 190.548 402.208 185.849 398.192 176.383C396.113 171.479 396.9360000000001 165.172 400.652 157.635C400.739 157.467 400.818 157.293 400.891 157.12C402.192 154.09 433.506 82.66 503.121 71.186C509.548 70.128 514.284 63.309 510.846 55.3270000000001z" /> + <glyph glyph-name="snapchat-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM393.5 101.1C390 93 375.4 87.1 348.7 82.9C347.3 81.0000000000001 346.2 73.1 344.4 67.0000000000001C343.3 63.3000000000001 340.7 61.1000000000001 336.3 61.1000000000001H336.1C329.9 61.1000000000001 323.3 64.0000000000001 310.3 64.0000000000001C292.7 64.0000000000001 286.6 60.0000000000001 272.9 50.3000000000001C258.4 40.0000000000001 244.5 31.2 223.7 32.1000000000001C202.7 30.5000000000001 185.1 43.3000000000001 175.2 50.3000000000001C161.4 60.0000000000001 155.4 64.0000000000001 137.8 64.0000000000001C125.3 64.0000000000001 117.4 60.9 112 60.9C106.6 60.9 104.5 64.2000000000001 103.7 66.9C101.9 73.0000000000001 100.8 81.0000000000001 99.4 82.9C85.6 85.0000000000001 54.6 90.4 53.9 104.3C53.7 107.9 56.2 111.1 59.8 111.7C106.1 119.3 126.9 166.8 127.8 168.8C127.8 168.9 127.9 169 128 169.1C130.5 174.1 131 178.3 129.6 181.6C126.2 189.5 111.7 192.3 105.6 194.8C89.8 201 87.6 208.2 88.6 213.1C90.2 221.6 103 226.9000000000001 110.5 223.4C116.4 220.6 121.7 219.2000000000001 126.2 219.2000000000001C129.5 219.2000000000001 131.7 220.0000000000001 132.8 220.6000000000001C131.4 244.5000000000001 128.1 278.6 136.6 297.7000000000001C159.1 348 206.7 352 220.7 352C221.3 352 226.8 352.1 227.4 352.1C262.1 352.1 295.4 334.3 311.7 297.8C320.2 278.7000000000001 316.9 244.7 315.5 220.7C316.6 220.1 318.4 219.4 321.2 219.3C325.5 219.5 330.4 220.9 335.9 223.5C339.9 225.4 345.5 225.1 349.5 223.5C355.8 221.2 359.8 216.7 359.9 211.6C360 205.1 354.2 199.5 342.7 195C341.3 194.4 339.6 193.9 337.8 193.3C331.3 191.2 321.4000000000001 188.1 318.8 181.8C317.4000000000001 178.5 318 174.3 320.4000000000001 169.3C320.5000000000001 169.2 320.5000000000001 169.1 320.6 169C321.5 167 342.3 119.5 388.6 111.9C392.6 110.9 395.7000000000001 106.4 393.5 101.1z" /> + <glyph glyph-name="snapchat" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM417.5 101.1C414 93 399.4 87.1 372.7 82.9C371.3 81.0000000000001 370.2 73.1 368.4 67.0000000000001C367.3 63.3000000000001 364.7 61.1000000000001 360.3 61.1000000000001H360.1C353.9 61.1000000000001 347.3 64.0000000000001 334.3 64.0000000000001C316.7 64.0000000000001 310.6 60.0000000000001 296.9 50.3000000000001C282.4 40.0000000000001 268.5 31.2 247.7 32.1000000000001C226.7 30.5000000000001 209.1 43.3000000000001 199.2 50.3000000000001C185.4 60.0000000000001 179.4 64.0000000000001 161.8 64.0000000000001C149.3 64.0000000000001 141.4 60.9 136 60.9C130.6 60.9 128.5 64.2000000000001 127.7 66.9C125.9 73.0000000000001 124.8 81.0000000000001 123.4 82.9C109.6 85.0000000000001 78.6 90.4 77.9 104.3C77.7 107.9 80.2 111.1 83.8 111.7C130.1 119.3 150.9 166.8 151.8 168.8C151.8 168.9 151.9 169 152 169.1C154.5 174.1 155 178.3 153.6 181.6C150.2 189.5 135.7 192.3 129.6 194.8C113.8 201 111.6 208.2 112.6 213.1C114.2 221.6 127 226.9000000000001 134.5 223.4C140.4 220.6 145.7 219.2000000000001 150.2 219.2000000000001C153.5 219.2000000000001 155.7 220.0000000000001 156.8 220.6000000000001C155.4 244.5000000000001 152.1 278.6 160.6 297.7000000000001C183.1 348 230.7 352 244.7 352C245.3 352 250.8 352.1 251.4 352.1C286.1 352.1 319.4 334.3 335.7 297.8C344.2 278.7000000000001 340.9 244.7 339.5 220.7C340.6 220.1 342.4 219.4 345.2 219.3C349.5 219.5 354.4 220.9 359.9 223.5C363.9 225.4 369.5 225.1 373.5 223.5C379.8 221.2 383.8 216.7 383.9 211.6C384 205.1 378.2 199.5 366.7 195C365.3 194.4 363.6 193.9 361.8 193.3C355.3 191.2 345.4000000000001 188.1 342.8 181.8C341.4000000000001 178.5 342 174.3 344.4000000000001 169.3C344.5000000000001 169.2 344.5000000000001 169.1 344.6 169C345.5 167 366.3 119.5 412.6 111.9C416.6 110.9 419.7000000000001 106.4 417.5 101.1z" /> + <glyph glyph-name="soundcloud" + unicode="" + horiz-adv-x="640" d=" M111.4 191.7L117.2 126.7L111.4 58.4C111.1 55.9 109.2 54 107 54S102.8 55.9 102.8 58.4L97.2 126.7L102.8 191.7C102.8 193.9 104.7 195.9 107 195.9C109.2 195.9 111.1 193.9 111.4 191.7zM132.8 237.3C130 237.3 128.1 235.1 127.8 232.3L122.8 126.7L127.8 58.4C128.1 55.6 130 53.4 132.8 53.4C135.3 53.4 137.5 55.6 137.5 58.4L143.3 126.7L137.5 232.3C137.5 235.1 135.3 237.3 132.8 237.3zM158.3 261.4C155.2 261.4 153 259.2 152.7 256.1L148.3 126.1L152.7 58.3C153 55.1999999999999 155.2 52.9999999999999 158.3 52.9999999999999C161.1 52.9999999999999 163.6 55.1999999999999 163.6 58.3L168.9 126.1L163.6 256.1C163.6 259.2 161.1 261.4 158.3 261.4zM7.2 164.8C5.8 164.8 5 163.7 4.7 162.3L0 126.7L4.7 91.7C5 90.3 5.8 89.2 7.2 89.2S9.4 90.3 9.7 91.7L15.3 126.7L9.7 162.3C9.4 163.7 8.6 164.8 7.2 164.8zM30.8 186.7C29.4 186.7 28.3 185.6 28.3 184.2L21.9 126.7L28.3 70.6C28.3 68.9 29.4 67.8 30.8 67.8S33.3 68.9 33.6 70.3L40.8 126.6999999999999L33.6 184.1999999999999C33.3 185.5999999999999 32.2 186.6999999999999 30.8 186.6999999999999zM56.1 198.1C54.4 198.1 53 196.7 52.8 194.8L47 126.7L52.8 60.9C53.1 59.2 54.5 57.8 56.1 57.8C57.8 57.8 59.2 59.1999999999999 59.2 60.9L66.1 126.7L59.2 194.8C59.2 196.7 57.8 198.1 56.1 198.1zM81.4 200.3C79.5 200.3 77.8 198.9 77.8 196.7L72 126.7L77.8 58.9C77.8 56.7 79.5 55.3 81.4 55.3S85 56.6999999999999 85.3 58.9L91.7 126.7L85.3 196.7C85 198.9 83.3 200.3 81.4 200.3zM322.8 311.2C321.7 312 320 312.6 318.6 312.6C316.4000000000001 312.6 314.4000000000001 311.8 313 310.7C311.1 309 309.9 306.5 309.7 304V303.2L306.4 126.5L308.1 94L309.8 62.3C310.1 57.6 314 53.7 318.7 53.7S327.3 57.6 327.3 62.3L331.2 126.5L327.3 304C326.9 307 325.3 309.8 322.8 311.2zM296.1 295.9C294.7000000000001 296.7 293.3 297.3 291.7000000000001 297.3S288.6 296.7 287.3000000000001 295.9C285.1000000000001 294.5 283.7000000000001 292 283.7000000000001 289.2L283.4000000000001 287.5L280.6 126.7S280.6 126.4 283.7000000000001 61.1V60.8C283.7000000000001 59.1 284.3000000000001 57.5 285.4000000000001 56.1C287.1 54.2 289.3 53 291.8 53C294 53 296 54.1 297.4000000000001 55.5C299.1 56.9 299.9000000000001 58.8 299.9000000000001 61.1L300.2000000000001 67.8L303.3000000000001 126.4L300.0000000000001 289.2000000000001C299.7000000000001 292.0000000000001 298.3000000000001 294.5000000000001 296.1000000000001 295.9000000000001zM184.7 273.4C181.6 273.4 178.9 270.6 178.9 267.3L174.5 126.7L178.9 59.5C179.2 56.2 181.7 53.7 184.7 53.7C188 53.7 190.5 56.2 190.8 59.5L195.8 126.7L190.8 267.3C190.6 270.6 188.1 273.4 184.7 273.4zM561.4 210.6C550.6 210.6 540.3 208.4 530.8 204.5C524.4 275.3 464.9999999999999 330.9 392.5 330.9C374.7 330.9 357.5 327.6 342.2 321.5C336.0999999999999 319.3 334.3999999999999 317.1 334.3999999999999 312.3V62.6C334.3999999999999 57.6 338.2999999999999 54 343 53.4H561.3C604.5999999999999 53.4 639.9 88.4 639.9 131.7000000000001C640 175.3000000000001 604.6999999999999 210.6000000000001 561.4 210.6000000000001zM264.7 270.9C260.5 270.9 257.2 267.6 256.9 263.1L253.6 126.4L256.9 60.8C257.2 56.6 260.5 53.3 264.7 53.3C268.9 53.3 272.2 56.6 272.2 60.8L276.1 126.4L272.2 263.1C271.9 267.6 268.9 270.9 264.7 270.9zM211.1 278.7C207.8 278.7 204.7 275.6 204.7 272L200.8 126.7L204.7 59.8C205 56.1999999999999 207.8 53.4 211.1 53.4C214.7 53.4 217.5 56.2 217.8 59.8L222.2 126.6999999999999L217.8 272C217.5 275.5999999999999 214.7 278.7 211.1 278.7zM237.8 275.3C233.9 275.3 230.9 272.2 230.9 268.4L227 126.7L230.9 60.3C231.2 56.4 234 53.4 237.8 53.4S244.7 56.5 244.7 60.3L248.9 126.6999999999999L244.7 268.3999999999999C244.7 272.3 241.7 275.3 237.8 275.3z" /> + <glyph glyph-name="speakap" + unicode="" + horiz-adv-x="448" d=" M352 416H96C43.2 416 0 372.8 0 320V64C0 11.2 43.2 -32 96 -32H352C404.8 -32 448 11.2 448 64V320C448 372.8 404.8 416 352 416zM221 65.1C181.4 65.1 139.1 82.9 139.1 118.8V146H179V128.2C179 113.1 198.5 103.7 220.9 103.7C245.1 103.7 262.2 114.1 262.2 133.2C262.2 157 235 165.1 207.5 175.8C175.6 188.2 144.4 202 144.4 244.9C144.4 292.9 183 311.3 224.3 311.3C261.9000000000001 311.3 299.8 297.2000000000001 299.8 269.4V238.2H259.9000000000001V254.3C259.9000000000001 266.4 242.1 272.8 224.3000000000001 272.8C204.8000000000001 272.8 188.7000000000001 264.7000000000001 188.7000000000001 246.6C188.7000000000001 224.5 211.2000000000001 217.4 235.7000000000001 207.7C271.6 195.3 306.8000000000001 180.5 306.8000000000001 136.2000000000001C306.9000000000001 87.6 266.0000000000001 65.1 221.0000000000001 65.1z" /> + <glyph glyph-name="spotify" + unicode="" + horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM348.7 75.1C344.5 75.1 341.9 76.4 338 78.7000000000001C275.6 116.3000000000001 203 117.9 131.3 103.2000000000001C127.4 102.2000000000001 122.3 100.6 119.4 100.6C109.7 100.6 103.6 108.3 103.6 116.4C103.6 126.7000000000001 109.7 131.6 117.2 133.2000000000001C199.1 151.3000000000001 282.8 149.7000000000001 354.2 107.0000000000001C360.3 103.1000000000001 363.9 99.6000000000001 363.9 90.5000000000001S356.8 75.1000000000001 348.7 75.1000000000001zM375.6 140.7000000000001C370.4 140.7000000000001 366.9 143.0000000000001 363.3 144.9C300.8 181.9 207.6 196.8000000000001 124.7 174.3C119.9 173 117.3 171.7 112.8 171.7C102.1 171.7 93.4 180.4 93.4 191.1S98.6 208.9 108.9 211.8C136.7 219.6 165.1 225.4 206.6999999999999 225.4C271.5999999999999 225.4 334.3 209.3 383.7 179.9C391.8 175.1 395 168.9 395 160.2C394.8999999999999 149.4 386.5 140.7 375.6 140.7zM406.6 216.9C401.4 216.9 398.2 218.2000000000001 393.7 220.8000000000001C322.5 263.3000000000001 195.2 273.5000000000001 112.8 250.5000000000001C109.2 249.5000000000001 104.7 247.9000000000001 99.9 247.9000000000001C86.7 247.9000000000001 76.6 258.2000000000001 76.6 271.5C76.6 285.1 85 292.8000000000001 94 295.4000000000001C129.2 305.7000000000001 168.6 310.6 211.5 310.6C284.5 310.6 361 295.4000000000001 416.9 262.8C424.7 258.3 429.8 252.1 429.8 240.2C429.8 226.6 418.8 216.9 406.6 216.9z" /> + <glyph glyph-name="squarespace" + unicode="" + horiz-adv-x="512" d=" M186.12 104.66C176.47 95.0100000000001 176.47 79.37 186.12 69.72C195.77 60.0700000000001 211.41 60.0700000000001 221.06 69.72L378.24 226.9C397.5300000000001 246.19 428.81 246.19 448.1 226.9S467.39 176.33 448.1 157.04L293.95 2.9C313.22 -16.39 344.48 -16.41 363.77 2.86L363.81 2.9L483.06 122.14C521.65 160.73 521.65 223.28 483.06 261.86C444.4700000000001 300.45 381.91 300.45 343.3400000000001 261.86L186.12 104.66zM430.65 209.46C421 219.1100000000001 405.36 219.1100000000001 395.72 209.46L238.52 52.28C219.25 32.99 187.99 32.97 168.7 52.23L168.65 52.28C159.01 61.92 143.38 61.93 133.73 52.29L133.72 52.28C124.07 42.64 124.06 27 133.7 17.35L133.72 17.33C172.3 -21.24 234.86 -21.24 273.44 17.33L430.64 174.53C440.2899999999999 184.18 440.2899999999999 199.82 430.6499999999999 209.46zM168.66 122.1300000000001L325.84 279.3100000000001C335.48 288.9600000000001 335.48 304.6 325.84 314.2500000000001C316.2 323.8900000000001 300.57 323.8900000000001 290.93 314.2500000000001L133.72 157.07C114.44 137.78 83.16 137.77 63.87 157.06L63.86 157.07C44.57 176.35 44.55 207.61 63.83 226.91L63.86 226.94L218.03 381.11C198.75 400.4 167.48 400.41 148.18 381.13L148.16 381.11L28.93 261.86C-9.65 223.27 -9.65 160.72 28.93 122.14C67.53 83.55 130.06 83.55 168.66 122.13zM81.33 174.53C90.97 164.8900000000001 106.6 164.8900000000001 116.24 174.53L273.45 331.7200000000001C292.73 351.01 324 351.0200000000001 343.29 331.74L343.31 331.7200000000001C352.9599999999999 322.0700000000001 368.6 322.0700000000001 378.24 331.7200000000001C387.89 341.37 387.89 357.01 378.24 366.6500000000001C339.65 405.24 277.11 405.24 238.52 366.6500000000001L81.33 209.46C71.68 199.82 71.68 184.18 81.32 174.53H81.33z" /> + <glyph glyph-name="stack-exchange" + unicode="" + horiz-adv-x="448" d=" M17.7 115.7H430.4V93.7C430.4 56 401.1 25.7 365.1 25.7H346.1L259.3 -64V25.7H83C47 25.7 17.7 56 17.7 93.7V115.7zM17.7 139.3H430.4V224.3H17.7V139.3zM17.7 248.7H430.4V333.7000000000001H17.7V248.7zM365 448H83C47 448 17.7 417.7 17.7 380.3V358H430.4V380.3C430.3 417.7 401 448 365 448z" /> + <glyph glyph-name="stack-overflow" + unicode="" + horiz-adv-x="384" d=" M293.7 148L112.5 232.5L129.2 269L310.5 184.3L293.7 148zM341.7 224L188.2 352.3L162.7 321.5L316.2 193.2L341.7 224zM381.3 255.7L262 416L230 392L349.3 231.7L381.3 255.7zM290.7 137L95 178.3L86.8 139L282.5 98L290.7 137zM322.3 8H42.7V128H2.7V-32H362.2V128H322.2V8zM282.5 88H82.5V48.3H282.5V88z" /> + <glyph glyph-name="staylinked" + unicode="" + horiz-adv-x="440" d=" M201.6 320.6C205.7 323.8 211.9 323.6 215.4 320.1L385.4 152.8L382.7 155.5L427 114.1999999999999C430.7 110.6999999999999 430.3 105.1999999999999 426.3 101.9999999999999L228.3 -61.9000000000001C218.4 -69.5000000000001 211 -62.7000000000001 211 -62.7000000000001L2.3 133.4C-1.2 136.9 -0.7 142.4 3.5 145.6L49.3 180.5C53.5 183.6999999999999 59.7 183.5 63.2 180L215.1 32.4999999999999C218.8 28.9999999999999 225.1 28.8 229.3 32.1L322.5 106.1C326.6 109.3 327 114.8 323.4 118.3L239.4 199.6C235.8 203.1 229.5 203.3 225.4 200.1L225.3 200C221.2 196.8 214.9 197 211.3 200.5L143.2 264.8C139.7 268.3 140.1 273.8 144.3 277L201.6 320.5999999999999M216.4 63.3C220.1 59.8 226.5 59.6 230.7 62.9L280.9 101.7L280.6 102L288.3 108C292.5 111.2 292.9 116.7 289.2 120.2L232.1 174.6C228.5 178.1 222.0999999999999 178.3 217.9 175.1L217.8 175C213.6 171.8 207.3 171.8999999999999 203.6 175.3999999999999L109 267.2C105.4 270.7 105.9 276.1 110.1 279.4L202.3 350.9C206.4 354.1 212.6 353.9 216.2 350.4L376.6 191.4C380.3 187.9 386.6 187.7 390.7000000000001 190.9L436.5000000000001 226.7C440.6000000000001 229.9 440.9000000000001 235.4 437.2000000000001 238.9L226.7 445.5C225.2 446.7 218.7 451 210.4 444.4L3.6 282.3C-0.6 279.1 -1.2 273.6 2.4 270.1L44.7 228.4000000000001" /> + <glyph glyph-name="steam-square" + unicode="" + horiz-adv-x="448" d=" M185.2 91.5C192.9 110 184.2 131.2 165.6 138.9L136.1 151.1C147.5 155.4 160.4 155.6 172.5 150.6C184.7 145.5 194.1 136 199.2 123.9C204.2 111.7 204.2 98.3 199.1 86.2C188.6 61.1 159.7 49.2 134.5 59.7C122.9 64.5 114.1 73.3 109.1 83.9L137.6 72.1C156.2 64.3 177.5 72.9999999999999 185.2 91.4999999999999zM400 416H48C21.5 416 0 394.5 0 368V207.3L116.6 159.2C128.6 167.4 142.8 171.3 157.3 170.5L212.7 250.7V251.8C212.7 300 252 339.3 300.3 339.3S387.9 300 387.9 251.8C387.9 202.6 347 163.1 298.3 164.3L219.3 107.9999999999999C220.9 69.4999999999999 190.2 39.1999999999999 153.6 39.1999999999999C121.8 39.1999999999999 95.1 61.8999999999999 89.1 91.8999999999999L0 128.8V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM300.3 193.5C268.1 193.5 241.9 219.6 241.9 251.8S268.1 310.1 300.3 310.1S358.7 283.9000000000001 358.7 251.8S332.5 193.5 300.3 193.5zM300.4000000000001 208.1C324.6 208.1 344.3 227.7 344.3 251.9C344.3 276.1 324.7 295.7 300.4000000000001 295.7C276.2000000000001 295.7 256.5000000000001 276.1 256.5000000000001 251.9C256.5000000000001 227.7 276.2000000000001 208.1 300.4000000000001 208.1z" /> + <glyph glyph-name="steam-symbol" + unicode="" + horiz-adv-x="448" d=" M395.5 270.5C395.5 236.7 368 209.5 334.5 209.5C300.7 209.5 273.5 236.8 273.5 270.5S300.8 331.5 334.5 331.5C368 331.5 395.5 304.3 395.5 270.5zM448 270.3C448 207.3 397 156.5 334.3 156.5L225 76.7C221 33.7 184.5 -0.1 140.5 -0.1C100 -0.1 65.8 28.7 57.5 66.9L0 90V197.3L97.2 158C112.3 167.2 129.4 171.3 149.2 169.5L220.2 271.2C220.7 333.5 271.7 384 334.2 384C397 384 448 333 448 270.3zM203 85C203 119.7 175.2 147.5 140.5 147.5C136 147.5 131.5 147 127 146L153 135.5C178.5 125.3 191 96.5 180.7 71C170.5 45.5 141.5 33 116 43.5C105.8 47.5 95.5 51.8 85.3 55.7C95.8 36 116.5 22.5 140.5 22.5C175.2 22.5 203 50.3 203 85zM410.5 270.3C410.5 312.3 376.2 346.5 334.3 346.5C292 346.5 257.8 312.3 257.8 270.3C257.8 228.1 292.1 194.1 334.3 194.1C376.2 194 410.5 228.0000000000001 410.5 270.3z" /> + <glyph glyph-name="steam" + unicode="" + horiz-adv-x="496" d=" M496 192C496 55 384.8 -56 247.6 -56C133.8 -56 38 20.3 8.6 124.4L103.8 85.1C110.2 52.9999999999999 138.7 28.7 172.7 28.7C211.9 28.7 244.6 61.1 242.9 102.2L327.4 162.4C379.5 161.1 423.2 203.3 423.2 255.9C423.2 307.5 381.2 349.4 329.5 349.4S235.8 307.4 235.8 255.9V254.7L176.6 169C161.1 169.9 145.9 165.6 133.1 156.9L0 211.9C10.2 339.6 117.1 440 247.6 440C384.8 440 496 329 496 192zM155.7 63.7L125.2 76.3A52.79 52.79 0 0 1 152.4 50.5C179.3 39.3 210.2 52.1 221.4 78.9C226.8 91.9 226.9 106.2 221.5 119.2C216.1 132.2 206 142.4 193 147.8C180.1 153.2 166.3 153 154.1 148.4L185.6 135.4C205.4 127.2000000000001 214.8 104.5000000000001 206.5 84.7000000000001C198.2 64.8000000000001 175.5 55.5000000000001 155.7 63.7000000000001zM329.5 193.6C295.1 193.6 267.1 221.6 267.1 255.9S295.1 318.2 329.5 318.2S391.9 290.2 391.9 255.9S364 193.6 329.5 193.6zM329.6 209.2C355.5 209.2 376.5 230.2 376.5 256C376.5 281.9 355.5 302.8 329.6 302.8S282.7000000000001 281.8 282.7000000000001 256C282.8000000000001 230.2 303.8000000000001 209.2 329.6 209.2z" /> + <glyph glyph-name="sticker-mule" + unicode="" + horiz-adv-x="576" d=" M353.1 -61.8C347.2000000000001 -64.7 321 -65 316.6 -61.3C312.5 -58.3 314.4000000000001 -49.4 315.1 -46.3C317.3 -31.3 312.6 -38.4 305.3 -34.8C302.2 -33.3 301.2 -29.3 300.7 -24.8C300.2 -23.3 299.7 -22.3 299.2 -21.3C297.5 -10.6 306 12.3 307.4 22.1C312.3 45.8 306.7 59.3 308.9 68.9999999999999C312.6 85.1999999999999 313 72.4999999999999 313 98.8999999999999C311.6 124.7999999999999 316.3 135.7999999999999 313.5 137.7999999999999C298.7 137.7999999999999 249.2 127.0999999999999 201.3 135.7999999999999C155.2 144.6999999999999 141.9 164.7999999999999 135.9 166.6999999999999C125.6 171.1999999999999 112.7 166.1999999999999 108.6 159.6999999999999C108.5 159.5999999999999 73.6 89.0999999999999 69 71.8999999999999C62.8 51.3999999999999 68.5 24.4999999999999 73.1 5.0999999999999C73.1 4.9999999999998 77.6 -9.5000000000002 83.4 -14.4000000000001C85.5 -15.9000000000001 88.5 -16.9000000000001 90.6 -18.9000000000001C93.4 -21.6000000000001 100 -34.1000000000001 100.4 -34.9000000000001C103 -39.4000000000001 104 -42.9000000000001 98.9 -45.4000000000001C95.3 -47.4000000000001 89.6 -47.9000000000001 84.5 -47.9000000000001C81.9 -48.4000000000001 83 -51.4000000000001 81.4 -52.9000000000001C78.5 -55.7000000000002 60.7 -59.0000000000002 51.5 -55.4000000000001C48.9 -54.4000000000001 45.8 -52.4000000000001 45.3 -50.4000000000001C43.8 -46.4000000000001 47.4 -41.4000000000001 44.3 -37.9000000000001C39.8 -35.0000000000002 31.2 -35.9000000000001 27.3 -25.9000000000001C25.1 -20.5000000000002 24.7 -18.3000000000001 24.7 23.4999999999998C24.7 33.1999999999998 18.8 62.1999999999998 16.5 70.3999999999998C15 75.8999999999998 15 81.8999999999998 16.5 86.3999999999998C16.8 87.2999999999998 20.6 90.9999999999998 20.6 99.3999999999998C19.6 100.8999999999998 16 99.8999999999998 15.5 100.8999999999998C5.1 181.4999999999998 9.6 179.8999999999998 7.8 199.1999999999998C6.3 215.1999999999998 -3.1 243.0999999999998 1.1 263.4999999999999C1.6 265.8999999999999 4.5 284.4999999999999 25.3 302.3999999999999C56.3 329.0999999999999 73.7 340.6999999999998 184.3 313.8999999999999C185.4 313.4999999999999 250.6 292.7999999999999 295 322.8999999999999C310.5 334.1999999999998 323.8 334.1999999999998 330.5 338.8999999999999C330.6 338.9999999999999 392.2 390.9999999999999 417.5 404.1999999999998C464.7 433.5999999999999 487.4 420.8999999999998 492.6 422.1999999999998C497.3 423.1999999999998 506 447.9999999999999 509.6 447.9999999999999C515.1 447.9999999999999 511.2 427.7999999999999 513.2 422.0999999999999C513.7 420.0999999999999 516.8000000000001 417.0999999999999 519.4000000000001 417.0999999999999C521.7 417.0999999999999 521.1000000000001 417.8999999999999 529.7 422.0999999999999C538.1 427.4999999999999 544.6 439.6999999999998 550.3000000000001 439.0999999999999C562.0000000000001 437.4999999999999 531.3000000000001 397.4999999999999 531.3000000000001 392.1999999999998C531.3000000000001 390.1999999999998 531.5000000000001 391.3999999999999 535.9000000000001 382.6999999999998C538.5000000000001 377.1999999999998 540.5000000000001 369.1999999999998 542.1000000000001 362.6999999999998C550.4000000000001 332.9999999999999 547.8000000000002 348.0999999999999 555.5000000000001 325.7999999999999C575.7000000000002 275.6999999999998 576.1000000000001 280.5999999999999 576.1000000000001 272.8999999999999C576.1000000000001 265.3999999999999 572.0000000000001 261.8999999999999 568.9000000000001 256.3999999999999C567.4000000000001 253.3999999999999 564.3000000000001 248.8999999999999 561.7 248.3999999999999C559 247.6999999999999 568.7 249.8999999999999 548.3000000000001 245.8999999999999C541.1 244.8999999999999 534.9000000000001 250.3999999999999 533.4000000000001 255.3999999999999C531.8000000000001 260.0999999999998 536.2 265.4999999999999 521.6000000000001 278.2999999999999C511.3000000000001 288.2999999999999 500.5000000000001 289.5999999999999 489.7000000000002 295.2999999999999C479.9000000000001 300.9999999999999 477.8000000000002 294.2999999999999 471.7000000000002 287.2999999999999C453.7000000000002 264.3999999999999 437.7000000000002 240.3999999999999 419.7000000000002 217.4999999999998C407.9000000000002 202.4999999999998 395.5000000000002 187.0999999999999 386.2000000000002 170.0999999999999C382.3000000000002 163.2999999999999 376.7000000000002 141.9999999999998 375.9000000000002 140.1999999999999C369.7000000000002 122.4999999999999 370.4000000000002 114.3999999999999 359.4000000000002 71.8999999999999C356.3000000000002 61.8999999999999 353.7000000000002 50.4999999999999 350.7000000000002 39.4999999999999C348.5000000000002 32.6999999999999 343.3000000000002 -9.8000000000001 350.2000000000002 -19.9000000000001C352.3000000000002 -23.4000000000001 358.9000000000002 -24.4000000000001 361.5000000000002 -27.9000000000001C361.6000000000002 -28.0000000000001 371.1000000000002 -46.1000000000001 370.8000000000002 -47.9000000000001C370.8000000000002 -54.0000000000001 361.4000000000002 -53.5000000000001 359.5000000000002 -54.4000000000001C354.7000000000002 -57.3000000000001 355.7000000000002 -60.3000000000001 353.1000000000002 -61.8000000000001" /> + <glyph glyph-name="strava" + unicode="" + horiz-adv-x="369.2" d=" M301.6 156L257.7000000000001 67.8L213.1000000000001 156H145.5000000000001L257.7000000000001 -64L369.2000000000001 156H301.6zM151.4 448L0 156H89.2L151.4 272.1L213.1 156H301.6L151.4 448z" /> + <glyph glyph-name="stripe-s" + unicode="" + horiz-adv-x="362.3" d=" M144.3 293.4C144.3 315.7000000000001 162.9 324.3 192.7 324.3C236.1 324.3 291.2000000000001 311 334.6 287.6V421.9C287.3 440.8 240.1 448 192.8 448C77.1 448 0 387.6 0 286.6C0 128.7 216.8 154.3 216.8 86.2C216.8 59.8 193.9 51.3 162.1 51.3C114.9 51.3 53.9 70.8 6 96.8V-31.7C59 -54.5 112.8 -64.1 162 -64.1C280.6 -64.1 362.3000000000001 -13.1 362.3000000000001 89.5C362.3000000000001 259.7 144.3000000000001 229.2 144.3000000000001 293.4" /> + <glyph glyph-name="stripe" + unicode="" + horiz-adv-x="640" d=" M640 186.4C640 231.9 618 267.8 575.8 267.8S507.9 231.9 507.9 186.7C507.9 133.2 538.1999999999999 108.5 581.4 108.5C602.6 108.5 618.5 113.3 630.6 120V153.4C618.5 147.3 604.6 143.6 587 143.6C569.7 143.6 554.5 149.7 552.5 170.5H639.4C639.6 172.8 640 182.1 640 186.3999999999999M552.1 203.1999999999999C552.1 223.1999999999999 564.4 231.6 575.5 231.6C586.4 231.6 598 223.1999999999999 598 203.1999999999999H552.1zM439.2000000000001 267.8C421.8000000000001 267.8 410.6 259.5999999999999 404.4000000000001 253.8999999999999L402.1 264.8999999999999H363V60.0999999999999L407.4 69.4999999999999L407.5 119.6999999999999C413.9 114.9999999999999 423.4 108.4999999999999 438.9 108.4999999999999C470.7 108.4999999999999 499.7 131.6999999999999 499.7 188.0999999999999C499.8 239.6999999999999 470.4 267.7999999999999 439.2 267.7999999999999M428.6 145.2999999999999C418.2 145.2999999999999 412 149.0999999999999 407.7 153.6999999999999L407.4 219.6999999999999C412 224.7999999999999 418.4 228.4999999999999 428.6 228.4999999999999C444.8 228.4999999999999 455.9999999999999 210.2999999999999 455.9999999999999 187.0999999999999C456.1 163.1999999999999 445.1 145.2999999999999 428.6 145.2999999999999M346.4 324V287.8L301.8 278.3V314.5L346.4 324M301.9 264.8H346.5V111.6H301.9V264.8zM254.1 251.7C264.5 270.8 285.2 266.9 291.2 264.8V224C285.5 225.8 267.8 228.5 257.3 214.7V111.6H213V264.8H251.4L254.1 251.7M165.1 264.8H198.8V227H165.1V163.8C165.1 137.6 193.1 145.8 198.8 148.1V114.3C192.9 111.1 182.2 108.4 167.6 108.4C141.3 108.4 121.5 125.4 121.5 151.7000000000001L121.7 294.1L165 303.3000000000001L165.1 264.8000000000001zM44.9 219.7C44.9 199.7 112.8 209.2 112.8 156.3C112.8 124.3 87.4 108.5 50.5 108.5C35.2 108.5 18.5 111.5 2 118.6V158.6C16.9 150.5 35.9 144.4 50.6 144.4C60.5 144.4 67.6 147.1 67.6 155.3C67.6 176.5 0.1 168.5 0.1 217.7C0.1 249.1 24.1 267.9000000000001 60.1 267.9000000000001C74.8 267.9000000000001 89.5 265.6 104.2 259.8000000000001V218C90.7 225.3 73.5 229.4 60 229.4C50.7 229.3 44.9 226.6 44.9 219.7" /> + <glyph glyph-name="studiovinari" + unicode="" + horiz-adv-x="512" d=" M480.3 260.3L484.5 232.3V204.3L459.4 160.2L419.6 81.8L363.5 14.3L284.4 -23.5000000000001L266.7 -48.0000000000001L259 -60.0000000000001L249.4 -64S266.7 -0.4 268.8 -0.4C270.9000000000001 -0.4 289.1 -1.1 289.1 -1.1L355.8 37.5000000000001L263.3 11.4L207.4 -25.4L184.6 -53.4L178 -54.8L198.8 18.8000000000001L205.7 24.3000000000001L226.4 11.4000000000001L314.7 56.6000000000001L371.5 108.1000000000001L386.3 176.5000000000001L260.9 153.2000000000001L276.1 171.4000000000001L102.7 224.7000000000001L184.6 235.2000000000001L18.6 358.1000000000002L133.5 340L32.2 448L285.1 321.4L253.6 359.4L378 285L234.7 384L253.4 345.6L203.8 363.7L158.3 448L352.9 326L310 381.8L418 285.4L430 294.3L409 310.7L413.2 348.5L451 358.9L480.2 334.2L491.7 330L484.7 323.8L493.2 311.8L480.1 304.4L469.8 284.2000000000001L480.3 260.3z" /> + <glyph glyph-name="stumbleupon-circle" + unicode="" + horiz-adv-x="496" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 262.5C246.2 262.5 238.2 254.5 238.2 244.7V137.8C238.2 96.9 204.3 63.9 163.3 63.9C121.9 63.9 88.4 97.4 88.4 138.8V185.3H145.7V139.5C145.7 129.5 153.7 121.6999999999999 163.5 121.6999999999999S181.3 129.5999999999999 181.3 139.5V247.9C181.3 287.9 215.5 320 256 320C296.7 320 330.7 287.7 330.7 247.4V223.7L296.6 213.6L273.7 224.3V244.9C273.8 254.5 265.8 262.5 256 262.5zM423.6 138.9C423.6 97.5 390.1 64 348.7000000000001 64C307.5000000000001 64 273.8000000000001 97.2 273.8000000000001 138.2V185L296.7000000000001 174.3L330.8000000000001 184.4V137.3C330.8000000000001 127.5 338.8000000000001 119.7 348.6000000000001 119.7S366.4000000000001 127.6 366.4000000000001 137.3V185.3H423.7000000000001C423.6000000000001 139.4 423.6000000000001 138.9 423.6000000000001 138.9z" /> + <glyph glyph-name="stumbleupon" + unicode="" + horiz-adv-x="512" d=" M502.9 182V112.3C502.9 50.2 452.6 -0.1 390.5 -0.1C328.7 -0.1 278.1 49.7 278.1 111.2V181.4L312.4000000000001 165.4L363.5000000000001 180.6V110C363.5000000000001 95.3 375.5000000000001 83.5 390.2000000000001 83.5S417 95.3 417 110V182H502.9zM278.2 240.2L312.5 224.2L363.6 239.4V275C363.6 335.5 312.5 384 251.5000000000001 384C190.7000000000001 384 139.4 335.8 139.4 275.8V113.4C139.4 98.5 127.4 86.7 112.7 86.7S86 98.5 86 113.4V182H0V112.3C0 50.3 50.3 0 112.4 0C174 0 224.8 49.5 224.8 110.8V271.1C224.8 285.8 236.8 297.8 251.5 297.8S278.2 285.8 278.2 271.1V240.2z" /> + <glyph glyph-name="superpowers" + unicode="" + horiz-adv-x="448" d=" M448 416C364.7 405 281.2 394 198 383C106 370.5 34.7 296.3 29 203C25.7 147.5 47 93.5 86.8 54.8L0 -32C83.3 -21 166.5 -10 249.8 1C341.6 13.5 413.1 87.8 418.5 180.8C422 236.3 400.5 290.3 360.8 329L448 416zM368.3 183.7C364.1 104.2 294.3 44.5 215.5 49.2C136 53.9 74.8 120.2 79.2 200.2C83.7 279.4 153.5 339.5 232.2 334.7C311.5 330 372.7 263.7 368.3 183.7z" /> + <glyph glyph-name="supple" + unicode="" + horiz-adv-x="640" d=" M640 185.5C640 121.4 531 69.4 396.5 69.4C371.7 69.4 347.9 71.2 325.4 74.4C333.1 74 340.9 73.8 348.8 73.8C483.3 73.8 592.3 130.6999999999999 592.3 200.9C592.3 230.3 573.1999999999999 257.3 541.0999999999999 278.9C601.0999999999999 257.8 639.9999999999999 223.8 639.9999999999999 185.5zM47.7 220.1C47.6 290.3 156.5 347.4 291 347.7C298.9 347.7 306.6 347.5 314.3 347.2C291.8 350.4 268 352.1 243.3 352.1C108.8 351.7 -0.1 299.5 0 235.4C0.1 197.1 39.1 163.1 99.3 142.1C67 163.6 47.8 190.7000000000001 47.7 220.1zM107.9 180.2S118.4 167 137.2 167C155.1 167 165.6 178.5 165.6 192.1C165.6 220.1 125.4 217.2 125.4 231.8C125.4 237.2 130.7 240.9 137.9 240.9C143.6 240.9 149.2000000000001 238.3 149.2000000000001 234.3V230.4H163.4V238.3C163.4 250.4 148 255.1 138 255.1C121.5 255.1 109.5 244.9000000000001 109.5 231.0000000000001C109.5 204.4 149.7000000000001 205.6 149.7000000000001 191.1C149.7000000000001 184.5 143.9 181 137.4 181C125.5 181 116.7 191.1 116.7 191.1L107.9 180.2000000000001zM228.7 253.8V199.4C228.7 188.1 221.6 181.6 210.9 181.6C200.2 181.6 193.1 188.1 193.1 199.3V253.8H177.3V198.8C177.3 179.9 190.7 166.9 211 166.9C231.1 166.9 244.4 179.9 244.4 198.8V253.8H228.7zM263.1 168.4H278.9V197.9H294.4C310.4 197.9 321.6 209.4 321.6 226S310.4 253.8 294.4 253.8H255.3V240.4H263.1V168.4zM278.9 211.4V240.5H291.8C300.5 240.5 305.5 234.8 305.5 226.1C305.5 217.2 300.3999999999999 211.4 291.5 211.4H278.8999999999999zM335.9 168.4H351.7V197.9H367.2C383.2 197.9 394.4 209.4 394.4 226S383.2 253.8 367.2 253.8H328.1V240.4H335.9V168.4zM351.6 211.4V240.5H364.5C373.2 240.5 378.2 234.8 378.2 226.1C378.2 217.2 373.2 211.4 364.2 211.4H351.5999999999999zM408.7 176.6C408.7 170.8 411.1 168.4 416.9 168.4H454.5C460.3 168.4 462.7 170.8 462.7 176.6V189.6H448.4V184.4C448.4 182.7 447.4 181.8 445.8 181.8H427.2C425.5 181.8 424.5999999999999 182.8 424.5999999999999 184.4V245.6C424.5999999999999 251.3 422.2 253.8 416.3999999999999 253.8H401V240.4H406.2C407.9 240.4 408.8 239.4 408.8 237.8V176.6zM472.1 176.6C472.1 170.8 474.4999999999999 168.4 480.3 168.4H519C524.7 168.4 527.2 170.8 527.2 176.6V189.6H512.9000000000001V184.4C512.9000000000001 182.7 511.9000000000001 181.8 510.3000000000001 181.8H490.6000000000001C488.9000000000001 181.8 488.0000000000001 182.8 488.0000000000001 184.4V204.7H515.7V218.1H488V240.5H507.2C508.9 240.5 509.8 239.5 509.8 237.9V232.7H524V245.7C524 251.4 521.5 253.9 515.8 253.9H464.1999999999999V240.5H471.9999999999999V176.6zM531 252.6V246.7H532.6V252.6H535.3000000000001V253.8H528.3000000000001V252.6H531.0000000000001zM536.7 253.8V246.7H538.2V252.4L540.5 246.7H541.8L544.0999999999999 252.4V246.7H545.5999999999999V253.8H543.3L541.1999999999999 248.7L539.0999999999999 253.8H536.6999999999999z" /> + <glyph glyph-name="teamspeak" + unicode="" + horiz-adv-x="511.8" d=" M0.82 210.18C3.18 225.7 11.51 237.22 25.7 244.21C29.2 246.06 31.35 247.71 32.07 252.02C38.24 285.43 51.6 315.9600000000001 71.44 343.61C73.8 346.8 75.45 348.9600000000001 72.47 352.9600000000001C68.77 358.31 71.44 363.14 75.45 367.45C103.51 399.32 137.33 422.55 177.43 434.89C273.24 464.29 357.53 444.24 429.8 374.44C436.48 368.07 445.32 361.5900000000001 436.79 350.08C435.4500000000001 348.23 437.82 346.58 438.9500000000001 345.04C459.6100000000001 316.98 473.1800000000001 285.62 479.35 251.39C480.17 247.69 482.33 246.35 485.21 245.02C502.58 236.18 510.91 221.68 511.22 202.77C511.22 185.6 513.07 168.23 510.1900000000001 151.06C506.1800000000001 126.39 481.0000000000001 109.32 456.9400000000001 114.36C449.7400000000001 116 447.5900000000001 121.56 447.5900000000001 128.55C447.5900000000001 156.61 448.4100000000001 184.99 447.5900000000001 213.15C445.74 288.9100000000001 411.4100000000001 345.9600000000001 345.3100000000001 382.56C234.28 443.02 92.11 375.58 67.54 251.09C61.48 220.67 65.8 202.82 63.84 125.27C63.53 118.07 59.52 114.07 51.81 113.76C20.97 112.42 0 131.95 0 162.79V183.66M221.74 76.85C233.56 81.17 241.79 88.67 244.25 101.21C246.61 113.55 232.22 131.23 211.87 149.9400000000001C191 169.1600000000001 163.65 189.0000000000001 148.44 196.5100000000001C126.75 208.5400000000001 106.7 198.3600000000001 102.18 173.7900000000001C97.14 147.5800000000001 102.18 122.3900000000001 116.67 99.8800000000001C126.85 84.3600000000001 142.06 77.1600000000001 160.05 75.8300000000001C171.67 75.2100000000001 212.59 73.6700000000001 221.74 76.8500000000001M351.5700000000001 71.3000000000001C388.0700000000001 68.4900000000001 410.9000000000001 99.8500000000001 409.9600000000001 131.7500000000001C407.8200000000001 176.9200000000001 343.79 148.2300000000001 322.17 139.7700000000001C249.01 111.6300000000001 277.12 84.85 299.9700000000001 79.02M449.23 80.35C446.25 82.71 442.0300000000001 81.38 440.9000000000001 77.99C432.8800000000001 52.6 396.1800000000001 -34.47 268.8200000000001 -43.52C119.1500000000001 -54.01 349.1100000000001 -87.11 414.1800000000001 -37.15C436.9000000000001 -19.78 461.7800000000001 -2.1 460.7500000000001 48.28C460.4300000000001 58.35 455.9100000000001 75 449.2300000000001 80.35" /> + <glyph glyph-name="telegram-plane" + unicode="" + horiz-adv-x="448" d=" M446.7 349.4L379.1 30.6C374 8.1 360.7000000000001 2.5 341.8 13.1L238.8 89L189.1 41.2C183.6 35.7 179 31.1 168.4 31.1L175.8000000000001 136L366.7000000000001 308.5C375.0000000000001 315.9 364.9000000000001 320 353.8000000000001 312.6L117.8 164L16.2 195.8C-5.9 202.7 -6.3 217.9 20.8 228.5L418.2 381.6C436.6 388.5 452.7 377.5 446.7 349.4z" /> + <glyph glyph-name="telegram" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM369.8 270.1L329.1 78.3C326.1 64.6999999999999 318 61.4 306.7000000000001 67.8L244.7000000000001 113.5L214.8000000000001 84.6999999999999C211.5 81.3999999999999 208.7000000000001 78.5999999999999 202.3000000000001 78.5999999999999L206.7000000000001 141.6999999999999L321.6 245.5C326.6 249.9 320.5 252.4 313.9000000000001 248L171.9 158.5999999999999L110.7 177.6999999999999C97.4 181.8999999999999 97.1 191 113.5 197.3999999999999L352.6 289.5999999999999C363.7000000000001 293.5999999999999 373.4000000000001 286.8999999999999 369.8 270.0999999999999z" /> + <glyph glyph-name="tencent-weibo" + unicode="" + horiz-adv-x="384" d=" M72.3 -47.8C73.7 -67.7 44.7 -70 42.6 -50.7C31 79.2 73.7 188.8 144 262.5C128.4 296.5 153.2 339.6 194.6 339.6C224.9 339.6 249.7 315 249.7 284.5C249.7 240.5 200.2 213.7 162.8 239.4C97.1 168.1 61.4 69.6 72.3 -47.8zM192 447.9C66.1 447.9 -12.3 313.7 43.7 205.6C52.4 188.2 79 201.1 70 219C23.7 311.6 91 418.2 192 418.2C267.4 418.2 328.9 356.8 328.9 281.3C328.9 190.5 242 127.4 161.2 148.2C142.1 152.3 135.6 123.8 154.6 119.1C265.3 95.9 358.6 179.1 358.6 281.4C358.6 373.3 284 447.9 192 447.9z" /> + <glyph glyph-name="the-red-yeti" + unicode="" + horiz-adv-x="505.07" d=" M484.41 206.26L505.0700000000001 199.13C495.51 223.04 481.14 236.09 473.35 243.89L480.48 262.09C480.73 262.09 492.76 289.88 478.02 292.83C477.39 304.18 471.4300000000001 319.88 459.58 319.88C451.96 330.45 441.8700000000001 332.18 428.8400000000001 325.78C419.99 321.6 411.1300000000001 315.7 403.5100000000001 309.3C398.2100000000001 315.74 400.5600000000001 308.92 400.5600000000001 339.06C363.4800000000001 363.3400000000001 355.1600000000001 350.79 325.8000000000001 336.11L326.2900000000001 335.62C305.1400000000001 343.24 282.2700000000001 347.67 257.9300000000001 348.9000000000001C252.3800000000001 357.61 239.3300000000001 368 232.8500000000001 373.98L257.6900000000001 366.85C252.2000000000001 372.3400000000001 230.9100000000001 379.76 223.5100000000001 382.1C241.7100000000001 386.2100000000001 253.2900000000001 402.87 266.0500000000001 415.05C231.1300000000001 425.13 198.1800000000001 420.9500000000001 168.1700000000001 403.25L179.97 447.52L178.24 448C146.64 423.84 145.25 406.1 144.55 402.51C143.64 404.9 138.23 422.12 129.3 429.56C125.86 420.71 125.86 412.35 128.81 404.23C131.76 395.87 134.71 389.4700000000001 137.17 385.29C121.13 388.5900000000001 108.82 390.19 87.99 385.29H84.3L117.25 371.03C96.59 351.6 81.35 329.2200000000001 70.53 303.65L68.81 295.29L70.53 293.5700000000001L78.15 298.24C74.82 286.6 72.88 278.85 71.51 272.42C60.2 259.63 51.1 246.35 43.72 232.0900000000001C28.75 231.0900000000001 11.9 221.31 3.39 217.8300000000001L6.34 214.3900000000001L35.11 213.4100000000001C34.62 212.4300000000001 34.37 211.2000000000001 33.88 210.2100000000001C26.59 203.8300000000001 -5.9 172.5600000000001 0.93 129.5500000000001L21.1 151.9300000000001C21.59 150.21 21.84 148.4900000000001 22.33 146.7700000000001C22.33 121.24 22.7 57.1300000000001 87.25 -3.73C131.03 -43.83 183.41 -63.9999999999999 244.89 -63.9999999999999C366.62 -63.9999999999999 467.94 23.2900000000001 467.94 147.4900000000001C474.74 157.2100000000001 466.7 144.4600000000001 484.66 172.5700000000001L497.6899999999999 158.3100000000001L500.1499999999999 158.8000000000001C498.4299999999999 170.1100000000001 495.4799999999999 181.1800000000001 491.2999999999999 192.9800000000001C489.0799999999999 199.3800000000001 486.6199999999999 203.3100000000001 484.4099999999999 206.2600000000001zM468.92 247.58L454.66 259.38L472.86 260.61L468.92 247.58zM394.1600000000001 336.85L393.67 314.96C399.19 296.83 410.55 297.75 416.05 297.75L412.61 302.42L434.99 307.83C424.9100000000001 307.3399999999999 416.05 307.3399999999999 407.94 307.83C420.75 309.9599999999999 441.26 336.86 450.98 319.14C454.42 311.52 457.37 301.93 460.32 291.35L462.04 297.25C460.81 301.43 460.32 306.59 460.32 312.5C465.73 312.01 469.17 309.06 469.66 302.42C470.15 296.03 471.38 287.66 473.1 277.09L477.77 288.4C482.36 288.4 482.24 292.01 475.31 267.74C454.42 276.44 440.2200000000001 276.1 428.83 276.1L447.03 292.08C421.75 283.93 414 281.28 392.19 271.18C391.11 276.5899999999999 387.2099999999999 284.68 376.2099999999999 291.1C373.0299999999999 287.28 373.45 290.2 375.4699999999999 276.34H373.01C371.7799999999999 284.7 368.83 292.32 364.6499999999999 299.46L368.83 302.9C377.19 310.03 380.63 317.16 379.3999999999999 324.79C378.9099999999999 331.18 373.9899999999999 338.32 365.87 345.45C371.53 348.65 381.12 345.7 394.16 336.85zM354.5700000000001 346.93C357.2600000000001 345.01 365.9700000000001 341.55 373.5100000000001 329.72C377.7100000000001 321.32 377.4900000000001 319.91 376.9500000000001 318.65C376.4700000000001 316.24 376.4900000000001 314.32 374.0000000000001 311.52C372.2800000000001 309.06 368.5900000000001 306.85 362.2000000000001 303.9C354.5800000000001 316.93 345.7200000000001 327.51 334.4100000000001 335.13L354.5700000000001 346.93zM87.25 304.88L88.48 306.6C89.71 309.55 92.66 314.2200000000001 97.82 321.85L100.28 325.29L87.25 312.99L92.66 317.66L82.58 308.32L78.4 307.09C90.7 331.19 101.52 348.4 110.86 357.26C120.2 366.6 126.84 373.24 131.03 376.69L124.64 375.46C113.33 379.64 105.21 382.59 99.8 383.82C102.26 384.31 103.49 384.31 103 384.31C113.33 384.31 120.46 383.82 123.9 383.08C129.31 381.36 134.47 380.62 139.88 380.62L140.37 382.34L132.0100000000001 418.24L145.5400000000001 389.22C147.2600000000001 391.68 149.7200000000001 396.35 151.4400000000001 403.48C153.1600000000001 409.87 156.8500000000001 416.51 161.5200000000001 422.91C166.1900000000001 429.3 169.1400000000001 433.48 170.8600000000001 434.22C167.9100000000001 425.37 166.1900000000001 417.01 164.4700000000001 408.89L162.7500000000001 401.76L162.2600000000001 397.09L164.7200000000001 394.63C186.6100000000001 408.16 210.2100000000001 414.06 236.0400000000001 413.57L257.1900000000001 413.08C245.3900000000001 399.55 229.4000000000001 391.19 208.7400000000001 388.24C200.1300000000001 386.76 192.5100000000001 385.78 185.3800000000001 385.29L185.1300000000001 385.78L182.6700000000001 387.01C177.5100000000001 387.99 172.8300000000001 387.26 168.65 385.04C166.19 385.29 163.7300000000001 385.53 161.5200000000001 385.78L159.06 384.06L159.5500000000001 382.83C161.5200000000001 382.58 163.4800000000001 382.34 165.7000000000001 382.09L163.7300000000001 378.65L167.1700000000001 379.14L156.6000000000001 367.83C152.4200000000001 364.88 151.1900000000001 361.44 152.4200000000001 358.49L157.8300000000001 361.93H159.06C165.45 370.29 174.31 375.46 184.3900000000001 377.18V380.13C190.78 379.64 197.4200000000001 379.15 203.8200000000001 378.9C210.21 378.9 212.1800000000001 378.41 209.2300000000001 377.67C216.8500000000001 373.49 223.4900000000001 368.82 229.8900000000001 364.14C243.4200000000001 354.06 253.5000000000001 342.25 259.8900000000001 328.73C268.7400000000001 310.53 273.42 291.6 273.42 272.17C273.42 262.0899999999999 272.19 252.74 270.4700000000001 243.89C268.12 233.1 262.67 214.27 254.4900000000001 197.9L256.9500000000001 197.41C275.1800000000001 217.0799999999999 298.85 213.3899999999999 306.1300000000001 213.3899999999999L299.7400000000001 207.4899999999999L322.1200000000001 189.7799999999999L320.4000000000001 159.0399999999999C314.99 171.3399999999999 303.92 180.1899999999999 287.4500000000001 186.8299999999999C303.9300000000001 172.0699999999999 311.0600000000001 165.68 309.3400000000001 166.6599999999999C304.5300000000001 169.4699999999999 305.8100000000001 168.5299999999999 298.5200000000001 170.3499999999999C302.6400000000001 166.2299999999999 315.9700000000001 151.5599999999999 316.7200000000001 149.6899999999999L316.9700000000001 149.4399999999999L316.7200000000001 149.1899999999999C316.7200000000001 147.4299999999999 318.2800000000001 150.3699999999999 302.7000000000001 126.3199999999999C227.5500000000001 141.6299999999999 196.4400000000001 169.0599999999999 161.5400000000001 189.5199999999999L173.3400000000001 188.2899999999999C161.5900000000001 206.8199999999999 157.7100000000001 206.0099999999999 134.9800000000001 214.3599999999999L145.5500000000001 222.7199999999999C136.7000000000001 225.6699999999999 127.3500000000001 225.6699999999999 117.2700000000001 222.2299999999999L124.8900000000001 232.7999999999999L123.6600000000001 234.5199999999999C108.7700000000001 230.1799999999999 103.8100000000001 225.3499999999999 101.0400000000001 223.2099999999998C99.9000000000001 228.6699999999999 98.2700000000001 235.6499999999999 88.7400000000001 251.9799999999999L87.5100000000001 224.9299999999998L73.9800000000001 230.3399999999999C75.4500000000001 255.4499999999998 79.3800000000001 280.7799999999999 87.2500000000001 304.8799999999998zM363.6600000000001 -25.15C313.74 -50.11 307.5300000000001 -47.56 304.6400000000001 -49C274.8800000000001 -37.2 253.7400000000001 -17.28 241.1900000000001 9.77L271.1900000000001 -6.71C261.4200000000001 2.6 252.8500000000001 9.83 232.8300000000001 37.5599999999999L244.6300000000001 14.4399999999999L226.9200000000001 22.0599999999999C241.1200000000001 0.98 250.3900000000001 -29.6800000000001 293.5600000000001 -51.47C172.7900000000001 -75.62 94.5300000000001 20.64 92.6500000000001 22.8C103.9600000000001 13.46 115.7700000000001 5.09 128.0600000000001 -2.04C131.5000000000001 -3.76 135.1900000000001 -4.5 138.1400000000001 -3.27L122.1600000000001 17.39C131.3900000000001 13.2 131.6500000000001 12.89 191.2600000000001 -11.63C148.7200000000001 9.03 117.4800000000001 29.19 98.0600000000001 48.62C97.5700000000001 42.23 96.83 38.54 96.83 38.54C105.68 30.92 112.8100000000001 22.06 117.4900000000001 11.98C78.44 30.83 59.9 59.59 46.17 94.61C96.0600000000001 39.51 165.0200000000001 57.12 166.6700000000001 57.48C201.46 41.05 236.5400000000001 33.87 280.5300000000001 46.91C283.85 46.91 300.8300000000001 29.93 305.86 7.81L310.04 10.76L307.5800000000001 34.37C316.5300000000001 25.42 332.48 11.81 342.0100000000001 21.34C326.4300000000001 26.66 318.4900000000001 30.83 312.5000000000001 53.0600000000001C317.0800000000001 48.8600000000001 320.0700000000001 44.0100000000001 340.2900000000001 38.0600000000001L341.5200000000001 39.2900000000001L330.9500000000001 53.5500000000001C342.6000000000001 58.4000000000001 327.4100000000001 52.5400000000001 362.9200000000001 64.3700000000001C367.2600000000001 30.14 371.9700000000001 15.2200000000001 363.6600000000001 -25.1499999999999zM479 189.29L476.54 188.8L479.49 179.46C475.94 173.59 455.76 135.2000000000001 407.93 99.78C368.39 70.02 331.35 60.65 327.02 59.4500000000001L319.4 66.58L318.17 63.6300000000001L332.43 47.65L325.3 52.3200000000001L328.74 48.14H327.51L305.62 61.67L314.9599999999999 35.11L296.0199999999999 62.9L294.7899999999999 60.4400000000001L302.4099999999999 31.4200000000001C296.2999999999999 39.6600000000001 281.3799999999999 64.0300000000001 245.5999999999999 71.0100000000001L278.0599999999999 49.8600000000001C246.0899999999999 45.1900000000001 214.8599999999999 47.4000000000002 184.8599999999999 56.2500000000001C180.6799999999999 57.4800000000001 176.0099999999999 58.7100000000001 171.3299999999999 60.4300000000001L172.5599999999999 63.3800000000001L127.7999999999999 85.7600000000001L153.8699999999999 63.3800000000001C96.2099999999999 54.3000000000001 40.9099999999999 88.7900000000001 27.4699999999999 146.7500000000001L25.0099999999999 163.2300000000001L2.6599999999999 140.8500000000001C22.1299999999999 198.3600000000001 28.2699999999999 198.7400000000001 54.0599999999999 210.9400000000002C44.9699999999999 216.2700000000002 52.5099999999999 214.2000000000001 15.6999999999999 220.2800000000002C31.4799999999999 226.0700000000002 48.7499999999999 235.7200000000002 88.7399999999999 215.1200000000002C91.6899999999999 216.6000000000001 90.8799999999999 216.2200000000002 92.4299999999999 216.8400000000002C93.0699999999999 220.0200000000002 92.8399999999999 217.6600000000002 93.4099999999999 228.6400000000002C97.2999999999999 218.6300000000002 97.0399999999999 219.9700000000002 96.3599999999999 219.3000000000002L98.0799999999999 218.8100000000002C110.7699999999999 225.3000000000002 106.9999999999999 223.3300000000002 115.0499999999999 227.6600000000002L109.6399999999999 214.1300000000002L132.0199999999999 220.0300000000002L123.6599999999999 211.6700000000001L126.1199999999999 209.2100000000001C130.6199999999999 211.0100000000001 156.4699999999999 205.7900000000001 166.9399999999999 193.2300000000001L143.3299999999999 195.6900000000002C182.7199999999999 172.7100000000002 194.7899999999999 141.7200000000002 199.1499999999999 126.1000000000001L200.8699999999999 127.3300000000002C198.0299999999999 149.6100000000001 188.4999999999999 161.2100000000002 184.8899999999999 167.4100000000002C189.1099999999999 162.4200000000001 224.0899999999999 132.8500000000001 295.3099999999999 121.4200000000001C283.9999999999999 121.9100000000002 272.1899999999999 116.0100000000001 260.3899999999999 102.4800000000001L307.1099999999999 122.6500000000002L297.7699999999999 100.7600000000002C305.39 110.8400000000002 312.5299999999999 124.3700000000002 318.9199999999999 140.3500000000001V140.8400000000002L320.1499999999999 143.7900000000001L318.9199999999999 127.8100000000001C332.4499999999999 169.6200000000001 344.2499999999999 206.2600000000001 354.33 237.4900000000001L367.8599999999999 265.2800000000001V267.2500000000001L362.4499999999999 271.4300000000001H372.5299999999999L378.4299999999999 267.2500000000001L380.8899999999998 268.4800000000002L377.4499999999998 284.4600000000001L389.7499999999999 265.5200000000001L431.5599999999999 285.6900000000001L416.7999999999999 272.6600000000001L417.2899999999999 269.7100000000002L434.9999999999999 270.2000000000002C446.3099999999999 269.7100000000002 456.8899999999998 268.4800000000002 467.9499999999998 266.0200000000001L444.3399999999998 263.5600000000001L443.1099999999998 260.6100000000002L469.6699999999998 237.4900000000001C479.7499999999998 227.4100000000001 488.6099999999998 216.8300000000001 496.7199999999998 205.5200000000001C485.4799999999998 208.8100000000001 486.4399999999998 208.9600000000001 475.5699999999998 208.9600000000001L487.8699999999998 176.5000000000001L478.9999999999998 189.2900000000001zM201.11 278.3200000000001C166.26 263.9000000000001 166.38 264.3400000000001 164.96 264.0600000000001C144.13 259.3300000000001 145.99 288.5 146.02 288.9000000000001L151.92 290.13L151.43 292.5900000000001C131.26 295.24 120.4 288.4200000000001 118.97 287.6700000000001C119.46 287.1800000000001 121.92 284.23 124.87 278.3300000000001C129.05 284.7200000000001 133.72 288.4100000000001 140.12 288.9000000000001C138.4 277.5900000000001 138.89 266.5200000000001 141.84 255.2100000000001C141.91 254.7000000000001 144.41 237.7700000000001 169.38 231.1100000000001C180.69 228.1600000000001 196.43 229.8800000000001 218.32 236.5200000000001L208.98 236.0300000000001C204.8 250.79 202.59 260.87 203.08 265.54C214.39 274.39 224.97 276.85 233.82 273.1600000000001H236.28L224.48 280.7800000000001L217.35 280.29C211.45 279.0600000000001 205.05 276.11 197.92 271.93L201.11 278.32zM212.18 365.13L209.72 364.6400000000001L210.21 361.6900000000001C218.57 362.18 227.42 360.4600000000001 236.28 355.79C233.78 361.3300000000001 226.31 370.05 208 370.05L208.49 367.5900000000001L212.18 365.1300000000001zM145.04 309.0600000000001C141 315.4100000000001 141.95 314.11 140.37 315.7000000000001C162.06 298.9400000000001 156.85 294.29 186.85 292.0900000000001L183.9 296.76C192.75 304.38 197.43 313.9700000000001 198.66 325.04C200.38 341.0200000000001 197.43 354.55 189.81 366.35L202.84 373.9700000000001C202.84 374.4600000000001 202.84 375.2000000000001 202.35 375.6900000000001C197.68 377.4100000000001 193.01 376.92 188.82 373.9700000000001C176.14 367.3 160.83 353.0300000000001 159.8 351.5900000000001C158.08 349.87 156.36 345.6900000000001 154.39 338.0600000000001C152.67 330.9300000000001 151.44 323.3 151.44 314.4500000000001C146.76 322.4100000000001 140.92 320.85 131.5200000000001 320.35L138.65 312.73C122.18 312.73 115.3300000000001 297.3000000000001 115.04 296.7500000000001C121.85 296.7600000000001 119.64 304.35 145.04 309.0600000000001zM159.06 334.3900000000001C160.29 342.0100000000001 162.5 347.42 165.45 351.6C170.86 357.99 176.02 361.68 181.43 363.4000000000001C185.61 365.12 188.56 362.17 191.51 354.06C193.97 346.44 194.95 337.5800000000001 194.46 328.73C193.97 319.39 191.02 311.52 186.1 305.61C183.15 302.17 180.69 299.7100000000001 179.71 297.99C175.0400000000001 297.5 171.35 297.99 168.4 298.48L161.2700000000001 301.92L155.8600000000001 308.31C156.8500000000001 318.4 157.34 327.25 159.06 334.39zM221.7700000000001 355.7800000000001C215.3800000000001 359.2200000000001 211.2000000000001 352.8300000000001 209.47 336.8400000000001S211.93 307.3300000000001 221.2700000000001 297.25C230.6100000000001 287.17 239.4700000000001 286.6800000000001 247.3400000000001 294.3000000000001C255.2100000000001 301.9200000000001 250.7800000000001 317.9100000000001 236.0300000000001 342.0100000000001C232.8400000000001 347.4200000000001 228.1600000000001 352.0900000000001 221.7700000000001 355.7800000000001zM217.1000000000001 309.5500000000001C222.4600000000001 307.3200000000001 227.6100000000001 307.6400000000001 229.4000000000001 320.12V324.79L228.1700000000001 324.3000000000001C223.8900000000001 327.35 225.6200000000001 328.79 226.4500000000001 330.4500000000001L226.9400000000001 330.9400000000001C226.0600000000001 332.1700000000001 221.9200000000001 339.0500000000001 214.4000000000001 326.2700000000001C213.9100000000001 339.8000000000001 214.8900000000001 348.1600000000001 217.3500000000001 351.11C218.5800000000001 353.5700000000001 222.0200000000001 352.3400000000001 228.6600000000001 346.9300000000001C235.0500000000001 341.5200000000001 239.9700000000001 330.9500000000001 243.9100000000001 314.4700000000001C250.5000000000001 286.4100000000001 224.2100000000001 288.2100000000001 217.1000000000001 309.5500000000001zM172.0900000000001 314.9600000000001C173.6600000000001 314.6500000000001 181.4300000000001 316.0500000000001 181.4300000000001 329.7200000000001H180.9400000000001C175.5000000000001 330.8100000000001 178.7000000000001 335.1900000000001 180.2000000000001 335.6200000000001C178.4800000000001 338.5700000000001 176.7600000000001 339.8000000000001 174.7900000000001 340.2900000000001C166.6400000000001 340.2900000000001 163.1400000000001 327.6300000000001 166.6700000000001 319.1400000000001C167.9100000000001 316.6800000000001 169.8800000000001 315.4500000000001 172.09 314.9600000000001zM218.0800000000001 253.4800000000001C219.8000000000001 242.9100000000001 222.7500000000001 235.7700000000001 226.9300000000001 231.5900000000001C217.6700000000001 224.98 199.3900000000001 217.7400000000001 180.4500000000001 215.6100000000001L180.9400000000001 214.3800000000001C189.3000000000001 213.1500000000001 197.4200000000001 213.8900000000001 205.7800000000001 216.8400000000001L198.6500000000001 203.8100000000001C202.8300000000001 205.5300000000001 208.7300000000001 210.9400000000001 216.3600000000001 218.5700000000001C228.2900000000001 224.0800000000001 229.0800000000001 223.6400000000001 236.5300000000001 234.5500000000001C223.8000000000001 241.1300000000001 220.7700000000001 248.3800000000001 218.0800000000001 253.4800000000001z" /> + <glyph glyph-name="themeco" + unicode="" + horiz-adv-x="441.03" d=" M199.74 435.71C209.48 441.35 225.33 441.44 235.13 435.92L423.26 329.9700000000001C433.07 324.45 441.02 310.83 441.02 299.5900000000001V85.72C441.02 74.46 433.09 60.83 423.31 55.2600000000001L235.09 -51.88C225.31 -57.45 209.51 -57.36 199.8 -51.67L17.58 55.05C7.87 60.74 0 74.48 0 85.73V299.5900000000001C0 310.85 7.9 324.55 17.63 330.18L199.74 435.71zM123.54 239C107.85 239 92.15 238.86 76.46 238.86V138.99H95.29V168.38H123.54C172.48 168.38 172.33 239 123.54 239zM261.5 140.27L231.25 174.37C267.65 181.76 265.51 238.58 220.55 238.86C204.71 238.86 188.88 239 173.04 239V138.99H191.87V172.37H210L239.1 138.99H261.5V140.27zM220.56 221.31C243.54 221.31 243.46 189.35 220.56 189.35H191.88V221.31H220.56zM126.49 222.88C147.34 222.88 147.27 184.64 126.49 184.64H94.68V222.87L126.49 222.88zM316.14 240.85C248.74 240.85 246.28 136.7 316.14 136.7C384.53 136.71 384.47 240.85 316.14 240.85zM316.14 223.73C359.57 223.73 360.24 153.97 316.14 153.97C272.02 153.97 272.4 223.73 316.14 223.73z" /> + <glyph glyph-name="themeisle" + unicode="" + horiz-adv-x="512" d=" M208 359.714C208 369.714 214.286 381.428 225.715 381.428C236.857 381.428 243.429 369.714 243.429 359.714C243.429 349.429 236.857 338 225.715 338C214.286 338 208 349.429 208 359.714zM512 199.714C512 163.713 500.571 97.428 475.714 70C452.856 45.142 388.286 8.857 354.857 -0.572L353.714 -0.858V-33.429C353.714 -49.715 341.142 -64 324.5710000000001 -64C314.5710000000001 -64 305.1420000000001 -58.286 299.999 -49.714C294.572 -58.286 285.1430000000001 -64 275.1430000000001 -64C265.1430000000001 -64 255.7140000000001 -58.286 250.2850000000001 -49.714C245.1430000000001 -58.286 235.7140000000001 -64 225.7150000000001 -64C215.429 -64 206.286 -58.286 200.857 -49.714C195.714 -58.286 186.286 -64 176.286 -64C157.429 -64 146.857 -48.286 146.857 -31.143C130.571 -43.4280000000001 111.142 -50.571 90.286 -50.571C68.286 -50.571 46.857 -42.286 30 -27.7140000000001C40.285 -27.4280000000001 50.571 -25.4280000000001 60.285 -22.0000000000001C39.428 -16.2860000000001 20.857 -3.143 8.285 14.2859999999999C29.655 9.641 54.494 12.6129999999999 75.428 25.429C53.428 47.429 18.857 84.286 6.856 112.857C1.143 126.286 0 144.286 0 158.571C0 208.285 20.286 318.5710000000001 86.286 318.5710000000001C96.857 318.5710000000001 105.143 313.713 109.429 303.7140000000001A158.792 158.792 0 0 0 121.429 319.1420000000001C123.429 321.7140000000001 127.143 324.5710000000001 128.572 327.428C136.571 339.999 140.286 348.5700000000001 150.286 361.428C182.571 402.572 232 430.857 285.143 430.857C291.143 430.857 297.143 430.572 302.857 429.714C313.714 441.429 328.8570000000001 448 344.572 448C359.1430000000001 448 374.286 442 384.572 431.714C385.4290000000001 430.856 386 429.428 386 428.286C386 424.572 375.715 414.857 373.1430000000001 412C377.4290000000001 410.5710000000001 388.8570000000001 405.142 388.8570000000001 400C388.8570000000001 397.1430000000001 386 394.857 384.286 392.857C415.715 365.1430000000001 433.7150000000001 325.714 440.572 284.857C444.858 290 450.857 293.429 457.715 293.429C468.2860000000001 293.429 478.572 286.285 486.2860000000001 279.428C507.143 260.857 512 226.286 512 199.714zM188 358.572C188 340.286 200.571 321.429 220.286 321.429C240 321.429 252.571 340.286 252.571 358.572C252.571 376.572 240 395.429 220.286 395.429C200.571 395.429 188 376.5710000000001 188 358.572zM237.714 254C237.714 273.714 241.428 293.1430000000001 246.285 312.286C194.246 232.752 232.754 127.715 315.1430000000001 127.715C336.5710000000001 127.715 357.7140000000001 135.429 375.1430000000001 147.715C377.1430000000001 155.144 378.8570000000001 162.572 378.8570000000001 170.287C378.8570000000001 184.573 372.5710000000001 191.715 358.2850000000001 191.715C353.714 191.715 349.1420000000001 190.858 344.8560000000001 190.001C281.5130000000001 177.333 237.7140000000001 186.3320000000001 237.7140000000001 254.0000000000001zM196.572 -0.858C196.572 10.285 187.714 19.999 176.286 19.999C164.857 19.999 156.286 10.284 156.286 -0.8579999999999V-33.429C156.286 -44.572 164.857 -54.571 176.286 -54.571C187.714 -54.571 196.572 -44.856 196.572 -33.429V-0.8579999999999zM245.715 -0.858C245.715 10.285 237.143 19.999 225.715 19.999C214.286 19.999 205.429 10.284 205.429 -0.8579999999999V-33.429C205.429 -44.572 214.286 -54.571 225.715 -54.571C237.143 -54.571 245.715 -44.571 245.715 -33.429V-0.8579999999999zM295.428 -0.858C295.428 10.285 286.5710000000001 19.999 275.143 19.999C263.714 19.999 254.857 10.284 254.857 -0.8579999999999V-33.429C254.857 -44.572 263.714 -54.571 275.143 -54.571C286.571 -54.571 295.428 -44.856 295.428 -33.429V-0.8579999999999zM345.1430000000001 -0.858C345.1430000000001 10.285 336.2860000000001 19.999 324.8570000000001 19.999C313.4290000000001 19.999 304.5710000000001 10.284 304.5710000000001 -0.8579999999999V-33.429C304.5710000000001 -44.572 313.4290000000001 -54.571 324.8570000000001 -54.571C336.286 -54.571 345.1430000000001 -44.571 345.1430000000001 -33.429V-0.8579999999999zM421.714 162C390.857 102.858 331.429 59.428 263.1430000000001 59.428C166.572 59.428 102.572 144 102.572 236C102.572 252.857 104.572 269.429 108.572 285.714C88.572 251.999 78.858 213.142 78.858 174.285C78.858 113.999 103.715 52.5699999999999 150.287 13.428C155.43 23.142 165.144 29.714 176.287 29.714C186.287 29.714 195.715 24 200.858 15.428C206.287 23.999 215.429 29.714 225.7160000000001 29.714C235.7160000000001 29.714 245.1440000000001 24 250.2870000000001 15.428C255.7160000000001 23.999 265.144 29.714 275.1450000000001 29.714C285.1450000000001 29.714 294.5730000000001 24 300.0020000000001 15.428C305.1450000000001 23.999 314.5730000000001 29.714 324.5740000000001 29.714C335.4310000000001 29.714 345.4310000000001 23.142 350.2880000000001 13.714C393.7150000000001 50 418.8570000000001 105.714 421.7140000000001 162zM432.286 261.714C432.286 315.428 397.7150000000001 367.428 339.714 367.428C309.429 367.428 281.1430000000001 352.285 260.857 330.5710000000001C240.862 264.188 233.41 194 302.286 194C331.091 194 399.6430000000001 222.538 386.572 157.143C415.429 183.143 432.286 222.857 432.286 261.7140000000001z" /> + <glyph glyph-name="trade-federation" + unicode="" + horiz-adv-x="496" d=" M202.45 339.58V257.9700000000001H38.94L87.16 196.06H201.89V-0.69H266.5V195.04H349.77V257.73H266.59V276.9H412.21V339.5800000000001H202.45zM207.31 333.58H405.0800000000001V282.9H259.44V251.97H342.62V201.04H259.36V5.31H206.63V202.06H89.86L49.91 251.97H207.31V333.58zM247.99 439.2C111.03 439.2 0 328.17 0 191.2S111.03 -56.8 247.99 -56.8S496 54.24 496 191.2S384.96 439.2 247.99 439.2zM248.01 425.96C377.67 425.96 482.77 320.8400000000001 482.77 191.18S377.67 -43.58 248.01 -43.58S13.23 61.53 13.23 191.19S118.35 425.96 248.01 425.96zM248.01 418.07C122.71 418.07 21.12 316.5 21.12 191.2S122.71 -35.69 248.01 -35.69S474.88 65.9 474.88 191.2S373.31 418.07 248.01 418.07zM247.99 404.77C365.94 404.77 461.55 309.15 461.55 191.21S365.93 -22.35 247.99 -22.35S34.43 73.25 34.43 191.2S130.04 404.77 247.99 404.77zM174.67 299.9700000000001L190.33 281.92L168.17 291.37L155.84 270.9L157.99 294.89L134.71 300.29L158.19 305.66L156.13 329.4700000000001L168.5 308.8L190.51 318.12L174.67 299.9700000000001zM127.53 346.51L135.54 334.11L148.23 339.97L138.91 328.52L148.41 318.27L134.64 323.59L127.82 311.39L128.63 326.13L114.92 328.84L129.19 332.62L127.53 346.51zM378.3 270.92L390.29 251.36L411.17 260.47L396.2700000000001 243.02L411.3800000000001 225.98L390.1800000000001 234.76L378.6400000000001 215.12L380.4400000000001 237.99L358.2000000000001 242.89L380.5100000000001 248.2500000000001L378.3000000000001 270.92zM271.25 172.47L285.11 175.69L283.8300000000001 189.86L291.1800000000001 177.68L304.2600000000001 183.27L294.9500000000001 172.52L304.3100000000001 161.81L291.2100000000001 167.35L283.92 155.1400000000001L285.1400000000001 169.3100000000001L271.2500000000001 172.4700000000001zM145.82 165.97L169.55 169.84L167.82 194.37L178.83 172.99L201.62 182.21L184.69 165.13L200.5 146.3L179.03 157.12L166.01 136.26L169.67 160.03L145.82 165.97zM209.26 331.63V250.02H54.16L90.88 204.01H208.58V7.26H257.4V202.99H340.67V250.02H257.4V284.85H403.13V331.63H209.26zM220.12 320.43H391.92V296.07H246.88V239.84H329.81V215.9H246.88V18.48H220.12V215.9H96.31L76.22 239.84H220.12V320.43z" /> + <glyph glyph-name="trello" + unicode="" + horiz-adv-x="448" d=" M392 416H56C25.1 416 0 390.9 0 360V24C0 -6.9 25.1 -32 56 -32H392C422.9 -32 448 -6.9 448 24V360C448 390.9 422.9 416 392 416zM194.9 76.6C194.9 61.8 182.9 49.7 168 49.7H85.1C70.3 49.7 58.2 61.7000000000001 58.2 76.6V330.9C58.2 345.7 70.2 357.8 85.1 357.8H168C182.8 357.8 194.9 345.8 194.9 330.9V76.6zM389.8 188.6C389.8 173.8 377.8 161.7000000000001 362.9000000000001 161.7000000000001H280C265.2 161.7000000000001 253.1 173.7000000000001 253.1 188.6V330.9C253.1 345.7 265.1 357.8 280 357.8H362.9C377.7 357.8 389.8 345.8 389.8 330.9V188.6z" /> + <glyph glyph-name="tripadvisor" + unicode="" + horiz-adv-x="576" d=" M166.4 167.479C166.4 154.243 155.67 143.513 142.434 143.513S118.468 154.243 118.468 167.479S129.198 191.445 142.434 191.445S166.4 180.716 166.4 167.479zM431.362 191.435C418.132 191.435 407.406 180.71 407.406 167.479C407.406 154.249 418.131 143.523 431.362 143.523C444.592 143.523 455.318 154.248 455.318 167.479C455.317 180.71 444.592 191.435 431.362 191.435zM520.75 51.945C458.083 2.841 367.474 13.836 318.371 76.504L287.392 30.179L256.709 76.1180000000001C208.432 15.7280000000001 121.087 4.227 58.824 50.063C-5.234 97.2210000000001 -18.935 187.379 28.223 251.4370000000001A186.76199999999997 186.76199999999997 0 0 1 0 308.584L90.286 308.634A358.48 358.48 0 0 0 287.351 362.664A350.382 350.382 0 0 0 479.532 309.3150000000001L575.75 309.241A185.71300000000002 185.71300000000002 0 0 1 547.398 251.592C594.191 188.845 582.3620000000001 100.222 520.75 51.9450000000001zM259.366 166.239C259.359 229.796 207.831 281.314 144.274 281.307C80.717 281.3 29.2 229.772 29.206 166.215C29.213 102.658 80.741 51.14 144.298 51.147C207.811 51.222 259.282 102.686 259.366 166.199V166.239zM287.957 176.694C293.39 250.134 353.467 307.578 427.077 309.716A339.146 339.146 0 0 1 287.35 337.528A356.31 356.31 0 0 1 147.186 310.275C221.53 308.693 282.485 250.851 287.957 176.694zM539.663 205.461C517.671 265.095 451.501 295.6089999999999 391.8680000000001 273.618C332.2340000000001 251.626 301.7200000000001 185.4559999999999 323.7110000000001 125.823V125.791C345.7490000000001 66.184 411.9090000000001 35.7 471.5380000000001 57.678C531.153 79.682 561.6510000000001 145.84 539.663 205.461zM213.624 167.4859999999999V167.3709999999999C213.567 128.0429999999999 181.638 96.2079999999999 142.31 96.2649999999999C102.982 96.322 71.147 128.2509999999999 71.204 167.579C71.261 206.907 103.19 238.742 142.518 238.685C181.7770000000001 238.569 213.56 206.745 213.624 167.4859999999999zM189.112 167.4859999999999V167.5699999999999C189.061 193.3539999999999 168.118 214.215 142.334 214.1639999999999C116.5500000000001 214.113 95.689 193.1699999999999 95.74 167.387C95.791 141.603 116.734 120.742 142.5170000000001 120.793C168.2430000000001 120.906 189.0540000000001 141.761 189.1120000000001 167.4859999999999zM502.535 167.4859999999999V167.4379999999999C502.515 128.1099999999999 470.617 96.2439999999999 431.288 96.2649999999999S360.094 128.1829999999999 360.115 167.512C360.135 206.84 392.033 238.706 431.362 238.685C470.652 238.619 502.483 206.776 502.535 167.4859999999999zM478.031 167.4939999999999C478.022 193.2779999999999 457.113 214.1729999999999 431.329 214.1639999999999C405.545 214.155 384.65 193.2459999999999 384.659 167.4619999999999C384.668 141.678 405.577 120.7839999999999 431.361 120.7919999999999C457.126 120.8379999999999 477.997 141.7199999999999 478.031 167.4849999999999V167.4939999999999z" /> + <glyph glyph-name="tumblr-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM317.7 51.8C309.2 42.7 286.5 32 256.8 32C181.3 32 164.9 87.5 164.9 119.9V209.9H135.2C131.8 209.9 129 212.7 129 216.1V258.6C129 263.1 131.8000000000001 267.1 136.1 268.6C174.9 282.3 187 316.1 188.8 341.8C189.3 348.7 192.9 352 198.8 352H243.1C246.5000000000001 352 249.3 349.2 249.3 345.8V273.8H301.2C304.6 273.8 307.4 271 307.4 267.6V216.5C307.4 213.1 304.6 210.3 301.2 210.3H249.1V127C249.1 105.6 263.9 93.5 291.6 104.6C294.6 105.8 297.2000000000001 106.6 299.6 106C301.8 105.5 303.2000000000001 103.9 304.2000000000001 101.1L318.0000000000001 60.9C319.0000000000001 57.7000000000001 320.0000000000001 54.2 317.7000000000001 51.8z" /> + <glyph glyph-name="tumblr" + unicode="" + horiz-adv-x="320" d=" M309.8 -32.3C296.2 -46.8 259.8 -64 212.4 -64C91.6 -64 65.4 24.8 65.4 76.6V220.6H17.9C12.4 220.6 7.9 225.1 7.9 230.6V298.6C7.9 305.8 12.4 312.2000000000001 19.2 314.6C81.2 336.4000000000001 100.7 390.6 103.5 431.7000000000001C104.3 442.7000000000001 110 448 119.6 448H190.5C196 448 200.5 443.5 200.5 438V322.8H283.5C289 322.8 293.5 318.4 293.5 312.9V231.2C293.5 225.7 289 221.2 283.5 221.2H200.1V88C200.1 53.8 223.8 34.4 268.1 52.2C272.9000000000001 54.1 277.1 55.4 280.8 54.4C284.3 53.5 286.6 51 288.2 46.5L310.2 -17.8C312 -22.8 313.5 -28.4 309.8 -32.3z" /> + <glyph glyph-name="twitch" + unicode="" + horiz-adv-x="448" d=" M40.1 416L10 339.1V24.8H117V-32H177.2L234 24.8H321L438 141.8V416H40.1zM397.9000000000001 161.9L331 95H224L167.2 38.2V95H76.9V375.9H397.9V161.9zM331 299V182.1H290.9V299H331zM224 299V182.1H183.9V299H224z" /> + <glyph glyph-name="twitter-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM351.1 257.2C351.3 254.4 351.3 251.5 351.3 248.7C351.3 162 285.3 62.1 164.7 62.1C127.5 62.1 93 72.9 64 91.5C69.3 90.9 74.4 90.7 79.8 90.7C110.5 90.7 138.7 101.1 161.2 118.7C132.4 119.3 108.2 138.2 99.9 164.2C110 162.7 119.1 162.7 129.5 165.4C99.5 171.5 77 197.9 77 229.8V230.6C85.7 225.7 95.9 222.7 106.6 222.3A65.447 65.447 0 0 0 77.4 276.9C77.4 289.1 80.6 300.3 86.3 310C118.6 270.2 167.1 244.2 221.5 241.4C212.2 285.9 245.5 322 285.5 322C304.4 322 321.4 314.1 333.4 301.3C348.2 304.1 362.4 309.6 375 317.1C370.1 301.9 359.8 289.1 346.2 281C359.4 282.4 372.2 286.1 384 291.2C375.1 278.1 363.9 266.5 351.1 257.2z" /> + <glyph glyph-name="twitter" + unicode="" + horiz-adv-x="512" d=" M459.37 296.284C459.695 291.736 459.695 287.187 459.695 282.639C459.695 143.919 354.112 -15.919 161.137 -15.919C101.685 -15.919 46.457 1.3 0 31.187C8.447 30.213 16.568 29.888 25.34 29.888C74.395 29.888 119.553 46.456 155.614 74.72C109.482 75.6950000000001 70.822 105.908 57.502 147.492C64 146.518 70.497 145.868 77.32 145.868C86.741 145.868 96.163 147.168 104.934 149.441C56.853 159.188 20.791 201.421 20.791 252.426V253.725C34.76 245.928 51.005 241.055 68.222 240.406C39.958 259.249 21.441 291.411 21.441 327.7970000000001C21.441 347.289 26.638 365.1570000000001 35.735 380.751C87.39 317.076 165.035 275.493 252.1 270.944C250.4760000000001 278.741 249.5010000000001 286.862 249.5010000000001 294.9840000000001C249.5010000000001 352.812 296.283 399.918 354.4350000000001 399.918C384.6480000000001 399.918 411.9370000000001 387.248 431.1050000000001 366.781C454.8200000000001 371.329 477.5610000000001 380.101 497.7040000000001 392.121C489.9060000000001 367.755 473.3380000000001 347.288 451.5720000000001 334.294C472.6890000000001 336.567 493.1560000000001 342.416 511.998 350.5370000000001C497.7060000000001 329.746 479.837 311.2290000000001 459.3700000000001 296.284z" /> + <glyph glyph-name="typo3" + unicode="" + horiz-adv-x="433.3" d=" M330.8 107C323.8 104.7 319.2 104.7 312.3 104.7C255.1 104.7 171.7 303.2 171.7 369.6C171.7 394.3 177.1 402 185.6 409C116.1 400.5 36.3 375 9.3 342.6C3.9 334.9 0 321.8 0 305.5C0 202 106.8 -32 184.1 -32C220.4 -32 281.4 27.5 330.8 107M294.5 416C366.3 416 433.3 404.4 433.3 363.5C433.3 280.9 380.8 181.2 354.5 181.2C306.6 181.2 252.8 313.3 252.8 379.7C252.8 410.6 264.4000000000001 416 294.5 416" /> + <glyph glyph-name="uber" + unicode="" + horiz-adv-x="448" d=" M414.1 416H33.9C15.2 416 0 400.8 0 382.1V2C0 -16.8 15.2 -32 33.9 -32H414C432.7 -32 447.9 -16.8 447.9 1.9V382.1C448 400.8 432.8 416 414.1 416zM237.6 56.9C163 49.4 96.4 103.8 88.9 178.4H183.3V158C183.3 154.3 186.3 151.2 190.1 151.2H258C261.7 151.2 264.8 154.2 264.8 158V225.9C264.8 229.6 261.8 232.7 258 232.7H190.1C186.4 232.7 183.3 229.7 183.3 225.9V205.5H88.9C95.9 274.9 154.3 327.7 224 327.7C293.7 327.7 352.1 274.9 359.1 205.5C366.6 131 312.2000000000001 64.4 237.6 56.9z" /> + <glyph glyph-name="uikit" + unicode="" + horiz-adv-x="448" d=" M443.9 320V64L218 -64L0 64V278.3L87.6 233.2V116.2000000000001L221.1 40.7L356.9 116.2000000000001V267.2000000000001L255.8 324.8000000000001L343.4 377.9000000000001L443.9 320zM308.6 398.9L223.8 448L135.2 393.2L221.2 345.9L308.6 398.9z" /> + <glyph glyph-name="uniregistry" + unicode="" + horiz-adv-x="384" d=" M281.1 227.9H384V242.7H281.1V227.9zM281.1 265H384V277.4H281.1V265zM281.1 190.8H384V208.1H281.1V190.8zM123.4 104.1H8.5C11.1 95.6 14.3 87.3 18.1 79.3H156.4C143.5 85 132.3 93.5 123.4 104.1M269.1 116.5H378.8C380.6 123.8 381.9000000000001 131.2 382.7 138.8H278.3C276.2 130.9 273.1 123.4 269.1 116.5M227.6 79.4H367C370.7 87.4 372.8 95.6 375.5 104.2H260.5C251.7 93.5 240.4 85 227.6 79.4M384 416H281.1V413.5H384V416zM192 -32C231.5 -32 268.2 -20.2 298.8 0.2H85.3C115.8 -20.2 152.5 -32 192 -32M281.1 302.2H384V312H281.1V302.2zM281.1 339.3H384V346.7H281.1V339.3zM281.1 376.4H384V381.3H281.1V376.4zM102.9 277.4H0V265H102.9V277.4zM38.8 42.3H344.1C350.8 50.8 356.7000000000001 59.9 361.9000000000001 69.5H23C28.2 59.9 32.2 50.8 38.8 42.3M102.9 161.1V173.5H0V161.1C0 158.6 0 156.1 0.1 153.7000000000001H103.2C103 156.1 102.9 158.6 102.9 161.1M281.1 161.1C281.1 158.6 281 156.1 280.7 153.7000000000001H383.8C383.9 156.2000000000001 384 158.6 384 161.1V173.5H281.1V161.1zM78.1 5.1H305.8C317.6 13.8 328.5 23.7 338 34.8H44.9C54.5 23.8 66.3 13.8 78.1 5.1M102.9 381.3H0V376.4H102.9V381.3zM102.9 416H0V413.5H102.9V416zM102.9 242.7H0V227.9H102.9V242.7zM102.9 208.1H0V190.8H102.9V208.1zM102.9 312H0V302.1H102.9V312zM102.9 346.7H0V339.3H102.9V346.7zM105.7 138.8H1.3C2.2 131.2 3.5 123.8 5.2 116.5H114.9C110.9 123.4 107.7 130.9 105.7 138.8" /> + <glyph glyph-name="untappd" + unicode="" + horiz-adv-x="640" d=" M401.3 398.1C321.5 238 316.7000000000001 245.6 313.4 224.9L308.2 192.1C306.3 180.1 301.6 168.6 294.5 158.7000000000001L145.6 -49.1C138 -59.7 125.2 -65.3000000000001 112.2 -63.7C71.9 -58.7 34.4 -31.5000000000001 16.9 4.8C11.2 16.6 12.4 30.6 20 41.1999999999999L168.9 249.1C176 259 185.3 267.0999999999999 196.1 272.8L225.4 288.3C243.9 298.0999999999999 235.1 300.2 361 427.2C362 432 362 434.5 364.6 435.2C367.6 435.8999999999999 371.2000000000001 436.2 370.9000000000001 439.8L370.5000000000001 444.3999999999999C370.3000000000001 446.3 371.8000000000001 448 373.7000000000001 448C378.2000000000001 448.0999999999999 386.9000000000001 446.8 399.3000000000001 438C411.6000000000001 429.0999999999999 415.7000000000001 421.2 417.0000000000001 416.8999999999999C417.6000000000001 415.0999999999999 416.4000000000001 413.2 414.6000000000001 412.7L410.1000000000001 411.5999999999999C406.7000000000001 410.7 407.6000000000001 407.2 407.8000000000001 404.2C407.9000000000001 401.3999999999999 405.5000000000001 400.5999999999999 401.3000000000001 398.0999999999999zM230.1 411.6C233.5 410.7 232.6 407.2 232.4 404.2C232.2 401.5 234.5 400.7 238.8 398.2C246.7 382.3 254.1 367.7 261 354.2C261.7 352.9 263.3 352.7 264.3 353.7C275.5 365.7 288.9000000000001 379.9 304.8 396.3C306.1 397.7 306.2 399.8 304.9000000000001 401.2C296.9000000000001 409.4 288.4000000000001 418.1 279.3 427.3C278.3 432 278.3 434.6 275.7 435.3C272.7 436.1 269.1 436.3 269.4 439.9C269.7 443.2 270.8 448 266.6 448.1C262.1 448.2 253.4 447 241 438.1C228.7 429.2 224.6 421.3 223.3 417C221.9 412.8 226.9 412.4 230.1 411.6zM620 41.3L471.2 249.2C458 267.7 444.6 272.6 414.8 288.3C403.6 294.2 400.6 299.2 384.3 317.2C383.3 318.3 381.4000000000001 318.1 380.7 316.7C334.4 227.9 333.6 233.9 331.7 221.9C330 211.2 330.4 201.9 332 192.1C333.9 180.1 338.6 168.6 345.7 158.7L494.6 -49.2C502.2 -59.8000000000001 514.8000000000001 -65.4000000000001 527.7 -63.9C568 -59.0000000000001 605.7 -31.9 623.4000000000001 4.6999999999999C628.8000000000001 16.5999999999999 627.7 30.5999999999999 620.0000000000001 41.3z" /> + <glyph glyph-name="usb" + unicode="" + horiz-adv-x="640" d=" M641.5 192C641.5 188.9 639.8 185.9 637 184.5L547.9 131C546.5 130.2 545.1 129.6 543.4 129.6C542 129.6 540.3 129.9 538.9 130.7000000000001C536.1 132.4 534.4 135.2000000000001 534.4 138.5000000000001V174.1000000000001H295.7C321 134.5000000000001 336.2 67.2000000000001 365.3 67.2000000000001H392V94C392 99 395.9 102.9 400.9 102.9H490C495 102.9 498.9 99 498.9 94V4.9C498.9 -0.1 495 -4 490 -4H400.9C395.9 -4 392 -0.1 392 4.9V31.6H365.3C289.9 31.6 284.2000000000001 174.1 240.6 174.1H140.3C132.2 143.5 104.4 120.6 71.3 120.6C32 120.7 0 152.7 0 192S32 263.3 71.3 263.3C104.4 263.3 132.3 240.5 140.3 209.8C179.4 209.8 184.2 200.3 214.9 270.2000000000001C255 359.3 273 352.3 323.8 352.3C331.3 373.2 350.8 387.9 374.2 387.9C403.7 387.9 427.7 364 427.7 334.4S403.8 280.9 374.2 280.9C350.8 280.9 331.3 295.7000000000001 323.8 316.5H294C264.9 316.5 249.7 249.1 224.4 209.6H534.5V245.2C534.5 248.5 536.2 251.3 539 253C541.8 254.7 545.4 254.4 547.9 252.7L637 199.2C639.8 198.1 641.5 195.1 641.5 192z" /> + <glyph glyph-name="ussunnah" + unicode="" + horiz-adv-x="512" d=" M156.8 162.9L162.5 148.5H154.3C153 151.7 151.2 156.2 150.5 158C148 164.3 149.4 166.4 150.5 168C152.4 170.7 153.7 172.4 154.1 173.2C154.1 171 154.9 167.5 156.8 162.9zM454.1 144.1C452 130.3 448.4000000000001 117 443.6 104.4L486.6 81L441.8 99.8C436.5 86.6 429.8 74.2 421.9000000000001 62.6L456.1 32.4L419.3 58.8C410.9000000000001 47 401.3 36.2 390.6 26.5L415.5 -8.2L387.4 23.6C376.4 14 364.3 5.6 351.3 -1.5L367 -38.7L347.7 -3.4C334.5999999999999 -10.2 320.7 -15.5 306.0999999999999 -19.3L312.7999999999999 -57.6999999999999L302.2999999999999 -20.3C287.9999999999999 -23.6999999999999 273.0999999999999 -25.6 257.7999999999999 -25.6999999999999L256 -64L254.1 -25.6C238.8 -25.5 223.9 -23.6 209.6 -20.3L199 -57.6L205.7 -19.4C191.1 -15.7 177.1 -10.3 164 -3.6L144.8 -38.7L160.4 -1.7C147.4 5.3 135.2 13.6999999999999 124.2 23.4L96.3 -8.2L121 26.1999999999999C110.3 35.8999999999999 100.6 46.6999999999999 92.2 58.4999999999999L55.7 32.3L89.6 62.1999999999999C81.7 73.8 75 86.3 69.6 99.4999999999999L25.2 80.8L67.8 104C63 116.7 59.4 130.1 57.3 143.9L6.3 134.9L56.6 149.1C55.5 157.6 54.9 166.2 54.9 175C54.9 179.6999999999999 55.1 184.3999999999999 55.4 189.1L0 192L56 194.8C57.3 207.9 59.8 220.6 63.5 232.9L6.4 249L65.3 238.6C69.3 250.6 74.4 262.1 80.5 273L25.4 303L83.7 278.4C90 289 97.2 298.8 105.3 308L55.8 351.6L109.7 312.9C117.8 321.5 126.7 329.4 136.3 336.5L96.3 392.1L141.9 340.5C151.4 347.1 161.6 352.8 172.2 357.7L144.9 422.6L178.7 360.5C189.2 364.9 200.1 368.4 211.4 370.9L199 441.6L218.5 372.4C229.5 374.5 240.8 375.6 252.3 375.8L256 448L259.6 375.8C271.1 375.6 282.4000000000001 374.4 293.4000000000001 372.3L313 441.6L300.6 370.9C311.9000000000001 368.3 322.8 364.8 333.2000000000001 360.4L367.1 422.6L339.7000000000001 357.5C350.3000000000001 352.6 360.4000000000001 346.8 369.9000000000001 340.3L415.7000000000001 392.1L375.6 336.2C385.1 329.1 394 321.2 402.1 312.6L456.3 351.5L406.6 307.6C414.6 298.5 421.8 288.7 428.1 278.2L486.8 302.9L431.3 272.7C437.4000000000001 261.8 442.4000000000001 250.4 446.4000000000001 238.4L505.7 248.8L448.2000000000001 232.6C451.9 220.4 454.4 207.7 455.7 194.7L512 192L456 189.2C456.3 184.6 456.5 179.9 456.5 175.1C456.5 166.4 455.9 157.8 454.9 149.3L505.6 135L454.1 144.1zM432.3 175.1C432.3 272.6 353.3 351.6 255.8 351.6S79.3 272.6 79.3 175.1S158.3 -1.4 255.8 -1.4S432.3 77.6 432.3 175.1zM408.3 175.1C408.3 90.8 340 22.5 255.7 22.5S103.1 90.8 103.1 175.1S171.4 327.7000000000001 255.7 327.7000000000001S408.3 259.4000000000001 408.3 175.1zM195 207C195 204.9 196.3 203.2 198.6 201.9C201.9 200 204.8 197.3 206.8 193.7C209.6 199.4 211.1 203.2 211.1 204.9C211.1 207.1 210 209.3 207.9 211.9C205.8 214.4 204.7 217.1 204.6 219.6C198.1 212.8 195 208.7 195 207zM154.3 226C154.3 223.9 155.6 222.2 157.9 220.9C161.4 219 164.1 216.3 166.1 212.7C168.9 218.4 170.4 222.2 170.4 223.9C170.4 226.1 169.3 228.3 167.2 230.9C165.1 233.4 164 236.1 163.9 238.6C157.4 231.8 154.3 227.7 154.3 226zM135.3 226C135.3 223.9 136.6 222.2 138.9 220.9C142.2 219 145.1 216.3 147.1 212.7C149.9 218.4 151.4 222.2 151.4 223.9C151.4 226.1 150.3 228.3 148.2 230.9C146.1 233.4 145 236.1 144.9 238.6C138.5 231.8 135.3 227.7 135.3 226zM340.2000000000001 138.1C331.8000000000001 141.1 331.5000000000001 144.9 331.5000000000001 153.7000000000001V266C323.3000000000001 253.5 317.3000000000001 247.4 313.5000000000001 247.4C319.8000000000001 233 323.0000000000001 223.5 323.0000000000001 219.1V154.8C323.0000000000001 152.6 320.8000000000001 148.3 318.3000000000001 148.3H300.3000000000001C297.5000000000001 155.8 290.1000000000001 175.2 285.0000000000001 188.6C283.0000000000001 186.1 277.8000000000001 179.4 274.3000000000001 174.9C276.7000000000001 173.3 278.4000000000001 171.3 279.5000000000001 168.6C282.1000000000001 161.9 285.9000000000001 152.1 287.4000000000001 148.4H278.2000000000001C274.3000000000001 158.8 268.6 173.8 266.4000000000001 179.5000000000001C264.4000000000001 177.0000000000001 259.2000000000001 170.3000000000001 255.7000000000001 165.8000000000001C258.1 164.2000000000001 259.8000000000001 162.2000000000001 260.9000000000001 159.5000000000001C261.7000000000001 157.5000000000001 263.7000000000001 152.2000000000001 265.2000000000001 148.6000000000001H256C254.5 152.7000000000001 250.4 163.2000000000001 247.6 170.6000000000001C245.6 168.1000000000001 240.4 161.4000000000001 236.9 156.9000000000001C239.4 155.3000000000001 241.2 153.3000000000001 242.1 150.6000000000001C242.3 150.0000000000001 242.6 149.2000000000001 242.7 148.9000000000001H225C220.4 162.8000000000001 213.6 176.6000000000001 213.6 183.0000000000001C213.6 185.2000000000001 213.9 188.1000000000001 214.7 191.2000000000001C205.9 180.4000000000001 200.7 175.3000000000001 200.7 166.2000000000001C200.7 158.7000000000001 211.1 137.9000000000001 211.1 132.9000000000001C211.1 131.2000000000001 210.6 129.6000000000001 209.7 128.0000000000001C200.1 140.7000000000001 194.2 148.7000000000001 190.9 148.7000000000001H178.9L167.7 176.7000000000001C163.9 186.3000000000001 162 192.7000000000001 162 195.5000000000001C162 199.3000000000001 162.5 203.2000000000001 163.7 207.7000000000001C162.7 206.4000000000001 160 203.0000000000001 158.2 200.6000000000001C157.4 202.7000000000001 155.1 208.3000000000001 153.6 212.1000000000001C151.5 209.6000000000001 146.1 203.0000000000001 142.4 198.5000000000001C143.3 196.2000000000001 145.7 190.4000000000001 147.3 186.3000000000001C144.8 183.0000000000001 138.2 174.5000000000001 133.7 168.6000000000001C129.7 163.3000000000001 127.9 155.3000000000001 131 146.8000000000001C133.5 140.1000000000001 133 138.9000000000002 129.3000000000001 132.7000000000001H191C196.5 132.7000000000001 205.3 118.7000000000001 206.5 110.7000000000001C219.7 126.7000000000001 221.9 130.3000000000001 223.3 132.3000000000001H330.3C334.2 132.3000000000001 337.5 134.2000000000001 340.2 138.1000000000001zM360.3000000000001 164.7000000000001V266.3C351.3000000000001 253.8 344.4000000000001 247.7 339.6000000000001 247.7C346.7000000000001 233.3 350.3000000000001 223.8 350.3000000000001 219.4V153.1C350.3000000000001 135.6 358.9000000000001 132.7000000000001 374.3000000000001 132.7000000000001C382.4000000000001 132.7000000000001 386.8000000000001 133.5000000000001 388.0000000000001 135.4C383.7000000000001 137.0000000000001 380.4000000000001 137.9 378.1000000000001 138.7000000000001C370.0000000000001 141.9 360.3000000000001 146.1 360.3000000000001 164.7000000000001z" /> + <glyph glyph-name="vaadin" + unicode="" + horiz-adv-x="448" d=" M224.5 307.3C226 324.9 229.4 360 274.3 360H372.9C393.6 360 405 367.8 405 381.6V393.9C405 406.1 414.3 416 426.5 416S448 406.1 448 393.9V357.4C448 314.5 426.5 295.4 381.2 295.4H280.7C250.6 295.4 247.7 280.7000000000001 247.7 268.3C247.7 267 247.6 265.8 247.5 264.6C246.8 252.3 236.6 242.4000000000001 224.1 242.4000000000001S201.4 252.2000000000001 200.7 264.6C200.6 265.8 200.5 267 200.5 268.3C200.5 280.6 197.5 295.4 167.5 295.4H66.8C21.5 295.4 0 314.5 0 357.4V393.9C0 406.1 9.4 416 21.6 416S43.1 406.1 43.1 393.9V381.6C43.1 367.8 54.5 360 75.2 360H173.8C218.6 360 222.1 324.9 223.6 307.3H224.5zM224 -8C235.5 -8 245.4 -1 249.7 8.3C250.8 10.1 346.8 177.9 347.9 179.7000000000001C359.8 199.3000000000001 344.7 224.0000000000001 320.7 224.0000000000001C306.8 224.0000000000001 297.4 217.6000000000001 290.9 203.7000000000001L224 86L157.1 203.7C150.7 217.6 141.2 224 127.3 224C103.3 224 88.2 199.4 100.1 179.7C101.2 177.8 197.2 10.1 198.3 8.3C202.6 -1.0000000000001 212.5 -8.0000000000001 224 -8.0000000000001z" /> + <glyph glyph-name="viacoin" + unicode="" + horiz-adv-x="384" d=" M384 416H320L239.3 224H144.8L64 416H0L48 304H0V256H68.5L82.3 224H0V176H102.8L192 -32L281.2 176H384V224H301.7L315.5 256H384V304H336L384 416zM192 112L165 176H219L192 112z" /> + <glyph glyph-name="viadeo-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM280.7 66.8C238.3 20.6 160.7 20.2 118.3 66.8C50.3 140.4 98.5 262.9 199.5 262.9C212.8 262.9 226.1 260.8 238.6 256.2000000000001C234.3 247.8 231.3 238.6 230.2 229.1C220.5 233.2 210 235.1 199.5 235.1C150.7 235.1 114.9 193.4 114.9 146.2000000000001C114.9 103.2000000000001 143.4 67.5000000000001 184.4 60.3000000000001C245.9 84.3000000000001 257.3 177.9000000000001 257.3 235.3000000000001C257.3 242.6000000000001 257.3 250.1000000000001 256.7 257.4000000000001C245.5 290.3000000000001 230.1 322.0000000000001 212.5 351.9000000000001C239.6 333.6000000000001 254.4 289.4000000000001 256.7 257.8000000000001V257.4000000000001C264.4 234.9000000000001 268.5 211.2000000000001 268.5 187.4000000000001C268.5 133.3000000000001 246.6 88.4000000000001 200.2 59.2000000000001L197.8 59.0000000000001C247.8 58.0000000000001 284 97.6000000000001 284 146.2000000000001C284 158.4000000000001 281.9 170.5000000000001 277.1 181.9000000000001C286.6 183.8000000000001 295.6 187.5000000000001 303.5 192.4000000000001C318.8 155.8000000000001 316.1 105.1000000000001 280.7 66.8000000000001zM309 214.3C295.7 214.3 283.9 221.4 274.6 230.4C296.5 242.4 324.2000000000001 261.1 336.9000000000001 283.4C338.4000000000001 286.4 341.0000000000001 292 341.4000000000001 295.4C328.9000000000001 267.5 297.2000000000001 245.6 267.5 238.7C262.8 246 260 254.2 260 263C260 273.3 265.2 287.1 272.9 294.6C294.5 315.1 325.9 303.1 345.3 344.6C377.8 298.4 358.4 214.3 309 214.3z" /> + <glyph glyph-name="viadeo" + unicode="" + horiz-adv-x="448" d=" M276.2 297.5V296.8C258.3 349.4 233.6 400.2 205.4 448C248.7 418.8 272.4 348 276.2 297.5zM308.9 175.8C316.5 157.6 319.9 138.3 319.9 118.8C319.9 41.1 262.1 -22.2 182.1 -20.6L185.9 -20.3C260.1 26.4 295.2 98.3 295.2 184.8C295.2 222.9 288.7 260.7 276.3 296.8C277.3 285.1 277.3 273.1 277.3 261.4C277.3 169.6 259.2 19.8 160.7 -18.6C95 -7.2 49.4 50 49.4 118.8C49.4 194.4 106.8 261.1 184.8 261.1C201.6 261.1 218.5 258 233.9 251.5000000000001C235.6 266.6 240.4 281.4000000000001 247.3 294.8C227.4 302 206.1 305.5 184.8 305.5C23.3 305.5 -53.9 109.6 54.9 -8.2C122.8 -82.7999999999999 246.9 -82.1 314.7000000000001 -8.2C371.3000000000001 53.1 375.6 134.2000000000001 351.1 192.8C338.4000000000001 184.8 324 178.9 308.9000000000001 175.8zM418.1 436.3C387.1 369.8 336.8 389.1 302.3 356.2C289.9000000000001 344.2 281.7 322.2 281.7 305.7C281.7 291.6 286.2 278.6 293.7 266.9C341.1 277.9 392 312.9 411.9 357.6C411.2 352.1 407.1 343.2 404.7 338.4C384.4 302.7 340.1 272.8 305 253.5C319.8 239.1 338.7 227.7 360 227.7C439 227.7 470.1 362.3 418.1 436.3z" /> + <glyph glyph-name="viber" + unicode="" + horiz-adv-x="512" d=" M444 398.1C431.3 409.8 379.9 447.1 265.3 447.6C265.3 447.6 130.2 455.7 64.4 395.3C27.8 358.7 14.9 305 13.5 238.5C12.1 172 10.4 47.4 130.5 13.6H130.6L130.5 -38S129.7 -58.9 143.5 -63.1C160.1 -68.3000000000001 169.9 -52.4 185.8 -35.3C194.5 -25.9 206.5 -12.1 215.6 -1.6C297.8 -8.5 360.9000000000001 7.3 368.1 9.6C384.7000000000001 14.9999999999999 478.6 26.9999999999999 493.8 151.6C509.6 280.2 486.2 361.4 444 398.1zM457.9 161C445 57 368.9 50.4 354.9 45.9C348.9 44 293.4 30.2 223.7 34.7C223.7 34.7 171.7 -28 155.5 -44.3C150.2 -49.6 144.4 -49.1 144.5 -38.6C144.5 -31.7 144.9 47.1 144.9 47.1C144.8 47.1 144.8 47.1 144.9 47.1C43.1 75.3 49.1 181.4 50.2 236.9C51.3 292.4 61.8 337.9 92.8 368.5C148.5 419 263.2000000000001 411.5 263.2000000000001 411.5C360.1 411.1 406.5000000000001 381.9 417.3000000000001 372.1C453.0000000000001 341.5 471.2 268.3 457.9000000000001 161zM318.9 241.8C319.3 233.2 306.4 232.6 306 241.2C304.9 263.2000000000001 294.6 273.9000000000001 273.4 275.1C264.8 275.6 265.6 288.5 274.1 288C302 286.5 317.5 270.5 318.9 241.8zM339.2 230.5C340.2 272.9 313.7 306.1 263.4 309.8C254.9 310.4 255.8 323.3 264.3 322.7000000000001C322.3 318.5 353.2 278.6 352.1 230.2C352 221.6 339 222 339.2 230.5000000000001zM386.2 217.1C386.3 208.5 373.3 208.4 373.3 217C372.7 298.5 318.4000000000001 342.9 252.5 343.4C244 343.5 244 356.3 252.5 356.3C326.2 355.8 385.5 304.9 386.2 217.1zM374.9 119V118.8C364.1 99.8 343.9 78.8 323.1 85.5L322.9 85.8C301.8 91.7 252.1 117.3 220.7 142.3C204.5 155.1 189.7 170.2 178.3 184.7C168 197.6 157.6 212.9 147.5 231.3C126.2 269.8 121.5 287 121.5 287C114.8 307.8 135.7 328 154.8 338.8H155C164.1999999999999 343.6 173 342 178.9 334.9C178.9 334.9 191.3 320.1 196.5999999999999 312.8C201.5999999999999 306 208.2999999999999 295.1 211.7999999999999 289C217.8999999999999 278.1 214.0999999999999 267 208.0999999999999 262.4L196.0999999999999 252.8C190 247.9 190.7999999999999 238.8 190.7999999999999 238.8S208.5999999999999 171.5 275.0999999999999 154.5C275.0999999999999 154.5 284.2 153.7 289.0999999999999 159.8L298.7 171.8C303.3 177.8 314.3999999999999 181.6 325.3 175.5C340 167.2 358.7 154.3 371.1 142.6C378.1 136.9 379.7 128.2000000000001 374.9 119z" /> + <glyph glyph-name="vimeo-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM383.8 266.4C382.4000000000001 235.3 360.6 192.6 318.5 138.5C275 82 238.2 53.7 208.1 53.7C189.4 53.7 173.7 70.9 160.8 105.3C135.6 197.6 124.9 251.7 104.1 251.7C101.7 251.7 93.3 246.7 79 236.6L64 256C100.9 288.4 136.1 324.4 158.1 326.4C183 328.8 198.3 311.8 204.1 275.3C224.6 145.7000000000001 233.7 126.1 270.9 184.8C284.3 206 291.5 222 292.4 233.1C295.8 265.9000000000001 266.8 263.7000000000001 247.2 255.3C262.9 306.8 293 331.8 337.3 330.4C370.2 329.4 385.7 308 383.8 266.4z" /> + <glyph glyph-name="vimeo-v" + unicode="" + horiz-adv-x="448" d=" M447.8 294.4C445.8 250.8 415.4000000000001 191.1 356.4 115.3C295.5 36.1 244 -3.5 201.8 -3.5C175.7 -3.5 153.6 20.6 135.5 68.8C100.3 198 85.3 273.7 56.2 273.7C52.8 273.7 41.1 266.6 21 252.6L0 279.8C51.6 325.1 100.9 375.5 131.8 378.3C166.7 381.7000000000001 188.1 357.8 196.2 306.8C224.9 125.3 237.6 97.9 289.8 180.1C308.5 209.7 318.6 232.2 320 247.7C324.8 293.6 284.2 290.5 256.7 278.7000000000001C278.7 350.8 320.8 385.8 382.9 383.8C428.7 382.6 450.4 352.7000000000001 447.8 294.4z" /> + <glyph glyph-name="vimeo" + unicode="" + horiz-adv-x="448" d=" M403.2 416H44.8C20.1 416 0 395.9 0 371.2V12.8C0 -11.9 20.1 -32 44.8 -32H403.2C427.9 -32 448 -11.9 448 12.8V371.2C448 395.9 427.9 416 403.2 416zM377 267.2C375.6 235.7 353.6 192.5 311 137.8C267 80.6 229.7 51.9999999999999 199.3 51.9999999999999C180.4 51.9999999999999 164.5 69.3999999999999 151.4 104.3C125.9 197.6 115 252.3 94 252.3C91.6 252.3 83.1 247.2 68.6 237.1L53.4 256.7C90.7 289.5 126.3 325.9 148.6 327.9C173.8 330.3 189.3 313.1 195.1 276.2C215.8 145 225 125.1999999999999 262.7 184.6C276.2 206 283.5 222.3 284.5 233.5C288 266.7 258.6 264.4 238.7 255.9C254.6 308 285 333.3 329.9 331.9C363.2 331 378.9 309.4 377 267.2z" /> + <glyph glyph-name="vine" + unicode="" + horiz-adv-x="384" d=" M384 193.3V141.2C365.6 137 347.1 135.1 331.9 135.1C295 57.6999999999999 228.9 -8.7 206.8 -21.1C192.8 -29 179.7 -29.5 164.1 -20.3C137 -4 34.2 80.3 0 345.3H74.5C93.2 186.2 139 104.6 189.3 43.5C217.2 71.4 244.1 108.6 264.9 150.4C215.1 175.7 184.8 231.3 184.8 296C184.8 361.6 222.5 411.1 287 411.1C401.9 411.1 393.2 283.2 368.6 229.6C368.6 229.6 322.2000000000001 220.4 305.1 250.1C308.5 261.4 313.3 280.9 313.3 298.6C313.3 329.9 302 345.2 284.9000000000001 345.2C266.7000000000001 345.2 254.1 328.1 254.1 295.2C254.2 216 313.5 176.5 384 193.3z" /> + <glyph glyph-name="vk" + unicode="" + horiz-adv-x="576" d=" M545 330.3C548.7 342.8 545 352 527.2 352H468.3000000000001C453.3000000000001 352 446.4000000000001 344.1 442.7000000000001 335.3C442.7000000000001 335.3 412.7000000000001 262.2 370.3000000000001 214.8C356.6000000000001 201.1 350.3000000000001 196.7 342.8000000000001 196.7C339.1000000000001 196.7 333.4000000000001 201.1 333.4000000000001 213.6V330.3C333.4000000000001 345.3 329.2000000000001 352 316.8000000000001 352H224.2000000000001C214.8000000000001 352 209.2000000000001 345 209.2000000000001 338.5C209.2000000000001 324.3 230.4000000000001 321 232.6000000000001 281V194.2C232.6000000000001 175.2 229.2000000000001 171.7 221.7000000000001 171.7C201.7000000000001 171.7 153.1000000000001 245.1 124.3000000000001 329.1C118.5000000000001 345.4 112.8000000000001 352 97.7000000000001 352H38.8C22 352 18.6 344.1 18.6 335.3C18.6 319.7 38.6 242.2 111.7 139.8C160.4 69.9 229 32 291.4 32C328.9 32 333.5 40.4 333.5 54.9C333.5 121.7 330.1 128 348.9 128C357.6 128 372.6 123.6 407.6 89.9C447.6 49.9 454.2 32 476.6 32H535.5C552.3 32 560.8 40.4 555.9 57C544.6999999999999 91.9 469 163.7 465.6 168.5C456.9 179.7 459.4 184.7 465.6 194.7C465.7 194.8 537.5999999999999 296 545 330.3z" /> + <glyph glyph-name="vnv" + unicode="" + horiz-adv-x="640" d=" M104.9 96C70.8 96 58.5 126.4 58.5 126.4L2.6 237.9S-7.8 256 13 256H45.8C56.2 256 59 247.3 64.6 237.9L101.3 163.4S106.5 150.3 122.4 150.3S143.5 163.4 143.5 163.4L180.2 237.9C185.8 247.4 188.6 256 199 256H231.8C252.6 256 242.2 237.9 242.2 237.9L186.4 126.4S174.2 96 140 96H104.9zM499.9 96C465.8 96 453.5 126.4 453.5 126.4L397.6 237.9S387.2 256 408 256H440.8C451.2 256 454 247.3 459.6 237.9L496.3 163.4S501.5 150.3 517.4 150.3S538.5 163.4 538.5 163.4L575.3 237.9C580.9 247.4 583.6999999999999 256 594.0999999999999 256H627C647.8 256 637.4 237.9 637.4 237.9L581.5 126.4S569.3 96 535.1 96H499.9zM337.6 256C371.7000000000001 256 384 225.6 384 225.6L439.9 114.1S450.3 96 429.5 96H396.7C386.3 96 383.5 104.7 377.9 114.1L341.2 188.6S336 201.7 320.1 201.7C304.2 201.7 299 188.6 299 188.6L262.3 114.1C256.7 104.7000000000001 253.9 96 243.5 96H210.5999999999999C189.7999999999999 96 200.1999999999999 114.1 200.1999999999999 114.1L256.0999999999999 225.6S268.2999999999999 256 302.4999999999999 256H337.5999999999999z" /> + <glyph glyph-name="vuejs" + unicode="" + horiz-adv-x="448" d=" M356.9 383.7H280L224 295.1L176 383.7000000000001H0L224 0L448 383.7H356.9zM55.7 351.7H109.5L224 153.5L338.4 351.7H392.2L224 63.5L55.7 351.7z" /> + <glyph glyph-name="weebly" + unicode="" + horiz-adv-x="512" d=" M425.09 382.17C385.21 382.17 351.81 356.44 341.43 317.8400000000001C323.2699999999999 375.9 275.93 382.17 256.48 382.17C236.7 382.17 189.68 375.89 171.2 317.8400000000001C160.82 356.44 127.75 382.17 87.54 382.17C38.59 382.17 0 348.28 0 304.9700000000001C0 276.01 4.18 271.7 77.17 71.49C99.54 10.92 144.94 2.14 169.91 2.14C209.14 2.14 239.95 21.6 255.84 56.12C271.73 21.29 302.53 1.83 341.77 1.83C366.74 1.83 412.13 10.93 434.51 71.5C511.06 280.15 512.01 277.0800000000001 512.01 298.7C512.64 347.02 476 382.17 425.09 382.17zM451.4299999999999 267.36L385.86 90.92C377.94 69.43 364.64 53.7 339.62 53.7C316.18 53.7 302.24 66.1100000000001 295.5899999999999 87.6L256.31 205.0200000000001H255.36L216.08 87.6C209.12 66.1 195.18 54 172.06 54C147.04 54 133.73 69.74 125.82 91.22L60.88 266.45C55.5 281.28 52.96 290.36 52.96 300.95C52.96 317.29 68.8 330.31 91.29 330.31C109.98 330.31 123.28 318.51 127.4 301.26L171.43 161.44H172.38L217.04 298.23C223.06 317.9 233.51 330.31 256 330.31S288.94 318.2 294.96 298.23L339.62 161.44H340.57L384.6 301.26C388.7200000000001 318.51 402.0200000000001 330.31 420.7100000000001 330.31C442.8800000000001 330.31 459.04 316.99 459.04 294.6C458.72 286.73 454.92 278.56 451.43 267.36z" /> + <glyph glyph-name="weibo" + unicode="" + horiz-adv-x="512" d=" M407 270.4C414.6 294.4 393.6 317.2 369.6 312.1C347.6 307.3 340.8 340.2000000000001 362.5 344.9000000000001C412.6 355.8 454.8 307.8 439 260.1C432.2 238.9000000000001 400.2 249.3 407 270.4000000000001zM214.8 1.3C108.5 1.3 0 52.7 0 137.6C0 181.9 28 233.0000000000001 76.3 281.3C176 381 279.5 382.2 249.9 287C245.9 273.9 262.2 281.3 262.2 281C341.7 314.6 402.7 297.8 376.2 229.6C372.5 220.2 377.3 218.7 384.5 216.5C520.2 174.2 419.3 1.3 214.8 1.3zM358.5 147.6C353.1 203.3 280 241.6 195.1 233.3C110.3 224.7 46.3 173 51.7 117.3S130.2 23.3 215.1 31.6C299.9 40.2 363.9 91.9 358.5 147.6zM347.9 412.9C322 407.3 331.1 369.2 356.2 374.6C428.5 389.8 491 321.8 467.9 250.6C460.5 226.4 497 213.6 505.3 238.6C537.1999999999999 338.4 450.2 434.5 347.9 412.9zM269.4 101.9C252.3 63.1 202.6 41.9 160.3 55.6C119.5 68.7 102.3 108.9999999999999 120 145.3C137.7 180.6999999999999 183.1 200.7 223.4 190.4C265.4 179.6 286.5 140.2 269.4 101.9zM183.1 131.9C170.2 137.3 153.1 131.6 145.1 119C136.8 106.1 140.8 91 153.7 85C166.8 79 184.5 84.7 192.8 97.9C200.8 111 196.5 126.2 183.1 131.9zM215.7 145.3C210.6 147 204.3 144.6999999999999 201.4 139.9C198.5 134.8 200 129.3 205.0999999999999 127C210.1999999999999 125 216.7999999999999 127.3 219.6999999999999 132.4C222.5 137.6 220.7999999999999 143.3 215.6999999999999 145.3z" /> + <glyph glyph-name="weixin" + unicode="" + horiz-adv-x="576" d=" M385.2 280.4C391.6 280.4 397.8 280.1 404 279.3C387.4 357.7 303.3 416 207.7 416C100.5 416 13 343.2 13 250.6C13 197.2 42.3 153.1 90.9 119L71.6 60.4L139.6 94.5C164 89.7 183.4 84.8 207.8 84.8C214 84.8 219.9 85.1 226.1 85.6C222.1 98.5 219.9 112.2000000000001 219.9 126.4C219.8000000000001 211.3000000000001 292.8000000000001 280.4000000000001 385.2000000000001 280.4000000000001zM280.7 333.3C295.2 333.3 304.9 323.6 304.9 308.9C304.9 294.4 295.2 284.7000000000001 280.7 284.7000000000001C265.9 284.7000000000001 251.4 294.4 251.4 308.9C251.5 323.6 266 333.3 280.7 333.3zM144.3 284.7000000000001C129.8 284.7000000000001 115 294.4 115 308.9C115 323.7 129.8 333.3 144.3 333.3C159.1 333.3 168.7 323.6 168.7 308.9C168.7 294.3 159.1 284.7000000000001 144.3 284.7000000000001zM563 128.6C563 206.5 485.1 269.9000000000001 397.6 269.9000000000001C304.9000000000001 269.9000000000001 232.2 206.5 232.2 128.6S305 -12.7 397.6 -12.7C416.9000000000001 -12.7 436.5 -7.6 456.2 -2.8L509.6 -32.1L494.8 16.5C534 45.9 563 84.8 563 128.6zM343.9 153.1C334.2 153.1 324.6 162.8 324.6 172.7000000000001C324.6 182.4 334.3 192.0000000000001 343.9 192.0000000000001C358.7 192.0000000000001 368.3 182.3000000000001 368.3 172.7000000000001C368.3 162.7000000000001 358.6 153.1 343.9 153.1zM451 153.1C441.3 153.1 431.7 162.8 431.7 172.7000000000001C431.7 182.4 441.4 192.0000000000001 451 192.0000000000001C465.5 192.0000000000001 475.4 182.3000000000001 475.4 172.7000000000001C475.5 162.7000000000001 465.5 153.1 451 153.1z" /> + <glyph glyph-name="whatsapp-square" + unicode="" + horiz-adv-x="448" d=" M224 325.2C151.3 325.2 92.2 266.1 92.1 193.4C92.1 168.5 99.1 144.2 112.3 123.3L115.4 118.3L102.1 69.6999999999999L152 82.8L156.8 79.9C177 67.9 200.2 61.5 223.9 61.5H224C296.6 61.5 357.3 120.6 357.3 193.3C357.3 228.5 342.1 261.6 317.2 286.5C292.2 311.5 259.2 325.2 224 325.2zM301.5 136.8C298.2 127.5 282.4 119.1 274.8 118C262.2 116.1 252.4 117.1 227.3 127.9C187.6 145.1 161.6 185.1 159.6 187.7C157.6 190.3 143.4 209.2 143.4 228.7S153.6 257.8 157.3000000000001 261.8C160.9 265.8 165.2000000000001 266.8 167.9 266.8C170.5 266.8 173.2000000000001 266.8 175.5 266.7C177.9 266.6 181.2 267.6 184.4 259.9C187.7000000000001 252 195.6 232.5 196.6 230.5S198.3 226.2 196.9 223.6C189.3000000000001 208.4 181.2000000000001 209 185.3000000000001 202C200.6000000000001 175.7 215.9 166.6 239.2000000000001 154.9C243.2000000000001 152.9 245.5000000000001 153.2 247.8000000000001 155.9C250.1000000000001 158.5 257.7000000000001 167.5 260.3000000000001 171.4C262.9000000000001 175.4 265.6000000000001 174.7 269.2000000000001 173.4C272.8000000000001 172.1 292.3000000000001 162.5 296.3000000000001 160.5S302.9000000000001 157.5 303.9000000000001 155.9C304.8000000000001 154 304.8000000000001 146 301.5000000000001 136.8zM400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM223.9 34.8C197.3 34.8 171.2 41.5 148.1 54.1L64 32L86.5 114.2C72.6 138.2 65.3 165.5 65.3 193.5C65.4 280.9 136.5 352 223.9 352C266.3 352 306.1 335.5 336.1 305.5C366 275.5 384 235.7 384 193.3C384 105.9 311.3 34.8 223.9 34.8z" /> + <glyph glyph-name="whatsapp" + unicode="" + horiz-adv-x="448" d=" M380.9 350.9C339 392.9 283.2 416 223.9 416C101.5 416 1.9 316.4 1.9 194C1.9 154.9 12.1 116.7 31.5 83L0 -32L117.7 -1.1C150.1 -18.8 186.6 -28.1 223.8 -28.1H223.9C346.2 -28.1 448 71.5 448 193.9C448 253.2 422.8 308.9 380.9 350.9zM223.9 9.3C190.7 9.3 158.2 18.1999999999999 129.9 34.9999999999999L123.2 38.9999999999999L53.4 20.6999999999999L72 88.8L67.6 95.8C49.1 125.2 39.4 159.1 39.4 194C39.4 295.7 122.2 378.5 224 378.5C273.3 378.5 319.6 359.3 354.4 324.4C389.2 289.5 410.6 243.2 410.5 193.9C410.5 92.1 325.6 9.3 223.9 9.3zM325.1 147.5C319.6 150.3 292.3 163.6999999999999 287.2 165.5C282.1 167.3999999999999 278.4 168.3 274.7 162.6999999999999C271 157.0999999999999 260.4 144.6999999999999 257.1 140.8999999999999C253.9 137.1999999999999 250.6 136.6999999999999 245.1 139.5C212.5 155.8 191.1 168.6 169.6 205.5C163.9 215.3 175.3 214.5999999999999 185.9 235.8C187.7 239.5 186.8 242.7 185.4 245.5C184 248.3 172.9 275.5999999999999 168.3 286.7C163.8 297.5 159.2 296 155.8 296.2C152.6 296.3999999999999 148.9 296.3999999999999 145.2 296.3999999999999C141.5 296.3999999999999 135.5 294.9999999999999 130.4 289.4999999999999C125.3 283.8999999999999 111 270.4999999999999 111 243.2C111 215.8999999999999 130.9 189.5 133.6 185.8C136.4 182.1 172.7 126.1 228.4 101.9999999999999C263.6 86.8 277.4 85.4999999999999 295 88.1C305.7 89.7 327.8 101.4999999999999 332.4 114.5C337 127.5 337 138.6 335.6 140.8999999999999C334.3 143.3999999999999 330.6 144.7999999999999 325.1 147.5z" /> + <glyph glyph-name="whmcs" + unicode="" + horiz-adv-x="448" d=" M448 287V308.3L419.5 317.1L417.3 327.5L437.4000000000001 348.2000000000001L427 367.6L398 360.1L390.8 367.6L398.3 395.8L379.2 407.4L357.9 386.4L347.2 389.6L340.2 416H317.6L311.4 389.6L299.3 386.4L279.6 407.4L260.2 396.4L268.3 368.7L260.2 360.3L231.7 367.8L220.7 348.7L241.4 327.7L238.5 317.3L210 309.5L209.7 287.8L238.5 280.3L240.9 268.2L220.8 248.3L231.2 229.8L260.8 237.3L268 228.7L259.9 201.8L279.8 190.2L299.2 210.6L310.8 207.7L317.5 179.2L340.1 178.9L346.8 207.7L358.4 211.2L379.1 189.6L399.5 201.7L390.7 229.7L398.5 237.8L427.3 229L437.6 249.1L416.7 267.9L418.9 280L448 287zM328.8 241.8C297.5 241.8 272 267.2000000000001 272 298.6S297.4 355.4000000000001 328.8 355.4000000000001S385.6 330 385.6 298.6C385.6 267.1 360.2000000000001 241.8 328.8 241.8zM401.1 225.4L448 210.9V171L392.9 157.6L388.8 134.9L427.7 99.6L408.5 61.7000000000001L354.5 78.4L339.8999999999999 63.2000000000001L356.5999999999999 10.7L318.2999999999999 -11.9999999999999L279.3999999999999 28.5000000000001L257.7 21.9L245.1 -32.1L202.6999999999999 -31.6L190.0999999999999 22.0000000000001L168.4 27.6000000000001L132 -10.7999999999999L94.5999999999999 10.9000000000001L109.7999999999999 61.4000000000001L96.0999999999999 77.5000000000001L40.5999999999999 63.4000000000001L20.8999999999999 98.2000000000001L58.7999999999999 135.6000000000001L53.9999999999999 158.4000000000001L-1e-13 172.5000000000001L0.4999999999999 213.4000000000001L54 228.1L59.7 247.8L20.8 287.2L41.5 323L95.1 308.9L110.3 324.6L95.1 376.6L131.5 397.3L168.3 357.9L191 364L202.6 416H245L256.6 370.1L234 376L227.7 377.7L224.4 372L213.4 352.9L210.1 347.3L214.7 342.7000000000001L231.9 325.3L231.6 324.3L207.7999999999999 317.8L201.5999999999999 316.1L201.5 309.7000000000001L201.3 296.8C153.8 286.4 118 244 118 193.3C118 135 165.3 87.6 223.7 87.6C274.2 87.6 316.4 123 326.9 170.4L340.1 170.2000000000001L347 170.1L348.6 176.8L354.2 200.8L356.1 201.4L373.2 183.6L377.9 178.7000000000001L383.7 182.1L404.1 194.2L409.9 197.7L407.9 204.2L401.1 225.4z" /> + <glyph glyph-name="wikipedia-w" + unicode="" + horiz-adv-x="640" d=" M640 396.8L639.7 384.6C611.6 383.8 594.7 368.8 583.9000000000001 344.3C558.9000000000001 286.5 480.6000000000001 104.3 428.6000000000001 -14.3H415L333.1 178.8C300.6 115.1999999999999 264.8 48.8 233.9000000000001 -14.3000000000001C233.6 -14.6000000000001 218.9 -14.3000000000001 218.9 -14.0000000000001C172 95.7 122.8 204.6 75.8 314.6C64.4 341.3 26.4 384.6 0.2 384.3C0.2 387.4 -0.1 394.3 -0.1 398.5H161.8V384.6C142.6 383.5 109 371.3 118.5 350.4C140.4 300.7 222.1 110.1 244.1 61.8C259.1 91.4999999999999 301.9000000000001 171 319.4000000000001 204.6C305.5000000000001 232.9 260.8 338.5 246.6 364.6C236.9000000000001 382.4 210.5 384 190.8 384.3V398.2L333.3 397.9V384.8C313.9000000000001 384.2 295.2 377 303.9000000000001 358.7C322.8 318.7 334.5000000000001 290.6 352.0000000000001 254C357.6000000000001 264.8 386.7000000000001 323.4 400.1000000000001 354.8C409.0000000000001 375.4 396.2000000000001 383.4 361.5000000000001 384.2C361.8000000000001 387.8 361.5000000000001 394.5 361.8000000000001 397.8C406.2000000000001 398.1 472.9000000000001 398.1 484.9000000000001 398.4V384.8C462.4000000000001 384 439.1000000000001 372 426.8000000000001 353.1L367.6000000000001 230.3C374.0000000000001 214.2 430.9000000000001 87.5 436.8000000000001 73.6L559.2 356.2C550.6 379.3 522.8000000000001 384.3 512 384.5V398.4L639.8 397.3L640 396.8z" /> + <glyph glyph-name="windows" + unicode="" + horiz-adv-x="448" d=" M0 354.3L183.6 379.6V202.2H0V354.3zM0 29.7L183.6 4.4V179.6H0V29.7zM203.8 1.7L448 -32V179.6H203.8V1.7zM203.8 382.3V202.2H448V416L203.8 382.3z" /> + <glyph glyph-name="wix" + unicode="" + horiz-adv-x="640" d=" M393.38 316.31C393.38 303.28 395.46 283.62 364.7 272.48C355.18 269.0300000000001 348.75 262.8200000000001 348.75 262.8200000000001C348.75 293.8200000000001 353.4700000000001 305.04 366.15 311.68C375.9 316.79 393.38 316.31 393.38 316.31zM277.58 280.77L243.34 148.11L214.86 256.68C207.17 288.67 194.05 305.2100000000001 166.43 305.2100000000001C139.06 305.2100000000001 125.77 289.03 118 256.68L89.52 148.11L55.28 280.77C49.73 307.49 23.86 319.04 0 316.04L65.57 68.11S87.2 66.55 98.03 72.07C112.25 79.32 119.01 84.91 127.62 118.64C135.29 148.71 156.73 237.05 158.74 243.34C163.5 258.28 169.83 257.15 174.14 243.34C176.11 237.04 197.59 148.71 205.26 118.64C213.86 84.91 220.63 79.32 234.85 72.07C245.67 66.55 267.31 68.11 267.31 68.11L332.88 316.04C308.46 319.11 283.06 307.11 277.58 280.77zM393.36 275.56S389.26 269.2200000000001 379.9000000000001 263.99C373.8900000000001 260.63 368.1200000000001 258.35 361.9300000000001 255.38C346.7900000000001 248.12 348.7500000000001 241.43 348.7500000000001 220.18V68.11S365.3000000000001 66.02 376.1200000000001 71.54C390.0500000000001 78.64 393.2500000000001 85.49 393.3800000000001 116.3200000000001V266.5900000000001L393.3600000000001 266.5800000000001V275.56zM556.8 191.48L640 315.2200000000001S604.89 321.2 587.5 305.37C574.2 293.27 563.09 275.82 533.32 232.9C532.85 232.17 527.07 222.36 520.25 232.9C490.96 275.13 479.45 293.19 466.07 305.37C448.68 321.2 413.57 315.2200000000001 413.57 315.2200000000001L496.77 191.48L413.8 68.12S450.3699999999999 63.5 467.7499999999999 79.33C479.24 89.79 485.3299999999999 99.7 520.26 150.05C527.0699999999999 160.5699999999999 532.83 150.8199999999999 533.33 150.05C562.73 107.67 572.5600000000001 91.99 586.47 79.3299999999999C603.86 63.4999999999999 639.7900000000001 68.12 639.7900000000001 68.12L556.8 191.48z" /> + <glyph glyph-name="wolf-pack-battalion" + unicode="" + horiz-adv-x="456.58" d=" M239.73 -23.53L250.29 -39.3699999999999L255.57 -27.05L260.85 -34.09V-64C281.91 -56.08 281.96 2.86 286.36 33.21C290.98 65.1 285.48 126.02 367.73 182.32C358.85 205.93 355.73 231.75 365.09 262.37C392.96 259.03 419.03 251.79 428.43 208.27L398.08 199.91C409.2299999999999 176.87 415.0899999999999 153.15 411.2799999999999 127.7700000000001L384 134.82L377.84 101.39L359.37 108.43L350.57 75L331.22 82.04L357.61 60.93L366.41 89.08L391.04 83.8L398.08 119.43L424.47 104.91C424.72 124.93 431.44 162.97 415.67 189.36L442.06 184.0800000000001C446.05 206.15 439.68 223.2900000000001 434.14 240.8200000000001L456.5699999999999 231.1400000000001C456.1299999999999 256.2100000000001 426.63 287.9300000000001 394.99 289.6400000000001C374.77 290.73 338.25 314.8100000000001 340.89 341.5400000000001C342.8499999999999 361.4100000000001 358.3399999999999 384.1600000000001 384 391.2400000000001C340.01 354.73 374.32 323.9400000000001 389.2799999999999 317.7800000000001C393.6799999999999 329.2200000000001 406.82 386.8600000000001 389.2799999999999 447.98C348.81 425.1100000000001 299.5499999999999 382.8800000000001 296.0299999999999 300.1900000000001L237.9699999999999 261.48L234.4499999999999 168.23L341.7799999999999 228.05L348.82 221.01L331.23 217.49L287.24 178.78L271.4 184.06L243.25 134.8L239.73 15.16L260.84 -0.6799999999999L228.29 -16.5199999999999L195.74 -0.6799999999999L216.85 15.16L213.33 134.8L185.18 184.06L169.34 178.78L125.3499999999999 217.4900000000001L107.7599999999999 221.0100000000001L114.8 228.0500000000001L222.13 168.23L218.6099999999999 261.48L160.5499999999999 300.1900000000001C157.03 382.9 107.77 425.13 67.3 448C49.76 386.88 62.9 329.24 67.3 317.8C82.26 323.9600000000001 116.56 354.75 72.58 391.26C98.24 384.18 113.73 361.43 115.69 341.56C118.32 314.82 81.81 290.75 61.59 289.66C29.94 287.94 0.44 256.2200000000001 0 231.15L22.43 240.83C16.89 223.3 10.52 206.16 14.51 184.09L40.9 189.37C25.14 162.98 31.85 124.94 32.1 104.92L58.49 119.44L65.53 83.81L90.16 89.09L98.96 60.94L125.35 82.05L106.01 75L97.21 108.43L78.74 101.39L72.58 134.82L45.31 127.78C41.49 153.16 47.36 176.88 58.51 199.92L28.16 208.28C37.56 251.8 63.63 259.05 91.5 262.38C100.86 231.76 97.74 205.93 88.86 182.33C171.11 126.03 165.61 65.1 170.23 33.22C174.63 2.8699999999999 174.68 -56.07 195.74 -63.99V-34.08L201.02 -27.04L206.3 -39.36L216.86 -23.52L228.3 -44.63L239.73 -23.53zM318.9 71.48L303.06 82.04C310.5300000000001 86.4 316.82 90.46 322.4100000000001 94.36C321.81 87.1 322.1400000000001 80.48 318.9000000000001 71.48zM347.05 120.74C346.65 109.8 346.15 99.08 345.29 89.07C337.44 90.93 329.72 92.87 324.18 96.11C332.42 104.01 339.73 112.38 347.05 120.74zM371.68 115.46C371.66 128.8900000000001 369.63 139.67 366.4 148.8900000000001C361.02 139.8000000000001 355.17 130.71 347.93 121.6200000000001L371.68 115.46zM375.2 196.4C394.64 183.59 403 162.74 405.11 140.1C392.79 144.63 380.48 149.41 368.16 150.66C373.22 162.65 374.81 178.8 375.2 196.4zM373.44 242.1400000000001C374.25 227.8400000000001 375.2799999999999 213.3200000000001 375.2 199.9100000000001C394.42 208.0200000000001 404.9799999999999 209.6300000000001 419.19 213.9900000000001C408.5899999999999 232.9400000000001 391.9699999999999 239.5100000000001 373.44 242.1400000000001zM137.68 71.48L153.52 82.04C146.05 86.4 139.76 90.46 134.17 94.36C134.77 87.1 134.44 80.48 137.68 71.48zM109.53 120.74C109.93 109.8 110.43 99.08 111.29 89.07C119.14 90.93 126.86 92.87 132.4 96.11C124.16 104.01 116.85 112.38 109.53 120.74zM84.89 115.46C84.91 128.8900000000001 86.94 139.67 90.17 148.8900000000001C95.55 139.8000000000001 101.4 130.71 108.64 121.6200000000001L84.89 115.46zM81.37 196.4C61.93 183.59 53.57 162.74 51.46 140.1C63.78 144.63 76.09 149.41 88.41 150.66C83.36 162.65 81.76 178.8 81.37 196.4zM83.13 242.1400000000001C82.32 227.8400000000001 81.29 213.3200000000001 81.37 199.9100000000001C62.15 208.0200000000001 51.59 209.6300000000001 37.38 213.9900000000001C47.99 232.9400000000001 64.6 239.5100000000001 83.13 242.1400000000001z" /> + <glyph glyph-name="wordpress-simple" + unicode="" + horiz-adv-x="512" d=" M256 440C119.3 440 8 328.8 8 192C8 55.3 119.3 -56 256 -56S504 55.3 504 192C504 328.8 392.7 440 256 440zM33 192C33 224.3 39.9 255 52.3 282.7L158.7 -8.7C84.3 27.5 33 103.8 33 192zM256 -31C234.1 -31 213 -27.8 193 -21.9L259.9 172.5L328.4 -15.3C328.9 -16.4 329.4 -17.4 330 -18.4C306.9 -26.5000000000001 282 -31.0000000000001 256 -31.0000000000001zM286.7 296.5C300.1 297.2 312.2 298.6 312.2 298.6C324.2 300 322.8 317.7 310.8 317C310.8 317 274.7 314.2 251.4 314.2C229.5 314.2 192.7 317 192.7 317C180.7 317.7 179.3 299.3 191.3 298.6C191.3 298.6 202.7 297.2 214.7 296.5L249.4 201.3L200.6 55L119.4 296.5C132.8 297.2 144.9 298.6 144.9 298.6C156.9 300 155.5 317.7 143.5 317C143.5 317 107.4 314.2 84.1 314.2C79.9 314.2 75 314.3 69.7 314.5C109.6 375 178.1 415 256 415C314 415 366.9 392.8 406.6 356.5C405.6 356.6 404.7000000000001 356.7 403.7000000000001 356.7C381.8000000000001 356.7 366.3000000000001 337.6 366.3000000000001 317.1C366.3000000000001 298.7 376.9000000000001 283.2 388.2000000000001 264.8C396.7000000000001 250 406.6 230.9 406.6 203.3C406.6 184.2 399.3 162.1 389.6 131.2000000000001L367.4000000000001 56.9L286.7000000000001 296.5zM368.1 -0.7L436.2000000000001 196.2C448.9000000000001 228.0000000000001 453.2 253.4000000000001 453.2 276.1C453.2 284.3 452.7 291.9000000000001 451.7 299C469.1 267.2000000000001 479.0000000000001 230.8 479.0000000000001 192C479.0000000000001 109.7000000000001 434.4000000000001 37.9 368.1 -0.6999999999999z" /> + <glyph glyph-name="wordpress" + unicode="" + horiz-adv-x="512" d=" M61.7 278.6L163.2 0.6C92.2 35 43.3 107.8 43.3 192C43.3 222.9 49.9 252.1 61.7 278.6zM399.6 202.7C399.6 229 390.2 247.2 382.1 261.4C371.3 278.9 361.2 293.8 361.2 311.3C361.2 330.9 376 349.1 396.9 349.1C397.8 349.1 398.7 349 399.7 348.9C361.8 383.6 311.4 404.8 256 404.8C181.7 404.8 116.3 366.7 78.2 308.9C83.2 308.7 87.9 308.6 91.9 308.6C114.1 308.6 148.6 311.3 148.6 311.3C160.1 312 161.4 295.1 150 293.8C150 293.8 138.5 292.5 125.7 291.8L203.2 61.4L249.8 201L216.7 291.8C205.2 292.5 194.4 293.8 194.4 293.8C182.9 294.5 184.3 312 195.7 311.3C195.7 311.3 230.8 308.6 251.7 308.6C273.9000000000001 308.6 308.4000000000001 311.3 308.4000000000001 311.3C319.9000000000001 312 321.2000000000001 295.1 309.8 293.8C309.8 293.8 298.3 292.5 285.5 291.8L362.4 63.1L383.6 134C392.6 163.4 399.6 184.5 399.6 202.7zM259.7 173.4L195.8999999999999 -12.1C214.9999999999999 -17.7 235.0999999999999 -20.8 255.9999999999999 -20.8C280.7999999999999 -20.8 304.4999999999999 -16.5 326.5999999999999 -8.7C325.9999999999999 -7.8 325.4999999999999 -6.8 325.0999999999999 -5.8L259.7 173.4zM442.7 294.1C443.5999999999999 287.3 444.0999999999999 280.1 444.0999999999999 272.2C444.0999999999999 250.6 440.0999999999999 226.4 427.8999999999999 196L362.8999999999999 8.0999999999999C426.2 45 468.7 113.5 468.7 192C468.7 229 459.3 263.8 442.7 294.1zM504 192C504 55.2 392.7 -56 256 -56C119.2 -56 8 55.3 8 192C8 328.8 119.2 440 256 440C392.7 440 504 328.8 504 192zM492.6 192C492.6 322.5 386.4000000000001 428.6 256 428.6C125.5 428.6 19.4 322.5 19.4 192S125.6 -44.6 256 -44.6C386.5 -44.6 492.6 61.5 492.6 192z" /> + <glyph glyph-name="wpbeginner" + unicode="" + horiz-adv-x="512" d=" M462.799 125.626C519.01 61.318 466.961 -32 370.944 -32C331.3420000000001 -32 292.12 -14.313 270.802 18.04C263.915 17.684 248.1 17.684 241.212 18.04C219.848 -14.381 180.588 -32 141.069 -32C45.579 -32 -7.279 60.996 49.214 125.626C-29.925 257.477 80.479 416 256.006 416C431.638 416 541.876 257.374 462.799 125.626zM123.152 208.598H164.681V266.673H123.152V208.598zM340.332 122.526V146.365C279.826 125.4499999999999 207.977 137.167 152.743 180.336L152.989 155.439C204.09 109.072 284.735 97.564 340.332 122.526zM189.579 208.598H355.637V266.673H189.579V208.598z" /> + <glyph glyph-name="wpexplorer" + unicode="" + horiz-adv-x="512" d=" M512 192C512 50.8 397.3 -64 256 -64C114.8 -64 0 50.7 0 192S114.7 448 256 448S512 333.3 512 192zM480 192C480 315.2 379.7 416 256 416C132.5 416 32 315.5 32 192S132.5 -32 256 -32S480 68.5 480 192zM160.9 323.4L247.8 286.3L210.7 199.4L123.8 236.5L160.9 323.4zM270.9 154.3L317.5 60.3H302.9L252.9 160.3L204 60.3H190L241.1 167.2000000000001L218.8 176.6L224.8 190.6L293.4 161.5L287.4 147.2L270.9 154.3zM259.1 270.6L327.7 241.2L298.3 172.9L230 202L259.1 270.6zM339.4 227.7L394 204.6L370.6 150.3L316.3 173.4L339.4000000000001 227.7000000000001z" /> + <glyph glyph-name="wpforms" + unicode="" + horiz-adv-x="448" d=" M448 372.8V11.1C448 -13.2 429 -32.1 404.8 -32.1H43.2C19.3 -32 0 -13.4 0 11.2V372.8C0 396.9 18.8 416 43.2 416H404.9C428.9 416 448 397.2 448 372.8zM410.7 11.2V372.8C410.7 375.8 408.1 378.6 404.9 378.6H395.6L285.3 304L224 353.9L162.8 304L52.5 378.7H43.2C40 378.7 37.4 375.9 37.4 372.9V11.2C37.4 8.2 40 5.4 43.2 5.4H404.9C408.1 5.3 410.7 8.1 410.7 11.2zM150.2 262V225H76.7V262H150.2zM150.2 187.6V150.3H76.7V187.6H150.2zM161.3 334.9000000000001L215.3 378.6H96.8L161.3 334.9000000000001zM371.3 262V225H175.3V262H371.3zM371.3 187.6V150.3H175.3V187.6H371.3zM286.7 334.9000000000001L351.2 378.6H232.8L286.7 334.9000000000001zM371.3 113V75.7H271.9V113H371.3z" /> + <glyph glyph-name="xbox" + unicode="" + horiz-adv-x="512" d=" M369.9 129.8C414.2 75.5 434.6 31 424.3 11.1C416.4 -4 367.6 -33.5 331.7 -44.8C302.0999999999999 -54.1 263.3 -58.1 231.3 -54.9999999999999C193.0999999999999 -51.3 154.3999999999999 -37.6 121.1999999999999 -15.9999999999999C93.3 2.2 87 9.7 87 24.6C87 54.5 119.9 106.9 176.2 166.7000000000001C208.2 200.6000000000001 252.7 240.4000000000001 257.6 239.3000000000001C267 237.2000000000001 341.9000000000001 164.2000000000001 369.9000000000001 129.8000000000001zM188.6 304.2C158.9 331.1 130.5 358.1 102.2 367.6C87 372.7 85.9 372.4 73.5 359.5C44.3 329.1 20 279.8 13.2 237.1C7.8 202.9 7.1 193.3 9 176.6C14.6 126.1 26.3 91.2000000000001 49.5 55.7C59 41.1 61.6 38.4 58.8 45.8000000000001C54.6 56.8000000000001 58.5 83.3000000000001 68.3 109.8000000000001C82.6 148.8000000000001 122.2 222.7000000000001 188.6 304.2000000000001zM500.2 240.7C483.3 320.7 432.7 371 425.6 371C418.3 371 401.4000000000001 364.5 389.6 357.1C366.3 342.6 348.6 325.7 325.3 304.3C367.7 251 427.5 164.9 448.2 102C455 81.3 457.9 60.9 455.6 49.7C453.9 41.2 453.9 41.2 456.9999999999999 45.1C463.1 52.8 476.8999999999999 76.4 482.3999999999999 88.6C489.7999999999999 104.8 497.3999999999999 128.8 500.9999999999999 147.3C505.3 169.8 504.8999999999999 218.1 500.1999999999999 240.7zM141.3 405C189 407.5 251 370.5 255.6 369.6C256.3 369.5 266 373.8 277.2 379.3C341.1 410.4 371.2 405.1 384.6 404.5C320.7000000000001 443.8 231.9000000000001 454.5 150.7 416.2C127.3 405.1 126.7 404.3 141.3 405z" /> + <glyph glyph-name="xing-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM140.4 127.8H93.8C88.3 127.8 85.1 133.1 87.8 138.1L137.1 224.8C137.2 224.8 137.2 224.9 137.1 225L105.7 279C102.7 284.6 105.9 289.1 111.7 289.1H158.3C163.5 289.1 167.8 286.2 171.2 280.4L203.1 225.1C201.8 222.8 185.1 193.4 153 136.9C149.5 130.7000000000001 145.3 127.8 140.4 127.8zM360.1 341.9L257.3 161.2V161L322.8 42C325.6 36.9 322.9000000000001 31.9 316.8 31.9H270.2C264.7 31.9 260.5 34.8 257.3 40.6L191.3 160.9C193.6 165 228.1 225.8 294.7000000000001 343.2C298.0000000000001 349 302.1 351.9 307.2000000000001 351.9H354.1C359.8 352 362.9000000000001 347.2 360.1 341.9z" /> + <glyph glyph-name="xing" + unicode="" + horiz-adv-x="384" d=" M162.7 238C160.9 234.7 137.5 193.6 92.6 114.5C87.7 106.2 81.8 102 74.9 102H9.8C2.1 102 -2.3 109.5 1.3 116.4L70.3 237.7C70.5 237.7 70.5 237.8 70.3 238L26.4 313.6C22.1 321.4 26.7 327.7 34.9 327.7H100C107.3 327.7 113.3 323.6 118 315.5L162.7 238zM382.6 401.9L238.6 148.9V148.6L330.2 -18C334.1 -25.1 330.4 -32.1 321.7 -32.1H256.5C248.9 -32.1 242.9 -28.1 238.5 -19.9L146.1 148.6C149.4 154.4 197.6 239.4 290.9 403.8C295.5 411.9 301.3 416 308.4 416H374.1C382.1 416 386.4 409.3 382.6 401.9z" /> + <glyph glyph-name="y-combinator" + unicode="" + horiz-adv-x="448" d=" M448 416V-32H0V416H448zM236 160.5L313.5 306H280.8L235 215C230.3 205.7 226 196.7 222.2 188.2L210 215L164.8 306H129.8L206.5 162.2V67.7H236V160.5z" /> + <glyph glyph-name="yahoo" + unicode="" + horiz-adv-x="448" d=" M252 156L256 -64C243.3 -61.8 232.5 -60.1 223.7 -60.1C215.3 -60.1 204.5 -61.8 191.4 -64L195.4 156C140.4 250.8 85 352.8 21.4 448C33.3 444.9 44.4 444.1 54.6 444.1C63.6 444.1 75 444.9 88.7 448C129.6 375.8 170.8 309.3 223.7 222.5C261 284.1 314.8 366.6 358.6 448C369.7000000000001 445.1 380.6 444.1 391.5 444.1C403 444.1 414.7 445.1 426.5 448C392.1 400.1 294.9 231.1 252 156z" /> + <glyph glyph-name="yandex-international" + unicode="" + horiz-adv-x="320" d=" M129.5 -64V102.1L18.5 400H74.3L156.1 170.3L250.2 448H301.5L180.8 100.2V-64H129.5z" /> + <glyph glyph-name="yandex" + unicode="" + horiz-adv-x="256" d=" M153.1 132.2L65.7 -64H2L98 145.8C52.9 168.7 22.8 210.2 22.8 286.9C22.7 394.3 90.8 448 171.7 448H254V-64H198.9V132.2H153.1zM198.9 401.5H169.5C125.1 401.5 82.1 372.1 82.1 286.9C82.1 204.6 121.5 178.1 169.5 178.1H198.9V401.5z" /> + <glyph glyph-name="yelp" + unicode="" + horiz-adv-x="384" d=" M136.9 120C135.9 119.7 27.7 84.3 21.1 84.3C5.9 85.2 2.6 100.5 1.2 115.5C-0.3 129.7 -0.2 145.3 1.5 162.3C3.4 181.1 7 207.4 25.7 206.3C30.5 206.3 92.8 180.4 138.4 161.9C155.5 155.1 157 126.1 136.9 120.0000000000001zM194.8 233.9C196.6 195.7 169.3 185.4 147.6 219.6L41.3 387.6C39.8 394.2 41.6 400 46.6 405C62.2 421.5 146 444.8 168.1 439.1C175.6 437.2 180.2 433 181.9 426.5C183.2 418.2 193.4 259.1 194.8 233.9zM193.4 69.1C193.4 64.5 193.6 -47.3 191.7 -52.4C189.4 -58.4 184.7 -62.1 177.4 -63.6C167.3 -65.2999999999999 150.3 -61.7 126.4 -52.9C104.4 -44.8 69.7 -31.4 77.1 -10.4C79.9 -3.5 128.5 52.4 154.4 83.2000000000001C166.4 98.4 194.2 88.7000000000001 193.4 69.1zM373.6 186.9C368 183.2000000000001 262.8 158.7000000000001 255.5000000000001 156.3L255.8000000000001 156.9C237.7000000000001 152.2000000000001 220.4 175.4 232.5000000000001 191.5000000000001C236.2 195.2000000000001 298.4000000000001 283.9000000000001 305.3 288.5000000000001C310.5 292.1 316.6 292.3000000000001 323.6 289.1C342 280.3000000000001 378.7000000000001 226.0000000000001 381 204.5000000000001C380.9 201.6000000000001 382.2 192.8000000000001 373.6 186.9zM383.7000000000001 56.2C381.0000000000001 35.6 339.2000000000001 -17.1999999999999 319.9000000000001 -24.8C313.0000000000001 -27.4 307.0000000000001 -26.8 302.2000000000001 -22.8C297.2000000000001 -19.3 240.4000000000001 74.3000000000001 237.3000000000001 79.5000000000001C226.4000000000001 95.7000000000001 244.1000000000001 119.3000000000001 262.9000000000001 112.7000000000001C262.9000000000001 112.7000000000001 373.4000000000001 77.0000000000001 377.6 73.3000000000001C382.8 69.2000000000001 384.8 63.5000000000001 383.7000000000001 56.2z" /> + <glyph glyph-name="yoast" + unicode="" + horiz-adv-x="448" d=" M91.3 372H277.3L270.3 353.1H91.3C51.6 353.1 19.4 321.5 19.4 282.8V77.4C19.4 42 44.3 7.1 103.4 7.1V-12H91.3C41.2 -12 0 28.2 0 77.5V282.8C0 332.1 40.7 372 91.3 372zM320.4 428H386.9C243.1 49.9 241.2 29.1 202.2 -11.3C181.4 -32.9 152.9 -43 123.9 -44V7.1C173.1 14.8 188.5 57 188.5 82.4C188.5 102.5000000000001 189.1 95.0000000000001 106.4 305.6H167.8L218.2 149L320.4 428zM448 286.5V-12H234C240.6 -2.4 244.7 4.3 246.1 7.4H428.6V286.5C428.6 319 411.5 338.4 380.4000000000001 349.4L387.1 367C428.8 353.4 448 323.9 448 286.5z" /> + <glyph glyph-name="youtube-square" + unicode="" + horiz-adv-x="448" d=" M186.8 245.9L282 191.8L186.8 137.7V245.9zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM406 191.7S406 251.3 398.4 279.9C394.2 295.7 381.9 308.1 366.2 312.3C337.9 320 224 320 224 320S110.1 320 81.8 312.3C66.1 308.1 53.8 295.7000000000001 49.6 279.9C42 251.4 42 191.7 42 191.7S42 132.1 49.6 103.5C53.8 87.7 66.1 75.8 81.8 71.6C110.1 64 224 64 224 64S337.9 64 366.2 71.7C381.9 75.9 394.2 87.8 398.4 103.6C406 132.1 406 191.6999999999999 406 191.6999999999999z" /> + <glyph glyph-name="youtube" + unicode="" + horiz-adv-x="576" d=" M549.655 323.9170000000001C543.374 347.567 524.8679999999999 366.193 501.371 372.514C458.781 384 288 384 288 384S117.22 384 74.629 372.514C51.132 366.192 32.626 347.567 26.345 323.9170000000001C14.933 281.05 14.933 191.612 14.933 191.612S14.933 102.174 26.345 59.307C32.626 35.657 51.132 17.807 74.629 11.486C117.22 0 288 0 288 0S458.78 0 501.371 11.486C524.8679999999999 17.807 543.374 35.657 549.655 59.307C561.067 102.174 561.067 191.612 561.067 191.612S561.067 281.05 549.655 323.9170000000001zM232.145 110.409V272.815L374.884 191.61L232.145 110.409z" /> + <glyph glyph-name="zhihu" + unicode="" + horiz-adv-x="640" d=" M170.54 299.87V82.33L193.97 82.3200000000001L201.68 55.95L243.69 82.3200000000001H293.2200000000001V299.87H170.54zM268.29 105.94H240.35L212.45 88.43L207.37 105.9L195.47 105.94V276.25H268.29V105.94zM149.83 200.33H97.5C99.24 227.43 99.7 251.92 99.7 273.79H150.86S152.83 296.35 142.28 296.1H53.78C57.27 309.22 61.65 322.76 66.9 336.77C66.9 336.77 42.83 336.77 34.63 315.2C31.24 306.3 21.42 272.06 3.93 237.08C9.82 237.72 29.3 238.26 40.77 259.29C42.88 265.18 43.28 265.95 45.91 273.82H74.78C74.78 263.32 73.58 206.94 73.1 200.38H20.83C9.09 200.38 5.27 176.76 5.27 176.76H70.85C66.45 126.9 42.83 84.88 0 51.66C20.49 45.81 40.91 52.59 51 61.56C51 61.56 73.98 82.46 86.59 130.81L140.55 65.87S148.46 92.76 139.31 105.86C131.73 114.78 111.25 138.92 102.52 147.67L87.9 136.05C92.26 150.03 94.89 163.6 95.77 176.72H157.42S157.33 200.34 149.83 200.34V200.3300000000001zM561.8499999999999 201.93C582.68 227.57 606.8299999999999 260.5 606.8299999999999 260.5S588.18 275.3 579.4499999999999 264.56C573.4499999999999 256.41 542.6199999999999 216.36 542.6199999999999 216.36L561.8499999999999 201.93zM411.7599999999999 261.02C402.7499999999999 269.27 385.8499999999999 258.89 385.8499999999999 258.89S425.3699999999999 203.85 426.9699999999999 201.44L446.4299999999999 215.17S420.7599999999998 252.78 411.7699999999999 261.03H411.7599999999999zM640 189.65C620.22 189.65 509.09 188.72 508.94 188.72V289.72C513.75 289.72 521.36 290.12 531.79 290.92C572.67 293.33 601.92 294.92 619.56 295.73C619.56 295.73 631.78 322.92 618.9699999999999 329.17C615.8999999999999 330.35 595.8 324.59 595.8 324.59S430.58 308.1 363.44 306.54C365.04 297.72 371.06 289.46 379.2199999999999 286.99C392.5299999999999 283.51 401.9099999999999 285.29 428.3699999999999 286.1C453.1999999999999 287.7 472.0499999999999 288.53 484.8799999999999 288.53V188.72H351.4100000000001S354.23 166.41 376.92 165.87H484.86V94.9499999999999C484.86 80.9799999999999 473.67 72.9599999999999 460.38 73.8299999999999C446.3 73.7199999999999 434.3 74.9799999999999 418.69 75.6399999999999C420.68 71.6699999999999 425.02 61.2499999999999 438 53.8C447.88 48.99 454.17 47.23 464.02 47.23C493.58 47.23 509.69 64.51 508.91 92.54V165.86H631.27C640.9499999999999 165.86 639.97 189.64 639.97 189.64L640 189.65z" /> + </font> +</defs> +</svg> diff --git a/website/agenda/planung/webfonts/fa-brands-400.ttf b/website/agenda/planung/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ecbc761ef8cbce6bed98c0d4abb01f6dac5c471e GIT binary patch literal 118324 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 H1_lNIm2&H= literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-brands-400.woff b/website/agenda/planung/webfonts/fa-brands-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..21c2dd306306138b06705fd6a1d6583ace61bb8c GIT binary patch literal 76344 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�Iyr;zZaklR9uCJ?O%$FY6GVA#g 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 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-brands-400.woff2 b/website/agenda/planung/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8d8c89e96337764490d8626e278ac2cea83e5a8d GIT binary patch literal 65316 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 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-regular-400.eot b/website/agenda/planung/webfonts/fa-regular-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..656e9a028a2cda2f16b4ae4a37e79b80466eb686 GIT binary patch literal 40576 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 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-regular-400.svg b/website/agenda/planung/webfonts/fa-regular-400.svg new file mode 100644 index 0000000..0085843 --- /dev/null +++ b/website/agenda/planung/webfonts/fa-regular-400.svg @@ -0,0 +1,467 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<defs> + <font id="fontawesome-free" horiz-adv-x="640"> + <font-face font-family="Font Awesome 5 Free" + units-per-em="512" ascent="448" + descent="64" + font-weight="400" + font-style="Regular" /> + <missing-glyph horiz-adv-x="0" /> + <glyph glyph-name="address-book" + unicode="" + horiz-adv-x="448" d=" M436 288C442.6 288 448 293.4 448 300V340C448 346.6 442.6 352 436 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H436C442.6 32 448 37.4 448 44V84C448 90.6 442.6 96 436 96H416V160H436C442.6 160 448 165.4 448 172V212C448 218.6 442.6 224 436 224H416V288H436zM368 -16H48V400H368V-16zM208 192C243.3 192 272 220.7 272 256S243.3 320 208 320S144 291.3 144 256S172.7 192 208 192zM118.4 64H297.6C310 64 320 72.6 320 83.2V102.4C320 134.2 289.9 160 252.8 160C242 160 234.1 152 208 152C181.1 152 174.6 160 163.2 160C126.1 160 96 134.2 96 102.4V83.2C96 72.6 106 64 118.4 64z" /> + <glyph glyph-name="address-card" + unicode="" + horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM528 16H48V368H528V16zM208 192C243.3 192 272 220.7 272 256S243.3 320 208 320S144 291.3 144 256S172.7 192 208 192zM118.4 64H297.6C310 64 320 72.6 320 83.2V102.4C320 134.2 289.9 160 252.8 160C242 160 234.1 152 208 152C181.1 152 174.6 160 163.2 160C126.1 160 96 134.2 96 102.4V83.2C96 72.6 106 64 118.4 64zM360 128H472C476.4 128 480 131.6 480 136V152C480 156.4 476.4 160 472 160H360C355.6 160 352 156.4 352 152V136C352 131.6 355.6 128 360 128zM360 192H472C476.4 192 480 195.6 480 200V216C480 220.4 476.4 224 472 224H360C355.6 224 352 220.4 352 216V200C352 195.6 355.6 192 360 192zM360 256H472C476.4 256 480 259.6 480 264V280C480 284.4 476.4 288 472 288H360C355.6 288 352 284.4 352 280V264C352 259.6 355.6 256 360 256z" /> + <glyph glyph-name="angry" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM248 136C214.4 136 182.8 121.2 161.2 95.4C152.7 85.2 154.1 70.1 164.3 61.6S189.6 54.4 198.1 64.6C222.9 94.3 273.1 94.3 297.9 64.6C306 54.9 321.1 52.7 331.7 61.6C341.9 70.1 343.2 85.2 334.8 95.4C313.2 121.2 281.6 136 248 136zM200 208C210.3 208 219.9 214.7 223 225.1C226.8 237.8 219.6 251.2 206.9 255L126.9 279C114.1 282.9 100.8 275.6 97 262.9C93.2 250.2 100.4 236.8 113.1 233L141.3 224.5C138.2 219.6 136 214.1 136 207.9C136 190.2 150.3 175.9 168 175.9S200 190.3 200 208zM399 262.9C395.2 275.6 381.9 282.8 369.1 279L289.1 255C276.4000000000001 251.2 269.2000000000001 237.8 273 225.1C276.1 214.7 285.7 208 296 208C296 190.3 310.3 176 328 176S360 190.3 360 208C360 214.2 357.8 219.7 354.7 224.6L382.9 233.1C395.6 236.8 402.8 250.2 399 262.9z" /> + <glyph glyph-name="arrow-alt-circle-down" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM224 308V192H157C146.3 192 141 179.1 148.5 171.5L247.5 72.5C252.2 67.8 259.8 67.8 264.5 72.5L363.5 171.5C371.1 179.1 365.7 192 355 192H288V308C288 314.6 282.6 320 276 320H236C229.4 320 224 314.6 224 308z" /> + <glyph glyph-name="arrow-alt-circle-left" + unicode="" + horiz-adv-x="512" d=" M8 192C8 55 119 -56 256 -56S504 55 504 192S393 440 256 440S8 329 8 192zM456 192C456 81.5 366.5 -8 256 -8S56 81.5 56 192S145.5 392 256 392S456 302.5 456 192zM384 212V172C384 165.4 378.6 160 372 160H256V93C256 82.3 243.1 77 235.5 84.5L136.5 183.5C131.8 188.2 131.8 195.8 136.5 200.5L235.5 299.5C243.1 307.1 256 301.7 256 291V224H372C378.6 224 384 218.6 384 212z" /> + <glyph glyph-name="arrow-alt-circle-right" + unicode="" + horiz-adv-x="512" d=" M504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192zM128 172V212C128 218.6 133.4 224 140 224H256V291C256 301.7 268.9 307 276.5 299.5L375.5 200.5C380.2 195.8 380.2 188.2 375.5 183.5L276.5 84.5C268.9 76.9 256 82.3 256 93V160H140C133.4 160 128 165.4 128 172z" /> + <glyph glyph-name="arrow-alt-circle-up" + unicode="" + horiz-adv-x="512" d=" M256 -56C393 -56 504 55 504 192S393 440 256 440S8 329 8 192S119 -56 256 -56zM256 392C366.5 392 456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192S145.5 392 256 392zM276 64H236C229.4 64 224 69.4 224 76V192H157C146.3 192 141 204.9 148.5 212.5L247.5 311.5C252.2 316.2 259.8 316.2 264.5 311.5L363.5 212.5C371.1 204.9 365.7 192 355 192H288V76C288 69.4 282.6 64 276 64z" /> + <glyph glyph-name="bell-slash" + unicode="" + horiz-adv-x="640" d=" M633.99 -23.02L36 444.49C29.1 450.01 19.03 448.9 13.51 442L3.51 429.51C-2.02 422.61 -0.9 412.54 6 407.02L604 -60.49C610.9 -66.01 620.96 -64.89 626.49 -58L636.49 -45.51C642.01 -38.61 640.9 -28.54 633.99 -23.02zM163.53 80C180.24 102.03 198.01 135.8 204.93 190.58L159.46 226.13C156.19 135.4 122.99 105.45 104.62 85.71C98.62 79.2600000000001 95.96 71.55 96.01 64.0000000000001C96.12 47.6000000000001 108.99 32.0000000000001 128.11 32.0000000000001H407.7700000000001L346.3700000000001 80.0000000000001H163.53zM320 352C381.86 352 432 301.86 432 240C432 239.8 431.94 239.62 431.94 239.42C431.96 222.58 433.1 207.65 434.73 193.69L494.26 147.15C485.95 169.28 479.92 198.64 479.92 240C479.92 317.7 425.44 379.9 351.98 395.16V416C351.98 433.67 337.6600000000001 448 320 448S288.02 433.67 288.02 416V395.16C262 389.75 238.57 378.2200000000001 218.89 362.44L257.06 332.6C275 344.82 296.65 352 320 352zM320 -64C355.32 -64 383.9700000000001 -35.35 383.9700000000001 0H256.03C256.03 -35.35 284.68 -64 320 -64z" /> + <glyph glyph-name="bell" + unicode="" + horiz-adv-x="448" d=" M439.39 85.71C420.07 106.47 383.92 137.7 383.92 240C383.92 317.7 329.44 379.9 255.98 395.16V416C255.98 433.67 241.66 448 224 448S192.02 433.67 192.02 416V395.16C118.56 379.9 64.08 317.7 64.08 240C64.08 137.7 27.93 106.47 8.61 85.71C2.61 79.2600000000001 -0.05 71.55 0 64.0000000000001C0.11 47.6000000000001 12.98 32.0000000000001 32.1 32.0000000000001H415.9000000000001C435.0200000000001 32.0000000000001 447.9000000000001 47.6000000000001 448.0000000000001 64.0000000000001C448.0500000000001 71.5500000000001 445.3900000000001 79.27 439.3900000000001 85.71zM67.53 80C88.75 107.97 111.95 154.33 112.06 239.42C112.06 239.62 112 239.8 112 240C112 301.86 162.14 352 224 352S336 301.86 336 240C336 239.8 335.94 239.62 335.94 239.42C336.05 154.32 359.25 107.96 380.4700000000001 80H67.53zM224 -64C259.32 -64 287.9700000000001 -35.35 287.9700000000001 0H160.03C160.03 -35.35 188.68 -64 224 -64z" /> + <glyph glyph-name="bookmark" + unicode="" + horiz-adv-x="384" d=" M336 448H48C21.49 448 0 426.51 0 400V-64L192 48L384 -64V400C384 426.51 362.51 448 336 448zM336 19.57L192 103.57L48 19.57V394A6 6 0 0 0 54 400H330C333.314 400 336 397.317 336 394.004V19.57z" /> + <glyph glyph-name="building" + unicode="" + horiz-adv-x="448" d=" M128 300V340C128 346.6 133.4 352 140 352H180C186.6 352 192 346.6 192 340V300C192 293.4 186.6 288 180 288H140C133.4 288 128 293.4 128 300zM268 288H308C314.6 288 320 293.4 320 300V340C320 346.6 314.6 352 308 352H268C261.4 352 256 346.6 256 340V300C256 293.4 261.4 288 268 288zM140 192H180C186.6 192 192 197.4 192 204V244C192 250.6 186.6 256 180 256H140C133.4 256 128 250.6 128 244V204C128 197.4 133.4 192 140 192zM268 192H308C314.6 192 320 197.4 320 204V244C320 250.6 314.6 256 308 256H268C261.4 256 256 250.6 256 244V204C256 197.4 261.4 192 268 192zM192 108V148C192 154.6 186.6 160 180 160H140C133.4 160 128 154.6 128 148V108C128 101.4 133.4 96 140 96H180C186.6 96 192 101.4 192 108zM268 96H308C314.6 96 320 101.4 320 108V148C320 154.6 314.6 160 308 160H268C261.4 160 256 154.6 256 148V108C256 101.4 261.4 96 268 96zM448 -28V-64H0V-28C0 -21.4 5.4 -16 12 -16H31.5V424C31.5 437.3 42.2 448 55.5 448H392.5C405.8 448 416.5 437.3 416.5 424V-16H436C442.6 -16 448 -21.4 448 -28zM79.5 -15H192V52C192 58.6 197.4 64 204 64H244C250.6 64 256 58.6 256 52V-15H368.5V399L80 400L79.5 -15z" /> + <glyph glyph-name="calendar-alt" + unicode="" + horiz-adv-x="448" d=" M148 160H108C101.4 160 96 165.4 96 172V212C96 218.6 101.4 224 108 224H148C154.6 224 160 218.6 160 212V172C160 165.4 154.6 160 148 160zM256 172V212C256 218.6 250.6 224 244 224H204C197.4 224 192 218.6 192 212V172C192 165.4 197.4 160 204 160H244C250.6 160 256 165.4 256 172zM352 172V212C352 218.6 346.6 224 340 224H300C293.4 224 288 218.6 288 212V172C288 165.4 293.4 160 300 160H340C346.6 160 352 165.4 352 172zM256 76V116C256 122.6 250.6 128 244 128H204C197.4 128 192 122.6 192 116V76C192 69.4 197.4 64 204 64H244C250.6 64 256 69.4 256 76zM160 76V116C160 122.6 154.6 128 148 128H108C101.4 128 96 122.6 96 116V76C96 69.4 101.4 64 108 64H148C154.6 64 160 69.4 160 76zM352 76V116C352 122.6 346.6 128 340 128H300C293.4 128 288 122.6 288 116V76C288 69.4 293.4 64 300 64H340C346.6 64 352 69.4 352 76zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" /> + <glyph glyph-name="calendar-check" + unicode="" + horiz-adv-x="448" d=" M400 384H352V436C352 442.627 346.627 448 340 448H300C293.373 448 288 442.627 288 436V384H160V436C160 442.627 154.627 448 148 448H108C101.373 448 96 442.627 96 436V384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V336C448 362.51 426.51 384 400 384zM394 -16H54A6 6 0 0 0 48 -10V288H400V-10A6 6 0 0 0 394 -16zM341.151 184.65L198.842 43.481C194.137 38.814 186.539 38.844 181.871 43.549L106.78 119.248C102.113 123.953 102.143 131.551 106.848 136.219L129.567 158.755C134.272 163.422 141.87 163.392 146.537 158.686L190.641 114.225L301.713 224.406C306.418 229.073 314.016 229.043 318.6840000000001 224.3379999999999L341.2200000000001 201.62C345.887 196.9149999999999 345.8560000000001 189.317 341.151 184.65z" /> + <glyph glyph-name="calendar-minus" + unicode="" + horiz-adv-x="448" d=" M124 120C117.4 120 112 125.4 112 132V156C112 162.6 117.4 168 124 168H324C330.6 168 336 162.6 336 156V132C336 125.4 330.6 120 324 120H124zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" /> + <glyph glyph-name="calendar-plus" + unicode="" + horiz-adv-x="448" d=" M336 156V132C336 125.4 330.6 120 324 120H248V44C248 37.4 242.6 32 236 32H212C205.4 32 200 37.4 200 44V120H124C117.4 120 112 125.4 112 132V156C112 162.6 117.4 168 124 168H200V244C200 250.6 205.4 256 212 256H236C242.6 256 248 250.6 248 244V168H324C330.6 168 336 162.6 336 156zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" /> + <glyph glyph-name="calendar-times" + unicode="" + horiz-adv-x="448" d=" M311.7 73.3L294.7 56.3C290 51.6 282.4 51.6 277.7 56.3L224 110.1L170.3 56.4C165.6 51.7 158 51.7 153.3 56.4L136.3 73.4C131.6 78.1 131.6 85.7000000000001 136.3 90.4L190 144.1L136.3 197.8C131.6 202.5 131.6 210.1 136.3 214.8L153.3 231.8C158 236.5 165.6 236.5 170.3 231.8L224 178.1L277.7 231.8C282.4 236.5 290 236.5 294.7 231.8L311.7 214.8C316.4 210.1 316.4 202.5 311.7 197.8L257.9 144L311.6 90.3C316.4 85.6 316.4 78 311.7 73.3zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" /> + <glyph glyph-name="calendar" + unicode="" + horiz-adv-x="448" d=" M400 384H352V436C352 442.6 346.6 448 340 448H300C293.4 448 288 442.6 288 436V384H160V436C160 442.6 154.6 448 148 448H108C101.4 448 96 442.6 96 436V384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V336C448 362.5 426.5 384 400 384zM394 -16H54C50.7 -16 48 -13.3 48 -10V288H400V-10C400 -13.3 397.3 -16 394 -16z" /> + <glyph glyph-name="caret-square-down" + unicode="" + horiz-adv-x="448" d=" M125.1 240H322.9C333.6 240 339 227 331.4 219.5L232.5 121.2C227.8 116.5 220.3 116.5 215.6 121.2L116.7 219.5C109 227 114.4 240 125.1 240zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" /> + <glyph glyph-name="caret-square-left" + unicode="" + horiz-adv-x="448" d=" M272 290.9V93.1C272 82.4 259 77 251.5 84.6L153.2 183.5C148.5 188.2 148.5 195.7 153.2 200.4L251.5 299.3C259 307 272 301.6 272 290.9zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" /> + <glyph glyph-name="caret-square-right" + unicode="" + horiz-adv-x="448" d=" M176 93.1V290.9C176 301.6 189 307 196.5 299.4L294.8 200.5C299.5 195.8 299.5 188.3 294.8 183.6L196.5 84.7000000000001C189 77.0000000000001 176 82.4 176 93.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" /> + <glyph glyph-name="caret-square-up" + unicode="" + horiz-adv-x="448" d=" M322.9 144H125.1C114.4 144 109 157 116.6 164.5L215.5 262.8C220.2 267.5 227.7 267.5 232.4 262.8L331.3 164.5C339 157 333.6 144 322.9000000000001 144zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" /> + <glyph glyph-name="chart-bar" + unicode="" + horiz-adv-x="512" d=" M396.8 96H419.2C425.6 96 432 102.4 432 108.8V339.2C432 345.6 425.6 352 419.2 352H396.8C390.4000000000001 352 384 345.6 384 339.2V108.8C384 102.4 390.4 96 396.8 96zM204.8 96H227.2C233.6 96 240.0000000000001 102.4 240.0000000000001 108.8V307.2C240.0000000000001 313.6 233.6 320 227.2 320H204.8C198.4 320 192 313.6 192 307.2V108.8C192 102.4 198.4 95.9999999999999 204.8 95.9999999999999zM300.8 96H323.2C329.6 96 336 102.4 336 108.8V243.2C336 249.6 329.6 256 323.2 256H300.8C294.4000000000001 256 288 249.6 288 243.2V108.8C288 102.4 294.4 95.9999999999999 300.8 95.9999999999999zM496 48H48V368C48 376.8400000000001 40.84 384 32 384H16C7.16 384 0 376.8400000000001 0 368V32C0 14.33 14.33 0 32 0H496C504.84 0 512 7.16 512 16V32C512 40.84 504.84 48 496 48zM108.8 96H131.2C137.6 96 144 102.4 144 108.8V179.2000000000001C144 185.6 137.6 192.0000000000001 131.2 192.0000000000001H108.8C102.4 192.0000000000001 96 185.6000000000001 96 179.2000000000001V108.8000000000001C96 102.4000000000001 102.4 96.0000000000001 108.8 96.0000000000001z" /> + <glyph glyph-name="check-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M396.204 261.733L373.668 284.451C369.0010000000001 289.156 361.403 289.187 356.698 284.519L215.346 144.303L155.554 204.58C150.887 209.285 143.289 209.316 138.584 204.649L115.865 182.113C111.16 177.446 111.129 169.848 115.797 165.142L206.578 73.6259999999999C211.245 68.9209999999999 218.843 68.8899999999999 223.548 73.5579999999999L396.1370000000001 244.762C400.8410000000001 249.43 400.8710000000001 257.0279999999999 396.2040000000001 261.733z" /> + <glyph glyph-name="check-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM400 16H48V368H400V16zM364.136 257.724L191.547 86.52C186.842 81.853 179.244 81.883 174.577 86.588L83.796 178.104C79.129 182.809 79.159 190.407 83.865 195.075L106.584 217.611C111.289 222.278 118.887 222.248 123.554 217.542L183.346 157.265L324.698 297.481C329.403 302.148 337.001 302.118 341.668 297.413L364.204 274.695C368.871 269.9890000000001 368.841 262.391 364.136 257.724z" /> + <glyph glyph-name="circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8z" /> + <glyph glyph-name="clipboard" + unicode="" + horiz-adv-x="384" d=" M336 384H256C256 419.29 227.29 448 192 448S128 419.29 128 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V336C384 362.51 362.51 384 336 384zM330 -16H54A6 6 0 0 0 48 -10V330A6 6 0 0 0 54 336H96V300C96 293.373 101.373 288 108 288H276C282.627 288 288 293.373 288 300V336H330A6 6 0 0 0 336 330V-10A6 6 0 0 0 330 -16zM192 408C205.255 408 216 397.255 216 384S205.255 360 192 360S168 370.745 168 384S178.745 408 192 408" /> + <glyph glyph-name="clock" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM317.8 96.4L232.9 158.1C229.8 160.4 228 164 228 167.8V332C228 338.6 233.4 344 240 344H272C278.6 344 284 338.6 284 332V190.3L350.8 141.7C356.2 137.8 357.3 130.3 353.4000000000001 124.9L334.6 99C330.7000000000001 93.7 323.2000000000001 92.5 317.8 96.4z" /> + <glyph glyph-name="clone" + unicode="" + horiz-adv-x="512" d=" M464 448H144C117.49 448 96 426.51 96 400V352H48C21.49 352 0 330.51 0 304V-16C0 -42.51 21.49 -64 48 -64H368C394.51 -64 416 -42.51 416 -16V32H464C490.51 32 512 53.49 512 80V400C512 426.51 490.51 448 464 448zM362 -16H54A6 6 0 0 0 48 -10V298A6 6 0 0 0 54 304H96V80C96 53.49 117.49 32 144 32H368V-10A6 6 0 0 0 362 -16zM458 80H150A6 6 0 0 0 144 86V394A6 6 0 0 0 150 400H458A6 6 0 0 0 464 394V86A6 6 0 0 0 458 80z" /> + <glyph glyph-name="closed-captioning" + unicode="" + horiz-adv-x="512" d=" M464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM458 48H54C50.7 48 48 50.7 48 54V330C48 333.3 50.7 336 54 336H458C461.3 336 464 333.3 464 330V54C464 50.7 461.3 48 458 48zM246.9 133.7C248.6 131.3 248.4 128.1 246.4 126C192.8 69.2 73.6 93.9 73.6 193.9C73.6 291.2 195.3 313.4 246.1 264C248.2 262 248.6 260.8 247.1 258.3L229.6 227.8C227.7 224.7 223.4 223.8 220.5 226.1C179.7 258.1 125.9 241.0000000000001 125.9 194.9C125.9 146.9 176.9 124.4 218.1 162.3C220.9 164.8 225.2 164.4 227.3 161.4L246.9 133.7000000000001zM437.3 133.7C439 131.3 438.8 128.1 436.8 126C383.2 69.1 264 93.9 264 193.9C264 291.2 385.7 313.4 436.5 264C438.6 262 439 260.8 437.5 258.3L420 227.8C418.1 224.7 413.8 223.8 410.9 226.1C370.1 258.1 316.3 241.0000000000001 316.3 194.9C316.3 146.9 367.3 124.4 408.5 162.3C411.3 164.8 415.6 164.4 417.7 161.4L437.3 133.7000000000001z" /> + <glyph glyph-name="comment-alt" + unicode="" + horiz-adv-x="512" d=" M448 448H64C28.7 448 0 419.3 0 384V96C0 60.7 28.7 32 64 32H160V-52C160 -59.1 165.8 -64 172 -64C174.4 -64 176.9 -63.3 179.1 -61.6L304 32H448C483.3 32 512 60.7 512 96V384C512 419.3 483.3 448 448 448zM464 96C464 87.2 456.8 80 448 80H288L275.2 70.4L208 20V80H64C55.2 80 48 87.2 48 96V384C48 392.8 55.2 400 64 400H448C456.8 400 464 392.8 464 384V96z" /> + <glyph glyph-name="comment-dots" + unicode="" + horiz-adv-x="512" d=" M144 240C126.3 240 112 225.7 112 208S126.3 176 144 176S176 190.3 176 208S161.7 240 144 240zM256 240C238.3 240 224 225.7 224 208S238.3 176 256 176S288 190.3 288 208S273.7 240 256 240zM368 240C350.3 240 336 225.7 336 208S350.3 176 368 176S400 190.3 400 208S385.7 240 368 240zM256 416C114.6 416 0 322.9 0 208C0 160.4 19.9 116.8 52.9 81.7C38 42.3 7 8.9 6.5 8.5C-0.1 1.5 -1.9 -8.7 1.9 -17.5S14.4 -32 24 -32C85.5 -32 134 -6.3 163.1 14.3C192 5.2 223.2 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416zM256 48C229.3 48 202.9 52.1 177.6 60.1L154.9 67.3L135.4 53.5C121.1 43.4 101.5 32.1 77.9 24.5C85.2 36.6 92.3 50.2 97.8 64.7L108.4 92.8L87.8 114.6C69.7 133.9 48 165.8 48 208C48 296.2 141.3 368 256 368S464 296.2 464 208S370.7 48 256 48z" /> + <glyph glyph-name="comment" + unicode="" + horiz-adv-x="512" d=" M256 416C114.6 416 0 322.9 0 208C0 160.4 19.9 116.8 52.9 81.7C38 42.3 7 8.9 6.5 8.5C-0.1 1.5 -1.9 -8.7 1.9 -17.5S14.4 -32 24 -32C85.5 -32 134 -6.3 163.1 14.3C192 5.2 223.2 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416zM256 48C229.3 48 202.9 52.1 177.6 60.1L154.9 67.3L135.4 53.5C121.1 43.4 101.5 32.1 77.9 24.5C85.2 36.6 92.3 50.2 97.8 64.7L108.4 92.8L87.8 114.6C69.7 133.9 48 165.8 48 208C48 296.2 141.3 368 256 368S464 296.2 464 208S370.7 48 256 48z" /> + <glyph glyph-name="comments" + unicode="" + horiz-adv-x="576" d=" M532 61.8C559.5 88.9 576 122.9 576 160C576 240 499.5 306.1 399.8 317.9C368.3 375.5 294.3 416 208 416C93.1 416 0 344.4 0 256C0 219 16.5 185 44 157.8C28.7 127.1 6.7 103.3 6.3 102.9C0 96.2000000000001 -1.8 86.4 1.9 77.9C5.5 69.4 13.9 63.9 23.1 63.9C76.6 63.9 119.8 84.1 148.3 102.7000000000001C157.5 100.6 167 99.0000000000001 176.7 97.8000000000001C208.1 40.4 281.8 0 368 0C388.8 0 408.8 2.4 427.8 6.8C456.3 -11.7 499.4 -32 553 -32C562.2 -32 570.5 -26.5 574.2 -18C577.8000000000001 -9.5 576.1 0.3 569.8000000000001 7C569.4000000000001 7.3 547.3000000000001 31.1 532.0000000000001 61.8zM139.2 154.1L122.1 143C108 133.9 93.6 126.7 79 121.6C81.7 126.3 84.4 131.3 87 136.4L102.5 167.5000000000001L77.7 192C64.2 205.4 48 227.3 48 256C48 316.7 121.3 368 208 368S368 316.7 368 256S294.7 144 208 144C191.5 144 175 145.9 159 149.6L139.2 154.1zM498.3 96L473.6 71.6L489.1 40.5C491.7 35.4 494.4 30.4 497.1 25.7C482.5 30.8 468.1 38 454 47.1L436.9 58.2L417 53.6C401 49.9 384.5 47.9999999999999 368 47.9999999999999C314 47.9999999999999 265.8 68.1 236.7 97.6999999999999C338 108.5 416 175.1 416 256C416 259.4 415.6 262.7 415.3 266C479.7 251.5 528 209.2 528 160C528 131.3 511.8 109.4 498.3 96z" /> + <glyph glyph-name="compass" + unicode="" + horiz-adv-x="496" d=" M347.94 318.14L203.6 252.17A31.938 31.938 0 0 1 187.83 236.4L121.86 92.06C114.25 75.41 131.4 58.2499999999999 148.06 65.86L292.4 131.8299999999999A31.938 31.938 0 0 1 308.17 147.5999999999999L374.14 291.94C381.75 308.5999999999999 364.6 325.7499999999999 347.94 318.1399999999999zM270.58 169.42C258.11 156.9499999999999 237.89 156.9499999999999 225.42 169.42C212.95 181.89 212.95 202.11 225.42 214.58C237.89 227.05 258.11 227.05 270.58 214.58C283.05 202.11 283.05 181.89 270.58 169.42zM248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 -8C137.72 -8 48 81.72 48 192S137.72 392 248 392S448 302.28 448 192S358.28 -8 248 -8z" /> + <glyph glyph-name="copy" + unicode="" + horiz-adv-x="448" d=" M433.941 382.059L382.059 433.941A48 48 0 0 1 348.118 448H176C149.49 448 128 426.51 128 400V352H48C21.49 352 0 330.51 0 304V-16C0 -42.51 21.49 -64 48 -64H272C298.51 -64 320 -42.51 320 -16V32H400C426.51 32 448 53.49 448 80V348.118A48 48 0 0 1 433.941 382.059zM266 -16H54A6 6 0 0 0 48 -10V298A6 6 0 0 0 54 304H128V80C128 53.49 149.49 32 176 32H272V-10A6 6 0 0 0 266 -16zM394 80H182A6 6 0 0 0 176 86V394A6 6 0 0 0 182 400H288V312C288 298.745 298.745 288 312 288H400V86A6 6 0 0 0 394 80zM400 336H336V400H345.632C347.223 400 348.749 399.368 349.875 398.243L398.243 349.875A6 6 0 0 0 400 345.632V336z" /> + <glyph glyph-name="copyright" + unicode="" + horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM363.351 93.064C353.737 83.352 317.8210000000001 51.668 259.286 51.668C176.856 51.668 118.802 113.093 118.802 193.235C118.802 272.387 179.077 332.636 258.564 332.636C314.095 332.636 347.302 306.016 356.157 297.857A11.965 11.965 0 0 0 358.093 282.535L339.938 254.422C336.097 248.472 327.972 247.14 322.439 251.501C313.844 258.277 290.625 274.039 260.731 274.039C212.428 274.039 182.815 238.709 182.815 193.957C182.815 152.368 209.703 110.265 261.092 110.265C293.749 110.265 317.935 129.304 326.818 137.49C332.088 142.347 340.414 141.529 344.638 135.752L364.503 108.582A11.947000000000001 11.947000000000001 0 0 0 363.351 93.064z" /> + <glyph glyph-name="credit-card" + unicode="" + horiz-adv-x="576" d=" M527.9 416H48.1C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48.1 -32H527.9C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 527.9 416zM54.1 368H521.9C525.1999999999999 368 527.9 365.3 527.9 362V320H48.1V362C48.1 365.3 50.8 368 54.1 368zM521.9 16H54.1C50.8 16 48.1 18.7 48.1 22V192H527.9V22C527.9 18.7 525.1999999999999 16 521.9 16zM192 116V76C192 69.4 186.6 64 180 64H108C101.4 64 96 69.4 96 76V116C96 122.6 101.4 128 108 128H180C186.6 128 192 122.6 192 116zM384 116V76C384 69.4 378.6 64 372 64H236C229.4 64 224 69.4 224 76V116C224 122.6 229.4 128 236 128H372C378.6 128 384 122.6 384 116z" /> + <glyph glyph-name="dizzy" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM214.2 209.9C222 217.7 222 230.4 214.2 238.2L196.3 256L214.2 273.9C222 281.7000000000001 222 294.4 214.2 302.2000000000001C206.4 310 193.7 310 185.9 302.2000000000001L168 284.3L150.2 302.1C142.4 309.9000000000001 129.7 309.9000000000001 121.9 302.1C114.1 294.3 114.1 281.6 121.9 273.8L139.8 255.9L121.9 238C114.1 230.2 114.1 217.5 121.9 209.7C129.7 201.9 142.4 201.9 150.2 209.7L168 227.5L185.8 209.7C193.7 202 206.3 202 214.2 209.9zM374.2 302.1C366.4 309.9000000000001 353.7 309.9000000000001 345.9 302.1L328 284.3L310.2 302.1C302.4 309.9000000000001 289.7 309.9000000000001 281.9 302.1C274.1 294.3 274.1 281.6 281.9 273.8L299.8 255.9L281.9 238C274.1 230.2 274.1 217.5 281.9 209.7C289.7 201.9 302.4 201.9 310.2 209.7L328 227.5L345.8 209.7C353.6 201.9 366.3 201.9 374.1 209.7C381.9000000000001 217.5 381.9000000000001 230.2 374.1 238L356.3 256L374.2 273.9C381.9 281.7000000000001 381.9 294.3 374.2 302.1zM248 176C212.7 176 184 147.3 184 112S212.7 48 248 48S312 76.7 312 112S283.3 176 248 176z" /> + <glyph glyph-name="dot-circle" + unicode="" + horiz-adv-x="512" d=" M256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 272C211.817 272 176 236.183 176 192S211.817 112 256 112S336 147.817 336 192S300.183 272 256 272z" /> + <glyph glyph-name="edit" + unicode="" + horiz-adv-x="576" d=" M402.3 103.1L434.3 135.1C439.3 140.1 448 136.6 448 129.4V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H321.5C328.6 384 332.2 375.4 327.2 370.3L295.2 338.3C293.7 336.8 291.7 336 289.5 336H48V-16H400V97.5C400 99.6 400.8 101.6 402.3 103.1zM558.9 304.9000000000001L296.3 42.3L205.9 32.3C179.7 29.4 157.4 51.5 160.3 77.9L170.3 168.3000000000001L432.9 430.9C455.8 453.8 492.8 453.8 515.6 430.9L558.8000000000001 387.7C581.7 364.8 581.7 327.7 558.9000000000001 304.9zM460.1 274L402 332.1L216.2 146.2L208.9 80.9L274.2 88.2L460.1 274zM524.9 353.7L481.7 396.9C477.6 401 470.9 401 466.9 396.9L436 366L494.1 307.9L525 338.8C529 343 529 349.6 524.9 353.7000000000001z" /> + <glyph glyph-name="envelope-open" + unicode="" + horiz-adv-x="512" d=" M494.586 283.4840000000001C489.889 287.367 382.863 373.4340000000001 359.3350000000001 392.141C337.231 409.809 299.437 448 256 448C212.795 448 175.364 410.283 152.665 392.141C128.202 372.6910000000001 21.595 286.9460000000001 17.515 283.592A48.004000000000005 48.004000000000005 0 0 1 0 246.515V-16C0 -42.51 21.49 -64 48 -64H464C490.51 -64 512 -42.51 512 -16V246.491A48 48 0 0 1 494.586 283.4840000000001zM464 -10A6 6 0 0 0 458 -16H54A6 6 0 0 0 48 -10V243.653C48 245.466 48.816 247.179 50.226 248.318C66.096 261.132 159.019 335.872 182.59 354.611C200.755 369.12 232.398 400 256 400C279.693 400 311.857 368.631 329.41 354.611C352.983 335.87 445.913 261.118 461.776 248.295A5.99 5.99 0 0 0 463.9999999999999 243.632V-10zM432.009 177.704C436.2580000000001 172.545 435.474 164.909 430.264 160.723C401.289 137.44 370.99 113.126 359.3350000000001 103.86C336.636 85.717 299.205 48 256 48C212.548 48 174.713 86.237 152.665 103.86C141.386 112.827 110.921 137.273 81.738 160.725C76.528 164.912 75.745 172.547 79.993 177.706L95.251 196.234C99.429 201.307 106.908 202.077 112.03 197.96C140.648 174.959 170.596 150.925 182.59 141.389C200.143 127.369 232.307 96 256 96C279.602 96 311.246 126.88 329.41 141.389C341.404 150.924 371.354 174.959 399.973 197.957C405.095 202.073 412.574 201.303 416.751 196.23L432.009 177.704z" /> + <glyph glyph-name="envelope" + unicode="" + horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM464 336V295.195C441.578 276.936 405.832 248.544 329.413 188.705C312.572 175.458 279.212 143.633 256 144.004C232.792 143.629 199.421 175.463 182.587 188.705C106.18 248.535 70.425 276.933 48 295.195V336H464zM48 48V233.602C70.914 215.351 103.409 189.74 152.938 150.956C174.795 133.751 213.072 95.77 256 96.001C298.717 95.77 336.509 133.2000000000001 359.053 150.948C408.581 189.7310000000001 441.085 215.3490000000001 464 233.6010000000001V48H48z" /> + <glyph glyph-name="eye-slash" + unicode="" + horiz-adv-x="576" d=" M272.702 88.861C192.219 97.872 136.49 175.747 155.772 255.903L272.702 88.861zM288 56C185.444 56 95.908 110.701 48 192C69.755 228.917 100.1 260.342 136.344 283.658L108.803 323.0010000000001C67.001 295.766 31.921 259.259 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.004 71.994 168.14 8 288 8A332.89 332.89 0 0 1 327.648 10.367L295.627 56.111A284.16 284.16 0 0 0 288 56zM569.354 167.631C536.1220000000001 111.237 485.933 65.889 425.8000000000001 38.139L473.9160000000001 -30.601C477.717 -36.03 476.3960000000001 -43.513 470.967 -47.313L450.23 -61.83C444.8010000000001 -65.631 437.3180000000001 -64.3099999999999 433.5180000000001 -58.881L102.084 414.601C98.283 420.03 99.604 427.513 105.033 431.313L125.77 445.83C131.199 449.631 138.682 448.31 142.482 442.881L198.008 363.556C226.612 371.657 256.808 376 288 376C407.86 376 512.996 312.006 569.354 216.369A48.00200000000001 48.00200000000001 0 0 0 569.354 167.631zM528 192C483.843 266.933 404.323 319.27 311.838 327.007C302.042 316.9220000000001 296 303.17 296 288C296 257.072 321.072 232 352 232S408 257.072 408 288L407.999 288.0420000000001C438.6310000000001 230.765 424.738 157.7820000000001 371.0710000000001 116.323L397.766 78.188C452.626 101.449 498.308 141.614 528 192z" /> + <glyph glyph-name="eye" + unicode="" + horiz-adv-x="576" d=" M569.354 216.369C512.97 312.051 407.81 376 288 376C168.14 376 63.004 312.006 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.031 71.949 168.19 8 288 8C407.86 8 512.996 71.994 569.354 167.631A47.997 47.997 0 0 1 569.354 216.369zM288 56C185.444 56 95.909 110.701 48 192C92.157 266.933 171.677 319.27 264.1620000000001 327.007C273.9580000000001 316.9220000000001 280 303.17 280 288C280 257.072 254.928 232 224 232S168 257.072 168 288L168.001 288.0420000000001C157.794 268.957 152 247.156 152 224C152 148.889 212.889 88 288 88S424 148.889 424 224C424 255.031 413.6 283.629 396.105 306.515C451.704 283.362 498.009 242.894 528 192C480.092 110.701 390.5560000000001 56 288 56z" /> + <glyph glyph-name="file-alt" + unicode="" + horiz-adv-x="384" d=" M288 200V172C288 165.4 282.6 160 276 160H108C101.4 160 96 165.4 96 172V200C96 206.6 101.4 212 108 212H276C282.6 212 288 206.6 288 200zM276 128H108C101.4 128 96 122.6 96 116V88C96 81.4 101.4 76 108 76H276C282.6 76 288 81.4 288 88V116C288 122.6 282.6 128 276 128zM384 316.1V-16C384 -42.5 362.5 -64 336 -64H48C21.5 -64 0 -42.5 0 -16V400C0 426.5 21.5 448 48 448H252.1C264.8 448 277 442.9 286 433.9L369.9 350C378.9 341.1 384 328.8 384 316.1zM256 396.1V320H332.1L256 396.1zM336 -16V272H232C218.7 272 208 282.7 208 296V400H48V-16H336z" /> + <glyph glyph-name="file-archive" + unicode="" + horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM256 396.118L332.118 320H256V396.118zM336 -16H48V400H127.714V384H159.714V400H208V296C208 282.745 218.745 272 232 272H336V-16zM192.27 352H160.27V384H192.27V352zM160.27 352V320H128.27V352H160.27zM160.27 288V256H128.27V288H160.27zM192.27 288H160.27V320H192.27V288zM194.179 182.322A12 12 0 0 1 182.406 192H160.27V224H128.27V192L108.58 94.894C101.989 62.389 126.834 32 160 32C193.052 32 217.871 62.192 211.476 94.62L194.179 182.322zM160.27 57.927C142.352 57.927 127.826 70.032 127.826 84.963C127.826 99.895 142.351 111.999 160.27 111.999S192.714 99.894 192.714 84.963C192.714 70.032 178.188 57.927 160.27 57.927zM192.27 224H160.27V256H192.27V224z" /> + <glyph glyph-name="file-audio" + unicode="" + horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM192 60.024C192 49.333 179.074 43.979 171.515 51.539L136 87.514H108C101.373 87.514 96 92.887 96 99.514V155.514C96 162.141 101.373 167.514 108 167.514H136L171.515 204.461C179.075 212.021 192 206.667 192 195.976V60.024zM233.201 107.154C242.252 116.451 242.261 131.287 233.202 140.593C211.053 163.345 245.437 196.839 267.597 174.074C294.795 146.134 294.809 101.63 267.598 73.673C245.805 51.287 210.651 83.988 233.201 107.154z" /> + <glyph glyph-name="file-code" + unicode="" + horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM149.677 99.115L116.854 128L149.676 156.885A8.793 8.793 0 0 1 150.281 169.509L132.878 188.073C129.494 191.686 123.914 191.735 120.44 188.4740000000001L62.78 134.42C59.077 130.946 59.076 125.053 62.781 121.5800000000001L120.44 67.525A8.738 8.738 0 0 1 126.452 65.1440000000001A8.746 8.746 0 0 1 132.879 67.9260000000001L150.282 86.489A8.795 8.795 0 0 1 149.677 99.115zM233.961 226.965L209.56 234.049A8.796 8.796 0 0 1 198.655 228.051L144.04 39.939C142.687 35.279 145.378 30.387 150.038 29.0340000000001L174.441 21.95C179.121 20.595 183.998 23.304 185.346 27.948L239.958 216.06C241.312 220.72 238.621 225.612 233.961 226.9650000000001zM321.219 134.42L263.561 188.475C260.035 191.7820000000001 254.462 191.6400000000001 251.122 188.074L233.719 169.511A8.795 8.795 0 0 1 234.324 156.886L267.146 128L234.324 99.115A8.793 8.793 0 0 1 233.719 86.491L251.122 67.927A8.797 8.797 0 0 1 263.5610000000001 67.526H263.5600000000001L321.2200000000001 121.581C324.923 125.054 324.923 130.947 321.2190000000001 134.42z" /> + <glyph glyph-name="file-excel" + unicode="" + horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM260 224H231.2C226.8 224 222.8 221.6 220.7 217.7C202.7 184.6 198.5 175.3 192.1 160C178.2 189.1 185.2 177.3 163.5 217.7C161.4 221.6 157.3 224 152.9 224H124C114.7 224 109 214 113.6 206L159.9 128L113.6 50C108.9 42 114.7 32 124 32H152.9C157.3 32 161.3 34.4 163.4 38.3C185.1 78.3 186.4 83.3 192 96C206.9 65.8 197.9 80.1 220.6 38.3C222.7 34.4 226.8 32 231.2 32H260C269.3 32 275 42 270.4 50L224 128C224.7 129.1 254.3 178.5 270.3 206C275 214 269.2 224 260 224z" /> + <glyph glyph-name="file-image" + unicode="" + horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM80 32H304V160L280.5 183.5C275.8 188.2 268.2 188.2 263.5 183.5L176 96L136.5 135.5C131.8 140.2 124.2 140.2 119.5 135.5L80 96V32zM128 272C101.5 272 80 250.5 80 224S101.5 176 128 176S176 197.5 176 224S154.5 272 128 272z" /> + <glyph glyph-name="file-pdf" + unicode="" + horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM298.2 127.7C286 139.7 251.2 136.4 233.8 134.2C216.6 144.7 205.1 159.2 197 180.5C200.9 196.6 207.1 221.1 202.4 236.5C198.2 262.7 164.6 260.1 159.8 242.4C155.4 226.3 159.4 203.9 166.8 175.3C156.8 151.4 141.9 119.3 131.4 100.9C111.4 90.6 84.4 74.7 80.4 54.7C77.1 38.9 106.4 -0.5 156.5 85.9C178.9 93.3 203.3 102.4 224.9 106C243.8 95.8 265.9 89 280.7 89C306.2 89 308.7 117.2 298.2 127.7zM100.1 49.9C105.2 63.6 124.6 79.4 130.5 84.9C111.5 54.6 100.1 49.2 100.1 49.9zM181.7 240.5C189.1 240.5 188.4 208.4 183.5 199.7C179.1 213.6 179.2 240.5 181.7 240.5zM157.3 103.9C167 120.8 175.3 140.9 182 158.6C190.3 143.5 200.9 131.4 212.1 123.1C191.3 118.8 173.2 109.9999999999999 157.3 103.9zM288.9 108.9S283.9 102.9 251.6 116.7C286.7 119.3 292.5 111.3 288.9 108.9z" /> + <glyph glyph-name="file-powerpoint" + unicode="" + horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM120 44V212C120 218.6 125.4 224 132 224H201.2C237.9 224 264 197 264 157.7C264 83.4 195.3 91.2 168.5 91.2V44C168.5 37.4 163.1 32 156.5 32H132C125.4 32 120 37.4 120 44zM168.5 131.4H191.5C199.4 131.4 205.4 133.8 209.6 138.6C218.1 148.4 218 167.1 209.7 176.4C205.6 181 199.8 183.4 192.3 183.4H168.4V131.4z" /> + <glyph glyph-name="file-video" + unicode="" + horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM276.687 195.303L224 142.626V180C224 191.046 215.046 200 204 200H100C88.954 200 80 191.046 80 180V76C80 64.954 88.954 56 100 56H204C215.046 56 224 64.954 224 76V113.374L276.687 60.7000000000001C286.704 50.682 304 57.72 304 72.014V183.989C304 198.3 286.691 205.308 276.687 195.303z" /> + <glyph glyph-name="file-word" + unicode="" + horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM268.1 192C262.4000000000001 192 257.5 188 256.4000000000001 182.5C235.8000000000001 84.8 236.0000000000001 87.1 235.4000000000001 79C235.2000000000001 80.2 235.0000000000001 81.6 234.7000000000001 83.3C233.9000000000001 88.4 235.0000000000001 83.1 211.1000000000001 182.8C209.8000000000001 188.2 205.0000000000001 192 199.4000000000001 192H186.1000000000001C180.6000000000001 192 175.8000000000001 188.2 174.4000000000001 182.9C150.0000000000001 83.9 150.4000000000001 86.7 149.6000000000001 79.2C149.5000000000001 80.3 149.4000000000001 81.7 149.1000000000001 83.4C148.4000000000001 88.6 135.0000000000001 156.7 130.0000000000001 182.4C128.9000000000001 188 124.0000000000001 192.1 118.2000000000001 192.1H101.4000000000001C93.6000000000001 192.1 87.9000000000001 184.8 89.7000000000001 177.3C97.7000000000001 144.6999999999999 116.4000000000001 67.8 122.9000000000001 41.3C124.2000000000001 35.9 129.0000000000001 32.1999999999999 134.6000000000001 32.1999999999999H159.8000000000001C165.3000000000001 32.1999999999999 170.1000000000001 35.8999999999999 171.4 41.3L189.3000000000001 112.6999999999999C190.8000000000001 118.8999999999999 191.8000000000001 124.6999999999999 192.3000000000001 130L195.2000000000001 112.6999999999999C195.3000000000001 112.3 207.8000000000001 62.1999999999999 213.1000000000001 41.3C214.4000000000001 35.9999999999999 219.2000000000001 32.1999999999999 224.7000000000001 32.1999999999999H249.4000000000001C254.9000000000001 32.1999999999999 259.7000000000001 35.8999999999999 261.0000000000001 41.3C281.8000000000001 123.1999999999999 291.2000000000001 160.3 295.5000000000001 177.3C297.4000000000001 184.9 291.7000000000001 192.2 283.9000000000001 192.2H268.1z" /> + <glyph glyph-name="file" + unicode="" + horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48z" /> + <glyph glyph-name="flag" + unicode="" + horiz-adv-x="512" d=" M336.174 368C287.042 368 242.869 400 174.261 400C142.96 400 115.958 393.5180000000001 93.54 384.832A48.04 48.04 0 0 1 95.682 405.559C93.067 428.425 74.167 446.406 51.201 447.896C23.242 449.71 0 427.569 0 400C0 382.236 9.657 366.738 24 358.438V-48C24 -56.837 31.163 -64 40 -64H56C64.837 -64 72 -56.837 72 -48V35.443C109.869 52.72 143.259 64 199.826 64C248.958 64 293.131 32 361.7390000000001 32C420.218 32 463.711 54.617 490.287 71.981C503.846 80.839 512 95.949 512 112.145V352.063C512 386.522 476.736 409.831 445.096 396.18C409.193 380.6910000000001 371.641 368 336.174 368zM464 112C442.217 96.588 403.176 80 361.7390000000001 80C301.7940000000001 80 259.737 112 199.826 112C156.465 112 103.447 102.597 72 88V320C93.784 335.4120000000001 132.824 352 174.261 352C234.206 352 276.2630000000001 320 336.1740000000001 320C379.4450000000001 320 432.4940000000001 337.366 464 352V112z" /> + <glyph glyph-name="flushed" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM344 304C299.8 304 264 268.2 264 224S299.8 144 344 144S424 179.8 424 224S388.2 304 344 304zM344 176C317.5 176 296 197.5 296 224S317.5 272 344 272S392 250.5 392 224S370.5 176 344 176zM344 248C330.7 248 320 237.3 320 224S330.7 200 344 200S368 210.7 368 224S357.3 248 344 248zM232 224C232 268.2 196.2 304 152 304S72 268.2 72 224S107.8 144 152 144S232 179.8 232 224zM152 176C125.5 176 104 197.5 104 224S125.5 272 152 272S200 250.5 200 224S178.5 176 152 176zM152 248C138.7 248 128 237.3 128 224S138.7 200 152 200S176 210.7 176 224S165.3 248 152 248zM312 104H184C170.8 104 160 93.2 160 80S170.8 56 184 56H312C325.2 56 336 66.8 336 80S325.2 104 312 104z" /> + <glyph glyph-name="folder-open" + unicode="" + horiz-adv-x="576" d=" M527.943 224H480V272C480 298.51 458.51 320 432 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H448A48.001 48.001 0 0 1 488.704 22.56L568.646 150.56C588.5939999999999 182.477 565.608 224 527.943 224zM54 336H188.118L252.118 272H426A6 6 0 0 0 432 266V224H152A48 48 0 0 1 110.902 200.798L48 96.551V330.007A5.993 5.993 0 0 0 54 336zM448 48H72L149.234 176H528L448 48z" /> + <glyph glyph-name="folder" + unicode="" + horiz-adv-x="512" d=" M464 320H272L217.37 374.63C211.37 380.63 203.23 384 194.74 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320zM464 48H48V336H188.12L242.75 281.37C248.75 275.37 256.89 272 265.38 272H464V48z" /> + <glyph glyph-name="frown-open" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM200 240C200 257.7 185.7 272 168 272S136 257.7 136 240S150.3 208 168 208S200 222.3 200 240zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM248 160C212.4 160 159.2 138.7 152.2 98.8C150.2 87 161.2 77.3 172.7 80.7C203.9 90.3 232.1 96 248 96S292.1 90.3 323.3 80.7C334.7 77.2 345.8 87 343.8 98.8C336.8 138.7 283.6 160 248 160z" /> + <glyph glyph-name="frown" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM248 144C207.8 144 170 126.3 144.2 95.4C135.7 85.2 137.1 70.1 147.3 61.6C157.5 53.2 172.6 54.4999999999999 181.1 64.7C197.7 84.6 222.1 96.1 248 96.1S298.3 84.7 314.9 64.7C323 55 338 52.8 348.7 61.6C358.9 70.1 360.2 85.2 351.8 95.4C326 126.3 288.2 144 248 144z" /> + <glyph glyph-name="futbol" + unicode="" + horiz-adv-x="496" d=" M483.8 268.6C449.8 373.4 352.6 440 248.1 440C222.7 440 196.9 436.1 171.4 427.8C41.2 385.5 -30.1 245.6 12.2 115.4C46.2 10.6 143.4 -56 247.9 -56C273.3 -56 299.1 -52.1 324.6 -43.8C454.8 -1.5 526.1 138.4 483.8 268.6zM409.3 74.9L357.1 68.5L313.4000000000001 129.4L337.8 204.6L408.9 226.7L447.8 190.3C447.6 159.6 440.4 129.1999999999999 426.1 101.1C421.4 91.8 415.4 83.3 409.3 74.9zM409.3 310.3L398.9000000000001 257.2L328.2000000000001 235.2L264.0000000000001 281.7V355.5L311.4000000000001 381.7C350.6 368.7 384.8000000000001 343.7 409.3000000000001 310.3zM184.9 381.6L232 355.5V281.7L167.8 235.2L97.2 257.2L87.1 309.7C111.4 343.1 145 368.3 184.9 381.6zM139 68.5L85.9 75C71.5 95.1 48.6 134.6 48.1 190.3L87.1 226.7L158.2 204.5L182.5 130.2000000000001L139 68.5000000000001zM187.2 1.5L164.8 49.6L208.4 111.3H287L331.3 49.6L308.9000000000001 1.5C302.7000000000001 -0.3 251.3000000000001 -18.9 187.2000000000001 1.5z" /> + <glyph glyph-name="gem" + unicode="" + horiz-adv-x="576" d=" M464 448H112C108 448 104.2 446 102 442.6L2 295.4C-0.9 291 -0.6 285.2000000000001 2.7 281.2000000000001L278.7 -59.6C283.5 -65.5 292.5 -65.5 297.3 -59.6L573.3 281.2C576.5999999999999 285.3 576.9 291 574 295.4L474.1 442.6C471.8 446 468.1 448 464 448zM444.7 400L508 304H439.6L387.9000000000001 400H444.7000000000001zM242.6 400H333.3L385 304H191L242.6 400zM131.3 400H188.1L136.4 304H68L131.3 400zM88.3 256H139.7L208 96L88.3 256zM191.2 256H384.8L288 12.7L191.2 256zM368 96L436.2 256H487.6L368 96z" /> + <glyph glyph-name="grimace" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208zM344 192H152C125.5 192 104 170.5 104 144V112C104 85.5 125.5 64 152 64H344C370.5 64 392 85.5 392 112V144C392 170.5 370.5 192 344 192zM176 96H152C143.2 96 136 103.2 136 112V120H176V96zM176 136H136V144C136 152.8 143.2 160 152 160H176V136zM240 96H192V120H240V96zM240 136H192V160H240V136zM304 96H256V120H304V96zM304 136H256V160H304V136zM360 112C360 103.2 352.8 96 344 96H320V120H360V112zM360 136H320V160H344C352.8 160 360 152.8 360 144V136z" /> + <glyph glyph-name="grin-alt" + unicode="" + horiz-adv-x="496" d=" M200.3 200C212.7 218.7 215.4 237.3 216 256C215.5 274.7 212.7 293.3 200.3 312C192.3 324 175.2 323.4 167.6 312C155.2 293.3 152.5 274.7 151.9 256C152.4 237.3 155.2000000000001 218.7 167.6 200C175.7 188 192.8 188.6 200.3 200zM328.3 200C340.7 218.7 343.4000000000001 237.3 344 256C343.5 274.7 340.7 293.3 328.3 312C320.3 324 303.2 323.4 295.6 312C283.2000000000001 293.3 280.5 274.7 279.9000000000001 256C280.4000000000001 237.3 283.2000000000001 218.7 295.6 200C303.7000000000001 188 320.8 188.6 328.3 200zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4z" /> + <glyph glyph-name="grin-beam-sweat" + unicode="" + horiz-adv-x="496" d=" M440 288C469.5 288 493.3 314.3 493.3 346.7C493.3 371.7 461.6 422.2 447.1 444C443.5 449.3 436.4000000000001 449.3 432.9000000000001 444C418.4000000000001 422.2 386.7000000000001 371.7 386.7000000000001 346.7C386.7000000000001 314.3 410.5000000000001 288 440.0000000000001 288zM248 48C299.9 48 363.3 80.9 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.6 146.4 123 138 124.7 128C132.7000000000001 80.9 196.1 48 248.0000000000001 48zM378.3 216.3C381.9000000000001 217.4 384.3 220.8 384 224.6C380.7 266.7000000000001 351.8 296 328 296S275.3 266.7000000000001 272 224.6C271.7 220.9 274.1 217.4 277.7 216.3C281.2 215.2 285.1 216.8 287 220L296.5 237C304.2 250.7 315.7 258.6 328 258.6S351.8 250.7 359.5 237L369 220C371.1 216.4 375.2 215.4 378.3 216.3zM483.6 269.2000000000001C459 253.5000000000001 437.6 256.3 437.2000000000001 256.3C444.1 236.1 448.0000000000001 214.5 448.0000000000001 192C448.0000000000001 81.7 358.3000000000001 -8 248.0000000000001 -8S48 81.7 48 192S137.7 392 248 392C287.8 392 324.8 380.2 356 360.1C357.7 369.6 362.3 384.2 373.2 405.8C336.4 427.4 293.7 440 248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192C496 219 491.6 244.9 483.6 269.2zM168 258.6C180.3 258.6 191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7000000000001 191.8 296 168 296S115.3 266.7000000000001 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3C121.2 215.2 125.1 216.8 127 220L136.5 237C144.2 250.8 155.7 258.6 168 258.6z" /> + <glyph glyph-name="grin-beam" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM117.7 216.3C121.2 215.2 125.1 216.8 127 220L136.5 237C144.2 250.7 155.7 258.6 168 258.6S191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7 191.8 296 168 296S115.3 266.7 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3zM277.7000000000001 216.3C281.2000000000001 215.2 285.1 216.8 287.0000000000001 220L296.5000000000001 237C304.2000000000001 250.7 315.7000000000001 258.6 328.0000000000001 258.6S351.8000000000001 250.7 359.5000000000001 237L369.0000000000001 220C371.1000000000001 216.3 375.2000000000001 215.3 378.3000000000001 216.3C381.9000000000001 217.4 384.3000000000001 220.8 384.0000000000001 224.6C380.7000000000001 266.7 351.8000000000001 296 328.0000000000001 296S275.3000000000001 266.7 272.0000000000001 224.6C271.7000000000001 220.9 274.1000000000001 217.4 277.7000000000001 216.3z" /> + <glyph glyph-name="grin-hearts" + unicode="" + horiz-adv-x="496" d=" M353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM200.8 192.3C205.3 191.1 210 193.8 211.3 198.3L230.7 268.2C236.3 288.5 223.3 309.3 201.9 312.7C183.3 315.7 165.5 302.9 160.4 284.8L158.4 277.7L151.3 279.6C133.1 284.3 113.1 275.3 106.4 257.6C98.7 237.4 110.2 215.7 130.6 210.4L200.8 192.3zM389.6 257.6C382.9000000000001 275.2 362.9000000000001 284.3 344.7000000000001 279.6L337.6 277.7L335.6 284.8C330.6 302.9 312.8 315.7 294.1 312.7C272.7000000000001 309.3 259.7000000000001 288.5 265.3 268.2L284.7 198.3C285.9 193.8 290.6 191.1 295.2 192.3L365.4 210.5C385.8 215.8 397.3 237.4 389.6 257.5999999999999zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8z" /> + <glyph glyph-name="grin-squint-tears" + unicode="" + horiz-adv-x="512" d=" M117.1 63.9C91.3 60.2 33.1 50.2 16.2 33.3C-5.7 11.4 -5.3 -24.6 17.1 -47.0000000000001S75.4 -69.8000000000001 97.4 -47.9C114.3 -31 124.3 27.2 128 53C128.8 59.4 123.4 64.8 117.1 63.9zM75.9 105.6C40.3 180 53 271.9 114.6 333.4C152.4 371.2 202.6 392 256 392C292.2 392 326.8 382.2 357.2 364.3C361 384.6 365.2 400.4 369.2 412.6C333.8 430.8 294.9 440 256 440C192.5 440 129.1 415.8 80.6 367.4C6.5 293.3 -10.7 184 28.6 93.4C40.8 97.5 56.3 101.7 75.9 105.6zM428.2 293.2C473.2 216.6 463.1 116.3 397.4 50.6C359.6 12.8 309.4 -8.0000000000001 256 -8.0000000000001C225.5 -8.0000000000001 196.2 -1.0000000000001 169.6 11.8C165.7 -7.7 161.6 -23.2 157.4 -35.4C188.8 -49.0000000000001 222.4 -56.0000000000001 256.1 -56.0000000000001C319.6 -56.0000000000001 383 -31.8000000000001 431.5 16.5999999999999C509.6 94.6999999999999 524.6 211.9999999999999 476.7 305.2C464.4 301.2 448.5 297.0999999999999 428.2 293.2zM394.9 320.1C420.7 323.8 478.9 333.8 495.8 350.7C517.6999999999999 372.6 517.3 408.6 494.9 431S436.6 453.8 414.6 431.9C397.7 415 387.7 356.8 384 331C383.2 324.6 388.6 319.2 394.9 320.1zM207.9 211.8C204.9 214.8 200.7 216 196.5 215L106 192.3C100.3 190.9 96.5 185.6 96.9 179.7C97.4 173.9 102 169.2 107.8 168.7L160.1 163.9L164.9 111.6C165.4 105.8 170.1 101.2 175.9 100.7H176.8000000000001C182.3000000000001 100.7 187.1000000000001 104.4 188.5 109.8L211.1 200.3C212.1 204.5 210.9 208.8 207.9 211.8zM247.6 236.9L338.1 259.5C343.8 260.9 347.6 266.2 347.2 272.0999999999999C346.7 277.9 342.1 282.5999999999999 336.3 283.0999999999999L284 287.9L279.2 340.2C278.7 346 274 350.6 268.2 351.1C262.6 351.2 257 347.7 255.6 342L233 251.5C232 247.4 233.2 243.1 236.2 240.1C241.2 235.1 247.5 236.9 247.6 236.9zM299.6 148.4C270.5 119.3 239.9 95.5 215.7 83C206.5 78.2 205.7 65.5 214 59.6C252.9 31.9 321 53.4 357.7 90.2000000000001S416 195 388.3 233.9C382.5 242.1 369.8 241.5 364.9000000000001 232.2C352.6 208 328.7000000000001 177.5 299.6 148.4z" /> + <glyph glyph-name="grin-squint" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM118.9 184.2C122.5 180 128.8000000000001 178.5 134.2000000000001 181.7L214.2000000000001 229.7C217.8000000000001 231.9 220.0000000000001 235.8 220.0000000000001 240S217.8000000000001 248.1 214.2000000000001 250.3L134.2000000000001 298.3C129.1000000000001 301.3 122.8000000000001 300.2000000000001 118.9000000000001 295.8C115.1000000000001 291.3 115.1000000000001 284.8 118.8000000000001 280.3L152.4000000000001 240L118.8000000000001 199.7C115.0000000000001 195.2 115.1000000000001 188.6 118.9000000000001 184.2zM361.8000000000001 181.7C367.2000000000001 178.5 373.5000000000001 180 377.1000000000001 184.2C380.9000000000001 188.7 380.9000000000001 195.2 377.2000000000001 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.3 377.1 295.8C373.3 300.2000000000001 366.9000000000001 301.2000000000001 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7z" /> + <glyph glyph-name="grin-stars" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM125.7 200.9C124.7 194.7 131.1 189.9 136.7 193L168 209.3L199.3000000000001 193C204.9 189.9 211.3000000000001 194.7 210.3000000000001 200.9L204.3000000000001 235.8L229.7000000000001 260.4C234.2000000000001 264.9 231.6000000000001 272.6 225.4000000000001 273.6L190.5 278.6L175 310.2C172.1 316 164 316 161.1 310.2L145.6 278.6L110.7 273.6C104.5 272.7 101.8 265 106.4 260.4L131.8 235.8L125.7 200.9zM385.4 273.6L350.5 278.6L335 310.2C332.1 316 324 316 321.1 310.2L305.6 278.6L270.7000000000001 273.6C264.5000000000001 272.7 261.8000000000001 265 266.4000000000001 260.4L291.8 235.8L285.8 200.9C284.8 194.7 291.2 189.9 296.8 193L328.1 209.3L359.4000000000001 193C365.0000000000001 189.9 371.4000000000001 194.7 370.4000000000001 200.9L364.4000000000001 235.8L389.8 260.4C394.3 265 391.6 272.6 385.4000000000001 273.6z" /> + <glyph glyph-name="grin-tears" + unicode="" + horiz-adv-x="640" d=" M117.1 191.9C91.3 188.2 33.1 178.2 16.2 161.3C-5.7 139.4 -5.3 103.4 17.1 80.9999999999999S75.4 58.1999999999999 97.4 80.1C114.3 97 124.3 155.2 128 181C128.8 187.4 123.4 192.8 117.1 191.9zM623.8 161.3C606.9 178.1999999999999 548.6999999999999 188.1999999999999 522.9 191.9C516.6 192.8 511.2 187.4 512.1 181.1C515.8000000000001 155.3 525.8000000000001 97.1 542.7 80.1999999999999C564.6 58.3 600.6 58.6999999999999 623 81.0999999999999C645.3 103.3999999999999 645.7 139.3999999999999 623.8 161.2999999999999zM497.1999999999999 99.6C463.8 35.7 396.9 -8 320 -8C243.1 -8 176.2 35.7 142.8 99.6C130.3 62.2000000000001 117.6 55.7 114.5 53.1C159.1 -12.7 234.5 -56 320 -56S480.9 -12.7 525.5 53.1C522.3 55.8 509.6 62.3 497.2 99.6zM122.7 223.5C137.9 318.8 220.5 392 320 392C419.5 392 502.1 318.8 517.3 223.5C519.4 223.7 522.5 225.9 566.8 216.5C554.4 342 448.7 440 320 440S85.6 342 73.2 216.6C117.7 226 120.3 223.8 122.7 223.5zM320 48C371.9 48 435.3 80.9 443.3 128C445 137.9 435.6 146.5 425.6 143.3C399.7000000000001 135 361.2000000000001 130.2 320 130.2S240.4 135 214.4 143.3C204.6 146.4 195 138 196.7 128C204.7 80.9 268.1 48 320 48zM450.3 216.3C453.9 217.4 456.3 220.8 456 224.6C452.7 266.7000000000001 423.8 296 400 296S347.3 266.7000000000001 344 224.6C343.7 220.9 346.1 217.4 349.7 216.3C353.2 215.2 357.1 216.8 359 220L368.5 237C376.2 250.7 387.7 258.6 400 258.6S423.8 250.7 431.5 237L441 220C443.1 216.4 447.2 215.4 450.3 216.3zM240 258.6C252.3 258.6 263.8 250.7 271.5 237L281 220C283.1 216.3 287.2 215.3 290.3 216.3C293.9000000000001 217.4 296.3 220.8 296 224.6C292.7 266.7000000000001 263.8 296 240 296S187.3 266.7000000000001 184 224.6C183.7 220.9 186.1 217.4 189.7 216.3C193.2 215.2 197.1 216.8 199 220L208.5 237C216.2 250.8 227.7 258.6 240 258.6z" /> + <glyph glyph-name="grin-tongue-squint" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7zM377.1 295.8C373.3 300.2000000000001 366.8 301.3 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7C367.2 178.5 373.5 180 377.1 184.2C380.9 188.7 380.9 195.2 377.2 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.4 377.1 295.8zM214.2 250.3L134.2 298.3C129.2 301.3 122.8 300.3 118.9 295.8C115.1 291.3 115.1 284.8 118.8 280.3L152.4 240L118.8 199.7C115 195.2 115.1 188.7 118.9 184.2C122.5 180 128.8 178.5 134.2 181.7L214.2 229.7C217.8 231.9 220 235.8 220 240S217.8 248.1 214.2 250.3z" /> + <glyph glyph-name="grin-tongue-wink" + unicode="" + horiz-adv-x="496" d=" M152 268C126.3 268 96.1 251.1 92.2 225.9C91.4 220.9 93.9 215.9 98.3 213.5C102.7 211.1 108.2 211.7 112 215.1L121.5 223.6C136.3 236.8 167.7 236.8 182.5 223.6L192 215.1C194.5 212.9 200 210.4 205.7 213.5C210.1 215.9 212.6 220.9 211.8 225.9C207.9 251.1 177.7 268 152 268zM328 320C283.8 320 248 284.2 248 240S283.8 160 328 160S408 195.8 408 240S372.2 320 328 320zM328 192C301.5 192 280 213.5 280 240S301.5 288 328 288S376 266.5 376 240S354.5 192 328 192zM328 264C314.7 264 304 253.3 304 240S314.7 216 328 216S352 226.7 352 240S341.3 264 328 264zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7z" /> + <glyph glyph-name="grin-tongue" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7zM168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" /> + <glyph glyph-name="grin-wink" + unicode="" + horiz-adv-x="496" d=" M328 268C302.31 268 272.12 251.08 268.14 225.88C266.39 214.66 279.64 207.64 287.97 215.04L297.52 223.52C312.33 236.71 343.68 236.71 358.49 223.52L368.04 215.04C376.5200000000001 207.61 389.6 214.79 387.87 225.88C383.88 251.08 353.69 268 328 268zM168 208C185.67 208 200 222.33 200 240S185.67 272 168 272S136 257.67 136 240S150.33 208 168 208zM353.55 143.36C327.62 135.06 289.15 130.3 248 130.3S168.38 135.05 142.45 143.36C132.51 146.49 123.05 137.99 124.74 128.0200000000001C132.67 80.87 196.06 48 248 48S363.33 80.87 371.26 128.02C372.94 137.91 363.59 146.5 353.55 143.36zM248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 -8C137.72 -8 48 81.72 48 192S137.72 392 248 392S448 302.28 448 192S358.28 -8 248 -8z" /> + <glyph glyph-name="grin" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208z" /> + <glyph glyph-name="hand-lizard" + unicode="" + horiz-adv-x="576" d=" M556.686 157.458L410.328 383.171C397.001 403.728 374.417 416 349.917 416H56C25.121 416 0 390.878 0 360V352C0 307.8880000000001 35.888 272 80 272H276.0420000000001L257.7090000000001 224H144C95.477 224 56 184.523 56 136C56 105.121 81.121 80 112 80H243.552C246.539 80 249.466 79.451 252.249 78.369L352 39.582V-32H576V92.171C576 115.396 569.321 137.972 556.686 157.458zM528 16H400V39.582C400 59.53 387.986 77.09 369.396 84.318L269.645 123.106A71.733 71.733 0 0 1 243.552 128H112C107.589 128 104 131.589 104 136C104 158.056 121.944 176 144 176H257.709C277.476 176 295.495 188.407 302.549 206.873L327.101 271.154C336.097 294.707 318.673 320 293.471 320H80C62.355 320 48 334.355 48 352V360C48 364.411 51.589 368 56 368H349.917C358.083 368 365.61 363.91 370.054 357.058L516.412 131.343A71.84 71.84 0 0 0 528 92.171V16z" /> + <glyph glyph-name="hand-paper" + unicode="" + horiz-adv-x="448" d=" M372.57 335.359V346.184C372.57 389.796 332.05 422.875 289.531 411.73C263.902 461.23 195.441 459.18 171.549 410.983C130.269 421.544 89.144 390.055 89.144 346V219.87C69.191 227.297 45.836 224.938 27.061 210.999C-2.294 189.203 -8.733 147.666 12.511 117.846L132.48 -50.569A32 32 0 0 1 158.542 -64.001H381.439C396.343 -64.001 409.274 -53.712 412.621 -39.188L442.805 91.77A203.637 203.637 0 0 1 448 137.436V269C448 309.62 412.477 340.992 372.57 335.359zM399.997 137.437C399.997 125.706 398.663 113.968 396.0320000000001 102.551L368.707 -16H166.787L51.591 145.697C37.152 165.967 66.614 188.473 80.985 168.302L108.113 130.223C117.108 117.597 137.144 123.936 137.144 139.506V346C137.144 371.645 173.715 370.81 173.715 345.309V192C173.715 183.163 180.878 176 189.715 176H196.571C205.408 176 212.571 183.163 212.571 192V381C212.571 406.663 249.142 405.81 249.142 380.309V192C249.142 183.163 256.305 176 265.142 176H271.998C280.835 176 287.998 183.163 287.998 192V346.875C287.998 372.5470000000001 324.568 371.685 324.568 346.184V192C324.568 183.163 331.731 176 340.568 176H347.425C356.262 176 363.425 183.163 363.425 192V268.309C363.425 294.551 399.995 293.949 399.995 269V137.437z" /> + <glyph glyph-name="hand-peace" + unicode="" + horiz-adv-x="448" d=" M362.146 256.024C348.4360000000001 277.673 323.385 290.04 297.14 286.365V374C297.14 414.804 264.329 448 223.999 448C183.669 448 150.859 414.804 150.859 374L160 280L141.321 358.85C126.578 397.157 83.85 415.89 46.209 400.7920000000001C8.735 385.762 -9.571 343.0370000000001 5.008 305.15L60.765 160.223C30.208 135.267 16.771 102.414 36.032 68.005L90.885 -29.994C102.625 -50.97 124.73 -64 148.575 -64H354.277C385.021 -64 411.835 -42.56 418.832 -12.203L446.259 106.7960000000001A67.801 67.801 0 0 1 447.988 121.999L448 192C448 236.956 404.737 269.343 362.146 256.024zM399.987 122C399.987 120.512 399.8180000000001 119.023 399.485 117.577L372.058 -1.424C370.08 -10.006 362.768 -16 354.276 -16H148.575C142.089 -16 136.033 -12.379 132.77 -6.551L77.916 91.449C73.359 99.59 75.297 110.117 82.424 115.937L109.071 137.701A16 16 0 0 1 113.883 155.84L49.793 322.389C37.226 355.044 84.37 373.163 96.51 341.611L156.294 186.254A16 16 0 0 1 171.227 176H182.859C191.696 176 198.859 183.163 198.859 192V374C198.859 408.375 249.14 408.43 249.14 374V192C249.14 183.163 256.303 176 265.14 176H271.996C280.833 176 287.996 183.163 287.996 192V220C287.996 245.122 324.563 245.159 324.563 220V192C324.563 183.163 331.726 176 340.563 176H347.419C356.256 176 363.419 183.163 363.419 192C363.419 217.12 399.986 217.16 399.986 192V122z" /> + <glyph glyph-name="hand-point-down" + unicode="" + horiz-adv-x="448" d=" M188.8 -64C234.416 -64 272 -26.235 272 19.2V54.847A93.148 93.148 0 0 1 294.064 62.776C316.0700000000001 60.269 339.0420000000001 66.2789999999999 356.855 78.761C409.342 79.9 448 116.159 448 178.701V200C448 260.063 408 298.512 408 327.2V329.879C412.952 335.626 416 343.415 416 351.999V416C416 433.673 403.106 448 387.2 448H156.8C140.894 448 128 433.673 128 416V352C128 343.416 131.048 335.627 136 329.88V327.201C136 320.237 129.807 312.339 112.332 297.0180000000001L112.184 296.889L112.038 296.7580000000001C102.101 287.9020000000001 91.197 278.642 78.785 270.9070000000001C48.537 252.202 0 240.514 0 195.2C0 138.272 35.286 103.2 83.2 103.2C91.226 103.2 98.689 104.014 105.6 105.376V19.2C105.6 -25.899 143.701 -64 188.8 -64zM188.8 -16C170.1 -16 153.6 0.775 153.6 19.2V177.6C136.275 177.6 118.4 151.2000000000001 83.2 151.2000000000001C56.8 151.2000000000001 48 171.8250000000001 48 195.2000000000001C48 203.9940000000001 80.712 215.6450000000001 104.1 230.1260000000001C118.675 239.2000000000001 131.325 249.6500000000001 143.975 260.9250000000001C162.349 277.0340000000001 180.608 294.761 183.571 320.0000000000001H360.3230000000001C364.087 277.2100000000001 400 245.491 400 200V178.701C400 138.177 377.803 121.577 338.675 128.1C330.6740000000001 113.488 304.6960000000001 103.949 285.05 115.175C266.825 95.81 238.669 97.388 224 110.225V19.2C224 0.225 207.775 -16 188.8 -16zM328 384C328 397.255 338.745 408 352 408S376 397.255 376 384S365.255 360 352 360S328 370.745 328 384z" /> + <glyph glyph-name="hand-point-left" + unicode="" + horiz-adv-x="512" d=" M0 227.2C0 181.584 37.765 144 83.2 144H118.847A93.148 93.148 0 0 1 126.776 121.936C124.269 99.93 130.279 76.958 142.761 59.145C143.9 6.658 180.159 -32 242.701 -32H264C324.063 -32 362.512 8 391.2 8H393.879C399.626 3.048 407.415 0 415.999 0H479.999C497.672 0 511.999 12.894 511.999 28.8V259.2C511.999 275.106 497.672 288 479.999 288H415.999C407.415 288 399.626 284.952 393.879 280H391.2C384.236 280 376.338 286.193 361.017 303.668L360.888 303.8160000000001L360.757 303.962C351.901 313.899 342.641 324.803 334.906 337.215C316.202 367.463 304.514 416 259.2 416C202.272 416 167.2 380.714 167.2 332.8C167.2 324.774 168.014 317.3110000000001 169.376 310.4H83.2C38.101 310.4 0 272.299 0 227.2zM48 227.2C48 245.9 64.775 262.4 83.2 262.4H241.6C241.6 279.725 215.2 297.6 215.2 332.8C215.2 359.2 235.825 368 259.2000000000001 368C267.9940000000001 368 279.6450000000001 335.288 294.1260000000001 311.9C303.2000000000001 297.325 313.6500000000001 284.675 324.925 272.025C341.034 253.651 358.761 235.392 384 232.429V55.677C341.21 51.913 309.491 16 264 16H242.701C202.177 16 185.577 38.197 192.1 77.325C177.488 85.326 167.949 111.304 179.175 130.95C159.81 149.175 161.388 177.331 174.225 192H83.2C64.225 192 48 208.225 48 227.2zM448 88C461.255 88 472 77.255 472 64S461.255 40 448 40S424 50.745 424 64S434.745 88 448 88z" /> + <glyph glyph-name="hand-point-right" + unicode="" + horiz-adv-x="512" d=" M428.8 310.4H342.623A115.52 115.52 0 0 1 344.799 332.8C344.799 380.714 309.727 416 252.799 416C207.485 416 195.797 367.463 177.092 337.216C169.357 324.803 160.098 313.899 151.241 303.963L151.11 303.817L150.981 303.6690000000001C135.662 286.193 127.764 280 120.8 280H118.121C112.374 284.952 104.585 288 96.001 288H32C14.327 288 0 275.106 0 259.2V28.8C0 12.894 14.327 0 32 0H96C104.584 0 112.373 3.048 118.12 8H120.799C149.487 8 187.936 -32 247.999 -32H269.298C331.8400000000001 -32 368.098 6.658 369.238 59.145C381.7200000000001 76.958 387.729 99.93 385.223 121.936A93.148 93.148 0 0 1 393.152 144H428.8C474.235 144 512 181.584 512 227.2C512 272.299 473.899 310.4 428.8 310.4zM428.8 192H337.774C350.611 177.331 352.189 149.175 332.824 130.95C344.051 111.304 334.511 85.326 319.899 77.325C326.423 38.197 309.823 16 269.299 16H248C202.509 16 170.79 51.913 128 55.676V232.429C153.239 235.393 170.966 253.651 187.075 272.025C198.35 284.675 208.8 297.3250000000001 217.874 311.9C232.355 335.288 244.006 368 252.8 368C276.175 368 296.8 359.2 296.8 332.8C296.8 297.6 270.4000000000001 279.725 270.4000000000001 262.4H428.8000000000001C447.2250000000001 262.4 464.0000000000001 245.9 464.0000000000001 227.2C464.0000000000001 208.225 447.7750000000001 192 428.8000000000001 192zM88 64C88 50.745 77.255 40 64 40S40 50.745 40 64S50.745 88 64 88S88 77.255 88 64z" /> + <glyph glyph-name="hand-point-up" + unicode="" + horiz-adv-x="448" d=" M105.6 364.8V278.623A115.52 115.52 0 0 1 83.2 280.799C35.286 280.799 0 245.727 0 188.799C0 143.485 48.537 131.797 78.784 113.092C91.197 105.357 102.101 96.098 112.037 87.241L112.183 87.11L112.331 86.981C129.807 71.662 136 63.764 136 56.8V54.121C131.048 48.374 128 40.585 128 32.001V-31.999C128 -49.672 140.894 -63.999 156.8 -63.999H387.2000000000001C403.1060000000001 -63.999 416.0000000000001 -49.672 416.0000000000001 -31.999V32.001C416.0000000000001 40.585 412.9520000000001 48.374 408.0000000000001 54.121V56.8C408.0000000000001 85.488 448.0000000000001 123.937 448.0000000000001 184V205.299C448.0000000000001 267.841 409.3420000000001 304.099 356.8550000000001 305.2390000000001C339.0420000000001 317.721 316.0700000000001 323.73 294.0640000000001 321.224A93.148 93.148 0 0 1 272 329.153V364.8C272 410.235 234.416 448 188.8 448C143.701 448 105.6 409.899 105.6 364.8zM224 364.8V273.774C238.669 286.611 266.825 288.189 285.05 268.824C304.6960000000001 280.0510000000001 330.6740000000001 270.511 338.675 255.899C377.803 262.423 400 245.823 400 205.299V184C400 138.509 364.087 106.79 360.324 64H183.571C180.607 89.239 162.349 106.966 143.975 123.075C131.325 134.35 118.675 144.8 104.1 153.874C80.712 168.355 48 180.006 48 188.8C48 212.175 56.8 232.8 83.2 232.8C118.4 232.8 136.275 206.4 153.6 206.4V364.8C153.6 383.225 170.1 400 188.8 400C207.775 400 224 383.775 224 364.8zM352 24C365.255 24 376 13.255 376 0S365.255 -24 352 -24S328 -13.255 328 0S338.745 24 352 24z" /> + <glyph glyph-name="hand-pointer" + unicode="" + horiz-adv-x="448" d=" M358.182 268.639C338.689 293.4070000000001 305.5030000000001 300.584 278.31 287.737C263.183 303.4240000000001 242.128 310.2240000000001 221.715 307.366V381C221.715 417.944 191.979 448 155.429 448S89.143 417.944 89.143 381V219.871C69.234 227.281 45.871 224.965 27.06 210.999C-2.295 189.204 -8.733 147.6660000000001 12.51 117.847L122.209 -36.154C134.632 -53.59 154.741 -64 176 -64H354.286C385.088 -64 411.86 -42.5 418.843 -12.203L446.272 106.7960000000001A67.873 67.873 0 0 1 448 122V206C448 252.844 401.375 285.273 358.182 268.639zM80.985 168.303L108.111 130.224C117.106 117.598 137.142 123.937 137.142 139.507V381C137.142 406.12 173.713 406.16 173.713 381V206C173.713 197.164 180.876 190 189.713 190H196.57C205.407 190 212.57 197.164 212.57 206V241C212.57 266.12 249.141 266.16 249.141 241V206C249.141 197.164 256.304 190 265.141 190H272C280.837 190 288 197.164 288 206V227C288 252.12 324.5710000000001 252.16 324.5710000000001 227V206C324.5710000000001 197.164 331.7340000000001 190 340.5710000000001 190H347.4280000000001C356.2650000000001 190 363.4280000000001 197.164 363.4280000000001 206C363.4280000000001 231.121 399.999 231.16 399.999 206V122C399.999 120.512 399.8300000000001 119.023 399.497 117.577L372.067 -1.424C370.089 -10.006 362.777 -16 354.2850000000001 -16H176C170.231 -16 164.737 -13.122 161.303 -8.303L51.591 145.697C37.185 165.92 66.585 188.515 80.985 168.303zM176.143 48V144C176.143 152.837 182.411 160 190.143 160H196.143C203.875 160 210.143 152.837 210.143 144V48C210.143 39.163 203.875 32 196.143 32H190.143C182.41 32 176.143 39.163 176.143 48zM251.571 48V144C251.571 152.837 257.839 160 265.5710000000001 160H271.5710000000001C279.3030000000001 160 285.5710000000001 152.837 285.5710000000001 144V48C285.5710000000001 39.163 279.3030000000001 32 271.5710000000001 32H265.5710000000001C257.839 32 251.5710000000001 39.163 251.5710000000001 48zM327 48V144C327 152.837 333.268 160 341 160H347C354.7320000000001 160 361 152.837 361 144V48C361 39.163 354.7320000000001 32 347 32H341C333.268 32 327 39.163 327 48z" /> + <glyph glyph-name="hand-rock" + unicode="" + horiz-adv-x="512" d=" M408.864 368.948C386.463 402.846 342.756 411.221 310.051 392.536C280.577 424.005 230.906 423.629 201.717 392.558C154.557 419.578 93.007 387.503 91.046 331.752C44.846 342.593 0 307.999 0 260.5710000000001V203.618C0 170.877 14.28 139.664 39.18 117.984L136.89 32.903C141.142 29.201 140 27.33 140 -1e-13C140 -17.6730000000001 154.327 -32.0000000000001 172 -32.0000000000001H424C441.673 -32.0000000000001 456 -17.6730000000001 456 -1e-13C456 23.5129999999999 454.985 30.745 459.982 42.37L502.817 142.026C508.911 156.203 512 171.198 512 186.5939999999999V301.0370000000001C512 353.876 457.686 389.699 408.8640000000001 368.948zM464 186.594A64.505 64.505 0 0 0 458.718 160.981L415.8830000000001 61.326C410.653 49.155 408.0000000000001 36.286 408.0000000000001 23.076V16H188V26.286C188 42.656 180.86 58.263 168.41 69.103L70.7 154.183C56.274 166.745 48 184.764 48 203.619V260.572C48 293.78 100 294.1090000000001 100 259.895V218.667A16 16 0 0 1 105.493 206.6L112.493 200.505A16 16 0 0 1 139 212.571V329.1430000000001C139 362.24 191 362.868 191 328.466V301.7150000000001C191 292.879 198.164 285.7150000000001 207 285.7150000000001H214C222.836 285.7150000000001 230 292.879 230 301.7150000000001V342.858C230 375.992 282 376.533 282 342.181V301.7150000000001C282 292.879 289.163 285.7150000000001 298 285.7150000000001H305C313.837 285.7150000000001 321 292.879 321 301.7150000000001V329.144C321 362.174 373 362.924 373 328.467V301.716C373 292.88 380.163 285.716 389 285.716H396C404.837 285.716 412 292.88 412 301.716C412 334.862 464 335.329 464 301.039V186.5940000000001z" /> + <glyph glyph-name="hand-scissors" + unicode="" + horiz-adv-x="512" d=" M256 -32L326 -31.987C331.114 -31.987 336.231 -31.404 341.203 -30.258L460.202 -2.831C490.56 4.165 512 30.98 512 61.723V267.425C512 291.27 498.97 313.376 477.995 325.115L379.996 379.968C345.587 399.2290000000001 312.733 385.7920000000001 287.778 355.235L142.85 410.992C104.963 425.5710000000001 62.238 407.265 47.208 369.791C32.11 332.149 50.843 289.421 89.15 274.679L168 256L74 265.141C33.196 265.141 0 232.33 0 192.001C0 151.671 33.196 118.86 74 118.86H161.635C157.96 92.615 170.327 67.563 191.976 53.8539999999999C178.657 11.263 211.044 -32 256 -32zM256 16.013C230.84 16.013 230.88 52.58 256 52.58C264.837 52.58 272 59.743 272 68.58V75.436C272 84.273 264.837 91.436 256 91.436H228C202.841 91.436 202.878 128.003 228 128.003H256C264.837 128.003 272 135.166 272 144.003V150.859C272 159.696 264.837 166.859 256 166.859H74C39.57 166.859 39.625 217.14 74 217.14H256C264.837 217.14 272 224.303 272 233.14V244.772A16 16 0 0 1 261.746 259.705L106.389 319.49C74.837 331.63 92.957 378.773 125.611 366.207L292.16 302.116A16.001 16.001 0 0 1 310.299 306.928L332.063 333.5750000000001C337.883 340.702 348.411 342.639 356.551 338.0830000000001L454.551 283.2290000000001C460.379 279.966 464 273.911 464 267.424V61.723C464 53.232 458.006 45.919 449.424 43.941L330.423 16.514A19.743 19.743 0 0 0 326 16.012H256z" /> + <glyph glyph-name="hand-spock" + unicode="" + horiz-adv-x="512" d=" M21.096 66.21L150.188 -55.303A32 32 0 0 1 172.12 -64.001H409.7200000000001C423.8900000000001 -64.001 436.3730000000001 -54.682 440.4000000000001 -41.097L472.215 66.216A115.955 115.955 0 0 1 477 99.189V136.028C477 140.079 477.476 144.132 478.414 148.073L510.144 281.4830000000001C520.243 323.8950000000001 487.828 364.221 444.6 364.0080000000001C440.456 388.8640000000001 422.057 411.1730000000001 394.75 418.0000000000001C358.947 426.9520000000001 322.523 405.3450000000001 313.5 369.25L296.599 264L274.924 395.99C266.638 432.06 230.621 454.562 194.62 446.286C165.004 439.4820000000001 144.482 413.897 142.738 384.991C100.101 384.16 69.283 344.428 78.667 303.147L109.707 166.639C82.513 189.154 42.423 186.631 18.225 160.917C-7.151 133.956 -5.873 91.592 21.096 66.21zM53.164 128.021L53.166 128.0219999999999C60.385 135.694 72.407 136.002 80.022 128.8349999999999L133.034 78.9409999999999C143.225 69.351 160 76.6 160 90.594V160.073C160 161.266 159.866 162.456 159.603 163.619L125.473 313.791C119.877 338.408 156.975 346.651 162.527 322.212L192.926 188.4549999999999A16 16 0 0 1 208.529 176.0009999999999H217.1330000000001C227.4090000000001 176.0009999999999 235.0270000000001 185.5679999999999 232.7270000000001 195.5839999999999L191.107 376.7369999999999C185.484 401.2059999999999 222.497 409.813 228.142 385.2449999999999L273.362 188.4169999999999A16 16 0 0 1 288.956 176H302.173A16 16 0 0 1 317.695 188.119L360.067 357.6090000000001C366.171 382.0310000000001 403.029 372.7680000000001 396.932 348.3920000000001L358.805 195.88C356.284 185.792 363.92 176 374.327 176H384.021A16 16 0 0 1 399.586 188.295L426.509 301.4C432.3300000000001 325.848 469.306 317.087 463.475 292.598L431.7200000000001 159.19A100.094 100.094 0 0 1 429 136.028V99.189C429 92.641 428.057 86.138 426.195 79.8610000000001L397.775 -16H178.465L53.978 101.164C46.349 108.344 45.984 120.393 53.164 128.021z" /> + <glyph glyph-name="handshake" + unicode="" + horiz-adv-x="640" d=" M519.2 320.1L471.6 367.7A56.252 56.252 0 0 1 432 384H205.2C190.4 384 176.1 378.1 165.6 367.7L118 320.1H0V64.4H64C81.6 64.4 95.8 78.6 95.9 96.1H105L189.6 19.6999999999999C220.5 -5.4000000000001 263.4 -6.0000000000001 295.2 15.8999999999999C307.7 5.0999999999999 321.2 -1e-13 336.3 -1e-13C354.5 -1e-13 371.6 7.3999999999999 385.1 23.9999999999999C407.2000000000001 15.3 433.3 21.3999999999999 449.1 40.8L475.3 73.1C480.9 79.9999999999999 484.4 87.9 486.2 96.1H544.1C544.2 78.6 558.5 64.4 576 64.4H640V320.1H519.2zM48 96.4C39.2 96.4 32 103.6 32 112.4S39.2 128.4 48 128.4S64 121.2 64 112.4C64 103.5 56.8 96.4 48 96.4zM438 103.3L411.9 71.1C409.1 67.7 404.1 67.1 400.6 69.9L376.7 89.3L346.7 52.8C340.7 45.4999999999999 331.7 47.9999999999999 328.7 50.4L291.9 81.9L276.3 62.7C262.4 45.6 237.1 43 221 56.1L123.7 144.1H96V272.2H137.9L199.6 333.8C201.6 334.6 203.3 335.3 205.3 336.1H262L223.3 300.6C193.9 273.7 192.2 228.3 218.9 199.3C233.7 183.1 280.1 158.1 320.4 194.9L328.6 202.4L436.8 114.6C440.2 111.8 440.7 106.7 438 103.3zM544 144.1H474.8C472.5 146.9 469.9 149.5 467.1 151.8L364.4000000000001 235.2L376.9000000000001 246.6C383.4000000000001 252.6 383.9000000000001 262.7 377.9000000000001 269.2L367 280.9C361 287.4 350.9 287.8 344.4 281.9L289.2 231.3C279.7 222.6 263.5 221.9 254.6 231.3C245.3 241.2 246.1 256.4 255.8 265.2000000000001L321.4 325.3C328.8 332.1 338.4 335.8 348.4 335.8L432.1 336C434.2 336 436.2 335.2000000000001 437.6 333.7000000000001L499.3 272.1H544V144.1zM592 96.4C583.2 96.4 576 103.6 576 112.4S583.2 128.4 592 128.4S608 121.2 608 112.4C608 103.5 600.8 96.4 592 96.4z" /> + <glyph glyph-name="hdd" + unicode="" + horiz-adv-x="576" d=" M567.403 212.358L462.323 363.411A48 48 0 0 1 422.919 384H153.081A48 48 0 0 1 113.677 363.411L8.597 212.358A48.001 48.001 0 0 1 0 184.946V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V184.946C576 194.747 573 204.312 567.403 212.358zM153.081 336H422.919L500.832 224H75.168L153.081 336zM528 48H48V176H528V48zM496 112C496 94.327 481.673 80 464 80S432 94.327 432 112S446.327 144 464 144S496 129.673 496 112zM400 112C400 94.327 385.673 80 368 80S336 94.327 336 112S350.327 144 368 144S400 129.673 400 112z" /> + <glyph glyph-name="heart" + unicode="" + horiz-adv-x="512" d=" M458.4 383.7C400.6 432.3 311.3 425 256 368.7C200.7 425 111.4 432.4 53.6 383.7C-21.6 320.4 -10.6 217.2 43 162.5L218.4 -16.2C228.4 -26.4 241.8 -32.1 256 -32.1C270.3 -32.1 283.6 -26.4999999999999 293.6 -16.3L469 162.4C522.5 217.1 533.7 320.3 458.4 383.7zM434.8 196.2L259.4 17.5C257 15.1 255 15.1 252.6 17.5L77.2 196.2C40.7 233.4 33.3 303.8 84.5 346.9C123.4 379.6 183.4 374.7 221 336.4L256 300.7L291 336.4C328.8 374.9 388.8 379.6 427.5 347C478.6 303.9 471 233.1 434.8 196.2z" /> + <glyph glyph-name="hospital" + unicode="" + horiz-adv-x="448" d=" M128 204V244C128 250.627 133.373 256 140 256H180C186.627 256 192 250.627 192 244V204C192 197.373 186.627 192 180 192H140C133.373 192 128 197.373 128 204zM268 192H308C314.627 192 320 197.373 320 204V244C320 250.627 314.627 256 308 256H268C261.373 256 256 250.627 256 244V204C256 197.373 261.373 192 268 192zM192 108V148C192 154.627 186.627 160 180 160H140C133.373 160 128 154.627 128 148V108C128 101.373 133.373 96 140 96H180C186.627 96 192 101.373 192 108zM268 96H308C314.627 96 320 101.373 320 108V148C320 154.627 314.627 160 308 160H268C261.373 160 256 154.627 256 148V108C256 101.373 261.373 96 268 96zM448 -28V-64H0V-28C0 -21.373 5.373 -16 12 -16H31.5V362.9650000000001C31.5 374.582 42.245 384 55.5 384H144V424C144 437.255 154.745 448 168 448H280C293.255 448 304 437.255 304 424V384H392.5C405.755 384 416.5 374.582 416.5 362.9650000000001V-16H436C442.627 -16 448 -21.373 448 -28zM79.5 -15H192V52C192 58.627 197.373 64 204 64H244C250.627 64 256 58.627 256 52V-15H368.5V336H304V312C304 298.745 293.255 288 280 288H168C154.745 288 144 298.745 144 312V336H79.5V-15zM266 384H240V410A6 6 0 0 1 234 416H214A6 6 0 0 1 208 410V384H182A6 6 0 0 1 176 378V358A6 6 0 0 1 182 352H208V326A6 6 0 0 1 214 320H234A6 6 0 0 1 240 326V352H266A6 6 0 0 1 272 358V378A6 6 0 0 1 266 384z" /> + <glyph glyph-name="hourglass" + unicode="" + horiz-adv-x="384" d=" M368 400H372C378.627 400 384 405.373 384 412V436C384 442.627 378.627 448 372 448H12C5.373 448 0 442.627 0 436V412C0 405.373 5.373 400 12 400H16C16 319.4360000000001 48.188 234.193 113.18 192C47.899 149.619 16 64.1 16 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H372C378.627 -64 384 -58.627 384 -52V-28C384 -21.373 378.627 -16 372 -16H368C368 64.564 335.812 149.807 270.82 192C336.102 234.381 368 319.9 368 400zM64 400H320C320 298.38 262.693 216 192 216S64 298.379 64 400zM320 -16H64C64 85.62 121.308 168 192 168S320 85.62 320 -16z" /> + <glyph glyph-name="id-badge" + unicode="" + horiz-adv-x="384" d=" M336 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V400C384 426.5 362.5 448 336 448zM336 -16H48V400H336V-16zM144 336H240C248.8 336 256 343.2 256 352S248.8 368 240 368H144C135.2 368 128 360.8 128 352S135.2 336 144 336zM192 160C227.3 160 256 188.7 256 224S227.3 288 192 288S128 259.3 128 224S156.7 160 192 160zM102.4 32H281.6C294 32 304 40.6 304 51.2V70.4C304 102.2 273.9 128 236.8 128C226 128 218.1 120 192 120C165.1 120 158.6 128 147.2 128C110.1 128 80 102.2 80 70.4V51.2C80 40.6 90 32 102.4 32z" /> + <glyph glyph-name="id-card" + unicode="" + horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM528 16H303.2C304.1 20.5 304 12.4 304 38.4C304 70.2 273.9 96 236.8 96C226 96 218.1 88 192 88C165.1 88 158.6 96 147.2 96C110.1 96 80 70.2 80 38.4C80 12.4 79.8 20.5 80.8 16H48V304H528V16zM360 96H472C476.4 96 480 99.6 480 104V120C480 124.4 476.4 128 472 128H360C355.6 128 352 124.4 352 120V104C352 99.6 355.6 96 360 96zM360 160H472C476.4 160 480 163.6 480 168V184C480 188.4 476.4 192 472 192H360C355.6 192 352 188.4 352 184V168C352 163.6 355.6 160 360 160zM360 224H472C476.4 224 480 227.6 480 232V248C480 252.4 476.4 256 472 256H360C355.6 256 352 252.4 352 248V232C352 227.6 355.6 224 360 224zM192 128C227.3 128 256 156.7 256 192S227.3 256 192 256S128 227.3 128 192S156.7 128 192 128z" /> + <glyph glyph-name="image" + unicode="" + horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM458 48H54A6 6 0 0 0 48 54V330A6 6 0 0 0 54 336H458A6 6 0 0 0 464 330V54A6 6 0 0 0 458 48zM128 296C105.909 296 88 278.091 88 256S105.909 216 128 216S168 233.909 168 256S150.091 296 128 296zM96 96H416V176L328.485 263.515C323.7990000000001 268.201 316.201 268.201 311.514 263.515L192 144L152.485 183.515C147.799 188.201 140.201 188.201 135.514 183.515L96 144V96z" /> + <glyph glyph-name="images" + unicode="" + horiz-adv-x="576" d=" M480 32V16C480 -10.51 458.51 -32 432 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V272H54A6 6 0 0 1 48 266V22A6 6 0 0 1 54 16H426A6 6 0 0 1 432 22V32H480zM522 368H150A6 6 0 0 1 144 362V118A6 6 0 0 1 150 112H522A6 6 0 0 1 528 118V362A6 6 0 0 1 522 368zM528 416C554.51 416 576 394.51 576 368V112C576 85.49 554.51 64 528 64H144C117.49 64 96 85.49 96 112V368C96 394.51 117.49 416 144 416H528zM264 304C264 281.909 246.091 264 224 264S184 281.909 184 304S201.909 344 224 344S264 326.091 264 304zM192 208L231.515 247.515C236.201 252.201 243.799 252.201 248.486 247.515L288 208L391.515 311.515C396.201 316.201 403.799 316.201 408.486 311.515L480 240V160H192V208z" /> + <glyph glyph-name="keyboard" + unicode="" + horiz-adv-x="576" d=" M528 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V336C576 362.51 554.51 384 528 384zM536 48C536 43.589 532.411 40 528 40H48C43.589 40 40 43.589 40 48V336C40 340.411 43.589 344 48 344H528C532.411 344 536 340.411 536 336V48zM170 178V206C170 212.627 164.627 218 158 218H130C123.373 218 118 212.627 118 206V178C118 171.373 123.373 166 130 166H158C164.627 166 170 171.373 170 178zM266 178V206C266 212.627 260.627 218 254 218H226C219.373 218 214 212.627 214 206V178C214 171.373 219.373 166 226 166H254C260.627 166 266 171.373 266 178zM362 178V206C362 212.627 356.627 218 350 218H322C315.373 218 310 212.627 310 206V178C310 171.373 315.373 166 322 166H350C356.627 166 362 171.373 362 178zM458 178V206C458 212.627 452.627 218 446 218H418C411.373 218 406 212.627 406 206V178C406 171.373 411.373 166 418 166H446C452.627 166 458 171.373 458 178zM122 96V124C122 130.627 116.627 136 110 136H82C75.373 136 70 130.627 70 124V96C70 89.373 75.373 84 82 84H110C116.627 84 122 89.373 122 96zM506 96V124C506 130.627 500.627 136 494 136H466C459.373 136 454 130.627 454 124V96C454 89.373 459.373 84 466 84H494C500.627 84 506 89.373 506 96zM122 260V288C122 294.627 116.627 300 110 300H82C75.373 300 70 294.627 70 288V260C70 253.373 75.373 248 82 248H110C116.627 248 122 253.373 122 260zM218 260V288C218 294.627 212.627 300 206 300H178C171.373 300 166 294.627 166 288V260C166 253.373 171.373 248 178 248H206C212.627 248 218 253.373 218 260zM314 260V288C314 294.627 308.627 300 302 300H274C267.373 300 262 294.627 262 288V260C262 253.373 267.373 248 274 248H302C308.627 248 314 253.373 314 260zM410 260V288C410 294.627 404.627 300 398 300H370C363.373 300 358 294.627 358 288V260C358 253.373 363.373 248 370 248H398C404.627 248 410 253.373 410 260zM506 260V288C506 294.627 500.627 300 494 300H466C459.373 300 454 294.627 454 288V260C454 253.373 459.373 248 466 248H494C500.627 248 506 253.373 506 260zM408 102V118C408 124.627 402.627 130 396 130H180C173.373 130 168 124.627 168 118V102C168 95.373 173.373 90 180 90H396C402.627 90 408 95.373 408 102z" /> + <glyph glyph-name="kiss-beam" + unicode="" + horiz-adv-x="496" d=" M168 296C144.2 296 115.3 266.7 112 224.6C111.7 220.9 114 217.4 117.6 216.3C121.1 215.3 125.1 216.8 126.9 220L136.4 237C144.1 250.7 155.6 258.6 167.9 258.6S191.7 250.7 199.4 237L208.9 220C211 216.3 215.1 215.3 218.2 216.3C221.8 217.4 224.1 220.8 223.8 224.6C220.7 266.7 191.8 296 168 296zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM304 140C304 159.2 275.2 181.5 232.5 184C228.7 184.4 225.1 181.6 224.3 177.8C223.4 174 225.4 170.1 229 168.6L245.9 161.4C258.9 155.9 266.7 147.9 266.7 139.9S258.9 123.9 246 118.4L229 111.2000000000001C223.3 108.8000000000001 223 99.0000000000001 229 96.4L245.9 89.2000000000001C258.9 83.7000000000001 266.7 75.7000000000001 266.7 67.7000000000001S258.9 51.7 246 46.2L229 39.0000000000001C225.4 37.5000000000001 223.4 33.6000000000001 224.3 29.8000000000001C225.1 26.2 228.4 23.6000000000001 232.1 23.6000000000001H232.6C275.4000000000001 26.1000000000001 304.1 48.4000000000001 304.1 67.6000000000001C304.1 80.6000000000001 290.7000000000001 94.9000000000001 268.9000000000001 103.6000000000001C290.6 112.7 304 127 304 140zM328 296C304.2 296 275.3 266.7 272 224.6C271.7 220.9 274 217.4 277.6 216.3C281.1 215.3 285.1 216.8 286.9000000000001 220L296.4000000000001 237C304.1 250.7 315.6 258.6 327.9000000000001 258.6S351.7000000000001 250.7 359.4000000000001 237L368.9000000000001 220C371.0000000000001 216.3 375.1 215.3 378.2000000000001 216.3C381.8000000000001 217.4 384.1 220.8 383.8000000000001 224.6C380.7000000000001 266.7 351.8000000000001 296 328.0000000000001 296z" /> + <glyph glyph-name="kiss-wink-heart" + unicode="" + horiz-adv-x="504" d=" M304 139.5C304 158.7 275.2 181 232.5 183.5C228.7 183.9 225.1 181.1 224.3 177.3C223.4 173.5 225.4 169.6 229 168.1L245.9 160.9C258.9 155.4 266.7 147.4 266.7 139.4S258.9 123.4 246 117.9L229 110.7000000000001C223.3 108.3000000000001 223 98.5000000000001 229 95.9L245.9 88.7000000000001C258.9 83.2000000000001 266.7 75.2000000000001 266.7 67.2000000000001S258.9 51.2 246 45.7L229 38.5000000000001C225.4 37.0000000000001 223.4 33.1000000000001 224.3 29.3000000000001C225.1 25.7 228.4 23.1000000000001 232.1 23.1000000000001H232.6C275.4000000000001 25.6000000000001 304.1 47.9000000000001 304.1 67.1000000000001C304.1 80.1000000000001 290.7000000000001 94.4000000000001 268.9000000000001 103.1000000000001C290.6 112.2000000000001 304.0000000000001 126.5000000000001 304.0000000000001 139.5000000000001zM374.5 223L384 214.5C387.8 211.2 393.3 210.5 397.7 212.9C402.1 215.3 404.6 220.3 403.8 225.3C399.8 250.5 369.6 267.4 344 267.4S288.1 250.5 284.2 225.3C283.4 220.3 285.9 215.3 290.3 212.9C296.1 209.8 301.5 212.2 304 214.5L313.5 223C328.3 236.2 359.7 236.2 374.5 223zM136 239.5C136 221.8 150.3 207.5 168 207.5S200 221.8 200 239.5S185.7 271.5 168 271.5S136 257.2 136 239.5zM501.1 45.5C493.1 66.3 469.6 77 448 71.4L439.6 69.2L437.3 77.6C431.4000000000001 98.9999999999999 410.3 114.1 388.3 110.6C363.1 106.6 347.7 81.9999999999999 354.3 57.9999999999999L377.2 -24.6C378.7 -29.9 384.2 -33.1 389.6 -31.7L472.6 -10.2C496.7 -3.9 510.3 21.6 501.1 45.4999999999999zM334 11.7C307.9 -0.8 278.8 -8 248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192C448 169.9 444.3 148.7 437.6 128.8C446.6 122.4 454.6 114.6 460.2 104.9C466.6 104.8 472.8000000000001 103.5000000000001 478.8000000000001 102.0000000000001C489.7 129.9 495.9000000000001 160.2000000000001 495.9000000000001 192.0000000000001C496 329 385 440 248 440S0 329 0 192S111 -56 248 -56C283.4 -56 316.9 -48.5 347.4 -35.1C344.9 -27.8 351.7 -52.3 334 11.7z" /> + <glyph glyph-name="kiss" + unicode="" + horiz-adv-x="496" d=" M168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM304 140C304 159.2 275.2 181.5 232.5 184C228.7 184.4 225.1 181.6 224.3 177.8C223.4 174 225.4 170.1 229 168.6L245.9 161.4C258.9 155.9 266.7 147.9 266.7 139.9S258.9 123.9 246 118.4L229 111.2000000000001C223.3 108.8000000000001 223 99.0000000000001 229 96.4L245.9 89.2000000000001C258.9 83.7000000000001 266.7 75.7000000000001 266.7 67.7000000000001S258.9 51.7 246 46.2L229 39.0000000000001C225.4 37.5000000000001 223.4 33.6000000000001 224.3 29.8000000000001C225.1 26.2 228.4 23.6000000000001 232.1 23.6000000000001H232.6C275.4000000000001 26.1000000000001 304.1 48.4000000000001 304.1 67.6000000000001C304.1 80.6000000000001 290.7000000000001 94.9000000000001 268.9000000000001 103.6000000000001C290.6 112.7 304 127 304 140zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" /> + <glyph glyph-name="laugh-beam" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM328 296C304.2 296 275.3 266.7 272 224.6C271.3 216 282.8 212.7 286.9 220.1L296.4 237.1C304.1 250.8 315.6 258.7 327.9 258.7S351.7 250.8 359.4 237.1L368.9 220.1C373 212.7 384.5 216.1 383.8 224.6C380.7 266.7 351.8 296 328 296zM127 220.1L136.5 237.1C144.2 250.8 155.7 258.7 168 258.7S191.8 250.8 199.5 237.1L209 220.1C213.1 212.7 224.6 216.1 223.9 224.6C220.6 266.7 191.7 296 167.9 296S115.2 266.7 111.9 224.6C111.3 216.1 122.8 212.7 127 220.1zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" /> + <glyph glyph-name="laugh-squint" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM343.6 252L377.2000000000001 292.3C385.8000000000001 302.6 373.4000000000001 317.1 361.8000000000001 310.3L281.8000000000001 262.3C274.0000000000001 257.6 274.0000000000001 246.4 281.8000000000001 241.7L361.8000000000001 193.7C373.3000000000001 186.9 385.8000000000001 201.3 377.2000000000001 211.7L343.6 252zM134.2 193.7L214.2 241.7C222 246.4 222 257.6 214.2 262.3L134.2 310.3C122.6 317.2 110.2 302.6 118.8 292.3L152.4 252L118.8 211.7C110.1 201.3 122.6 186.9 134.2 193.7zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" /> + <glyph glyph-name="laugh-wink" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6C68.8 88.4 48 138.6 48 192S68.8 295.6 106.6 333.4C144.4 371.2 194.6 392 248 392S351.6 371.2 389.4 333.4C427.2 295.6 448 245.4 448 192S427.2 88.4 389.4 50.6zM328 284C302.3 284 272.1 267.1 268.1 241.9C266.4000000000001 230.7 279.6 223.7 287.9000000000001 231.1L297.4000000000001 239.6C312.2000000000001 252.8 343.6 252.8 358.4000000000001 239.6L367.9000000000001 231.1C376.4000000000001 223.7 389.5000000000001 230.8 387.7000000000001 241.9C383.9000000000001 267.1 353.7000000000001 284 328.0000000000001 284zM168 224C185.7 224 200 238.3 200 256S185.7 288 168 288S136 273.7 136 256S150.3 224 168 224zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" /> + <glyph glyph-name="laugh" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM328 224C345.7 224 360 238.3 360 256S345.7 288 328 288S296 273.7 296 256S310.3 224 328 224zM168 224C185.7 224 200 238.3 200 256S185.7 288 168 288S136 273.7 136 256S150.3 224 168 224zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" /> + <glyph glyph-name="lemon" + unicode="" + horiz-adv-x="512" d=" M484.112 420.111C455.989 448.233 416.108 456.057 387.0590000000001 439.135C347.604 416.152 223.504 489.111 91.196 356.803C-41.277 224.328 31.923 100.528 8.866 60.942C-8.056 31.891 -0.234 -7.99 27.888 -36.112C56.023 -64.247 95.899 -72.0499999999999 124.945 -55.133C164.368 -32.163 288.502 -105.102 420.803 27.196C553.277 159.673 480.076 283.473 503.134 323.057C520.056 352.1070000000001 512.234 391.988 484.112 420.111zM461.707 347.217C422.907 280.608 507.307 181.582 386.862 61.137C266.422 -59.306 167.387 25.089 100.786 -13.706C78.1069999999999 -26.913 36.751 13.535 50.2929999999999 36.782C89.0929999999999 103.391 4.6929999999999 202.417 125.138 322.862C245.573 443.298 344.616 358.914 411.219 397.708C433.949 410.948 475.224 370.42 461.707 347.217zM291.846 338.481C293.216 327.521 285.442 317.524 274.481 316.154C219.635 309.299 138.702 228.367 131.846 173.519C130.473 162.53 120.447 154.785 109.52 156.154C98.559 157.524 90.785 167.52 92.155 178.48C101.317 251.766 196.322 346.6950000000001 269.5200000000001 355.8450000000001C280.473 357.213 290.4760000000001 349.442 291.8460000000001 338.481z" /> + <glyph glyph-name="life-ring" + unicode="" + horiz-adv-x="512" d=" M256 -56C392.967 -56 504 55.033 504 192S392.967 440 256 440S8 328.967 8 192S119.033 -56 256 -56zM152.602 20.72L206.013 74.131C237.819 60.625 274.141 60.609 305.987 74.131L359.398 20.72C296.1810000000001 -17.599 215.819 -17.599 152.602 20.72zM336 192C336 147.888 300.112 112 256 112S176 147.888 176 192S211.888 272 256 272S336 236.112 336 192zM427.28 88.602L373.869 142.013C387.374 173.819 387.391 210.141 373.869 241.987L427.28 295.398C465.599 232.181 465.599 151.819 427.28 88.602zM359.397 363.28L305.986 309.8690000000001C274.18 323.374 237.858 323.391 206.013 309.8690000000001L152.602 363.28C215.819 401.599 296.1810000000001 401.599 359.397 363.28zM84.72 295.398L138.131 241.987C124.625 210.181 124.609 173.859 138.131 142.013L84.72 88.602C46.401 151.819 46.401 232.181 84.72 295.398z" /> + <glyph glyph-name="lightbulb" + unicode="" + horiz-adv-x="352" d=" M176 368C123.06 368 80 324.94 80 272C80 263.16 87.16 256 96 256S112 263.16 112 272C112 307.3 140.72 336 176 336C184.84 336 192 343.16 192 352S184.84 368 176 368zM96.06 -11.17C96.06 -14.32 96.99 -17.39 98.74 -20.01L123.25 -56.85C126.22 -61.31 131.22 -63.99 136.57 -63.99H215.42C220.78 -63.99 225.7800000000001 -61.31 228.74 -56.85L253.25 -20.01C254.99 -17.39 255.92 -14.31 255.93 -11.17L255.98 32.01H96.02L96.06 -11.17zM176 448C73.72 448 0 365.03 0 272C0 227.63 16.45 187.15 43.56 156.22C60.2 137.23 86.3 97.42 95.98 64.0600000000001V64.0000000000001H143.98V64.1200000000001C143.97 68.89 143.26 73.6300000000001 141.83 78.1900000000001C136.24 96.0000000000001 119.01 142.96 79.66 187.8600000000001C59.12 211.2900000000001 48.14 241.0100000000001 48.05 272.0000000000001C47.85 345.6400000000001 107.72 400.0000000000001 176 400.0000000000001C246.58 400.0000000000001 304 342.5800000000001 304 272.0000000000001C304 241.0300000000001 292.76 211.1500000000001 272.35 187.8600000000001C233.24 143.2500000000001 215.93 96.3900000000001 210.25 78.4000000000001A47.507 47.507 0 0 1 208.03 64.1000000000001V64.0000000000001H256.0300000000001V64.0500000000001C265.7100000000001 97.4200000000001 291.8100000000001 137.2300000000001 308.4500000000001 156.21C335.55 187.15 352 227.63 352 272C352 369.2 273.2 448 176 448z" /> + <glyph glyph-name="list-alt" + unicode="" + horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM458 16H54A6 6 0 0 0 48 22V362A6 6 0 0 0 54 368H458A6 6 0 0 0 464 362V22A6 6 0 0 0 458 16zM416 108V84C416 77.373 410.627 72 404 72H204C197.373 72 192 77.373 192 84V108C192 114.627 197.373 120 204 120H404C410.627 120 416 114.627 416 108zM416 204V180C416 173.373 410.627 168 404 168H204C197.373 168 192 173.373 192 180V204C192 210.627 197.373 216 204 216H404C410.627 216 416 210.627 416 204zM416 300V276C416 269.373 410.627 264 404 264H204C197.373 264 192 269.373 192 276V300C192 306.627 197.373 312 204 312H404C410.627 312 416 306.627 416 300zM164 288C164 268.118 147.882 252 128 252S92 268.118 92 288S108.118 324 128 324S164 307.882 164 288zM164 192C164 172.118 147.882 156 128 156S92 172.118 92 192S108.118 228 128 228S164 211.882 164 192zM164 96C164 76.118 147.882 60 128 60S92 76.118 92 96S108.118 132 128 132S164 115.882 164 96z" /> + <glyph glyph-name="map" + unicode="" + horiz-adv-x="576" d=" M560.02 416C558.06 416 556.04 415.63 554.06 414.8400000000001L384.01 352H384L212 412.7200000000001A64.252 64.252 0 0 1 191.76 416C185.07 416 178.39 414.95 171.95 412.86L20.12 360.05A32.006 32.006 0 0 1 0 330.3400000000001V-15.98C0 -25.17 7.53 -32 15.99 -32C17.95 -32 19.96 -31.63 21.95 -30.84L192 32L364 -28.71A63.97999999999999 63.97999999999999 0 0 1 404.05 -28.86L555.88 23.95A31.996 31.996 0 0 1 576 53.66V399.98C576 409.17 568.47 416 560.02 416zM224 357.58L352 312.39V26.42L224 71.61V357.58zM48 29.95V318.93L176 363.4600000000001V77.26L175.36 77.03L48 29.95zM528 65.08L400 20.55V306.74L400.64 306.98L528 354.05V65.08z" /> + <glyph glyph-name="meh-blank" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" /> + <glyph glyph-name="meh-rolling-eyes" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM336 296C296.2 296 264 263.8 264 224S296.2 152 336 152S408 184.2 408 224S375.8 296 336 296zM336 184C313.9 184 296 201.9 296 224C296 237.6 303.3 249.1 313.7 256.3C312.7 253.7 312 251 312 248C312 234.7 322.7 224 336 224S360 234.7 360 248C360 250.9 359.3 253.7 358.3 256.3C368.7 249.1 376 237.6 376 224C376 201.9 358.1 184 336 184zM232 224C232 263.8 199.8 296 160 296S88 263.8 88 224S120.2 152 160 152S232 184.2 232 224zM120 224C120 237.6 127.3 249.1 137.7 256.3C136.7 253.7 136 251 136 248C136 234.7 146.7 224 160 224S184 234.7 184 248C184 250.9 183.3 253.7 182.3 256.3C192.7 249.1 200 237.6 200 224C200 201.9 182.1 184 160 184S120 201.9 120 224zM312 96H184C170.8 96 160 85.2 160 72S170.8 48 184 48H312C325.2 48 336 58.8 336 72S325.2 96 312 96z" /> + <glyph glyph-name="meh" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM336 128H160C146.8 128 136 117.2 136 104S146.8 80 160 80H336C349.2 80 360 90.8 360 104S349.2 128 336 128z" /> + <glyph glyph-name="minus-square" + unicode="" + horiz-adv-x="448" d=" M108 164C101.4 164 96 169.4 96 176V208C96 214.6 101.4 220 108 220H340C346.6 220 352 214.6 352 208V176C352 169.4 346.6 164 340 164H108zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" /> + <glyph glyph-name="money-bill-alt" + unicode="" + horiz-adv-x="640" d=" M320 304C266.98 304 224 253.86 224 192C224 130.15 266.98 80 320 80C373 80 416 130.13 416 192C416 253.86 373.02 304 320 304zM360 136C360 131.58 356.42 128 352 128H288C283.58 128 280 131.58 280 136V152C280 156.42 283.58 160 288 160H304V215.44L303.53 215.13A7.991999999999999 7.991999999999999 0 0 0 292.44 217.35L283.56 230.66A7.991999999999999 7.991999999999999 0 0 0 285.7800000000001 241.75L301.11 251.97A23.99 23.99 0 0 0 314.42 256H328C332.42 256 336 252.42 336 248V160H352C356.42 160 360 156.42 360 152V136zM608 384H32C14.33 384 0 369.67 0 352V32C0 14.33 14.33 0 32 0H608C625.67 0 640 14.33 640 32V352C640 369.67 625.67 384 608 384zM592 112C556.65 112 528 83.35 528 48H112C112 83.35 83.35 112 48 112V272C83.35 272 112 300.65 112 336H528C528 300.65 556.65 272 592 272V112z" /> + <glyph glyph-name="moon" + unicode="" + horiz-adv-x="512" d=" M279.135 -64C357.891 -64 430.117 -28.196 477.979 30.775C506.249 65.606 475.421 116.497 431.73 108.176C349.382 92.493 273.458 155.444 273.458 238.968C273.458 287.392 299.518 331.26 340.892 354.804C379.637 376.854 369.891 435.592 325.87 443.723A257.936 257.936 0 0 1 279.135 448C137.775 448 23.135 333.425 23.135 192C23.135 50.64 137.711 -64 279.135 -64zM279.135 400C292.12 400 304.824 398.799 317.151 396.522C262.391 365.359 225.4580000000001 306.48 225.4580000000001 238.968C225.4580000000001 125.12 329.0990000000001 39.768 440.7100000000001 61.024C402.574 14.036 344.366 -16 279.135 -16C164.26 -16 71.135 77.125 71.135 192S164.26 400 279.135 400z" /> + <glyph glyph-name="newspaper" + unicode="" + horiz-adv-x="576" d=" M552 384H112C91.142 384 73.357 370.623 66.752 352H24C10.745 352 0 341.255 0 328V56C0 25.072 25.072 0 56 0H552C565.255 0 576 10.745 576 24V360C576 373.255 565.255 384 552 384zM48 56V304H64V56C64 51.589 60.411 48 56 48S48 51.589 48 56zM528 48H111.422C111.796 50.614 112 53.283 112 56V336H528V48zM172 168H308C314.627 168 320 173.373 320 180V276C320 282.627 314.627 288 308 288H172C165.373 288 160 282.627 160 276V180C160 173.373 165.373 168 172 168zM200 248H280V208H200V248zM160 108V132C160 138.627 165.373 144 172 144H308C314.627 144 320 138.627 320 132V108C320 101.373 314.627 96 308 96H172C165.373 96 160 101.373 160 108zM352 108V132C352 138.627 357.373 144 364 144H468C474.627 144 480 138.627 480 132V108C480 101.373 474.627 96 468 96H364C357.373 96 352 101.373 352 108zM352 252V276C352 282.627 357.373 288 364 288H468C474.627 288 480 282.627 480 276V252C480 245.373 474.627 240 468 240H364C357.373 240 352 245.373 352 252zM352 180V204C352 210.627 357.373 216 364 216H468C474.627 216 480 210.627 480 204V180C480 173.373 474.627 168 468 168H364C357.373 168 352 173.373 352 180z" /> + <glyph glyph-name="object-group" + unicode="" + horiz-adv-x="512" d=" M500 320C506.627 320 512 325.373 512 332V404C512 410.627 506.627 416 500 416H428C421.373 416 416 410.627 416 404V392H96V404C96 410.627 90.627 416 84 416H12C5.373 416 0 410.627 0 404V332C0 325.373 5.373 320 12 320H24V64H12C5.373 64 0 58.627 0 52V-20C0 -26.627 5.373 -32 12 -32H84C90.627 -32 96 -26.627 96 -20V-8H416V-20C416 -26.627 421.373 -32 428 -32H500C506.627 -32 512 -26.627 512 -20V52C512 58.627 506.627 64 500 64H488V320H500zM448 384H480V352H448V384zM32 384H64V352H32V384zM64 0H32V32H64V0zM480 0H448V32H480V0zM440 64H428C421.373 64 416 58.627 416 52V40H96V52C96 58.627 90.627 64 84 64H72V320H84C90.627 320 96 325.373 96 332V344H416V332C416 325.373 421.373 320 428 320H440V64zM404 256H320V308C320 314.628 314.627 320 308 320H108C101.373 320 96 314.628 96 308V140C96 133.372 101.373 128 108 128H192V76C192 69.372 197.373 64 204 64H404C410.627 64 416 69.372 416 76V244C416 250.628 410.627 256 404 256zM136 280H280V168H136V280zM376 104H232V128H308C314.627 128 320 133.372 320 140V216H376V104z" /> + <glyph glyph-name="object-ungroup" + unicode="" + horiz-adv-x="576" d=" M564 224C570.627 224 576 229.373 576 236V308C576 314.627 570.627 320 564 320H492C485.373 320 480 314.627 480 308V296H392V320H404C410.627 320 416 325.373 416 332V404C416 410.627 410.627 416 404 416H332C325.373 416 320 410.627 320 404V392H96V404C96 410.627 90.627 416 84 416H12C5.373 416 0 410.627 0 404V332C0 325.373 5.373 320 12 320H24V160H12C5.373 160 0 154.627 0 148V76C0 69.373 5.373 64 12 64H84C90.627 64 96 69.373 96 76V88H184V64H172C165.373 64 160 58.627 160 52V-20C160 -26.627 165.373 -32 172 -32H244C250.627 -32 256 -26.627 256 -20V-8H480V-20C480 -26.627 485.373 -32 492 -32H564C570.627 -32 576 -26.627 576 -20V52C576 58.627 570.627 64 564 64H552V224H564zM352 384H384V352H352V384zM352 128H384V96H352V128zM64 96H32V128H64V96zM64 352H32V384H64V352zM96 136V148C96 154.627 90.627 160 84 160H72V320H84C90.627 320 96 325.373 96 332V344H320V332C320 325.373 325.373 320 332 320H344V160H332C325.373 160 320 154.627 320 148V136H96zM224 0H192V32H224V0zM504 64H492C485.373 64 480 58.627 480 52V40H256V52C256 58.627 250.627 64 244 64H232V88H320V76C320 69.373 325.373 64 332 64H404C410.627 64 416 69.373 416 76V148C416 154.627 410.627 160 404 160H392V248H480V236C480 229.373 485.373 224 492 224H504V64zM544 0H512V32H544V0zM544 256H512V288H544V256z" /> + <glyph glyph-name="paper-plane" + unicode="" + horiz-adv-x="512" d=" M440 441.5L24 201.6C-10.4 181.7 -7.1 130.8 29.7 115.7L144 68.4V-16C144 -62.4 203.2 -81.5 230.6 -44.6L274.4 14.5L386.3 -31.7C392.2 -34.1 398.4 -35.3 404.6 -35.3C412.8 -35.3 420.9 -33.2 428.2 -29.1C441 -21.9 449.8 -9.1 452.1 5.4L511.4999999999999 392.6C517.5999999999999 432.7 474.6 461.4 440 441.5zM192 -16V48.6L228.6 33.5L192 -16zM404.6 12.7L250.8 76.2L391 278.5C401.7 294 381.5 312 367.3 299.7L155.8 115.4L48 160L464 400L404.6 12.7z" /> + <glyph glyph-name="pause-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM352 272V112C352 103.2 344.8 96 336 96H288C279.2 96 272 103.2 272 112V272C272 280.8 279.2 288 288 288H336C344.8 288 352 280.8 352 272zM240 272V112C240 103.2 232.8 96 224 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H224C232.8 288 240 280.8 240 272z" /> + <glyph glyph-name="play-circle" + unicode="" + horiz-adv-x="512" d=" M371.7 210L195.7 317C179.9 325.8 160 314.5 160 296V88C160 69.6 179.8 58.2 195.7 67L371.7 168C388.1 177.1 388.1 200.8 371.7 210zM504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192z" /> + <glyph glyph-name="plus-square" + unicode="" + horiz-adv-x="448" d=" M352 208V176C352 169.4 346.6 164 340 164H252V76C252 69.4 246.6 64 240 64H208C201.4 64 196 69.4 196 76V164H108C101.4 164 96 169.4 96 176V208C96 214.6 101.4 220 108 220H196V308C196 314.6 201.4 320 208 320H240C246.6 320 252 314.6 252 308V220H340C346.6 220 352 214.6 352 208zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" /> + <glyph glyph-name="question-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119.043 440 8 328.9170000000001 8 192C8 55.003 119.043 -56 256 -56S504 55.003 504 192C504 328.9170000000001 392.957 440 256 440zM256 -8C145.468 -8 56 81.431 56 192C56 302.495 145.472 392 256 392C366.491 392 456 302.529 456 192C456 81.47 366.569 -8 256 -8zM363.2440000000001 247.2C363.2440000000001 180.148 290.8230000000001 179.116 290.8230000000001 154.337V148C290.8230000000001 141.373 285.4500000000001 136 278.8230000000001 136H233.1760000000001C226.5490000000001 136 221.1760000000001 141.373 221.1760000000001 148V156.659C221.1760000000001 192.404 248.2760000000001 206.693 268.7550000000001 218.175C286.3160000000001 228.02 297.0790000000001 234.716 297.0790000000001 247.754C297.0790000000001 265 275.0800000000001 276.447 257.2950000000001 276.447C234.1060000000001 276.447 223.4010000000001 265.4700000000001 208.3530000000001 246.478C204.2960000000001 241.358 196.8930000000001 240.407 191.6870000000001 244.354L163.8630000000001 265.452C158.7560000000001 269.324 157.6120000000001 276.5180000000001 161.2190000000001 281.815C184.846 316.509 214.94 336 261.794 336C310.865 336 363.244 297.6960000000001 363.244 247.2zM298 80C298 56.841 279.159 38 256 38S214 56.841 214 80S232.841 122 256 122S298 103.159 298 80z" /> + <glyph glyph-name="registered" + unicode="" + horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM366.442 73.791C313.396 170.075 316.192 165.259 313.171 169.876C337.438 183.755 352.653 211.439 352.653 243.052C352.653 295.555 322.406 328.304 251.1550000000001 328.304H172.488C165.8710000000001 328.304 160.488 322.921 160.488 316.304V68C160.488 61.383 165.8710000000001 56 172.488 56H211.0560000000001C217.673 56 223.0560000000001 61.383 223.0560000000001 68V151.663H255.0140000000001L302.5290000000001 62.36A11.98 11.98 0 0 1 313.1220000000001 56H355.9320000000001C365.0720000000001 56 370.8460000000001 65.799 366.4420000000001 73.791zM256.933 208.094H223.058V272.234H250.435C282.852 272.234 289.3640000000001 260.101 289.3640000000001 240.525C289.3630000000001 219.612 277.846 208.094 256.9330000000001 208.094z" /> + <glyph glyph-name="sad-cry" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM392 53.6V168C392 181.2 381.2 192 368 192S344 181.2 344 168V16.6C315.5 1 282.8 -8 248 -8S180.5 1 152 16.6V168C152 181.2 141.2 192 128 192S104 181.2 104 168V53.6C69.4 89.6 48 138.3 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 138.3 426.6 89.5 392 53.6zM205.8 213.5C210.2 215.9 212.7 220.9 211.9 225.9C207.9 251.1 177.7 268 152.1 268S96.2 251.1 92.3 225.9C91.5 220.9 94 215.9 98.4 213.5C102.8 211.1 108.3 211.7 112.1 215.1L121.6 223.6C136.4 236.8 167.8 236.8 182.6 223.6L192.1 215.1C194.6 212.8 200 210.3 205.8 213.5zM344 268C318.3 268 288.1 251.1 284.2 225.9C283.4 220.9 285.9 215.9 290.3 213.5C294.8 211.1 300.2 211.7 304 215.1L313.5 223.6C328.3 236.8 359.7 236.8 374.5 223.6L384 215.1C386.5 212.9 392 210.4 397.7 213.5C402.1 215.9 404.6 220.9 403.8 225.9C399.9000000000001 251.1 369.7 268 344 268zM248 176C217.1 176 192 147.3 192 112S217.1 48 248 48S304 76.7 304 112S278.9 176 248 176z" /> + <glyph glyph-name="sad-tear" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM256 144C242.8 144 232 133.2 232 120S242.8 96 256 96C279.8 96 302.3 85.5 317.6 67.2C325.7000000000001 57.4 340.8 55.3 351.4000000000001 64.1C361.6 72.6 363.0000000000001 87.7 354.5000000000001 97.9C330 127.2 294.1 144 256 144zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM162.4 173.2C151 157.9 126 122.6 126 105.1C126 82.4 144.8 64 168 64S210 82.4 210 105.1C210 122.6 185 157.9 173.6 173.2000000000001C170.8 176.9 165.2 176.9 162.4 173.2000000000001z" /> + <glyph glyph-name="save" + unicode="" + horiz-adv-x="448" d=" M433.941 318.059L350.059 401.9410000000001A48 48 0 0 1 316.118 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V284.118A48 48 0 0 1 433.941 318.059zM272 368V288H144V368H272zM394 16H54A6 6 0 0 0 48 22V362A6 6 0 0 0 54 368H96V264C96 250.745 106.745 240 120 240H296C309.255 240 320 250.745 320 264V364.118L398.243 285.875A6 6 0 0 0 400 281.632V22A6 6 0 0 0 394 16zM224 216C175.477 216 136 176.523 136 128S175.477 40 224 40S312 79.477 312 128S272.523 216 224 216zM224 88C201.944 88 184 105.944 184 128S201.944 168 224 168S264 150.056 264 128S246.056 88 224 88z" /> + <glyph glyph-name="share-square" + unicode="" + horiz-adv-x="576" d=" M561.938 289.94L417.94 433.908C387.926 463.922 336 442.903 336 399.968V342.77C293.55 340.89 251.97 336.2200000000001 215.24 324.7800000000001C180.07 313.8300000000001 152.17 297.2000000000001 132.33 275.36C108.22 248.8 96 215.4 96 176.06C96 114.363 129.178 63.605 180.87 31.3C218.416 7.792 266.118 43.951 251.89 87.04C236.375 134.159 234.734 157.963 336 165.8V112C336 69.007 387.968 48.087 417.94 78.06L561.938 222.06C580.688 240.8 580.688 271.2 561.938 289.94zM384 112V215.84C255.309 213.918 166.492 192.65 206.31 72C176.79 90.45 144 123.92 144 176.06C144 285.394 273.14 295.007 384 295.91V400L528 256L384 112zM408.74 27.507A82.658 82.658 0 0 1 429.714 36.81C437.69 41.762 448 35.984 448 26.596V-16C448 -42.51 426.51 -64 400 -64H48C21.49 -64 0 -42.51 0 -16V336C0 362.51 21.49 384 48 384H180C186.627 384 192 378.627 192 372V367.514C192 362.597 189.013 358.145 184.431 356.362C170.729 351.031 158.035 344.825 146.381 337.777A12.138 12.138 0 0 0 140.101 336H54A6 6 0 0 1 48 330V-10A6 6 0 0 1 54 -16H394A6 6 0 0 1 400 -10V15.966C400 21.336 403.579 26.025 408.74 27.507z" /> + <glyph glyph-name="smile-beam" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM332 135.4C311.2 110.4 280.5 96 248 96S184.8 110.3 164 135.4C155.5 145.6 140.4 146.9 130.2 138.5C120 130 118.7 114.9 127.1 104.7C157.1 68.7 201.2 48.1 248 48.1S338.9 68.7 368.9 104.7C377.4 114.9 376 130 365.8 138.5C355.6 146.9 340.5 145.6 332 135.4zM136.5 237C144.2 250.7 155.7 258.6 168 258.6S191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7000000000001 191.8 296 168 296S115.3 266.7000000000001 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3C121.1 215.2 125.1 216.8 127 220L136.5 237zM328 296C304.2 296 275.3 266.7 272 224.6C271.7 220.9 274.1 217.4 277.7 216.3C281.2 215.2 285.1 216.8 287 220L296.5 237C304.2 250.7 315.7 258.6 328 258.6S351.8 250.7 359.5 237L369 220C371.1 216.3 375.2 215.3 378.3 216.3C381.9000000000001 217.4 384.3 220.8 384 224.6C380.7 266.7 351.8 296 328 296z" /> + <glyph glyph-name="smile-wink" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM365.8 138.4C355.6 146.9 340.5 145.5 332 135.3C311.2 110.3 280.5 95.9 248 95.9S184.8 110.2 164 135.3C155.5 145.5 140.3 146.8 130.2 138.4C120 129.9 118.7 114.8 127.1 104.6C157.1 68.6 201.2 47.9999999999999 248 47.9999999999999S338.9 68.6 368.9 104.6C377.4 114.8 376 129.9 365.8 138.4zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 268C302.3 268 272.1 251.1 268.1 225.9C266.4000000000001 214.7 279.6 207.7 287.9000000000001 215.1L297.4000000000001 223.6C312.2000000000001 236.8 343.6 236.8 358.4000000000001 223.6L367.9000000000001 215.1C376.4000000000001 207.7 389.5000000000001 214.8 387.7000000000001 225.9C383.9000000000001 251.1 353.7000000000001 268 328.0000000000001 268z" /> + <glyph glyph-name="smile" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208zM332 135.4C311.2 110.4 280.5 96 248 96S184.8 110.3 164 135.4C155.5 145.6 140.3 146.9 130.2 138.5C120 130 118.7 114.9 127.1 104.7C157.1 68.7 201.2 48.1 248 48.1S338.9 68.7 368.9 104.7C377.4 114.9 376 130 365.8 138.5C355.7 146.9 340.5 145.6 332 135.4z" /> + <glyph glyph-name="snowflake" + unicode="" + horiz-adv-x="448" d=" M438.237 92.073L371.663 130.613L431.111 140.94C436.957 142.315 441.72 146.123 444.569 151.07C447.0490000000001 155.377 448.075 160.548 447.093 165.721C444.983 176.836 434.4070000000001 183.76 423.4720000000001 181.188L338.0490000000001 150.073L255.914 192L338.05 233.926L423.473 202.811C434.409 200.239 444.985 207.163 447.094 218.278C449.205 229.393 442.048 240.487 431.113 243.059L371.665 253.386L438.238 291.926C447.778 297.449 450.853 310.018 445.105 320C439.357 329.982 426.965 333.596 417.425 328.074L350.851 289.534L371.656 346.3210000000001C374.902 357.103 368.898 368.863 358.243 372.589C347.589 376.314 336.3209999999999 370.592 333.075 359.81L317.2369999999999 270.075L244.8139999999999 228.149V312L314.3989999999999 370.621C322.0879999999999 378.831 321.3959999999999 391.4770000000001 312.8509999999999 398.866C304.3059999999999 406.257 291.1459999999999 405.589 283.4569999999999 397.38L244.8129999999999 350.92V428C244.8129999999999 439.046 235.4949999999999 448 223.9999999999999 448S203.1869999999999 439.046 203.1869999999999 428V350.92L164.5429999999999 397.38C156.8539999999999 405.5900000000001 143.6939999999999 406.256 135.1489999999999 398.866C126.6049999999999 391.477 125.9129999999999 378.831 133.6019999999999 370.621L203.187 312V228.147L130.764 270.073L114.926 359.809C111.679 370.591 100.411 376.313 89.757 372.588C79.101 368.863 73.098 357.102 76.344 346.32L97.149 289.533L30.576 328.073C21.036 333.596 8.643 329.981 2.896 319.999S0.223 297.448 9.763 291.925L76.337 253.385L16.888 243.057C5.953 240.485 -1.202 229.391 0.907 218.276C3.017 207.162 13.593 200.238 24.529 202.81L109.951 233.925L192.086 192L109.95 150.074L24.527 181.189C13.591 183.761 3.016 176.8370000000001 0.905 165.723C-1.204 154.61 5.951 143.514 16.886 140.942L76.335 130.614L9.761 92.074C0.223 86.551 -2.852 73.982 2.896 64S21.036 50.403 30.576 55.926L97.15 94.466L76.345 37.68C74.61 31.916 75.517 25.875 78.365 20.929C80.845 16.622 84.798 13.145 89.757 11.412C100.412 7.687 111.68 13.409 114.926 24.191L130.764 113.927L203.187 155.853V72L133.602 13.379C125.912 5.169 126.605 -7.476 135.149 -14.866C143.693 -22.254 156.854 -21.589 164.543 -13.379L203.187 33.081V-44C203.187 -55.046 212.505 -64 224 -64S244.813 -55.046 244.813 -44V33.081L283.457 -13.379C287.568 -17.768 293.2389999999999 -19.9999999999999 298.935 -19.9999999999999C303.8949999999999 -19.9999999999999 308.874 -18.3059999999999 312.851 -14.8659999999999C321.396 -7.4759999999999 322.088 5.1690000000001 314.399 13.3790000000001L244.813 72V155.853L317.236 113.927L333.074 24.191C336.32 13.409 347.588 7.687 358.242 11.412C368.8950000000001 15.138 374.901 26.8990000000001 371.654 37.6800000000001L350.849 94.467L417.423 55.927C426.963 50.404 439.356 54.019 445.103 64.001C450.852 73.982 447.778 86.5510000000001 438.237 92.073z" /> + <glyph glyph-name="square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM394 16H54C50.7 16 48 18.7 48 22V362C48 365.3 50.7 368 54 368H394C397.3 368 400 365.3 400 362V22C400 18.7 397.3 16 394 16z" /> + <glyph glyph-name="star-half" + unicode="" + horiz-adv-x="576" d=" M288 62.7L163.7 -2.7L187.4 135.6999999999999L86.8 233.7L225.8 253.8999999999999L288 379.8999999999999V448C276.6 448 265.2 442.1 259.3 430.2L194 297.8L47.9 276.6C21.7 272.8 11.2 240.5 30.2 222L135.9 119L110.9 -26.5C106.4 -52.6 133.9 -72.5 157.3 -60.2L288 8.4V62.7z" /> + <glyph glyph-name="star" + unicode="" + horiz-adv-x="576" d=" M528.1 276.5L382 297.8L316.7 430.2C305 453.8 271.1 454.1 259.3 430.2L194 297.8L47.9 276.5C21.7 272.7 11.2 240.4 30.2 221.9L135.9 118.9L110.9 -26.6C106.4 -52.9 134.1 -72.6 157.3 -60.3L288 8.4L418.7 -60.3C441.9 -72.5 469.6 -52.9 465.1 -26.6L440.1 118.9L545.8 221.9C564.8 240.4 554.3 272.7 528.0999999999999 276.5zM388.6 135.7L412.3 -2.7L288 62.6L163.7 -2.7L187.4 135.7000000000001L86.8 233.7000000000001L225.8 253.9000000000001L288 379.9000000000001L350.2 253.9000000000001L489.2 233.7000000000001L388.6 135.7000000000001z" /> + <glyph glyph-name="sticky-note" + unicode="" + horiz-adv-x="448" d=" M448 99.894V368C448 394.51 426.51 416 400 416H48C21.49 416 0 394.51 0 368V16.012C0 -10.498 21.49 -31.988 48 -31.988H316.118A48 48 0 0 1 350.059 -17.929L433.941 65.953A48 48 0 0 1 448 99.894zM320 19.894V96.012H396.118L320 19.894zM400 368V144.012H296C282.745 144.012 272 133.267 272 120.012V16.012H48V368H400z" /> + <glyph glyph-name="stop-circle" + unicode="" + horiz-adv-x="512" d=" M504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192zM352 272V112C352 103.2 344.8 96 336 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H336C344.8 288 352 280.8 352 272z" /> + <glyph glyph-name="sun" + unicode="" + horiz-adv-x="512" d=" M220.116 -39.936L199.903 9.489A3.9920000000000004 3.9920000000000004 0 0 1 194.095 11.3750000000001L148.691 -16.7289999999999C119.225 -34.9689999999999 82.396 -8.2099999999999 90.637 25.45L103.336 77.3150000000001A3.9930000000000003 3.9930000000000003 0 0 1 99.746 82.256L46.495 86.2070000000001C11.941 88.7690000000001 -2.137 132.0620000000001 24.321 154.4540000000001L65.08 188.95A3.9920000000000004 3.9920000000000004 0 0 1 65.08 195.056L24.32 229.553C-2.13 251.937 11.93 295.235 46.494 297.799L99.745 301.75A3.9930000000000003 3.9930000000000003 0 0 1 103.335 306.691L90.637 358.557C82.398 392.213 119.218 418.977 148.691 400.736L194.094 372.632A3.9930000000000003 3.9930000000000003 0 0 1 199.902 374.519L220.115 423.944C233.231 456.015 278.753 456.025 291.873 423.944L312.085 374.52A3.9939999999999998 3.9939999999999998 0 0 1 317.894 372.6330000000001L363.2970000000001 400.737C392.761 418.973 429.5940000000001 392.224 421.351 358.558L408.652 306.693A3.9950000000000006 3.9950000000000006 0 0 1 412.242 301.752L465.4929999999999 297.8010000000001C500.0459999999999 295.2380000000001 514.126 251.947 487.6679999999999 229.555L446.908 195.058A3.9930000000000003 3.9930000000000003 0 0 1 446.908 188.951L487.6679999999999 154.455C514.179 132.014 499.99 88.766 465.4929999999999 86.208L412.242 82.257A3.9930000000000003 3.9930000000000003 0 0 1 408.653 77.3149999999999L421.351 25.451C429.592 -8.207 392.7679999999999 -34.97 363.2969999999999 -16.729L317.8939999999999 11.3749999999999A3.9939999999999998 3.9939999999999998 0 0 1 312.0849999999999 9.4879999999999L291.8729999999999 -39.936C278.7139999999999 -72.114 233.1979999999999 -71.9290000000001 220.1159999999999 -39.936zM236.93 24.632L255.994 -21.984L275.058 24.631C285.366 49.831 315.836 59.697 338.95 45.39L381.772 18.883L369.796 67.802C363.321 94.246 382.176 120.141 409.283 122.151L459.509 125.877L421.065 158.413C400.283 176.004 400.318 208.034 421.066 225.593L459.508 258.129L409.283 261.856C382.132 263.871 363.333 289.8040000000001 369.795 316.2050000000001L381.773 365.124L338.95 338.617C315.799 324.29 285.347 334.217 275.058 359.377L255.994 405.992L236.93 359.375C226.625 334.177 196.152 324.3090000000001 173.039 338.615L130.216 365.123L142.193 316.2050000000001C148.667 289.759 129.812 263.867 102.705 261.855L52.481 258.129L90.924 225.592C111.706 208.004 111.671 175.973 90.924 158.414L52.48 125.877L102.706 122.151C129.857 120.137 148.656 94.204 142.193 67.802L130.216 18.883L173.039 45.39C196.227 59.7450000000001 226.661 49.742 236.93 24.6320000000001zM256 64C185.42 64 128 121.421 128 192C128 262.58 185.42 320 256 320C326.579 320 384 262.58 384 192C384 121.421 326.579 64 256 64zM256 272C211.888 272 176 236.112 176 192S211.888 112 256 112S336 147.888 336 192S300.112 272 256 272z" /> + <glyph glyph-name="surprise" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM248 168C212.7 168 184 139.3 184 104S212.7 40 248 40S312 68.7 312 104S283.3 168 248 168zM200 240C200 257.7 185.7 272 168 272S136 257.7 136 240S150.3 208 168 208S200 222.3 200 240zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" /> + <glyph glyph-name="thumbs-down" + unicode="" + horiz-adv-x="512" d=" M466.27 222.69C470.944 245.337 467.134 267.228 457.28 285.68C460.238 309.548 453.259 334.245 439.94 352.67C438.986 408.577 404.117 448 327 448C320 448 312 447.99 304.78 447.99C201.195 447.99 168.997 408 128 408H117.155C111.515 412.975 104.113 416 96 416H32C14.327 416 0 401.673 0 384V144C0 126.327 14.327 112 32 112H96C107.842 112 118.175 118.438 123.708 128H130.76C149.906 111.047 176.773 67.347 199.52 44.6C213.187 30.9330000000001 209.673 -64 271.28 -64C328.86 -64 366.55 -32.064 366.55 40.73C366.55 59.14 362.62 74.46 357.7 87.27H394.18C442.782 87.27 479.9999999999999 128.835 479.9999999999999 172.85C479.9999999999999 192 475.04 207.84 466.2699999999999 222.69zM64 152C50.745 152 40 162.745 40 176S50.745 200 64 200S88 189.255 88 176S77.255 152 64 152zM394.18 135.27H290.19C290.19 97.45 318.55 79.9 318.55 40.73C318.55 16.98 318.55 -16.0000000000001 271.2800000000001 -16.0000000000001C252.3700000000001 2.91 261.8200000000001 50.18 233.4600000000001 78.54C206.9 105.11 167.28 176 138.92 176H128V362.17C181.611 362.17 228.001 399.99 299.64 399.99H337.46C372.972 399.99 398.28 382.87 390.58 334.0900000000001C405.78 325.93 417.08 297.65 404.52 276.52C426.101 256.136 423.219 225.455 409.73 210.9C419.18 210.9 432.09 191.99 432 173.09C431.91 154.18 415.29 135.2700000000001 394.18 135.2700000000001z" /> + <glyph glyph-name="thumbs-up" + unicode="" + horiz-adv-x="512" d=" M466.27 161.31C475.04 176.16 480 192 480 211.15C480 255.165 442.782 296.73 394.18 296.73H357.7C362.62 309.54 366.55 324.86 366.55 343.27C366.55 416.064 328.86 448 271.28 448C209.673 448 213.187 353.067 199.52 339.4C176.773 316.653 149.905 272.953 130.76 256H32C14.327 256 0 241.673 0 224V-16C0 -33.673 14.327 -48 32 -48H96C110.893 -48 123.408 -37.826 126.978 -24.05C171.487 -25.051 202.038 -63.99 304.78 -63.99C312 -63.99 320 -64 327 -64C404.117 -64 438.986 -24.577 439.94 31.33C453.259 49.755 460.239 74.452 457.28 98.32C467.134 116.772 470.944 138.663 466.27 161.31zM404.52 107.48C417.08 86.35 405.78 58.0700000000001 390.58 49.91C398.28 1.13 372.972 -15.99 337.46 -15.99H299.64C228.001 -15.99 181.611 21.83 128 21.83V208H138.92C167.28 208 206.9 278.89 233.46 305.46C261.82 333.82 252.37 381.09 271.28 400C318.55 400 318.55 367.02 318.55 343.27C318.55 304.1 290.19 286.55 290.19 248.73H394.18C415.29 248.73 431.91 229.82 432 210.91C432.0899999999999 192.01 419.18 173.1 409.73 173.1C423.219 158.545 426.101 127.864 404.52 107.48zM88 16C88 2.745 77.255 -8 64 -8S40 2.745 40 16S50.745 40 64 40S88 29.255 88 16z" /> + <glyph glyph-name="times-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM357.8 254.2L295.6 192L357.8 129.8C362.5 125.1 362.5 117.5 357.8 112.8L335.2 90.2C330.5 85.5 322.9 85.5 318.2 90.2L256 152.4L193.8 90.2C189.1 85.5 181.5 85.5 176.8 90.2L154.2 112.8C149.5 117.5 149.5 125.1 154.2 129.8L216.4 192L154.2000000000001 254.2C149.5000000000001 258.9 149.5000000000001 266.5 154.2000000000001 271.2L176.8000000000001 293.8C181.5 298.5 189.1000000000001 298.5 193.8000000000001 293.8L256.0000000000001 231.6L318.2000000000001 293.8C322.9000000000001 298.5 330.5000000000001 298.5 335.2000000000001 293.8L357.8000000000001 271.2C362.5000000000001 266.5 362.5000000000001 258.9 357.8000000000001 254.2z" /> + <glyph glyph-name="tired" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM377.1 295.8C373.3 300.2000000000001 366.8 301.2000000000001 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7C367.2 178.5 373.6 180.1 377.1 184.2C380.9000000000001 188.7 381 195.2 377.2000000000001 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.4 377.1 295.8zM220 240C220 244.2 217.8 248.1 214.2 250.3L134.2 298.3C129.2 301.3 122.7 300.2000000000001 118.9 295.8C115.1 291.3 115 284.8 118.8 280.3L152.4 240L118.8 199.7C115 195.2 115.1 188.7 118.9 184.2C122.4 180.1 128.8 178.5 134.2 181.7L214.2 229.7C217.8 231.9 220 235.8 220 240zM248 176C202.6 176 147.1 137.7 140.2 82.7C138.7 70.9 147.1 61.1 155.7 64.8C178.4 74.5 212 80 248 80S317.6 74.5 340.3 64.8C348.8 61.1 357.3 70.8 355.8 82.7C348.9000000000001 137.7 293.4000000000001 176 248 176z" /> + <glyph glyph-name="trash-alt" + unicode="" + horiz-adv-x="448" d=" M192 260V44C192 37.373 186.627 32 180 32H156C149.373 32 144 37.373 144 44V260C144 266.627 149.373 272 156 272H180C186.627 272 192 266.627 192 260zM292 272H268C261.373 272 256 266.627 256 260V44C256 37.373 261.373 32 268 32H292C298.627 32 304 37.373 304 44V260C304 266.627 298.627 272 292 272zM424 368C437.255 368 448 357.255 448 344V332C448 325.373 442.627 320 436 320H416V-16C416 -42.51 394.51 -64 368 -64H80C53.49 -64 32 -42.51 32 -16V320H12C5.373 320 0 325.373 0 332V344C0 357.255 10.745 368 24 368H98.411L132.429 424.6960000000001A48 48 0 0 0 173.589 448H274.412A48 48 0 0 0 315.572 424.6960000000001L349.589 368H424zM154.389 368H293.612L276.1600000000001 397.087A6 6 0 0 1 271.015 400H176.987A6 6 0 0 1 171.842 397.087L154.389 368zM368 320H80V-10A6 6 0 0 1 86 -16H362A6 6 0 0 1 368 -10V320z" /> + <glyph glyph-name="user-circle" + unicode="" + horiz-adv-x="496" d=" M248 344C195 344 152 301 152 248S195 152 248 152S344 195 344 248S301 344 248 344zM248 200C221.5 200 200 221.5 200 248S221.5 296 248 296S296 274.5 296 248S274.5 200 248 200zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C198.3 -8 152.9 10.3 117.9 40.4C132.8 63.4 158.3 79 187.5 79.9C208.3 73.5 228.1 70.3 248 70.3S287.7 73.4 308.5 79.9C337.7 78.9 363.2 63.4 378.1 40.4C343.1 10.3 297.7000000000001 -8 248.0000000000001 -8zM410.7 76.1C386.3 107.5 348.6 128 305.6 128C295.4000000000001 128 279.6 118.4 248.0000000000001 118.4C216.5 118.4 200.6 128 190.4 128C147.5 128 109.8 107.5 85.3 76.1C61.9 108.8 48 148.8 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 148.8 434.1 108.8 410.7 76.1z" /> + <glyph glyph-name="user" + unicode="" + horiz-adv-x="448" d=" M313.6 144C284.9000000000001 144 271.1 128 224 128C176.9 128 163.2000000000001 144 134.4 144C60.2 144 0 83.8 0 9.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V9.6C448 83.8 387.8 144 313.6 144zM400 -16H48V9.6C48 57.2000000000001 86.8 96 134.4 96C149 96 172.7 80 224 80C275.7 80 298.9 96 313.6 96C361.2000000000001 96 400 57.2 400 9.6V-16zM224 160C303.5 160 368 224.5 368 304S303.5 448 224 448S80 383.5 80 304S144.5 160 224 160zM224 400C276.9 400 320 356.9 320 304S276.9 208 224 208S128 251.1 128 304S171.1 400 224 400z" /> + <glyph glyph-name="window-close" + unicode="" + horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM464 22C464 18.7 461.3 16 458 16H54C50.7 16 48 18.7 48 22V362C48 365.3 50.7 368 54 368H458C461.3 368 464 365.3 464 362V22zM356.5 253.4L295.1 192L356.5 130.6C361.1 126 361.1 118.5 356.5 113.8L334.2 91.5C329.6 86.9 322.1 86.9 317.4 91.5L256 152.9L194.6 91.5C190 86.9 182.5 86.9 177.8 91.5L155.5 113.8C150.9 118.4 150.9 125.9 155.5 130.6L216.9 192L155.5 253.4000000000001C150.9 258 150.9 265.5 155.5 270.2000000000001L177.8 292.5000000000001C182.4 297.1 189.9 297.1 194.6 292.5000000000001L256 231.1000000000001L317.4 292.5000000000001C322 297.1 329.5 297.1 334.2 292.5000000000001L356.5 270.2000000000001C361.2 265.6 361.2 258.1 356.5 253.4000000000001z" /> + <glyph glyph-name="window-maximize" + unicode="" + horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM464 22C464 18.7 461.3 16 458 16H54C50.7 16 48 18.7 48 22V256H464V22z" /> + <glyph glyph-name="window-minimize" + unicode="" + horiz-adv-x="512" d=" M480 -32H32C14.3 -32 0 -17.7 0 0S14.3 32 32 32H480C497.7 32 512 17.7 512 0S497.7 -32 480 -32z" /> + <glyph glyph-name="window-restore" + unicode="" + horiz-adv-x="512" d=" M464 448H144C117.5 448 96 426.5 96 400V352H48C21.5 352 0 330.5 0 304V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H464C490.5 32 512 53.5 512 80V400C512 426.5 490.5 448 464 448zM368 -16H48V192H368V-16zM464 80H416V304C416 330.5 394.5 352 368 352H144V400H464V80z" /> + </font> +</defs> +</svg> diff --git a/website/agenda/planung/webfonts/fa-regular-400.ttf b/website/agenda/planung/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..36a7de36cc8eaf102da5b60290d3cce885268fe2 GIT binary patch literal 40348 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 Zt5V_o%seok4=P`jT3nJ}l*+)s003KERayW5 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-regular-400.woff b/website/agenda/planung/webfonts/fa-regular-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..f7fab8586e1b289547ad2779507faa082d3998a8 GIT binary patch literal 18168 zcmXT-cXMN4WME)maQnf)4Wj4Hf$%|WRO}uc>cqgn$icwCV9mh55TeknTIC<CZ^XdB z=)%Cj;LO0l5N5wCNGmxvv4DYrv4equRiA-@$7a1Q+p6@O$}|QBwjB%%7V!)WjUp~` zE+;Zl6H^!%>?If&7z`K~7|aCTuKAIXk($WBVDG`ez@Wguz@Wln&2%9nx1@rB!9Ih5 zfngB?15<*s;r}B!`N@e43=TXD42&TAjUs~0XXPeV6fiJ2IxsLW$b<AVZeVzmmzbN% zz~Gp`z`&Tmz`!h|nI?X-AiubTfx+nj0|SdG0|Wd1bEmRxE9N98q$DIfNHR#+kepCd z_?a{D!D&yOlgSg35)vC2CfFFwHdHsZo!H2HjQP~YhD<(%wB`;b1~qF|4+gN_nxhtt zjZ+&N3#F2!n3<ccr~EsmaPq>T0|$;AICZ8$lx4}zWd;^C2|ufvJ|6hb%v06lE*aBs zs7Jw)L0}1QHbcdntJfm)uZBt-eHbq(8hEhNagKnfpy1KU11p;rxVp4VYf|n|ZfdyI zWaKHzDC$z+vtz*|3D2G;Mou>^XTwPi;cW$uPLEjKHh;If%d&^z`utXnzf4)>axW}> z{qD_sSH6~c3tN;|e&*8lxtfcAd^53)E_?EG+7|0iHLIuXfAKN>%o5(cPOmSRm2lm4 z?!Tb^h5zY7Egufy!%qxMefW)?V`qp@Yw<tyX@gM?UvHxS57Q}!8VfYadSa8e-_W0S zoUyP#MyUPh#lo01-QAB@?a<BZw?DqOF#e7_|FW{ofK?t>Gks=F%DVh#i$U$&YfHao zI%j#<FTMM6dr)`K`JmF3`?hRe>3n(Bve-%&x%t_joBkB8JHPt#tveH>`Q_U#th%{I zx&N%y+Z~bN8Q0bxKYQz^{N}JD3pZNz^%g%?I=gG*%{9!XuM5svX<n6?S$g(jr1>)0 z<7sPi%(8vwO`QHr^yljR>3`?fOnoU=bMH+};hUPuJCUnDpDlcTyME658%M;Xem2UN zmYG{um(*R)O!_~u_`!>x&Cd06H-(+`o4x7t>8j~pHD5=|oQ*mwz322zo8w=1o$S9b zdHc&FC3oMP&N%<`&XL|ZM_KoryBu>wLoPw$@Xq<%rI%m7IJ$YxiHv0zTd(hE^|Wzw z&#G)ZcV?0G@<O%r0@>-G#kgml7x8;8<hMxvdXZ{)v1sj%rtBA|jraJ}FDqiQwP+Ww z?5r$F=270!KapqQBzDPD+H+26mOMyNE6_9D<0(4*)!)2>Npg=8?<H%Vo^e`9Zs}^X zZCkf()ZK10Q+3X9ncUY$?;JRL$BlJ+v3hyHIfi#h3gyN8%@Sw!_B<{;_DRIwV4iyA zyv{wRc+xgElz&;C`#C>;-TwpOzaP!tX4_{M6_(QR(o8UF_B+vqYhShrTFrbXwQ%># zYl2lX-pMcQ7o92fYxX;pg?CD<IhB3CPYK8rSs$CaYj+E0*pspu8N1H6oDBQJmbmI= zpYXDodDe-$UfvT<n`PDzkbaBxkj>>VfoU_oHGk;L4CXlPYwaA7cuUS{Z)QKo{8?sQ z8!l~$ZaKS5S2@SDD^jXAX`1aaS(QIox7?ggZkgV~yo^^>#^|lq#>JW0opXJEd%sD# zm68;G*-v=)%x$x8oY#n3d}qtYBaF-Ls`Ht3U0-MLl(DcwQ?kR^SJH9M{V8Hc5|`ak z2%9a`VsUGV>XD7hLKORqpK=$j)6DEBU3NxM&uA%s;YQ8&j@3S$E_X6S_QyACF73EK z`%~ABlT%`joL$DFoM*UHvT(KL^^V?UEy{Vusj`K;HNSS)&;HcE<NB1ABelzXRNk2{ zRsOg@Q{D5ePp79;#wou`cbAE%@)|wWTzP29nk5gH^{Corctu|dJQaJ%WATsum!=$D zqP4gpZ%W`Ex2>8hJ(GQA`p!!6%D=?DOh(<;Ow}s0OY^p;>9Q&6S7&{iXL4VoZr_C~ zj7v=246k2b7N@Xw^P|mCQTea9F0ln?PcWPHtNBVome3`>;N=s_X5DK2GFf!z^s?Df z?O$fEtk&3SuvK8`yk&NaLNbr0pA4ERI^WQHu}`k+%3D{Wr@Zpzb<147@^r?lge=op zVKaaAE{k2ZOu2u<qtDrL`C0Zwy(`&IZe8Z4a^9d+xpLV`)svfjYCY%WX8C=R32vVh zZ@g8ra^1@ClcmerRQKn-iuxqI?3(I%<FEQZeS?K3Kc8(ibI*Y*=bkKGHcw68*wpN2 zZE*QydxNbOKb?c;PqsJe`u;dM`1s`T8Mo%e<iD!@6u!)#;mK9Ek9KQKyS^_zsF9Xq za_^_`AzqLD3>9<s)^bi!aW749i<?-U8kQP%?dsLi^!u@QOTVs2ugcQPOf#7jm88<o zx5Q0qv7<+tfKWT*#Y0W%(vobF(i=A3eRC_~SjEicsgV;tUP`JxVYcRLjqSCx>2bHu z^S}RfbMv<QQE!~i{_8liX7%b_>DTgYgJnf$O3wWH_;`Q)(f;{7=MBQQUp$>LduIBy z8PYRK+Z<1ybzTuS)3vv1=?wjjzSQH{l|`Gb?Y*?Ruu{8!`s}Y>j$0mESj6ijY<zHV zx<%s~i(gF*8xzvsoZB|{<c$@)p;gE9SI^D8a?dMN>#Nt&zpRnpjrQa`^YJ`UVRb4o z(d$5HQG9yyl+db0Z>P@<zj$r+lYLdG!BdkunbbLA6a^=Tu>DJXahvb9TeMG0r=eup zOv_Vu4%%?ozIh#bcvZNEe9PY77hZk)ajP$K^W?>I?=D>M{DNP4b&2@@^R7%^b};20 zyc_++^TOYAu3HK#Q|fOsrB7nka0_RY|4{x_w1l;`^WqGZp7Pn2rwukXHNMe_igW(T zdPGz#pq5uRePXV{dW9sz?pbS1Manm4@K$o4XfB)T8e$kwBh=X^8=tpLEPzE)qdV)# zioov+{$?MSvoCw|k$=*oh|l}dKJRn)yy&AhLrHq0>)N1;F4l*-o*mNk6c?$C-RR<a zj$>oUo9&j~k<&#Tr$2Bwaf0ht&<7O_tG5pV17eDDa$c`V(dbg#XeDEz{&dArRSVU$ z!bv(WH{K|WY)sbHa*k~ep5ywWX>mn`?t#Nf7Y;|r6!7)@SLxE1ck``xo51LH=ET3d zr9MJO+bvq_Jp`5}PjNcV*w1GtC@A-6Vd@jk87#^PS*46j4_FwMa*LJa6pA@AJ`P~t z@krRf@Nv-l_6ue2+x?Oj{-3_hohgpNgFW#+um8>VBkim1xC%I2&AKvsb;B&R2PgX! zHWqP+a*H}KFRpsWTr%&moX~exjt5~s*j>3UtSA)T#lf^8DYk)OhlGQ}L54p%%rSO{ zj`iGr8GAQgviHon>1>VcGk&ZNUtc%1R%$PgjoRrgGfW$}LR}o3@3?+cQ=DD2`RPHQ zrr?&x6*31nWs-zK8)ofcOSBU9IFe_~ws|?noX73^|3^AL7i|>1vHOqL@;Q^mBfLv3 zEVC9IiPDNbU$pwzNzoZfQ%|09Q4GDgX2%Quhhn~0exBPCU-|jX$46c_3oTV8S1SqU zHFfTZ$h=!H{nZ4{haM+8BhnYo@tZEm_sj9gfzv*HkqJ@;_eA;seQ(TQVB5WyAuUqv zPv0cQFUOABeRy$S`C8~=kxf%42VPw&kS}%doN@8ZUk9to-UYK<+buA?U^!noW8nK; z4?j$q{eba8#H4uJeuglncR#Osi&(WKuAFm=#d4{E--(0KdWrYsw!QLY(0sSxE8m9O zZ{PORz7#sIH2bOG73-_r;ulvRusJ`^w)@_>Pc}B)6JLCOVBd3F<-(=JXJ*eBpXHvp zd_YjsR{!u8rO#^u3fm*B<*eddov%wbUvGO~KG)_i>uRTk$HdOuD_Z+|vFYkPo|Wvn z^SHHt+`W5?eb?66RlMg*{OfiyU%Kcf$a+`LUEsuxb4$CwoQk%-?^b*_ZAbZgxAnKQ z&-G>foEOw-V0zSG$~jLRS>@&Z3+Fq>*6g!sI4_@ACu1Qwx7&8kwzdz(H8wr=`SZUS zo)&ZTU)iAY{bxYK@wi;ebCEwC?$xiky|&$5DWRlv_xl`;3AMf{#vuW#=ISokxmjob z)$G-8-L&_WAK4k#_+;Le^^+%;?mts9&)s;gJ>#pdKNs}BR`U3`*g(1~cFLElZKX0z ziU*orG{y;c@Fn!>o|4Zk$y{M=$1yYHd9gva*^g`Om94vHK5v})p*X)$>D=P8j125o zL=LdDek->-^U?h9T)pFG{|oS&Yx>y#5nOgmhKWm3WkS;HU2b1&pL~y3JX-xtdRBRo zqN9}4$Fr{wfA&4|_JFYSN$(p>qWX3>{uac_zsZp0PS>zWKXJZ%wfOhfCzqGqby_w5 z{`TPAzg<=?^cK1&5bH8Qdi(nPwuPeHZhLOBC~dU(be31PK4Jg4xl*<9-z5rvf14~j zL;1R;^S9YN*PVVc&VA3o6Ww!a$;`+F#Rr5r0-9c>?c`tX!c%Z<!Pc+$?lbj1aeVQ? zc~M8+yZ^mf=Y=e4LSh-8@?8;B+;lVB;X=VQlLcqp4qRMsv+Y|W^UR0(F>>52TK}f4 zw-Ze8?_o_bxBE54Z41B5bmd3QGT#+66rM#`#NF@T{AKImz<0qS-;W;OxNo1GrPvg2 z#U0j<kGI}P4v%EBl|6Ch@ew&~{!H$pwOe@2^MA728t;vhtmF9gafgB@lV;u8=-&tP z-cI$4KBhJ;*{VwPbkXy-ceSM_eF$IT*M0w$m^@FHR+e-1ot<lrzhGW9sX%!ri>t%` z{k{97U%cjaE)#oq{d(;Bpbmwoj<SUOtH)Qoj%U_9R9i9CLv-GL@g0Ys|EM!wee3e| z`|{6s%G)0)bji4T`t$xnnzhOPHB7;aYZ(v9$WEJ3tIT=0&&+E+v&6fvsgGW@*UsE= zI_Cevct(X<&Wab7@l2bT%g)GMdoID!W2`lEU5;wiCT5YXP8RZk_vcRB)3+gCT}AVO z?**qP(;jb&SaHSCWNrAXsin83%cR!TJ7<)$aqDwbu&p}ZD3&3;;O=s*saN#WI9lSA z-fVm_*}AH6%hukzWq1C>Nn}*k&T5>!bY7cb#Kd<Z8zwM&_qoSRk$!EqW5coT{SFMj z3q;*?TzeS1jAyj#Gn;Hav&vtX`BCGpeQpnUe`Kug4;T2eFuZg6YALH-9#7k?<Co7k zeZ%_C-#Xc=3ssJJnttgD{rhe1s(QgU5(hrIU6`a=Zs@X%;o}0|Q~G>{-}@HbbIjOd zVJ5Kkan#uz(&{fhi*;~b|FW{Gf3@D1mPuB(7A^j-(fT_%;Gf~~<6-<R$v@xRR5>1% zu>98No1KxfMK8)1%#n@p+PJ3Gr7H7Wn^}hNu3f^Df}d~7U*LGXVa>ZomG1q!PF`}- zYMdl9{i#6qqAQ13q*Hf(i4&iB!Hi{3j&Whyu6AK7w*wxB7Aj{+=ZX9lXxU~xrNVr} znZ4hIu82tHuZ>sI;mu8w%nc8kJ2&L%nueRdwKb=BhgwBP*i{JVJ@-(46wJK4vfcH7 zzsj+spatjWDg9dGQIq)9D>wY8wt)35(TxYw7&nFO5eu>nJXA0_BcWICXFStu3(;;{ zlMi3-Nzb>rI3YLonG5fHyG<K7j;qhxQ@HBUt(R-mG{0Rrb?j*G)TzDNOTIpM{^=Am zdtQv^vc;PgdUGE;#oTYd;nL0}iFd<ftcB;VJUegRT-(~~FC)9I=iL`l{JyX3f?)C5 zghgv#GjuIBkae7&mUiHn%BM{?86+BVx(`3tX{)hPpV=hVh9i071I~&`7A6}xN*=D= z$jh&{;oF@<Z@oLY-!k*BIiuOeV;k`CVyN<@iXC&$%Gor9P87Ac`obp7vhbu&+H=3V zrCE9JuH+as#!c_=NO`6@DOml{>2jS#OTXR9Ic;sHf6jEF^xB&<)}CxrtCX?6eq`Pf zNv7-@`GLGSPlSYz=HwP_D%)VDX(l{bFlWV{8D*_M9|w2ssuG_0U%`L<0{z2({0&mm zB#*UJrEKC*5v>vHkmFw?9bsV}x8hE@r)b|N3nkY3<yuoriWaAyy%p%VSH;ypzNS8C z*_4)+k47EuU){@m@UDI4WQOJDD~j8d+Ryl`+tI!Jot3b*SyoHD<%^@c66?>M3)s2E zdH?<&?k&A@&fSpy6TIbD$HF;}e{MUpDOAih)VyuSnzV8=cY~Y7T_1NVET3U^=P2Jx zJ@@ZZ0+klZRV~`~<`}c4YdBwy_=)wbcTD_3P8&9@UU>WGsgT_vS^lExi>(UG1>&95 z;%9Aqta|)nXxzix8EwfdxA>*HLi6rl({oqpoxGEC-qXk2$M0_GN|pPV8MmxznSHv_ zh3QHkRwVCMZJ(g7G_7LU11^rcHVJ$0n3mQGzTuPQ*C{Gl#IfQ2$&WAmt%@5?$nN{h zsxwDr(KnUS1vcKR0(f3|D7;Tg5a@XM{pR^ie|`$u38r1Y<vO`iw)p<MZ1J<dlr-|b zI;>W)QWaZiQt<fn+KK7S)&(b4y01^1BYZR?<cd$wtf=_E#*f|=Z~51=|BZ3pkAEe1 zYWe$qFD?JY?Qr;4Y2%tZUsqmP%b05YMl|Wywd7w_GvZ@xcJ1hx_m(m2?ZMwnJIhKo zT5oTh7MEsppiz7#^MS@_-}||jmsc|c&vF$D2<A56*)}yl=H`v=1z|m_e(F7tvYr2U zs-B?>>%8+D@7!P9JO6#ncRB0BS{%{d*VcSJ!mIyK`G2}tNA;&R&vy@H&Uef6o^)@F zwu<gAj(=Yho@o5dwt)N2#*n=amnutWZkE~WDtG1Mw2u4DddZ9`QyL%rTY2DTETa<p zG%pcFqsqHGnjhC)ZeriA$8b8<`3sXzL6XPr7w^5EPhB!|Wtx)a)5eu6)>{g$76?)Q zro4@-CwS}BUvG2zod3LC$+5*`^7iIkQjES|zCHN$HbHwq$v3l`fj+^7PiB9fSn+)K zmfeeP|IA)xSok7W>{@A#=VkZEZyI+BujJQ?$cePF%YD?BZ@mBU>s!0Mg=OFG9QTVq zuN8MVYe(Y#IgGj&^yW>^<$Z7^=V#5w+$G$Z#y^iN$O@l3Z-*<_gWaaacW+j{v~xG} zy}9%K(t^E9cpo1y)(cMeWB9AHL05dq`u#phljpN7dpVW2CARBRSG$(T(a9@3EpzUu zc~6|ONZPwlaCbIGWN>@XDdY5e;petrddqce^YZ+Cx3?9a@R~PkeUZ-l4_vo@It4_| zjNbA4+2zeUqALFEm>GX!_qUL$UpMal`IPy7>g8;0)%<52vx5B3p4-SRp5AYzULkpm zqvF<lwyC$b?7SJA<z-(GWFr2lvi#e@lU`ri9MYQ}aa4&%O!xk$#Wf+~g02?VE2fJk z0o}7AdsQ!fRL@+@x2io`;Twa)KP5)K_NnLiO0*lU=&YX`r=6bGxAW=uT49DI1uGJt zs{5~RRY>K2y49#g?9|1pr*6HR(4Mz=IkWs<p@jbdFD}3NSP~=i#hB-p@kyO;bE3|C zx_(_}lih!&hnE8~5?SqKCLO+>`*_X9%C`LrB%;@+oJbA2^QeB}Bkj5REk{^&`RBci zakF&ZdEutQ2d&uXYe_k3{8HyldV>_Cj?P@?chUXCyy%{%Yi9*#Us>_!LF2WCxk-mx z_e<5>VKwQNa%Jy!u$1EqQ4KJcGX3%+lKB9yN5$teGryiYSGA67L(Hj*^>1VPTo(zP zKiYEgspmqrT@_Yh-Oq|%{M+m%F{k0&jV=7q%Q$1>_}`uWJ44|~QNBmT)Rdb&vp@Xw zS!XVn_+PDIww%;e?U<Z`Y4;UREBEbQcVALs{bRG&ajCr(nHzUBu<Z`C|NKhqrK5|+ zPY!*~iJ3j3mMd><n>D4~!Tfy5xy8B+G8}$FM}@?~Dpsm=UAlYYn3q@3Txpq5FQZ2S zcU0Crx>Glyxggg0K<qDD8&QMzFN0pDYzTR^yYYmf#IhxU*_|Dofpe=g=cfy%7tXLg zaFE?u^zOt5u2-CF#B1jBp4(iTd;I&)Tw&ogM_et}o%G6?+&t?`U5~{-?GGCs{I>gV za{KzG)$j8T?fLYvFzJ4v%0|^0H&m7g20EQ6QGPS6fYa!+Sm%?KJ#T)@<UDh8la7SV zyaO}hBOVxr?3i&xtLfm+=U0^akC%Vxis(9irDsLw_Iq5eidt4#T{4mFE^GVs4*xsT zaBPQv|EaBR=bNva*1I37pL(;<F=_5+hqYfjs#CNkOY&!z8XqitzRcp@ZXYSX)Lq%z zZGZ4F9?MUAry%vvu3~+{ggoCzj}ItCbeZgH^?EP%A>qQ`1zg{hvvhCoU~*4z?%JUy z<|?r&t?bK_RWG(KS;mobCC&A&nK;W5i(QgewE~kbh3-GMdyh`%C0VB9yJxL)J^RI4 z@O0u)gT;q_#Km7KRB2zv6ML*^&8`WaM+#d)dv(?qPs%ysmt~fIBI1r-g5~$cWf!kn ziYiVM4KzQuT;BflmE~K_)0&pbY&!B@RF+wAqC?WG4*r{xH$UblJ#<+%qko#=p_-rr z-s@Jq&Pu9T&exQo;eSTjD2gSmB>sr$tGzpgKTW!}Zvvk_zkHLYv+7k3jd1B%C61Re zE*{usE4Rmf&GhE7St0AZCshSbEj$1A_V?EH4y7wq`%g$kl^^=0a!QHG@Iv(B^>Lbg zEq^S05?viR1+1(>OnF5d4hpH5@!$7+;CY~aQNynmg+)pmCVaH54t+3v+7a$O3Lmz* zeoS<na5VkoLC?spdoEh%yNdR|w|Mi~&Q_N5YlTKt-LCb9ypMJ|viAQ<ZIGO#$+?JO z-s`ft%m)~1Q~OsnXTK2GntViJ>$c453n2xE^VwES&d*%@)gz?TI8Dp)E#qVVNWZY~ zm$zK>EG<RjtjjzuzVZBg;$}oq(xE<SQ`@}f{<~`3Z+hAF>V1-#W@)%+MHth<p2f!t zp9?<vQ61|t<xh6-jf?9dJSEfD8SPqgA;3EJuU|x{>fFR9jJLNkNLgImlb4dGEO+Ol zS&mN1;#k+CujhSq7M(tOxBku}Zyf?H&b7?_n7en+`KsLe-Tx2o>)dWv@M*c3=K^-k zW5+hG{qa5b*O{M7-aqmGv0p&aqH^VKh6lHmj~|dLlsq3_zqt6;>(4ua^TT#NyS5^{ z>5THLnHf(bH_zI*{noyd6`tLXOCx<s-|%ny&wILj-{Rv(58G6&`}{`t#a(NKm|OeQ zR;`>paZ&Zgvzv`)RWbIgICoBMse6{VE$^<XS!<?L>=wIZ5uo1b;<i3-d&*z+s<wdi z$Cef!Z?CvJ$vIWL>zwG6?326yil&_5fA?}d2m6+*(j`js9$opDGbz)k%HaNs-=*fY z*FU`8ENsd6@>5W)=e3CwW=ojot^fJ<`QP38vo3B~Q#g@h`N@|nET#T^oA;sp;^x{9 z<%`{??|!&=@$V0g@-yOje_z;=Ib}uM8j(^dwJh`FUmwq|W52~HHi=V8NXqam2QR0u zif8<h)&E`os>Ck~Jm7jEeOkwTCfyAOs(7xQ-PCe$!-BmHOl$$w0ohv~&3m12;c!yJ zpKB_ww`S=X6n~k1%~yIs;r9B3LoctHy(&IA+vW+!tfJuRj~CYKZp#nSa$DT9XZEC; zns3{7TI}xna%-*etj`xNzkTrg@1ujpA3r_n`IO%K<I&40xy$|Zk4b+$H^1}i;io^& z&c5p0zDmRG@r?C#@;T3vujF+foa1R6xuMPLN+0`#m__Q!0g~D`bgPa^iI~QeWb4() zx|te0*ltiRx1{B4rpzYShc@$VYWDoQSp6#Ax?(}yoptit_kC;o`nYt9ZVk`lbL&6Y z>=J(5&v}*i)B0Uozw)oYo%AL4%LcBf|C-OlCUle=l^aW+Iegtke(Q!ud^cy#h%(*k zHZe;{Z$=7l(#F>NM?Ai+Ua%yFThce6USD(HqywL>Oz9DRtMzB`Q7#!@--ADEU!3|s zLvr>m%Y`>4Y)tWr$WuSV@^f{Pq?hFPv*My|D_BIzdJ?0Km}v(*uHU);-P?!WYzsAl z)QvtcB{A<2>g?!q=;ANQHt&B^U;FFt<%ncU^;@g9FETrywf;!|@zlx<Ki<9ItB<*E z=~|RL&H2XsC0{-_<Vt+@Ty|=WasGnc%u;p!4pEO8Jnk^>c1^LI`TL{7qD87z-V4Ip z@;n8uoef*s-Qc#@N9ybSmVF}gV;-pFC4SnhxnKUqd&zwF==p~_Soa-JVhCTI!BuYf zaMeQl&uyvab}YQTTmR^TP4}+LJmorhhI5|%L{G7G7GY<OYF&T(ja%oOpMScce$>Yu zswT>BQtXc8>dn$@`7zJyxbDRFTkjs#=3Kr%b^Xo_)jfL!!WE_NJQQB6S@*r;f3w5_ z)i>YuFADFvV{6#=sFtbYwj$%56G1L5v8n9*zklU0y5}<J@8Es%qhnqm@AO$e<!+ij zn0B&^@rCHd_nWVDTGg2?U@tE%=w`M%7QJlZgUFmE2l|+1tEVPR^H0&03rTtBcKJu= z#2dd(2z2Tz$Vn}?xYlypQrGxkcxi9*@>x!&_Dp;n*faab*}~N^KeE^>jF{%FIdo^m z<-H>LDfd{5<Cb`H)xFnt`SVl6e@ZCx&a*{xYMR-!lMeAjrxXT#nN_m3$*U$t@wEE^ zO?BpX9@oEJyTGKSr*z1=vw6wWOUsW&XUq8P;JWkuiLBw~4H?HwTEs7Xb9#0qMEJ~_ zV+WU3cdsqE=JsB1hIc_xUDT1Qw=V5n>J{m8BYW@ceHtC#KQ(DwVLhW9m-0C0qnv@! z3C_S{CsIXY;#VZ79J{pAP4Y@&bN`2p+r*5;xzpb8G5W8!F}0s~Hf2u9&MSX@aQ^wk zdp=BkQ<>VcDc)1t?`=`A+Pf`ZEJ8eSrd`Z~_Xi^_CKXgH*-(D|_J<OM2A7=^y^g!I zoK}8zQ}Nlg*K^WK7H;wTzWztHeV)v_#jovJbRPbQQonV-SZKdq*XunhML%u6?{CVV zIB)MY%dm$L>rP32IG)rwf0hzIXZC^TCzjsbbwj6kPUYXyZ?ivy1}J;FYj@`?6-Ye! zB|ETOX6>VYV%NKx|2L}C6-}BxVa6kig$bLuq&2x@rvIvok6qHs;v@aGcgDRdIh;({ zv(_kx2=D1>@np2~cqTkGZtIQvEoY9e4v$Zq&-Y|K`>m5}&oG}kdhn-4NX-!eR?%ht zi~_=rBHnRJ_Z(yTbtmj{Yy#uf9hRNz9CuV6KD0VtYSDjJ581#~|2;l69+&sX65RIV zMR32^gqxM}aXUXBv<^3zwCt#GzwOr>oP|-p)@BQo$IFXl-QF8HRe8Tw0K>ECVd2xc zq@v<tW8H3@*S%+CUhXZbnEAGM_3HeX$rqm19=U&K!-Ut%56Tqmww}@6mN{Wfx{TAm zsP9IxvdOi^``R6kmx%`m)IYqT^xWSnL;jr8o6_aW?8AR&Ok8bpD)8#Vh-(R!*8&$y z-g|p^+G+i@K}k_p*`7a3zxG@GIRj^$&-A@l*66HQ)wXfjs-~Jl0ngvKbj)nAT`qN! zo$o^A1)C2HNo8km%#0Jgoc(W~vwV2k0`2t%=`-9p_c3X8vWHxj%70Y--{(%<A-!S^ zC9N#i(1uexKP`8g`S<%D`vu~eohwwjH#Mb1PFRw$$nF$-!O!`PX=&zr=Q4HuPQN^R zySB{h|E+ueb>}DiY5D*4{G#RWzs#20a=xyn-}C1mu2|0(>E<nIyJqL!jjgHcUoe02 z;U^zh<^SA&_i<Lk>iwl9G6FoibUKax2&YPXZnit){!60#%v6yO$;Ae|rww*}tB5tq zna*0dHtE$<#@!#HQa|51a3SEn>P_!InQ2WCWvN01)A)5GHl@8fe$h{9`89>OOIDGd z>V75nH{Sd5z5f??`Bod=)THP2PA6Th>t8(+|GZzYc2CIp-RD32`8oI1vQ(QTug@1W zW!uVmc5uq{|J^7jY!Pzt<L6uF|Lx3t8mqZKV(s)hHqn+p=UqDLqM}&QbRcqF>XyZm z4Pzg%d_BLIFS7sNy{qdN<$js%Gw)dUqy$T!YxWK2{T6h+SihN7AjtYopMbkWZ?1xR zMvi;N()Xng7N`r)TdS|P%1>4Bq;%oQn)al>;b$LhI>dB(dHwg?h;4;Z#}^w)CI@!9 zi3%pql<AD<bG?|GwMRfuDD8@<66<r#z<@Jhf2Nl@|DCwww@=xx?>et#|9ka)^m09R ztNv1o>u;69qyMZ{*0x@$Yr9f6>&m$oo7PO+_y7Gnxe4qY``HtBO}|*k{QK~B$EvyU z4(oiU<V&n@l`3)w*U@agDb2`x>%aSyMYh!iVSOvLwK+>w1r4J<rF@aji}cuhQj>e> z#HRfVxpe0VU$QyA?P!Es%+pZckVz*MV+@uZojZHZ+_`)HZ|iiaNqw|<W7a1}W2=Yz zn7z%JX4TC}U8rW?!E1L;^H91^dvA@`#E;^>vF7_d3MO1+V3!P1o_b)r|F@s(4f2!Z z(j~5c-*|lXzU;f@N9CRV-e&XIAs)Brbjp=m>vgxwJbKuib|r*Sxvh<_{Qvbw`}WUs zVXkCTk{8<j+<TkT)9c*cvyz_muAHTkA#~h(+PCmosw=C`9GKW66|0l^D(GOrk`BF> zY#XE_JB}>LxHHN0n~_ju<in$PSk6gTc^2P$-97VL(842KItBBNH9c1AZP8pMr2aa0 z)A}vEW$PDYPdnq?mZX+8?dEPS@6h8vDqSDB#CCsFV&A{;mf+PbCBfTdRI{vZPFZkr zQsb0rUiR2eN0;n3`;<G)F<SATRLYY^c40AB@%)qjuj(xnkP(_bZF>l3xFtjDk(W<} z+5)~eZFpVK+5E4ZDdzG~^9y_rnEM3|b^NKHxbEN4|Lu;ij=dH7vvo#$XIx*`*|zy9 zjsN16Hm|FXT`!u{miIHpIYBA-Tz_|h!{zfiI~tytR;hRhdW9J_CS|h}Hp#XeSrosw zJ9eJuj4s8Go0h(GvVWx#Y9j1*sZ>nLV<N-prH3vBJ&a?OoV12><(gzS(c_bR?;2h0 z;4PBfaO${;?1oi;_B^zhJO68S*Q`}xQ9Y|>a+oFUl2Yh@uHri(E7<K`$d;v#z4Nbo z?V5O8*m7ccioquR&9icjE)LRR;-9vdEx}C5QZn6miQTgNe{4UxEg3z3F4^p|E%Cc` z$lii9p(K?o=M58Ym(D7jUbmpI;ZKso;$|1mZQpf|Co6un{q%of`iqVAjfROV6B_N_ zaVfChJG7_&XNNwoQ{x5EmgYka1?wZ3%rf?>TVI=Cy`_84*7Jr{iw)nexY=?2Q_aJl zGbS0vFWIDQd->;N+b3#*+WMy+B`d_;*XUfNak0te1IK~|&R?J1i(KL^8X3CtvgG;G zHMhh!+OKtA5o7sU?CbH4g1_@!l4|C4^eL?r^*pO+sxG3QUYVi)*Tm!T_xuUPkGbOW zf0=b>?D-d6vnHI&<>v=c0c*br_u4NVYtZ<%J)6nSIVHY5=+WsX{!#3cK9=2CD?ZVB za?v9GO&ZJU{reU3!se~<<Jx>_`y2BeE2lIpjnHD{IQHp-cvW_gc})0p?aYHZyV)mw zel~Z_3aJ)9QRbY}pZy+voU%M$`qobk&MBMTZQ0DOq|mWkHSWlyUo9&$!@3@%+`3Xy z+;!#B-Qp#Q9qMegY$a2FAN;d2u)FQdU00_$^X3;G{d~R5@x_D#Q=OLHy!|{p^PA_q zcZ{4NxxX%khAdXTB9<svytw85LqC_Z?31tFa90m|)Y*Cao%*X|mgkHLmk6jg+pKVH znbrDfCCBR-^94op&Po4pl$1O2{Kl4mvi*W{r$oD{Y+R%k7ItL@&#DQrA#+xyZ1r9} zrJ-}v;+20^&FJjRo%Z-L)A8*rU!@}$gZRGBt(p4NF@0{@y)y>7+x_jAzCPqCrR#9_ zgh6g$qfczpf@_oVRb`WGS8e@y*)rhap`Cl%JW7i8{AbwUH1*!D&s)~~Uz=2D$@sKG z=+yEzC81j$JxY=ac>YBB(2~m<n@bIq%$7t<G?mrsPMHyHH0z<x?Aht6f#RxVZN)z8 z4rxU+Hk&-?p8aIUneF$K<!Yy|(atwpyGf(&z{figVF!d?n%hpEC(!C-6S#5y){6Yp zFp+7EIes7Pmr6B#b7aiEv|oAaeHFu+`Jt@Nzgw0hK3qF1VTF9i)=f(JHkxjS{w|sQ zBJ)-8j^4_a%4mthjCVJm$m^CWOcHeM`}H*1RO*Cc%ei)=1mhdre%VLe-Wse5bl)t! z{9$H6`9>#O(>jg$58qE(GR^-i@BG7$Tu=YyzP@Ik?2Mf?%d4H0#LgdEvuN6+9nuXu z>;D@COi?`jqE=IEbEnSwqSWA%+4(2Vtl?zeW08G&V#bx;Q~jG>9O9f;A0b{b)x1Tl ztmI{fnC0oh_GhaP8s7@Nye2L+>DNq&?3tW8?nPaE!gFp09^knkIwx6BTAMRRZ`tQl zJI|VKd$HzNs*d8dL-q$Aah>1q_qfzi_{XdcrEL`fsn_*>e-E0&<hYG-Ip2-7!al9f z4sourpI>q)p|R-RS?-^1a_v&?+YfEKr(zZL{Jp7r&Ez-v(_h@_?TNN7UwB_-<-($U zQ+GbB|9kPcXlSV2I@h`>I#&NOp4{x7Zhm{;$5p@Md-8AB%oe?<Z&aAp_bGJZtkNTq z0>7O1a4~pTIBZ~Ey48(6$YuX*%UZ3ucBNLqm$p>=`uuFp&z~hRSHty-?>x<LnKVgw zdurFwGr7W^o?Q#hwoLO_zHr8zuX*S9WX#e}%ln>I|IKw?z2P-4e+$mSMG<oZgwMI` za;=STu5^eyZ*#Kd(*4(a)5E4_pPgkir{LhtsrE~6oW5{D>c-pm_Pg_sYyWMXcr)zV zi8V<Y&v~9MO1h)#o>Y4>wC}>?x6^}cvNzXsvAp`eDqeo7PijAp_WNmDHHE5;m!6!< zU-Eg4%>;$#LRS~IvxlxyuA6%7(!?Ka$_}E5TASA`Z(7mqV#+r`ux;m=pk|g8OXhqR z&kDR(esn>%&Ci$T)ICnB2X%L^WU+15`!e_Co~{{(UiGeKJrcvKHN9%48Q*rkw9V|% z?d9_$?RM{}+4kAyuT)37S|Q)$Ga@IKnPk<Q@i7Un6wjG|r}*{WUQU$&_NUu+-}21% zIk)p|9>Z<1n-jXX-D<fg@#)2xY@XhBzRzbW7tFtZ<PXDUL#9tjtF3qzM1QF+wq5yj z7vF({GR6OSzm_sRy?BnhT5a0zqY2TMF0_?~9Z$TUBla}zuKwCPZW|;s3-UjSoK)C) z|K5|L>p$nd=a!S({d&h|*3+fj>vp%?dT!BL{ai#OxH?y>u6K*xj`eHiKlaGZ(~9x_ zd|b;nIijz<GPbH(hE3gF$KE0|%I?G6vwnHgZ*Sjql1b)(-GQy14~#@_HLFMbn|H1_ zaq4qT(@SjczZ|sj{9Vl0HF@sbIi9<ZTzKpJ-{W1-g{pw&MYA@pH%jd8wu`#wRaMdW z*l(S&o5E%@_9DZdW#`Wu&rjcX>W|&$w}Ow2ceI`s{C0Bpmir$+{C!&6xBmOj-%op` zX2{JtP+HWIc9BoLWZwI?4mWSCzqRwu>cwaGeV%>&<Ai;$nj?Owt*o1DlQ*GCvqt39 z{MUKYZtmWZdSqw(zGKzZN7a3UlwIe~zqe%K|MWjwpZzoKICkj4y+e-2Z6kL!U2}{Q zxBk(_sJPLt<niSXhvPafF7=62e?40&+Q#J4`tyG2mW+xMe>|_8H$_Q((VLPpCdr)( z)fcRMsq?HQ@4%_07xn)4yI#^co)|Xiz?I}svD2QC#Zq3gH}$&yHg4wUyuM^#`@S<z zGS^*+?v&rKr@sAeqv)g5^J=H(9yr*lAj0<j=%JGBLYGCgc^;izDt)K6rTJ0ZcH5A< z%;M%JODfZ~V&47aj$i50-#K~Nk&lwvY212~eq49e{o{T4vtrX!jtH5sj&Hvf{gP2= zf9}$!w6t4huCKdD^pS6`RVV8FRb3<$B9e0?z(ltDZ=H(LhE0;mJ7d0-+VnqS^2oO4 zIe*G`m6iE+0lxKzH%+yxn%r<J>Og<yn-GaJd-RKr>sOY_e`;E9vcH;t$=V*3ogo{N zQhsUFq~#Ymo;6gw)LFp0vYt1mDU#vsvojZ@B6>99bLO@vZ7A7URIu!aQd`(d)mMJs z-rhR6q4)C4;MdFfQZ}>ySzq1u?D+OS5lp%rN<VJzXG!+3*_fa+M_{7K28VC&I^Q{; zxL*IxkF&8^vv66o^7H6T7WE$<?Af9HuaZe;O6Vl<<n{Zu&8j`fAeYCQXr&^e(7kT! z;^m)hmUE@NjSsN=Cx6Im-kg80v)?^k?<bf%LGSbDfbO#F;3rPoZl8VlF=yh}TiKH5 zf2>=2CtKE|UNrn#TUcTJ|5?Ak@fsz!-n&)1q3^bweVJ%|{G+(PT)PAJy!*$avoyY1 z-|p6a3u^}J@~_q5`wxA3VLn5v*#6=9Bac18R~Zz3Op=Q6yvDw1&HLwh6OXbcDg0jd zzU%&?+cWN|>#^wW>U~*zR!2!&kc~Sxle<W_@86}&V@o?8ol{HSd(>KXva^l$i&tk( zY~IY}B-3tjch^Rv$f7-SCK_B_quFOyE2&xZ%44eYuB8fzN}J;*m3-muTg81L^<2rj zHDM2at`nO0=<Lji>95lcov8H7+*Gu9Y4H>D2}-jfOTT1F%bgGHUy{;#b?K!o<qi&A z`R`jQ*-zLlG&1)8^0zT(Pn`C?J4HvGv_tx1*GINb-sb*ie_XNT?nQ4OopPA8K1eyx z-$YE`?lt?AJGTR-96KW2G`Zff|CiC{drtm)9<^_^vA&?Sr=9cDt-OHxBP_+UPKh1& z54pP}OeOvI>fKlNM)ZgpoKzBCv+_z)>aGB(%dSh+WHXc|>-(>52#rvTyCeTVsHtYP zj>?X;U!P{?A1viLd??h+Y_|5gc@er#(vovTquU<t=-$4#Tl)(8oK*+j&gJK*k$h~V ze`e9zlt<rM|70EV@!26EAEg!Qz53^&tc_7oRxKN?8O6gsU%f5fY&+p!Rh0j6`{R2W zE1yUeIq|;zk@u$fPHD2`Zms0rtveNzpU-$y?RQP`7mxI!Ixa)|${V!{A2ZyyUX<qg zLiwK2hodYzXYO}RHZ$_+)4Z6Izi=k!VxIt);Cg|h-OC&bb@`)py&Ia=7Trm=Uw-41 zdP>69C3&}(-1_<E*|Vp<TQ=_O+;-uiv&{7ezDqw#>Kty=n8aMdKP^Av#h;&tcut)! z{TDOa`KD{V{KE(TI&Bxl@7VijO4<7g3DHgyCq~Yz6ZZWuk)Otvq4c`?dGO2o-E28V zbDZQ9Ti@MN&41zaP|9qv=q6)h_Vlz()1*^*Zzn8%xBJA$gEPAy79PBNuU<OJbjQi9 zIla$4i|1X>IX#z4&c5PWt#^5B)pxt)*Gk_N-`d{Y{5z=SG)v#<>XNhq|I14c?x{?C zcgS;=a$WzPor{aY?Yx$qDfjsJ;>MAw`yD2~xcKPx<KXa1J4>h5O4;&OD9?Jc)>(4W zojSQo5klH^4!-kmZ!<l!?12IQ2eStT{L2HaO{aUEz3Q3B5p%oTqVd;RB|WB~>B2sK z6>opvPLb?W{r9o6<feaG-?mekAxmE#%lzo{V0G3;m2Lc+x%3O3v%Ir5-0S?_t)Tol z*UsYZH0kt}@?Y~a*3Ga~x;{&HR#bP3kkGyN&!rY?K95z>-L%40>6hkAh4QaXCl6Sr z|GH9BX{2UZ+$o%I&p1CKC++8jpVyAey(&8C%bLA5`M#<Zn&l<Cwupr;>$=pbKEL`C zOVw2GIk9m&)7><EFWY3K+*z4)SdR0X<}-)QD=)_^d_GgXCa=GJleN;M|4hr~Psop~ zOq_0gQS(u)*y7(SyJW1LuispG?xaW1jL@Dv-Rl^1>-Q&fEovyU;#b&m^=HV8SDeqU zUteA|bN;rC4tI|wb8V4StvtGZN2Rml>#mDGFJ-Skc!5*MYfnQf?<KCTuPZ;tUc0Yd zw<+5C+FI5fi(jvr-&VPoE9jF%vG8Yx&w9`Ho?-ueuf)k<vV4JjB=hadpYED6Upn@Q zp*8h~a^y*tAD_GSvPW#a$GgMg!<l{U6Lz1xXSR!{@t>i`q^mdigwisj3fQ(DHV)ny zlir-B<QTp4&Xi}{)p$Ln*Or(~Sa-1e`Fp+CT}3Z@8p5mkIpnLR-u!CJ;~9MErcyt@ z+^HY;-&ReyqWZ@#CP#fkf!dk#pK=$R*4@SY;p>9hKMD`NW<HBI-hbo|*WoF@H%8}N zVdG~PFm8Br>qDabJ872he1D!Ep4-@ak2~|vvVU(Ien;)R@q6vD3&np97t||8^BWZE zxtu&_&{q~;*}7o$=E<)UbC3UTDs<|6@FC{LuQ~P|J7d28JMzIlr+5FRsm=Fqp4_|a zVp!CNuQ@*sch+f?FG$Sb{>wg%Ir>CuP|5xk4vRS!JU6+@ao0ee`C6OQWDSD@dyRet zr5_Gbx_G?!^07CrkrzW|$3LAD^nCuQ>Gi)X9Zf#U+i~qW?;SoRi81{AvCDHx3nmJO zirWgGJ~j8Jvf%R%?;mz3)K&iTTJgPQXWa6a`)+@XI=11NWr>Yi<Gr4qlSu}edf!$( zzPeENQqqPOr#)9+y3^%zb9I1{%4~r<8{gYG`o~-o;(WX5+qsMO-`MkywS8Qb_(1-M zWU0yr<|5k@XUq3iK68Jz^4@_%mRiTo3toB=W`4};UwHXe)vNO**R%ZisS)oSzbv_0 zxVHRC#qk1xoNMYyf6i#D@N95+o4YH-_uJ{l*t=T|jy>@)5e<LLcz~60_NK#4P7~&Y zq|TlElc)bi#MTKb{A4`ECVh}}=Lo-S7<zn9gX^W>o2IF}Cz+<13U`YgFXCJN;blou z)@>z!&$hq3pWkkEnDypr{Dq2Z7uLn7n%d7ex>$PV@qH81T#YAR{89AREN)VT|AC!a z?dgVf*@|yxJ=^i`j^O!onsG@|IqR>lP}$*rWnQ*>(X|c!>22=<_GaH$F1)X6nZUk} zsR^%L_H)nvv7Yb!y%`3FB6hNdT>oi)&Uxm%1rBNdIlfmfH;tT9cjle7lHXeOJ2iER z^W|SW5AGM<`t$M0C&y2IfBbUxvOl&W!RECM-~V1X*e5bE|EHdw<%fd1;>*03)OF8W zXYc#@(VZ>lr8ji+-uV7)b?mMB>kn3nxMlz6X1SMfuKs@Lnr}}U3_s+1J4C96NtrL1 z&v3+*=S<c%5&tdhZ<^YtC50&^9-U@U?>qSue|O;u`Axo$>$;kywmlb--gviif9!qD z4cY2KRUg+Rmj5%H^JlvG|Ly0s(pG#e(mq|kE@b`uHP^lW{Zfuv+!<e!w(#cLuU|jp z@`-b>ox6W()7<wP|7bs%Hu<Y>{YB$5rz=|am9Ov%KfCuqt4G}#%bN>chIXW%^?!C} z&11H`&%$;ce9kLw-d+^Ib}CE2=kEMVi%;sscU8;`zUsEk#9s8P%mk4)UxJQx#~5w% z_tTARh`GGZM{dr(kC&_ue7Sze&sI6%WM9#pSjGJ!0S_llEaNK>)VAMhRbLzw+U*x* zo?LU;Q+j&O%J>}(BDS-4A1qP#+R7O&c(K*H{$%HYZE4PHk{YL5dL}yC&3Sb6?)%K! z`SZ2!p7ba)VcDH3Cg5{@VQ=T*$)zS6)6VXEHOJHQs%_2V#OY5S{+QeN_leba>y7)~ zc0BoF@#wF|mBK|PyzW-BeJ3B0`F{NOcF}n+^UP%;;<<nOzWDKE-rr@8yPIRzfAPQQ znEv~P+;-LIJ6B)kvrI0zaocX)^7GB1R#$Es|I@Lxc#<doFyEqPZl$qX&$q2VWY-8f zSNq=7_j@blrsRL&>ba}AUrc9gxA!Vh%@S??c0=j&R;S{>6O*}OTXHA7XYzdL{Cr#Z zLc!U56TdGJV%eV5tk<-w;=_!ziI!)qo=8hDJl)=stvmUwrAfco$_w{h<85|not~q3 zzw)?j`6;&L9;@9A^=DoRY@h1WZ0tWzU}9dUsP3vz7jO4Ros-qlX9&HPX$`Zn+oh#> zy~29imWQ|Be-<%II`!tsnKLTd(QK<L_M~#uq`De4R^Bl#E(<jY-BZBrX;^leDa^O< z>zgySLSjCdOAm3k9X%|}lYK?_$%(DDif7vIe-?iGnqRJBqwA{W{O_t}y6*R$c8TH7 zx%G=>&h9=xrSP<Mj}+^~9F6|pr_0&}PwhQ!`+uQn!@m=st5{C<t3=u^{CDEvV)?2I zb+2~l*gxJ-=2Z7%u|w>mj{@J~)1P0cPf?TLuWPz+;(_u>k6@<N3D+0fTXjZ!{;9m^ zbr-Y!C*>@s^vV4vG(K^Dw-xEx%CC65(rvPe?vK0AP2ENM<;7jytN$fhCf2`jcGpbt zziC^4`*g^<OEno!9c86waOYh~+P61yOU9iDjsLqU{maiC4m`HsDR_=jar+a`+Y)vB z$G*h9kB~Wc$?DzPu8dXbS9<EUK4Pyn<M%)Qem=wXa%1@<yMr~e5>K4l!6D>X_Bd@R z2fMF*BGcLn0a^9Q3cYi_HH*zsxxZ6Fed5tY`y0Hqzigf9vRu9K7Tc;VcdkjzeSP+U zYVbX#xp$^2T${1%*Vk^Hr!of)wuc%XV&0#s+&8yBMK{h_=e9|1*lf3qsN~$uCpURK zUYnCLPqngdQ)J<S+`~$_k<+$pl{%bzHNxl9nn+)d8>Z(?_Rg9suqE>JWVUmQJ-$2b z+7Y#2V_)mlMf=%Iw;oZNGV$q@$aG6N)nYHfk1JL@nbh(8#;%!@p7J=o339otbp2jQ zZK2_^l`B=P`+v+aOnp)@W&8A?RdTZB2RRQkJ-TX8{5@}H@cr=5OK)E&S5=e#oEL6C z=ff8Vt4)QUR5_N|SWaj;6TkYmR+Hp$6GyFmy?bsS%noZZS^4nXj)MXlqQpvrS%h@w z9NBSw_s2I*7njXsJb5YhznuD~18(J~?`@Jko=|wGebwIj2469jvZ^FiyWmagx}L$I zk)O*|PqsBoU3IFtG%@YjWX+u+QSWkCs%PF3XSw!(C2+1tg+z#7h^qR!V<lHNZFRZk zv;35Bn`TCrh@)2Dk^OVeN2w<3O`OImyLpeu<@FP`Yn*HkwTm<|K3Q_O^mXf%MeqM_ zH<3+OiS^Gk3=~z~mb5BJZS^gE&N*v7SR{!R8VY^f;-V(Frc%g8&p2OYcistWqXnn0 z_;8lpkz8Sav3T|N>+7E8Z(AJwrXasxc4PSOvZ_ng3~N&+-npM1-t#?o>u=`dogtHg zPyX!T?BZV^Hnm;jUr6`m63tm#yNy3i?KBBWxn`rMIV(X*_-V+kGioNcgTBs?Dpv_* zk!hM{yRwTZeZwJEW4VJ`uWAmupI9!u(&=ug^vjfEI;xdlH~0u<XxOxyI{K+U>zOpQ zRH;GSxT(_hS<Cbs)7cY4f;TER9G)@lQmJNhX_N8U>Xd@@vHkk;w=O5Q#!5}xa$Wn& zu^T_GZZ-XXHY7Xy-|K~KeaC;TKVoR!a$Nb-lQr*mZrg6n?Oxv{bL#QkCW{$;1#|3b zKPSBF)h$%`>2_@GEU|u(n3_EuqDP|BO8-ofd!Bya<<sjclJhif9&2n7_HUiZ9bBj` zcx1wUnK$+p$L^fD<N3{t&+GiPg1*lMsf%9+zg~JHPB~CV;Z>LEeBPZ8v-zZN?|s^S zuj|Nfk;C;@fAZCy+_`X$-h&-=as7`E<=cp-?)+`}&D_fR;OWet1_C0F;{sl^EfjeE zFLjm2n&bqDV~nAfuP_VClzTt#KKMKP_v2?eYTRLuI`{3^xvxZtdGR~-dGUD{eLm}M z>Jx2S^f+$D;p|{-?bq7c!H$b2>`T;>_g($;$CFn}g2OJm&+po*R;g+@HQ>j|ur+V` zZ&?<-{&h;#Ui`$=e;a*w1-7SbDP5HJDM#sW;+a&TuiM@q&t%W;`e%36<ZN9bi-q{p zFxGnJt@{%VHar%eFnhV7jLCMn$bc`u9{We#y*}ga0_!#zP1lse7rnDp<7euw)h*wa z<*FED7iM%M>FuWSE1&!Bd2yY8|4)_2N9G5ATXj&1PEf#2FVXBh%RX*><j=Zx;f_b; zmKVf#8%iqQ+h`<{=o`Oor~G$`ivLajjX3R3JUVM||Kz*+e-{+zy*c*y8sEn$@)wd5 z6q;ZCzP-E3_V<k$*1Kd>&Xhm=u4=hWy*;2#q$VT#O8)=v7t(Gd3QkTAQFvq{so2Cd zVYjucR<dB^q_d^TqKCeh<*@Hw|E<P6TKPR&x9v~C^@-JsHuv6=zS^_5`PSn2z29EB z&e(eOKX=CRy-OLud%6=67#_LyD7t<8V-_#DW2S_|gI`(3(Gq|E|Nd|5)7#_T7{kZ5 z!GuB0g8LX$z0HUJ49v{IhyTC-zu(x@h`}}B01v~i<s3W}b9w`B3m!J$I6Su}(1>es zrON-U)3dz|5}N1EuX*vu!jpr6K|}OGYmu2{BD3LiErrLnM=$hOU%$VnF|zT|{YiT1 z2amWvpY+qV@mk))#ib&D#MZ~}VV?BT{{54iWq#))erj7RzHg`fJHBd3;QbxO(#z!b zKL51y`X`@Pk$rZ?vyUEHIjwZ2WSidmq?yjQYX5ltH+_1mq&QzdZr$VB<KojcRnKRD zfINn8j8%+Bn0T1Nm=-XzFo!VLu&A)yVzpxJWBtLF!?up?6T2CE75hF8J&p>FT^uhs ztvH)FuW==DE#T(kj^Mt=qs7z1^NBZv_a2`FUkTqQehdB;{NDup1ojC^2`&=i5{eRf zCF~$PL4-}jOk|U&m1v#l8ZjQRBC$*2BH~LV_#_rd%1F+U3X{4dogyP5vr5)S_L!WB z+!VPF@_F)K6s9PeC|*%2QZ`UNqT;3UOm%|l9W@QLXX<Y1i!@X;Dl}ecacE7`cF^9Y zqoXrVmrFN8PfD*q?~Z<+{ucdT1`P(+3}p<v3@;fK7|R*IGchn}F*#%^XFARFi&>f3 zBXbAyQx<L(J1k`^Us=gnd06#X?X&u4{l&)3=9O)i?JK(syF2!7_RAc294s6H9J&}_ z>14*i4-Jj|j4U%6W^i*zO8jg7$-|&u!ZeqmV$RwL`~40Dh#cF0+Fq2WSuN|)gSint zUQ8>Qn>oF2O3sMkx+CUs`}UnU1s%JF{72FjKP1lCbxdCVv}M7>7YVbAe_P-GdG7i$ zhI1eI8sC<BZB1<~ezh&;kYL`7(>vU{cRJlkU$>}{{h5@WpwachZue(wsdm9lE9L~0 zw}z)VcIKZ^HTifj=Ga_|v~>dajl&BSb&7fWDw5VEtHjNa&X_uDp5K}`>qD0%Z#{o$ z>b$_L6^Bxv%$8UC^!=j8%$#+?FRkw0IjUB!U%o&nwPy9QqCFFDYQ2e&K5^hh#4~QK zt}Q;jaVt7Y)2=PsTV|bbcjgNTITN7>k6*{LHBzn||6;Smdq;>I&&ER&w2lY~)&%|A zru;uO+hwle`#m?#?d99Gd(C>!ca8651Ez~u+P&5A(M<2*ohupk<n@Fs!2tOQ>gOlz zHrF`S(V==NX`4c-)2`;ojZ+u3o83KVzTa8T>le#I*2(`W=H!O9m)$lK`P!>GdrHb_ zzgZ>kZEx)Tey{qyn9_U?7li{1OGI~8zu$Xl|668{{y9^gckKB7sIh|k!llNg-(Kqf z{a?()zM)6%SHwXrr6Upv9fH?3^ck9M=xnxVxm+OOUSM_Zz)TD7^v5!Dx<41#=^bd@ z!6E)wD5mRlf#tdbQ+IHMKbBJ2A$I*?)tv_ELgBn)x;sR-KP<b`Xk94&?wIWk@$V1o zY#P`<3dkK(t`O;eSZLFz{!wJ!G2;rc^A9WcG>Cr`iaVxVA-euy>7GXOk7D<ZSyza^ ze^|@mGeL<tu}g+kr7wxCRY;0WwC~`dg>KEdX9{Jwa~?C-bo75Pv^%)`2haS++%=u+ zKbY=2xcvv;{m1NoI_7^ct~<E?2k-vJ{C_(4e=z@dkn_)O6QRholRHzA&g4vAawx5K zVexJYoi(PPT~=6mF7*{vojLP$aH#9$UnewIO|1-+w{p!}b+BcM*BqgBFDfN|zV%K_ zzqn+g)?_RBrA`yiwS48iUhWwcV0C-((ks2ux0g=Mx^pi@*SqK<-`yt*R`}i7*mhjt z=*h1B2M;{GKGfArx)M?t#SyJ8oalaVy56$BEos_o#g==82|q5LsWtiBpXkeK`(;z- zJYF@;t$4-ZD^pZo-g39Pb#Ug&yIJmw@_3w7=e%CJEb7QV(Hfa$(~Kgwr=EWD?OW1; z)7Iy!>au#jh-n4~9<rBxyJ3ddm9WH_fhJR9WZt`Q=R}>*mD;l8<dRNiAKz=8B{r&8 zog%yT{C1e?dtBF`c+=F0yYh0krMTTSe|9X*w!bP^_0v_&>uVR}SeR-lOV`9?eoQ#E zcX9J2{({t7SA-W&E7l4xK7D(c$j23X?>}ZxQ#p0ytml=Fdh%=`0@KgsvYnZlbbQh* zRr5Q`d7@%A-#L^}xS`eUId5s3^zWrRuWWv3xA5-G)wca@trsE}Juwr{5GYX9;#=2x z#IPs&#bnW{V*BrNcW&%&pSAw2@T{yY$4?w<jCi->+KHu?EDwL&vgT1|!Xqxj#ZQ$^ z|57vzOpH;@Uij#ciP`gY1ryKgxV(8zSn9R1@D-oEDt2eMbzivm(dU<R%V!(D6UXnW z?SB5#p;Jx&(4Q5pv8$pVt^LjTO?0Z;aWB8W4=-CP_mx~);kjf9_w(ePBB3!t^}d|8 zw?CYaT6)9cAz#^Pot{HWFUTG({imQisq@L}w&~x!4ohdu+8xj^ai+}DEq+DWv$FOo z_wtoU==|^!oaHt(L#C8H>%^rb{`YyNcGo6+cHcEyI^xvL>_?k-zG8WPUQfyXSKBMg zjjqai4NLRB9+>(s;fG48!4uU3H!_W%HybUUdd=e7-<cv#zSVNPmA6Z_d2CtPxpAcx z|Fqb}%GYn4@^U}CE8|or_g&HQ8Pe)8ljhd$pY|pvCVHPh&9*j~Eq8ai*~o45-($xa leq)F7QVTuroqLZj<*V8I_)mY3w70kSf5ux2I&v8p7yxKALB9Y1 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-regular-400.woff2 b/website/agenda/planung/webfonts/fa-regular-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..719a712a39cc413d9fbf49b9248e4c1d9e27fda9 GIT binary patch literal 14868 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≺^}nJih1wurn$t&wYA@U?^oioZ=P(>{|?WM0n_}<gD$!* zir9H)R+*b`$eX|kSAGVEJb$q{^zpBgRV?pw7A)Zo^AxD6eDzC5x6$Q7+S&_TpNux% zKC7c#eq~~imz956@6F?LI3i7i*Qp-3zipmN4b$e$#xdn5=W+hMyKZImzdP@3-uRrK zcYi_O#S>>^f3r3PUV3`5$<_3*aG?8-Kgy-Lyw`Q2K5*PP=W%z_(x717Blixac3oew zB4mHYBb_(JZ=7Zo>8A9hwSG-p`Aa3o%>DL)o2*_k9<4&=S9dI%aLQ6wKYrVpz$(6J zJ`6^2zpm|Ad-Khow{F_<TNfFdzO~ujYrR4ydxpuQn9w&D^j7|y`Tih-U{}e_C5J2S zY@GZ2>XS!&#pe!-{yjd~E_m&qV$PQvv`m$o`yZb-t>A3lE#t+Ma-CBlaLEq;N6f1j z)Q_aT)LL`k!IZ)oJ09H;TG9C9(wZNO7TwoAdVF~i<4v<L#aj<P?($k}IQMbZ!u#7Q zKD^Bch%vtO@l?sl^;g<rj_>BWz-}FB7SQqf%R-qOFP(*}7xi<$T|O=OTywz0W7aoT z-S69A`sAs&pkcum6^(gw8~Bc~FBZNdbRqL!#*NmeB5NL8c4yoyyNgFfJILiqK}eL3 zc>&9my*uXg2-o~k={UX8c*9YTGiv|Es&g{#z5Q!H>q!2Cou6<1k$hehU#lUk&41v> zsSG!%q-iE+r}BNW+Htk<>F%tBcka(Wdm!g9du~8P=-LW~_U+AcQ_gIv<6iYTV9ACF zVwq*hi*%SnwB|=_?)tLi*SxRuI9ERVRh@Y4>$FwEav8g(ZfR+hdi^&3Q|b%m3^^@# zW4#WMDaUj9vf}t^g}*y-{g-{U^c3r=@*mpw0(Esnigwt2)NwfXtNq^-v6ruZi&;ut z`~Sgq`I#HL61Prdd~|;4@7ty~Ek#r2r0%YbKFPc{?)yc4;gbg@KK9?5|K-oW&3i?a zy!K3NDqeBp#uag+(0{wRm&V_I|L=^QTFJ!)XTL3b>k+TMZ^r(_*@|C1w(G?N{`%fG z&6jhM>1WZ;ruts5+rn$4Pp`XdqCLy>x!31^-}(Q|f9}N;tNLhX(iYv#yl<}ib3A66 zvOtN?T2MM%(c$Ozmr<!-T^m<A?s@cM_jQgig;oj1-1keJ_HVnfHmC7RZ8QV(q$tko z?~aLoUgEfNrQ?H|Z0We=y%T09uiY|(E%}e{Y&8anX}167I$f)nyVm<mCWEJT)9&g+ z^FI21S(fHnDy}y>Z%Is&$BDv~iigBrJk^ZdXES^Mbjkm*F3|$V^H`qUGS1F?Y}0xD z*vIrImfA;FmXu3PD&NgD>6zd1sOLXhdcq(5EK}N7TCi+Fd2dmG=#u1kw<oGB%kro1 zDE9C9I=e2-`bfaimfDiDKTO?4+wG3b<=}O4ty>*%h~d0btdHyGdCQzt*k`{~uBki2 zl=Zdzm1EiU9oz2)9th~u=8~&l_+s-ey+&byx7t2CpIe(RYZtYSUc55m<%9UO&olo# zdr%Vj<Hs7N`<d!rk}`K#>ga5j5#M&;_%-i!J|B<YJs2o<`9<$T&)&#GkM;-bQ!vRm z8~Y@z<7(K3&2p)(Pfvz4ZW9WhuI2YtGht_jL7KoxHpYal=k86gV!6k^GIwE}N>f+D zY#oIk=C^hn+g`NKweRPx9OWYmFJ1gTA!z*!o+InF_)BwbUbyAq)=iC5|I{seQlPMZ z_TL*mVRbu`w<&EET=enqTG4E&$NyU0q@Nor+KNux_xahb`>j5G_bt|(iSfwpcu;IU z+5TYTynWZM-&j`NW7IkC<Jwn;=1p3lC9}}h$Yj&3`9gg=MQk^A?<+jib#ccX{$RbY ze*77=YgdH-HoCo_%45~#V->0y$N3!-t{q+X=-tsJ+)Iw$jcvUvS6uj;H#Nb|KCNly z%;4h<JL{hL3TtJ5UAgSX(|>uFd-5t3TihZ89e*8eNVR%BS;PNJn9jk2FIUJu3O~hn za)ZhK{F-ae6R#?4omYP@j?tKFcFB+DT;|HBug5NQKId5Lc-HaPmp$v{*Qt23{B*wT z9sVKo-I@41=07|<*XbNL`uI%nwa4eLJx}M#6(&uLli!$r=jkjauAV1h-(IaXKNBV9 zb&1jc{MN~{s-|^z1}$j%@@Ao3enR7X;py@2y$8={N-E9gQq`OD$zk6Vx3!P22WAF| z^W2bMYGNYD_u$@k@0nTtf3w(_?)cYre0w>SJ2+@XflAE2^au@qi*6?AqyMK1v3!>4 zn{M}aogn9j_*LAAkC~Xae7<qiu=O<O94(g>+569Xw?FQyDENJ)!eG9`lpovbr1Yme zw|TX?mo-?n&+_~BwchXB{;Ynm@?lq?M^5DoY5v4F=Er5FC2z}}oVWVE+$6cG)n?tI z`+KS**LX==8%2f{wFxhps4^>K_LtLfeCca*<_OREc<+yY(CO&D#ka1l_>!aK<urF2 z3*YQTd&|SuO^aE7rP}w?)YbDQoO*pnH+A>oz1&N>?ay?H9W~CCU-xUm=0~+(XL&GJ zPRW`xr%AFv^1u=wvmp1AY`#nE?tMRd@A)fsX=A%6lh=onG8y+=-;~4s{c4hK<=L>T z`Zn2`D|%jQ|7G)82#dKHPZN)rc6pIl_6C2UkgL64lD{wfl^GV+e7w{0ZD^LmGV@EJ zSC=hP3O*3m`%XQ5_mz8gznA>Jzufq26#w1)xN{Nv46L-n%dZAD9Bg8Ie@}7~Z{?bb z<jUV0ob9&eo|t;A{_#OwdCeYg%g;}&!YT!xG5OaEpL@BQ$s^$EanAb5eC3U@AxZ1) zEu9}8TC#I{-cz?bQM?E0`P&~%W%}wbw49quYkuGDz5cOUqEr5e{MQlm@V@%H>~Y$Z z%6ANVL*5GHq#obcD*55k8T<Xkn$@%4+_mZB6neb$zA>Bl|I@!cSKe#7Zz*-|19$iy zhv~9M9>3;z!(X-dzPRYODw!=0!<XAEy!G*}@`k!#j^dR89*;LiHy>F(KgH`*h?CLd zY5qnNb8j8%>@DG)^m~@|b2Z<0A_5=(h8%6IG{0BA!FAq$OZmIL-f;`RJM`Nc9XPrz zJIBsfBjyy(%@Fw)AMXavRe1kr>%s*m>X#lDuH{reCAnQB$=>b93%@_pvQGJ%)_Mk) z_k6YwJMylgKKULa>sEPxkrF?@S+_I4O=aKdcC2XI%o|5i=12FW918JjJD!}uZ<Tq= z@4O4=t8=o9efu>-cNV*+MRCX6tmaZ&+p@mk%Be$syF&SvY933wefrNIM$yL1ll)rz zr}7WFEU>F#Yus_}#6`D6##>B``;XZCP&_KMWI0#vkC0uwf;D-Ir-kMyi3#~0T{BtR zHb!74$8_P7F>llU{76@uH@hnDTcO9@YmZ9TZd2$=E6usO#7_2m$kLm)HrD>^zFfPk zc!F>7k>Xhs=Df7a61_NQDwm5zN8xns|Kk7RD=qsp_Q<HF_}|Lh&>A?sIr{SrrhN>h z_MW!yjAmt7t;nA1zh!&*7ngG1|1N4(`_-mBe7=<_D(%nT6>fP!UFmoB-92)WXV00N z_0uf&1-1#_@mp|wn|1Xy1-DC^kKcWC!M;R+zwLj@djae9yA~Kt_gKDP-!n8}jrGK@ zpTCt)2-{$obFTZw`Aq(QUuN)f{yD3^Ax@A%w8p3OOWO@c5r*obFIU&!U{7UuGvB!X zKtk>Um&4m$$$aEp({Cs-OX;2VgN%d?PddClbbY9aT{r2H#x3PghBxtz9+_=775Tok zWCp!@JVW8i3nQLnFK<=RwxaWbqB+{Lxl2y?ZH#f=DO0*2hqY-UW2moS+f9zp5BJS9 zJ#J`DKezF-z(TJx#@`kszSVO&s4@SMyvT`;FN)_Dchq|&NNY^pH}SA|Pl;$a=M+zW zlZI0_YaI{x{o)Hvy!o8@0hg++U!wSQ>CY?&{2UG>n;Gpg{BHcF#n(gAlec5bg$70U zb~(ACR1UTs|C!S&3sz2_dGfJ+(uaZ#v48G-JE!z!&bjOB;+C__xEsXsuiTsS$;Uf} zceT^J|N5J5Fj&cG;IOo$?n3eg#r3hO+6P`3sdN0=!KYHbg6nOspHwfa^bR&tj++mb zL<T2JP&>h~;}M6}^OIROCKcQh{yt+`o?%{r_N_Zxa$55irM&$1^UX3%Q*+&7=Od;E zIR4LG_;Nx;x9yuFyf1q`73jS)GJUb+r{Z1KsQuZW4wQWsP_>oae%{Ane%iDj<_(P3 zY};637VXn!__KaquJr#_mF-&Yj$3$4*YR^K-&b&a_KMGoUrX<q^NVxxqF?9ctD5g! zuu+;NB3g&xjf~`#!xhC#<@%mP+d8d~V6v=tvgJD5RkcN7`t`>WiF@NE=aqY`wyQKN zxw)|N(1UCjMO)DiZkzjdPI~6KxTs#^?nj@6Pqi;N7k5;O$IVz+)ZEoI`OCG6V^>17 z=Ve$}_b6Xpw8K4f&9xb-o8Lx#D?Y1LDdazoH?}Nep1}l-Cl{9=;@kUh*Tpr->#kh4 z^=<pNuw*&s)mu99?&*8X6tB*WYw*@IZ_t|1C48kSd(YIAS5t#lPn~~3wP&}*Wu^63 z7Mp~v7K}BT9eH(CSLmXE`MIzDE1cW$H(ve#kAh%YfXU>er=J!4{Nc#q7QmzK(Ulg_ zC+^}I7UFB}bGj_%JpUmLze_s$r&i_NS|`sS&?G2wm~+x1$!U*S11E`wUgo{LN%s2Z zW`nNDCa1eMt(v{<b$j8g>7}>(Kku6V{rB<AxNB$2w%g12KR^AotllR6{rT_Tr)O+b zWN|g#-t{Kk-dN5gW}%Dieuq##_B(UbzxL>z2vo_RSD1ZYJW_MnH^W(ru4lTYrSnYF zb1%!-wTx#Mf3`Yb$fHM%8(Y|x|9igK_(x0Ke4F@Xm)^c)nY#OK#XL93+zpkV7u=Zh z_jS`22X*$7&-XEV+I&w9+<E<?`h{m<7h2hJ`D@*#e!Taob8-5r)jJHIMgFO~vGPH5 zZrj1i6}?LWIyX<BvvGsO4&CMN6wba=&J%cYv{CeoUXktb8B4BLf9q<zWgN`<>#yzd zRVJF>itaw+Jk7r;q$Ebid0FuhVcUj(%RVM5AG2OC>E0{hzYj{p-Z!SmwC`!rKK)_8 zdz;=V0qyc@8}_PbpK6S1^}7A$yE7xdoy*~)Q>%@RR3FXbJiLdKJ*4X1ZOzPEA$^k$ zU$2~c``T@-KjumM+;cBIY)s%z{WB>i&-KJPz815zk8`YoTxRd}ZJ53&WLEa{Rx|#+ z!7aB;v;4%W?k|k?dK01b{OhISfF0+(Piag!vomC#@RSEL>KqT3yjm9!*xs&GQPZgF z+Ljt6rgwI|gWg&HZsjk#d_=Dl-dOqQyO7rB6t!&uf~&$$-WJt4*jFFSaXoBjv9r+X zD-Fk0VwIb3IviXppma~zXoH9R<J*dPhx^j6Pdh%>PEN4p&m^bWE2pLD-(1qU@Oa3R z*uE0$VC@wh>jST9Cr>jn%6&1#OJ<*gPwv}2d^h5FzuxC5J<}nQtnphrJ3P@%R(4)S zz5a(!ZVP@V?tHGp>c3s6IP~SDrQbXb9*&BSOZofj-gVchar4hJ?e+N(vm-EEl1oo? zS7N@?=cO-gcFz8|Cq#aWThJ5ZSt81j&PNN(InKSd?3kU!QDyk!;87usEH&S0of}(U zD8CdEGBb&qn4Em$W7wuU8N63iAH1D(>)f>y@0V*|DiE5I^(XA_);PA;QB!%IPpgX4 z-LPY#=3c#gkEqhJ>uz0%Ib73Z3TE$Kc<QFNNF1Nmt{Z#z@0h-s`_zZ|Mt{$3TWIvZ MveGqs(GLX%0CHK#Pyhe` literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-solid-900.eot b/website/agenda/planung/webfonts/fa-solid-900.eot new file mode 100644 index 0000000000000000000000000000000000000000..4e4cbb2c60f8986d600b9e48e9d2b6d036dad16b GIT binary patch literal 180720 zcmexxkcmO$AQJ;40}}%XFfp()gJ=c@MurKDAeK)6h(yL<VFm_<Fom_pk;NfwH3m0^ ze1<%R5(WhZM}~5SREA=Pe1=?xR0ahGQw9YFH-;jHREAUr1_myMV1|5#9EMDW6b1$c zF@`XPRE8pkVunnxevoQC24e;W1|uR(R6sG00ptY+25yE124)5W_ux<`g>Ka<1_nk8 z1_p)@|6qM1`yIgw3=E7tAg?6nCKlvRaJj|6z}LgTVDc|Lr!wsqW9U8xh5!o&CO4Lh z)Wj5lPixs27#JQfFff>9WTYmtIIt!#Ffi<4U|>+m$StWbu>Z%-z`*!~fq`d5PJVJC zbKj2w1_tLI1_qurxrr48EFp|c3=E7C3=9kkd5O8HfBF}mWnh|S!@$7wt02F)WP8sC z9R{YE77PsPw;3227#I)yKfu7i)bRhy|F2A)AQ4CiLr7*Vum~dq!|}BWVe$MnUm3U| zad>^TnIlLIi2ncO|1PFZ#xo2I3>*xgXa-3zGB7Y}F??fC0CB((&&9ySz`*by%!h;< z7lQ$V9Rrh#n@<P>Uru649)lDE3z9rCn=vOdJ&}O}8sdx$EMS$43>*xM44@DLB^XA= zFN_lySQ!`?r!l56Ffh17>8}iu3@r={h;#?F15O2`xu!5Ud|>#t791XWjAt0!pf*9( zfPBpe3MmJWISdSp4gddu_^9~*U#13dX#Qhz`2Ua5;s1ZQJctd#P-DSz9~c-I9l&w$ z2V_1I)NC-D0b&n28)6>9TqcJ9|3O{{(GU#L2UQ0)m$3oluK)kRW;MWQBy}JD|7ZLF z;X~XH@&hUcna9)sviJXg2n~{ln8kPiN;iPQ1>~py|6q23<)HoonZXEB1G1|Ds>T6g z9*W<=Zv6j`5kiB*5F`(BBS=5kY*6@s%sK!HKkOK;j^Y15u>J=iKZ5Q12lgieD2^By z7!E)%*nP<6f!qzl4A3wH#V<$<WIqfmK>Y%WTTmJS(NHyv2mb#C`2!TsAorlSAEqCq z9%L^lEr2kH4YCJ>VQN5rMZzGn;25M1hCykp0qjRmJi+1tLc`1gg$D?O)PZORQ26}+ z2M%9QnuPj+iQ)e*5C(+{*e;MAP=A5=Ab){qa9D!m7@+9@<bIeLVD%99fXu;$LFoyM z!QlW&i=cGFr~nOfP#OWb9b^XxgV-Q<gK0?IgW?yAL4E><A;c}9xCOfrY&IzVLFz$r z|Nq0{1T63H|1U@_%zYrUKy0Yoe<qk4z;=T4L(Ky5k>Ujuzvvij7S!EvxdZ?I!`V>% zFm=e{ATh8TK=y#c7n}$Gfz*KIKye3_1N-X_C=S8u!Ql>dBPc#Vc@Crwls-Ul4B~^r z3M2-mp?(5|odQH3q&)c#_B+U21pfb@aRF3K!~egaaAE|}P;(i7FfhQ>g3N%kLFETb z4KfW13y{0OX$G7Y|1&8->;?Ie@c_t<|9>Fq4dPA^8zc@gAM9UH*nrD9P`LySi~mfZ zG=dZkNNPdp`VSMR3_|uRD2}1(L4E?83knZt{D8t7j6r2CC_X`IK^PQ<AR6oki2J~K z0#tW^!X6|C@(;-WAU}faf$3rR{~H`W&@h9fGf;j3`2$2l^8-?Nf&Jm||1T2*v<?Ef z&*A@HMz9zI17iZn4gY_E!U*gKP}v2t4~+l+frKff3I^vhkQ+gAAa{ZM1!9A+!~g%F zJOOqS$ZsHfKo}NgAoZXy2IZ{>|9>+o{QnIOAFvr9_aV{&$dBMWj;tRP9tjYCGJ<H3 zoglM7?g6I>P+bC%2Ztxf+y+RPfcPN0ApQfX0bxX*W(2tr6n7wVK>9#tgW>_C9~6I} zcmSmt2>uRs8(17%=7H-RP#OSXP&xtAP`82X1p5c-cQ7Af-al}f1Brw3!vScT1^E-? zr-uJu!1ADY0=os|W)KFad2ksGvIpibFdO84kX|ST*#*KNHL&sv#0I$^M8hyh4M+@( z!QlYOuON9)*n!g!vVXu~^#3<lA1JIq7!tq#LFyR~fZg~T#0I51kUF^gAbKI?1SmW~ zeh1kJOS7P`0f#%p4IsUk7?fr~`4)mfX%yr}kR4#PAUi;2fYJ}hJW%+7Fvy)Caj;(? zW`OiT+zAd_NV^9Vw=nmB%093@kX@j<`~Oc+IDyI&5M~1B7f^lz%l`$5fx;Su!Fd7X z7Lb01|KRo&*nJ@Xg4_ibXJBBG0F_@142&24|6_ar3OkTl5DZce^B0%~l|vbj`~s3g z#^C%3w+|A2ptQ&MALKU}hWQ&L4`PEb#4f1${~_TCQx8)I;)C)Nlt%Xh$S<I{1ce<M z28S_79u)2%_d(+VoR2~2Jpq#U!S=%BK=}a{Mxb~EVNm*h0Btuy(>S=?0_g#T3&?B~ z42~~wngqu&sGSWn6Y3sF`2GI{@;eBF`S3IX@hd0{L2-`2pz!+t55x!S0r>&cu0^6j zav+Q<4>AuDo{%~b680c}gUTSr2hcVQ$bP7w7~lW@3d)C!j0_B5bs%w&+d=+hK+1z4 zJs@!;3@&38{{IH)1IGc#eV}ms0IF<2eIEu;-&%)(0n|U@`v&g6G4Ot1U<R{v7??r5 zFurdLEWAe;7#MFbGBB_+-1xxsf%OC52jLH*A0$7>e31KK_rc|Z--qZAaUb$N)O=|8 z(DtG8L+^))AEtho@nPPFg&)>^*!1Dthl?NXeR%NU@rTzRzI^!ik^3XxN5PLWALTwO zeboDC_|f#E)knLJE+5@KdVlo$82K^oW9rA|j~yQ;f1LVp`p20c=YCxGal^;WA9sH| z`SIMx8y|0dy!Y|h$2T9pef;-{@e}(e?oSe*<UZ+sGW%rt$@7!nr`S(9pUOW~ed_+y z`)Sgrsh?(jn)hkRrxl;JecJhH_ouy|4t+ZJ>C&e=pPqht{^`}Hx1T<J`u6GPr+=SW zKl6N+`>gTV;&b%p*v|={lRh_nUix|e=YyY*em?p6?B|Q0?|y#p`RV7kpMQP+`}zMD zwl4x-Oum?XvHD{3#r})q7w0doU);ZVfARYg@Fn<5#FyAF@n4d@q<zW#QuL+dOXZjP zFHK+CzjS};`!eOr^e^+ito^e2%dRi`z8v^+=*y8W=e}J2a{J5uFOR=+ex3Mr?$<?M zmw(;(b<5WsU-y1J`t|hJb6+ogz5eyq*E?VDe|`A%$=By!Uw?h~_3t-<Z^GXszsY}7 z{ATdY{F}`;$8Rp*+`oB!^Zyq3E%aN&x43Uf-_pKif6M)r|E=U(*|*AXHQ(yLwS4RR zHtpN&ZwtRI|F-u3e+GsR3?EoNuzwKvAo@WZ9J7ia96xw`2>1~9A>l*8hlUT$(3qY4 zVaA6!9~OLA{9(g~10ODYxc1?}hesctfB5j>$47>bydMQVN_>?2sPIwcqrpexkLDk3 zKRSGL`{?!2_hZ1v=#L2>n?AOFoCuBCIUiSl-0*SJ#~mLJd^`(|**hN}e0=rs+s7ZD z7(TIl;`${1N$Qj0C*w~RpBz5<ehU1Q^QrJtB{*g$fMa&<rv;yuf7%L-*@K^sf4cDL zHauoOe)<ZIS*FjN;FvZ49085l#?MPX@539j#$U|7SmKD;m@n~P62GK<$@o(6rQ}Qb zm)b9lUs}F&f9d@);mb5=%<lNI7aFr?zg+%u?aRF{kG}l+D*koy*ZE(Ud|mZ*^Ve-( zcYWRe_4wDbUoSvo_8wBq{y~aay>I5<tWjb%_*=xc*l$VSQod!vW47X3^|$(Ojo;e8 zP5U<E+X7h3g7f<*F}y;6k?{uO9mac%Zx}x@eq#Ivf=mWXW=u{@5lj(GB}_d`Jxr6J za2nGzrddpLm^LwOW4gq2h3N^?6Q*ZO@0h+ZGcijrOEJqZt1zoDYcSg|+c7&adoX)3 z2QddRhcJgRXE5h6S1?yGH!!zAVH<M~a}RSL^AzS~%qzff4f77>J<NNUPcWZizQBBm z`3mzL<}b{@nE$Zwu?VneuxPNDu$Y0N6$=R3u(+_ev3NkC7fS?73`-mwCa@%dVFpVc z7#6UUL16_;1xpoPSi@4oQilUJur#nVu{5#tuuNc?z%qqp2Fom#1uP3#7O|{iSp$U| zST;f77M3k6`&bUJ9AbIEdWH1`>pRvjY)ot{Y#eNSY*K7WY$|LTP^iU*fI4glXuxK` zW`qLG*v!~0*euv=*c{-{iOq%0h0Tl2kIj!Qge{CMjDdmCp79M+IAaOZL}oTdMW#JW z`<V7J^e~-f3S$aoQfJC#SkG9+u$0M(;TdBWlMT}<#`TO_88sP;n8lbynZ=n58O)eA zF>PiDVhCo^WyohVVDM&~z_g2LHv<O)8v`c;JL4wCuZ-QyLW~`ZhZ$Iy&N94Vn#9P& zV8kTN#LU#iXvE0OG@0Qo!z_l`OtOr(nNBfuG8r-UF&t+wVNhXEWl&>KW{P9@!?1@* zp7Ab&Hp34_TgIh~s*Io}%1<Uqh72YPhV6`d8Rjs|WO86iW7KEVWoTo_W1Pycfng_8 zAJYk@yG$P#moW)52{OHBILzeEn9q>N(8!p=n9P{Un8cvKpva)aAkXN+tj4sJQHdd% zL6ez-aV^6tMlFUj3<ns0GX*epF_<%MWZb|shv@~=TE;z0j~E{_lrz*ZR4`OBY+`C+ zs$*(o_{{W*(Tc%`DWB;%6C>jqraw$mm=-cPGpu8*W#DE!$H>9p$QZ>W$H31Zz#z!L z#~{og!XU~Z#BiQ*KGS-}`%I=xW=yRN3z$k6O&KpTS};yy)L`1lu$IY=aWlhFhBZuY znT#3x8GbP>W}3(FmC1ndCgTl;Tt*cp7lvsJ(-~$kOl9C@ddHB&@Q&d<lN*y1;~j=> zCQhbUhTRNR47Ch34Bwd4816CoGHWn-Fsm}kF>*3hF;z3wFx4{EGc_<BXFA5n&bXgx z5#w_PNrrfaYKAAwvW)APS{Obty<v1`oXg0<kiamPiG|@5!)YcfhBBsYOm`U0GKw?G zGV(J@FbXnqF>*7?F!C_2W|+_Ti?M>SfblO=AyW)fG=ndrInxsccP1Iecg%7O=?qRx zw;2vH=rH_e{KnwH(8|!k(9U$8=>mfrLn^~^rg(-1hI*z%W(LMrOtTqFnfVycFkWH0 z$#jF6hw%h6FXL&(Q;a7W-!j@TMKb+oW@T_-y3RD8!G^(}!Ir^}!J6?kV+-R)#!pOB z8I~~^Gd3|cGBz+aGo~{pFlI2uGiEZTF(xuyWwK>@%8<>F1)6?g>|s2@c$D!N!)7KX zrfEzmOsR~yOngkQ8N3+unS>Z37_=C87|t<eG45i_Vfe_v#K6q-m9dqvo#`Oc5vD^- zhnWsAr88JDDKINAD>5rFUS%q0=49q#ddYN)X(iKirfjB6CTk{T#!e<~CN3s6#%+w- z8Fw)5Wcbangh8D_gF%`>hC!A=j^QuEKZfrND;QQXS~IR>T*bJB@et#6#(Rtpm;{(q zne3SonAS0EWID<8iCLb(g29p@gkcIpFGC+gKf?rui42n%CNsQdG-PyTtYk7_>R?*K zEW*IWV9F525Y7<AkjzlXu!vzX!$pR>3=bIYGm0^aGO96FGuAM+F@9kD$t238&7{So z$CSiW#<ZGg1JhAver5r1IjznR%CMDT8^a-nhYU{{;}~NYV;Qp<vl#y{@iK`pIWoC2 zMKI+s6*FyNy2tc@S&&(U=_Au;rY}t2n7%XpVEW1Qi|IGhU#5S|jLb~T%*-sz><pd^ z0Sqw=u?)=&O$_rGHZtsDIKgm|;ReGchRY0B7_Ks0W4O+6o8b||V}>t`Y>dW?mW&RJ zo{S!hWsJRyvl&+~E@!;Nc#ZK9<3q-$j87QfGyY)w$HdR1&t%Eu%;dx5$>hc4%@oKK z#FWfbz*NdKlW7LiET*|k7nvS2OE60^h%rbp=rR~E7&5pp_%p;Yq%agPbTO=E*vqh= zVIRX0hMNp`7@jk{VtC2O%E-&e$0)!k#3;fj%qYny#VF0Fz$nkC%&5+&&1k}C$LPrD z#OTcE#Td@$&FIVM!|2Bt!068y$QZ;J${5TT!WhOF!5GO{$XLu+&REA-&p3&37UK-Y znT(4W7ceelT*SDW@gU;?#^a1<8P79bV0^~-g7G`!e<pS&4kjKZaV7~S9VR~}f2Itk zJf<S1N~UI}Hl}u_Zl+$Q1x!nrmNG44TF!Ka=^WD~rf1CD%+k!t46F<i40;TH41o-h z;EBW%hEj$WhFc6T80RrAVZ6oonMs8yifIDV4yNr)`<bpW-Di5pz{nuZ;L4E3u#jO3 z!w!aH3>O$aFzPVsF`6;DF-9}yF-~Nh%s7Q{I^!J1eT<hGUow7SVqjur5@S+gQe@I# z(quAc3T6sns$lA5>S5|<TETRg=?b$jvnB%rBWUJpc(s5?_YDt7iyCNVkO4gB$nb#y z)b9b+xeN>+7$KPP4FkgmCJ1H<XJGii0>O+W3=AJwA(&|*1H%V)2xewuVEDiR!HkLw z3?Dclm}w6K!v`)1X4=QV@PQkGnf5X;eBgm#h8_ln54;e}bee(T10Mu4g)uOE5P)E& zPzHt%f)LE4&cN_N2!fe%85lkYLoma728Iu!5X@M`!0<sFf*F=FFno}JU?wL9h7Xbu z%<znX;e!kWGj=gBe2{}+CL0EZ4<J7%GB7Z$Vqo~71i_3T^OYGGJ}5IVFm7dF_@Dy8 zjG7D#A5<Zjv50};gBk=gi!m^K0J&A2fq@z1E)52T4;l;%%piAx^k_0LFc~s1e9(em z1~UeR584pSw26V?gAN2UZDwHjpbNnaK@1EZ^dOian1SJgJ_Iv?<P8`YJ{T}CFyu2Z zd;pni$iTn|5;J08_+Z4qz~Ifm@WB{@87D9>d@zAvrd<pSA50;bX*UDI2ar3=z_Zf~ zAIurR7&K@6!GeJSgc(3_YstXy!IA+q8p80wiUEunL2kBYVEACoz`*#Gf#Cxv9BmjF z7`qu5KG;GqGbrBd7#Kd-F)%Q8Ffe>@gkZ+Q3=AJYapMFTiTU8nzyQKbXBikixIi!i zC{21WFnsV}U|^cW!0^Enf<ZI*AG{bCK$rpKSCBuw85o$P85lnJKrj<C1H%Vj2xbDs zwI2h+2R{Y|Mv(dd28Is-3=E7QHGvEa9|9Q|m?kqYd;o=Y5Ca3lTLy*?ps)^RU|^WV z!0;gif*EErFnj=|%TNXeCRqlC51{l4YP;TMVE6#aGvN#jOs5zaK14t;Lni~nhe!x! z0@)kI!0;i8fq}7)f#E|m1T!3GVE7OR!3?1INnl|309w%iN^6M>3?C917#KilEs25Q zLlOf611PN}GcbHeW?*0drOgxuh7TzW3``(1QW+RNfEIQ9VPN=>2Em|}5g*bS7(kdw zo`K;*1_U$SWnlP_3Be4YG?>M}@F9zVf#C-O!-s4LW(37y4g<r790mqPP@V$iy<7$c zMv!~*7#Kd}F))A{z#j@27(f^_&;Fs1fdPaWeljq80OgG$1_mZj{wro+_)yHizyPuz zRHl?LFff7AS1AL-hf)RxhV2XtAIcz@5mZ)`GcbH8XJBBM!@%&N0)iQ4GBA9ogkaG4 z-Um>guVP?e0{OL?f#E|n0|O%{f7CEAe5heyU<Bon1_p)?4GatnZ43+_njx40<n|T@ zh7T<a42)A57(TQ@FvA80h7TZhZ43+yI~f>0fa0%{fq@AWU%d<rA9@)Wm`*S-d;pb$ z6B!toKw$_<H<K9{m_9Hte3$~kjLR4pK7h=f%D}(`DywENFnpN7z`z75&p`f}!@$7w zo`K=RTnJ_W<%M|+3?Jq(Ffh3@Fnm}5!Hl4My^w+7!$JlI22fg9%)szrF#`ibBLl;S zB@oOAihoetEM;I|1f>g*-OCsl7(r=aIRnFo<qQmrptQ4sf#Jgn(5e>(h7T(tm;qGg zfy%p83=9mQGH*2l!-v%j3=E)jvW9`-!x{z#Mo?Z{%fRqqEdv8HDDACdVEC|(fq@BB z9)iMa0|NsiNbg1lh7TJV7#Kk58dNT9VqjnZm3apk7(N_eU|<H-6$cp@J{)9VU<8?W zh=Jk5AqEBpko_S4A7)@+1eJ?N7#KbrVPIf5!@%(2C<KG%*ghO%U;tsp-wX^NKzZgk z0|OH%AA{oK1Oo#&kDp{<_;8YefdN#8f%4%g1_nluyFhi!X$A&Hkb6Pqo?&2M0>uNU ztU1fT!1RKF;lnuyW&*kG0t3T`3k(d5pt|fL1H*@l3=B+<7#KcWgJ8zT3=AKxLofp< zo!($z_;7=PfuW9p;loV`W&owxTMP^zZZR-0fYL0ejJVCfzyJ!HI}8jT?l3SgH8C)J z0HvY33=B*lz4sUxKHOtqU;@SO0|tf<pjA$v85ll*?0&?+!1RiN;RDF-#|#XNpfdP5 z1H*^s3=9mQG7sd37YqzcpfvN6f#JhT1_maOJV?(g1_mZjJ^z}4;lpbN21Zcag3>E! zo(EJ`d}Ltw@R5Om36y?6F))1i#K6D=N_QZ;KQk~efXe1C3=AK>FfcHH;vZB-faYUs z85ll*^7&5&&>Am>55E||m=P3~pm_Stz`zKKcaR-_7#J8pW&d9Wh7W%k7#Kli;Xek3 z5C0e#nB*83J~BWs13v@9M@9%{5MW^V$OOR*f(#5FnIV{gkAdMM3j{L=GcbH)g<u8| z28NGp5X>OT!0?eBf*FJu7(Q}9FvEEUhL4;O%s8Kc;UgCWGp%P}_{a^xjQ1HBKJr2^ zlPLqkN05Dd3=B+W3=AJZZW3T%U}|Mx_y}^7AOi!#0tSYU5)jN(!ocuR5`q~)dZic` zK1wk#FkWO}_$Up*pw(|5Wf&Mhm~k2d!$*++<ro+kH5eE^DnKyPP6mdLiV)1OmVx1; z5(G2ZF)(~ofndhX3=AJtA(-JP1H(r(2xeHr!0=HWf|=ejFnk1=tHHp)WX!<uQ4@k0 z`xzKMYC$l=F9wE>+7QgNn1SJ=4g@pJV_^8G3&9Lu85ln5K`@g61H(rsX1vM3@X-*0 z8E-H!d<5A6S}>T)!0^!of*C>X1%-tv0|S!_1H(si2xb8J-GYJPBWN|?bOwfxmJrM^ zgMs0r6$CR(WnlPd3&9MaI05<Jj)8&c9RtHh2MA_JVqo~_2*C^>aVG|bkDzwNdj^J& z&JfJx#=!6qWVZ_g0~07tKzug_2F5!K3?IE9n4z12;iESMGl9~GF9X9zUj_!ISO$iV zeh|#Cn}OkD00c8sF)(}#gkXkR28NG85X?}+!0<5`f*HOsFnkPwU?x!fgfcLE3}s+o zxW~ZoF${v4K=y<)FnkPWU|<HtRRjaW#|Q=nCJzRNkC70}42tJy28NH(3=E8*^b*6s z@G*vgff3|Rko#g87??oriDO{+7{|cCRL#KfF#&>^K<-IoVECBGz`z7@Cn&s<7#Nu9 z85lk$LojHr@M8)C0|+x6XJGi43c*ar7#Kb_K`<jIKQ%Kjd~9Z5VBF8Z@DY>;S{WFa z7BMh<Y=dCN=L`%V+aZ_%ln*)>7(R9|Ffhb3FnpW{!3-d`O=4j9IEjIQ;Ryr7$H@@P zEX%;~5ftB385kJXF)(}trHSbb3`{Ky3?FAgFvBMXhL3X~nCT4z!^gQ0%;?U*@NqQ+ zGlIlGc>q*@fyxO`{#nbwzyJylkh$v^7#KimHZU-J+`z!V1X8n!f#D;l&N{`w@DY@+ zHZw3VoMvG7xC4TjK<N>bCwDS1FqAPceB1@WOxqY3K7!K3ZUzP>P+B^`!0-{YUhXUd z!^eXV%qY&l@bM4?GlKkhn1SIVsJ;W0bw?N&K7wW%LFET14<BV<U<8#bpm0CNz`zJ9 zpFr_(oPmK6R6d<xVEA}~fq@ZJew<`r_;`|mfsu!S;UmbtvkVN3pfEVc!0_=L0|Nu7 zd;{gl8w?DLpgewyf#KsV1_s6o28NFyx87l3U@Tx@_;?qB8UHdcd<3OSP#sjr!0_<_ z1T%rs+Cv70j}I9bm_TXp5d*`=M+^)Mpmh6~f#D;lJ_6-wP+UG?U|<5#PZ=0KJ_W5Y zWnlRD41$?JZhpnU@bMJ`10yJ(zGh(f_?m%%8I+zuaruUUfgzoN;Ug%|d}Cl>0OjK! z3=AKCFfcIPW?=aE6M`8);R^E4F9rq%P+9exf#KtC$lBSDe;61*m=R<K$UlD>7#KkL z=pO^a$A1hA46O{HBm~9`9SjVg7$KOUoq^#K3j{NrXJGim3c*Yl7#KdWK`>~|>nC;w z1`q}<p8mwezyQJw%NZCxaYHauJOjfgaR_E;U|{$p0l^IQ3=E&7AebqUf#H)h1cN4{ zKglpKfH31L28K_v5X>~2f#H)J1T&U0Fnm&kU}ioBhEGZm3|dkANtuBGgc+|eFnm&h zV5XZ444+gXnCS)s!zVQeX69jF_@oZOj3*cvK50NOGcN<fCrt=uJk7xHNehA*Pcblj z(uQEhlMD=>bRd}VEd#?RT?l5hVPN=V48cs13=E%4AeiYt1H&g%2xbO_r5OXmCr}^L zfq~(Z1q3r)XJGhb3BgSB85ll+<Qy0n7(iw^GBA8{WME*hXJGi`1i=ip3=E%~A(+9A zf#H)21T$DOFnn@_V8+)B44>Q}n6ZU{;gdTAGk#=X_~Ze>jGq`7K6yeg(^LkAPreY$ zu#AD>lOF_w7QKH8WMBYc#wG@aPeBmO*vP=}DHwu5YZN|(Fff2HV>1K8r%(uHOlM&D z6b8Yd^&X$X85lsAF@u5OQv?Jvg3<{nydoJG7&93dK1D$=XkGTFXa)ulW(1{^7zTz< zF$@e$R~Z;S#X>L>C>(Ma7(V4NFfcu3VE9xB!3^0944;Z1m?4XS;ZrdLGl0~VFfe>7 zVPIeY*#$~ZrI1zkpUM~*K$!6e1H-3s2xdIW!0@ROf*Fr7Fnp?lV1~^M44=9on2Cvj z;ZrXJGfiV)_%s26nNk=SK23yRrc?%oPm>^+F_(ei6DX`feIigAp2fiMX%+(m6DYps zGBA9a%fP_k#lY}s9t1P!GcbHw0KrT`3=E$ZLNEg;{1!1Vd|Jf7zyM08iy0U`f%-(C zw7rCZ;nNZZ28MGC44*)GaybJ76DS;3Ffe>t!N9<{i-F<ORtRPUg~>JshELld4bM+I z85lqqv=aZ*ZUzPr2CWqNw3mSagqglFFnl@)!Hl3X<PZbHr$Y=3jG%JkI0M5cP=5p@ z56V}d{s<^ML3!pR0|OICEhsOYVqjo8%)syol*djpFfbipVEA+ff|)>R<}3rlr?U(U z3|0&bpFn;%$H2g(z`*bcR0dsOU|<HZFETKEy2!x53@Q&UF))0(#K6D|Di3ZmFnqer zz`zJfCwCYaK7sldp!fu(kEaX_%$y7ipPoZ7GpO7Gl{KJ#!Ak~)PoVt#mVtrk76Zd4 zP(A_m1y(XJd;;YYP+wp=1H&hf|GzRYFoDw8HwK1J-xwH}KxyeG1H-4E3=B-5Jot}+ z;S;Dmugt*knF)d!I~f>0Gea;FHv_|G76@kIVqo~p3c*Zl3=E$+A((L+1H)&K92Wxv z<8}sy&mcYA3=E7r7#KeDKrrJ@28Pda5X|tKf#I_T1T!pQVEAkf!3^pQ44*9^m;odo z!NBl2f`NfSnt|bSBm^_aFfe?Mf?x(&28Pek5X=BFJC=drb1VY`!(Rr5&j}FB@Q;Dv za}oqId}m<z+z7!8D;O9)H$gDNN(P3{OCgxint|c-J_u$6iSK7%_`IKifpHZB!{>t# z%(#Vt;qy@lW<12e@cASJGhSz4_<R<E8SgPLe7*?5j1L$XKHr64CIJS9&mcZ%-M%UV z!{?_E%w*5N@cAtSGlAUxi-F<uF9rstbqoxjLH_y6z`(STf#LIi2xdCT!0?3)f|))s zFnke!U}kv+hA+kt%wWO5@Wljz87vtXzL-HULkI)I7Z4vbHaLZW;foanGxRbre6fLG zhCT*{FZK}3(9gi|#SwxTCNMC3afV=qi3|*1Tp^fY5(C2*cL-*f%)s!)8-f{LGcbJd zgJ4EO28J&I5X=bD7tFx$C76MMv66w|O9TWnf!rIz!0-iBes(Z0e2Il%rZo%<U*aK{ zS%iV%OCkh=R(^d+VqgGa22%!xFKH0W5XQjpB?E#P!WkI8WI`}Q6a&MTEC^;uW?=Y| z4Z#eB3=Cg#Aednh1H+eG2xeH!!0@F2f*CF{Fnj^2D`a3`xXZxsr3ivSJDa|gFff2H z!+i#ZFXa%-D8|6>r2>K(MHv{rfc#m>z`&@+!0@FOf*GqB7{1g&Fk=k^!<TvpW^7|% z_|gc$pmlv;niv>BnDHkA!<QBaW&)Yn%E0gi)SlO7VE6*k)5gHSq{YDSr5%Eq^cWbv zbVD!`D4alX3>p(FV_^6KisL>82By^v3|~O;I)Q<KX#)ep7f`%{#>$Q|Fnj^U>m&vS zW_|{SFQ9mx%)r15N^78WGlhYHS&D(-%QOgPmSJG{G97}M)fpJR%!6QtPzHuCYay6n zD+9xq%@EA6je+6I4hUvA#K7=nCj>J*WMKHR3xXM*GBAAE3&D(W3=CiPK`<jIjT~TL z_ySsA2}&a%{h+cP6rV>J7`}ko=b(5#%fRpj)W-h9!0_c91T*n6FnqZT!AzjEbd7=G z%QXfDCQur`&cN{HIs*d}D1F{wVEA%_fq@B>Hg7U8e7VWMzywMow-^|{++tv0DrR8# zavOq~wlFY!xd*{aAR3eo?lUkjJz!w?@(6;N1sNE=JceLq6$XYczaW_DBLl;i-w@37 znStR8$gO`E7?{2=Fnsw7!A##67{2_2V5aX33}603Fw+kPP&XfpnSL@bd}V}Sre6#U zUzs47={EzzS7r!i`pdxZl?8&C{xL9oWrbj7kUlmBhOcZ449p;X><kQF*%=s^LHalt z7`}2aFffDkaWXJ`<z!%B2FZ&vFnkqfU|{fMVE8Hl!3+Tm3|}Q7m?4IN;j0t`GsH45 ze3gb^hGqtauQCwK(8R#-RThF7<}omQm4jf0jSLK5<sq117X!mr1qfz1!NBlU5rP>` zGBA8qf?$Rl3=ChDA(-J31H)Gp2xhp<!0=TSf*GzbFnm>mV1}y<3}4kDnBf`&!&eOm zX1LD4@KqCn8E!K$eAR+rhDQtxU$r5a;V}clR~-mu_`<;ORTqLmGnZfW7#Kj9(U^hZ zt3CuXS~4(vHGp8ydh4%-3=AO52nshN28ORj3=E7O3=CgEdW;zu7|R$KzM4QVV=n{4 zS5pXPoXx=S)eM3eS1>SqHHTov<qQm8Eg+Z?<adyLmJAGxAb(jgFnqOQU|<Bf-<pBp zD`?*5Ap^r#8wh56%E0i|7J@-LFu&R{Fn}=Qdj^KD_7Du(`|{O+fdPaWL21U3f#Ito z0|OI31H)G*2xbEL)tQ0et1|-w6UcrS28OSoaT}1BD+9w<R|W<q9|nf6ZV=1_^1C|& z!&i3(1|}~ChOZ$1gXWC985q8T<UAP|m;xCXzJlbu7#Ns>7#O~S<Un&q$qWo%L1y_d zFfbJ`FnsleV5U+AhOd4Q%rujM;j2FcGtFRN_zFsw0SpXGvltk@g3JZYAI)W8_zE&N zh=GCWA_K$MU<hUc#cv1$!`Bc724+yY4rO5Y8p^=H3`*Bw3=Chxz}s#azJ@b^F#{-# zM=&sa1+`T`X(5t<;cFxV0|O||qZk;zMlmojfZ{xwf#GX30|NsnY(RM<hJk?r<VH~5 z0JU4<7#O}nF=%V=*LVg75M}`RF@b^MD`<|Xi-F;5A_Oz6W?=Z51i=h@85q8T!UZ(P zw4Z_DYYGH2>|<c~nhL=TM;I8sra>^nO$LUq=@86thk@a11_U!aXJGi63Be4n7#O~0 zK`_Hh28OTM5X=ZFGjbRhzJlhMco`VJ=0Y$d9|ObJJP2kKU|{%~55bH=3=CgEekfpI zU=(3s_*w|TjKT~IUyC4^5frw?3=Ch385kHr;aS4K@U?`2fe}<@fZ`R@_W_jwpuADW zz`zJ98_F3NzLqmEFoN=Z1p~v^3I+y7P@b-2VE78EXF>V3ih<!PX!kNGKUFg@d<D%n zfzo&l1H)I)d=n@w*D^4Ctz}?f1f}IV28OS73=E8*bX(8B@U@<Sff1Aj8yFbAg4U#i z;=GZ8;cFuU10yIsg37NZ1_nk@8U&SV%?u2TptRY-!0;6`R|QIstqcrbTNxM_L20m! zf#GW#0|O%{-rE@%zP2+kFoM!!2Lr>`4h9BBP<rfSVEEd}z`zJfccA$0VqjndrOj>z zhOgZW42+<(*~7r_wTFR$5tJT5WkfFn10yI6_AxMg?PFkI1f{`#28OTw3=E8*@SecH z@O1(M10yJmCo(X6oyfqz2nxT+3=Cf<GcYiM{5^$%;p-Fz21by-r!p{n1&!%VVqo|> z4T2d#d1pEU!`JBy42+;W1;vb@yavULiy0Wcg4E4oU;ynM_zEhsW-~A_E@WW%ItPLo z7cnq=1?9cD3=E9B85q9KhhWBo3=CfvKrm=O!dH-<g$xXg#~B#Dg7hq6U|>AU!0>em z1T&szVEDQef*CI`FnnDG!Hmxs7`}qaM9@6i3kHU-t00*1I|IX4P@Y-MzyR87@^uXZ z0|+yL>aw*A3}4qWFff7Yx^)Z;UqSO_JPZt9*F!K9sIJ?<!0;6`_6RByK=so`1_mZj zJ+PU9;p=7w1}0EkZ((5gx`ly(2^7EE7#O~8V_;wc<*n@u3}3f1Fff7g#|{RDuR9nR zm_TVCRJZM7U|<5JSx{Jj#w0=MXb%I!*F6jjOrZ1v%G-Mx7??om1(dh<GcYiL(!v1- zhOeM~BB1yOh22301}0GW9b#bkdWeC62^3C;85q7EW?*0fg%c?MA7Nl%0)^9228ORk z85o#A;RFg_P+#~A1H)HP{R-*}pJQP73aVd0ePK|Ya*BcBE2u9F3ft2R3|~((Ffem7 zFnk5Y$5{pjW>7u_={d*1zzoWdp!m4JzyR94@fB3IUSwck0EHXKtV;|G44`@vRM%c- zU|;}++bsr$ub_E1P+kC)M|T()7(i+G9s|SIdkhQ=ps>2n!0`1x0|Nsn4TI{ihYSo1 zpmO2~1H;!R3=9mQaspI-f#%mh`R_FY!`Igg3=AN%-!U+JeaFDS07?&k7#P0(VPIec zwKqWRA<*2`5(b8E0uao2i-F;rFa$GxW?=Xx3BgP%3=H4oA($zOf#I7X1T#%wVECp7 z!Av_C7{2L4Fw=GhhHnNC%(S0@;hQ-GGhJg~_+|~kO!pZWzS%%9(?bS^Z;lWQ+S&5W zg@FNt8N?YFzPUp%gDV5WH!lcgNMm65<`2OP3mF)`1wt^x76yiI!4S*<a!&{Y!?zFy z28Lq{4BtW_nBf8g!?y?s1}!f77R$f@!i+i$4Bz4)m=WZsBnF0WNem2(W(*A9QXrVo zje+4?Dg-k|GcbGuxg(8%fiaJP;aesIGfre+_?891jFTA{zGXu&;}iylZ@Cc6IGusv zTRsFc&S7BqRsz9{`xqF$l|eA$Wd??C6%fq$l7Zn{B?L2mVPN=H4Z)zjP~U187(keb zm4V?~Jp?m}F)(~<gkUBm28M4<5X=OMw`K;0Z_Nx0Od1Rf-&!D;Nt1!$TRQ|Zf#Rxz zf#F*R0|OH%EISz(zJb;ifWmSb1H-pz3=B*lcg<j6_y$@h0Fs}{!0>G*0|QeJ1H-pj z5X{ui!0>H01T(E*VEDEGf|)@60>#-v1_q`p3=H3vLohQa-K}L{_y(H0*95HsgJaN+ zvLy@*pjmLx>^Jii1_l-n1_qWt3=FJW7#P?x7#P^kFfedjU|`^?U|`_RU|`^W!@$5( zz`(%sg@J*$f`Nhe00RRb2Ll6N00RTx90msd1_lNJ0R{$vJq!$jCJYRMdl(pmG#D6! zrZ6xFvoJ6S7cejge_>z{sbF9b`NO~<+Q7gd`h<Z&%!7eJYz+g0I1dAZcmV^0_yq<A zi5><9$pZ`wQaKC^(g_R<G6f6_ax4rCaz_{#6e<`P6crd46k8Y=l;$unC<`z!D4$?p zP?^HOpen<_p!$S?L2U{HgL(!7gZdc;1`Qhq28}fg44N_w44OR*3|c%43|c!F7_>7O z7_=WSFz7sCV9=ezz@T@4fkD56fx*xQblM36gV6y72ICY42ICzJ3?@$)7))0%FqkDU zFqpkyU@-4sV6bptV6ezxV6b?@z+gFpfx+?v1B2BJ1_tXZ3=B387#M6PFfiD0FfiDA zFfiEfVPJ63VPJ6h!NA~T!@%J5fq}ufgMq>M1p|XC3j>4e2L=YW0}KrAPZ$_HV;C5` zG#D7X9xyO?A7Nnd*~7r#>%+j{=fS|>cY}e!{|o~|Kmh|opbG;-kO~7s@B;>hkQodN zp;H(bLQgO-g#KY*2-9I;2<u>A2z$c75bnUh5I%>2A^ZXZL&O3GhR6;EhA1BfhNw3T z4ACJB3^6$j3^6wt7-DxYFvP_$FvQ(qV2Jl&V2HoLz>wg>z>qM5fg#a>fgx!F14FV0 z149Y}14GIR28PrI28J{p28Q$l3=A0t3=A0y7#K1I7#K1e7#K3oFfe3EFfe4LFfe3o zU|`5LU|`68!oZM|!oZL-gMlG$4+BGf1Or1s1p{cXgrP8pfuZmU14GdP28QAg28QAn z3=AbM3=AbV7#K<~Fff!&U|=X0U|^`=U|^_v!N5>`hJm3*fq|hWgMpzohk>C^fPtZI z0|P@n4+BGk2LnUH9R`NR7zT#M8w?Ch8yFaxbr=|$pD-}A%wb??m0@6LJ;A`xmchW# z_J@I?y@i3HLxF*zqlJN?a|Q!Lmjweu*AoVY?f?dc9t8%5o+}Ity(tU~eKiaWeQy{T zCM;oKn0SPNVNwkP!(<r-hRFpC3{zYf7^a+IV3=ybz%b2%fnj<F1H%js28J003=A^^ z7#L>RFfhz!VPKfOgMndA0|Ud{Ees6vWEdFcEnr}n_lALC{u~B|1py2U3pE%R7KJb{ zEM{R~SbT<oVaXZ>hNTG%3`>tNFf5Z{U|3edz_8qhfnfy;1H+0f3=At17#LO_U|?9K zz`(HT3j@RI1_p-JUl<tHlrS)?Il;iNwuOOVT?_+gp(Mll8U}{-Ul<rRJYZnh*ucQB z@e2dPrW^)_%@Y_Hwy-cTY-wO%*z$#eVe1SAhHVK94BJf@7<LFSFzn=EVA!R?z_4or z1H<kd$Wc3crZ6z<)nH)Qm&3rYKZAkc01pGhfh`OS2X8Pi94cX8IGn)1aKwj!;m8dJ zhNC46495}}7>;dWU^t$_z;OHp1H;J;3=Ai~Ffg26z`$@Ofq~)78wQ56Qy3V|$uKaS z&tPCU|A&F$LIDHAMFj?ii!BTc7vC^2T&iJUxU_?T;j#|{!<8uv3|D?IFkC&uz;G>r zf#KR828J6V3=B7RFfiQgU|_iA!oYCr0|UeD7zT#hD;OB=lrS*dxxv72SBHV&o(luR z{R#$#2PYU99<eYmJi5Zb@OTRY!;>ov3{NW<7@q!NV0ae6!0_CKf#LZV28I`Z7#Loj zVPJT*hJoSr4+e%e2N)RM9${d34_es*T2%s?eSH9#{rGIa!0-h$S^yf60F}^F7#O}g zFfjaxVPN=ihJoRy4Fki^BMc0`JQx^$3otPJzQMroX9)wt-vS1Pe<BPF|28l%{5N4> z_<x0gk)elykuimVktu_Lk=cWRk;Q<4k>vmbBWn!<BbxyOBijWAM)o-jjO-s67&%%P z7&#pn7&%ukFmk0ZFmfGWVB~IKVC3atVC0>`z{vN7fl;7@fl=@U1EWv{1Ea7A1EcT~ z21XGX21bz=42+^Z42)tX42<Fy42<Gi7#JmD7#Jn?Ffd9^U|^Jd!oVn1!N4fZ!@wwA z!@wy0hJjJmfPqm?gMm?g0RyAL8U{v19R@~a8wN&|H4KcZQy3W4PB1X4cQ7z&crY+( zykKC|GGSoUR$yS%p2EPW6T-l#E5N|0yMuvI&xe6g?*#*+egy-gK?nn*!3_pRLlXu@ z!yX1k!zT=kMlB4C#u^NaCOQm^CT|!RO<yoDn)fg;S|l(qT7vKb21Y9Z21ctA21cs` z42;%142;$h42;%G7#M9j7#M967#MB;FfiI3U|_W0!ocXD!ocY8fPvAmg@MuW4FjW- z4FjXo76wM=7zRe?9Sn>vCJc<OG7OBaM;I90G8h=$B^VgpConL21TZjqN-!{b)-W)7 zxiBz#9bsVfZed{bO<`d4vtVHKf5E^Q@P>gg@CE~8&>9BD;0OlB5FG}_kPZgMkT(pB zp(+fFp$ixoL%%REhCN_l3@>3|j0j<1jCjDn7-ho17%joT7(Iu9G5QMwV@w4DV{8Ef zW84M?&?F&ad;$Yw`~e2Wga-_ai46>lNihtJ$u10xDG>~esS*r~X;T;&(^D82(_b(! zX5=t1X6i67X5L|7%(7r$%zDAVn7x33F^7eLF{g!rF}H((F@FaGV?hD~W5E*!#zGec z#-a!Y#-b|>jKw|-jKxP77)xvz7)#DDFqTR%FqZCNU@WU)U@X7Fz*y12z*zBzfw6J} z17lSH17mdw17r0Q2F98z42-ok42*R=42*RP7#QnK7#QpKFfcZVFfcX*FfcZpVPI?w zVPI^0z`)q#z`)pC!ob*~!ob*ag@Lhk3j<@D4FhA_0S3nQ3<kyy0S3m7ISh=Q4GfH3 z8VrnG2N)Q;GZ+|qco-Oa?l3U+7BDdOO<`c{7hz!Rf5N~xVGaZ1#0&<;Nh}PElNK;A zPM*TRI3<LEajFXg<Fo_@#%UiI7^n9zFwRh5V4QJ)fpMk=1LMpu42-iTFfh&zVPKr2 z!oWD^0t4gRB@B%7au^uri!d<GU&6q+poW2Qp#lTr!Zi$xi&_{M7i%yuE@5C`T(W_I zaj69ZXn`l=vIqvo<uwe9D_j^DSA1Y#TzP_lag_%H<EjM=jH~xBFs`v-U|e&7fpM(^ z1LN9142<hC7#P=cFfgt!VPM=~!N9mNfPrxn4+G<-84Qe@OBg^CL5y49FfeYL!N9m( zhk<d24+G<lCk%``BN!NW889&Jy1~G>djkXGo&pBOy)_Js`&<|p_kCet+&_VV@jwX! z<G~pWjE5~47!TiJU_7#bf$?Yq1LLs-2FBwq42&l<7#L5)Ffg7>U|>9z!oYZH1_R@% zFAR*QXD~3H31MJ7E5X2cb^`<BIS@X>z<7QR1LOG{42%~-7#J^dFfd;1VPL#?fr0VT z3<k!_HVllHS1^DU957yqU|_sz!oYa7gMsnt69&d>9Sn@uSr{0vZ((4(;lRLn;|Bxd z%`*&)cM=#F?-npH-t%E#yf4GRc)x>z@xcWK#)l6W7#}4tFoG74Jn>*)eA>gn_$+~e z@wo;A;|m@J#ur~07+*FpFur`j!1yYIf$`NI2FBMF42*AT7#QDNVPJe4!@&6V1_Nk- zk@5W<2F8yO42+*vFfe|WVPO3HfPwML5(dVv0St`a0vH&-A7EhoDZs$^a|HwAuLuUl z-y95#zjrV&{>flq{L8|?`1c6|<G&LOjQ>3t82?{kU}7j>U}AW}z{FU>z{L22fr;q= z0~50c0~7NK1}2sQ1}0V+1}4@Q3`}f23{31f3``sb3``tn7??O8Ffeh=U|`}dU|{0@ zz`(@Q!NA0uz`(@E!N4RigMmq~fPqOUhJi_#hk;4BgMmr(0t1tn4Fi+d0|qAX6%0%g z5e!TcFBq648yJ|RHZU+rConL{_%JZZ++bjm^<V%kmSmEvVPKMb!N4T{fq_Y31_P6# z3<Hzm9R?<47X~KfCk#v~GZ>gu0~napco>+}Wf+*$H!v`1_%JYO@-Q%I889$u{b69z zu3%u&(P3cHS-`-gTf)Gk`+$K-e*y!OK?wts!4(E3!yX1EqXGsd;~EAglM)8dLP#dl z3<f4M4F)E&4Gc`?JPb_cR~VQq<}ff>3NSEP1~4#LIWRC;>o71`FJNG@>0n^8`N6<s zJBNYEE`ou{UVwqgeggxO0}BI_gAD_d!yX1EM-2uh#|{Q2rwa^B&H)TeE?XFwTniYO z+*m+;ebA{9j13G-4BQOT45pyfM&`!q;!12HVn${rYUYYcY@&i9V#bO_W~PEBYRt+? zYWj@I?0k&cj7n<ujCPFHj7DPejACr&B5c}>O6qLNN@^x%#zx|%CT1Wh(RnID8@TxR zMELm9{w0XW$cQj55Rs92Dagvn$l=Dp$jK_m!O3LC%)=qY!NY9E#JQA{U4WgHmtRgx zOOA&J#NpgvstVFC!goMM<lh6Z844mY{~oZhii)zb@p8;&=j3Fc&A}_c&dJ86WuwKS z0uo>VZNy<<_<sPj_liN6!3?zWfzim!meE8_o6*!nO&Q5=wv5Jb83aq+NKAwc<R5Xc z=hSQ&L7oybGB-976J^}O%FfOzA|vwe0N6<mA~GUi5eRufN=?l~O|6TUa|<W0x(utZ zmN2V~I->$Rs|G8(0Z0cVI1Io74iHiSq{T$-EeAI@hp>ba2ZxdbXphMM2TTr(3mEtr zBp7rUY#4k%^E8Y|t_Q^oD?YbEA_wYzBQa4^WdC5{GYR}t06CEn6x#oKuzKYIEAs?q zR-6Rm0vVBipr{sMOc0St!1S0BNV5QlFaQx~EKss!_<x-7C*w{A9tIHx26GWPMk6~$ z6Fo*HK1OjtBRNJ9K1L4bqP8MuF!94E)X*^WfHRcqT=bi<z%Vo=)DWBw{{Q)ZfU$+~ z0E0e*1!(1ys=Bd}nLeYLsfn5ro2ZC5JDZp_BbX3XR$`N7grs<AQZY6%V}^yUu&A;r zV|AP%Hy3*mn~a7GTM;`Kw_zM74_{XSDAh44fXIR_KAt1&oSb}|oaGPd6NNeJxVb^$ z$<1BIDV)e9s=&#f08*F0&Z!{Es0~ub$N8^70d!6!3j@Rd+l&Vomoo4($TR3O*fTIN zilW9Bt0E+^f>JQZt-@%0Rj41Vp~;;wfs_3K$i4^coc}g3E&wtAfgOOvW^{)s;bfem z0a5}Y_H(j>C=l_V0l_|jV1mLI;^u?MZWc5(F*8;)5|d>VVN+IAQWHmWBf6W-(d0SV z5pEMeFp-5(*o-+acXD<j9Ea@Y281xe%^2Yfaw{mGgWS$4ibw~buts;Ysv>GyVN~E` z|IYvlIz|R|&VLV(9f<4)MkH0pf!z-G!oPzE#}W=}VYIMjM+-}IccX{(0#0_2gCUNe zfFrP%Bb0EG8rU5F|Nh_4c#!cRgA;={LkL4GLmERqLj?n9P6ix=pt=K8JgE`lsp~QF zG0HQ_f$AMIdq!|+&I~G|K^asX#t?@wFh$@}<}fvk3wVWDnFW|xg{3fP2~I_6R<2rh zQSM^`(#+DV!ha#TnjJz}LMT+8Bt#HOF$M_pdVmVJ8N9;6yfZ+o9U#^Y5DP5!QIVHb zSdniH7ni6&p@`T9Ug3WiASFTqgld3LP@V#W=K!Iga*%QR{|A^F84ob1GZ=uwIEjHl zRoT=;pAogbvt|U<?WV>M5>k?|!U6+aQ^1QGWhGFgm{~JIYjasfP|YU{SFCJmEY4IQ zz?Z@&q64c41uOzA8Y}`V4A?n2|7nWI$Y{vO)UYyJureDkvs!?B4QFnE$l6TMNlC~N z;Y;Cz)Qbm1WHc-+G(eb>U4fmm0Az%Q%nx+!U_<}ifXH4bNMT@L`Ty_#F{UQQT?{4+ zt_)S6y#|bWjO<2Y;$m#dMq=!IjLPclY-;+9YG(FKc8um`a*S;3Z0u%mhM2e<BOfEX z9;31nn;fW3U~b1~tfZzY#>UUY$H>m6$7p75X3hp@sHy8Q+A)gDF`6r>sjHb8E2)7r zh?|><iL)!Qf$TE^8EI@}rpL&rETF_Mug%Raz{e-R&aEvK=giK>ti#O0W~Irhsl*}1 z$HXDRtE9m##LUMnE-Iog%Eitls>&k7#V^Vz%Eu+d!otJB!NXXLp@UNdSqCSoH8L?E zYj(o4vp~&bWM*e#m6qU@l;jnc;Z$T{Ws79zWl{9f_K{&{5)@+>6c%S?;u8~OV&Y|G z<6;#RVRz)>7L^m>=49vK)WKBBD~_a;m4gx0Y<I9Wc21B9po7Hz|NDP{$%*kGxHMoe zHwFcg5h!TE)v}rrKO?9@2E~mjqB&;AXlkOz$R;WxCJw8mtr<nt)YTxBIYbvDs2~6( zP+kRYHI<B<3>7tQ1r9b=7iKPI7gjb7Wj<|n0~1g~%|u4UJit;#2Es8=*XC13sAH7o z6&98f7EUl!Q&v+`Rx{*hbzx?9VdYns5@*{7ZmqF$8Of_#Fj;EI8*#CMMfS0YOR2*Y zGAe-dO9_MO8m9mM|NmfgWb9xN0qxf_S64H!XEZaCXEX;9Vj}#EY)azhW}vL9#LuV> z_KAo*qnJ^D2Rpksy9j$i0=o#iI6Hd>yNEPIh%FHzbfAM>gk6jsq>5dPU4*@ZeJ6$p zXw5AH1LF$DM2H(8_Jgbz2N7&a`iyEO?BZfZ_KYBRz#YRT@&LmuOw%u7ItuDekfUHu zM|XocJH%RhMtFdTiI~H^&&~!81CWD=al?9u8;~u8x&b+?7|`Pa?tQpp%#76GR>K2C zO=%;<d}PC*<|A84R9rBEPDNvMVAKG&Y~h|qN)1>dJ^>>hKy!`^3=A*8ams)-MinqL zVTmeKbFjt=W&~gfZU%_I93lP^#ul<z0+A8Zji5XOYEzzI{J^+_frmkv!35NM6ISA5 zgm(kjP0YcCFQ_p9>W+$wiGn(7;(DMWU60Y+juBMs^D&yUgFA7iCgz69N_vc-MuQw9 z+YdxXVKcWpI~xl(djK07Gbbw(BcrgC@CrUHEj~6Ob~b)(JuQBAb|H6pE@3HQCMH%+ zW;XT!HXdd+#vR~(2bg%l$H~RS&CA9l!NkqO#>B$JD=geAz{4ZJ!6L{mBqAcjF3572 zi&I)yn3tKAjfa~_f{Bfn8`8%)!05nufI$_s7eZCp3{=7?@iB^uh{N0Pq9S6DhCH++ zR5ub66=7#%S5sFrH8Eq<&{b8kcC%Je)#c*j<4WM;QsClC;Ns((Bqk-mCnUrtAa%gn zRNF~e*-6{f8Z0{lq;Lk9xj{)zLS9NlL`q&lPKkkm3EWRQ!gzo|3A8qsQ4L}ZJE$OL z6BiQ~Gd40eGlEd&X6m4#*Ua3^RG(1^qC}q2$lQ!EUP4PnQc^`rLS0gfgPns%McYw8 zm{);USin(Rg@=QkLrgM`myMN?Usyn#Pnd;?3B+KuXW<69i<^aASzcdT+ugv5i-Uv9 z%D`P)TVGz;fKOaNn4giAjaOJjh>ww#4YY6I{{tq_Iu%X^Nl>Y33~8*J3Mz_&y6KRv z2WXhW6uq6UAk53yz$^UEVF5d92B<2?U}a}i_~*bY%*oF9fSpqq)IeiY@BvA2fQT!? zyrAX`y8*8-s0{mmfXR{Z0D~fEjhLdcprRl=uE4D+GqBarNHbAmM(ZUo83_Di5CHWO z7O-<#1XysggF9q@!QC$=Q2&uJ;okyq%ZHPF1E>|W0i;-gos;nZR8)bT6YP!?j6cBn zLy3VwRfLaGNsrOQj?qYtQ594_g6a=@Ml(p`Pn%JRjqwLKv4V+zcicJH*ov9Cn2Xui zINaG;9a!0sI?skB{H(>y%*CwyC9Lf1=ytKfEfV2l6jnAhQR8O>m(^yrpf(ez+sw#- z$Y7|3S%B>a6O1Y#M-;IjI|AJ<kayr-V>T8Q5wizZP-<+lphg;~`-^55TM;vJ5gXXy z$axf-k3r=O69dD4q;NEcgdoI9R#59hpAlRii&-;5b0X5H12!L^1|yPdAo(3;mlj%_ z@q@;sK+z<N+yH=jRtY)oCV23132^awu#2*Dv$MCdi?Fw{vvaeHB3Z2FvmKO~w)=o2 zMA%!{*<08}*tyw3Z7(GMYB4aN#HBtg`m`C58UWCQWP%*dxGX@5U0lw@bOTBp%fq4- zG#~?S06-%_gcvs<$2x9DAji8F0|QFD+ry&TmJz7|08QjZNb!%$c;cc0RPX-3&$yd$ z0cdB8D!je~w+_YR83iHbn5dw+9V6phF?RMt>>})k*uibQVsQCg%r5c>)IK}}krQWU zWUpY92SxqAhZXFgvqC_1^8crd2N-9A?LcbefJSZk8R0`T;&P0POnA&<#$i7w4>2+@ z{C~=L5MqZgQZokJ(_&PFbR&%w)%6(ngBqw%=ZbMKvRC|j2y!l?d<8orV=VzY9x(1^ zTnO?9q6H0ZysGIl3POg+Oa(!mE*!?p$744roIocyFzSO&=3o>Bm1>}F2sj0T$~93D zSld`liH))93!eyk7(06yy9gf=lTl1hkBbi^${xnf$A!#+h0}h9_lyTYc9<)JN*8FG zpAA&WgGz0%eV|;gb`4oKicxMzHX<=WizNU5-_OLrco1}&geo+yLEU#{P}>O9!nbEM zlVg-+G&Tjbg<vg4Hf=^xV^b4&Uqp}5mQh*M*hr3%F~Of*gx#N=kIOifPng4>o!y^9 zm@n0so0pLTr;Hd}85bWrSQQ5&FE^?I=rRlpZ2$lNKfuJuc$h&5I!crQ+EZx`YSe+; z25H`b#%s;N4J0umGgC-eEh@qe>YIxiim)kzCN7MPKs`lsP<ImCo?-_Hf@U+|3{?|T zJtlQEK1NW#QydhtW~}P$;x_~&1oWNs1tbLcMEE2O0zoVVb0>2JZgv%RZaFa?0RbLa zBUyG99&t`V{lErD7qJ&YF<xfW4>IExW#{5{2xJtH5coGUKq+7kNROhvz9Nr+fEXX& zGW|dUu!y;Wg1MrkFt;+dkffNLfP{dokt_!nE04IKtcF3L{u@Z&u>nHuVPdvO_Yq>@ z5))++%XeYn5fE4&paeQx2|T~?mhm8{wWg|WZpWz4sK?09Xb!6NmDuDN)z#QQU1@nn zcF3riJ!Fs@H1;hn25JhcG2ZLz<78zOW)<P+W@hB$R^#SlWbWn=VHIX&<-{#j<mbmK z%&El5$`-PSn~#rsQ3x9=rxK?yD-Ll;-FKYv2jfl#chLSKMo3%U*a+%qb~aFo1VyMA zs3i|+ctV;lN^GKrYRZsEH#Rae2em^Djm*tVP1N-mnU&N`P0Y=Vjl@8y09rjbd)acb zuye5qap;;Eg%}xyq=raH@(W7wfKH`l;^Wa}<q*<Rbx<|Y5z*ph6XTKh(NI!SD2x^m z5f&5|6yoHRhSnh(Y@(bz?98mPMj<I7Mrz8cM)DF;%#0jt{FOX{?5twyt~!R6VuIrA zEV}CU&L)Ny|1O9MD~Jh;X$bKPF@VnW`hS4&0OLUhRt9bc5e6v+1qMw9M+QI8ZZ}nB zHg-Ekb3I0NF>!TJ3)@&tT@93yjm^Z>)RpBJ&6UN(#l+3b&BO)KXRA!q)lAIIm?5(u zkk**6B52gZSdr0Aory<OhJ{5&l!wWjot=YGkCB7jKvafBor#BsNu5O|6ePgT&dza) zkLTYmO>=WiMmKJLE+!_f2g=q;;Le1S_2GXH_=JRc85KTg%5tfii>q?UYWlMai_6K0 z3o~)4ifi`EYKp7c$cYQHvkQw?F#7QDnQQ(#plQy>Bf!bUW5UVGXbLsT&06VSgOCg; zJfQuHgADo%mJH4ez6{|E$qcy+<)B^ss%DTb1*l^K>Q8_=AD~VL8#{;;GdC0y7c(+9 zGdC0iWo>meRyA-^5NA^}XJZEq!&x)3nH!0TgL+1GjKWH4>L7VOMstvWnmLFgCeFvG z4k{Pq7{Q$vP!Y!lFBKT)%CNEUa*Hb%2}(%WNl6GADTs6Pv9ig4goSh^WTC>c61qZs ztZe_<m^rw(xtUpn#Fe<Yxj5KF_}N%0*@ZX-goFe*h1lUN3pqtaIVNUVMMYWW1ZHs| z7G{ugA&^!!ei1f~IgkS6fV#4rgb0rSn}(Q#gqQ}K0FQ`-oU%GdRFQ*)86wKe!l5W3 zr)<e4DagesBErbNf|E;7lABE=Q$&!Bot;fk<X;1fHCI$XKvY>7OeV0hGm40S)OLaN zv2jZ(Ldq7TIbaqB9tIf(W6+5Z=HklsOrR<NGzTmQnZYp?gv{u$s;g-;f~rPv567O- zSRBkS2TiMjhws7M#hg-{EUWnV#3dvb%7{SbIzdyv|Gru>ajI}ITQae;$+ECBa+q*1 zbIP)@Z#UJm1a-A6^-M3y$q5J~Ng7DTBW8PLzO3NjSi#1{$|5Jn$rYw+%+9)kmED8^ zH0JyF|31cM#zPFE3|b7Wpnb6BpkY~kMm2SIHZfy!a6!kWti-C$#?Q#d$j`{8tfVe3 z$7s(eZe*rz#|WCmhGA$GsRk-Wkuhk1PM;A}n1T#IV0lJx`$G&g2m!^+;2yG>x``QN zBr=haiJ6(5lb1)2nTyjzl}(V@L{LbMkwcG%my?~DnORIuNYI2?kWJNuldGDOi-&`Y zpP7k;m79fwm5GUkg^7ukgN2)wg^8J;i&cP=n}tJ^i&cP2fR#&>gN2(@fEBlLc3v)F z86HjvP9B-r=6>epe&(T!Ow3G7Oe|al9DGb_Y|I=DT#f}?EKE#H%*>)(4IIpDYD|2k zT&&DY%mN_WctEzXfo$W3*v7^sz|6?PhUz#r7Di?PE;fkcxIvC%138Wd<TwFlCT3O< zW_C6<cII^&78U^(pmT_rK;vIb4UCNpf}om<Q4y4!KrJ8GIs<lauqx>@LfbG%BZTnQ zC6mLyUMb<}oSf5zr5KB)RaFaES;bg+S?%mtd0E9+K{P6#u|aqmmlW4DVO42H25HrQ zIF#8zje+)4{xdN!HZt&m_OY9bi`g-n3YvhbST+%HMHDX20ZvIFAxX{yJlu?oaQ5;A z985yIj1Ig)OdJci<hW3|pf({ZxZTshcz{8aL4rY_!3cEHlB%Jp2{;jgldLRs)Jt7l znbiQBgsHl@IJ>f-9iusPj7XbNk5P$@9X>80$0!aPqyPmmq=(KWtH-IN#HlOC1um!? zJSH%CpoyLE@UYk*B*D@I8iAO=qo}6HGXcbGVv!I6k4k_i3kw)I#Vlh5d3Xe)Y{WSj z#Z<(^RJKhJz#=LpFkwOiqdJG2FnA<`Ur>-A%n+92_;(Y`0u!KcVMgkwih@oHfVLPQ zivYwyGdGNOjAG27DH%pSMm1>F4_*&ouOP)M@$bKKSnv}Ni;+<|EErm&g9jeU6oSK) z85t#brT*OkG5`IS;FW@$y9qiOjxm9OlR=n499&x)flfXV1b6*GL8z)M2n}OKML|Vz zNFFyagEQ1IMAW1b5~S3a96+SnzcfaM{|p--D`L1HR2YPU@)#8kNU1S8sHy!speA)d zO6}hPMu!N<`j-T36ez3&Km-#5Bj^TDb_Q++ez5DM8RQw18PplH8T1*98O#~1L2C&N z1&t|!LY$mJoGP5sLeiWdASEO%1Ol8w(jWmL#)f|llwbz%xZWSe1B@-u^$!f_v)AH^ z;88a4`W?{l4>})trX6V!0rF%#C!-BwetiK}CIj>T|NkN5&l(Iypi^;F&Bes+7){jF z+1S<1%)$9fOq^X!osUrj)JhX)W0zwzGBa1xX9A6kf?BEO;-Iz*JE-l!SSTYXEhQ@> zB_kj!te_N`6se>jEGr-*B_ksxBPc5Z5mFR>BFD|h$R*Fs$aqGMi;<CAj+c><JA_Y3 zTG2nuUr}0-PfcD?RaH?=jb9NWB%{cu4i=JESKv}oR+8sZQPV8uQczS;;#AjEQ)b`* z=c5mdI~Z6PxETZ(#2MrnR2Z~DdtHUu*u~An%|TvZR|idlirX=otEuxd$uWXh;-HyM zbv{OAF>!NoGjnyeE3T$~T59v`gBfLICh2hbnjcaMGhi{9r!-IATZ2(f8d=QE)znv; zaT}M8uUY#%6BdIoB|lSFChdA@ImTf7c}nx7WSF30T6HpV!S?gMaq0M(gD!GnVEF%l ziIH(3gC7Hfsv>A<gONC!m^d4#et^zSsVTARL1$^<qk!PyIZ$5?GFYw%&at4BV#kOW zm3;9pLzq{Hlb1z+nVE-~izOaRG4m=5a4U-_>T`gGA~*#3!Q*R;3}A|15F~nF0<SQ? zu)ZKO7c&ntb36-};^AQ77uHvt09L0Us>-JT)(=w8rNE~ussNUN)FaSxg&lMrD5I#c zsIsUc+PE~dSOKq1V^UC1_@}`5;U5EN*$@+hhz!_J4jD!T2M31(4l*L3m02PJd|VT_ z_yj~`AZy)_>`(=*8X{y1yP~KfPMci*B`_|)VO>H4IG>VgAFHycF;4sb{dw>Jk9DAO zfx7n1X=tFbeR#uj38)~)V<Bi$90OA$V<Q6xgDwMuIcUHFG;je~%mo^b0u2s>7Gt6( za1%Yo4T}2uPWt+cjStv4AAqY+Fu}wCrsPZxfMlKY8#vh~TmaSI|G-lY2H;7J19B#E zpmsDU-!UF!T*x5Fpv0gLS|!H_vK6%O31lmz-Cz#NO(tsWBK(Y|ptT_EkfA;Bj0b4# zCur#ugu_^1z{mCP11Lu@3UKiSic0AVa+({kbAs9pe4L!=kYzHA2^t_J{|Z2)mI{}; zM5ChqMJ^V}9h~eJ5X;sOEKpSkDx3E+H8LJ#P-QRxokYv3ZVnnq1I>u3shffZiDW_R zIH1EH;*5~74plaG&~ON7sEyso%v4!KjHxP`k&{`RTgbygSV~yVNN6G}FN+8Z6DyN1 zgz-;~Re(!~nNx`GlaZ8KgBq6`3lA5Igt&&iRT#G@Xr4%vO;Nmng^5*?jhE%0C4_NF zQ%*pHnM+bQK~-8>6*RB*AG{9rAOjod%p`G$<>sLIGc{8aBo~7w_CUkT;03oP4?s44 zWMqQ5&%#59TO8yT#s)qi2awUz7@1Mr!X0L1uOTkM!X+szEXlyY`v3p`2TYBO3mNzs z)ELYdd_kvrAja20rK5=&yE1sWi-;I#Y{i(5k=+<n3z#Arj}T?x_N1r?yBwpqu^ywk zF?e|lcttRHy(A=2ny4`rB!EH%M63;ER}hg_Rh1S|U=Pr;<Tm0^m0~jh$?$>*#>pZI z?4fK@svJh#mRbQ&wICUY^a5cp4I(Ur#8k~x#e^jN4dhLPdH9f|7zM<HJotEoP2>&y zCBe%6eL!f0l#9?Y7;y$`@VF?B(G*qCXgl&kC(zPGZN%D3WhFIJVb~zc0ra7he-}8} z4Zyh#oT=c<xBni4$5CXXundtrW#>dv4PHQ6z{&pa18A@W6nFobK;?lYgDry(Ll9{9 zFryMXxc3bWa&b@w1r-b6Bn=)T69LDIxv`Nwqc~_D8MJDaNsp0LOk9~AJV0awS?tQk zXs)cLZf-2D$7Bxf41>lF!NX{5OpKCZe(byspn}4fzlf7PoSTo2%TP{4T*+El$y!;* zmD_}uJ&a#iOxeoCTA4}N`rizG7HwtFFefL6E(af9Ag4yR3Y&^VL%+NZlZY-eFB>l# zGqWxim!iHABLhb*H+WsQgaA7yp9r4;hmy6cwX&HOcejL)p|p~<vZ9rnjk1@3Sc1Nj zK9eVpq?lBKfr7>jCLKEocQ$5bPG(*<4<>zQ1JKw7w5`C&puk|x;0W4n4PM_38i+7v z1&ykKFuW}Q8uw;n1&vgQf~FE7i58p<)zu&ct+A<zny|5{GUEbHb_aIOgntVdIav7w z*?1VisY)S%SD3Lum^VQI%w^<Z6Xav%`1c;9lvC5eff3w2GH{TU5|C3CSJT%4WrhU{ zgn4;|7c2m=b@bK5mE{Da=5n%wir@dBbB)3I6f{nFfWe+2m!XEC8+0PRsuFmNN=*qe zw~mje3{JMD#-heB3@U>aO+mwDX5jG%ap>R~E}k(XcpMe9Ce9SpgE7X-Wjw&a!NS4K z&MVK$&dtHfF2KRU$;H8=z{AeX$-*wk&dR~f&Z7X5W8vVC5fN|z0Ra)2e+~jXU=7Gh zz}i8EfwXh5vJ0|<4HNjcfLEA>S%8_1OH8N;E7O66nT?Z$jg5tqjhTgoi5<dbXJSDX z4-k==00uH57ZRXKVcO7?LX2Q^5a#7#W94Pz<X2S_#l;5QYzdxgIRIXl?*uxx6n&im zIKzQLQ`i`^kpk3Nv1SxkG>0#%#ALCW8jCY7_|G7%DhwJm5LTTH861>eF8B|;Ix?M; zkwGvMw2ZPys0Bpz2+d<=W&QWtjoU$0S^<>A6r@!XAcK313mjxb7Kq3sIDi+pB9jdb z4dB~3|L<i4tr_KH5M+=7^>SE2%OlOq#l_gv*~R4;?HJXWVJ#7Hbv0!}WhH*l<S3|4 zFc)QKlLIZNF;!PH1C4&!F*4RLvoY0ju+}j#eNa?km6YIS%@dN6QjwBcTfq)WAGUlV zd;(^yJdzSDPV&rb%xUbx0!;QyOw8w)*)K4&9gd3N;pUR$VXOh^QIT3XgOk%g9#s4U zi1bY5mEh#z*_xxy!ou9h!Nem1Y7_py&sfR0kU@n(A9SLlDrn{hoS#9ZA|${;y><u- zG}i#CZjFt^<sjv{IGZ-49V5cVXecS8q97z9D7gz%@F^;S$Rirk>PBiuT*Uc!cx5Dg z3wcBWLuHkO&+r+`t61=`Gc$3rE3$KfR%<J;b8>Jy>!@4IVrP>Ql#)Nd+NdNessx&o z`}co8qYL9f(5VoN%FwA9(5wt-f*Z7=M%YY^QKMLinUAM~laEn>k&nAvkC~5$k9`9> zAEQDOw=fUq2X28wJVHE-20Rj=_76K~-UmF-C&i$~V9a38;LQ*YI@Onv9XyFFCJI@< zU}DE;Y$OgIF|!9%`=Dw96r1Xx;t{m|7c>wAT6hRv;UFSrqz>Bk1Db0G^|sWMKqN>+ zofWjF$IL`c8MIqM%*c#!r->9hyP%Lod{MlGMZBf1rXafryOfEq1ZWHwL^!gtvvaYt z%L+2Hb1@6DaBw=XaIv!pGIOyrhr(I^TGgaL!K`7y$;Zi<VIs{g!Y-((Yms09HdsiI zon6X=8)Oa_yA3-l$XpO%F37^k!2%{&I5=5Arn4BsS<9r<IQcj&Kx^qiVFg~3#?;7| z2(J4f%~xe5P&<$vv@t;)Jj@0iC=&-yB7qW%u@Pu?%pA0ZK^#1~3+<h$tC=u`3ybN< zNvLx$v9odr{Cg+B$;!sWp)Mh(BL<oaL6Tz>LXkVor6S59ry~QJWas8#7iJfi(UId2 zRpDY5V8$&4@&jni;(kWZJd!DB42Ko8RMte@9Aj+)yP7&^P8k%di1aVY$0#B$$7pQN zXlg7fE+(#M#;7kS$0;eT&B@Bk%FW7Z0--q7g+#&2lE4d*1awTKIOK%XBoZW4MgIL4 zb`av%$<Wj0WM$=M<z+R2P@L+5JhQmi6xcbz#4O3kbRB-7zr5SF@rtRdL+1SMGC43V zgseFQt;}Nw?<WJz;Fv?Ul(B-dD_GPRG~Xo#+GxfkXKmuG%g)cC=WbxeD=6~suCBL< zHJ^weubF|n9tS_;0%mT0X%^0ZQ#d$T#CbTGg?Jc)_=GH_`MH@Hh4}uh;}K%!<Pm4# z<Y3GJ9e&5a@P8i@BjW)E4hC7!Z8nUcE&?b6fF_&NL2HRbz;=s^fp!#t7I?FRn^<6X zLedOl0%-6$z@kjUNza5wh@aa)%U+Y6_mhd9lLi|vhlahD0XM%8V*+H5J5z#}lbKO~ z=RP+-BNGR=2nz@MHx5%~PF@KXj&JN7EF#<-OpN^8_j$lWcc8V7pnYnfGD02Pj$u&6 z*GdJ|?$GrPqM%kQ5?>tJLS++SJiy2GZwF}o7^4RlA15<2=f49iOjkg23Mj<ie~&@6 z2BR!v1Y-afpM}Q10~!{5Tmsx2+$P-Y??CEBK!gs60JEM6O9}I;LC0ziFg7qA0G;Y7 z3Y{Mk6;ziIVN?*2IpDx}0W^H^&!7O>zl4mZ@i2hKbJZCbP}g&UTBo4O(%b|(a{}M0 zfwWljFr+#(hSYBc5FYZ-?hc3ys2d?AEZhv?f$|XZ|9}7QF*PwRWZ+?t1g*9dW@iKK zTr>mCEwHhwg9i1X4PkcBCP&aZ5+!|5T_?{d2AUtTWn^bFHD+PsIL6Aw9P^8nlgZ7P znUnQb3^Nz&F%GsHykhJQ4(wvQ>};KUTsH*xZ*uW<vN29iXXj(GU}9mNp}@$Rlg`S@ zs4#<-g~@`6FO!!mJDZD_NqrNyAhQ_@iy5;Z_a=4lFaT)m`vACnXJ_CCo$$}7uEz*k zqycK9@-rE;!#5@|{xfEk6zF~b?_;lkB&!kA`wx&EmW=E(_=OG}5aOS~uJ8dA384GP zz+;;GnLz7JLF>@%K>I^P)!9v<r5~g<Y@((LE$g%yktD^HkvK4wOa=i83IU)J98_lf zs|1nkP$73H4c>XSAVE|#fs_3JNa+D~P6sd(F6IDdfyEgZc%bt`3m7=S?Gj}M9R^bd zI|g@#0ES40B+wb$;B_IOlmef=Wd@CwfND4R?p10@HK>}Ys+y@fKvEm8G>D_x3gtm5 zh~QBu4@yA<(Nsd@4nX8)LlP)s0>p{~5bgp9MUtokL=OXKT^lHl4>A~l?lTgGOaqCE zfO~^rLQEXAhr-y%9Nbm31(nL6Z9dSU9nc6jXkVl{hycwaK~sk~cq^Z}nmQ=$fmUG{ zgBIYZ+c91cQ(|M1R%H^G<`5E-7Gu<sV`XPo6PMEx6lGy!6OvG63>6dNkQQfBm1bg7 z5|dVy5MpCv5f#*u6IWwrXO+`p6q9B=AT6pY&CbrLAt@xtr79+=!O6}JmeG=X&Bw~f z$|AtV#40E3C9V4Jf|x3opb%Jvw5q7Is<fA|94ix>01GQ4E8lB5EwB?nMuEpD|AX?; z0tQJ2S<uZm;1MlI)d*_JAnj~cH5OF{Z}TOv`HAsD0JupV0LoOL32m8wcN!WNfcGL{ zY;a<90Jqr<koPSsDBQrhkqKNzF);kU&jdP$PZ&IJ!=MT&<w47_M8IQ0wv5W=uuea8 z=v&d$1hmH2n9%{etMq`ZFyjJY*#i>-WQ7+9%LWL`GBL<5ZfF3HE*MM@mX#Hru)qLB z8ORC;1PIG2K-OOE1COT(GpI3GGWarNGUPBY2pb!jse=}pfF}Ie*x5kM2zBt%A`lxq z&9AOzZl(&B78es21Mi?UGB-0(S5{&JHKstjcp!}xJw|p=f&#T4#hGCRuQ9a1)n_yp zpRUBg$;83I#L1xq+8fTn$Z5gC$*IiEA|=hjrOe66qQK6|q`<-rVv4Y`D?lYNwN-Mf znW%9$F|)GCvGFh)PBUcYVUuHHWqxj8z{tSMA*v(F!OO-fWhTYSwvvON)3U~rlb^%Z zS;vHvpF>U0$(j=+#)PUcMF298CGhVU8xIpN6DwO;85=7TFB1>jypj?IrvLxI?Tdp9 zJPZm94CbK4R_5&Bg$L@8{Vd>-NOAC5Cv!6sP%qisQ=)-Qh$SiK4`|XlO_Q0EQ6|fp zg^5`+jrAmp5SzJ#X9GJ6=a-x+F;><zO=cz*>ns^YPLMP&IIV!@jTu2>pqvcS3@Qu^ zpdI0|jG)xO2x{kpSG7TBJ`nSij0yh^fJZR?O;(k502OM|s{a}eKxQBr4+!%<c)%<C z?|`(b18Cq5)T8WxOge)1&Flxap&UTx2ZK|ls0gUP0ougFhDel3>g=FR^Y)Btwv6D@ z0IV5J)z!eO3ysY|RXabUsIie4GiX7Vv56id6N3n^IiD@3uoRb>hB3I6Z>(X)B_+&h z%V*9jBFt-{50-ld7Sp%j75*=0BKJVfWInHufP$<INTs>L7f{FJi-I{wsg10HfRMDX zwH{asETm^G%qT2pA_p1k2F-~<+FQa5$_&Qfl}ND+xuE-nSe4-oFL1#J4o|c;7Dk&3 z-l2yy#6ZJxkkb#q+bJPK<lxf~2yMJ)+#<rq^=|_gp9m{E;{o=6$HDu`&<GO^kY7QB zy8~DXLV}st2nEIypuzQj7VNAdAakd{w6j{kSvd%e3qnAm5g-C&2a+O$a>$$(cpn64 z?V&vbgDQ9!TU`w_J^<Q|1L<K}gSP95gLmuNF@i?tK}RRZGlF`(X10uWjO^-qjLN2< zz7~^%AU`{&05@l-f}bX+a+FqLl4RlM^yU#_W|v}-(ezUY<>VINWak%5P}EE^F-g)? zydWsYF_Vjvm)%85T2(qhT2(;6%9MjsP=ZTITR=cs%7vYmlWQi2T#b~1a)Ppg6a%Q8 zeVp+F_)Gyw1~t(A7btB|X2?=H$g(<60!8dLg0)VO+M>?jBL`AK4Glw$5DVv&A*UrE zw@Lp6fKMU-6O0z%#TH=V0OV8zNIwbGjy?!kXClnT&L#@6+SEi{4Z6e;G@~pk!ge6c z#LO_fAl%T*G*rusPu$vCoX?E$fNx-km0g0FS%RHaNZ`L-Q!No0Lk9;#84)d02JjgY zpmo6q7|a;l82lL`8InQeJE%4UpQiw=Nub3BVq_GF1sd>ywhO@n<&cyP-d+RWe~lQ< z5;rx5C{Tts;u&9X*rZpb+dw8Vg?Yg{f)0R5HXc5Z=)ZNW%o{*MS{s;Ip)LF30#Mha zKmkk%Kw3_W4hCYXqN1u|27FurTzm_7g(0I}5R#vJ8CV#+(-?fH#J>}emQewC#1=Fb zo4_kv01<=sOJHGR&)^Tb`-IGJVT7d-b4ZRihOMn9B@F5yo@563n~?!TlH~1wA0Qqp z5atCfPX-YPuY$+RL3_kO^^_t5WL|+m6|xf72z<B(xCsPtKB&NgZ1`3O9p?gSV}KeO zpo|SE8O_v{O^t=YWuG#rQK+b9YQp$I-AP^D$qz(Gva#5JMrV0g*wk3q9N0N!h2d=y z#%{gJh6eU>c1}=xMOpX(RF9vN`ZSOp9}r>2#<GghP*@h;T2V+)0G;RnYQ?B&Nr3Ok z{SO*9KL}kb0*b$Q&`rIdx)3&L2|68x5!Q}^l;ju(prCo17<uG_B19P{{96EOQZXh7 z%gX+{%fYI~%7I2Spz*<66v2PDK$;lUSUDIE$O``h83k_2{qqHhgH4QrvzEbGXkuUq zuvi*M33&Ynq^^V1bioYC48;u1pgTWc8#9pi_k(8=KzSFMfms!e#6*!+fQrM?0I0A4 z6$+?)Q%dC-xBQD>WtS0woQu-{u9gf$WZ3@&Gp+!MgU*y;uLKLD5fHV+2!c-GQ4xV| z{Dy4*mJv~5WmjNl{r3mlu4iFoKLf7-SHM|_N)f*pxP1m1qh&n6cmUkO@Bp{ZK;0}e zQbL;*ycrryK*nN0J41*HBE}#YW-gX2J!UQz85Wix7B1#~7NY!}Aj86(rO(VP!@|WJ z!pz*q!UgR|fzR)Nq#;mSlXSnJrWRx3ykQCo{2d^IDAylA#6NuQ7j*6j$lc*&#sMgW zgZo(Uq7Rhz5p#-0W~RjX#gU!W2JAi?kbmGzqCD2a%8sfFY!=o02;c4pPiyE~;MIxq zBbxyW3n=9o7_e|L%doH*pz(?F>;fE`VTOV77igRVR`we+fK~~jlvAqU7y}dFXhX0- zTu5h{hY?YvFz&=Gb67$0j10)7f)2KF1GKFY+{Oa!M_vG~i;NjSy`(767$;<C8+w46 zGAp!P1+|<&i)C1$o8zn*&B0v;(4qsBW~e%BSc_dr4ZIjm47|-rRD=yYwg4W25c!vo z1sa_#VPfHA-1yH2#O{(~V*bm{$#O>#wAaW9L@275n0T0&gs^i$rd@c2IZ==4Qea^M z5Abrab0)AbsW7qVGIO$fF|qvn0p11$CN6-C@G!~XWCzc)2=lUYg6H8NeuuWILEG^_ z6(nfSfHi0@KBzGv4>~=D9dd#fq;;zf+S~;i#A9NB?GcFJVUysm<CkFLi4c+L0NV&5 zAl5P(Aoc_(@(Bv^DatIt@E`-@|9}7YGchq9WC&znPz7xSF*7$)QwC3@gId(;kV$n} zMm5m%4``@D9JFtQO$0QEVGSA(69erMfoE~hHZjnmPSEyub2Agh?+Q8^QoL+T-0aNa z^0s<%0)i|;EP?`ZdbaZ7%<SAuY`jt$ItrYe0uuUqLOiU@ydr!ulHe&=Nf|y7US?Kq zK|Os50nP|PPJKHC2~KWCRvt-J7B4>yDRy=#4L>gyRY@LJMs7|C1v`CCK~`Z_4i0`X zK~6q4HeNvoP!rifke7{(k5f>LpM!%He8vc9%=iJ5GvfjVB?c|fs(MvW-%5!Me3%U% zBWw-1EhBU~%iNAp4Rkz^nUR>NxVoAdcn_64Ba?QsfRT)f6)%&6F1WvJV<N}K4i=M@ zl4SjtoFJnibJ&T8U5H13SB%|p%5DisO(k7BNS7Sczn;p^wOc|`RLI=MtpHS+&W#h) z<l*Gzii6BI|7U!_*uVf<Q)|cI&A^}v+GYV7kpu0`kYyCXwt^EhC!?kcJ8Mu8I;{>` zE2XTcq^tz$SAxbB*ci9-i11h{)hk=_C<uu|&KzK50CzD2#Q*JPmE^DIlVlb7&!E63 zBqXE6%OS#O$;2wc!K)-AB=kncNI^|a!H->0#6UvG4Ak;g0Cy?Ogd_|^6m5A01$m7M zgk*#i`MH^yn3%cw6+z2%z+>wFnHU)x!Sy_-jzJ8CAhA%-QDjAHkAnGxMjjtPj*V*o z5A%VY#(02NSoq&%R^|dwnkZmqWn^Gw)&M6o4Uh<&$>;!CX9OXIdH;iZ7NGt`2S^>b zpCrJ{imC~06ay=GY^#Ow5Q7dw8bdKd9q3dgb9Odyb~ZK8{yb3pfu=`5TYcrh3+?Q{ z2Xxspnu+l<^D(l5aveV-=rAORQgwDd@HRztHG5G01L-w~OtzYvnS=C#avNwlfhuT& zCTOrg%-l?k6|@)zvIU1#4YaHpG<RdisMgQJ%B0N7&BV{h%Hqey%<9O($ZW*I&gRR) z#>mdd!=lZ^!EDRQ&BV>2EuqTzf|rGtg_Vzqg;khSo|l)I^9KjBIIlb>FC!x(9}^QR zD-VkZFDI7~D;p0#I|sj#K(!#Bs5CQ|0N=k_J~4J4K6YUaK4xYKMo~6KW=^qcJ{e90 zMlL>07G}_VE=a{=Jpo}^EcT<j&yv%UU1hGmAP)<(2|Fu08xseMIIo;D$Wa{3{G4p; zCakPNf_i*nY%Gk<>})*jEX=G-tcon0d|Fb$JgO<oJTjszOstIDe43JG?Chc-DIV=g z770FXHWpSU7G4=q@LeANA?yEC7<3s7!E-1KjLP82B+wK%xL6Rwe;}B$xv{vZu{^wU z%cLNX%PGZwO<0lLKvbHO-2idkm&Lyb$cbJi#cI9=k-kb09wS2sH?Npb6`PV+0XrvX zLK1{I*#k5zK0prd`jC*2kN{<a>UPjMUjLbx7#qNIp}wFy0Fhj+4BFWW8dCyI(c&sE zKxaaMk|#06#upnw9!upqWlJ7G8#Z=EHb!<95i!)_LrjDPEb(s^{!)ZdKnqlgXmPSh zu&@ftVwNPb!mKP3Y@9;8IEoX{nE(t7jFyZH4BU`b4Rr6BnLHyCFBfMcn*duQCl@1w zBxfTVTO+3=D7?TM{TU82MuPPSim*ZVv56gksbX~e_Ya{Pp=TvT52&7o?qyShX|YGP z4>CsefbjtM98zfp2ILwZG|<5cS&RUl3Sa~s)CxcQ^WWTRW-gX$RyK}r9BhmQpbnf2 z_)t)p1=TDp)vWyd;5jQKvq5blkc&X(g8H7!khUne8UXdQLA46#R8g4)HO$O4to-~6 zPy<CkhBKzrFmo~2K<vYCw=i0NRv6Oq1tldh1F)fBL*PcEHjw_!!DlwIn?bD~RY+qR zJW+zvg#uVCg~t!0B_k&&PE{2_r|p6_=(8~@B1dHcEV@8?KyBiE;B(asAnVb@6^+FB z8NrL4l=MIwibdGe^%z05J?JD~Q2P_oFas;&V^l|}u%PFDs4@Qhcbkoomz$4?jbBhv zPk~A3lAyALs5~R10I!=HXlOZ|gO`buv6F|7S)YkFPa8ajuZ=iNtwBMETasN`KwMEl zUr@k6k&#heR6vG<F&w-<f}2BEi2DL3R|BMf13Nzr-9I6q-5?bC2ehsSyh{W!eGMJW zB++-72H>@;kct$}B+iF3Kx>lNHNd)%n4mRcfB)}gVrD$dV9mgwYHp^c58A@d51RD{ z9S6q-CZL=6!K)V7*~IKY#}3*vf+v~8#mw|Ut!#D1(|TMSy!JvYB7AlN%+g%Cx|}l1 z0(N{NEJF6Y9H2ua@W>v}<&s8Htgp|-&WCIiLY9vmWE8S21GpV@fT@A;Ab53$IRk^a z5<8m`XhMJww1@%}=Agr^)Il@!pe_w)h)$N#NZeFWP}x*jR9Q?MG@&eLqIQ9WSyV%m znMK}M4!q4p&e$KariSsxzXlN*MR~>qhXx-x&aWaeG6{_A?2K|I^1?DQ!ty3^3Xml_ zj1ID*dO}A39ymBismY2m+K9?R$^p>W=K%&@&>kFNML}cuOph@u$O&lYG$k+|a1a;# zCm<;9z$7r?z`qZm#S2WJV{;iB{w-jv5EK^|{MVu2-~e9r4JJTo7Ss-hoDap%5Xg|h zz@W*9=y8HpW(h<0CxG%ANCrHZ3OdtJgpHjIG^&CaX%!Vzgbt*OfmbHkF@g+GW(7^K zffn?^PvGVUb*&f!{(%=*FoITYpXB7@RN&;}6kz9+m*nN*6){oaP?cUFt;(ptAt<gc zt7If8&&mGpN*psUJEOQYD+i+hBO9v=8#^P96+1iFH(&y_<;cmdAf?4o#x2OiB*-hH zVgjD1`M01zTu@R@kC|Cdv4TTON`alzpqrJ0HJF_>n}wBw)tDO;F5rbN;5~{Wpzv1( zjWLRVR^X|DicL^4Br2%N4xT3!1sxQ_&Iq2;`zHY!E74$OXEY5BW#MHGXKaXK;%0$O zc`<^|@A`M<p=A*(BkRPBJ*=QhPgxll{zLZd!p=|zl^)Ox59(|{iUQODDMbSEtcrr5 zksw4v9uyahzTk0L5RnQZzyrVkp2C?3K}L>$0pJi7=4Ax!!D--NZDZwt63;*^FyRJb zfr(=v)-hHN2S#vV^KS#_crwt*Uy!s6@t+8T8K_*u;xcB?St#<1?2tMLx_J&<NsEg? zJkIz5)kW%MTzu>bo}OG%TrQA3(0U+tf&#k;A1Asi7!~+L*cH6II5}M*`>6H2I5`s( z*!j51*f~M*4O(xtpGlGNAOjbJ7--jvsxs*O2G9y~HFZ5E@DfyGBQsW06E$`|COIZ> z<6oUg;O#sXURGH(HbyRS7TaWNb}rDN)epGYtrJXHT=ML_ZP*xD7tCX2k@3)E=XSJC zwq@aDf52t+mIHL4d{#}iJtLzw3qLEkO>vy@C-{6cMYOZFSRs`@>RFq}M{NCjy#o>g z)7&7w%V6O{I@9Uc4i-KZaaPu8Zmg{0EPN~(tdKYX%_ALzu5|>5JD7ls+?q3*nXn>` z5CRqH;9c+Hj6YS`ML9kcaEP+2aBwVR7h`8sXaBdHm5=QTE2|bOKkHmqRz5Z@R#rw4 z6%LM%h3xFA>|*T8IXD<K*u^qfSue5jgJkEpLR5po9@GwiwWm}V7|`2O>R7!$0n~Vc zHd7vAdLN~Ym9zsAET8}YEnmoBg|u6lKzC7sPHR^OpJ9bK;gp?`O=;b7kkdsu3O;a% zva7PQ|GUX9#tHJT3I|AxLxo+8{ogGP=-l#tMhC`&3>u(2(S`M32M~*ju(6AYLz;s| z_Kc8&5Ji<u)j-Qs>=;2sD`>wOD0_qUt5x&xiwhbENbvKhC{!>p@iDP770L?m%I=Wm z6%Z6KeZbE8?*^!NVFZ;gMJ%Gcpfa6Tltt3Af{B%hkBO<!-dIgkn8V77Ls-;DU&rrX zt^`OuhyaDN0%(k%iGlF|12Y5ueb>$m?hM`x{tUqk;SA9X@eIif=?vKn`3%Jj<qXvf z^$ZNEqROVi%A%kx9Lna(qQ-*8rpm^q%A%~srpkiKqQ<PI%A(>hzNoP&I~0o>n<}e| z8rw1{i?WLv+cJWb8k;JEjAA!7RW=nhHf0tyHdTdg4N+GXH3ng@HdAF$kQE>{BLirQ zhJ!-`h-z^7cK}2)f_VQxED#0@ffaxhH$c=jIQ$3c1StgVOLb^)04qD-;K0b>aKPb! z15`WX0g%oHkQ$Jw5Zy4P2OwrKf@B*Upq4v;1RESc5M;XpD7=~e|Ng(9@hBr`zR#S2 zfmIYzfq>evpuPe#_(UyGu?*fs3n}QK)vGll=yWZ4Mn!WoHO2+(tp8?!A`(=6a4awa zjh7mM2RtFn1)>t{VT=M{>=H7ds0OV$XJ@oGKvDr_8Yl^W{w%BnY5VMFYyj^=FahnN zP!$DjTm}tofL4w2GlG_z>obBXchG86@Fb)hqcB>7gAvp$0yU37i*zJJEP46FxR`ku z*<@K+ZP?j4`Iy*Qr<g>Th#;KK{%<!2503y3&w~g0V(MJ7Y~p-I+^pRCY)m{%Ow!C8 z^SIbKWmq`bO(Oo?0XNFQ1Y-b5ivSO_%wjZPY-G>|wLBG-!RwvPOu=)yAXkDj9_YML zHg@>9HF%Iz9@2b+jH81>oRQ-KCl4nt2d4rkTs6d`4BZT+#J~$k6a=^hIoW0Y{Q$`@ zf)3Q=<PnsRQ_};xhD%dY+0al~Qj-hJwboM*=VlcEv%v%?-a&1u{fxgEA$x5+ASD_s z)*&P2&<jh%L1ROpAwhL;UCqwN2s)S>loCYQKu1iegN}v)4K<1jD+-&bfhINJ34wj5 zgo1*;qT*H-E+$cN5jIvvc2-ReW_C#hNp@xqO;&bBRyGkn9u6*MP8JOoW~NL=g-j-9 zP*Vh!NSGKD^%NEL6lXItv#9ZLE3mS2h=_`caImu~aP#qS2(d6Ti!gJr{`=3!$jZSC znOB3P8+FJ{59Vy_ifZcS;GQnX(XybW2;e?7GD}3B5j1En%cv}lmIDGA6&Mv17<E~| z(@X~JtRAfFkeO7L8eu762T+Lz_wUQ<yu4~H7S;+-yy)m4$O=}LV9@xd!yK5$*r97k z7=JS!WRPZXW{75JWatFlVQLO($AR`qii?RWn}OU8O+Loz;>O_ZE~fC775Xd;Bv*op zZHR9ntL{O41zSeY1_u##V>MHdk>J>bhXI@c>b8r+!a^NxI*KtTK)G9riG{n4n}taV z#NkuQP-5m_GZq7JWSN=8n3-ikOfh3NjvXvao0wR{m|2*fFtISZNb*eKkz{0IlwlEP zVln{{GK@@~oIIRz6?{xg>zJ7M7@3&PFfly?#Vj+YhNPa7vaXamCzzWaAJ4`m$HFAe z#3BPSUk1#S<NCJ&!sTOP)&hxZF*D5*v@<cW6J%s^V`5^FmxmHeOm0l3Y@D2Ia^c+k zOiWBn{M?L8${>a^v^mWHKf4sYjl+($l1DlM_IU?8yC8=!ds-U12%8`WM?1R+QWIw@ z=-_BUc91NG0EaMp2WXND)UJS?U#iG}dUmKfxNT`>0_wVg_F{t@H^_&wKuzRGO=E|e zh;&%!^L7q)A$F)^gun-#L)!sJ_Mw~;Dh_X3!J7kSC`Xin>;w5LHI;)ykR9X$<TY8y zzGoNU0G+H3DG!nCLpc-F9BvKVqiRY>M}a<Xhgbs&PIf`C572@W)iI!Q4LokgxSP=x zaSk|W0NmURG`I~u75+T*xX;<MAxFF)Vi$1+odPPx&d5G{HajEuEYL%sHWTCwPF2R) zAhRGRJIXQgGm49W>K^dv?#fs+Uc@vXy07CYBh)O&Ig)yepqdLbPHzMnC}fnyV%U0Y zhN1Woawa%v{2y`+g9*r?A2GEt+F~&t5<j4Ia-e-Y+6)ZBpqvkyLNo{MUsG0xY*-Tn z&CY{*IIz`grh?{XCKXyXT3R+*|GA{N!qUP(3q#|Dc?Ecd1;AuHCu4;iNM1{plQTRV zw1_nB-&bB?Vcr7p(lbWxI4&tjc?}sufSg~)po+BL3SRmkS{&@40e0}onqr_cH%-() zH_BKunzHjTs;Y}ZOGU;D1>g>z0l0SvVHR+3fOZ5VaQxHYWG~3&;AYCrEnw&5KIvkN zqzcS5c46V?c$WZLuAA_VgMVTQJLds?W&vUS1DxzBTmqnWIrtu>Eub^9K_fBXy^r9- zqD@Ue6E2|Io1KpdzTglvKFG$Xz{O$Z175M{W5vNG%xxNK;9S&R=xh*b$|J-$Q;>s~ zNg&A{yaLk5K1qOymqU<;kD1Rc#nPqF$+^hcGR2LTnGc$lV0nrG<qRj}!T~vJGBEHk zF#Ly{@1V<I%K$pHAeW(*p_gGU!&-*D3}+ecGB9AR7(qiSkctFtbw7B14Y8~ZV|^F; zx?Do*!6;QPj5hy=ZXQ!c2l!|g2k=-Sgw){T6Xs=d;1%Zk#|N(7aS~WpLLpQyKrpef zuu3yBtN;!4dVn|k1VBhWu7BVQY#2GX_^yCj58&1wVv#U{^#ZSK2VU8K;Ke^^M#I;= zfcBn&c9R){QUqvIAE=d&yz&om9vA#5IZ){e-V-Y(!Wa;sW}*h!%K^IaYzbr`d~-iD z7fTQe3uq0LUKV&E3uA+nnwk{yon{h{h4C-?m|23stE?EA^)i{6Wtq94Ywlof1Kr1C z$>7Nl$&iW5mGId$_=QDqhB;_Y9B5@Jp)`Y@hS2@??+?Ut&~wJ16!h@1E}R#+fh90~ z|8EAw`>1D<9e@b_1K$h>o>dNj&o3ib;PoPqavT(QdZ@EW*5Jl1Xo~=R>5DkLY=xBV zj190IHPGmTZeR#wVcG&}P;FsiVGKYFXMkhQ1md(J@B$YQf!4lIU_dRMnAJhuHRzfg zaZpvt$B0~FaYeAQvl_6nJFqY^%P?~x7hwMuIk2#SR|s~2*59eIfEsI{wi9SC5~vTO z$iTpex~$Sz5L7xLm0GrpjF8Qf;DeqN^&yLW6hvgelWSl>M$j#Y3Hpi`V1Z!(YEv+S z2=F*7KZ7o4g$1amhMXf<!P7|We4xp9(9yYK;$ol<k-8oun+Ryx3#fj_CChjLagwLZ zzi&)zj3Ue|!q%2T!isVslFUqkOsvepx^lAGmzh|ZgqfK|pi)vyOoEJTOd`5+vO0*! z19{*96SFi6izu&<xTK1nlmw$BGqW5sBa;B5l%6b;5I#w0{DJ1T7cj_xcJ-=)b{Hvx z&IVHgRlJ~i2RTM#MI$@V(fY7yROIECMq*4-Y!(`_5~5z=UfNn_>Q3s61<KY+RvWWe z_*k;oIk+7;*$vn^9l1H~3JPgh2&m|2duem<d+Dn?sViA4>$&-7v9M&Zi-0#*6^KBB z9&~<LBO@_xVh5ee4Ot1MjF{lV;ikQCx3EK9hr>-KP}i_S+y<?KVd2DpH<WPLjl(9e zfB%Ed9Crlw3yl~USd~r9K?emWf)5V>m&TAh3p!Uti4AnP5a_IC&>5`kVvsfGj2adz z+4;EtP2%QbUuhvI&dU6OnN_@8&x_xLS4Rr8RzO5pMcE&;q+FnOCA$bezX<!vT5&;8 z$s#Duc)?U#ObT?5hKeY75jkj0Kgdmtpt&e>@H)I81_tnsZ_w3IprgV;OH$ZP!N~%& zAx%tN6qHuLCyJ}7gGQ*$jX~?bK&>NHc<~D=gFzf&5CP&aHt0L)D@ZYlO7N@5@QDjZ z%IiDn%S(bO8F5w-VQxuAZBb=mQAP>5f1n|MK2A>PRdF|=hhG_h&dib4;*gMHV`gS% zW?`Set|bi-V?P09N@{X)aIr8lv#@cAOKEXvWkGI!`v<-HjS+ei94IcBLH-8s<Kt&g zVX$Oi0BvhF7Y6ky<QUnR`54t9bBmy}en3rT$jG!Ryr&4-mj^y6T+E13+?JJ<se_4w z6-t+DvoJD8M>8|BXft!MOkiP|z{17o1*SP!kmc+JnK)P(ud%W+3Ndl8{?lS*Ez)D* zVh#vk=3>!fVQy#PVrgfFQY=U^pgR5kzyA-IK;vk_4AP+XD(E~@Q_y+tCVGspfnD$o zU)qeO!iq}jdW@hG8pPPx*$y1guuuT+!cqQL!Nq66m;oyF6$1V-2=H=qv2rqbaI$i7 z^Ey~)fVbZ8alO#6U<BQ_+VHP|i&IiWM3R#WJZEr_@jc^y2GCAp232u6Ms~=;B{p`@ z&@*WA+!lPUF!;~{GkZog&?Q9RsS9~VGjmXb+DsgDz`hvx4mi-gbNq~A%Akgc2<X_1 zy;>~HjDl*+94uPWN~|pA<}9pA(poGW%xZ#+%q&`LYy{+s^_@Tmz0H+m;$Sh=WM*QL z6z4HyVQ1vwVPt19<Pn!-Vq(@bW#M3wR8}TJjUvb}ebD|-(0y!8j0YLq8T=WhGc09z z%kY(f0d#6Sc)$#_Pz!YY73g+5YeqA3&;kN8a4*#iw5L%Vv|@{&5j2A<CMw1bYTL50 zi-TeX+{<HA7Xxkn;$s9IC_|0#WH$pZVqj+zmtzzcV`b+9o#qYdpsJ};!Iex5988=n zLVPTYOdMQn0<7#T%#7@;0&H9yOpGjiLM)t290CI9N?6cUNC~NO^9iYPrzvr;v2ZG~ z39`#d%JFchsc~}4OUQBvvMO+~uyH7|u_<z}v2ZD{3UbIw%5ih5sd4bgNy@SdvMF#e zvvMf0Rf{q)smaJmi!w2)OUp6xqgzag+ZY-7Kz`$4=49dH;b&tN5@uoJ=jCJJWaegP zVrJoIX69#MW?}=&^YXK?2n(^Y@$-P>dDt15S@@Xk__$St`FK><2(k!rNNKP!vj~cE zD{=6FX65-fl(<C&S(w?>r8xvy1Qp~3Sp_(x)!CU@1w^@&IC&Y_*_e1amAFL&See<? zWH<y^1?5ep<)qb_n8ZL7Bhw;WuH#{2VrJoEBJ4UI6_D!~z-zN%Z7&%H9R|?qY%c}| zQ)r(TyairKT@7);u!tNZE1IM#X!4znT^(h&6hw@TUCbmRBf><^)TqqJlu^kf!UW7W ziTL*g%#brRE-^M`Y|=4Nw10q*U9M*?rK4eNpsg(^CnzW<s4dFF#l^#@B`Bu^;w#As zt}%hgm`L*R^78R<$O&poa7T!#=zxw`)=?3&;E)s27UJe+5(l@bA#1Q9r~iWXXrL@T zXH*t67FHHCMs36WS+L;2f(48yw>AH303A}y$N(NY*bAQD5(V#_0GkJ1LSqlQDG0o? z>cBs6&nSVHt#*Qxni}H)HK~6Oq|`##*;(S$q!<;X)IjGS{`-HQiIH&ugA{lzA86~Z z2zbRc=!ACADP>~NLY^7E2o^L@Z_j83Ib0reiz#Sa0$jv`)(XgiukPSyWP==sCn^G3 zFe)y_#>n7S>MAGAA;H7V%)+XpB`alY;a2METB--`NrQ4Viy#{ZE1LofE1Qv^1QWBY zI8GVH1s3s^s!lTU%0k>MTtd7e!WN+Oj{aQ|0xbm*V&Y`xVG(3wVPa)wXXIy<6qHb9 z!YKp3n-mrXkn=3S{S8o)1aw3l8+cEwIV>EYYn(;cj6p38P>Tc3fP0aT6V;2yAX^8E zQ7D8TL^zTB0No}C*(?YlLG5XH`#}_RKCn47jzkfTGgoC}RR=Ykz-LB6mTRzy!4BAT zkdx*R=jMewOGEA7ZcZkvVre<oQa6KerA#)|(={)sI?2c>3Gp&AgF~0=kIa_{87CFX zcncZHAjnagEdQ)nnOLP*!F%38>-u3~h%fYT1`&?XfV7=JY1D~v0fRV0D0mMcWT%3t zh&Vicz_G(_3Qd~eb$yUy+Cde+DQLnBG#dh`4cWlcHX`8F_Mo-{G-0!vnW(9Q&*xHB zQU@Kt0g7_a-U2m{+lt~X)HwLr*_c^a^|Xy`EaNR62=XyAGV`$Tu*<Nrv$E*&2}ufp z7kJ|mXN*$wuw-=1bL10}$Z)VR*4ATXVP<3JXJpX!($@CUHr5mt=4NB&l9bf;G8JIt zW@2aNW?|>xVrS%KmEaeWVgz^FaY<BarUnRcahXJzFzJ{{N^-HVatp)qw-e(+1~Jf{ zYUnNP;E>}3Z}tWUoH$mmtEnUToPz`I@hVJjaB!gbf`<d_iH({mfkK?za3^tagZp8i zz230%hQt`;88kq9armGo>6_>=vMYm5M-v6zCJ)PE@bLzuP2P_cOd?FQy|foV)}U!X zG8b}h|A$G0iGsFQH)QP@^vWK{STSU;IR}F%gDL}qIdqCr33PuEWdDna9-}z;NLo<i z#SDBm(?d>hZsbK=pJ(mF$~}RDpPdCtU+0n%7M2pe;amhh>%OhXdCCNCRwovAehw%N z-sk>+@gU;@@LCi*hG5XR6KH?|mPDbGxvKDS75JF7k(nS|5Y%yl?tw8!%;AC7tbt^V z%ow-Sa6yJ5Ls;3_|2+qfCW4r(HK4)58di38))27Z0hlP52Rd0BNm2rd&G+wK4U(Bq z?R;DyCE)RY5W(2UAkCo7zyLbB4{53t<S0=-CQ(IDu%gecD+qwfY|!dGb^)^pBgO+p z5wre*E?WfO_{hm<D-5m%z=SZneS*1pg8et}06Ulf-81s*|1Kt0#-j{!;2X9r85mUc zm`s&G)e>ZaUmmoz1~hYH4>}alj1`uw%wY_~KJfp_R!U0NN{m`+u4=+6!t6Y3^5$|{ zzFO+8Y9h+Q|5ig%8R#BLDPiHs5Z(bsC2J)mD<yVe6=5}3buAxlIdge79tc;>4V-L* zp(h8yQz6XVY>dYkWWgsMSTHcCf_6QDZowwm-T#mriso)%6&&t9h~iK*cdNVOayMko z{~+T520;c;eaWB*o$H1y7X%&MBMdsZ3Nf^$tfXcRY7U4Ro0>2>zz(1GP!wMQ9=ise zLY=|ISLwvg#RfTanz4Y3@81n^MaGB>KCXWgKxvkdgHO|mJ%J6<7lf@JGea921Rc-- zyRHhfWlRJ-fTjjo><ZdL2H7SCN(m_U6&i5~tLkVvsj4{!D+zHjGl_u;UT!flB@JN_ zWeIT}c4i)CNhai?<=;{sZZS2dKqplpE-q$HW@Q#87B)5>ZAWoQJ`Q#kMiwPz@LD_2 z*dpkx;06Xk25SZebMWdDYewj;QN~7MpmW1y!DqvOrbj?+4rso%WkfzG-_%5H0i%PO zlmg@sI0Y#+#svzz!v7kCc@?D8KzDUGuyZmtaDq<8<rh=~udfA-p^Cl$l3ad#8 z%5hYJGMWH5yH#??34+>xptAS@lLO-d2FP8l#taOmB4WniiySa+YgLC8QlNgMlA0+a z*f*f{Ju)JU4@6}C9yq|x3Z66QU}bLrFL3}9ObmYyKvW2THVACU0Tn;sc>@H&=wbjG zNCnmRpfH2<2_!)GxT=EAeE}V@hL}DC%^{ko!H*M$7m;8Urpk;jG=zB{Ea2lZ;Nk<F zVg7F&oXG{2Nnm8)6;AlK1C*{bz;d92`1rUWY|s|01nAft#2ug#1w48NI)IZOw33S* zx~>!Hd=9AP=3pA+Lf9<g3k_??l11yw#goCdfgA<0>;)1(;j=Yl<(_rIWJYO(%l`e~ z;!BwP?<qnA6h@4o_8|C-A!Sev0<Re0K><%iFjpib2=hAd3WJW{<3%tT9gqYbfTmR+ zfR%yl0OxaXA48uZo*@HtCY>H5Vkrk7BjO-(IYz{8AH-cZ>~Lp+jwJ^L323p19iuti zadM1^+m!hj;hRnwzsPZ?x`AsXw^VM>sb#F_0yn|3I`&+epv0ufWv_!F04cv7;4%SW z<W}5fKn?AN6!f4f4mAG>nm^J6jcYS1gIn9OjGz&E(1lx|%d0?Rc!=|}KpjzY6E%3Z zfk{DtM^RW&|6dP}EPrL94ihJ<7%K~tnl6l`Y3rL{Q306|VqCy4sIMsc?>47`AiHe^ zD+?27lpzDgC=g0@3=oi3^?=NvfcgpG`B{+r_(7-cVytin4XT3n2kJ9|M&uzp(4;?v zCjz>ZOVL~$wA77B;2*e72HzuODI&w-!6U^MBqXCDBNW6Y&F#Sg+8`#v;lbG8!670e z1Fnm~1fzqD2p5+&J3DtjzZfXLi}Ck!v$Jb+af!&tXvi=gJjf`c0lpXG|Ns9-!DlIo zG01>U=Mo0b%7Yr_pw+mbfCIJR)kMWb+0{*jP0dB$U*Hqu<GsKo#&v<0Pmu3|;DG}N z9xPzo<;Nz$|Bz3dErXRcgH4?8A-@EhADfE@qn{t+zb8{2+aTwW+-726TnxT<2eji3 zbnA{IsKy0f+oT4nCuBjxYO;)A2Y~i(KvoHwsHwA?nyZ_GTp`SEYHrG|ZfGvg2xEye zzD(rhO5x>A;o?o?;^pQ{5fI485D-Y=<mT-S4Ly^VmX;P08VaI5K&WFXx!gi5YOJhk zEJED5DlEd>d0av)MjRX_CLA0_EJ9p)+`{S#uBxhPYK)qi|L$q~tE*~hsjC;j7@+Z3 z(0O#=Jzt=72-%xr0$z6mJ{=IWUeVadT%27EwALIvd=5U87IXj{d`1&~IuN7SG8PsI zH;EESc2HAUgPl!Lk&PYPtY()ik#Lh>VfnWNk^^`l)PZFzT+EV^#gd@87mEN3Mny$N zuvQ^K$zn-KW-b;+Hc0mS&j6vJZU&tT0Gel$2lqyxhauZCf^L@t4bDOiN48~zoQW<D zmxu5f4}i}pLJ-P!R$W$h%3uKqo3UI^L{UUUQ3OI&r$cz@61+S-yd5Y!a9bR7ujv8s zy{18++r7YNS5kJTDdbc+$oM_@Oc2CyK8UM+gS4wm@5nH7v4leo{Rn6Iw~~dEWeVgR zhbb&9d%!oAl6;4$i3|%%IA~&=nK_(=>)#6&mMP$wbe1VBoGh?14s;f&JOik9QG{%) zum+d+kj4S190%>=1dTH>D+($y3H$?1(u*7r@Br0QpavZumxsUs5g8eke-5CtR%Ar} z9T1T*fD}{)G9ru)A~OFLFe)%GFmQqDGA2gGgACyeu?)!!nGE?1r3`fpEeu@@6Brm& z+0_us;?>llw;76xvmrK6fCm3S3l7DM&5_rji?f3|9!6%S>SoXrnbq_e%|OK)Xl0E$ z=#D6TMvysX><|*9TTNU|-CRr@(KP^RW-|wq>R>6x_ktWMysRu@EPSlo`qqq`>~id! zjMn<xtb8nDEUdgL9D?jzT<mxhu`<F`-BFd(=H)kF;pf$sb2j8;c3@+3VCFOwtp$sV zL2?@}lC%{_mhC=C*5P$i9h)e~Ua+lJ+PwTMs*zyp;=tmzklb5~BpnKJt11Hn13Nh0 zKxfo*FbFc3G1xPBFa&~5HdO`HAD|)#zNL&^j?vuAT-4YUv|9?a`BxouwUwH=nz9nR z2p^+5XevjX6*QOz>XE@$hOom7Vny#Xg0_6|adNJNoSX50U6R|-;(@slw<Nm|I}5M4 z44=LNtE-Jyn3Nj75H}AiJ0oZ}qzE4$bWz1L$SfZd``-niHZgeb*a67wU4V%P=q!#s z+^lSJ!qL&fa%`;J(p=IUe7s^zN|Is<BGOE}Tx=ZDT<nmv3|(fy0nvQ`Tm^y&@Ywc! za2d_dAi<!>pv7PezPksSpFoXlQ2v3J$MA(E@ZKn#0heNI0389TD$VF1t*ZL(DKvdR zDA3AaDPdtK1udx=7pO`jwETniLZPSGLN6nLQcywgS!C$$#vHQ-MHDE);7%jWv6~@o zCdQRecR?vg`GjyEhRYDu8gf|ehS-N19Ei#ZbZ$SwOjumGBF5Hn#}=LdfJ@<vHfRu_ z1_)FT)w!_PgT@z>f`$u}2c<ymcTnFB)lV2<1s@54M;@Gk)ydGb1*K432TfW~2S6#1 zJ3##iWOoqZ3apkxLkO#_&_H0|0G+)Go@W<ekYs?gja(RfLAN?HDuWi>!n+<wO>#)D z4pC)eh6+3);S6{<F$I)!aSC;SH^j=cK$`6q>-jbK*Yoi~sDBF}qGb>Yy1WZYK?NBZ z#0`Wx^+3(#2O=^%AVte=xDg<ebRdEacqj&t|G{^$C4$d7(r193yH}4TB}01gpv@Yf zc^gr6_%Jy{0yJk1k^t@E0Ih@}$cJcyn}@!#lPTdZ=ui~!LP_C&hgq2)FtdV*7vNEI zFafy-1rJk$lO42P14J+ifOUfj#suV(Q~oo6Oy&R)7LYM>5EC!U8B`5`SNMX@xdiJ4 zrCrci1n6vC(7q-uP;UXXHOJ2g+82yiD`WyWLk_$S`}+efDXs^coDeE6l$k4mm05wA zRhYMci#e3(I$R2*g4vImh1CpvfKULhuo){0vmX;^?Ko)N2xPn%RL3eZFqnhtRZz7E zuUo~@>c$7s;8W10A=K@E4WM2<BZveoTvjzxJpeh;+yH$14w!(P{{tJ72c1abiZ&+C z&&UQE30GGGtynQP11-7}7vp18hi3zGF;F*>9YYn;fc;`wc0pEl85wp~L3UXrwlm~h z)=G47s2b#9xAPd9A&S;Q&TBo4-2z$ASnL1)`@!er*)TXVxHI@NFo?pAz&2NuV*+h# z0i9!`&c-e#&j{Kq1KMx}o+uIp@B9I^coD}@nX9QAvzfE8E32ssnwcAmi8FGsE3k1g zGBGh)Ff($pDYA1hvWY0zN-MB(u+%H*6j&&6fR%7DG5tHi#00vOgNu<(Mk^#lOXik} zOoL23C(j)oPEMZNyc~M$+#GD2oIE@n-0V6!E+)c)%<L?(Viqx0wjdb}E-nr>4sLc6 z;{bE>0ONZi5)v5#0s;d64uD7o$e9KE8C4k%f=-$Mt%8AMZ18ymW}u-^_^^yJXpTh= zd?*lP5)8b_n@vny47NhwmJzh*N{{hk4kwQwkFzj8D>sW08xxxvWKBGif{6?hi=I+C ziY%)-L{`O$hl^M9x;(Q0C$AtkGZV8iD<7*IIF}hHnky)oaLIwCxLBB&mDu1?jOvPV z);gfMtN;HYYx+gNH=jcfYJ*>X02*J0Z~X>!+pQVFV{f1{^uZ_K8zWed!KVw14WN8J z!N34?85ra8e*)kWo51(O1vATN$S@xRlfmqqoDH1pj126Y4GIbkob3M@*f|{-!K?Qa z*g5}AVCUoj4SI+mXh@R}eAdDq@HrnskTZQ$#X#$DK<6v*Gm5i=PFNBLE&bwW)MHd< z23;Kio3s(;V-%NTf?RqIuYefUq{SDqu`$^&@vzw{+A7+yu`x0FaWV0*UE@^~OJNq| z0=p?PMnr^#RomJ`p7AOh+rRzbffkun?1H9DJnUQ9*qB68M3P0Ac-St;v9U3^3kowb zYH{&^o&4{$fWEYx4!5|zj5{-TGiXo;G&lpQvq61h(0R083<V4fs*n|dkTn*<kQ5~b zpX*m+S5{*KjhlcEG+~D%CN<E4Ebwk))cIIeWj5HJMbKF+kO~8|KnT)>1CKqMs4+5F zf-W!u-(sZ9#m2+NB_Yhh$RfZdz@^T{#m;IcBB3P7#m>#nDIpBHga9gRFD#+N$gd!$ zZ4Wx9_TLl`X|FAZIFw7l0<=;9OfcFDfIDi8e9YX;0&LujjNE)&jKXY+qEaf1C{kQp zaEX8Fkn`fem6W79_~>FV0bZj9O0NgO_jEESg2t^uOXEag_gsP6kl>yttnJKHPyksW z430%`FXTG3o!ToZCnx%^7#v4n0@}QSjiWF%G9G3SU{C_hwt;N|kC4L#d)fIIk!%$- zQG+*%nF<1AL<$l>>Hpus16+LI4Fik;lJ=0s38TM=ti!(su#JrSjhKbF|4oK)?hA<g zy9?<JLdO|lb1<M4D3EjkNh9K*jXx%4Mq<c|vU&Bv>*J6M^B>SfZjkc`7#I&Ta53mJ zSb$~^LG$?Rplh4WLD>T|k*5SYcpEgMBhJpp2&RodD_uZ?gy!(ERYnCJE+%1i1wkq2 zX^Q%OwQ?+?EK=g)>VjeuIM`T)<h1R0xEy`8y|fiT0nW$C$tWpf;mXCvp=v0r7O$^p z%@X0t#c6J9Y^1LyAfUn|z%C;!#mr%$?WwcCA%T;Zi<6HNQdfe`69C-{ugw77RV)mi zwlxMF>B9!v(FJJ+fNnBFq;T-&G-D$%cG#Lja~R`B02f~bFBj(wHUYL7oLsySe2hkX zT>lI}Ln)ID`L*~BCv)-DK(+=uKq$}^LMtRWXRxu&;FMg!#rLlRd`)Ws7oQ<Nzad`| z2YB-_2ZVyAnSJ1~d=3U1&|QqGZ0wLT;nYEA+Ngm#;L1v%TPMxTp(BW*BA`38L6`4< z101wO(4Gl=6)C)b&UjK?$J~sakCB~+nT1V;m4`(>#ZpPxnZ?*Z*@VX;z=Fp`gpY-X zRfdh3SzOVboso~-%-zVut4aMcB$;O@2*!&ub8uMgW8(#_YGczk=P8NcRf!an0L@-W zh?NP6va+xUF!Ql0$<$bJa4?Hk3wzk@f~P}7zYVk>33P&b1VbW276XH-fwG~xnTa}R zohtZtH0Wij;2AdXnqu&!s-SfqW+rN^re@~Gpy>?IfRVVenmH)>f|4<KKoG=%uQp}| z@jz0DLb`!bor6Q25wy`uP>$mghn%3asvtkVpsF;StNQOKKgR_%uo_0S3mgj}!v)Zl z!v8iv#v?c(qKu$S$;Zi=;K;AQ@2F~qZW!2XGgZz@9Q@#mBKQj-+LuEps3~ZM!p@un z-T5WJAjP1}pbNU6ml3=mAF}Ad7PLHs9ds_G324AfTuI%I(MU|34IBuzjG)~KYM`?L z<rqcS7!~|leSKT!fQW_cqSkIM7E=7)a`J3ST1ss4N@^x*3JwbTVr(4zQWh@mj0=>k zl@CA`0fVS{k^)?6x@ufH(*DdMl9D3Kpap7Dyv)o~1SDmpbwF~Ee*OU_XU4+}2A~uR zIz|bU8o`&Tf~tFQ@IWo74uUekYtTUJd_biFsDGyi8d$aljp~EuW#kw|_!t>arSY)w zN^vh#*YIogRg@Q&61D=((7Ra)O9{&>+COy6b9BseWDn<I<CElGZ0X{d$LMayCMC|s zp1`VPt-Mf7QxH65Rwcxo4{BNGGYeIL=mbGcv4!$xOTkM3O~D!xxzu!2#K3KW2jIJY zLAP6lGcX8)XX(HMD7`_uq@b}NR@go{P}>I7CWT%TVgjumu}CB7&M@HOlK^#fB*3$b zd`xUm252G_B(d3mi?0D92NHrZ858)pGFX`nm{~JGB@SrtwgJq7+z}0tI>5&TnXHH0 z2Mu8}PT=B$tfzsTtHjG73z~Ie1YLE=#HMD?WM+gu9L_ANC<wX&*GvskHHttdn@!aC z8QB;oM=>+sj^W~E<hsqwvDA=9fm?-{If|KsS%v$+zXQ)$nKjthIQ~5Xb(2Adv+=WP zurTI=<Zp8^@^Z!8W)?Bz=2l_mV2)yDR^e9o_b!dmfmxH4AGSMe9tRtn2527+=-xg^ zzlxth7Iel3>UkBaibkMWJaA`EjuCYG3ZfhJuYfT@M4E|j1D_V(20kWf2hi<Pps7`1 zV`+810|EjE_|&CAeMgWz42(Y*IiPoCf$j`~)co*H9B3~F=o&{gMi0m?*bK;C*MChA z`T&Fi?|%jFlGU=&0<R}M!LWjH2h3dfz6W*CQg%?SA_!w7U@?G^1FK!o`49&186NTs zdJO&y44~2z)M5dxO#o#%=zuy*NK_nh4;!Rm!_H<7zA#%GwCEdjjxRsxW=mN{(4K#B zQ$<m8Q<Dwg;Z_jA$;l3)KtzI+=tUV3&~eEZMXw0($%yy~iSP(Z3G;{u`H9HL2_-N( zB)kAG{{a)A!jT=kh@q2z`c+U;xH_Hx9}l;VhzuV;I}Z;V$Os*AJ_#<jojcvQB%tjw zkiR6sJ1-znZ7OI2J>1j?bdRK%xR@wAsCZ!mpN$4N&lI%l0y6aknhI2horNr<S;Gl+ zA!m)IkP{Odb1{@(%*@8b$;8N1BF-<NA;B+R!o<iV0CFQEy9A#?6uST$$bsxp3Vaey zOiWCn5Pm2V=m;EkrVt?xK0Xei5GHoezBEu99ClWaGRWoV`^DJR^g+k(fEHkYLK(D= zO5I!(;yv(b!Z5d+p`6Y5$xoV-j|-H|Ii>yBWF%xxKvv|4d9n*|3Cam_39x&jE<1i^ zA;vBVDjOu(#VlAwMGgBvoIXKQRvyq92t2H&p!5!MGXr>kn>4r;X9m8P4AuaG2C@-2 z(AgoBJtKIL7^ozWWfXy|(h?VA{Km`<IdqzxS+SB!f)5;$TxFMdg}Ftz>a<xoA+nt8 zI@Mev+`^2E%q%QtK!JRQg_%h*f>Vftmybh;BQ%wVO@KXGiG`g<7$hsq!_KM%jskGs zl7WHoAY&kSoQwheeqeR9F%`xIi2N_ii^QG)9zOvSkQ-CLOtAU?L2JGjGKe$CFfgcs zPG3+{VrK*oGD5NoXhcC>oLyO+@e?240zM7C{|tP5349`qDWDY%6Bc&46a}o~)8Jdc z2a?g?OMoosJKN<P09pV2fYFh0A%hoawHqVo1Qj*Vj2vikMVnC#lyM<UJJ3b5VxT3A zpsv3X8>p27%F5P^Y>2fNpdLT?4qircMow07F)c^_BFM3-Y;8<TlcCHm0Xq#rQ5Fs+ z9!54+X-SWKF-4G5#h4gHLA0E(xuvhX91E)wD;p!5zB((53>&AoFdK_38>g}c3nMG5 z4l5@kYk&hgs~ju4m<T(o3@f{vmJSCa2P-uF{Qu6x$k@ps4w@Yn1f8i4I;;n@?Gb$B zf|@PpUJO>y#ZTZfEI`L#n%Oc!JB)l>j2V0)>;dfT0qi1t|7LLUF}?upg@uVQg6cFz z2>~uX11>(08ukEoJ}v{kK2$E30IW_s&iDg-9}#$ss48S?8ZuE0zrIji98`fDnVCXo zC6P}m`ynhXttKsP&jH?y%E8X+z{-wv?nEg_QcZek2MaqpO9vY}I|K9ozyBfa9X<we z@VRVae4xEmdW@irVq)U(YZTFKWwPR6lM?!;ASA`c@qtrOky8tc)f@tf;^K+|j0*&~ zxdr}h!>}FN-eTCmc#wgEL4tt+-0A~0cA15to)iWpStYg&`rxkIbUr>VCoVodKCU<} zJ^@Hyj<M|D2QFS-P~pPQ4~kRJ*%$X24>B%faE8>fppj$~dq#Ee^<*FpsQV8(jZ7VM zbRviY8gmxmXB0PAR|5^Fg4%N;piUJ#=(=PvP{*f$i;rC;J6naFj|<f65n)%!$x&e! z;RAEgWI)P9_%fjCAUxdakY&L2A*B3;+{qctzyL~<AooGW#G%6+s^BIVn1Bp3foe;% zHXcL*bflg(Xv-@|1tb$1nL(D&Lf6xRE@6Ny%moWi(O_kVFVF=o<3*BV<UwAK+lxmf ziYd@|W^!aaz#tAfqY%_fRnljKZ^DNKJ2R->Ruoh;vS);D8wE8=p=FmIBa;K42)oK> zb`f@QcJ?ozxM<+wTPeW)?*JnQ7rOvEAJ@Mdpi&pqPU90{T+slEv@h)JpgWd7gJbL8 ze*t!`35*Wx0_-Auuol_|ZeGy2B%pD3NZ9j(asv99#-Kt>M4l1(;1_UB0^WiRKi@b4 zlu#57v#`iBbFmx-9hS()h<wVi3h1E3!z^6P@+=@}aO6YBHXvhP+@Rb0%-Lia*~QI4 zjaGG4P>T?}%m!SLgM$Wqtd6m;f`Wyvv~XPmqp?hYj4v;{2)iab`yvR%>nl?%EUjyy zpdeh=uvrEq&92EV!oG+dO!4~41VH!3?qhObJj5WxpwHmJ;KRV6Dh}F?3qC{7%p7z% zs2rmzXty3{CW}o?oly-`u8YYtni(5`#zaKaLAx=P*u~An#0?=61*V2#Z0zD@?CNY{ zjPeTn0+HTc+U)EqHkKSJc8vDoZdzKb%pANNB5eQmLK()I+F(U9RP9uyBt?X^goPv} zRV4XXgoG6r`7!HQ=rihQdvZ&0+i3=giL2VF7HB$%T62i7a<MXVFdm08Jh{P&cvbCG zxuijx8dM}Dg`{jGrPYk`)$KriA_fK~N5)D9VFm^8od{~ss~^CJn1MDPnVGOEfje-J zOW(l7k*SHfA*5-mY-na|B*tW^?d81*>?IiE-vd=URaHAL5aDbaX3HZ9vRPb8+xCX1 zwhq`)+%U#es5&n@)edc2TWu+Euvd9(!TYNq=Xk0!FhJHdg9;+h%!e!^h!hnR0Zn*_ zLP<7IQ3hTtxQ0_w2!w?sIoE(NSda&FoE<ysjJX_4LcA?t^4|eoAtsJF&0ummD?2-? zouCvCG81%4ogO2EG!--fO~05zN$?2>OblQPR&z-Tfv}Jy*J`+}j3tl*>5#2ubO2k3 zWG!?Z2O}eBj!Tunl);rDlp&QN57JKs<#|v?6x=%nZT5o9iGUV)L&xKp(dPZoPrD#= zVvD(=DP*?60X#?xA{Zxg>T&Xd#)x<sLA|T9;2}sf0y0R6CMfWq;Q}YS0;7X4FX%c= zVX%IMU|vo=PGR1EAhUQGLF=YL>qpqZn+(8<9KkGbe+0}zhy_f5oa+jz#~^Egl^7U6 z*N}iWs)H}h1U2eF>lHz17IaJ>2%9l6*t?edq;s<{ZD!@=Wcl}polk__(!tK#Ds{2| zUtpFrKPTe>7C{*^&jMxL&8%F!tpEP9i}0~qvU3<3ib<L}1sH(S!vQ8%#^VgC3=E8V zjNtt!>}=p_Py}WxWOJIbJ)^R@nYtR|Wrbi}1D!BU0bVvFi=E^&4YZ7vlP2pYH7l{P zGEP<y77)}4)p9T~-Gs2)iIY!2$xvU%%*+JRXJP=I>&L;M#=rpYVG4t9C}2|pT_elS z2%15I*L%iBW(|-z$4LfEyd2y@YC_x`yi5knd^{F>Tnb!#7Cd~6(7DHd^A2!uad2>P z9N-ZGHOsg%grIF&rUu3Zpq28f`i#n;_AIE$A!;nDtgg%sI)YP_T~u6DSyWk6+}PY$ zR2g(q6G(-*u{|UBTmTc$Bp#DOgMmb;1_v)MN3no`vl2IlfrEnq2e*>5fj}`xRHIbF zpg~t$n3aWvRapFifWQ=HHfEkB0o<+v%p6)A%mS|50ZVw8*_fvY2yn53SKYF(f{s}O zuZ;nn3kcf#pvYjz;0S7eWA1h!l;%yLO$S(e$6OS2K&CvS*aPr|prG5{JGl59*jd46 zmEa%}8rZnllh_$8I$(pvj2?WCKrL|&5CJ~q2h4H+lOQ6Ot${rW<Pp$0%n*NwGDw0) zg#8#8gh8i$W9-~eHx^YE2AzRn3OcnEg26!#3Vska0_~@O3=)ExiwM6sD1hS@>YD}y z1qDfYR$&DM5NBay6k?I*5SA7emKMGb_m6@Cl8=fM{w+|KNJQvTP+(&TmsB(577!2< z5O@aj5=z`CGZ=!;mjL+*vV0NLa4{8BR#IaIUBUo82+^9++)PYV+{^?tu?@Z!S&z|N z4wS$37(r`g)j*5Yu|^F)tBMRLlx0*{`4!pOxi}@cMMStIITJu$;gaIymX_w`lq!aM z3CTnM{&BFesj!2tZ&hVw<A`7vX6KgV;1;nK<>HWRkn!}C=H`&(mhqF}mgLBW`VJId z2N)r1?WDjbQid=vFv3y|J7@<P(h)VLf~=qxGkER|+Is?dPF!7&(bU|;474LxlwE|) z9J$SB4<6qY6JczCxVeLi51tnP{bpokbYx<3WMpL&VPw+KU}98|VPdjlVFHu$ki<p6 zDjD6t?l$1#LQ0z-85wPvSeR@X8AX{`8C6smS()597+IJuGchwl=>lX)QLuW*xHTlL z3NnE5TpU9>IIW_^EBfvfjJtrrr<;K4R7e9(n^8?4G&Bqn0e3V&V?3a=Y$hfyCJfuI zgpwf_urh<sN<twH>VxK#^?60unE9AFShyIunFYC7#QAtY!aN+zLd-k@Jj{IjTAa-F zN$gx~4X7E`3p8L0UYlY7XT9L$<K*RLW8>#!<T8@y6X4|I<S^sl<mAxg;S^+N6i;Gr zVB-Rh1H!@ubdnX8v@Q;bVaRk8q~l_2BnID$h2lA%1Xe!Q1P%_+$vO()lXYCNIQL`% zD{BI~2zU@KK;$*VC6F;-m|H+6yI^&TxEQFJqz^uG7ZmE?a|^8*!A)0j$R%s+h|&X| z`Z~DyY;0^;*x8lYnN?YNg_+rv+1XiOB0QYzoT?C^6iCWN4c~;gSau#ZS1u_<HXgRP zST<fZQ2`ziS2iB@N^ly5x*gmf;$To=Fae!NqtB=Ynong1&vQc#-9^e?;M=oR)z#Q! zL0f@DMZ`coBt}rl%Ei`jfRlX#a^Bg%&dFGvz%Jt8Ai|!&%IF3vvKuZauyZybWsVL` zWpKzlIC67vB(U;<`<{sWt_<4qjW4%@7Gi>imc<oK!RM!e39LE!qp+;3x{S<|{|p+S z!*bJExR^Dt=2ij7Qh*Nz8qCZZ8O+QYkn{$gL*!%t&3l5@B0)N_rsj}Z19YGwXzdex zSrmA1A6)9f(;Rr@wg8m!8bAR8N=yxWT+ljVCOE|{05|F!W`N3$AJ7niq|6S`xFe$n zpC&Bbfy%}GjG+B491KznS`1bU6$}iFu*}O2ah3?e85o5GIEFz@dq^u*7+x`hrl3JL zWq}&MCTgGs9E7)$Ggd;}kDPR|mKhVks|Rpx6vq^23<rBy0u&<PX<<eWK19Lc04_d2 z#J}I5X&z<?EStx1NkI0-K*ErjfrmkkL65<X!H*#hwBJkA7#?p#geABX1rPdya<?fX zBuHUx98vT}52M0?1Cc}q80h*mSgFg&{s2_8K49lO;BXyZxF8DDf8e!-pb%o-0dCxb z2+;TxXdY-k;{nEl42IyDD^P+#+S3Obm;z0ELaPqY7?nOF<Vs~DGt_j=sBnUd4}7<E zFDsLXB@-8uvKz>mQDP7_S{erzQjnF8EE+{Dtgf7VoH~W9EN+k;u}DcAlJDSY+zxO0 z1|2&MI`J7)(5ivUDM;|clew{x7`9aEz{+d^o&p5>0M5jg?xq<qv!bd3=>_cv0PQ^k zyOWiHhe3ov4ZQ9)fq}tX&BWM9gq@Au+{|2!T?EunXJ<1v7KF@HKzi4pd3n%24|C87 zLf~8E#M#&lK@2(2fhM5ly&R(vX!#l<MS^(jV&Y=v+gO;`K<DGg3yJ1%v2k*-NX-T1 zlntQL;shU)EFU8)BQrCzs2CFqGZVYGkgR|h4+}3VudFb?j);J=6dxm-fIm1T1~Rd6 z@(2lXbFduXR#7)smtf;z;ZJ5{=iugNmiQ0ZG0J#>i?4%=Z;g-&qbRosHy;-}7q5t* zw3z~*fS3R)tE?g`KQkwnfG8XPZE))R!N|tQ#K_Lf$Ov6K0uCc~@ai4VZ9JgDTbt1o z;V)1k1ogY&O;&Lcb~bg?Ri;K_hj{t;d8IFdoxK3L#4*(n*Wh4hl?OFX0~Iwk3Q7yw zE(5y+rTmy}D#*oT2~u=|m0brk{sfOdK?WxVFVNWpm^~Xv@eZ2cWdt=bA?*v$fG)c8 zKqqT}x~ib7$U#2DUa`A!v$D#`v9fZr@`7kyRuJDBw&OoQT2+W&QI3_jzyP#r@FceS zeI*YIAB&tED?}^IC~J^<(Bz`3w2&N!q8y7l=*pdG&>9~a58yiAlEI0=9dsKh_^4tw zJZ(a8a5V?cRp8@xK+yxvV#1(PwZZKLP<aWN@fJ5XGr0wB5Q^b!4ze{MHxwFpL>91v zV>7{ZkxQ8ZhbX&@iwwI28yi0t6J|4zjWMWRAE^nU!OLg~Zd=@TUF;&Hzz)_d3M%73 z^N5i0T@ZXe0=BjpBKDAuJA|i5P;Ct_zZ@OG)iYAP><e}^xI}|2T4MCzI|pqcvP0U7 z-@)k*($+$>Ye2jA;e8m)R4)o1_lMWWu<8Xg>H=%qpd|bRJ`r|v@F*^rFb8cdf^<Ys z5`G(KSlC<*R5*a91-R7A*+Iu4BbBp)xKh73c!?JuBdC7U2lXG6!3PXLx!?ggQ895d zP)`EX+7=fR2c6?-ZeoT#^;=4?u`{YMva_hMurqRVGchtUi!rjZsIss#sxq;&NwTnu zFfj^qGP1GCvam7AFfp<6vu9(=1bLinD_B@rS@g7dxH!3^LCh6woUE+z(wshOAYL&) zGq<3eD+_BIBnyDX*I{Ww3R`aqyMq^Cvs?mVBsly)>p(!`h?=0aMXKQAc|<`2wx%ZP zYWhqlqv!C!dovSuMKjQTTO-gcskt~40|%!tw;*WU6SuI`1x{(spfFZmRxwuAuy`4n zQkejmdz^Lu4luFCTXRYaaavn1Zs6sSlTZ`@Ex-~`l#pw<zzNdA3cCL$EM6u+rc_4e z9;dV&J4lC+G)M<1Ux32^y#H7dG{*qB6A;ojM4nqfcOK(+Vx07xI5$8KiC_fXr|HfR z&XCSf&d|;<onbk{cF?|lc-jXYu>neDpz;P>_#hpY3YsGYr8ZemMF|?G#b|h;H^k8R z=sPt?9l=Fc&-j7^JShDSa_2h-D5pV07$LWVfkgi0fz{w77zNl_Pe5xY1gik2dawjz zg9u2A2!!P0`nQ3L55k6!kV5R=8IU6I*%RPFGBg(WHk1UA5)TjoW`V`f)FJeO*4+R9 zzlRAlh7KCY1TE{4X9OL6CT0dc<6e#N1*l|X-^mrgBej#AkMRJX2>Z@+JRBAry!?!8 zJK06}KxaLI*1Lnu5MTh^5}CkI%rKFGK~;%ORE(WX9K7_>Ox;8cbkH40L=H6MscvE> z#|Ywq+CgUKV0rLrPGm7Pb2Bw_C3ZeW&^AnCIVO-CM7JK3xE>>DeW$31n6V*vmJ)of zq`Dd(6XHk*6FVl*fsS&Fc8rV+T%bF_SlRg5d70&z__*ctr5O2`xP=9o_!;F4lo+|0 zK$p$1G4e3l&Eyba6Bc3Qf{Ji6GRm?srHM&!a<d9@3J9q>s4=oJ@rv>>vNJLog`Q#( z6y|1P<>TVwV`S7(Ewnd{b5mvH<znRGleO^GGKrOA6%k-L#mAMM$;rvX#gSLU#TO)_ zC++FRCBVYX>EkP^z^EYZ;m#$%#Kg(Q?(M5(Bg)3aAz>+RX$}!%v$4}t<`8yeWfBzO zVq#%bu~V_M;1Xcs<FK(Y3^uIf;${)#5?ANs=i_1&;}*#^v0-FXbB{C<<>Ke#lu-Au zlxJi#)Z%337GYre|L^|+@O}~t21n3&oS?A)Gd<91O30yP;NS)AA+cr@1s!<|nL-CG zoKiP67G(piy#;X)i%2)E;Id-nkyVxBVpo<B;$`6w5@zP*=M&*o;Fs3~A33inuffQ@ zf{laY-wnt@PsU|3O#F;OilXAmLYy)pN}R&%9GnV#yev%89HxrjLD}wyq6vpIBR`W2 zBL`~<D~CR0fhlCH9dyq3K?WVrZ4IEic|b`FG>HhRbwLMggC-n6i>~EBhcAN4Z_v=X zy4no^F*Y?;RzWUVF%CX8Q&m0@c5!||@L`JlypsG1$~>ZsD|mRBxXiSaWCUfzc!Wiz zRn??Jxp^5mBox#%!G|oG=%~rb3d$)6fzE*d?NfxELBq>n2pavDWCVp5Xx+T9q9EiP z8dDQ+^$IHFpj}LO;RrffR8?6JdP}8@2<Rl421d|rRiK^;Ge&=fF#x1O1~M1SctGY~ z4C8?l*g7@LKmIvD?p*`d7yth;FfchVCNL;~PQYbUVh3$OX9G<`i`j#YEP$LY1RggA zg%x~n6r;PHt+84-mk5)jB$EhdgqpFfoq?gInu4f^h^T^^rXlD&7-4>X#so!aEhlzv zuDm=hZgwXvX+=>%IVl-QDJf|wIUy0~u0RG(@ZDyhast$6b!PBn2x0)OdQNA^Wnf?g zuet&)2Ld@k9kjt38cwEy;5(y08Ci_o3^HL1DpXiS&CE?fHMO{!KBK6ZxR|)QsF}E_ z8fd{5==wHwcCfrE8@s3(Xz`Y)DTt*mDrRoV#(0@uj?da&LW*BTf=5Kq&IEFAEU%J; zm^>pRtD-VY#^B#2eQ7>EPO)<$%EDYCG6It|6xBc{YJu6x>Pi}n1?tK|!aQQk3R<dp zYRW2%wd_Jdp9MKJ*_gRFm|4Z+K*^c0i9>=<LXnYCPL!9MhmD1kgPB#uO_0T%k%gIq zpM{&<g_(_uS;mc--GzHH3lEzM6FVnM2oH+~Gye=hHV<ZY7EZ=)HxV`umOdA5R(Ce& z92;nDpdsiaDR`KHdZFrSp#4MQ;5|j4k`XD)%)zS-*x4B41VwlxWcZ~dloeSS8Rf+! zlz6$pVPIkhld-qvljC<~jAdo!;ACOr;pP>UV`Nm6;FI9^R|oP_oH#2p2NyG&Ca2(M zAt81J2B!ai{_kfz!g!ED7Sb*;g>LIWtQrwzXM>)ft_pIBF{r9x+*%5%SGg{L4CN^0 z<4~7oG?G^5_;=iZ&4JB8ch7XN!@$J!J>n)x%EnoK99#<)aB=v7_o_qo|AF=yg3eI` zr7ck118Tj27tli(C`aV6gXVicYvIL}mDIr5lMQ}u0%HVZN69G&6^1xA?=@uk>5B%? z3?PUQgDg`0!6(88M+Xpx=-q%wPXcXk%Yf(w%};_BvM_?q)dHQ_uMC=yg!P$01uOWh zW6-n+q}UK;yl}u_0eC$Mh%Dh`2Vcl~fSr@k!2z-d2fTxK1!%|yJVXgH9&}f!3u6Ox zjUYRCH5T}0SJ0A6RnR&#ZAOU2=5~xsww@evg8vHm_}D=V#tD3U|3Vl&WJDH#EOzD9 znN!0rD8U0FEDS_sK(@Xr6O#hl10ukFF$J~yAVxw)E#ZEF=3-C-5L7y&4e4Y0&w~@R zNY(@7A2<`kuc*?T>>ix#;JN|s9?+fiC?nq{YN#QJY9uIL{)6^<FJ#aKjij4{?x=?^ zbO&W3&}=Pq-y1vVB2>r#GDJq$%pA1&a)yL-my|fj;T<4Cx`~mK)q|Cju}K=l1&LX* zGBdGhCMyI6g1e$%g0Ym9jg9qRH<$w^7zG3c1qEvuK=lhKZSMrHmzD+J^#R&aq%N+e z&ImfET3lUBTwNTr(a~HTbO^mFXvj|tv<3}CfQLB{10Dz#NCGs)hPY7^3ybj)iwK{w z*<41xe|pRi7BANg=MpsyZZOGc%*4jb&BP=l!^FhR%*G@u24OJEh|4lD@i4J7$;dDx zt6-MFRKeK7E5gFZIM>wVUj>Y{@+OzNg^d@OG-PJxW@2ZOm0@BB-9IQR4l_~=#(-Fg zPX#DRfbs(aV<Q6}c+I@J8fcf92xx1CnTfhGDwpx=0WL`)AxX}I+&upwOs)gmJU17B zR=_~kzAWI9<3i&yfW~9*GlAB%+JbhkGU_oZfwm@r+98lZd{FuUU1I>*sj3G)&k;O< z#16it8YHc5ZpUZ>ItCuGFKj=Xj+G8uK&z^{niS~LUSVE;WgZDpA$0)-HeL=UR%IDC zX#s9Q=JF_ZPGMfNq*;6d0(?^Hg^;p~F<wShRhB){)gwqsm6M%U*g!~Im6M%~N0Nn! zo0mmORFp?hR=Ex&lNrV#tsukB$1epb$w2J}So+(+zym&SR1a-$HKG&+Et*#YH5$P_ zVuK$xfV7EvGi2-2ZbK78PF_Y<1z8(e1y)907RY`o<n47QAVRD7`I&h*WdsETgrqrn zW<j*W^900Aa-jJoVU#_5pdmZZjFK{pAr6iTHa*Zb93wH%=5HidL657L46$;%puUN| zAiE$to0yH0jTjrdAhNqwK%4*}Z;6PBiEyw8vP;RxNU;mDfWiy3=Y0?O3<q%r70{_n zps9H9b`cR+r^+1CltFee@}^VJR&_JfO{a*{3$Pvn%(yX)Q;6@M0-q4)c7XtX6%HBs zpgi!gykVfTd8J96uaPR?k`xw}<T^D+gvW-PQ$Wf?!#SNx+Y4-3n3whk@LUA0vwWGc zNI=HUV0$igL8s55u1PjzS2q_|Qx|7fH)mrv7iU*D6cGoVQzm9)u5Ql=S^{V;&W^l5 z*+9x(P)Xg6&)b{NPF-2RUP_H4R8>ySK~7FJltb-@oS&Z@(t2fQF{=<}GhulxEqP%x z<`63}Cle)ZUm-3oAzyAK6P6eYix|)t^8fz~3``A-i439)ppjK?@VOJ<!+qiV?d(9? z%)ny~1nM++0~*n&c<}E4I99Y3t;J%*tQEnWe_z>IO~Czs6Htd8&fEdn2W<nP7!$z3 zFDWiA31)0zWk*#GHY5i!?HK@}K<gC$L-u;|GdM7~V7W6MK41iz!GQIha9<Q}!m4a) z%!qs+{Ioz8J{BGp7Bv|WJ`p|>6%IA21yX8^pv&M@Wfb)PGb~sDuFk*&V`v}?3uwe! z%}!LFc_FB&r=VhT0Cc0qKhS0GGO{|%%-Ra~rJWkUZCjAr4}!<y!0tpGqy<~QDvmfs z3$%z0G6IJ*G{^W8v|yLDkd+;Lp<yj#0WYgYARDJNXE7(I9)w~G)L;Wi33Jr2{}f|q z2WbGW46fl21}zX~18Lwa=9K2t;{;P|ff}rkwZpaSA`Ia6=K&_rnPZUqngtoeL3IqH zxU#ykxT3kTF}t#;vA7tUKBFQto07UcqcJ<18soF5R96Gnf3Msc{9RL1s~K4t-5Di1 z8Ce*et5a_?vN9f600Ihsn3$RV|2xFQ<n-r16Emod!oa|&z!<;)I{z85w#^*5IGF%h z(5|Qsy4=POL@)~IgV((~fbX&a6OgqjkbNF(44Mq442}#Q3=GDg&a0`is<N3WsO8Mg z#tzwfAu0mfaRHe+Fi}$k6|vB+m@(wk3Gh@SGq}aCtRT$0-~i(REiMxkISDaoX)y^o z6%#HU&~@{S57;?{|E&dGi_OEq%_ksP5hf|X$IZbbC@vnkfLHhcukeBeA|fg#g8V8f z{DLMbqQb(wkTH2)VR0pK7FGcvRaGGYRu*w3@qY(|c^klWFX*h30}Rp(@(c{HRo|dO z7t{m<c?xu_0w`^pvn#4Ie&Z76|L4Ll%ykWZHISgi9D{!^3>e$ErA0)fxvw37-34^u zfdTjqEJpB|VT_C*JMh|o-E=GlL+*IK&*Z?kh{2s9m?0i?N{b#d=sZWzIw#N+zC0tS z8>|c>%s~riA-iGp8P)ih_!&Wm4#+WrX89rKcUpsnJ8T(ESRteQplz?>;KE7?ba<SR zIFp?&tC)hSpa2^i6Dt!B8=sIoi@K(!wYitMwWg*zi@XpY8xIpJ6C0a=psIoxt1gqg zsl2M56Em|4GqaPPs=TTEzivi35miw+6%S=bLpf1Z5jjQ{We=4VTZLqWnAt#v^0Toq zv9JjU&f<}h;+Z8Vzy_Y+1ewdmEF>$mm4m}g-bCJ3M_paVR^CM3jUz}{T2@q*mseF( zR$5q-mlsrzg2uNY=bZC^SMwq#Z*fu3jv9SN@VS@rjG(#_G^zqQb{f3UR2g(VGpP3g z8Fn@Stu(i01g$0m&2E6&S)h&XNRsx9pdO%^EvQMYti*=YI*8@u=U^9RV`pY(W#MJz z;AG=u7G`2(VPxUs=H=k$;AP?9WRntC;Ng<y7h>e);bUXdXJzAL=VD`JV`YnC=VWK) zV`JuE<&b3Kw2tHxV&_C|PF!c_V&Pz6<zZoBWa4KNVdrG$W@V9NW)Wj$;S~_!;b0dO zmSf{o5a;6+XBXvWV`pX(VC3ZHWMyOJWM^UJWMpAv<zeS!7v&7H;)K<)AHe&5k{OE7 zT57_4jF1pgHZ=n+$~FNl5&_Qx*)f`ni<#Lng7!^=LKd`{4Mb}*f_5s&GeTEBfi}5< zq+nSd6r7?W=AaY5K^LytGm43dup@;WKL-aRBNLOLm?$H!2q(L|GCw01hZ4W3vIGY| z505Mh3qLb63o|nZ6Ei0Z6Bi3JKNAZp8#5CpJEuGcJ2#&I3oA1_CyO&LCm*LLC#w(( zi!cituPEwC*0b0-*jYGO^jW33<VAQDIQdxwg?Je`d5o1z`FU74Ik}k_Wm))G_?g+5 zS(w?FIhdHZSXkv*IG8xtn7Nn*nAzA_SvYu^Kugwy{g^nU+4$JxSee<h^tt&_!_$$W z7%e>6*^~`I;R6a1$d(!<&_Wx2MmB9mHPAA5V<T}$T?CZ{?GX@%hATMnYBPdTp)DgM z^gsy^l9(Zh5wfXJ6e&RcSUK5QS(%wxSvlF+xLCxQIGBZ5+3lFkV$9^_jhR`vIYE+4 zjBJdvSUFkQ`Po=`x%tFcxY${EnAy~snIxE)d03g)7@1g@8Ce*a*;tr(SdmlX2M$(N zW;SM4R(4KyPEK7GMrL7FL4LCsGcGk|P9`=ME<a{g7G|byc2-VSR$eY<HdY=cW-c}+ z0Y)Z4Mpj-XW<F*XUS?(<7Ip>(&j0`aL;9_(415eC3{niB(>@Ft%t80qgL_8&j3VO3 zpuQKIsvaY#6U)cQZfwS?EGEKkY-Yl0Vy?_4B5tfE4q7>3&ThwOuFR$?#|Y~72J#qK z8E|tj?_y@&#mwj`7Hq1_f50?YEQgOVs)(7ni1S|ua}g(J5wiw2NTDED>fZ*iIz|PT zkPw#y1qB5M1qBCVZvms2J^^pzm>NYpMFj^1c|}D#MI|SY8nAE-SOo*5t~|iFkntb` zs9kT!U<bMb(cBn383ihZp=(yaMT?rM2phXHZ2Jd0xZY70<6~5pV-yEn(*b6IT9n9~ zga_a&gTXC9FpJT_ROha)sRii7mo0q4JY1~Y;=C*ZHZTS^pRfZG8?^O+7cx=AD=d81 zJXS^~wg7YpO{y>-w;(gGI2Q{Sk3O6w;)`H{%3IJpJ7|x<L55U@e1=NU`YG^9OE3a- zlnH19KUNwn2q!>wt*J2xih>rqgVxnSXZTE&O_fcJ!As%6Z3GiF#PlEH1UJSH0-Wq% z#K#G`g${-V*f}AHlRW^upgI72Vmy@1&dK@jCAgVs0UkU`C}8IdVCMv#mBJ1=HXfNQ z;A9WrWG~=kZ(!$K(2$VOumIA$fUv>B4xj-WhX(Lk3<CzH|9=@6n3@?|7$EBzRn^#8 z`549ILCdX0#Mwcc35?A28O=;UXRV5vtJ*QDv9jqivO^B1FjZ&D`}a~@{NGC+4h|jz zK}G>SDMn5X3l2_3DLw%v;UnVWjN&{T9RHpxDo*4B&qwevs)w<&hp`9?v+#>baVl{Y zv-9w<7jr3ciSyZTaD=i53(w=?(kX=8<WvZXLr|T0f$;$2W(EoHy(FO1W<bpdkZVAd zp}MLX=+<sA&{k~F&=ss9XTD(rFE1+(t27^@E@%Vfze~K*tURo|jCGLn5<n*<@G*wC zxUfj@%JJ~9Rxk^432+HASFrN%$ni-0yN)=Ofr0V=-~WFZ8yTBHyD)VbAr{JmmMSB= zgfZ{mSsqDNJ~mF?Teo>Q+4xu`c^Hj3xVYZ+vvKmu@<_6#rLjr!$ntQq^|J_YDsc*c z{Kw0{04`HN{eEHaDIn?$+6?*(#tfkIuw59u8G_KtXlC$IdC;<d&`7E}V#F7+9Y9<e zm4=U5fVV(E<c!3Si{RB9yuun9!n_<DkRbpM0|NsC2ROk28AC7@=H<}P;NTTTE?xgs z2=j6Xa6nG6ml77<tRbM00L2av(;9e%H3T$-K@A|}aTf^&6;Lk-WsHN}%m}n9o=r(z z%|soEEvy6@JW?|g7c(+969Zq1hg5?wvx>6u^Mi<qAOg(Fm$w%aXJzE&)Sscx$;-$p zE@qGH>_$#bQD-q!;@^7-Q86h_9%k_HjFgzD1bF|#3C16cpfk4=8H^a58NwJC7(qoJ zsM-V1MJTD6nt%??1$U^yx2LMJse?vi*q~=vs+rm`Dx(Wv@etz)5g9Ee4kj%b5k-9t zJ1^Miya;!vurd=PFEb~v8V?sU50i2)8b29}UmawG#m$+S&BcXf6!aANgfyXp_s+%! z%p96>>?~}8Vq$`<%<OWSsJwqKFhT*cHVahmfzqffgC1yp6(!!p(fvn^hmm5C7tKe+ z_;3f*M{PyU6Ex-6nOTuNgv7(<A>?!@$6yE=ML_WnyB(uEXjBb!s3K@jp&p|+W(qV1 zU)ZPyx!chkv_%2Ah5e9KijSR%MM6%HMTC)!*-e0NF=jNSxiPabim(U@@JX;RvGYl> zvhpFP(ha=4EKD4{f~?Z~Zp<u<LM$>b(Ie-i5F-n-8^1I&lOQiUBMT3&0BHV}?LX+A zS<rkWH-k8XDT50`Fhd%s{|FkV1x=E&iGhoFP<ApmQv=-$XKrS$$H>PdCT?bKCJxGC za*TFNYU*t2c8p@8@{C51{jKKg`ix4DEv}&MoSHZvqmsIsnYkS(w8X_g=T0%sau?*2 z)#4N2W@P(!(Or;FP7};#G#2OOVPa+1&&}{x<&u_AMCI;h<mLtq8L@!67mO}2CKr=9 zBRBUAaR(bw4kiwrY;hJLRslvv8BxXnE<rv`IX(doR@Q$HplnYTRz?OU0e(RRNog)s z|BPIHc2-obA{z^6kcpd{QJjg3t=ohZ%8F)VVO15E;b#?M5zp4)U}P6lkh2p5mCwj& zMVdhi)Y3yuE1<on{EVRCSA9k`@U|s+M(`{JXv`B!x<N|!iUF+L%q)tEEX>@j0c>+2 z6dOb^0W-NEr;U9EEUY}N8XBxTtSko1e2P$-86x}uJ)NNDVO0hT(E3VLe}K0eF@ci2 zIA~OdolOnA8w5*HWe&Qq6tq7bq5^cNkUWzdXdu%Wnknxn^D}WV@hh`3GfS~Ca<ItD zv$8X?Nij3e!}L|X6dNNuD_jLDTr0A77qTj_uqd!HaxzOQv#>D>2r{v;C`&SP{`-aQ z(_g3x7-1SgaS6&7Czu);cQSzT1*kj^0qtBeXJZH5HwGH!S7TLES7QS$x-bH5K{JzQ z)MHZOV`PV93Vud#yIoz4tP(yAkr|lS1w2^U7{SSQ0+Wo01e<G4U5+c81SnJRNH8lD zcN8lyOXQGVE*=1z$tU2+!YU2Qf~;UmrA1_zSnX1+tWs@RKp7%Pg4xo=#gbX#1ZwGz z%EMN4g6AprGk##)!63|F!r%;Qoj_V((2gQ_aiJ|EGxXj{$dQwXnp;$a9daci%K5co zBCz}ezSxbQkx`Xf6nq2^BeN*Cu&Sw=gL9E{qz9)K8@x_u)8h1qbS_GTWEZS?$di?u zn}eO5gPWU`(_TtlRoa2E!nw%VzfM|2L{C};R@bXY>xqa+*ZDgaIbVY09~{{Vl!hSt zTR{HjV9*4QsDs)BkgfgDm0%)b;yAqx9o$tj2Os1n#s(izX9u?`Q3DY+W1oe~^VOU@ zYTR6G{EW=18mi2U{F5LD_xhp*9wP^2?rQ^n&p+hk<m6=I;1rUO5aQ%eR5MXiGf_*& z2t!C&0!af3;1j*wAT3nTcsp*7g9cVXQ&;fIIkEW|R5)UdX6Qr~lrli~;12vgdjV;R zLdbS3K7#lO*2V#yFJlh6cMH7I3UarlIA~P`sI4sy9=B(M#~?eX76sLqe2maW0<;ip zD{?*ov2g__j~WjrBAR|8TBUZ7b}G`e4)i8FHKfSk;0%H{N+IPPx_d#b7zUK`TpSeE zpfHEe7h);NLBS1mE$W0}EM_^4TpXj!82)E~xCyD@%m7|H2|mvW_1tp?bF{Sw#sv6~ z+t@(8ZzJ#uA42LAz$XfTh{+%Vd<q<b^=~s4L4@=I@J(Adi32!gz!G3T|A(9b#m@k` zPX}_=JM?rxgdad>rGUDspdoHh7Z#llIjM$t^$0(My^BU5yo@FR<}xDr89Nhnasw>X zu&V&g-~4|7y;sASfdO<<2I!D6Q$Z8(mGcn)fd*O->!m=k2{~i}#4=GsJtw9Bv>OvV z?g1vC2TMSf2SS$r$+&Q`2LymdGr(KV;7kV4*|i6lm>3T*n1R>fF{pyhbT$Q@!3Q0( z1TEH40}bqe$GPA<(9zrA8)%Kdy9HR4)YU)-$(V!sp`aCo>}>EmPZ|F*3vfAzD@w4j zh_J9B(GFY!?9A+G(mo+R(rN6>|Ncuz2nq7?3JOUWz!(yc-gGY~*9Fj2Q5)zu<aHp{ zIuNT3#Ja#GB+Q;CD=#mb$1a>A$So`=D9kMgqmk}$0Iki~&*aE>m_Z11zMCp|z7W)a z;b&CW0}W4zvw{}*gNN}zV+BTL=4PPNLZHV0ihveyfaVSuh1vMnawV9h#cjm6xkYWo zrI^JT`#B^zV+F;_Kw<31Bf`Wa%)dZOLEjw2XG|3nn$E*`jE${G(p_AbRg8y6j8$0N zUGe}2hZi3wA16N#pSYA7_$+U}N=`Wj$oXsgnG_ihFxWGsGB7ZTi$Ug^)xjh1;$n!k z&2}Ki>w|`yL8Hf@o;zq;8S*uE;&O~cdW^}4jg>`#jg^B<kcE{`2t0@;F3Zd$A&4Xa zx~d)_!>Gz3&KV&fS^zpo&x>1#iCLI$y1Kl!DTvP)C@R>`#mH#D&&bZq%EZDZ$il<S z3A@T#RYFjb6{pNzoM8i*gL7nP1f44aKGBF^lrfnSj-Co!7J|-Bc>rG1qsG9%YHVr( zI`|xV<{x<C3Dmhm%B%8>Vxo)<2lyAWiShi~#Kos5{)~%@S&T)1vqoB#k83g?PXV_= ziHtZSGZzmZmw>pU0H-l0x2iM;7azMjJ0E!b40O-fLC~reMo`uR6$aR7b<o;((4ZQq zY=j<0$T(9_f<r=49EKG*6{T6ZYS~4(j|oUKOS6hII!FkHZxED_5ZHJfMBZ2rBH!rn zvI;Bmt>NMl6(|%HpC%x|zzAN)d64k{gDzwhKZY})_OtVWkKjjk#0)`k4sj)M4jBy@ zK35JERRMNyc^+1F2R0$@4}4<G3XI|}#03>V*;nBLXjS8dO+o_vD#H6DIc0eZIJpJ+ zI#^f(1jWJY7eM>14l-ynSc66$#6e4aL91s#{SR|H(8MQb$uAg#N-T9gMi2roWI!DA z4k^3f2Uf@M@(9R_$O=n}@Ultpt>NTlWM*Y%=VoSCQRYw+<k#YpQkD|o<2nFZo^XJR z?+WD1YT>Dztn8eUf-*cD>T>eD{5+teSolPEL?i?>)Y<rWxP%yaQ-q|Y8RvqxID-f! z*a6m{H9`NG7#SO3{tz}+1D)9cok#=U9S2&&491{INpn3$5K;!UNmz{$8@xf=VZrws zg4)o!WV?t_g_oQl0PT@tU;z6=2Yl)Z=uB8`Mlm*aFwzE%Z-CbzgJ%~(8)ePR&5VuY z7}>!`=CeWyF;FD}Dy$Gki8C=s3#ITf3UTr9v8ihaNQm%=@PR^?ho4toPMw2CMo^NI zot1N{ko3O<#7MIYBwl_9O7Us&3#xG_tFSY3voo_YGxBn-;gewF6_FH{6_FR<;gu4C z#U<Y+Sd<{8EvR3FLBVV$20DEVx(Xe9N)luu9qcXeq#k%zoEhZEbV$MiM+zuHKo^^I zkmDT20~7=Rc-_)p@O}<ZUNvMe1)a943YsDZyIr4A%?>nAAqZ-a%Q6~6kDG?mAYoQz zQDbu`W<0>Cz%0ghL4>D)i&a{YQvsBdk??;84vq*gx{$!i(!nPvuz^oen3Y$DQ3RBu zPiTNh4G9nlA`%lo0J6vE0TUzRLXhhiK}`%%j1mRf@&Hv|paKtcB?D+)A5_eO8npI| zW~NLGGU~D%XjqWHK!A_y0~a5M0SBYKh^&l=Jcv-x2ayI~b_crwh~p%x#+%G9$_~og z%)&w?LL#7kDyWRV&&0^M1XR|Uo0u7c4$S~H0^qc|9wT&|6I9@WiW=}VuaepgVhS=2 zg5@D3eD*UjGahCzW?%p>^e_b#5n}R;#xUC4juABEWDKQ2vyRZp2Q=@@&8^5|tIi^% zAj6`}WdNp4_zhTO6$DvyxaC=76ogn*m|3J)B?WE@^R@CYHuErYTL!Eakl_##n0X#d zJv<~J$RR7Ru2DdULq=dGH@6laZzR7kZymQHX#VT}UZ!To!whPmF>TN}0&GfZwxE_1 z_~ubixPb07Ff#?u?12drHP8hvpcWKlrHUA+{R%G5%<UK%U(C?5(Q@Py4B%#G3t*Sx zPVbab6W|pFZ3E~6^V5X{6#2!K#CM1*25_@8GFZrIX~|WobIJ<p>$6F5cXP9|*{Deg z^E!YF1ywMgOO#Wn4wUvH6vbuq*rdSi?fpy*jExK`pwq5EBe#t5jNl<!CC~xHkk+j{ zBWPhIs1CDbG*MRtr9SZHaL~A<nI8De7g_MG9#FFoTGyWCkP>6&P-A9f;brAxi4v9) z=FVVeX5?gTVds=$jN%oJV&P-uWnpAi<6st(;;@wBWN%^RWMpQ~<PyHc#UdcZZOj7N z$j_ED1#|@aEkWLPP98QkPWA$ArO(2=Q*zi?d0BW^jJc%*Sh#$Zv<uid+1PkE+j#|V z@d|_2oc#s+OALGiyDoznLnvtdJ$Ok1cv&-eAR1I&sjER+jDqkr#jN1?QHFPXS=B+8 zADP)RDl73bg4U{mmV$t{wSrd8s4;F1<K;}^6;a|1VCCgxWR;r4!eY(|x`-JxJIcq& z`FADgc4jDtaraa?acd1Gv7iuMPIIAX5mP}S9(hg$RxW7{PEKaV299WMMR6uBFBUFd zR*5oZmV@S;4i9*R85tfxc6ccW^FDxHXeeAIBf_k0BjU|z{vb$@O;mu3g-4BrlbM^F zTME49>jC(DR&UUG-;CfEJD5;n6J=M1vOwvNO%yys3+i1#4t@i3K}X*jLs^it3)TWU zewba^+?a7EJ0m-rH$Njgn<fjpKoTD#JDUb88zX-J3p?o8UvF`L7IsD=)ND!?PiExO zVC4*A<z!<CgOF@28mycRU=kt#A;AI-Y;6tTe!#!~u>P3`Xl0nW8R(F2b<kpFen!xe zb@0Th7^ur7X3c2ME&}S+h=Xp-RTmcnodIud$Ee1xF0RgQ&Tg)5t}bpaZq6>w&iElu zi<zCDBTk8llZTT@DUO4momnf7lY^Nf$(w_Vhb4!FTY$~Qg-w8)C5MxTiPbxagPCKQ z36r8ClZlGHsfezCfUbzC{#Stv4t^FEn`}0AcD8IA78ZVv3;{-70T$C>PBDo>4sQ0y zNOo?HLJ1}=0rp^176INI9y2X1Gad~|4kKA(V_72(Nl^I<UO3I<0N$%2%b*52KUo!i z5;&w^tZoE4{|nUa=4UiBW`$L^&<lc1)R;g!Qoy&kg6?uR5a3S)wZFgch_NN|3oveg zbR=^j)Pw|3qZ35fuubIR=H{Bn2JI+9hM>S}Pwz8+U|hfeS^*4R0RbuzK%)$zp!3u~ zl@X|K2r7ZatQkQ&{a~d7XpBOe(bQNJZLCI{5wydP@dGF5SO-pawKHm<z9IO~Mpacf z6J3}Q)VYUr>!JO6(6NvIknZVhKoVzkfUW_%&&0sE5WMfliGkoK5;JIPEj#=mM93M@ z2=C}Is;e!4Y)<DD7CtNhDyl%-ZZ~TSS0->*&?2EA0kY<T$<@Moftr+ql$tOv=*~6} z0p>C?s3?`WfY)LaSR`0jBv?S$E@et8kh%}#<^`ahIcOIu$a+wP0xgiiVa*O&Qe^~c zD}x3pVDSMNfB@h9!N}lN>dM8z$K<Fh0jl36#5D!LD=7pt#UTQ^j!b+UT&|^z3tUUx z3^)Z?*mdpsxHfR{2?;Pkc6Kre2!RFcb=g@2I1SuNT|wy+u{H)YR^`LM06j1p<V=tg zO~pYK8+hptI7t}e3R5<1Mu;j<QUd7#h3)}iUQmEa3-AhW03QOtD=f^LfEK)xf@v}$ z;Pkys)f5!WA9#gTr46K2g?SaAbOEn0V*)6c!8^bNAi=y$P!ha=+*EZLEUbV1f561X zxP(Crd@d&&c>DvjO$Briq7i6_LyhsAw2PCZh=`<<i?qCipv*xoDXxPuf)b34;yhwf zA|g^^JmOM5zOu);xK7CU`hfTRJz!#CT*|-;YC)-jt4?-h@SQ=*pe6v+5>RVJOxzfJ zz89D<wqsOdbTDKUVX>5p+s4Yzwk@}XS<=N-QbtD7)kTt7LWoZ^O@&32)yj}XgjKp+ zluzhPGAC!f$1XOuUDudFn-pYaK_s(;qq9^P7iUuvC#SiTvm<C-EvW1SojIt^paZ&r zO;r)J7(tH_o`FGy2_yzZl|g52DY3~ji<!$YiYtqQmn^{KjTJ$Mqnep88ZZj*3frXH zg6_Lvhukl};es|RhXw~Hqr!qPt_FP<uG-sTpat=~|8{{gHKUsVw}>d4gD|gcx{U)k zBZCPCD>fdE9EW1wJ)AE3-D0e)++blAHW3!kVIGk5rpS1Zftf*&L7IU<RNP$M9MsQd z7YD7>v}aUTRR`4s;^t;*Day{49Bj<I#tFvST%zpCYZ<fb1+)c@uUy5?q@bYeyoz0v zOWQcXn3tKALu+lFJwFrws+GqDv_bU?1H*sNo{XIgx(xOV44@qu%1WSBp`cU%+Fc9Y z?4Yc~2AaeK^-Dor9eGC3q5N{7c|PzB4&clw%P1~p2A<W_4p8J^<ltr#W;b#$3N<tg zHBxbuG-l`Ep2*HA!fvD#Vdz}syp@ZMi9-{-nbVO&1T>&8E5$C#!Oh0Vs$m$K5^5+V zVazVV$v%;rgWX6`#kp`24~GaF<Ur02V>Zy;BuwDF8lXNk4=98LA>|h2oO@YD$f_$_ z(9FHMnrmrKsVjmoPftopXH<~Vk&@Ce0TC8?V764A20tGk=-_wISRrW4X90sE^2zUz zvK?IVfXAF53pYWlV9h~Y7RVqFc*X-1RiLUEycG|0&bAuk3qGzA(Ebh&5K+R#$Fhfo zgJlm(NC@~S%}72a-ha%D%#zGpEU#HOSYCr}sApzu@8{xUXDt9}DPU#i<LYN)nZ?XJ zi^bfv8zkoG#m#+@nTti9h4~;e^Fd}7c@{2EdBp)b3yH~r5p<UuXx`0}A(Ek%p_gGU zsC@{p&OpoJkxoJ;bnXUtNffBX59$~hiHV}0n_&*>4a2+m$}pA4JKsfxL26(!Sj=Ej zXb|Q-z$@GU+9bfFz|JZBuNb@_5{+1Z#s_l+SeT?(m_(RZq?lNcm=nN~Xapm49zd8E zbR8lmJ7WQ_@V_;nFa;lz5dmj`Pp?H2YeKgIY}>y>a7_s9kbQ@c^VoSHBYLpaPbPYd z@ZdlkU<3(VS#UQUv}jTkT&qD7uNL@_vji{+CLm1415o*%QrCYSpmR7QB0%H^5CLIA z&dGy}E6Or}ZX1J~*V4_vz$yw^gDD8I8YQ*_jg7?6ce%2II}VUa3{-fEgWEaArY36W zvsLT}Mc_J89WjLgHv>5>f=pvP@XvvrRfLZ#0(=Hi1o-@u9&qr3h_xVs6-4A}u(CU_ zTZ5QjekCG)xv(Vy799~0R(8-O8Xlmgfd?PgzZvX|>Ihwsqg}xK26onv5LWgCFb7QV zz+?6cYT5!vya*Gh{R+x+2f*j?fbRcrW(a0TW+-N8X6RvHV1(?@PzP1^;1j5o*dXT^ z;1CywR!5)^fi2O5ZsGtHz~E$oo*N1A;kVi|&ST_c6JY0JWR?<@W`(h(MWoYVY&7xB z5Ap>?wLuLN#s+Cs;eV6Cy9vQW0+<97*qQ$pK+e==<OALLDrYPxrh%JL7R;+E4Z8nV zdI7KS4p7=HAWWQ4H3MB3%)kH%e@F0mwJn1$Lo7osIQ%DrS0RFmZdiSe++asa@6blQ zAS);zfW`tLWtFKY8Xx@-PSEKAuxJ4d42gpV)I`ChA-<9h)K_Nz3!ab@05{k^fSUl| zqumAmJ>XzfW92|28W4PAxGaZ7fQ17>0>NTL>KQ=q#01X)27v8hY|w?9Zv|(y!CAQo zgBn1W8TP_u5URmrE0FPd&|T%A)t<=VY%C%s&c`SUt}j8eXW#%<Hc?ZzV`Nv-V>C4e zU1*m9%8sCej`+A-Oif)tJkV*X5Z($I1DOjl28<2hmI9b?&K45Nb_O%S1eouu?yRQf ztPUEV{tt7HKImQs_(EsgPB8^F!%ftfl|hS4%$3zljYSwUa5;#Jk1uo=uaS)r?=J2O zj0X@dKz9*@|F1zsN9T^5k`lD71#=tdv<}!EO+>g1(zL<rDz6JN1{MY~L^#Po%~@UD z8GKFxJgi8FIZzP_IhhI)MW_)*Fs2}Vz5R@!^_IS%yHZiM7=jBtGjTDbGfYKAz!i)L z<fZ^IP@@!*j@Z=I;MWU+Zly6cGGk<5XH^zemXuTyRRNXQ@}df0S_OOw4K5i*Q2oNn zAt}kh3NGv!Ie26t2Xz$~fCX^LLDrRk&LKL$z|SDfpaSl_Dk2~3ZK4LcD;QFcn3%yw z+fWK?F(Y$hBQa6NfPW7_!xD_3PTm#J39sxR!W^<nsf(9$3n#C-46Cq~FsqC@cm)7x z00VsS9O!UJPCm{C$Reb-9NgR-!V*dx97+<PxdHHbJD|3pFoO((9@ve_qROb}6`H8A z!j`~*iZk%c8pK`VVr<N?irkn<V8Ve3U`K+S`tJ|KZRNW-xR}_KL^*`DggHc&*qFFf z!D~Dk7#k82U^nA{F49>5ao_`9c40{l4oP8lUd9FBzAmWE3c3pwc8-!TgEE6LgENB< z=p0{29tIs(!U&#(H!~GfBveLYl-V%fv4iFe;XVU(X_y55DTv50ImrCIBO?MDJNkQo zF@cqN0;uZ2L2Q8dI~c{!9J@HU7#GNh2ndMC{3`$ll7R=v5b$1k#9_V&)(l8+oPh)e z2M;f(`~o!?!Q)^Op!sc0MkO`a$`DaO5jIBHxEHgcDY&BnCKxaLgQo?Ve?8)gih7EQ z?u-o)%v{VJ7R+4C9x@`}WF-PhVvHUjX+6b%KMEq4LGsKVpzsH+-G%gdK<CtJf%Y4~ z#^69Mux13Ev8F0$0zS$Bc2<olY@ruBxH}IfL=_ny$cX%F00n`7z9QoW7>BVzMCRWC z84Vd34VeUxvot!GxtJsVEl_~mF~}eyb3su*fRO>D^FN4u0v@`MSz^J=tkJ>D98mx& zN5TC*N5%#QQP3W1P(K({u|p>qpv@&!V{v76Wp!mHi!9hMU={}?djBQ;39VKrP^dmL zA2jqgpNGE@WM3nHLxY0@XrI^r|Nn0@9%Nh!9zWA(um_C+f^N<Notgux-$AQ&#G$vg zfouj9TFhvCb2L8aLPn4}dqy)8PIgA{upejuVFT!rc24&H4D6hoGZDg^%aO$O64*sR zXN@!FXn=+kKtv}eJBR`i{}~YM1_U!7bRhcy&~fab0R_<f7G&;C5_H;|Dd@UVXww@O zli-sVZ+A=bbc0*od|aS&f+ZPcB3$_RI3kXKih1Z>AOSwm5Ct@?Le5H10*%-*DzU49 z)&+@xjyyIOGlpEJ4L%|cJkQO>&ZelOuBHy26BZL;W4s>d<`$^utEcCy2WS0TBB!k_ zCnX~)EG#O+C?X{-24YCbX=^hk`1^xTK7djW)J)XG1f-+{#2}=ai5kdF{}K1zfzHB5 z-Zjh)D+ExAU(ggEqWK0ci5Xz~Nt}zE1tlewBqcrBS;2ie9&k^<ft8(yl^uDFUmi%2 zlH@;7ts?>InXpQLm?`Y6kTwznXdMOUTq*{0@Z2Jbg`h+QDv3aX!mtc3A|k@U!^2U) z!2_meaPaViKu(g9n83qf0Ft``r42ZE7*}Y4FIZ)O)a&;dwHOyND1*j+g^fWYq~MiI z;H_WQjG!JJWDW!(b5_Ytla-T^ospAc0UHOHR<hH8ip*!_WMpIFQebpoXH#J30TcfY zfGIEmsm~8EDKH*n$YEemH8(R=S2hQAbd;6Yz{{3E7oN+3W(nEV#l_6b%|PqKOhAMh zKO-}E8kkvK4SWn8_}Ef$(99J(Xo&}C{T1lS4-<1U(B5~@#bL^9qGIxl%5sdL({jui zA6T<8>T7bFYq79$a4~bq$*?i9Ns6#>n5r^KGqEwTvWRH0vula4aIwmBv$C=B$gy(4 zgjku_n53DsEk#Ax7};dxxR|*(SXs0zxHR<{8Ck3~<m-KT1KSi6tfiy`H4Q`LnE5#* zrIf5iS@~JT?G#i^*&T(L7@1hu6ge4rnK%{MI9Ws)6<AnUSpGc_W#I$~^D%NNvVnGW z3psMS=t>y~vGTKu*eFR!a_}+Bh8SuJ@(PJsyN0twfC^t$@E(*#=$UCQ41Nqz;9euB z$N=@7L9J?a@S+OnV4DbN4K1kmsIJGz2wG497Z(Q&ki$loLAOY2Gm48@Gpef@D}!iA zW0!G{pfGs+Ku$_n6wFY(ml<W>=M`DVt-u({2^Qk#lUD&V^j<Qt29}D*MwW>@+EFGf zC&<Oe$H>j2A}R-}-sBW5g?LrP>_BWM1&gDC7V4TUJUooNY}{ZmJ3%>45hpc>TEp;n zU1A^zE@Z&@6*49v&QQ(J%)o$NzknuV)lAIIR6%oECi;wK=4_%Opqu2x#6j1;fcI2@ zj_+18lV>zHF%lIwHxmQxF9Dx^#ipdsC=Oac54sXwT@17r8#E>-CJVZG55xj5LWY`b zY9b6d&O(v#03Xl4U7F_Rnv8DT{9H^-T>p-Wf(|y2=2zg75RepR;$~!GVd4;CW)|WA z9iqU>!OF+X!pI2{;ACWGX5?iOmK2cSQs9?nVr63%WmRQnVP}%ywDq&)lwe|KVOIV7 z?=hc{FfXHQ6r&FhpSkA01DfW1JOZ3tJSLp1PsKpGq!a}Ch2(?<#YE&;6xkVBnE06) z*%(>C7Ui?B6mT)JF!Ql6vN3{o%`<W;v&f5x2@1;z@e3+QfgCF)#K)w-#Lmhjs%B`Y zCd$Oh&ZNM^_wSLAj1Xk)?OrBF#$(_*PM5)&!IL2zd@?_1gkF|W)l3|8*&{Eg&X;Et z1C0jTGODVvgZ8e2QXA-43Q=<uo;c`Y9?)V9&|W@Mbrc?x)*CswH(Wf7oZ{k)oIL;T z{d>p9{Yg~x6F1+#cYF)j0$A8Ucmi7j3mXV;U}Fhj1K|m5ED3BN%$VcP#pTZ|$YmJ7 z&K_XMB`6*Alv|M5jD^LFS&;i_5K9FclNci_iy#{#h!SUGl7jH0m{?gfSXddw7(t5~ z8O4~`ELd2Xq#!&gCN@xWi{U?Hd`_7`hk*ff%eu0XIy)Qm9s>A)rindhm8Bh{ksPBk z<S;=cHYNuBKm$Pm33hH(J}wP#nr2_bsUMgSsJ{Wy&S4ZV2-Ihm=Fs5c109pe<;TUo zNLt1qP+va~(zam$?ezqm%h>>q3s8H*pCO(hpP`<ipJ6`3dWQWB=fUUpptb{{wKuGQ zFsG0Yifzd7HKgbu)jV|lss!8vX>>yxWHSF^z}+k`fi&nwkoj)|SPPgSNipb}(ifom z`31@-A4(&c2R^jON+c_qD(V=R|Ns8KpNX6C07E)MAwx9-1L&X^a81h3XbP%6!N<da z80>8FjC_nDpn^@FQ50HL>M^nNF@X+01=XYC?9gS{_Kc#S9k`$gFm+S#feI#S%Agas zz=z40o2jvjfKG$8XOv@PHvujE;AhlhWL&_?&CbXysix$k!^X@ZB`+t*%EE4K&B4MZ zDJL(*!NRWNtEeW)%*esbs&2$3$R%n4+M6e<&&tKeC(O&JDIhE*ETGBAE6m5o#i}n0 z+I(ax&m~|qLx7i!mzRTwzk!dJosW-|kDsxQnTdm&RYPCHP0UP0g`HE7-`LiepPQ52 z)Rdi*8_W^pWLFU}6LZth*I?!1U}6^aiqeskaAaj-))G-<<P+iJ;gpf%6asZ9g*fG8 zIC=O)_!t#Mw3wM#ZB^9mivt8?Ie6661UaPz1f)3y)zo-6WTE|I*j^SH25V4jA7yU{ zY!i~H9ix$$xCooL2pf32ALy(p(D{jA+Du#ybP+AP93$lZ1UAr4X0URkT_ahXylT9h zpk2vo%1k^ln(}PSY=WYqf~>3{l8u>7UQ<{=K-dw!c^RY(xs`bbdD||_B7SKmMm{DE z4k=D{CT=EnPDxI7W?n`{X#q|Vb~cfDD2gHHSDaw{1Kx|K!(hq~!jJ;KdmB9c3thtt zD(LkY!FyE2#ErzwOd;EOAT4^(ZdTCHCRz}H)(3%ZkU$Co#C{*pzHWBLuWa%H9Ly{- zg2E!K;*1<D!9s%U8(CR7`HT$tIJgC&n`)d*^d)9P7HDK6!iJFr6gccG>~i415rA(D z;$!FJR_E5^=VxW&6cA=&RuBqiVPO<wRTO09m**Ad7m{Gs(StSQMMLI8mUhg+A80G# zJG$67IXS`m_h4y5l)(gZKPzZ`E~r;QC{e)FA*BZB?yPErS5cDzbngRl{6lwU5%9w# zh)+R%deFLK(AiQ;8O#{$!84h9OrTY|ki)UT$5KKThJl)eV#en1MIhilnz1>k#c0Q9 zst$9$xVo7+lLM2YsT@~;v!cJ2sHB#pl8Fv@5r~8Y=)?|oPH{mWA0Z|dFBUEqR(8-0 z6(W3mZW`i(&*Thb^u+l&S$V~j^&L$jCA~nsSu-|9LlAAv$!*Bk$-%_QdIPfkZl))v zAY_d$69ah9h6Z@#3bX?Pav(Xhr?18eS!n|rAJS%oTmdPnYzi4Pf{Yh|TF;E%UUPH5 zW?|!G2OT}e_Rmd#os;nZC%b?{f<pph!9N9%BS2D|j44qpEKy7xtl(8Ss;nGI3pm+9 z7r1~9V_N{~ZiCf=FII(I{NBizz`)6%z@Wik1Uhp`RS`C3!wz1!3cigEv?veEvu89` z2lZjh&CFRr*HepuhIQ0ID`6q^FLboinh|vD8fc0ibiBPdXn6)`J&d`TxtKV(%my9u zU<O*K2KJr7zZak$I-^7-Gp9HkJCh|drvfLlB@;WFI14)?r;Qv73%43KGb`hbe=it8 zYhm;p*jWWw*&RT&U=gP%7dta23m+>JGbaxZ9}5!`2NM^okf5LtD;E<76B7#`j{-M0 zD?7UaALwp$zVDn|Y%4i9R<d!ivMA&T3aF{^h+buM;N$xDfs5~n0LV-Mu<@c|T-+>7 z%pA;IEWEs&oJ?FSd@Rh&+<bi8%*-r&EL=<+T*}H|l?)7^KF|TC2F8O7p!>=l8Ne(0 z%t6g`Pzh@eBEb7|MC6%Zf>1uFInSyLUhAv|8rB3gieRaO88%*}sIDle_#bl5j*1H8 z${s6L)>)vdd#qSlt>7|@VxJg=_-uJa-m`P6Nii`<sd1Xih=2yzm>3-XH83{pf*fI} zq5@jy!NOwA!pEY|1EH-EQmgm{MY%cI1wdyTg3=mzMDX7R2hjE4&~y#*t2l!qXq-=# zDCaX35OA6T9!o*vd$6)hh5@wZ9d!>RJGg!W?PdoDD`=Jm<)jK$K2XsC>e++$sUekQ z+Dyu7NT+V_&PU@jDzIwUsR*dpX|OVKu`}|qb0HUM$HAv+ARR)1bU;OnvX!Eul`=aw zH)O0G=6=xG0#=ZHw2*}!CVHUdD4@mBu)WcsHPgsv3*dA;zH<e><8$~TyxX7akerTE zkH|29ZmGr@_Mkx;(3W|~z^XV-XX`_EF|$E;H77%A&M){}d<?W%8FYXh7b7Pp8>bnh zqL_qmDRLSS1>dEI>Q49s24bJAvJyN=u=6n?r3%zNvZ*N1&#GaEoCIb-90DQ#eSpL` zyRwxctPb1D#K?G<ftNuJG|ngt-sJ{ra_}><iGUU^D}l~e0G+}H8eV0GTyqCGcnu`L z^OBqUB@cvT{9?6;M}lXeHI&Z-<}R{=av629SXr~!WY{27oRlXktEUv3EGvl5Dq98R z!{otxwf2J7+311V>7a#_+Mwl&pabne7rcwGDJy|Dk+8`zf)D71Typ{%lTc$)Vi9JQ z@YfG8i7;VgEL{nzfQq9$j8z3$xg{jIc*GQ?wG1u%>}*^F7`Jh8XzH6pn6U9Mg>dq5 zYAIT1YVb&MaZ3s+N~?-Wva#vvObAo;2Cu{0!^FaPguwu`TMB&ZHoKC#8u%0-kVC}9 zMA_Kc<e1FO%#Fmw%)y6|fUaFpGX;&dvGOsogNjkmDalNrqdM3aUkYjo@QU#&=t}CS z>4k|1GBL3*F>-KnDq$D?_e<8nfSrkxm4%I+k<;8u3AC+>ait(9CkJTEgh@~&OixWm zQdfajj8{NQ3A?ZbyMco&D?1Z6yONhVCnGyAHz*yToo!{#3aJM5L8qyJwm*PQ;{uiZ ztgwky=n%X)qb?u#Fe_fzAy>TrE^+blGFC&!vnO!z@x20{WW_7N;^M+8!6Sz_;%YB= zYXO*mj;;P>Y=)d|r3yN!8`)-YsFN6TZ^4eV`gfLti;IKN7;@BA6#AJ~EYQQQK>h=r zo3)?Ok?|mCH5+6Fr5b4EfuJ(zj6m>)DN)dZ91%vV3=R>F3^qP4hY(g~3pO^6BV2qA zTznP<92^Dg!hDPZEEcT%d|dx_@Ck$5{QvKNxVenr`64z@Ctnb>(jRhanJH*#vI#D8 z89kr||N8(jn9&1dFdKC3An2SUAqHs%MFw@y+D}mOhnLCX>}u-fV(hTyBeOUgySf>( zxtKV+8Y}3SG&V-0q4sPCK^c3gSsE4=0Tvc3>}3QUL`1+sj8b3@a*0s^7WoBI8DPQ4 z2Uhm)8CVda2ekh4|Ns4riHrvscp20{vsvPx62h7hv>MNrQCVFCylGHe)EJcX%|TgG zj}erC&6U`|+Xq3bjg3KV`vg`YPC+|CP9fF>3F4xBe1hx?*ai9cM8ypP6E)TKHYkFw zrI9m{W9Q^#<KmFw<CEgxQv0B2Eg>KwBhJVuE+ZizVXbHos4poIsHCq5%I9(>a-4je zpnbl-{_kR9V?4&70XiFmQ4X}xgpW~=3Dl_qyAL!T2Wjqr`uE`58^p!T!5dQeK$o^a z8iSx~mB4*b@Qx4Aku0FzKWJ^OyR3+atc$FlpS6gHtQxy8BO@m>JFh6CmW`;hs3<EB zBaavhH!JsaIX^#H7m!*mZdPs<F&;)9R#8!BQ5!8rQC@atPDVyyb~RZM5k_{HLTf)i zSv7VJE@>%Fc0N&SZIEJ7Rt^p!9#IxXW{wt+Ss;7mI60UZSwwk+I5=2EL6&M;i}JB^ zN=b8Zu&c@X`7wa@^FCl~WLy9$u|Ovnh=T6gWK%XZw_^mgZ9$_Ra29MPnjO*yuxAuS zut160$jsbCjj_alm0dzyT~)W8g_V=75ki8OS(<|c3?U>tYd~r>3;O|f76TOpL4o;l zjO;9$Z0wA(a&VS0s445p1C`*GgR>5@vKOSVg07-xfXrJnFfL%=XOLh}1mEK81scC+ zh4%xDz>R!H*whX?1_OP#OcZVS44scU;X6lATwF<9To8p~<VRdPhK;2FJsLpd-vSXC z#te`FO5zD9REGk{`ye73M6iMg1PfGVvHk!1A98-Q41+U69zz{NAHzJ*jZD^zrqCn5 zU`Lr68_6<?XfrCAvYUXb9a9rf)u_*?2HGJC8r}j`PwX&NYNq0#Q-q9-Otcw6#UJPb zRa16lC0j-lYetYspwopw2}M~+T}>ET(!(ZW(I;oo`OG~0j4aHY%xoN-qU;<zJp4R7 z&OD5uqxsl4Sy?$aI5^q(q=b0*dDsPb8P$1sTv*vzSlPJP+4%)nIanB3*x1-vd3bqv zta#W2`S^KwB}4=`CNP2)Yq0+V&+Ou0Gn(*da4~}n;NTEp;|by6;Nh7o%FoHo%ErvW z!okMQ&LPanEh50n&c)8m!^zFYI*E&ujaiU`iJgO;gO!nqhm)I|g@a9mMVLp3hmVt; z(FZZ%y8tT_bhZcs!~ge842%=O_lH1knf78}5Qa1`jl?ihBl_eudibI96Cgv~29N=5 z5eVgjBM{h;#6fF9Kzdt1goexl2=xZ5PmufvIdA;~69eM}lreJ#(2j3>v-Ic=hn!Om zD^o<oK(mUVA_vkF$K*F~BDr1w$s<U@oRyGcLqWwn78auqY~r4CC02hjnt;zV1rrOv zB$z;Ag6s4@|MxJlG9G2%XJB9i9YYFUo?&J#Y^KM^xc6UzIH#24231||{TzZSjC=NT z>#A;$l;RX;Tp*+(2+|K<6QlvUHwsjkLdP9o{btaLDl_mRNbslyWPi;HEmuv@!XFWE z#EBSaS!?rgDRA*=x-lNma?^B|5jg-_N^w9$#$8TZOD+I3BoUzLrU{t?XFR}ofI*T$ z5puFD__8_pIxjS9MHweZXu1WtX-a_11KU<JLCZ$#frqA>rly;w2f`)~(4J6GSp-_+ zaG&8l;{pb81_pCMNUVy2wq}9qeNe4$qNcn8Tnp%N@v(=oi?D~W^Kqpy>VZnRf0y_` ze2_37cut#vf$;#NKG-aH@dDbO4C-^pGlF*5wPEU<fnhv&J|29w57;bKc;ggw^cSdi z0vaJ@6J@mecM0SSMm>ZxUSJvq^5X-B_lyfc?h+P+)Oe8A8^|1x+r*3`F!V7>VVVx! zJGqa^k?|0NA!uK$D)^9pcJQte(C!7$Q3Qr;BA|83pq84LIkTC$Fr-zX5AMsDu&diK zsvAOz5o1F=Ms{`ZUVl*$CQEHE??^2TQ#KI}UJhnfZB1nr33hhbNb_1=fd%Rs`-DXP zz@)U?B-nQe3$gM^sz^!-32BK4OGv5OsowC^*5UHtU}oiF72&WFl~>f_mf|+@6y78( z_>`4}k)N0I-)y+7qb9dhy0oN?w2-8viX;~^n+&I_ovJZtEe|-IgZ2P%G6*v`GWakA zFhEvdfVXKus$EfIBQtSDXo3OtAgmd|Aq$@{F-EXJ<D@2P%+TstRM1#m+0^)f0_f;v z##~`u5X0b~0Qe{uPId!M_F!fi4H@QRU^1AUlXJR^NP>vW0fU5uh6lpD3wVVU7Vru` z5DsPp?}k%g=LGFW;NSqIdJYa44Oy?N04iTa{(X3002#}NtTkt6;AaqL0G)!%AZ*X5 z&&bax&JLwn`5EOI?HScUGZO5KY~WmA&S+)=n)Z1hpr9ZiprFtoZE7klZEDI`4Q1$r za!GOio5INnq8W2IXBveWGbVu53J4^C)k;fmh0@<cIYDZrxI#HO8FM(Ll8wTR!E^e@ z!TbC{d*$32KqoqZ=8VBT7|>D|NT@4;V*s?cfgQ|b2OVUKD161(MZgCOg3kFcH35k$ zFPXv0F3O+5FUrms4xw3Ru(B^<WtS9l6qjTNaTpmjRBWxPt!-4)*;zred;$ETqWl4@ z>^v|AyE;3oiLSJSgtV>+D8mU!ae7#rDagqwm|1&pDR4vDbfB?F&{;tT86+4C7@Qg0 zL1)<-gAX|Z-7*LpRtDcRz|Lk4&eWheH}LXQkdy5hO-<Aw;>Jc|;)b9!2J!^EvZ=8u zs8<KNS_7=jcmcl<mjJ7=3a2nHBLlB6r;0JF0GCkVe+FJ*A$cbb9yV?cE>SKPCwU>^ z&;Jha3MWXaFdyI*7S?re__sh!>VYsXSd@#6hebt(tqnB&)y5{H!otJG1=?81C#lcQ z$;{5j&S)UXC(J9HAk3?vDA@+tW#gbArIrBFaR53G&HyT-IT+L!5ci6RE3+wqu5^Rs z4EPKIbPGoUWPQIkw~(3;w}=cMmjEA^0~enF7oQB{0m#z)2^<_UA|2pM=lQrg__#Vm zK*z3v$9wmI$4)@KM|B1x1{+9SB#IpKdW`ViBP*zy5)rd!G*wd<2Q4HM1)m0E&MpY; zDKIK1St;qtYOwOLYRKv;St&u*ZvA`A$<4>n#m7EXj9*defRrNtm#!X8Za&5XN>)m$ zF4_icYzEpcs!CQ$D<G@53|IuXesORy+rN|)J0Pf`y3OI6s)pck`+pBCATkUr|NsAo zxm}Jy6Lew&sNaj`a*`eV?-H>ty#a9u9w&n9T*w{SVxap_#6c4Vpk-Cy6%3&3?Li}r zO6H(5OF;dRHBy>J0^-p9vf=_p&g@dWkV|CD)T}%tRSXp%8)Ov>RU|zUxIXBEZ<B$x zC1Cb2;IIXY;aE)t)#Kp3kBkb82N*aR#6T(0Tok;I)Raw07-cmdyq^vkX)6$8;b9RI zl;cO-d800)!Oq2QrpC(7-aJ>4l~r*rGb7UdH$ECNpdvucjGc=ea@PZ>Oa<NTq6)gj zl@YWj6k5_FH&j5iHuNY6TSjGbWzd`xXnF@!z{1)wjK8%x`DTI(?iHX`5Mv`Br#9=q z2VfD07b_fQg7~c3oP3Oppw(2_I-ry7IoSpHxB|HNICWU~{$+w%kOd1A6hJ%{9Zs+e z17uv|9{9c(P6l33J3x{Vlqm$+`51-81=U%>*#WeglaB+G%nuwmz?cPM@G*M*TLwzi zj13kn0{_l9Fg7?a+W!M_xEP~2!21S4_X6(&-viCVpu)gl&d11Z$R=iP2dYNEM{TKt z=LSGNHL_<EXBRg&Gl^3-WMdTIF;7+ZZeX;L@|G4=<x%9$WML6!<z)>QPHI>xJx@K= zoJW9>%~0LDVUM)5s0t5H1}iU%I4f(o2uR)=9`8(yj0eD{S@?r?Dk_1N1;W;pLe2{} z2QAkEm88tDK_$?TfjlF-nmYK5Ay9J!wChuj3AFyy)I=Swfic9NgN;?tKv@fxK*S6M znYq~6PePJ8qccQaR*{*X87w5H$f9AVs_vvNW+=eI#m>%nfS*;+Pz-!`lDd<+ma>5W z3p=YnEBn6(klfG!k{4oDlml@=#;8~;p(q6Tlj;9&1_s6ljG+vWJ4)5nK$kBg(iv#` zE$EJF(D6w~JLW_|k!)t7&dLV$IO81)R(=Wa;ujfCSs5=ca}g19FE1HcP8qPE1V5_< z3(LQ^65xz_(wvQrLjrO;god0nSgE;)h_svrL`;H%jSaLU+ff|kb|>&U>)-!xGpaJ~ zXD|Sr*ki7yZVD~)LB|__t~vmx1u<(z$OJ5?F)9k0r<7x|V^U*>IrAH`4dyIdEZ805 z0deLvSxzai>m~WvESQ-s*!U#DTqz_UHp86=D&rU!7#kTIA#P+;2B#Q!B89I<Mx-53 z=GBMZc4MLjPehC*;K&!`W8q?!VPWPMLP{k<d@P(SGAt~7LV~RP>@UGdL!S{8*Ft<O zEHW&dEPO&pi2^Lh%mq@;#>N3k9S6Wcst*cNPyztE7c>jR0Cg`$3I}g+L3djKl9K|_ zT@r}ofB*puds+Vf{eOUoneiY47lSB+5~y?&hHgZZXEX!lAbv(M&|Y$O<PugKwCh`+ z5xm+(UCj)3boB#QRzA*rE>5<5eMbL$PCiywd;NSi&R^g~Z3&>2ZMtflj67`m`fNOm zoNBDB>?RV-e9RIi?5vEo#T*=h9P_n%IXH^BwC8gOE&wl<0~2#qP1re^B_)|T*-cbg zc^NtM+1d3u7(wgfSQ!|=<4g+}c)|PORT(@P7{nC?k*3YfjYXAN1wlJ)K!fCrpi8yE z8(LYx3;4hUXg40#ZOI9Y4hk|N3q)iT5*iv99iV$S9KgF01Q->-EqMiYPVkOB18@;; zz|N__m;i2(8z?9kfHo^ICdmBTBO?OZy)XeoF~|r|*^P96g(!m@`V1yCXS2ai{Y9Ei zgDw|=QpjWB&{ZLj*)!C6QY8i*(5esAdeg+r9K7-av=~gE5xj0mNe#5?2i!tuGY8$$ zfT;w@DUXE&7#W47gc%tHgw#yb9)K=E<^mC7QfkOj$d0@rB*($X$^>d_GO;pp$O%cQ zsZ9f2iCmy2g((HfCa80f^5FYSkW(jOHNP_K_GWch03taS8en@5fUau>5mJzeQe?-i zfP~!vkb4>+Z18#n1_mZj*&@my$so(1$l%Jr0BY7lh8g7;McCLy6;1URP0T=-B7$xb z0b%gQZP368{CqX^^VUoinHq$7{~q8K<`WX)V`|_N68e|t;Lrd@{}e!%-869Wal){} z-v&loWl+E=vr5WIvL+{ksEP&<_;)~>jf;y-8k0<5;DPpi4>ExIzM#9fjTu0DS;85T z8S)vb8FqquW^CY{=4z0Wf{jg0u(He{Nd=s0lyR`tk;K6l9)SuDQ4uj*>cRV&5w#vD zZ$gG_p#2QY@hEuhqr@f(%3%(ikqYdb4xBr|B!unBD-4Q6;b0PJCS74($e}t1Kqn6< zuya~y8~`8l0ojzZ;edt(IOBs#g93189i3DV=H-@=l$7BHMHMCsNg9cXP0s>eVX(~` zgn1zrX;>hi9AcpX76sLP{|_*N&IkeRlVeadQBw!?Ji!|QKx65k9unlB98k}c544n9 z9I2)TRo9@=40x!T+A*p_miH;CF)Bz)u&c2`kGo<K6n7IBWMO1y(O_d|WL0CAkhV93 zY^(%V&Jd=dJ+u|{LD5o#O+lZPgN;R)Uqpmon1zjlRbPQk#8T1NkJ|)E3z%ub?Pm<B zQyCaI!D$w>H<X`2nZcaFn<1W|n4z6vHp6<zNy(sXGLYS9MxaA*VT-g)jlnq%M1X1l zaA{Anm@4SZCN<O>%0aaXC}|>B8^nr%HUol3OCN~HB(N|Eu`p?AF|i1N&ZZ#D{wGI* zVvymC6F^IpWWf7DW&C)USlF0Y3|N@hSdxff3xHKJK~yFX#{rempmS38gYP=F1>Ic9 zst#_sK!?xS)y+(m)seP4A$D4Uw*AO5LN37;6K90X<g+WAnwhIBv#IMb>NARp$T1=% zS5QhdQDdr_Cjwq;$SuXHqZt~?%ErbDB`pFhHnZ}wh_EoRGWkLn?=6G`jF@=XHEp;| z)ZMf#K>aDu^bA*(niixgmy!?>;8RclpI-nWH7qPNbh}uXSS8tbS^il<7)(k`Z0d}R zES4IY?7IFYY)W7^fC)&O?*9SsJhKTyETq>W3))1WuEzxGr$7S(i*K|UP3^!+K*c2@ zfni}mf=fh<F+hNwQ{6#L!Bh@xJF>6XEwtP;IG1Z!AcqQs4VooqWZ+~sP_<QLVOFzN z)B**C2AWrt*bKdO4A?mrSZE*x2qIV(Xjp*9j3M!@4r+m6#5c&ppwT>vVis#u3J4Jq zl?%v-K4>`#S|`8*I@i)1lGH%H5D|kOX~M@yd}MBbtY0`mD5erDG{DYXpkV=8UrJQe zfX7xrdsPlFC^CS~%V#i0>LEfLj%X4?yuhjqS=yj1Y9t3rmY~)PXeTfDFf27yc<~QW zy?_TiDa8Y-!@%=Syu!kawv6IZCJ`pe)=Em&%Ktuy$Uqj+%KU4&0NV5gA{xLaSO^I7 zKHwEbVm3%QshC8VI4D`WSu4qifRdev3?xZ`(-^o60k?^NFoM>R$UsH_;p<13L1i!G z{6Emhu`=><k>jAT8%7Q=iFCi!zX#yy4=@3aTi99qpgV!l_U1F98$SUw84jHo|F;8d zG{k}h$lKWe{Q#Q|CKy2L7eMnn3?D#qaftaHNNg}J_y;})j}b(E5atC<6o3e5U*G^E z=+0=+x&hEU9P~UU(3m)A{080ugdQaVtM^111z^>RObetjn~a#@M?D$fp8}*gn*;WX z1&D-&Il^vmKNPeN7{g{vo3I-XGL!xP|NsBN?PWy<Lk2SjYX%PnU(l)+RcMj~EoA|( zVKziGLm;698Yl<Z4;noK`JB<zNK91S)L4W~TnToGrU)OSxUz|vv8j@psWD@M04p;e zI~zYUBNGP`J2QBTy#q5V>t9f_T9}s!bO*!V!_uk_4ys?lXM2Iq`TFLdDlM(*upok& zm4%Cmor#Z$iOC$C5Wxg=C|#JB(ScX^-v$R&=?4zdst4puY)s_9go3o{0##{fnSY<D zk#Qk|I`~W{=>AkT&}sx|EP@WIFbA#q1MPh_HZlYI3)Vkj$~CpuG?A;3Gto5EW@F_Q z=Hf&b_;(7@C}Qjq<6@I%<K$%$;`?`)OMnHzWwhlI_;(9bx(8T5=EPxc(q%Aauwifl z-R2FxJQ{RxDFL^!g3fAD7Bw{z6IU~bxl<gp3fSBfd^;-<ZvMMVT7^|vTuPNu=@Z2D z@5SX=<V3_380Dl0c*KjHNlfm6fr=Ef55z|@Y|O&a%$t~%C78iulc4*kAnA*rL4-k) zL5V>fyk8GJPa~xrHAs6Fk#3k0u%r*DOCf24u>mrlf|dw2K-^>iO#q<zp$Fjj=VySN zG*rvLz=-Y=a5EHC#DIqMKwBn3`O8ENv}DlK#LOIi^bqLeVSYw7aLXNZ<TbcU4$btS zJ>gi-domSa106&Fk_Rn$5JmCYKWA`)7UW}QWaeSvVV7ZLXJygl6Ot6dA%2gQ8Ftpv z0#@b#P_Ygs{(+AWV-#R!Wn3W4izv(f-2i7f0Y+{nc4lrCb`CCfMqXA4ejzE4T2^K( z68s=TA-do!upMAA2Jm^tkTB(BkObcr<;f7tz+fl>K01hqGe1<3DhkljEA%r!K=C8X z2-+tCDIoqfFdl%;)F!ZVA_CxF11mEl_>_)+psI~|1IW1>m|2+&{w`qWWNP39RgR1f z;9eMbD@X)L0oWJdFa)y@K4XmF1aBV!m64FS4bXfv=)4$h@V-tqP=^;(@_`yp%%Hop zL6ZsW%!=xut_&#ofaVK92gDR0tu6{<<nU$TWAWu+lxJiJ;9zxQ<p2}lPAZsSjOO9+ zVP*B<;Q4nn7bFWlF$%mM;s1Wd7vQxR46LBztku{-ZEjGK1l=71J;H%e+B!ppm4n09 z!ra+hpPiXQT*9@?)wRsQNSBSDiCaQE#nvoNidBG#1$_1#bp8-L#>l~-1-d^Ga<_`H zICz>9)ZG*j6K8`SwyX{+SYYGHjNf=z1vy1H&P<Pk?86aoHWLAD6?nkT#mFjR<_v04 zFgEk5aIiA5%~SyU&L&Y*S^;z)u7b2^q77IGx|a{sJ_XGkNievA_B2B$EKLQKS<OsM zK-biOI>(|S;;?nX){KY&8guZ8*P!!<;G;K?8j2CL9D<D<GFk$@3qTljBTxgAvuuQ` zHV22cYlJLg^FQ!hDyYhJ;Nj%w;o;}x0p05gs`UR}W@Y8!;^P2~lksu!fP{D%9U5fh zoh`IYxwuTVEu7_L6u^h(g6b|_2M<wUUTzK!ZeC$g4~Pg@lF@;gnS+Z@KtxPIK}<w| zkBbAGuHbdA4?{FVA*dC_u8wHhfsTrX_Cv(18O4>=Kr>sQNk3~wBXM>$c0ML{HqfCR zW}y8<pergt$9BORVXzZCz){D?sK^Go#T9%^1L%Nh(BvCCA0rc^n22H!XsSz>n_W$e zoezA}n3KpXeo;wvb8bF9E(-+#9uZMR3q?joB^zZOSMCrlenv)F8D3EdC2Ln3C1tCB zv5NZoifn9}?0kHIoEnTdN=9Nv%)G38Y|PAt92`mpOibF04D9CMHAfs;YCPahkb*E5 zH=hWfqzD@$qmrefvaPb27C)DYlenmmv8<AnvXYIfmGT9BCw)e59tkliCIck}@gO#4 zW=>{a)<7mBC3$T~p4i9e!gz#16tp@?9DF*w8fXLyyz5$=QH+gIFUx|NjopxqkJ&Vw zLrjc=QI><Vyn~&OS&W&Dy)lxLi-&O?4=2aJ+Z^KH^P@p?iAO*u)G(TWZ;BQbRD&K? zZOf=C3S*lxF-QsgJHW*w$Pex~Ffzax3j~B&;+X}x|NUlBHB(iUe&xLr!hp6v9xy60 zE?@wUA~Qm^X@ahlgC=)dM$j2+(E5*20X$`8ZwMZ5F|?lmsqq*Ez!PEW#(vy0Kn=qg z+<vn9;K?G;npOtTp7cfr5e8ZCX_1gx4qV59=R#4MYoJ2PSX6|~9Nu?@jKmnD@zv4z z81jlBlMux?lg2*-@V<FPamE`WGJOBom{|o_UqW2V%Fcco&bkU`A;eh!fdv^eSlQV@ z=aO-N_NR#}%7`#paPj@yz{>pN2Q#YxJ1e+_k3uBi5QJ^;2DSPB?`J&7co4L%ToqD8 zXfv9dfl6;Sen>?FD)B(a&4Y?}Yesf9(CNx%;6vs?1-&+-Ippjs2@}X51541qm!OK} ztalTLGB;*nWRqm&WeNTc;;!|EbRL``LmRAF;I0H{EeEeKni!}&0F9kP&Lsn-4<}G7 zoKYDxiU4YPBS)P&Xn{MZwFf?l6y9Kg#}mAbVvOamR>pt;H50V}5gF*l`6XO@puL+} ztjreRb3-gZ^&%1zR*^C`fHuV;_oyU5`b79Z^)0$43+Pc?;93>rH&7i4IxBo3g9U>J zXq`19tR8_Bai9tw!UDwrX#F1~20*c-2+tm%v1V1c?;tfTct{$Q0>LFG$j6Kiz_X(o ztnB|9z?p}gRRku&2p0j#fsct@!OG6)z|OjYmED7jF9gI<K-cx}0J=y|2PpG_h-eVQ zgpbRE9kj0$wBO}ElOy9o26ND^Qge9ZfSLn{p)^oVgPh+AVu3s&3LXpvu|R$?HwF6! z<X=!1Ul~<a8I&M!g^vRZlL=_FQVM+LsR<JcqXN3f0hm+<=++L<%AXFH2tsiKOy~fH zc9?(z+++{%`XN3p4iA_dOgE^{3_kk{bmo)+_&!wzMs`qDhU!I7w2Lb1gRjm4HK!q? z9nd>FSk+C%SwY8lAld><W!H@O_$}e%gX|U-U2MF<{M>HByo|!UoL8CH{ysA>U_2_R zBFW9c%gxQp!Of`PAPHLE2WpwH3$Sw<NHPlZ#`6d<@#ymkb6sO*7Ghy-;<V$KEF>u@ z#3d#mA}A;#AO_v{$-oFYFEEdxje&tt47@NEws=#X5!Ck6W;6pI6$`p)7qrwAv_f7C z9G`5UYf8YIQb4^qP-8|7bRG_P*_j=qiMlb!G)OuCDPRMg$_-jZ2U-gODs{}+K)b=z z)s(=Sia~dAnuAAd88ewVn8lcx#UPZYrkn&9zrG+RhoPdhkuWQp6e~9iuOKL+D{ykM z2(WM}f^x8yoTLypKMM;tzmTH3xw4hAkeH^dB$u41D7U^cGdCkM2bYkzqJ*xrHKUr2 zyn-MXD>o+-Gnc4Zs*E5jlMrJw+(MAOGi4>XRn!&qSXudn*!WpQn3=g{G-UWW6gU{w zOw{<e#dxII*jU*V6x76|m8@OlWhJ>p`BOOgwON?i)VRQHD+vvW6iw?|Sw=o~PG$~n zR$(D!0WKb9W)&_@$eKyQ=enU}77;OwbKTJ7K}TAF0v5FL7WrJa3*d8ILBvkT1QO`5 zH_qcA0d^2^gq$<oB2mtCgN(g{=1K$@G#D5__cF7yDd{tcfJPq7Ox1-UI}bq<Kk|%X z#^59DL06hDR}z!vV-Zp1lv8rBa$`I#CZug|D<mnv>A=IKAStb)V9lq{&CDmH#wEk< ztfl8*!O2)Jpl)s|C@Ci<B5cYmB5H1wC#?xy!v}E#1LHvke(*R5d{v_exYGtLv)E*z zc@fnA1%(#;1b%R*5_|+CV*;<Rf-vs_X;n~l2X62#(6CTtbO1N0L4<Du=)wa?6B*nT zR<O`;kXB`2{r~;{E+$6C(+pA!pc8yd8SEGsgh3-7;-HSTxg8T|D=^4vQxi3H#F7vA zAP1ZQzh3x^R~|pFh>*5MhQ5dt8z&F9sziXaT9~Wn9>{PT^w!y82oFjz?&i<+a<;eB z(b8mRmeUXx)00z^_N$jw__q}@1_zy42K5MprG%jr19&YVq|YM4V8LL+;K0BD+km0X zD5}nG3Y`gM1yx{>-RzJ88&-6~`i|O+rm%@<=x&q(2XHTy@i}PV71Vi!^h7z?nZTP> z4E{Y>u;9Uh1qV1mX|h2<p#j1G_ol!E^1P#i1NeAENZW^rneixS?HMN{s9mFKCdSST zS<o&n2HJ$6#(3wSAs-W87Na~12lGdMQFi-UE>R{ACP~J<|Gu!xvFZF}W@q_#D}aZW z)7ONRhnsN&KX_ll|6l)iF&<$&0y^tKT#pfaxu_fyXr&^Q1KHBe2Q4?jE0Dl<-hdC< z7vX2*V^q_Y5fPQWC}wS?!_P0aUCcq7QLLYpmsOmVbpkUZJ16sYepwCvOH#%jl4~Hs zYh?ZXgk%H!Wv`0~2<TW_i|rO?)U_9z%)-bj#>&e&nT4C3WtV`K9RD?GZ&RratYFa% zaw4MOumFw69|X-DFoITCiiwMf8nY{_X)~G{n}F}>VP_KsO)Ro2s~dxMK7l)upk5fL zGYP7yz|pGD2<mz<F|g}t*~<tB$&@g$Fc}nx2-(=!2#FLJFtIR}$_NR_*lX#rGjg$W zb}}-8vj8JwCnq}>qoA3NhN!%bzF8w<gSnoTp`n(Zc>`mknZAy^sD_RiJJ$?GRwmF0 zG;aeF3)2iPaR1~1<3`4X3`*b`EAWx@u&D%7L1XaxchHz6w76rO@l3}{N83vq-1Slb zlc3|Q7#C=JhI?s)&v0gp_y<|)7y*_B&sD(2-j%>30%+r7%;<;Si?FGKnkQx^YK+JO z@mnBEZaCQ!K+`)02B0Yk)baQS;OV>v?3@+>77d_`1!^a9g65LJZFE)!Zg4*abf&C5 zgAb@RENpBBTHGkdD6Xb14q9oaEG90d4!V?4osFGM+>X&)8N93;xvk6$zKszy7$?G} zjyx`HE+%fQ$JnIK#3L%h!XhKe!(`6R&cUe1$iXfEBG}p4IqXGcSk#%i!RMh%g9<z0 zSWrCx%6OdR;F%RS(DVu$50g5J45NUiESIXexGI;dra!x|xSX80aE6??Fgv@jcng=R zxaLn)>3<ENt6vxo@CyG+fLxlD0G?$56W3%l#Z|%WrGNkTGc_?DWZ1&6m*E%#gDPk% zxFH{-9-}&FXD+Bx0A1!`20ewD4}OEAIp~xr&<a~|b~Po?OfIPR0BTKv(=TXsA7~T= z+@S?6a2FF7Gcp%vW9MU1Q#VvoS7Ya6lw&kE6B9QCw@p9`6U+@kXP2<Cvq3e1jxsR< zon~STT7nE}uBd|)fOoxuYb!%LM$jErYRs@c3jELkrb00>9uZz19yS&ZE;b=OAx>Tn zPSBxKTw-7*7ds2L0FQ{6pro>@nJTxiw3W0lx2l<{vZSDx2#)|a3p*Dl2QR0P7-+nL z70lEXX5->uVdLT972y#R<K$o$;$r3H<>Tb%<KY(LW@lq&mQm#76A}jL(2*D6;T7QJ z5s}vcafOBWI2C1>nc3L6#khI+_&ND_d0DxH*f~Hq!0>T${$%F_MNkSS2MaGJD=W8v zEFXs;Kc_GcC!Yu(nC4*Nm*5rWS7K5%QB{=|7EtBjP!$lCR#i1oWm4i7=at}R;o#&E z=H%xS;RDlx9DK3@+^npeyeu4?%tFE(%*?EuTrBLY93tG}ylmp!$`T5EB7BC5`izYF ziiUh5d<qiE+~RD!;@lz}tn4gYoUF{u9Ku43psmXw$MJ!j2w6LJ0GwyU859_d!0QCT z-3?Ip0d(mYs6z|N6V{BvuvifX_52a*GDJnh%)xhL$uo*ID2jLRaRqY7DammJf`TeT z0n$Z0lmWi25wsnkD1nWO-HDx%LtN2=i;rJW5VUiB0~a4-1*A{-;{-?}qX8FR1{a?i zTLQZibglLYM%bJo=+r*sm0`@_wlaLri73i(ub_cc2H3Gs&PBnT?BK$~fSt1d!DK|9 zP}~8kJwXcxAUAh`S<o?<hl~dpA@^)CfELifXXpe)*gz*)g1VuQ&@wVZ+&RW51KtD# zCgh=$jo@9l2H=fuV5SVDy$ae}yMTd@L5snL!4I^$z+6dPkI@8l&9)q)2s<0A2q-&& zI}4z#>mUwz7}rQ#j!_+?)YJsjc@PK9D6q4cn}CmX0&TVhXG3*0@Uc}&>S`bfBXO}% zaZw?09zK0A$><`&C(9?mrOL@KCBUW5CB$!Gsj2Out!epNTv$kiPe4XOSWtvdz)nO^ zSVBgCPee#qTt<NJgSe2WJ|7Q+EEV9_*A);J1d&2nl3W}t%)Fo;B`-6Jwo;(9oSbyf z2|<2+F=<h8L4JKv84(E&QGI?vaZzb8eSSd+5qB|tegPo?U44E*VFBoVuH%d!7<V%8 zFo-ZnFvx&bsS6{=y|@Uwx~Uu!=-dHgaW-~lQFb-ZMt-CPfu-V&+O8TmjMX9?BGrr? z8pSnSk)!*EzGnI|4r9NEoJ#KQN}P;Y%hEOVb^MGO5NqQ(K_}}nf>#-X7QllS#zVGO zf!4$$t(j;1WW%SyXW3xM_wP54B6m5Y<&Y*m1HNSbC}WuoA6SKk5)V%qs6E2Mk|s6- zzF__+cn<pj6BFYh21$^;=4||o;^yjV;6ZE9`6Bv^pk?@=eO@3MoEH4~S*=-P!D}>y zd6`(4Vp%uxvnnQ^+n#h>j*-z&L1`%~|3=nWCKk|oOwc;cSXOIR{*dH*Cz7^HE6W=) zf(|JHjXyxzHeh=}Eox?QbA-L>?Bc56jRBzjWgs`1nRE(>v&QmIW0ld6krCnMn#Rv4 z!7s+5-EavO42-5MV*LMJ@K5972JaGPoyH%_DlRa+K@1iOkbM}ib^~bakpX=lJu^Qe zo0vTl<UlBh<*?8<GeK!NZ0lfS<YcvKXJRsEV$GCe7hx9%GnvHMQMbSAby%`;GO~3r zu`-!6am%r@i-TEA;_M>uct60v&L9Z7iyg8c8WI1D$_@Ws74Zl#@-jY!do;P>-z#25 z0iGg8O@!ANSpNU}zmEyh|CeRZVgTI(0q(Rx4sQT8Zq-3Uh4ze$5bv==B*Z{Rttzn_ zi?XYm8#8{=W8q@XXJOIf)8Mn=d-Cs>7?TiB6(bu9OFlE#5*C(OEIb?_Lc_p8fk%bW zNDnN*qQ}Q)!>1wh?^hL%5R(`q8`zL9EIcf;SU5mLfC`U-1E@a&awDi;Da;_tpvqv$ zz+le^Ia3GZ7;v&@6A@R1IFO%F9OhziBt`7tEjwl=x$Qc3OzceD%*=L5oYI_8oScj= z`S^7CH2CxiJN{i4W)k4eX4Ldj0xM!-veRi#0V_KL(g!-!kjYMolQW7_np2QZgHM-_ zPp>fQ-}P*60VZKa%{5AP%*@<O>`Zn#ZK+^YpmrbY|G(gSY7c<-yUQ|UG8BP!vzb8} zFp8kY259O-Se>6y95m@+4w}W#V`5`x<7YAj)pMX>GJQtSoGl+CD5=Rafeu;*sZs;) z8~~5OfDY&Y<#tfl1iWwDp2?1p6*P@vX3wY&I{RKjMuu?;IF-vx($Qp+W)a|GW8>jg z7iJcbk>ge7<rV;61u4MItHL8EBf>1i!olUt#U#YT!YjbY#muWM$j&Zg%*MTdo6T65 zja^Wimzj%EfRC9+h>6RYi{tNk9ae5h307$)M(F-~P_EOE`PY-DC+y0}&BQ8sFMwZy zhlxW(U5N|a-%H?9QWs@s;*sDF;Fsg^iQyGs65)*%;Wu;_73NiBVPs@c<P{cmH{=(I z;S*sJ;EDC&kqgZOoioJaD#XD0|Ihyej7Jy`GVp-+5NLx^hB@SrcSs3r4sQ}b_z*ex z{yor@+3bwqi_^>*%?jk8iz?(y<RGE+1w%wdfsc>l-$ZsEB|bh*#sc;S;8hr40(w>e zrU>H!DV~1@Tv9xY7q~#<Z43;Ipu2xL7(llgFbG4Fff1`3C=nPz5;5}b*j!=IY>OGA zkP!G@AyF|dDXxF-xVS(xqYxLPFhqPZMA<JfE|9DgmlzipqY#%As9gX(%li<65a<RP zRrro-aAGqvS7!qqePd<{S_q&9PCoLCZ0w8>CTuMvBab1g0DA!k2a^O7FNc?#i&cOy zWBhyrDQPaw3=RQi17;RB8$sEB^Vv|>JUZL3u`nAj3vgs`a*2y+*>Q(d+jw{faPToo zFmbRKaPYGlsj4svL8l!4S+O#)O0n{S>lj#>Yk*}XgA!<B1C->&K$riStAlPu23>~@ zX;-kbp_ID+cCm6W@iVfry0LPy$g5Zis<JRM$uV)UI<m5Bs5v=<*2N;$S^aBZXLV%d zVv=KGW>FQiRFP-lWOZX@W#nh#VD)!)QqutCX_o(A{_kgOV?4;9z+lYa!4Sg$-f0Lv zNCdQ`2-NRaR%a6tH#Y)Jvw%WXO;}8XosSW;*uvZlw0nio40N|68??AJH#1QO6=!Bf z>`3ZNpb8Tm#KgqJ?OAzP9oSfy6_~i#Ecp2?*tnP!m|55ySa~LLax!zXvN16+ad0p( zF|o07$IFR`$T4%Xu(B|#sxq^%vT$olOEYt`urV_-i-<5YGPAL8TRVh@goHb=FtKPb z^RNZ7va#vJYO}Gi2D0%mYp^geE)Y->U}a=sW8z@p=V#$yVq;+pQ;CRBVPR%t=3>?@ z(PidhW@9!~j!*`jA;QebEafBxI>v+rR9!PL{s;B-7#I&RD1cA$1_go`=zw6vo_=Tw z1f@O3xA0^n9c>LyY>a#ybvc=K_FRn1;R(hnM%sp*8J4Q-?J{%fIQSSCm_g@CF@e^v zxiI)LM1bZ^)zm=?Cc&d0N^I=PN^0PHWWWO)p!rVl1hNQd-L@ELIL?+4HsWB*2%dQc z4GqFe3w2|0Q&5pDDsIMPAj>BqtRSY!$Hd3pU=_iw&CSou$j8YDYD$VJGO;L0YADHZ zvOBPIHh@VXUeKAM?T~)g_67lq01HNm2XbOQLIO;l=7KyN+~8{hWke;_)SSfvLG63c z0iT@gfxJST><yqz1>g?R0Y*m9kOLbVI1Mr|{J+EG!nlw@fI)&mjlm4Edk1mVq=_D* zxH7m|CMvE5YL3e>nSqiS=(HxtX>>-Q+nCjnN<JY_(cQz$&Md|wZtm$V&&(_$1EQEN zGqW>^^N7nZE|4>kdjKvN!PEorF_J+{%<|rz=Hfi!Ozh0hq{Vr}nAw>xF@pqUz~e3l zm_TbxI2nXNEeut4*zR*y@bs4{J0GK}x+&-YJ<x0e`0{q}E)ei}AD}%TOu4xQ?3~<x zyE)klayhseFBow8u<)_?a2jxMB&eFHCU6AmAK+w9;S!KaVdp%c&n(a_Tg=Dl&C2S{ z$yY4P!q4#zv@cvb;T;D*xNHHr=MV!wgC6FJ7gcdFaaJ*NJ4SUieI`&b!zL=O&j@D7 zGKw%2K!z>B1D1ccMRM~oDrl=|@XASRC#5iRI&$zDq{%RIsB`dw$1B0arvNS%KOSyw zLpfP)=>we1g3R0;OJtlmn7ElZIa5K~$-r&815BNai*dLKls?T>K}X_&&YJ~c(2*GI z5QaFaqi%8XHwo}DD(i?#O6X~8C*S7aa^zrPo15Xm!J)yy%nEiBn8@a4pCYEBZph3m zW)#H6s>mY5o@AoJ!Xm;V#0FYN3c9Zrbp9KtKdTIy*8=Tkgfqao$H<-$dS5wsCK;5x z^cWc*6lJn<I&p9^8K%Q-qg7z!<j~+?)lN5L;^c7RWX&uR(gSs_^%xm;aPYFP0pCBH z!@<L5wT7LSV}}qQzY;&65Gb94+WoM;wFGD-33zZ2QkM&}vw^$SpoS{)T3o{oJQ5N- z8+edAQvW`rvh(p>;NxS@W(Q3cfX*)2%Xpaa5Cb0rgD#^QAET(Ch#aH2D(IN975^6S zDM^Sc@iQg}aC5)Bz{x5p@-IP1ijDIEr-A|`O*4YhG&_SbgEn{{7C5yc78ijRKNy>W zP6~q#T7s@*1-0cE8HA;T4Ipc$1U$_h%soM~cHco8*bE9lvke6T;OJ4Xir`L8=8mv} ztS}OQ$br)@EIdGUBXZk@m|1h=aPnnmjR7wkjsZ>e!kH++_J)-mRTiv=0qhP~9c_$R zN3(+lJ>YZ1*eCE&s%aCjxfbZQq1MiS(51nez~kNz7!N}3n1QYD1#M#ng*RwW8(h$U z3Vvu@FfNz?Ua>F%6y6Bt2Q)q}L<)Rf>VC!p;I^h2Lo7oY0|RK^GpN^V1UmIg9dtq^ zBj|)m5D#=-gdFG?NOe6Xbx^tj9qk7i)HO2!jSYx`<i*U?)zm=)@{qgqKxeqKvw;r4 z1fOxv4s8soF><qc@v^fwu(Ox)2{1C5s!Hog%Q7+Zu`{wUiAyjts@bb)xM)a-F|jeS z^D#TxrrRhhSu(RRvM@5MXc+{=2O8+8GO{qTF<U69*reM+4#&_GH_*@(*U=Hz)mYD` zCaP-6#3-pNts%?A%ESd)!7OT_pz5H;$f)M5A!jba#K_Fg#l*^}Y?E&5WNs?W#KIye z%*-U=7X#W_8|Nn>BF)0WByDQ$WSefY0Nhvw4fTS<43<9R89?_)VBDqxUGEMW!Uiv= zX9q110FCcKr;O40;KkkxK-0dUk*R;+U1<%V+7e8_$FD&ZFDJVINDXvR2O|qOM}dh1 zFbO7*n2@nXH1~oQ&Va_tKr>q4_0pg;jc}tV`am8!A0>VN`vbNUOdwf|#6(T%1iS|h zU(lMagWz#dchE^fs-UeEYTAsT1{H)<R$>=}WJ1uqJZLF6<a$TQe5k33nku}H1ipMm z4ZP=8T?w{Q>o6a`mK>j$niLzGg$5fZzrLb?l$scyoEATyl(Lo_V}YEO^1sKBdB?RJ zHWoJQOsp&$SXdPyLjGKGf^u5IvQlcGRb)(}l8X9jQnJEYa)NSPEE>|Fqq3wmN+Hvc z-J%K#qAcv}?hr0`PG~=PY{Gzn0q!$UhZy8NB#()JuKWcRx1gzI@I0@ni5er+<*L#k zm$Pz#TrRDO=5na>EL7pHQ?)>I9Ax|lvUUlyF9K8-qRks2HvS?f56GQ<sJAFCf!x!F z_wGcjmnMShst1e?j0-_?$)N4=vW)OKYskrHkaIUdGk)OR``|Tk*r#O~O>|k=tHC!= zhA5fKv2ZfWGBdIWiOMTzIH-URAdvxYpkxHCE=yo%HLeG*5OR=E6lP{(R$<{{=H=v7 zuu^dX3&R#2Ww3${p9Iy_#~FVx9$-)htwaNF=H_Em0v+>WW^M-V3bBJ?NsbYG0s?4E z19Zg$JA9l2R8||AF-|bBa4u{wa<(ww6lE1)VPRKL(e;h?(^XMmXJHXw6^#c^>46Ex zE~RW+(D-?wi*1%N8!M*_hY+iTo2IUxuCAY+y1N9c5QhvW>x~bfVS5k(Yf~IxY+?kB z$$)Ba*dPo$<UlddG56|vjL_j0(5VPucY%gn%o!OVg(wTRB2NS_v#27El{&YQsvL)* zkcfhAjG(x<-~~Z3Cf+<{Mh8e?xQd6F%Y$1{l9@|ikB^T<gg-{nT|`-2NnApKC(n@q zv}OTx&io+;4NxA2EKOhomooN@X5f=m*`RG=@KOp;fPs1@tl%ay$d&Sp;Cqh1TGSvl z9(08TNFAd9uP`ScC!a4no0uefnLrd54?Cv-3(ICTePKr5D1kC|NijBdUp`JgPGKow zeYMRjECQVDJd6y&yx=vnzEa{%+)})(+#4ih1Lc?nxe~ZJc^LJ%?A051g%`;M%1UhD zV&j$KZW5RB1(n4CpenUN-JVOIk%yBzfeSQ`4q77zxoei6K@xOp1*l{NB~MVv3U(y4 zKoV3G2bKTug>dktV~|2j4ZIuHlo5I#F8E^Jf9oIzRsB2QfPJAK=nh%~Q0yCU@%@7= zbWT{o%!*}UAGl2eaVI$af<}ly6_Yk2VwD;a3+`t0T~-Pepp}Ld$Rx~-j2{0sfZPIh zIwJ#k`-1~A2?{;Nga+^l&tL+UUhjj?q%{DoL{K${j1%!QszXbB$Q`fHUM%QhG0-|K zdq(J}r#hoCsF>GgWYqP8jQRV8s2EsiOaR3f=u-Ozn6Mu!FRK_U>%XI*6)wC92~fUY z2&<V2XvaDDVo3IY2ADWhAETeJ6zFVc&^k|0nSGE!8N3t865KM@X9VBTiCA?5SpjDT zzb=<q(G&zB-Ea7+7sdmedYruf-tr1dt8%g%Kz6_wuyd+L|7T!i_|I?vw0Z<Gf5*sB z%*(0ADa^Y-Rl0zk6XJMI_5x|u{|pHY3k=vfS3qX(z;n?5|AW@I9Ar>oa01<~1BpH8 zrZ6^8eGdsoq{W$fjH<@qumqjR395p?qt1{n5hxi8!wL{40Z<4*cJ6~~dL{-iC1>(4 zs!oPQgvCg#3KZyRV73SoYcDe^t2Crqc)-a%0esswq-y{f0RZ*48_YR5lXW=xI6<@q z3plm>XMkMR3L5u-`G=nYJPH7*AHXFRcrhLPx?GTuxE-Uhp}MKDsWQ4U#s<iW3|?X3 zv%<V!c7i8|oS?&l2aF5AToBO!m1^J>W(4P@243L?e!&6*2M2@<xbB9WN0!RKpbA;| z1>TGX+Ry;n?*M8!gLk8W##BJ(IEaJi*+oUv)zl3IK^$}N?g-GNK4b_3G<XJ4Xl`Z< z5{6DBf>)QBsH-ut^Ye4^aj~+qi?Fe<vT$(7tH^6h%CRyFGqWk135&2ZbFne8MCj<q zD9Wgd%dj$Y@UU>Gm?^U{3p2CoNZBj%va&ETvU7@ZbF)jZ^YBT@@(IjmW8q|DW|kIH zmsXVF=4InxW0&FKW|QFH;RQ)c34m;5;b7BYX5#v{nU#%^k%LQuje~`YkCRV8T2@w) zkB41?ots;pg_(mzSWH-oUl{5hArbJ|0+9A5GXpyVHv>O|FoQTa-)J*1fFelTSX9|u z)YuesMjxZGsWONUIuihNzL%-7C<rR68;dF*IN;#m04Dx5fGNfVg#-nM1P28L2L*)( z2OJz44jgE3_}2hpH7Fz;P-swq_F+MFHE8bA26UE)stCBMhIB~O!I1{4vB4b|(Bfke z=<$M}1P{p}p!Gv$pojvUipK_8#cHC)_yc-<Qd^PpM-5qNQD!C<Wo9mB0Zu+4L0L{V zK_*EqA#k6QgOyK;TUg0VSy)<HO<MW@s1h$~D{^)&N*3f-VButzVrFC!X6F*-<K|%H zV&vl%mSO>QQyDqfSU3cDL=|N8rGJ2Qs)4pZLd)(d#)II!h76G9hDaU&O*7;20mu*P zdW_7lZr3R*ZFL1UW)5u*VKy;-VQEQGab8YoCN%*mJ}wU~J|1>aDPB<?K55B7Q&|lS zD-8|C0}^7o9KvjhpnJ)<c=`Cm_<1<_8ASzTG`K*;JsUR{8xKF1ps1vxma3BGziv%S zO-)NpP}vTu8zJS9JcA~vZd4Tq<q&qzia~ZZ(8Z+ojAm;5jNo`MH#3)qpWCerIx`8h zmj*lq3vQj*F)}iSF|%@T@d|3{shX&2Dl#*(#xt|A*htEX%1OwIiVD70($jO+(^Kjf zVc}zap~S+&EE#Ua#=@-hf|cocuAqpBjF_|n7dsOZBNM-fNC68wqnMYtAQuM<6C-20 zK6pO{qoX7%6U!!T7DhI+TpmUqR_#qJ&~dE);B%1{GRT6~YJhs;pbiDN7y@5Jfs}UC z6hVWN(1fIhA<K9nKurp~h?_&(OIt>yK}1I8-x*A?0}fJZ;CfQqOZx+;YuF$ngGC5B zUcto3xB%idP^%8&8c5RuyzR{z)Gh_JM--up96`qzgJy_OWf?DkTqA<wn15$5#Xuc8 z?9M@TA*3${9$ye=Fk<jw2*G{xsJfYvJd+XVQc+NELmf1#ZECKrW@c=zZX|9b#s)eX z6I9R}iGkN*fVV5-zDaa4BMT$9BoiZO3WkwMObm31tPmq3lcc_=2n!243yZpig*po} z3#+iGys5mr>B@h2E((3j#3aVT!Xzlk#KgnH#3U)m#KIEI&cV)P;b+0Z&crTnYG*3{ zuNQpdC!}9>AAByWD1$QSR47%*tTMQb2b$OfZ+R0}H3qFN&}M|RYe97~XiYhIuoyhR z!;gqaBYQ^1pX}@b>>_;DtSoM(rV4x_?EjKOOikTbSo1-<ZYudi*g+R|LR8!VcY^X+ zS?)x#gT(o`G+4Z?EH$|J*wZboyjj4d6o?l9mwp2lV|fGJ+qajok?}D2{v20^P|!`* z&~||mI9Gz263{jnr12mI-gS+>9LN+Dk>JKVD6fc#qVpNk)XZ49Sk1tM8i$Y&2O3|G zl^MJ(76-w&S67#r8G_k3x&A3|ak4>pAW=3>F2)C3od2eRnydmKA^=37vB2%7-~abA zu`(WGkY})Ch+|+d7h?nMNCQnqL&j^gK|MWtM(CWCxVbodlM$%=QipV9z$LOhqnVL7 zd?Hc|bjOP+=nio3x(RT*(2j8@lMttdF*}P85BOkQ6BSb)5o1kGX6`&T9>y9?4KRzF zNs?KJQ$tJ0-d;$EnTbV-m6KVBQ{}!iGZ%{z3lp<6NPmI|djKnI0J}(niYd=7E?zdt zKrV3saQ9W;RX$LPRg_thiJjfk3C79;sd17O6_u4`;bIbFVq%fyf2+g7#3ahh#iGL{ zE?~gT!4bg1#}dH7!EK=L3U2Q}>Qa3M2GF&P=HSs_NW_}hGwLxycd;6S_P2t90MwiT zT~%aa$H>TF7@?%XF2cvh)yBogt|e}*pzEin>#HYkDbCErtijBp7^V-d92s}0D5|i7 zmGOzNYl%we`bGQdii$EbGHWn%Gs`J~t6u0Cs3*W@SDJ#?)3S+*qdEbcf7tmLp-uoT znN)}5Fj#@i_(h+Uokcmx0&KIhewZQ)vl0s@i?|Kw>Ja@v16^N<R5o_VK@W@v*x7<K z^_+{^3!RnZn7NsiSeQk{^+ET}YN@cYv+9HD?GxZ30`S=RamJsFI~dp*L_jCis)~RX zCxb4hL~4JqtAS4S25pLgWqpXlj6qib8ksT5%E*a}^4$h|7)<oCb4v+|N=lo#bMo_Z zigWQv>9F%j@bP_=wcv38`vKgvSj{V9z^x&!B`(3o1-_!rBbZkL+y@7pVY-k(j=_k5 zK^QcWD+{{L1T>t>&Zfr*nzB_F6#>oPs+q8ZmVw$bg6C^NH&TK&TXbyT5a!J`b&wQS zX6NT*mXVVV;T7iCz)=Ab&lMKV1@jo0X0S8yas_j!>Bi{jXiBm&^Ke9It8;~L@iMW` zU>B1GOAEvam<YrPK*d091kjx%_m~(M7lKaC#pXKDzz@uM93U$@okO5b5tA~|4nnp) zfJs>=6K1=6pr8O_1k5VX_{|@tTE-RzC2)%nIynu>uJVkg;ER9k7$L*8=8zTcte}<U z;L;7&B?aeUBYV*KUf}9fovAF9U4%WAot>LqlwD&FCx-w#BQMt%E<O!*QFd<je;+tF z_duBJ$O`$mzHsp}vS*~Qv!}3&uyeDsYj0y00B4hX+91P3#Mrk%80<)D?tyxQ;ISys z{4?Vr#={JppnHJKK^p@=2Ro^=f&$CTNSuvb9K6;BGztY;ZNms!X)O#H0b*lk=5*l@ zVv7l2wD<Iy#H0|V$YSEJB+4$R&CVs_=qSd;uFb{FCijz7h{KhWiG@RqO@@_;JuRXs zFlaH0kPw@7xSF_wj2AZ>A2$~tJGYmBn2yrFx9m);GHha?KHF~w1}0a=1_sa?aAyVv zRc1X#ZAR$$u_<`gni+H#k~wHJ#7ImO)bC`31id_?7^p>}W)5EA30EM(#$?;W%+Hy` z%*rgs%*vd^$<N%wE+lw_o0Hvzos;{BpwPbqj4YtygpmbwkQy61qm2bSCmSc59vdec zr!J!dCzm)2D=UjQ7w5kN0<uYL92{&(vWzm!EG*1Apbh)A-0TJ*K?8Qs1y~%Q_3YsL z5jnwk2I?^wF@SFM^kiT#1y8q_Dl4&pT7cjoDbUcfpa^7iR?tL^S=rPWKFSO_rVxbT z0_Nal_n>wd<OqAl3kAYb!UdqgV@3xlHT{nc4hoRVW%3;y65yQm3JSc!!Ur07g%1c% z25;GM&{zET0kk!YQ9x1u-vNaP$bB*u3JNf$#{qD+6}(OcbcY3K?~opN>=KkpK<B7{ z77l>dE`YAU1SKNSLUPc}q>zC)GjQKQ4Zco*@h20Pm>92=hq<nL2A?>aAsZiWJQoKO z6SD&|Hw&MHI8PEUpN+gKBV!(9nGxe!(CiAMs+=t!Pco0Vm;ehmvjZ~|6FYZ2FCVKB zn>b&Fx}KSbB%fG0WJMLU?Xe$RzJtztaR8ltr3&2*09x7(>QqC=`=L!iHf=^WcJNv= z`0905@M?N7c}A!Xgbx-##!n<=gd{BjEOd22YYxCd&qSpe#XvmB=>EU68Wxg5GLm40 z8W1tirXo3IIZX+WG6e^V01II$VR=Q+iU-iNr?8ap0SgTYO*v&bs49>K@Zb?>><H2y z292}pfyy7yC?Tj31sWv;&%eOtB|sasP4$@6A+083IVN!tHZ(ENUMq1Cw3R?-AVJ=x z%)-vB>7>re#?ERMW5LXx3=(iDas~+mxw{54vxA!M$cus?LC?mj?xe}g&H_?y5o5;6 z&c^Co<N_7Y(&`RkWe2VC`hOoh7s<gO2O6z22b}>8I{8H$<YI770_<YYq`sLsIGI7~ zUSseeh&VXT%o<cp)znN?H?a6O_^@+vvYE$PvVd2FPhhdON=PmSiNy!_85lrB6{J9_ zRlR%~{2>A?ma*n+oLub1Nr{#=P$2^Yzkql)PVo6PptAk}V*}$t2Jo07_~3O&U5n`Z zAXpGL!AI=089_|&CeZf|fq@Q-S=k}2GziJgYR$^N5LD?e^i$T*Q1NXDZ187iJ<ran z%gPSfgA7xs!OE_1Tf<coTnB^F^g#wKP+J<YcOS907>NZMgaZ$H$}^g?A~x<|WwDEc z%N<a8vH&vbi%bghCh!U~GR|XkfE)zozzRCP2|{Yl2VE}+y4_#_k|;zDRMznRb6{d& znlFxQ9)vv)v?D5kR~WR8;y(ielOv-ecuy8q2SR$FppFkV7NlJU$^#%DFew;dI0fP$ z2npJb#LL9MD=f_D5CLk*N8lobc|jfn5#agr{fwZp&zyn59FnW7K@~oDbp;L<JPN=G z*_Lqy4%-m+U<NS6&ET^7ADDCi-(h){shM#zIK04}1jP9l#IiukW8@gk8SNOEY694# zxLvK8n3#E)*%@ujWf&Qm`Iy<5WXx@#ENcrHsH}`RT%9Wq8yiR`<410GM#**_Ha7J% zW;P~vCMKpdc>`uPMo^KiFOMX~#10dKvQpLACAmR58Ku~yz<q@Kj1G(oKqDiJptT6d zn<tGxlbDe42vBbb9Ov?k;E)A1gh9LUK(VjQsHV;c&N}~YfU;MprpP1^J)c!wK7^H> zWhpajFb5mkbW0yrQ;@hdD<@+DxTgcodeUH~v;sS;DJ%0#W`4GACN~SPm>@r>oe3&~ zPcVLD+`$04k=K;L4YH<8L`)n!2rJ7dW&}DW3e?@R10C|g4&LwxT2=?XnpYh@c5lw6 z4_QG9lLKvda5U%S<J3#h1C3-mIv2I@sBv?_uTSS^vw#%NO&n~Xi_{S^pw%d?g^F81 z<K{<&g^z;hEsBM$Mb0-kIXMv*q;H3eh;L&Bb!ib2Ab+uf&-D8MKGP3$-Z*%zurTt< z8Td`I?4aYOK^s~?^XBjt3Ap>D20B|tT#OGi#OVy~bT}9BLaM#RA~IS`986j=ED-)& zL47IE0ndsyVr=X}ARmBxA8kd>(6gOC$Owy@Gc%iu3(IVPOnA={5fc!Qk>U_wfsBnn z>Ow&VDe$Rc>fk99q{<L}8lNz{%mB9)<r&2oH-+$t{QCkL3<Ir!cmSEObY*9K0ZI~2 zSy-4^80|v%plc&U7<okgeSl0=G8(3Wlw`27voN!O_P6~1{~xqg4s>R-9QeL@cLoMi z@NP^&SnCc_XTa(Q6E)}#2vI@M_zk45U@T|?Z(W!xgD&?3)#jY+0S>&vj2RN(@(g@J z2W$HR4iSz8d=21puo@0P4u<*f5WvnU{NUdQc1}hIVPy?aIRiRe4_r=Xv$AG$3I6K_ z&t*+uEER0i2ai!Y{5!zO4x0M}#XqR71Fe++ox>y!8mAFumtzz+H#TR5E`$Uf!>^{q zc%UJeTYx>-F5zE8DL1z%w;Xq=n6@3`fdso?b^-3-hU=x=a@?le+@)f6+8}d5W4Dk! zDKZS24CxFEs-QU`@Dd(K;xaZe2i?6Z1|G9gMc$+dS_lk|Ffq{ZuDTj%br>WlK@;R+ zpjE_>;RDc;e{rNms^A$v#-AzdTmm{4@r4N%7V(xI7T`XT4Ew(e;4^gmoYd8wcyw7< z*;!@Sd02Ru8JYP6!NDvfDa40EoHd2r!oxD&0&J*`02ioNCBrU~1U{?>Ow8nEWar{w zXW?dMXX1t(tR^MIFTsjS0@_wZgpn0^q>t!OQin8BLAyD@4Q=FhHsKIZm)DjSkYMIu zmJpEEmIrkV`S=L?@`JX#sD_jbGqa48hN!%D0(9mO6xWcsO@0O)&|U*Z)Ql%44CyV~ zGO|HORgA#P(T$Bjs}q?aM<PKEv0^j;AIbtIPRg*0u){;XDBc1R@+(yByzErL1S5k2 zC{u!nfA?fSy<u?77lC358uN^7s!+wMcCd5_ajP<e1A{LE1H`Rx2V-51N1FRB*g^Mi zf=}>-Gl}#IswQ?;3wC1t1<J<|e}VEF3AqiPUywtM9h6@Xdz}#}10D<PGVCHn;2q3h z0zAhA*#jvEx)oViSws$L(YT2oqpA`cyO_8glc|G)O}Z_3>enWn(b+CTPFuht#*{I^ zHr)nNQrV{4IM|!$+p^guSu$|`hs>M6?ra6!#Nx~l%n-wn$^bg!3fv3>9jgdhji3&j zr2=nU2F*N+qn%Sljta&HkOmlN2e+^-B(Hcus5CNU7!|+=(t(KxNDhLKKfpp@f+%tD zc;S8~Ht-oWGN6-1RN=`OQhusJidx8uU{%CLFvd&_;4AIG#J>haL^Ik53v<SEsd2?~ z3JW)YkNW@-#^5*x6AB6f3j_of2q-W>=ZzQ-FoNO+v_DP|a?mAcZ!IWB*p=AT&D71s zK=A-Btk@wtdCbKjxAd8)p{`n-ASU3#!r~&JtEi}_$ONW!1zeaE^%NBu3lKd{nK%5J ze0-YxAaQYab})lqlbu~0qz&Ab1g%Fs0NQV=3UvW^-#XL@;G|(}gye_>C8;zPmNY3P z@Ud=85Qc`5R2mcLDA5K{2T@T6Q4mvun+wbkb>QL#tA&Qa0VdE|a5>NlG)B;Vd(f>$ zpksU3K$G#HeZAn8A*ifl7gZDl@0d3OP3wVIRKR*K>}=|4Y)lpt*oFCgG;}0ISVTDG zMa6t=>-dD(CvY72cfgpHMO2Q1m9rAodf{Rd6lCLI<nLhT<MLqS<M(pr;boUl)6`7X zRABVr;$!b%7rE%l=)fYz&ng6K(nPYcGqEu<g3ls^jGZz<#!eYQ>v3g4BYmRaRk)yK z{-B9f(DCk|HUQ%f@&`|$;RNaXgXcem!Q)`yraowR58Ph`H|arFWP%U#76soB16}?G zYTbc{OhK)qAK<>es-5ZzE<P}`KwNQ$0XwInIAmWqAJ+<1J5^3bi4~ysFo?~^^)Ca& zW=v2l<YfPMLtGKOBKF@4E<RN|RYnbVPH_3PoAD#~tQ0v02GEvm&|EVp20<$_Ks%~H z4G(5RP?)GQeo#|1*E13lvNSN2Qxf1iAS85vPvC>Mz6sL?Mu+q;4>Mg64i0f+bFbhy zehJn94vqj;iGQ0_eM57+Ao&I|uWifV!oZ*kK8+6SQ!oMQ;edx1*g<_Y@cwVe(1?*a zct*+0TnxHa8*~%{qoOEivjgKtHy#c_En!{<KCTH|d=9+AT7n!rZoF~|;FAv`%()HZ z8srSP%_BgQ?m7yx{|+)TlyPyDdAso{v-0)u3WH7w;nEQ1?crlp=5<pN5#{3&;Nr8E zQdE?(1~WxP7{w#hSXk6R^(g3GJy84i07EE4978%o4ro^qc&7?z)g`z|4qs^rDhxoy zGo%p*ZV!W(<zezcC)1dj8iUqLz)lJSpJ@qNqooKN;xbn@H5O+o5a3JU6VZ_o`OhFC z10Gp`G`ql4ec;nz5v&=Y(?%=;EI{W6{L_SVrWkb~w9N#al!P1+z7#&l9YNr>AWotI zG<XNX;0mk&GWG=_FBGIe+jM)GKy#n$3<3;l3^oi5!k~*4*hIvbK|Ti${VIV*P1)I$ zMIp<1AmgOMYM?b3qDG)QKp@+{Kyy3?6cnUYRhOztgJ{M;Nh?uSF@8xkD_vz1U0-!Y zQ^P<#V`W_{HA#LkR#7WSPeW5hbw-5-RWsH94AQC%s;NSJ%>1mJ4FbGOEL?)h@@jfg z5{!~uEKIxt4V<j}%zQ!;QhI9g%HTK!ja!4~+JzaU8B{=X1B{?q93{|oj>_;cYE{sP zoh+j=yh{rnUj;=GBjjL{1bszD1x5XT57bQ58Wuom%2N=EQ9%J*+bApi`v5vZlu-aQ zIwz%oQsKee0y<M~5rZa!DT5=Zr3R_pKvQ#ypk0p2u)!E}J4QK1enw-^;Zb7ppap%b z;9*|Sn1K=K@MiEZJ19+odJ>@A1!6Nf@NscSF-r^mn<6C53|UX%oXsI6#=;TsCV+!Q zOo}7hnTzk=4@l))0HGd0s22iUeA|V@#f7$mbH-$D76B>l++1!c0T%Abe7g!jc?=f; zIm7e-lM~|s27O5GS5|~x@da|SHKQ=NpJQZZqHYXcIs`fm%iK&&Sy5fl$c#xqpP7&6 zUpXfeFGo7a9yd2$P+cf^Nl;NwQIMaFiI4l=XEsJv4&KQZxP^2%xWP{Rw~|AOUtCd9 zUqC=#QBhn#nq87xNP&w%0D527LIza^(C9vB#5{;0njwWDm!XWIo}q(bBEu|(#SCje zeM8WpWojnohI)+Vpk0EZg35v>phIcI#6joBK&HLe;bXd>WCG&AM|t5=i0#K9d5}7| zlsJe75=H336amSDM8#nYxOO;$v27l^2s;luyCjo@u$Y3LgPNndw4sQ!r5IS47jl$} z0)&Dd%d-H&1C<hdoSfkh9#jxjCFsT{PCibkJ}Bh?(EwEmr5G*dv9t5Ai?GZ2%k$_d z{5!{Jr0%FDBFMol1Qz#)Y<*-$q0}Kf&`B?xeBkRQ`8YYDf>>2T1yPkic~A;;zdX1t z-3VUiqsX8Ij&Eyl&m4T!1bFZQlr>NaU{zCNSw`fdR~W`o2NlDm?R;YY!az%N6`+Nz z0<ZAj0|}7AwI?9~v?)bHMyA9m;O!zoVcvfac!fdbCkPAk<_jt$Bz%CBpC1zbZGf>7 z!1eKWCI-d^26@n&lOjB~gWC+C))Tnp4;e)f0gb7FGB&u{1QoNOiUizhSpZ(i5(07{ zgr#9&5x#<5gs%gXcRKh)*jKQFhxx!`v0#>k#sLkBlPlQyxDxod61eyhxcJytu#14^ zCjb8joh5sSL7%~zA(?>zvLYK?{6R*7LCtQ^P&{ZpQeBS`wDB5T)A2JxCMJzR+o8bg z=fzpoP1Hd3JD4ZW2-^A!;=*WfW|CzzH;WeJwX5S16y&a-#Um)lGpm+Ih*5xNr92l4 zp9E(OA3slkfIv2nfTs#K9}_PxhlCI_JEH@ukhmZtV>*YpFf)fQYdkxMj$`oy(d;H% z;+)k&wtOl)f^32k0&Ifff*>r$E+Nd!7R4ph%OlJr%p&lPgG-rPkc*jLoJ(g0j{u_} zk6J4yGoJ)k5=#}Bu4GQ;V&<3NbY^3Z;t>-x-~z|lf5sn-jSS+TI8%kRh2b#=8Yl%d zf<dJ-=oBK*f%uT63y|@0Na1H>#`qB}e*T?cXGM)cjSyD$^%ya<N`sXhEgC`7-O%|H z&=@{w?KK1VV0lQ}1D;;MX&-cq8uSKvMnzLa#t;7{fU9{>fdD!}RDm6Iv;imQzm<#* z{|+!VAc_A2cU>6^!0P`Uc)$P}S3SU#3GSOg_IUX-Fo0&SVZH>7S%c1KLgs_yp-o-z zdMHBt8xR+;b8@!BSwG>dN-V4eoa_fcE#U*~oC)BOL@;rHll>pKMa-xG7XJs{HOANg z;eb!hXMDiU396St`)&R+F)%iQ#(6+9tLmWTGi;z_3u@KCN9e(gd3(^g9iRz%(1fs& zm^h^Q3i3JQhZuG~R&G5R33WbERw-p^7A+P54jz!xcod8{B;*(cxS6>HnH5=i`T1CQ z^kib#IYEsW1vM%0CBow3!kYwz!C|ehmUa(xpbJ+4FF!w@f*M#5)DDB5?QoERpTU#? zyao*vn#iH8ZY*jHS}hE2bi<mPkaPhqLcoc`m=#Qc1Ry03<o-PbzX3e|3nEkx7#uJV z=RXCS?}e-q*Eq#5ZotR^k_1hq2|tFj5`@75AR@rPz`%-M+yNotAkJ^4fZ!rnptWY8 zHX0KsErafQbz)$E+-405ThMSQ_=tQ+p@=ld4DR`xnS;hhK}&g|TiA?Y1vw*wTdAv& zE;~CTCnG1jAGq-gnSSzP=Vat$WM|hkaxGm3S&I*)7!TN_+nPivunKTGv2%ml-xd&( zo85_1fK?&N#5UdL-vP+X1B3*nA7*eJ#K5?KL7BmwA)A3g6>$nQJfz{BLuhVPR|dxs zsDy`JQD6*O?g%M7pnV}EHJIi=)i8eew*j0$z}t5Mz)VIYHe_QVBSZo$egUlJ0w`S~ zm=2&_$?TA=$VkiuNNgk~4q;FlMVfn&VbBAO9|$WU?crv(11*>XttEs^CW%8fBHDp+ z6==1b9HS|CRVAC6DO4qBE(tpQa+*n5O__<2mzk4Sjfabw_m7y36KKjskX=yUL|>3y zkR2ky167AS6LVcoQ&WzenN?6sOpukiL`p_Rid~R}LqtqWgo8yeA0o^SQH16XQ3h2| z*>4IN&V>x^!kcO05Pz6MU8~M6#|ZHUJIrTL$F~(ZpMcE$%;!<#;Y6AWy99GR8_YjQ ztK*@ky~?6Ye#Jta%?|YjWIyW(M%bK}9Oyh;lyHa7c)^b`#0+_)kcLilO@_>GU4Xd@ z9?r-i3!USF_-z%`MX-Pc<qtM+{sx`t1iDjQo<W(xjKPnA!5mcJfEF-|nj@zWX7C0= zb4E7MZU=G1Jre3>#^51#btN^>gn|;AD5ys%23a9!s>hhX$zGNq#?HCGt<=@Ev<F1E znM9bVFmf9S1RMM7D}xezbB&R$NrXu~j}Q|hn;<hQi;4ud5ECQ201FF?@&s_*@Bym1 zr_}YIgGq#mt<k@)DhCw&^*KR1jcY(RirMbv=VoJLmXL>1pmrz&!+*&52WY+kbdGKu zLmp`S0F=Q&9)*;&%%Bz?sHF!U{ScR9L@vD9;ROLiF=#7@upT3*Zh;lyXgb8<#R5bJ zQw8|u7!VP}37%u)=aW|fGxQey120(z)qtGp8#Y7;i-N@!r3Hn-3^_57Hf9i!06q17 z0y8TkCmXjNXbR3wP>xf?NlgyKmNN{0CnMq@A_G3Iq`-lZiC0w&tjbBjLYPNI6rxJe z@&Ljh&^p!s|Nb9fJj8gAp^Je*)eOAv(j2t95_Gba9V3Wu4&DOEWD21{_uYcR589p- z1<j&?8kC@6Ju!JkcF-}OpkuI5`H*9<m_#8oXk{WOaKy!oKzk-kK_gxu2FzYF#=R^o z0$kxPF5z4PtlV7srW~xC!knf;%$&kP%wjf<>`Z(jY;t@ed~$3ed`#?)He$>|!ko-P zrkui@tQ@BLT->Z!wQ~ufX=fM4rk#5dhcGvjq_VOk6SuG+6T3XCun;S&ye_8@8z*O^ zvYP|D2rnbMnjNTVZ>Pr2$ScC`;HDhO$;l?fsVmRQDkRJ*&(0)>)eJ5{Y-Vs^Hv)9_ z+Ry)xxjO*{8OZK3dqz`bQFcC1=?psEUCm6`#2k|QWEqVijStX~EzAfdpd&DpuX`>C zmlG7?)ss|^5)~6G<ba$2ya2LVZ*7>IkT9>Vq=Hnjg!F+<^936m#XJ?nC4~hw;}}f^ z_&|$k6dWLn0snn~%7qJ=$z5Pz;DEP*gc&p$bQug8Oc^X0Y(c9>6qP}Hr9kNgk>7;% z7(x9&envJ?*i}x3ChDrj;>zsG=EmmA=ElP2#^S=p;>zOc#^Q_{3>v@<Oi;sd5|a?m zKRq5HCM8i}J|;UpVbOmxE4X?bi-faS(*+a6xu<c9CkUnsaAyfCC~&bUuycY5#-%*` z{5(hML5CaiGSw|eSWsY)@SmZefRQ0#K|ukiJOtf`exGqQ<3a{e1|0@{&^};u$ZVpS zH6!@ia3e8M&^_Yj;HIaVJtJtV0CXj&KBKa^vAQti<a}7M0J`A=xg^nM+znr_4zBGD zxH<9}*;rKA*qJPuK?lQFGO@F%a58af^YgK@IWw`d)_`UmEnJz|S(`vCTT{p)dPWCO zvH9<S$XXUwF18gM94pwkIAx5)|D8%;W)TIclx1a4VrCJ8GI97%7_xwvO`8!s1g@lJ zDyXca#!9~bSTX#^XiAy~8NDGs{0HtlFgl1t6YE3J8Gn#FKtL@6SW6sh3<^VAd!R%J ziXe9QUT4U3zbG0X+J6LhutEJv%xKhQWB|noXyYj-C!*&AuAHC*xTn*=&WRp{j4I%? z0455+Js=SA6GX6sh;|SGW`XV>|N9@qkJw`oc3wQWe#DH*&&2x?BNk=A-UAba{0Qpz z{a`d;SjfQ3z+evAG|kTl84fhle8<JdUd}GUUe3<9fDc50czmET^6&pUjH?(IGAJ-u zGPp8CgHJm%fn-rJS<px=bXovZ)0<f{nzE^}n?P3>flkPUo?a&|X3nN&4m$Xn4ZP3a zTwPfZGGrhMT5BT@IbvRo(Nu()MVp0Ho|Rn+l*4jCgd{7Ml8~^yn3RN+mY5(53nLdJ zC#wXXtWK;TCmTC6J3kNOA;_uaNIO>;{X|)~m^GQ%S?k$ZWkJTsva(yTGQO4)5fzit z(UMbQXX0RyV`X9F<Ym#|5fJ6#W8-3Gf#-kdrW#oOrb!s68pFpdjKTdo&<SB;<c7h& zc~lC7C-5Qy5eSe&?+h3_KxqdwW&lb8;I$uYjN(X%=K)gUVPatT|AP^tM;blFsY1Fv zkgCfBIsGwmLK7m_J1*qJm|4yaPLzBipt;EZ|Nn#L7C>j}gU)9HZ|G$QFE<7)#s^P- zf}6^q_1~b$88ueWtRLtkcF<vQ>|)|#OcvU@-p1PE;@ZaEy4ox(d}5}ij>@`By2_5G zreb_7|DFg-N-6OeD>8GkC>rx9N=Y#?@QNCO_6!<|^0G2(XuIm02y<}>o9Mf0YcR9s z%Zf<}n?}hpGs{Mq3QLNE$I>1!fz}{fg69Z9b+a1i*n5yGltq<IL3Ov1ETf3AD1;Od z0}W<?&aE>yGgmeP6*S<J;n^Y6B*sQ!Y)pZY_KN==v2&i&SC{Y*Rn`&^kx@`kP>>N3 z&{7ulkWkk@$H~qpr)V!JCMj7DYP|CE@O<Fr<znL!=d<A!YG_cEc977J5RlN2aFAAQ zXb|GI;S=X#<KpG!mXwh6Wo33?X4TLD-AVQzvZjoKL68CIt`A1ocs+bOu{mtT1}o?U zLD1l{I7~zl#(?kYWi)_{4}&J^G-PD<K*pH=)j&jfAzVfw2>tIEgl3!op<&7{KvYA` z@Q3gqB%>OH2IX7E|9}49XJTPo1X^PVIvEtyo@N7`Ua1c{5DnBa=4WIBZHX}hZCV2z zuMELzj5nP5L|6paGz<jvxMcY~B-Ob1)Hs>gWVi&hCEWPsc+5l$l$lr=1$gbmct!q* zvx@NAii)!e>T`23vN1_%2%B(A^H_?gi?Z=EvvF$hGs%eA@rtv{b8CPmUOB;iCrJNL zh(U=#8@%?=jlmyuuA{ICw7X;s4?NiL6>OOSd~qZrWLbuY7&|PS;cH`zVIuIjcmQ6N z(!dB>JS`<G{O@yvh6Uu@4vP%PN<>C^NcT4wLghjzC=W_Ou2D;Xbbb{qG#-FP<sWER z{AYkHOk@OI2q7#b47!$4SV|bG5Tg75gaWVcfTS&E1_o9|K}9Bpe+*0v4oskY4GtSe z#sdt>pgj_hQUY33$TPy%Gs5>|nVXp~D=V?FGo#GDfsRcuH!~N8ju|mogKiel(}NuU zp{EBqB?O5t@r7H6Db$LUpA&p=zD}f|ya1mNThd`JKE9)3tgKkHfUhM18NtZF%l&U} z76&JIpY{?NPHs`gaxfd520?Rk(DgN-wNCK$BA`_ejK~*npzg^4=>?Uap#I4b24>KW z9^#6oilCC$meIuAOkIx&G{XqGJQLiq0{5?B2}FVMz&{7Z24@~YQGQl7Z7WlGPH{mV zXK;KU;1#xTa5x~y!=<7nqadrzEuk+fDr}^|$RlW>0bcd5pkV=7-*AA5iSZzVJcAVj z1FHc$blIP=xRD*`?iKi!PjCrk4!%>13Dj9-X9KMV6&C|lXy#^Wj3LZymWh^@iI$vf z989dNI(p!XO<nc0S=l(}_$V>+Fe~}6GqafUGP1KVySOm3u`}|TvoH%WS|%1HS~9Y8 zb1@0HmUWf63NUeSbN=CWWn**YX5?Wp^I>IUR8e7MXYny(;Q@yics;Kq_}p4`1_tnH zv`TFJOni(Yprj)P>d}Exh8gJC0nmnAadkm?M#jIB9a;H>_*oq%^YC+JNivJ@aj-Wx zvvcr?FiU1}@wW+y*VuJ4iiovva&mIEh%$*taHdb<7h`d8VG-k>l+Gz3QYF~!#AsUw zs+T}*ti6m1j0ZrovWyVhL0xxnF~g|9$<OLIiI<;|GfR?*SAx5l@c`V&iM%50Y%U;w zaDc}RE-@ZpP-W0y&|@%UFkvufumYc+02(OJW&~e#1KJx732@Muyf|na4s=W<sI$+m z&d;c<Zf>kDuFP)C&uA{ssBUb}D9$*|l$}+CFWZ7uP(+Z`BAZWymE9Cm$Vo(m$F#uI zw7^1KuS-KjL`0-gTrWvP<Uk~klwcev6ygM>cp_1F8x<8JA|fK<)GQSH6%|30A_M4* z+yjh{7!N>BW;O@83^eEg9|%^59K#GA*#MQsux*uQwv5mdzZh?Hbg(fqD=_o2b%0y@ z9c;YJ3e3!G*oBMy{8)HdEm&EY{pW&u4RigOSy(Mtd0B9XL+0`KGU+fL2HzbDsvF?3 z1sXBY2OV^%rq86u$i~Qw5_8Sm61+^3S)7dgyptT+#Kjrc!IB1#C>xuL3mcm#4>)l! ziMH@?K-Ow8F#Nv{-jgKFz#tCo_=4sK<v@pXf_C3R*Zw)Mvl_6nAK{b~5|ZRR0_KP? zt^l=RH*Do#5(3=}EyTpJWj!l9cy0`o=HTYSI-ItQpq;&@pvirC(4D)W2?fRmuvv$> zKn8Oi26Gsv{EI-C%-Fz-Fd0<-fYzfPf}AA8sKmw&K2I35v06<XH1L6Zs<tSoVPFdi zFHkiL3Q150P+X452&57;Z-KPDdB2njqaeSWiJYz@les51hdq}76AKeJm%N3)r93A$ z6El+lmpuo!r#U0&m`8nnK{YAJd^%%*s+5o%N1=>?jFl!&gyn2bUM5~fZcYI%0VcL8 zbt?;vYBnYTE&)z%CLShU&e@ic+&bPmy1sga9CCuvssWJseFjL|3|uaQS~m=;#)6Rj zDxj%5W6%wc;_PgojoYFkj20byT>lC{<57$peBDXxTx<;ujNr37K%yO7eCA2)4QyNx zGht_!%0Omy;6v!(vr8e(I8aQ8BA-(#3qG12OdyXl|3h4b0x^3(<3>i%{xK^C2Iy%v zpvyMQL6g;}{b*4!ame_C2tT73#_@9-EaHpeE%X8n!N=iMfFfVULPwf~i&>VLSx#{S zcmf?vOaQN!w=|BlVpj$WfC(i|6=@b08D=gPIpd@mEF2sxpqpPo^ID)i$xNVg=Xe=p z8Pq|e!KR2MN6M<;T^`^Tm$9Oe9V2)x6==RznbF~Z1EeY9z-S%DDfll-kTaB>S%`<p zfk%kB5!|_Ta9Hpk)O6uxWC&{D<7?m+7Z4Etw-S`g83h;^nEwC$e}E~Q5wvF13e-o{ zgAIhqF@no{b5QvRBaDsA?U>k=)I}9d*_4&k)Zs^V@i8(*IkNC`{LA6sXK@r@RhMUH z6I0{kQ_}$v+Uk6~>Z0uIavH1=d;<R(1bI0HIE8sZi;6h~7(FxCIXKueq-=Fr7=`%x zg<zPGMc1~UB_)N0iTNm~wRDu339<(UGTy+?0GeB7Kp#1QU6>84)6oaZ1(0q!WPA?3 z@Q@uW<c`E<bO0BcU?Koaf{6`a5=?;V8_?Q+P&?xQ18BvV0|SF98@s3+BlN%|Gjmfl zb@+^ynmWAA37_Eu4L5^Yt!zr5*$q&xXDs00Ft!D!Gh1U04o83R9E1Nx$X*>)a7&a| zSVn|LP)(3WL`JxblSQ0eT3(8uUrJt@U7UrJN6$=0N=nB}?;2$5&H>1*t1xeZhztjZ zj0kw|A;{g=m>3wBgU^-r1<gZ3au{r}BB+-q3c9sL9W*!rZC68vAI!k(96`%MK__j2 z#-G5m-L{M->fmkBq9WpqAO3*{h(OckocF}Jc{P<~MWs2}b=f%$bnM)847g@V^9l$H z$;c^jvFWjM>S|azYijc@04G;4A;8VUCoCz;#UsW9N~gjGGEzz^4zgkiJly<Z5<J`@ zykK!TH8Bx+MO#G)=)4LfE+FS-Nif`Dc)-A5&MpqR7DSv~++1A{dG-jhtpRiw4X6tv z!p|rUIcElRc8QWcBk0h5b$0AxpaqOd$m&3fL2Fjb)gfbhCZN+!p#6NTVj#sJ>p*AN zz|`Rt11ScLIDy;?9y|cMS6$p(eUGlLu8S@NASSd*d6?LlWONk;nc0}RnV19xnV7hl z*_Z_dnIL>6T^Wdoj0{ADjINR(Gb8va6G3!MN_sL(>`XjNOtP{}Oyn30wu%YETt!`k zxyy8Qb>Bk060NJN%P0;``C#JT4Q?hTT04-59lrxf^0=z5t}e7s2HF?0kU@_j1vHZd z8dEWaW)ybNp#fsxtFAz2GJzIci;5tv5>ZwM?WY9yQS?C<ynse|A+?n`(go%6Oy;05 ze^5ST(`IBBXY6KCP~n%7mr<9Ol;C4wW|d>(Vc`?v<>h7<Ruhn6WaMN6uM7uGT(H}5 zvYN2zuyTTj?xieE<v^Lum6Jt-O`nC+1;mjtwN~H}5f_kE(UKJ9=M`h)Wfo;-Vin>O z=3?WM5?0ja<YMChXIV(@We?`^fbfHT!NMGlT;31?pAZIC(3}k80mcIi(hS-R)(oH< z85kG^Mfez%#l_f^6_wQNL1zVl+g{d;MskekRj@g{1q>Pff_LBHU4F&`DmF^?EX-{G zF0e7P*eltns9Gx=P_R+?!N&!@|1pD$?*xJg9SQmO1~N{<nDC!LQdi1|nVXy0NJ>|d zkwFSnnl1u2Vo(V^$Z!dSgsuYsod*m$<I<SHnIRCoLkHZu1f3QJEhHglS%S)aXb&5F z9y+A(1vhWdPk92b(*e~Hpdl|~#(;khKsz8H%P$(hAuJ#wBcp=tsHY7H2H?xv3>Xz; zL>`F9K$c}dNU*>S&?pz$iB2~Hz!#+lfX^NSrQHP#oD94S;tYxm4C0Egk!R4EgRI~Q z8qn+$qcUik2DJRIfssK*WPyl`Lqh|jgN%rQfr!k%1W*`@7$|_pqC^A~3_xqv853mw z?U4~-WDo(Jxeuz3_Jhv{_GgG;$OPS91sPldt?B{wZ$L-sfTp!TjbjiE-9@YfX)v>a zCce}_Y|yGleMU7i(2^?<Ezbx#+QrOB7_t@v(x_C2*3WjJ6vikl$->WW#VyVvz{JJj z!pq5R%+7Ai&B^P+!NnxNBF=5a&d(yrD#J>gvMTV_JTRdkV_;z*111<Z+i|e6sIUw0 zI&ttavNB3>YO@KjX>&?3vNG~=IPnUwtFW+g*zxibr|driVq2f84Ac%814vsJ(l#Qe zykQ?4<;?-=l{b)m>xi{3>d<}b;B%%;^cdMe>!?A!FZgPH_$A9oOI$WXM&Ak`OTf$^ zgL}yRjS~=|!;pnu(0$vW_90|F3uwI>7X#=tI~@kleeevb%KVJb=|1r252GME=!OhP zE(i6ajLb}tHb#RE{WLXZyq~>`ol%EZSlBX}Q<~G8@e1c3@EJ80{+0=l{RLv6yN?@o zvx0?ZMsaa@|NFstl~Wpgd%-{O?hOgZ68;^KOOlyEj$~?NOlHtv0N+0by5|&h*(#_? z0d3C!v(44b&Ey%y>>#(D@H4XUGm5c-8vmenA$0MQHX~?qKnb$oh8;Xx3oZJL%wT;7 zFblG54RpXf^opx}%p6=&TpY}jvI4S_P`0>qp%5E;im(!gm~e`?zHop5w+koZP5~h~ z4t_xaL4FQ76)Y?vXwhaQBxGa(C&0zt-=C0y+D>LL5Elni%%V&Iyey1jEMjU(EMhF2 ze3sk-NvsB39DIBnT*xH2oE78;T}%SOV1We4z%8_%zt7ajxRAktp$gP{Lj(ji7Gg3U z93%(=9yq4PqL82mEgJ^a?a=B2G*2MQ2s$7WoL5mq!H2{!6_6iD|1uBoa&a*82?$F; zmX}%tSb#>J!Jf4Uun^#5=HOC54i^X;ERPX73JD3!%*?#3PeDC5NX&qiy(fVCBMANz zHeP0CP&$O{scK*Zohcy9paD8#!W?w>w6UPNni4B`ARBaa03&!69pn@Nb2HF9s-THF zJLu>uaMN2E)Pzt6T~`3^#~XuA#B{S~Z%||5VbZr};bBp0_;-a<jI)6!K~7vwH-X28 ziJ4hll97#3Qk|KZNmv+_``ev^>k*@XHmi?2E35Xu50AJQdD+?1xcL9I#Y(8Lu&T=@ zFjnz%6)~}DFfnPcGRe!sS>UV%UgHQl(++%Y8u+|FHc0MJGq+;`9j}LSBA_`dWNsO> zUJbNj71SbN=VJopHOO*u6EntQ32OzbXg)?ZR!cT^MsBxs8<b-L|6K<k7Kl?3qqUg0 zy9Em?C#z+QDe|#_pffPFu*pHwH|PwW0}LAAb`AL03(!Hd-~?z6*#!eVtO%BdL5ZAM zNljfG)YyR(ZJ-V=NLrr}<Uu<|b2Cs00tyhuouDHHZPMMi8QIwkS=br*;_Z+R5(J$T zxKr0xA`LX=asou?v#~Q`=waL(q^V~bW68?N%3|$<a>O9}zi?DO=wL#)Qjj0PW8jR8 z2N~2sr+*70x_$^2WYAayGUpB+XjO+EYXKT32d7ckF?XP2@64f-EvL*O_di<b!WdG# zJWTA)kj|8ogOC#MwvI3Uu#T7)6FZX<6VoaP<q7R1F$!8hZm6`-Gl!_Okmgkqa&Url z&79epczCz9%lbnMmC^NNVp3vaXIcfJymV#2Zh-FNVB%yv!N9|y2$~&HH3Oe?$ImEk z$0)|G4(gR4%@&EPnVP`oDH%UVNa$<k=WAMA5p(g{eMgj2Rym!W&6G`$EmB2RlY0Vq zW3a^x>w0}nSy@esEAn!zsdtnDWtAh@1ldg4*wa;HSfylz{6HIu11!M%1R!lpeg@Df z*V3SK3^7jkQifE3!cdy=!avXk8xh6@pre2PELgB$!2=M1It}!%A;BTxKSP2;0%&}V zf#LrFaK8g|hL{GVWe%!nL1RRq`6T$npgHO;Zc&tprX!Ggela`iza5}7$mqe!4&KEL zch5iQ>|G968hoGutQ<htk1?ACw;h{p*ew99F9Dsw(!zLzfsa9k0e*4~y9oGDD|J04 z(4AAF;6Y?_6E#LXMo>NjwTD5MyQ!*yc%X~l>=@M-Xt?OHu`)A)PA_89b1C?Dfti&} z&m{mP$|xocy6BCO8G6&(zkiS$-^@L|6_^;A85xxA)R@`WnAPl*H-JenpV3hUa_QS; zW=7C$ZyXQ`dJ`N2c#ix5lOy8-1`!4Y22BPd24@CehA_~`FQ^*~>IH*h2Gl45UD9qO zCe9B!JwwgJ3?5YQhMGCMn5YQ5GU&ozP^%wwehcV49?;+wyj91j;OFe5rmoJy&&jx( zgP%oRUCqhak6VD5nUj-~S6Fy6Bx02z)GIr2&OA<KNn6nJO>O};R!|Kl=m?QyTmaHL z#~CzY={yHyssk@Kn+%(<l<>a?kcQ#{2<5RuSQb<(N~$vL04>6F)@Kry5{61b+Uk(G zT<|zLq-PHu+5wI9sKIlcjK~=gzAJouXZSSuuJD0w*3*!YIdVoshVKfW2HzPzzAJpt zd3{h?1NWtv8W<0NS08ADcesJdVp-5!9%zEm%tRHo_koq2O-bDld}{>cI1<KBSNKE_ zCjWz4#`q3o_c|%5qlO@t+`Gbu<fZ^f7r5;VAKyA@FX<y7S3&a}WDN)CygP8q8@!*> zM2%G$G^e4*2pNq7MYJuWi5lEd4<PMq#<I`yDmLj=={7d$wv3=1M*lJ)#S0_!j)MpC z!FskJ>8f-aa2o`4te{1J1p@=y|Ns9#fX_vRj1gNf_=E1|LLVs>hc?1t>(S8p@HGL# zu;pHm6HmcS3o#LPP^yFu6@muuV8Rzb8;OuN6=7j_ipa`p$jEql^0RQU=(8{juy8Sp zJ1}#x2r{!UVimOEWY++V$Y`*0F2KqRfy4u&wub;SvjH;~3qK2sm;*DjAPXnU0uO!` z7JU{@76E2vF?$vkL1r${IZmMd5vcrK2tFGhw2p!SwAur_i5-$=lp*_?KsC2GeApVX z{RA{YWugY(r4Gt~pf-y<6D)->o)cr&mgWZcNVui7*~P?U1o^>Ntbs0)QQ#Hk7nJ!| z1Ibz(f{dK3*I2k11w|nO=R&2GAQS6K(xEKM;s%0p9Gala2tLr0SCd0d&_G-{3zFRm zoY*)xSe-#9f`ZSD<O0{{pu70^8DzobqdP-5Ln=ctLnA{!qy_-_3YPp>!2@le(QY%) zxvIqSWI?qRnmI_LIpED7(5x*6x)%(m9FxL72Mr5VX(k3~Rf~TS;3)<f4Vej?>;deY zih7E02IT5c84a0#Ae9=72Q(~H|GCO&$bhv>P}EZdYk@NwU{Z_+EHoUXRaK=OG%UbZ zq$z+#lE4G?7UGJE;ufIPg<yeYH>gT0fLiSe(yHKLA+Tx*kZK8#Y6J_c8Y~McgFx$a zKzA1%U_gX@C_^$sAwxYR<dN%M@VY2?7$J>+LE-@^#Hb?&326&($XWc0fCUdY_&^~J z3qf!&f<hi$03M<+EufJ7cK{Slj1C$W|3GW5M8HF;5CRm;J3wIu4q>oZ1c-Y9M4*Y? z04WA5fe;`rXpRna4p1ZGYz7hV$u8io4rtN=eAYCm>=6?IZ7hWqWS~UN$aDyFkvu#5 ztXb^r;_M>qhuA@@YyMr};^X6DG~nV}e~6u3j9r9%_H1?$b}@GLL+m2^6hM+70#ZNS zXL4p-$e;^4M^;!7+~WlA<h5l49o7cwmO{Cpp+7;y5tb%qtm2>^8R$+VXvqm$-wN)V znHdQ{ibrL3PIDztA_5id>`LaG?4W%&jE}%)rz0&#<u-tF7#D!IYjUz1fR1njr!~-? zR0ji)Aqni9pp)Dmz>ahWGr)7zcNq^dF2L#skn_-%;3E5hQC$smlK|=g^r9kSpfN`1 z9HKHiXE~A|%AtPP6u>S5b^zQ-2)9GVY{Au41I*?BR^#+EWWUw}@O=o7y3C$|0e$T- zq^O3Bh=Zz9W_U>r>36Y0$C_d47&Q)n;u%D^fe0=T@rVyhfe0jd#sz#_phGNBiGM%f zVuuj&3=E+0E>ySrGsH76m_t`*z%n^In)`&&HYcIi(;)wVk~GL~pd^kiKb4Ow7385* zE<Pk?EliBhjZqpT{qHFkA0H_3!+8=&5-$QkYCyy)5Wxi^82$LbG>G`;fM7GO0Lg+x z`To5_2t)4fL5VAn|MMB@K{XEAfsCNDGr`?oQ0)Qg6@$)>2GJm2f?^7N?gM?lG<qni zqQx?3>oLqMkR718dSvsFf@&KdR~pFoX<U2?h_F;Zh@OLoWjjKiu^BE34}ZQR2u+L~ z@KE}Ng%t%C(?bN|4s3!85b_ytc~CvW{{Qd)-Av7l2N_ry)ESH!+!=xy;ux|R7|i(? z#m&sw)lEzd&8)#!<fwsXr$HTf@Hm+<<bY*!&;-3YsJ~&ysHz9rC&tgnCJyQsfzCWq zV+9?q!p_DH8YvdnV>Aaz@G+X}F|vcsFO_3tXFD&gz$m1Ut`M2RDkdkXARwipQkpI# z#G=5arl_y0%q7LErlb<f$jqxF#K<J0Aj~-1d78JVEQ<oWv_z0&imEod0*lbUyC5lM zuqt;=V`c#pduvfHw+LPxK}N7HX2#PTS`s4M>{}Qa4Mka57{yuGEV<N0H>)Yji3l?) zD053lEo5WkXXj*R6%=NZHdU44VU`o!tZAs@!mXm9s<}l}EgU2v$O=|;klj&3SeBcU zS6yd59|tEptAH@8v>+?^jOqi7jNtnZWf)9AJ1^NFEje>B&@}?!n><WSz$bc%i87n0 ztLejb-hujU&}@AGvhqMdLCIQ~QOQ~fbT)<n7b`D|jD`#gFDsY60;8fns3l^is%oWb zplq$AY^`jdavD^D{(B%Q$i>Hc7gX=vW#!`%6jd<Lhq{Y_@c@G`gEnY2pD<(~lnrz~ z7vyLx6Udb}CZL<dpo6BM0c=qbHt<<0rY4}XaKN{3$T2>!2(VC4vQ}bLwpLO|U{ugY zcAUJbnW`Yau#_;rAY%f^NvBl|l&zJOtd$K^ml`ObJ5NzR0Mw=ul;d~_YMH*|kOTF7 zKy6QOI0`bTg4~Pg22ukQ>LkK}DlI6-kqL52CWo90QK1VN6N1G1z_=IOsMj1i?p+BA z-<8C>7j)L#0VWp4!=T;P-~*5mV~W^VqU@lqvOS|Q_`Z3@yE4Agdd84}JtJKs@M;QX zBt|4Vp9p(o%0D4K4i3gO;%qW{Mvy^4V=Ro+NOloE_Q=0NCX%43SMWKCpmj5#vmzuw zyR8MG*%(%Lzz-#2RRSGH3*IRLIvEaBn}hGIv1T+9mt$myAY(bmnWErQ7IaMtqU_dy z%snv*@N%)Tv9hpn2}sC_u&}cVx{4?%FzbjaOR@2AvGKBSFmiA!OQte$bFr{V3o&+p zZfE5J5tks-T;Ifa#2Ll71iAQ?wM3a&ud%YrvvISqsY&r^2@C27b4u}vD|3koaR~_- zi11?i53(5*(OQDfv_X%(1K(-K#;z>J#tuQCMy|RZXp$SefE=`j!`#f=6ufdnTnteo z89|)KXvW6E#m$r|sm#s6$ic$P#>K-Xr7Wt$te_;~D#*&tA|fjxz{SSG%ErpYD=j4b zfDi0B5CJ`Ii?Lluh)YP6OIe&xic?reP*{skN{x+$n@ygb^%^U)sFpH6mmrrIqd1Qk zFKFpBcwfMN#zw}2pi|3KVLRbLO(jsp58Cqyx*}1`nh}2JFzA?m@J))0T0B~ys{bD- zfVs4I)WjwExH=dmn7EiE7(2N5B*kBqf!E}Ni83Ksc@-|c3??Q678V00rVKtVRe2du z7=zEUZ(v|%PynTIVMS3zRS_{`&>AxEA*7(SZ=h)_$O1DZHg(9NQIPXMEj!Z&@S!pj zWJF{{{wavafQo+^5yl4~mH{6Z;%-z%1<>hA;PKW384VdIBLw6FaK{GHZ#lvE1AL~p z0cb=Kz5-8=Q5e3A3OvGwvP{biI`)RVzSNwVS%Za>#nF)kbl(!QlM@;rc@p^FaU6<Z znn3&7L5&v1M8*OJWd;UNKLRrS3!gYZ8g~bu46Xh-g_Bc^ONuikg;R=4j1xqo@DJb+ zPl4)#&TH%kpUEfBpvl0%st$^F&^{{A#arxb?9ip;;*gaRYO0{4YmLmzRoR%Tx*3JI z?f9kmStKP{gf(`v^0J7qFtIZELKy!9^#ctQZN&e*7v{?5X46m=kCfIk;^XG#bFiDp z!o(`c#>?{062fRO2r>{CyA0aH16mt>fH9HrFoOihJ;I=YY0zLaD20OO<xNf0LC#|a zpY8w}j1dt7&5E&|1v!IXQoxQ|2z-MS*ljv;CUTs7ocfCFoSclSK$aWnN=J#SsT%|t z7z7zW9QCh5&IG))Nl~AZkCOq?r-Ge<A<du#s-aQNz+eYm^aNUA2U=RLW&%1}4|H}D zKO>tSqdlWI=umrcF*bEIC3ZG7bI?Q`(rN+409I~h7DYuCW^UF1wz&|B4I-EzWiBMb z!pP08*`&$N&B!7mWR9GK_8G9S@~~=Xu=2377%=lGLTP4*aDa@slpGf?v!Ea|FPEH@ zxD0qLEI8jaGVn8iPd<j-CkAd4ndmXHLT>GZEO-HpyQ-;!&c+boV`OYNU=m?s5@7<N z{`G(lxCIl84u%Ti;tGb~vkDm-Od>Ks3Ns>14uD16td*3kV^v~eRKTi1NgA~Oh=IwG zv5`Rlv>O1l#v0sIGyxq2W+ca`4jJl&9L387Ix7QWE7)=*Qz4>Y>wLh5g9)%d|AYFK z3mCK+^uebgf{qq|uLV;E?f#TyL^|`w6f`0M8n7@nHBnbKHHI%DM|AL&;Y*j58Ncgs z@*0B|E*XRF3x@R3q2z&v1_wxY9YR7@EjPT>;{=b01%NIi4u;HUL&#uW2Zw*)3ws41 z0^k{M&@>bSXkXm{#v_a;L2YYBP$~zVdMPf)2u^3<t3AQ>CTPi%5qJ@k5%|P+5F4}! z(~gmG4~LPGrU5f6vn(q!J1<*`vVxKk2Ro0T92*BO2a}+v0J9Q{n2Z>U60?A)AQJ~K z2b-KA4`YIoF$cFY6BDB_GcPwYi-RyHhq02prMQN3u%!|=FE3X&uaFRLHy1B2w~}SB zvxc}Os7wdXnH^*hXRrnDC_`E351!RkS2Hm;Qw7bogNiFq0SX%Z1!Wvioe3TK0j*oK zXT*Ki<iFEQEG(vsj7m%#OiGN5rYtN>($bhh*YRC3`GT395p-<=BRjLUHWK^a4<Q*L zNcsV_aX|ZNKxaTOFe)oSy2GOIp$B-Y2Qj)0?@&X|$6{kO7FAYMHZ^9f_}~FLbpkwo z1KB#v2)WN0BBH=6?C|eELINX0LIUFgg#=z<ND2ZciVqMHoR~nzUMVCvI3V&+BV!_i zBxsIZ7=CgbC>eu>qoIQ+ro!N<8hJ)zP*(@EP)AG@n!HWb)lAKm`N7BS=`$&di|{jo zG%Bf?3Y(ZEhJxlKe}afGc2+Z1_Lq*F%-XDMtc+}IEIQ1bj;!nwU~x`HMn)ldW)34x zW;r27Mn+C{R&!Q%Np?nAc2;eWc5PPnk06@SgrlBUR9IM)x1NKI_1_Iv4mQ?Seo-N_ zP!5hzGa*s_R#r9+Rz?k0Hjw{7a}AI?)Isxo)}Vd8jLN2VjHZa=t&~BVWZ(pN+W}bK zjuGBQgWtRXXD~K6$f!7gPrh?dkpUr9IZn42H%>WK2N{(Ekae9RC=?@u8keCwWM)C$ zkV_4O6^uA_EG>07jTF?l3=cx4Qa}T}G8!^a3fixOoUaX9ziPrjaP2Cr2?lE8z}Kqc zT%rnU>3~}?pyAmK;3K^i39d*r104mfrwAVFJiz#X@c{VzQcwzKlV@aCQ({*K&+n;$ z?jD6MxB#`fK&Robi9lB}fQ}>=$C4Eg82~h6r*1AT2EMWvJ_*Zs#h-(XRWLv~L|H(D znOT;Zi$z#ifQ^mApOu}TO+Z)}vfD*OK+N7y1(ak|!24hzOhbFIKmj&>_Lq>QS&Rqx zSp@^d!~{ej`)Ndk1zGvoS-}<v3q!>Ol(mfgxMjemfH&blncRNHTFL=XoBtiq2VeC8 zX$ykV+yMql1}6pv(3P;DFahnr6a}X>CFmkGc;+YQ;}Wog0+hAXoz!u73gm87PpLbp zlj3afx`+de2N@4CNFq)E76eyn=HMz7a?&qo@EWve8nhA@M4Jkln1LGD;O*p~NH#Jv zHHVCpfHs$-u=%(OIGK6ai`aRXISaV>*jYiF*}zLE9*D@WvodC|vj6)4+4BWG;T1|T z=E!jI3A3@YvkCKYf#SgU-yTqNozaDro!t{O77t!pj*S4PQP3Hp5Pvb?@ewn4389)g zGsH*OT{~ZdQAYTiuneOJJ1b)vD?5hMO#bZ>mXZ=?bYq3?Bm56K!xYp{G6BttgHFcR zXM~WT{J{q56oR_mpdJ&5EyBhQx^2<O4AkERRRSiAmBC6}eC$DrTzqU993mVUY<ygb zLF{~7O2O=WTonRBoE+Q}xH&il*|{pX_&me;gxMqbgxL!?I11Q>`6Aeb`NBDb`6Oid z*+oU!`FI5+`Gi5`3TS-_lLO;Ha60t{rBqW`2MJn1fd;cchhxKXDX2t&^w3SA9a89A zEa(_8V=-|xRgmM^&CHFNG&1<OK;63xE<Oc013Nw;9$sz(X;pSm(af$YZNSaTBgAKC zAg93h&rndvfr(q3u}hRsSe%>5fw2K{FghQXg|vy761#*jFBgZ0oD>fzGxJEvd2n#? z3QMpniJ3@SaPc+rN^uG3YI4|dOLOybXzDUBgZH(8=3qf*Fc~p0n1hye!*;WZv#Wzn zgHi>Zf6odUnU!NSSB0z$GZloFF-A<>>^Ioi7(ukJq@AQM8#@zYJ+JV;Wy~y$yo_wj zjGau5x^gCR(6tI4Z0t-{Ox)}{+1VIHV+CSFn0VOs3G@Ej6UWHLtjEm4n4@biXClWq z;hzJfl!xyf0;LOm24jY9hA9kh7`}qmae|we>UxZz@p$No?$G$KX0!vHPiPDw!L1=R zRa0YmMrAcbfs1r|52&LBYNm?FGqNE@^2NmAT|T6%e9T}A$MhM^U^jdrYCu|Bz*Hb0 z%<C1*DaBvNE4+c76WoXu6m#}*7IOlVg6yDEU;~ZUu(GhSu(FD?@UgIPaf2H)+*~Xy zd@SOutSoHIte~=hu#$2})%=98N_N6ZpoTqg;1$l`<`w2m;ADrKXDO$oBnQG^S0*?( zJRrlRSnP+ceF-4aG+tJ578X#T!GeZ`MVyrv9(qvI7{KNKeen4w+Tar|oEdyT<rU~o zT}ZJ2o<BDNt*kaS0`=#OK{Ysp1x||a6&dhjPE|pzM#QQ0Ou1IV(yGF|{}OnG^%aGc zxVe>t74?~xFzGw#GYPSC{=EQMf>8{i7@5`BShZt7mk3G;3tzSp2KQ<HZBWz)t#Hy; z<lx}o0G(*h!NJKMCIwvq4_TM-fK?mHhxEH2fY(XeGl2XQN+^#Z4GQQp8l&>S9#sRM z&<2^K5Mfh<F~DiqAQzH`7w`&$)36aEqnwG2i5w%N3!G&HNz1<Tprr>R4<tD*aNrg0 z0HvS?VO~h%or#lG&O}bmM2?k{37HK}Q3nzpKnfEG32*N*fyzF02GD7>b`ZbnGor?# zH6yrcChgXTf1qZqhye7=aZsm&z{L(A4WPLU5C%IK^YRApnFHWG$f}@Sz<i8KYM|m7 z)D^X71TC}{0WT~BjrxLC5rS?fV=6x+VDDqkf0&Jh*^-%u&60y3vKg75!;+Pk*^-%s zF(E-zN=h_=nU}4Ijg?u3g_H9iXzctSCnt*xGb>vW8!srVctQ0t6C>jp@aUlfLjXep zLjgkr!vux}3>z2@FkArb<P<hDHxq{(^$Y4QgGOT1l-S`nKdPCDgG*~zlg<b<;e$HC zN}@byMFphb2ek!AHxFIEDgpahU1Fo6VqI96ShQJq*uq)a8QJuc_1GBMS;N_QShQJ~ z;=%1+Fp&Tz!306(KctQ6Bq?T8fZh%Gf|VUfBV&Y%goK2I3kxrsD=Q0=G7}e@ji8_n z8yAx@6AP;=8}A7XQ1gHkBAQ6W_|<{imymTwptED)>ujwVL9Hf8`ZWP%KTx3wx@{VC zf=<9+@Q%8#psSvE85=;UbHQuSmO9YMI^e~(2Sj9`%X$@LL>L`JWd1E+RA2!2XPKH9 zk1%jD2t)6O7q??HR|B;f<r$$zy|96H)Ub<-nVFiYF)N#cCMm&P4p{T8I8EA9-MvMZ zm9^)c5Tm?27q5202QC&4=`;>LCVS!cjy9feL6rp)XuS)gxvFiHIJ30{n}Bh+O|BO= zOT3|!oL8(WGbe{f)4vs)MNfb;H<$qBD@gkbbk~L|g9Yg1OI0<{JS}L=B6vES4Yd9f zw89oTj0qjs1l={Fqz39ZfNl~nvt?9c18uwn<t#HMT@7_@Rc2mhMjn0{WqAn!5oTUy zRV{T*c0MKn9j%JyN-bS}Ccb}XAf-QO+lZ18=vbpIDr{_KY;24oyi&rvGGMj}D+jxc zu9lvjmaYvuC+}=XUBe41q-Jw4o)H4Yg%D_O2xQC{v~Sc1)Q>Y)0&PpjGC(2*suQq? zv$L^6moI_3NuVO^fxD)TEE^XWTNj9s)$q`e0R?j>n5V7v?<M#|0Cw<+05)nGo@>Ej z3MSU7YiMY!0W-nGS`SS%$of+-7ZmQGb489b{$$(<y5j_N`iDC778cO@3lq@At<X_e zWhFJp_&aC`f-z)#l##(OLP-UDp*?sjhq$$ZuAiQ+ub#Z6I5TJ-f<-Y*-?_-yxrlKG z@&*nqQ3+kYXkT4XQD#PF4Q6g;IVJFc(vW$F|0fuKG9Cn-Cxf^_88os4+PeWhu>kB8 z@LqIrNE_S)H08y{ZVXZ-!gd9`>%xGQT{+RrrO?s2&_zE?k%d`_g_A|xM$sTpUq8@5 z+e<Qum7V<oJ1bbRpSrelQG21Yk{k;cixM-ls5p4sUR@D<d<rO>SQ!}pgTiSC0}q2F zgBpWALlOf6Xjdj=z}m!)5#_*VcI07XcF>(Wp!!~%ja>xPGZNziZ%|WLQ&(mK4Xg4o zf~p8Jb2C%W{sucnP!9^!Rgz<5V`KoI&jGpg4;+->YgnDZBjVuUXA^!=Q8`i3R#REf zwU$h5e7wxe>@2LzT+FO2?99x(d~8h2+$`*}rflrY-0Vg&3JNkt?A*-kj1$0TH-HHZ zaPWf(3&bG04#-?N(Ig%gdlfMmHg-N%Ha2!)9wBjYAs%6NHa1p1b~YI?6?+yQCT?DK zCLU%M7G@qMc3#jyO`x^i4;Vi%E@Y5m&|+{vy1x;Ut|3X^o)NTNj~VTZXjM=dC=0#* z0d)Q?7&CrgWtL!P{a3-tF2T&o`huDH1*^or04_dOX2uK5tbG6KR9Hc$W3Z}#_7*Za z2r#ok`hKj;0<26COiU3>|4#F9fj1EgaPfUOz|JZn!peRC1VHNwe*NFY#Kw4x0d((~ zHv@wzXabIpQI83<yaqI0ECSlu3tp9OB(4sjK}ujFQ+AAcOrX;iM8p|En*ku3zeL0t z#f%sYSXgvr{rs#&L}Ya#GjF=0S~jA(%v{U@%v{X6qBdHhy3EWP%v>zGvLYhZetxpL zEG&#d;_U4I+#xF?8F#XaXran$AZfkB%nUbD1J$;Fg`gFcj5{GKEC0E(!^WBpFoO0E z8AIB7;N>Qewu3F`T4cyoQlMfKQWt^x@8COoKqZoqm?-0fA6nMhd|V1#e41{-u9_0y zaTU-U=Nxe*ad9Q_1L<<wT5<xQ*-imXH%%=!&2;dr1(=v2C@wB&03yKi!Jz#nAh$56 zg63VpnHaoV3#UtP+m6>-P(B9Lg`o3}4lsx^=tFB7a9V^e`2=m*)&{K$0IdXsBvsG^ z4brHa7(1xC0X2oe16CjgqecK1Uj#1~=L|Lhwi%pUyb*lo__+QVfPCMfC>|iL*ulkD z!y~}MBf#STrTDm3NOI0#W1GP#xq^$21GZzI1GLhXgD;5#q?U&RLLtqKg2tm%Ky#zu z+p9sR;z3GfG5D+~IO;&Lrp{FLMNw1TN!`eor=1OLM$}!!PDMt9vF-=gUSTJHCv{u> zOvwBv%RehtCRQm{-aZvO6)q8(1JLxs1X|O?!=S{#pb9DcAtju+GWbLo(9L5YJ3+OY zi5?>(1L6|j<>tyh%I3<}N;2SmP)gPdz&G)N2?YTGC2M8Su>c|h%GOG-@eT0)C(yXH zG5Ea1M9{gS;4yain5Q17s)CMhn1dn+oN7Q*Iclcj_KcuYDC8O0l++>aLcVPS>_Rp8 z2shXa&~e`md_n;U0YZGBx|LTrAR$1Qmz|SSUq)nth>V4Xfrf<#kBSNpkBZ6?g8~C% zR~eB2@J@jM5gFHP$gx%F?3@am54259wZW@@;fx4SLYDwF6%4=z@bFBPmuK@a<`R*C zTo^AS!e#7J2^qoUWH&GX-QWVce*<)H-$4dYn1k-LCmiZ%2PuNfD3b?>nb2B6Wglfh zNW>?I$f(#c%FD2DvSfk^B^ef$Ko&0MKIQ}9iA*q|ARwS(r=kVQ+FB}hDh;yC%o(~Y z%rY!o%t0*7z06$D@j%%8v?zlH`mS|Y%_pp+rVgsV!Pg)g8;OadTtV)vVq)T9Vxpq$ zE6s1Bz|115A<Dw6V8So$i#+F?08-;&@^6KTg0vzdJ3FJIw1NsaPlML5F@g5ug7yiT zf$wLAq)tefi9@EAKt&g5(hq!~u_(KVxtca8iGYUKK_k${ih7Ld5DgH`j2{q*Sdxv! zhJ}rdg@=VrjfL%l5HB}USVk*rBp^ch0XSuYiD@7$J|M!3jfG7^jR_W@5<YXlAq*xM zAp41%7!QKa83|;l1f9R4ZVn#G<!1zq%&Dt^_7{T&=0J^Nc}6yIb~aEW!JZK`7AGzS zIyoIQ6bEWFsDsAe>=?yF*ibX7lDabZtY$TJ(4iBi;4_=m(Q>c3nkiE<Gm8`}BbNjV ztE8X^o1!9{h@ccJi#Qh}t0W7HBpVZ#I18&3Oh%HGMS_cwwFfj5AuIdu4k8%dFflW+ zb8!js$ndamfeJD%7G~r?OW@~W@)i~4XJ%87WMSsxW0zwC#VMN{J0Cw2i=+Y@Ge34& zK4!2ikBo*4qpXI^1aKIFiAT&VY`pU7yprs!94zcoyqt`%@aAM=1+Aq3_uXOXM3cdo zfx#R(!qLhyHG3vKMsapFF?%NH-dS;TGhF#en1zueOxQ$#ospZvw#%bKja`IY%R`GD zTXy2+@(2@^m}twv&B)&6A*IF+Rw)ARr$P3if%3dI=$;vT?gN)(dW`0v1xuilV4==u zmtz!V2Xz}w^cW9-$AN4>gF)FGN^VLV@}}}KB8&<mGV-QdAY0TTSj4r&S!AV!MHx4W z$jF%-01rHY2?YTGc~f~=Q2v*dH<br1js-18<>25KHI~tp5s@>IV_*WGV|j@2FoO_i zZHg+pIv*1xH$k1JDlW<<0t!V?heDsx%tYN3bgwXM{S0V}r#_<^=(H3uM*H}96>vR~ zAR?n={cklJ4>vy(D~lEjD-%CAj}sp_miZDm+1WYwiHPjuWM{9Bk7rc1QRV`<kxSV| z^%J8tyCjDlD<>zb9fu^lsep_uI7uqY%7`=Z@iFPKu;?-IfzLb#?MVft1yKei1}jis zO%-wt1WJ9TW~z>yLRdjFz@SzUxY~fXmp~nL(D@vqj1C;EY|KbSgCr+X$-uZ+LElLq zJem7|S6Da}bc}8T=xPX9GUXS10QMr7P%r=uQyPHpeg+euAx-cY6sT<tnVaHa5M=<> zj>v9g2en8*O%!uc@Kr2q{ESL!rs^hU_OJ!e;-C})8JGf<iRPw|zO^WLJ){z7d#br9 zq~e73{q-1;YLQUL+Q=I+D(q|u%xo;oEW)ztGQup(%#3Wz@@yO`GHf!|GTb~uVv2f- z;(`VaQo@XB!ct1sNLgV8Wc^{SA*+t87Aq$sJ2MMEGaDm|jF^;^gfz$?0cI9P7Di4s z9a$Y#Jti(LW~LxkSz%D)NLZFNki*+h7c^a_t8AkRYP-YY6129+2-Knl#StQUSdqgA znoZC=$W#EnG66*V%LFGG@ZuqiD)R%l=L{wcz|jOI&}vFhy$Gt4!1JO)4BDWQ220L> zj*7!ua(axQ6$N~Zpkw<*l}*eTT~kw)EEHu#7!yQf6fOSk6j9;jan=F5PFdAXfLB98 zTtq~CLISVw0^#{-Y0RqDN?M?tprvH3nj*lbX$p3nx}vbCq!ur)mb)-7FL(|Q<Th}9 zsmx#iI=uqa?uL#(!V@-9ix)hTPE;5|#-Abk!N6ezV&V@^kP3DTeR#tbR9}M9{~-n| z20I2PP){6mH?uaQnW>>2qX}f$FX#|jHho6W7#BNe(VmEyxS<H>ZXtO_l&Du@SC?l} zw`VkE168e{+r7by<sb}wM$nopF(Y$PHpT`CW-bnEAvq;gMRp!;Zgw#)89qK4E-`j) zZXR|;RV6tgD-JFeNjX(WdRKm{WhCLCAYsJF$i~UW&Bx8p&cw&W!N<eL#m33T#LB3b zro+}_$H6DB$R;Q($R;i!#>dIZ%E!*m$I8mdCng~d7FLw!<FFC3Q-LOT+gS$`G%6}I z6tbC^MLF1*nAtc**+8uUW@c6nF=l3FZZ<Y<&^Qz*j6nArA7l_`kY&&Umv5l^ry&PQ zgW3+DwgULje0EcDHg>eef{D2)X4^nrjVZ5~o4c5UOGHRPR*9QiPFhJ=oU1K?MN#VC zd2q4>XPRb4cBCROfs0c|N_L|z3yUr@ABU-)mb@%43k#2=oTh;l2j8B(YF0W*`@snn zOlUAMF~jR^7G+~A$ezOeOrSYW&>8g%tg4_T9^g&c7)wIIE9F%A7@4a6eNZz{vUagh zW}b}J_xbx!Muai$-$Q)|u1ma5n#$Hn@@5J}XuTf|EfJY}oL<nj8K|BB?R{4V*Kwc~ zec%EHvL?mML>)A^18VA`R2Jf<=nYIGb9FVQ@@OGxe?B3hXijO)SWeJ>HW5C)SBTJC zEGmc`dgA<6GQm;8!o2>{LeZR@v7FMNdz<(~_#%|8z@hDCrJV1{2CG7Ztz;l$%i#N= zc^FjC+c@m%=E~w2wKP)s-fW<tkf5Ld+Ux=;c~DAj#r+)?79IORl`f>H0hhqYWiYHv zL9FG0ELZ>?&kb9}BL-T8XQGbUKt*edf=V4dMkYU9$h@td9%Q;!7mfcf6%lk8rS%0I znqY>=fs-7Vz%0VS_mM)zCP3{mylq8jV+Sc1G2DVw{b8{SvLCUDaRImw;LDK0(9STG z(tdy*qnVK$BbzF`g=l09%Jrc6RZz|cXCV<eMscLBfw`Hvv8lS6I=hlOtYc)&sAdXJ z@?xOX1myM+K<#x#*?%#RV-tQcGBNXt^9XWraxintnb;c3$(gh>F*7moaf5md?0oFp zj2vt%T*``^;AZQ8wm-sB4pM5uyiTkd+1NV=M0XuP+ovIipeZmaN%DX;s!75c%ZHd5 zIe6sNMFcq5I9Qok8KJFUF0P%zYElZk!pc^#{iC3Bv_N-f$TR3LI57l(@*4E4FhzKn zD=V?fF~W8@g3d&SAMl60C4w5%36QX2yal1H9HfNhG+3Q@h1LE&gSl7E1fy~P9}!ZZ z+ub2PRWngj5Eigf7UoruQUkZ}!30_}pBL^)&|aYZOe~B?7^D~&K=%QFt4O4EAm9b% z>S~M+q_j1|6ja#QMXz&m7;}nq98lNNQIS_*VPRY#&BCG}ucD)+et<)q)0l(vx+puF zib9yCHe_6BKjQ+%Lk!@)j<A8Dn5YOFXr2_Z5Lb`U)WqD-4%Ej56&QAmVxR)o+|-Uy zOqd<A+6i<b4rmaJO<e4PfT{v7BR`h|7e6Dff~o+Mm^dRNA0r2om>3fWBOfE9xL74W zBOkW~XjD$YU09TxhjC-PlA1ZsJ1%~Hu6I1<YD)2(92{J|%uIb;92{JIOw7Gp931~{ z?&K2S<6^wP#b={yXaGI419ZmJK?cwo9CHS12788Z1_n^`8Z-$jstlUB16L4Y#-b1! z)cFBj*A1dUW2wrfMrNS9AXSY;l|iQku_~JyLk?C3^)Nt(l7mVVV{jvki9r~2|Lg%U z32MTD83=BIg2KNAp!;DI7!yDgukZoLJ#!$6(E+^v0W?3A0G2@I`YJ#*gBA%ZfE9pF ztbnXThMcznS_7NPzyKW;CSoz7I;blII;xNrv27i?BG?wXHOb7H(Ns;{%v=ndOW4(5 z_h7OyDu4%0ur618pbuUv$ru1xlnI_uhA`!&M7hPC_4S>_xkc5DK+7E&1;ArB>c)QD zCP)gwOcQQDW5`0zY)m<J5h-~IeJ6bh1xb1ET1Ze^9=zrabYF=YLm)#GXw91vc*Ux+ z61$kV8K~k{QfFfq1I>z=nt;}xf+EjEja3QM+7ctYTvZRTYM99cylT@xS<6Tr%~N8A zg3Mg(?Ek_+9>lgtRozJ);xF(5RYNg(6t8G08wjwlv--2LJAgfgJz&(G)S=-F$)67x z6&V+R&pje11rQURM8y>N?Dq?d4;eQyNHNHPR(-%574VB3p+}gpE1Qcm-dn-U#;nA| z#QjN*O`2a*Ok3_7=ul}TrbTn7_%pJtU}92YW@F;{C>Ja*Bm|OUR$^jznc@#Q_ZQsO z6bGOD>&)QJz#t6Dh@dz%1`&wd4VtY-KUIYhk6I6K$^so_dx4pi)!V^=@xk8(paEy5 z1kmE1j~LPoA3$ROAHa8+f{BEG55WB@Fu{l^4Q{hQ+R6%`(O6b>J4RDM6HsSJR2{si z1AV$c1hiJhoRO)@oJUYVf-6r!M&yehdW(4>XwXQI_unKgEk+?;Mn)b%W_IsRiA^Fh zwy<_HX#12DE3ci13^$_`IPEYnFgY-S_WMX<o}?nqE(*GO1MD=|Nx`6DDVbGyd0Y|# z0uqc3G9r)zgh9e;-t)ZKnFS#>gV$;v0I&Z6_5R#I>&;BTtxZ#NGc|oicF+P%(7sf8 zMp5v|)!<ST6my`cft0`qmbo1xqp_$myQ!imQ)Q$%Cug}d8#DX%?d;5K(&e0-=8+ss z9OmHQh8!CWA<a3M{>2|S;K1mhZ|ESzBEn+iAiyTT5*EfHz$V~e#3I5X<Y34u#3BM( z@dO^yhYaj<vKxr72r-H|EO2mOVEg~||8d3-jC&b483Y-m8PpgILHF>0clxu7fmdj# z^MTH~6E_2`d;nc?z|O`l$7pV5&c+T}9w7$W)XJu=CM?IuE(TinaGz1sHC|9eRnSL3 zOxe|)Uo!p|o3V+pfwlpYp}W4K-6S_T9xe6Ybz)pLuDU^rzFwBiTIy`Nx-n-h3>Avp z^p$OrSEwtfO$e|{ZujmsV&l^-wwD%=)z+32(KO^@WVBY(SCN<D787LbGHrHc<Yx=0 z2hB|}F#P|=*vQzxAk3i3z#xoRGzz*Q2vkKYiL3E3$}x%XG0A~04>3`@9tk<c0kp%H zPo#uHgp*a6n_HNbQ-niQQj)PEl8<Ww7hfbh9~WZ)7hf?eo1ieakeCp+upk>NkEVep zc;4_oBNJmIgD`d*Z@_He5a#0(W~@Xt5j@s<j>&;>6N4~=I)e>pH!(JMo2&6Lf);X# zfQAsDZf6ILFrW*AuIt6^!ABe-+$@}imX?N`EZia-HZCqQx|$p!Tr8ZjN=mYvEL<WS zn!0`Hp@8OQ9X3`05mv>FvJ6F55dl^<^}4>gqXxl}Y@mY_gl*kyh1rA!S=l6mYcYch zyhmy;qcixt1WN`l1_ohp)ypO#CJs7{T3HFS4goZOEyoC&@U~|J=N#~sF3=)q&~3)x zl?!%^YG9Qjpca`K=<)!4#tWd)e;Ju#2~HjhWl<3xX<jAJ{swVLHg;AXDSj3XZX0eE zA!czYUS=^CZe2lEPH}M_NgmD*tXxK%!ctt;oUD8z;!MnppnbA38ZuLPWR<j7S-4sG z6!<{uxcRtQxNQXFd7OCoy?A-q#CanHxQ$!|C3(2nI3y(7c{q)@q=Y$bIC+%BB$-&j z{ongcjEoByWI*YWQ4!QV2MuLHSE_@Tq$+}LB{4y|uIB8&W>8TKx=UI{<lh9)Q3;H_ zqH=OhkhMOH4xkA-b`cp>>3;{LRUrq0Uw|wf0?jRe?=)*<Ji-7u`z9ECQw7QbD)ieu z)X|nbn5(L>v+{wi34+ajgSSY4M$<us7APO7GyeED0aSl57Jx_;_CyvI78b^QW>(gW zfA58a{(ayRU}X+qW)<dRtm6{~GX?k(z_kdNKw=&M3xJ94LJp2XHVM9eD?t|g0JR%` zfLM&-d=j9|QB41T|3ARQ%6Nc55<C~o3|et+W(pc_76lKlu`{!QY7{d@P@sdFMvVVF znFYCR*en7p*lf53nLXKMB^Vb-$o~5c30NjZ6&^l8e$f1=fB+xQzdMqenvCJFfCY_p zL(U!qt-3J<wY|ikOKw2B<B_A18F`c!biSJ$BR^;w4CD~T15#4pg)LH2Qfg{aj15w1 zYPYn#w6(p$K!mm;GY=0dlM***@d9ImZaQciX}YeO)V~8@<qlG6{~4fa!@RU-__49F z^04{yD2R(IN`TWF=pMC044Mq~3=FF9g`UbvYWj>OX5w;8Z0zFD)k)f*zMz;qqq&)w zx-uUl_{KFeb9GQl5ww`e%$)H9A2SP^BaalDT@Q~ClY)k{q%xC&1Zxv0byl*ra0;+k zs<QEHlVG#gk~5K$m*h0E)ekf<4HvbOVdG_1WaH#%6X1R-t;WcxVx-Ef2(G&nxHzhX znOI~r%|RV)ekb8bbAv#AE68~zpmomc!SQJU>F0q)LPbE!X+fg}ps_+wkzm3Knq&f% z8s^}Q(BQEgb5QRLTojlvRfm@p6qJOsvMRCivUtSD#Ke2B@Ukkgg0hRMnX2jr%Sn?g zL9#roTA7(ztURnrtc<FGGBPqUfh>HiN-T`5PU7O?;!doLEK00=2SIwwR6~rEm5o?I z(k#l7lFBR~DQKMo>YprN;0KMagIZxIX#u=62m8$@@a^*#kWOdKU}4c<;bL}nV&P)Z zU}14~hVq@6A$;(DBhWFf;KBHR_i!kKX#=MTnENC#+du4}>!*wrK`UvHU7_-?0kWY9 z)w%^CpjE2iI`07!149A>KW6EIa@K5uj0ohII}y;q8HhY2$e_re4c-d~y7&szkTr$u zT4EPOJx!J!BnRrc8Z$A-h#2TAUI4WKMPyJ~WiITjPgvRiFirq9)GjFMgKkfl0%Akd z${2uLZ2}s<{r!JGqbm5GL1hL8anN2$eMX24pcWdqg9L4)nVP6E8;dL7&@gde72srh zz{V-S>R_TFD9*}!ftgi&^%C|?0;N3R=9@sLnr<===P4Bz1eH&M;*1LdK<fwpBkUq* z6E0hD*Z^8<02-$Q-ATKEA(SDKA(<hAp@^Xjv=R_BT&boFJ181-H6N&C1f5B#4BeF@ z58BiRDa}Fi5KxvJBdBn<XEcW1r(zG<<pmld&}KAOG-g*8X9Jm~rq5_>&txnQI?-O) z6vQ)ERySrc0fn%EFz6aMRyIbyJP}4VRvi{LMv+`WMs^l0Hg-lKa3t7qxPerLXfm>~ zShBD)YME<;SgdS}THw95ZtVZ2268y5vobL<GBPo9tNAgp@~~$zGchqTv+$_%I<p5d zGJreJfuIAc!@^itSwW3mR!-JHu&@G{+zt}n4k5t;3JPVy5-faz0%i`J;tFK~f_y9z z!e$N%pfvIS|9&P`#-j|7IvUhN0bSV$T4V~^Y6aTcW@OJO20F3;QI-5*;$`)A;r3!> zW>@i&mKEZ?Dy(WMd{y0FPFm!jHDpqeF_@j1)r;H3o0XS|Q$$)eK<%2asjBc*ULjc- z&wo21vzPFG-T?;C_?;qyDMK#<1N<CYaZoV_D(-~Q>S$(VK}FDA)}Y7(wJ1Olr4CwN zf;7|tJ^})C79?l~KdADtW<*@yhLvRk-Wv^Gmjc=-sm%y7O%$~InvaunCS-NdbEKXk zyTLyOaK{4NZ=BA`+>rsw0~rqBh8TFWn1};Jr~@Pcm1boYU}l92gWEHFoC=_34Id}y z*gw$1ZO~Qe{~Q<-{z3XV;L76!GphnvuL5Y#h=>4ay_SXyR0tvgCPB+GnI*tX1y*Lr zy^9YRa~T(c<`@~lM<1{&gAU>X&ov@v2grg?(1b0t7yuvo0t#GhMpM|nGH~W%jCbT< zHs|MI;^5*mXXbEZXJ-zu0;TN;ksJ_}!_I2K$_`<QfG<6?3Sb5;3oTSu6_*w(WanX< z#?Gq1%C0I6reZ*vV!%w$K0^go_GxUO^{b$Df}p<HP6p5%J7~Qx1IoD@@J)Z<lXs1k z^cYP*>zl+x*uVmy^n-NLhBKt8170r<Ub$-mYVJS;k(W6A>wvU-8Y}`J>u^E)W*|bK z!iPbK;U1_K0JA}^WCXJq8H5>lpyEsntPJu{HZy}Hg9?<*!XU|D3uUu1a5IEK*=*ny z1Q2t$7_=G6pyJ#N!VC);m>C#ZK&OyMFl>Rc85z_V&Oq5r3|tJKploIaBZfavHVcCh zqaKva${@y=0A;f=Xfc*S*<1`^j0>P_ZU!~RZ*KW{B?^w^sm1xZsmN>vQw6u8)YRbo zoXiv~;tKdB!cvQhGxPHlO!bUGnxW>K!cBBf%}XsxEJ;mKNUBsQE=xBmDM?dEE6UGR z04Yz+$;nqJD9X=DO)k;PC@Cqh($`PR&np3m>m}#sGPp71GvqOpFeorMGL(Z)?9FG$ zWk|&-uE1c*puph9P{feRkjfCukk63Akjaojq<RI4bc8XaG88csGh~9@404GcgE8D@ zRQH==aicp!DnlOFj6{YKhE#?W1_g#BhDrtnhGK>?hI9rah7yJnhBO8RhBSsE22ePF zd<qGlRE8Xe9EN-b1%?8!ToywrLo!1NgC0W$SXTjq6@xy5K0_MVZ6MPj>h&0s!6re+ zlNiAJ4Z&$1jbPSdWMX7yWMO1wWMgD!<Y44v<YMGz<YDAx<YVM#6krr&6k-%+6k!x) z6k`-;lwg!(lwy=-lwp)*lw*`<RA5wORAN+SRAE$QRAW?U)L_(P)MC_T)M3<R)MM0V zG+;DjG-5PnG+{JlG-EVpv|zMkv|_Yov|+Sm1YIZY!05>6#OTcE!syEA#^}!I!RX28 z#puoG!|2QC$LP-(z!=CF#2CyN!WhaJ#u&~R!5GOH#Td;P!x+mL#~9C;z?jIG#F)&O z!kEgK#+c5S!I;UI#hA^Q!<fsM$C%Gpz*xvw#8}K&!dS{!##qi+!C1*y#aPW)!&u8$ z$5_wUz}U#x#MsQ(!r02##@No-!Pv>z#n{c*!`RE%$Joy}fpH?^B*w{%Qy8Z*PGg+T zID>H}<1EJ6jB^<0GR|Y1&$xhbA>$&(#f(cBmohG6T+X<HaV6s_#?_2#7}qkcV_eU; zfpH__CdSQ-TNt-8Ze!fexPx&g<1WVCjC&aOGVWspoilNe@et!-#v_bJ8ILg@XFS1p zlJOMdX~r{*XBp2io@czkc#-iE<7LJxj8_@2F<xi9!FZGL7UONkJB)W3?=jwIe8BjS z@e$)=#wUzV8J{seXMDl<lJOPeYsNQ>ZyDb)zGwWv_>u7w<7dV%j9(eQF@9(K!T6K$ z7vpcnKa77F|1th&VqjuqVq#)u0-gE9#>CFV!NkeL#l#J|9+ruZiJwV;Nsvj1Ntj85 zNt8*9Nt{W7Ns>v5Nt#K9NtQ{DNuEi8Ns&p3NtsE7NtH>BNu5c9Ns~#7Nt;QBNta2F zNuSAp$&ks2$(YH6$&|^A$(+f8$&$&6$(qTA$(G5E$)3r9$&ty4$(hN8$(6~C$(_lA z$&<;8$(zZC$(PBG$)72JDUd0MDVQmQDU>OUDV!;SDUvCQDViyUDV8aYDV`~TDUm6O zDVZsSDU~UWDV-^UDU&ISDVr&WDVHgaDW9o;sgS9NshFvRsg$XVshp{TsgkLRshX*V zsg|jZsh+8UsgbFPshO#Tsg<dXshz2VsgtRTshg>Xsh6pbsh?>A(?q68Op}?WFimBe z#x$L22GdNYSxmE;<}l4=n#VMsX#vwhrbSGPnU*juWm?9xoM{EqN~TpztC`j?tz}xr zw4P}L(?+IEOq-duFl}Yp#<ZPj2h&cbT}-=~_Au>b+Q+n?=>XF~rbA4JnT{|WWje-m zoaqG9Nv2awr<u+$on<=5be`z~(?zCBOqZFiFkNN3#&n(O2GdQZTTHi^?l9eDy2o^% z=>gM2rbkSVnVv8`WqQW+oaqJAOQu&$ubJL3y=8jG^q%Ph(?_OHOrM#)FnwkE#`K-( z2h&fcUrfK5{xJPz`p5L2nSq&+nTeU1nT45^nT?s9nS+^=nTwg5nTMH|nU9&DS%6uP zS%_JfS%g`XS&UhnS%O)TS&CVjS%z7bS&mtrS%F!RS&3PhS%q1ZS&dnpS%X=VS&Lbl zS%+DdS&vzt*?`%Q*@)Sg*@W4Y*^Jqo*@D@U*^1ek*@oGc*^b$s*@4-S*@@Yi*@fAa z*^Swq*@M}W*^Akm*@xMe*^k+uIe<BkIfyx!IfOZsIgB}+If6NoIf^-&IfglwIgUA= zIe|HmIf*%$IfXfuIgL4;IfFTqIg2@)IfpryIgdG?xq!Klxrn)#xrDitxs17-xq`Wp zxr(`(xrVuxxsJJ>xq-Qnxrw=%xrMovxsAD<xr4crxr@1*xre!zxsSP@c>?o9=1I(x znWr#MWuC@7op}cHOy*h4vzg~G&t;y+JfC?1^FroD%!`?qFfV0Z#=M+)1@lVgRm`iI z*D$YTUdOzic?0uC=1t6-nYS=+W!}cTop}fIPUc<AyP5Ye?`7V{yr201^FiiA%!iqe zFdt<;#(bRl1oKJeQ_QEC&oG~5KF55X`2zDr=1a_%nXfQkWxmFIo%sgyP3Bw7x0&xS z-(|kXe4qIN^F!uG%#WF$Fh6B}#{8W51@lYhSIn=O-!Q*re#iWt`2+Ju=1<I@nZGc9 zW&Xzeo%sjzPv&3DznT9q|7HHi{GWw^g^`7cg&DkKosET^g@c8Yg^Puog@=Wgg^z`w zMSw++MTkY1MTA9^MT|w9MS?|=MT$k5MTSL|MUF+DMS(?;MTte3MTJF`MU6$BMT13? zMT<q7fhjSCCov_ZD7Cm)Hz_|q8_r2iEJ|TZOvx%OF5ykgEYeLYN-fR+wIz5Gb28KO zbdyu_N>Yn>AsmpZ%(O}_2rnl!t%MuGEXqvJDB(=Z$w@6r&rB`mOw3Ix%}LBlPE}6K zO)bhyPR!FS2AP(Vn3rCfn4YSe2{N^yD77RrFP$whFF7N>NH8%kJttK+CBHNYOqJ)M zih!&WLQw;@l^;c@w15l7FVBNAK^nOsqF@~y5O!$+Yhqq{Q6)=aUUmj&VnIPps%~OV z343Buaz<uZDwr-$tQ1WwD#|Yh$>=6$79~TShA9fNMGQkN*g|0p;nD&@h!~QQs3IWa zgizFgjp9cU0{Ir~x|Dp7Z^2BEMsA2IunrCgyR?7@%qRx?Bm<dK#)XiPPAo3YEH23` zOV!QEEG|jS%gjsHEv_ssNzE<hNGvW%Ey^s;W=bq!O)SYtEM`e8$<Gx`EKSMG*G)++ zPA<wUD9OyvV@)hiEK1=_N=(i!E=WvH<p8ljLcB?d;8dYooSc}G%AAy#$B~qnm!g}P znZllwSd^TflFE{lSX9iLlvtdal$evF3nKWF5{t7_OF&F8pCu`=B!f38v7{ums8TmI zx1gkw2gXY)&B=jtG7@vr_+c`IrHMr)sYPNieo01AYN{?&w3s<5HH9T9HMNK<DK#fY zw>T%UID-Ym<Vi}c%1kZNO)f1eOJz;UOv*`RPs&WLOwLK=O3KX3PcF>?J2<nbBqJrU zQa3p<JC!{tCp9l6wTLw-Co?aFB`H4#Oq8%B<>w}`B<1I&f{1iZP)5|vFG$Vf2D6G% z6H`))SU_wJ5Rsc$l+BZrU!DVs1CZ}IlJYCS>Y0=BD_E2AD^iQulZp~Eb8=EyL3EyA zQc-4VT5@7>s%~y-N@j9m4kuiMKdC4`F(o;%xJ0)kzZ~SaqWt_^)}*4+;tb}b(sYib z(#)Kc%sdbyCnqDnD32qlG$*GxwKA0@skA7MJ*gC&c9@e&i+Phui!<{;Wl2e9ZYo!D zVh$)6O7e?%K=GQFl2`;vWqfc>az<)$HiDa*nO9oO3zsd(DJ@1wf=n#tfJyQsg9?yD z-J;ZzqI@<8ha)*LFE24E6Qru3xHKoVm^~R{BR7bKMldIcom`YyoWTKN6=$ZTGAAb% zaU~}frIzS|GYo_Y&M*)rIKv1+*u|iv0V<Bl^H4=V>V;6$fVJ_X2$dFqY)viEEiC{^ zl<0!97}#2n!%B2Pp5{(YEh@=O%S=uzNfk=YNX*Gj%1<mx(Je_$OwLFx;z9@sBxfWR zrGwHzaY-U5i-F{dK&GZ9a)RVabdx}S%SbFL(ap)sON9y+WTx_f10Py;K{=2z7RrHm zlohNDBm}A<GK(|v3%HXrKv4{K6BmS?otc*oRg;|uD)XV@1&QT(Q00ZCsi}ET;iCNf zY>>gl#lp!Msbxj^c~EzN0|H$P6tE&_>cBxOh$dKC0CEG^I8Z#oIUoagVQRrTLGA#n zD=lD6&dAJ3VN1>^ElSSdftI^@`6bC2Y!D7ha%M>-e{xP{0ocd7-~i!6@ImDvC!EWg zoRgoN4I=YW1(S2~i&Il{lM}(kUuIsqP;yRwX$shvIr)hxpxht;5h^W!34rvLrf?+Z zCuf%=X6A5%N<ZDCB2Z<>0%Efz=clEmrZOkzr?VvIrx&v(=V#^>vnS{0l;-9Yb0_EL z=BDPAfQ;sYu~YJMauSPp5ZsbtUKj^lq_IPJ{7|}B7ovp&#s}#wNK7u#P01`y2B|Jc zEG`Dg7J!-#e98HF$(gA|>8ZM)vXMJEKR-J&RW~WKB$W-qW=YO3sN@6@;P7Wn&M!^Q z;7%?|P01|L1+_Iel8f>SK#pbsF<6s}@{5bPz+^^ZW>GOnv>YT_p2w10nv}{4B8r)l zOG`LX5=#<6^#V&uYGN9DN@{U-NqzxON=9N)ZensqVs=p?XG&&bdR~5UYB6U@W^$@- zT4q@)l$Bpv!~qt|&r5|ciZd&?z#`y^03udWp3edj6H3WU&n!vI(Je_#&d5(MN-W6W zO35rrO$KGXVz!jbvdolJ)|AYus!HaRyhLtDAcC7XydZX^Zdy)aNm6PGE11WYlAo7Y zlFFTupI@X4Nh_RSHmL09O35$Lg{Hui{IXOIP?83v5rLGV#57R*NH;k@7ZeRVDMg9p zx&`?;mFf9;yeUPcxw^$Asi`>yiFqs_9!E-PZW1V7SU{o8nhF~1;Y!WP$t)<&EY{6H zFw2Be^U6|l@(WVIwTW&?YDEbziV#1X2PqvmV0^aJ!qUW?Vz$(x#NyN<&eYPPe6Y89 zQY(@(67$l*O(>z%isYQcTyQ}J^_mE>P)SiHxCzFMBq*3#Q2=fVfEqF2iiQm$BA8lH zl3J9Pm;)-;vOy_F0#yX!LXZS^YGtZ!N>P460mx~UsgP=%IkhsCHw{$p!I~jFU|w2& z5vWbVoR(O@otBzdl939owb-F-wzSmT#GF*_G*B^@TBMtmTEdZ*327tpKp2pQA{T@M zY6NkDnV`(e3uWb%6eT8?KzOi-g=k2vNKVb+1}jUgD9A4=fe2^jCZ>Zd%}LeG%moPx zgOz0FmF0tyG$=hK7D4QXiV1)fK<j%@FhFFX0uVPBq@?kKl@)-h{(}6>yb?hOzX;K6 z;{%I;+UbcUrA1IjK*}qK+d!#4AL7UI{Gt>Vka`d|M>nM?vjD`+0TH=uX_+}CsYTpr znR)4{MFm9=+lo?kQ!7B}xiqslBejSnEwd<<GcB{IxCGSxV@b;_&frVSNlb?nys1U0 zDJ&o^Yg$fXaW;EePHAyQY6?$UeojhikuJCi!42hrvJs38s#n<{;w+#MPTsWqd_>cc z9UAE@X+`<zTxmu5<$2&NzzSyarj_R9rRG4(M7FfjlBE0`_VmQu)Plqmj`YN0-Gb8G z0@n1zveX>r^weCgbZ|2-C$+ekB|S5(L@+%kvA9?_H?gQBGcQv&F{gwVMT8y9OD*O} z&&f|p)lEzT^^EwS97sQ@m<!4+&P-$lGda`qbJD==UiS3-g3_YIT)y<8#FSEK?n*2W zN-s)HEJ-cWEy+mC(*@^G9%Lc*^rFmMP%AvWC^HY_D1I;_DK#-yx41ktv4j)O=LWMf zQWJ|xiUq;!;=<C*yb@50q^KAo3lZUh$d)7)6+@UMsfk6!LSWI7{JiwiR9%Qd0c4@_ z%)D%fDG)Ufn?a&1AY~wj73gN<7iCuE=anSp@TM1K7U-6N8cE5CIUE@vBNK~KSu+xI zixY)1K*dEyKDf=Q3wE;rico2B3J<aXH<*)?S(R9n!Ubj*Bo?F=L7AzE$*KGhQBdvx zSKY{bP}>4xJ~;R2f~z-PBn_nn5Zl1gsYRS%siOSkY>1-b<jmsY{Gwurb;SiRiDKQ1 z)SQCMymVHOhGMX`;tWtHA|tUlqa-n%EhDiqJ28hjBPE4BBQ+7!Lgxd~1sVByso;W= z3&91eC{8V51&0SGm`qAdEaA#X&B;v8F97ArjLh_m97v(Yo{?Exl3!HGosplMom#0| zP@0_0l98XA%9D{_TmY^C6LU)V;hf^i+@$;*4j7+3Bfmtqq%?^&Bflgyhc_d?v<RHS zbyM?F_z*mBHw?ioE=epZ;e_)!GC_T-;`}0x%oN?E#FX?@?o3cqstDX_Vu!L>!Q~<w zm@H<^%uC9zV9U%)NzE(a$jnPAEiNgl<jBlR%goCxspQVgOUsAWJ1ihJ8^|Y_$t+o^ zDVeNUpy=hx$}a`iDdicNIXT6w*@=lsiOkull^ofrmEh(dTQ(>@5;?OoLG9tx#9V$b z3zSwNiH!xs=giJ5&(uxIEK1?XNz6+D_1HiR@E8YoPGUhxet|BiI$(paxpERq(=&8I zS&s+8gk%z^ILL5TusC;4Vr6QPZhBFEX#q=4YGN8|PHJv`9zUq4LCWWxa6Vs7Y8klX zDhFqA9tgJ-+|uIA$xKVtEy~PG=LE-lQfW>SOHO89HfK&|Q6jkd<^VNrL1hCwn310Y zp-XdEKzzQO{A5UR1MbCef?B@dVv_~L63)rbONaJv5_2G3D|9hX?h!##2hKr)Xo95$ zTsisWx@DQ5$u6Fp()4uDXi;)vQ3-2qVtQsWTW(@{UTO(vZenJRZc=GZHVded=F3ei z02RC0so+Gzh2SD&z?C~fridM+s30?s6GVe5y<+Cv!~!-@6s8t&=Oz|`+Qy)vC|)qT zxTGjQJ5@IWg;xeq2a#g|sbkGeO-amQ%S}zm&Me`~P0i3v%1O-2767q|@^ipl`P9nP zV&>e`47S|V-29?S_T1FG{G!AR_T1E><kF%_&fLu8qWt8H%mNWG3!KqGaRX`2@SzF{ zAaTJ>d@h6lgjt-NUy#ZJt}vmQ0?L6joLIp!T)Fv4(8diLgvpnipO;#xo0OT81F~Eg ziCdmn25#r^qls}L_)sZu9}1+M8zKefbL8gdm4f;%EV=pldAzy#MJ0(vx&^7lB{`{V zx%tI~rKw!G`6c;9;87Od-2BqwR9$GX%9>kRoSDp)ms(nqTEv-`T3!q;#5wcwOCVJr zZ(e>$YB6m1gC{=;)Cz`VBt9soG!LAw*z+@UbdwYFnDTSk^Gi!WWeImdBB-_lkBRU= z*q}&DEn+W7%t<XNNo6Yljd7N6gDur9$Vtpg<pi@q{X*V?#G=IHjM9=+-K6{qP7n{= zbzm<@ECO|$IY5ngP?L_YAhEb4F)b0)49+ahWd(6lc?uFi{)F@dSiv0Tg2Zyx0#MDw zUXTjT*PI|aEio^-5-gIJnZyMWfy5+pL24d|o16)bF`k0dJP@;}G$*x)ryw;SG{Bjh zSX2bkTLc={<tj)8)1Ve7B$a_v5D%0M9sq%I%0Ru&R93JIS3zcadZlhsVqP|D0jT&C zD9A}nPSwp%(=E?0D$d9(;01>as7%N#OU&Vi@KRC>5{p0$OI9$SyC4TNTm~LeWdX5S z3UW%*xk2qWXflPcA$|i%7PA-Rg9otK3i5MubTe2$6mvm-K1)G<egOw4WQ!6rOSlU1 zOY>5|#TqBLxvQI>mc~+0lvv3NB0z&EprXB49Mq+S4O!|Y<(HH|8u!9j#Ced#Sivn? zu7aZc<kXbXqSRu3=*+q<sQ+1%n9Ea8T2+;ks#}nmnw-j32p-quFDy+h26Z2yp5uV= zISWfOQ&KWZk~6ppOY=)ob#p+&>JTQlh-57+ElSK|D@x2u$<JjkN=;79EGPldpfN~} zqSTapPzGZGF}R9S(?O%QMX4#AMX3cjmAZ*JIjmq7dr@jhd1`72TTy0GQhpu_XfTkq zC_gE`gbmb4NiAV5$}cTR<ti#JhBmX9i;9c6ia;eGI4t?V=?K&pP0GwmO%Z@_5sfvd zJgl|G3YO<8DlJG&1?y)oPE65FE~?}J(V*5MOL1aZDqC@KMt*({cX4u2YI#agW?5<x zZ*eMU2p-xB=ZErORS*x94=%O1p&U@6VS}(aic?clK*cOuacWUnY7tv;Mq)u~u|RP~ zViCB|g8GgVF2Dm}LDCs3n8RJ1k(!;F19mr8aYklp4!B-n0jF&c0cx=6f_jnM#Togj zy5Iy+%mW%U1Ir{Ort>3lK%>{Za6YIqV=K-8b;P)fGfKh9t}HQ+8&n7BLR#p&U^Z;B zga^#aF9nbFuz)yhAR;k`6HI}!6nk-INosCl0c&w~X-*DjaZYARY7wZ<Uz`gn)j<so zE(jCc#sD+9i*xfq#S$nZvqRaO#d-PVX*r46sjS8M$=Su+#rZj)vN<s?HHW`AA2i~a zQ;?AeZXNR?@k<K?AiUiC(mY5LfDc)qw15-L1$BW1!7NY>P?VVrHVI-fOr*4c9jv0X zfCWS|7Z)V*f~OI5p`pcIT#%WUms-SLT#y4AzvC<h<!ew;&JBq~UC=B5Ka^dRpAQZ= zHVB`!xFj*RKoHaj)dh7Rl0hBd)Vva2un4HB3d&8Ka2`ZFKTS6!u`Dx%2P~eSrVDCP zv4A+d#U-f)y6}+&Fb~?v<Ss5rEy>6S*T3AwC7H?DmAatXiMtrwECiQ)oFI02Vo7oa zhy_WZte`e|DqC?$QEFl?H;76t(JjkNE$1yRDay=FEy*a#FHO$?$>ir3lqaU8=5Q95 zCPAiO*osS&$`dOEic2#~z!L$W3Jf%=4-;T6F3saEE-gqcf@t6<E(LYbi&MFZ!R`Rf zJg^s+XXfUDvLc8Em6!$j`8k}$m3fKj`RS#p9L1G+$)Ipz0WsK%D?yFRRGyMV(9B&) zYF=JuF)NtE1tuZk4`H%HsA4|w&{}RPsN<TLQ^H)5n9fp?m|o0Ml30++T9R0t4PsVg za+Rc}mSliio2+0aM@ec?Zf0I$4mW7nN;e}F)Ro}^v&%D6N-{V~GIVnii_%lsL5$4e z5~h+2-jWPR7daPXt{`ZrCpRBrH+cF;09gc-cu)jDi9#4z1*l>yNiC8>76XqW!l#qC zk)*gwGD>rkK&{F0JWeRPv;e{?Nleb>0;P;pa2WA`CqJMy1S^=sRRU^}fa_%z5R<he zvnVx%t0X@iG+COTmc|KV=CPOL=jSBlSFo1k=a*!#mVg?STqXHMnVGuji6yC=B}IuT zsi5{PZ%I*NT3TkZF1S0uT2hplna5vJl$cix8PEX5EH@G#q_a2!BnnbnoWW93l$y#` zQj}kiQOR3URGOTv3mUM@%u9#za`W>*Q-wSbx!n9R(6j-BQ;?aQU0T2j=CG9%XJi(Y zFqf26GL@9^mF6ZDrRL-$g8E0v85}S!XDMhd4K%62QJM#>>_7~G(mYUgQJk2go0y!O zT3pNp704{9WGl@Bb#S;!^FTcmkjp_L`N`RAknt?O(qhPHAEZsq0pmi&K@Ix6#L^Nj zusFEU$_-(HGc8mYWHdx)a(+4|SROR+$^&Ml6=kO8r4;jmInV){REQ#wK6bEpZVJRG zaAgKz=4Iw(B|_AJYBh+p#i_|fsU=W0xH^I;1}6)M6G{@(p^VH_h$J}quz>6V8&|BG zoS)7L;uiCkmZattXXfY@7v$&XaX@*+yk)7$CHY0r3X-QRHLnzuYC$akE(izQ!vQl{ z$}$skSV2TFH+WbO5|FH5Hd|R{Mq*JSe_4J`PHH7+<`O)9#SLjhf{T1EC>xZ3q0G_( z_VUCWP>sY^4sK<0mM0daW`J7%eC6O=t_vDr1}zwXaJkAeQd4u1LGuPI<(X-jJmr~r zDf#7)5q5qkCpWPoGdHs;70%Dh1M~Ty@<plO(iX%`)rE{+B<7TGm1pKbxg6#Bki`pZ h<wdD^$r-E_x<!eV9F?gMQI5*YJl)E~ymSTz1^}tqoi_jg literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-solid-900.svg b/website/agenda/planung/webfonts/fa-solid-900.svg new file mode 100644 index 0000000..4f5aa88 --- /dev/null +++ b/website/agenda/planung/webfonts/fa-solid-900.svg @@ -0,0 +1,2444 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<defs> + <font id="fontawesome-free" horiz-adv-x="640"> + <font-face font-family="Font Awesome 5 Free" + units-per-em="512" ascent="448" + descent="64" + font-weight="900" + font-style="Solid" /> + <missing-glyph horiz-adv-x="0" /> + <glyph glyph-name="ad" + unicode="" + horiz-adv-x="512" d=" M157.52 176H194.48L176 229.22L157.52 176zM352 192C338.77 192 328 181.23 328 168S338.77 144 352 144S376 154.77 376 168S365.23 192 352 192zM464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM250.58 96H233.64C226.83 96 220.76 100.32 218.52 106.75L211.15 128H140.86L133.48 106.75A16 16 0 0 0 118.36 96H101.42C90.41 96 82.69 106.85 86.3 117.25L140 271.88A23.995000000000005 23.995000000000005 0 0 0 162.67 288H189.33A23.99 23.99 0 0 0 212 271.87L265.69 117.25C269.3 106.85 261.58 96 250.58 96zM424 112C424 103.16 416.84 96 408 96H392C387.15 96 382.96 98.27 380.02 101.68C371.4 98.02 361.93 96 352 96C312.3 96 280 128.3 280 168S312.3 240 352 240C360.46 240 368.46 238.27 376 235.58V272C376 280.8400000000001 383.1600000000001 288 392 288H408C416.84 288 424 280.8400000000001 424 272V112z" /> + <glyph glyph-name="address-book" + unicode="" + horiz-adv-x="448" d=" M436 288C442.6 288 448 293.4 448 300V340C448 346.6 442.6 352 436 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H436C442.6 32 448 37.4 448 44V84C448 90.6 442.6 96 436 96H416V160H436C442.6 160 448 165.4 448 172V212C448 218.6 442.6 224 436 224H416V288H436zM208 320C243.3 320 272 291.3 272 256S243.3 192 208 192S144 220.7 144 256S172.7 320 208 320zM320 83.2C320 72.6 310 64 297.6 64H118.4C106 64 96 72.6 96 83.2V102.4C96 134.2 126.1 160 163.2 160H168.2C180.5 154.9 193.9 152 208 152S235.6 154.9 247.8 160H252.8C289.9000000000001 160 320 134.2 320 102.4V83.2z" /> + <glyph glyph-name="address-card" + unicode="" + horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM176 320C211.3 320 240 291.3 240 256S211.3 192 176 192S112 220.7 112 256S140.7 320 176 320zM288 83.2C288 72.6 278 64 265.6 64H86.4C74 64 64 72.6 64 83.2V102.4C64 134.2 94.1 160 131.2 160H136.2C148.5 154.9 161.9 152 176 152S203.6 154.9 215.8 160H220.8C257.9000000000001 160 288 134.2 288 102.4V83.2zM512 136C512 131.6 508.4 128 504 128H360C355.6 128 352 131.6 352 136V152C352 156.4 355.6 160 360 160H504C508.4 160 512 156.4 512 152V136zM512 200C512 195.6 508.4 192 504 192H360C355.6 192 352 195.6 352 200V216C352 220.4 355.6 224 360 224H504C508.4 224 512 220.4 512 216V200zM512 264C512 259.6 508.4 256 504 256H360C355.6 256 352 259.6 352 264V280C352 284.4 355.6 288 360 288H504C508.4 288 512 284.4 512 280V264z" /> + <glyph glyph-name="adjust" + unicode="" + horiz-adv-x="512" d=" M8 192C8 55.034 119.033 -56 256 -56S504 55.034 504 192S392.966 440 256 440S8 328.967 8 192zM256 8V376C357.705 376 440 293.689 440 192C440 90.295 357.689 8 256 8z" /> + <glyph glyph-name="air-freshener" + unicode="" + horiz-adv-x="384" d=" M378.94 126.59L284.7 224H333.92C349.22 224 357.58 240.6 347.78 251.53L234.45 378.04C237.88 384.65 240 392.04 240 400C240 426.51 218.51 448 192 448S144 426.51 144 400C144 392.04 146.12 384.65 149.55 378.04L36.22 251.53C26.42 240.6 34.78 224 50.08 224H99.3L5.06 126.59C-6.69 114.44 3.34 96 21.7 96H160V64H48C39.16 64 32 56.84 32 48V-48C32 -56.84 39.16 -64 48 -64H336C344.84 -64 352 -56.84 352 -48V48C352 56.84 344.84 64 336 64H224V96H362.3C380.6600000000001 96 390.69 114.44 378.94 126.59zM192 416.02C200.85 416.02 208.02 408.85 208.02 400C208.02 391.16 200.85 383.98 192 383.98S175.98 391.16 175.98 400C175.98 408.85 183.15 416.02 192 416.02zM304 16V-16H80V16H304z" /> + <glyph glyph-name="align-center" + unicode="" + horiz-adv-x="448" d=" M352 404V364C352 355.163 344.837 348 336 348H112C103.163 348 96 355.163 96 364V404C96 412.837 103.163 420 112 420H336C344.837 420 352 412.837 352 404zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM336 164H112C103.163 164 96 156.837 96 148V108C96 99.163 103.163 92 112 92H336C344.837 92 352 99.163 352 108V148C352 156.837 344.837 164 336 164z" /> + <glyph glyph-name="align-justify" + unicode="" + horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM16 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H16C7.163 164 0 156.837 0 148V108C0 99.163 7.163 92 16 92z" /> + <glyph glyph-name="align-left" + unicode="" + horiz-adv-x="448" d=" M288 404V364C288 355.163 280.837 348 272 348H16C7.163 348 0 355.163 0 364V404C0 412.837 7.163 420 16 420H272C280.837 420 288 412.837 288 404zM0 276V236C0 227.163 7.163 220 16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM272 164H16C7.163 164 0 156.837 0 148V108C0 99.163 7.163 92 16 92H272C280.837 92 288 99.163 288 108V148C288 156.837 280.837 164 272 164z" /> + <glyph glyph-name="align-right" + unicode="" + horiz-adv-x="448" d=" M160 364V404C160 412.837 167.163 420 176 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H176C167.163 348 160 355.163 160 364zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM176 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H176C167.163 164 160 156.837 160 148V108C160 99.163 167.163 92 176 92z" /> + <glyph glyph-name="allergies" + unicode="" + horiz-adv-x="448" d=" M416 336C398.4 336 384 321.6 384 304V232C384 227.6 380.4 224 376 224H360C355.6 224 352 227.6 352 232V384C352 401.6 337.6 416 320 416S288 401.6 288 384V232C288 227.6 284.4 224 280 224H264C259.6 224 256 227.6 256 232V416C256 433.6 241.6 448 224 448S192 433.6 192 416V232C192 227.6 188.4 224 184 224H168C163.6 224 160 227.6 160 232V384C160 401.6 145.6 416 128 416S96 401.6 96 384V143L72.4 175.5C59.4 193.4 34.4 197.3 16.5 184.3S-5.3 146.3 7.7 128.4L133.3 -44.3C142.3 -56.6999999999999 156.8 -64.0999999999999 172.1 -64.0999999999999H369.7000000000001C392.0000000000001 -64.0999999999999 411.3000000000001 -48.7999999999999 416.4000000000001 -27.0999999999999L442.9000000000001 85.6000000000001C446.1 99.3000000000001 447.8 113.9000000000001 448.0000000000001 127.9000000000001V304C448.0000000000001 321.6 433.6000000000001 336 416.0000000000001 336zM176 32C167.2 32 160 39.2 160 48S167.2 64 176 64S192 56.8 192 48S184.8 32 176 32zM176 128C167.2 128 160 135.2 160 144S167.2 160 176 160S192 152.8 192 144S184.8 128 176 128zM240 0C231.2 0 224 7.2 224 16S231.2 32 240 32S256 24.8 256 16S248.8 0 240 0zM240 96C231.2 96 224 103.2 224 112S231.2 128 240 128S256 120.8 256 112S248.8 96 240 96zM304 64C295.2 64 288 71.2 288 80S295.2 96 304 96S320 88.8 320 80S312.8 64 304 64zM336 0C327.2 0 320 7.2 320 16S327.2 32 336 32S352 24.8 352 16S344.8 0 336 0zM368 128C359.2 128 352 135.2 352 144S359.2 160 368 160S384 152.8 384 144S376.8 128 368 128z" /> + <glyph glyph-name="ambulance" + unicode="" + horiz-adv-x="640" d=" M624 96H608V204.1C608 216.8 602.9 229 593.9 238L494 337.9C485 346.9 472.8 352 460.1 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H64C64 -21 107 -64 160 -64S256 -21 256 32H384C384 -21 427 -64 480 -64S576 -21 576 32H624C632.8 32 640 39.2 640 48V80C640 88.8 632.8 96 624 96zM160 -16C133.5 -16 112 5.5 112 32S133.5 80 160 80S208 58.5 208 32S186.5 -16 160 -16zM304 232C304 227.6 300.4 224 296 224H240V168C240 163.6 236.4 160 232 160H184C179.6 160 176 163.6 176 168V224H120C115.6 224 112 227.6 112 232V280C112 284.4 115.6 288 120 288H176V344C176 348.4 179.6 352 184 352H232C236.4 352 240 348.4 240 344V288H296C300.4 288 304 284.4 304 280V232zM480 -16C453.5 -16 432 5.5 432 32S453.5 80 480 80S528 58.5 528 32S506.5 -16 480 -16zM560 192H416V304H460.1L560 204.1V192z" /> + <glyph glyph-name="american-sign-language-interpreting" + unicode="" + horiz-adv-x="640" d=" M290.5470000000001 258.961C270.252 269.11 246.4000000000001 270.1600000000001 225.808 262.851C268.4140000000001 262.851 297.016 242.376 311.386 212.275C319.9620000000001 194.376 306.238 174.204 287.769 174.204C306.198 174.204 319.98 154.068 311.386 136.1330000000001C296.661 105.287 265.2630000000001 85.2790000000001 231.088 85.2790000000001C230.5310000000001 85.2790000000001 136.617 93.8940000000001 136.617 93.8940000000001L70.211 60.5470000000001C60.827 55.8540000000001 50.396 60.1680000000001 46.316 68.3280000000001L1.86 157.253C-2.307 165.868 0.749 176.15 8.806 180.874L66.878 213.943L108 288.139C114.39 345.384 142.731 397.906 187.743 434.865C199.134 444.313 216.084 442.646 225.253 431.252C234.699 419.858 233.033 403.185 221.641 393.736C209.138 383.177 198.023 371.227 189.132 358.166C210.804 372.895 235.811 382.898 263.318 386.233C278.043 388.178 291.381 377.897 293.048 363.168C294.993 348.44 284.712 335.101 269.986 333.434C253.87 331.4890000000001 238.866 325.931 225.808 318.15C251.922 323.863 284.52 321.288 313.887 307.035C327.223 300.366 332.78 284.526 326.111 271.187C319.722 258.127 303.607 252.57 290.547 258.961zM263.3180000000001 189.489C257.206 201.994 244.9800000000001 209.775 231.0870000000001 209.775A35.46 35.46 0 0 1 195.5220000000001 174.2050000000001C195.5220000000001 152.7770000000001 213.3300000000001 138.6350000000001 231.0870000000001 138.6350000000001C244.9800000000001 138.6350000000001 257.206 146.4160000000001 263.3180000000001 158.9210000000001C267.7640000000001 168.3700000000001 276.932 173.927 286.6570000000001 174.2050000000001C276.932 174.482 267.764 180.04 263.3180000000001 189.489zM638.1390000000001 226.7260000000001C642.3070000000001 218.111 639.2500000000001 207.829 631.1930000000001 203.105L573.1220000000001 170.036L532 95.84C525.61 38.595 497.269 -13.927 452.257 -50.886C441.325 -59.998 424.4580000000001 -59.03 414.747 -47.273C405.301 -35.879 406.9670000000001 -19.206 418.36 -9.757C430.863 0.802 441.9770000000001 12.752 450.868 25.813C429.196 11.084 404.189 1.081 376.682 -2.254C366.661 -4.76 349.13 3.389 346.952 20.811C345.007 35.539 355.288 48.878 370.014 50.545C386.13 52.491 401.134 58.048 414.192 65.829C388.0780000000001 60.1159999999999 355.48 62.691 326.113 76.944C312.777 83.6129999999999 307.2200000000001 99.453 313.889 112.792C320.278 125.853 336.394 131.411 349.454 125.019C369.749 114.87 393.601 113.8199999999999 414.193 121.129C371.587 121.129 342.985 141.604 328.615 171.705C320.039 189.604 333.7630000000001 209.776 352.2320000000001 209.776C333.8030000000001 209.776 320.021 229.912 328.615 247.847C342.648 277.243 372.654 298.734 410.581 298.701L503.384 290.086L569.79 323.433C579.198 328.137 589.6179999999999 323.787 593.684 315.652L638.139 226.726zM408.9120000000002 245.344C395.0190000000001 245.344 382.7930000000001 237.563 376.6810000000002 225.058C372.2350000000002 215.609 363.0670000000002 210.052 353.3420000000002 209.774C363.0670000000002 209.4960000000001 372.2350000000002 203.938 376.6810000000002 194.4900000000001C382.7930000000002 181.985 395.0190000000002 174.2040000000001 408.9120000000002 174.2040000000001A35.46 35.46 0 0 1 444.4770000000002 209.7740000000001C444.4770000000002 231.2030000000001 426.6690000000002 245.3440000000001 408.9120000000002 245.3440000000001z" /> + <glyph glyph-name="anchor" + unicode="" + horiz-adv-x="576" d=" M12.971 96H45.365C67.172 -6.735 181.944 -64 288 -64C394.229 -64 508.853 -6.62 530.635 96H563.029C573.72 96 579.074 108.926 571.514 116.485L504.485 183.514C499.799 188.2 492.201 188.2 487.514 183.514L420.485 116.485C412.925 108.925 418.279 96 428.9700000000001 96H464.116C443.826 41.683 379.153 9.412 319.999 1.985V192H371.999C378.6260000000001 192 383.999 197.373 383.999 204V244C383.999 250.627 378.6260000000001 256 371.999 256H319.999V261.4700000000001C357.2800000000001 274.648 383.9940000000001 310.195 383.999 351.988C384.005 404.228 341.605 447.262 289.37 447.99C235.723 448.739 192 405.475 192 352C192 310.202 218.716 274.65 256 261.4700000000001V256H204C197.373 256 192 250.627 192 244V204C192 197.373 197.373 192 204 192H256V1.985C197.064 9.384 132.18 41.664 111.883 96H147.029C157.72 96 163.074 108.926 155.514 116.485L88.485 183.514C83.799 188.2 76.201 188.2 71.514 183.514L4.485 116.485C-3.074 108.926 2.28 96 12.971 96zM288 384C305.645 384 320 369.645 320 352S305.645 320 288 320S256 334.355 256 352S270.355 384 288 384z" /> + <glyph glyph-name="angle-double-down" + unicode="" + horiz-adv-x="320" d=" M143 191.7L7 327.7C-2.4 337.1 -2.4 352.3 7 361.6L29.6 384.2C39 393.6 54.2 393.6 63.5 384.2L159.9 287.8L256.3 384.2C265.7 393.6 280.9000000000001 393.6 290.2 384.2L313 361.7C322.4 352.3 322.4 337.1 313 327.8L177 191.8C167.6 182.3 152.4 182.3 143 191.7zM177 -0.3L313 135.7C322.4 145.1 322.4 160.3 313 169.6L290.4 192.2C281 201.6 265.8 201.6 256.5 192.2L160 95.9L63.6 192.3C54.2 201.7 39 201.7 29.7 192.3L7 169.7C-2.4 160.3 -2.4 145.1 7 135.8L143 -0.2C152.4 -9.7 167.6 -9.7 177 -0.3z" /> + <glyph glyph-name="angle-double-left" + unicode="" + horiz-adv-x="448" d=" M223.7 209L359.7 345C369.1 354.4 384.3 354.4 393.6 345L416.2 322.4C425.6 313 425.6 297.8 416.2 288.5L319.9 192L416.3 95.6C425.7 86.2000000000001 425.7 71 416.3 61.7000000000001L393.7 39C384.3 29.6 369.1 29.6 359.8 39L223.8 175C214.3 184.4 214.3 199.6 223.7 209zM31.7 175L167.7 39C177.1 29.6 192.3 29.6 201.6 39L224.2 61.6C233.6 71 233.6 86.2000000000001 224.2 95.5L127.9 192L224.3 288.4C233.7 297.8 233.7 313 224.3 322.3L201.7 345C192.3 354.4 177.1 354.4 167.8 345L31.8 209C22.3 199.6 22.3 184.4 31.7 175z" /> + <glyph glyph-name="angle-double-right" + unicode="" + horiz-adv-x="448" d=" M224.3 175L88.3 39C78.9 29.6 63.7 29.6 54.4 39L31.8 61.6C22.4 71 22.4 86.2000000000001 31.8 95.5L128.2 191.9L31.8 288.3C22.4 297.7 22.4 312.9 31.8 322.2L54.3 345C63.7 354.4 78.9 354.4 88.2 345L224.2 209C233.7 199.6 233.7 184.4 224.3 175zM416.3 209L280.3 345C270.9000000000001 354.4 255.7 354.4 246.4 345L223.8 322.4C214.4 313 214.4 297.8 223.8 288.5L320.2000000000001 192.1L223.8000000000001 95.7C214.4 86.3 214.4 71.1 223.8000000000001 61.8L246.4000000000001 39.2C255.8000000000001 29.8 271.0000000000001 29.8 280.3 39.2L416.3 175.2C425.7 184.4 425.7 199.6 416.3 209z" /> + <glyph glyph-name="angle-double-up" + unicode="" + horiz-adv-x="320" d=" M177 192.3L313 56.3C322.4 46.9 322.4 31.7 313 22.4L290.4 -0.2C281 -9.6 265.8 -9.6 256.5 -0.2L160 96.1L63.6 -0.3C54.2 -9.6999999999999 39 -9.6999999999999 29.7 -0.3L7 22.3C-2.4 31.7 -2.4 46.9 7 56.2L143 192.2C152.4 201.7 167.6 201.7 177 192.3zM143 384.3L7 248.3C-2.4 238.9 -2.4 223.7 7 214.4L29.6 191.8C39 182.4 54.2 182.4 63.5 191.8L159.9 288.2000000000001L256.3 191.8C265.7 182.4 280.9000000000001 182.4 290.2 191.8L312.8 214.4C322.2 223.8 322.2 239 312.8 248.3L176.8 384.3C167.6 393.7 152.4 393.7 143 384.3z" /> + <glyph glyph-name="angle-down" + unicode="" + horiz-adv-x="320" d=" M143 95.7L7 231.7C-2.4 241.1 -2.4 256.3 7 265.6L29.6 288.2C39 297.6 54.2 297.6 63.5 288.2L159.9 191.8L256.3 288.2C265.7 297.6 280.9000000000001 297.6 290.2 288.2L312.8 265.6C322.2 256.2 322.2 241 312.8 231.7L176.8 95.6999999999999C167.6 86.3 152.4 86.3 143 95.6999999999999z" /> + <glyph glyph-name="angle-left" + unicode="" + horiz-adv-x="256" d=" M31.7 209L167.7 345C177.1 354.4 192.3 354.4 201.6 345L224.2 322.4C233.6 313 233.6 297.8 224.2 288.5L127.9 192L224.3 95.6C233.7 86.2000000000001 233.7 71 224.3 61.7000000000001L201.7 39C192.3 29.6 177.1 29.6 167.8 39L31.8 175C22.3 184.4 22.3 199.6 31.7 209z" /> + <glyph glyph-name="angle-right" + unicode="" + horiz-adv-x="256" d=" M224.3 175L88.3 39C78.9 29.6 63.7 29.6 54.4 39L31.8 61.6C22.4 71 22.4 86.2000000000001 31.8 95.5L128.2 191.9L31.8 288.3C22.4 297.7 22.4 312.9 31.8 322.2L54.3 345C63.7 354.4 78.9 354.4 88.2 345L224.2 209C233.7 199.6 233.7 184.4 224.3 175z" /> + <glyph glyph-name="angle-up" + unicode="" + horiz-adv-x="320" d=" M177 288.3L313 152.3C322.4 142.9 322.4 127.7 313 118.4L290.4 95.8C281 86.4 265.8 86.4 256.5 95.8L160 192.1L63.6 95.7C54.2 86.3 39 86.3 29.7 95.7L7 118.3C-2.4 127.7 -2.4 142.9 7 152.2L143 288.2C152.4 297.7 167.6 297.7 177 288.3z" /> + <glyph glyph-name="angry" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM136 208C136 217.3 140.1 225.5 146.5 231.4L115.5 240.7C107 243.2 102.2 252.2 104.8 260.6C107.3 269.1 116.2 273.8 124.7 271.3L204.7 247.3C213.2 244.8 218 235.8 215.4 227.4C213.3 220.5 207 216 200.1 216C199.6 216 199 216.2 198.4 216.2C199.1 213.5 200.1 210.9 200.1 208C200.1 190.3 185.8 176 168.1 176S136 190.3 136 208zM304 53.8C276.2 87.2 219.8 87.2 191.9 53.8C178.4 37.5 153.7 58 167.3 74.3C187.3 98.3 216.7 112.1 247.9 112.1S308.5 98.3 328.5 74.3C342.3 57.8 317.4 37.7 304 53.8zM380.6 240.7L349.6 231.4C355.9000000000001 225.6 360.1 217.3 360.1 208C360.1 190.3 345.8 176 328.1 176S296.1 190.3 296.1 208C296.1 210.9 297 213.6 297.8 216.2C297.2 216.1 296.7 216 296.1 216C289.2000000000001 216 282.9000000000001 220.5 280.8 227.4C278.3 235.9 283.1 244.8 291.5 247.3L371.5 271.3C379.9 273.8 388.9 269 391.4 260.6C393.9 252.1 389.1 243.2 380.6 240.7z" /> + <glyph glyph-name="ankh" + unicode="" + horiz-adv-x="320" d=" M296 192H251.38C272.46 225.99 288 266.35 288 304C288 392.37 230.69 448 160 448S32 392.37 32 304C32 266.35 47.54 225.99 68.62 192H24C10.75 192 0 181.26 0 168V136C0 122.75 10.75 112 24 112H120V-40C120 -53.25 130.75 -64 144 -64H176C189.25 -64 200 -53.25 200 -40V112H296C309.25 112 320 122.75 320 136V168C320 181.26 309.25 192 296 192zM160 368C189.61 368 208 343.48 208 304C208 269.3400000000001 180.86 225.86 160 203.13C139.14 225.85 112 269.34 112 304C112 343.48 130.39 368 160 368z" /> + <glyph glyph-name="apple-alt" + unicode="" + horiz-adv-x="448" d=" M351.18 318.85C315.65 325.1 253.12 304.49 224 288.04C194.88 304.49 132.34 325.11 96.81 318.85C15.57 304.55 -10.61 194.36 3.72 113.25C18.05 32.14 65.02 -64 160.41 -64C172.47 -64 184.53 -59.39 194.85 -53.66C212.93 -43.63 235.08 -43.63 253.16 -53.66C263.48 -59.39 275.54 -64 287.59 -64C382.98 -64 429.95 32.14 444.27 113.25C458.6 194.36 432.44 304.55 351.18 318.85zM295.63 360.38C326.19 390.94 319.35 447.35 319.35 447.35S262.9400000000001 454.2 232.38 423.63C201.81 393.06 208.66 336.66 208.66 336.66S265.06 329.81 295.63 360.38z" /> + <glyph glyph-name="archive" + unicode="" + horiz-adv-x="512" d=" M32 0C32 -17.7 46.3 -32 64 -32H448C465.7 -32 480 -17.7 480 0V288H32V0zM192 212C192 218.6 197.4 224 204 224H308C314.6 224 320 218.6 320 212V204C320 197.4 314.6 192 308 192H204C197.4 192 192 197.4 192 204V212zM480 416H32C14.3 416 0 401.7 0 384V336C0 327.2 7.2 320 16 320H496C504.8 320 512 327.2 512 336V384C512 401.7 497.7 416 480 416z" /> + <glyph glyph-name="archway" + unicode="" + horiz-adv-x="576" d=" M560 0H544V352H32V0H16.02C7.18 0 0.02 -7.16 0.02 -16V-48C0.02 -56.84 7.18 -64 16.02 -64H176C184.84 -64 192 -56.84 192 -48V128C192 181.02 234.98 224 288 224S384 181.02 384 128L384.02 -32V-48C384.02 -56.84 391.18 -64 400.02 -64H560C568.84 -64 576 -56.84 576 -48V-16C576 -7.16 568.84 0 560 0zM560 448H16C7.16 448 0 440.84 0 432V400C0 391.16 7.16 384 16 384H560C568.84 384 576 391.16 576 400V432C576 440.84 568.84 448 560 448z" /> + <glyph glyph-name="arrow-alt-circle-down" + unicode="" + horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM212 308V192H141.1C130.4 192 125 179 132.6 171.5L247.5 57.2C252.2 52.5 259.7 52.5 264.4 57.2L379.3 171.5C386.9 179.1 381.5 192 370.8 192H300V308C300 314.6 294.6 320 288 320H224C217.4 320 212 314.6 212 308z" /> + <glyph glyph-name="arrow-alt-circle-left" + unicode="" + horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM372 236H256V306.9C256 317.6 243 323 235.5 315.4L121.2 200.5C116.5 195.8 116.5 188.3 121.2 183.6L235.5 68.7000000000001C243.1 61.1 256 66.5000000000001 256 77.2000000000001V148H372C378.6 148 384 153.4 384 160V224C384 230.6 378.6 236 372 236z" /> + <glyph glyph-name="arrow-alt-circle-right" + unicode="" + horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM140 148H256V77.1C256 66.4 269 61 276.5 68.6L390.8 183.5C395.5 188.2 395.5 195.7 390.8 200.4L276.5 315.4C268.9 323 256 317.6 256 306.9V236H140C133.4 236 128 230.6 128 224V160C128 153.4 133.4 148 140 148z" /> + <glyph glyph-name="arrow-alt-circle-up" + unicode="" + horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM300 76V192H370.9C381.6 192 387 205 379.4 212.5L264.5 326.8C259.8 331.5 252.3 331.5 247.6 326.8L132.6 212.5C125 204.9 130.4 192 141.1 192H212V76C212 69.4 217.4 64 224 64H288C294.6 64 300 69.4 300 76z" /> + <glyph glyph-name="arrow-circle-down" + unicode="" + horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM360.4 220.9L288 145.4V328C288 341.3 277.3 352 264 352H248C234.7 352 224 341.3 224 328V145.4L151.6 220.9C142.3 230.6 126.8 230.8 117.3 221.3L106.4 210.3C97 200.9 97 185.7 106.4 176.4L239 43.7C248.4 34.3 263.6 34.3 272.9 43.7L405.6 176.4C415 185.8 415 201 405.6 210.3L394.7 221.3C385.2 230.8 369.7 230.6 360.4 220.9z" /> + <glyph glyph-name="arrow-circle-left" + unicode="" + horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM284.9 87.6L209.4 160H392C405.3 160 416 170.7 416 184V200C416 213.3 405.3 224 392 224H209.4L284.9 296.4C294.6 305.7000000000001 294.8 321.2 285.3 330.7L274.3 341.6C264.9 351 249.7 351 240.4 341.6L107.7 209C98.3 199.6 98.3 184.4 107.7 175.1L240.4 42.4C249.8 33.0000000000001 265 33.0000000000001 274.3 42.4L285.3 53.3C294.8 62.8 294.6 78.3 284.9 87.6z" /> + <glyph glyph-name="arrow-circle-right" + unicode="" + horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM227.1 296.4L302.6 224H120C106.7 224 96 213.3 96 200V184C96 170.7 106.7 160 120 160H302.6L227.1 87.6C217.4 78.3 217.2 62.8 226.7 53.3L237.7 42.4C247.1 33.0000000000001 262.3 33.0000000000001 271.6 42.4L404.3 175C413.7 184.4 413.7 199.6 404.3 208.9L271.6 341.7C262.2000000000001 351.1 247.0000000000001 351.1 237.7 341.7L226.7 330.8C217.2 321.2 217.4 305.7 227.1 296.4z" /> + <glyph glyph-name="arrow-circle-up" + unicode="" + horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM151.6 163.1L224 238.6V56C224 42.7 234.7 32 248 32H264C277.3 32 288 42.7 288 56V238.6L360.4 163.1C369.7 153.4 385.2 153.2000000000001 394.7 162.7000000000001L405.6 173.7000000000001C415 183.1 415 198.3000000000001 405.6 207.6000000000001L273 340.3C263.6 349.7 248.4 349.7 239.1 340.3L106.3 207.6C96.9 198.2 96.9 183 106.3 173.7L117.2 162.7C126.8 153.2 142.3 153.4 151.6 163.1z" /> + <glyph glyph-name="arrow-down" + unicode="" + horiz-adv-x="448" d=" M413.1 225.5L435.3 203.3C444.7 193.9 444.7 178.7 435.3 169.4L241 -25C231.6 -34.4 216.4 -34.4 207.1 -25L12.7 169.4C3.3 178.8 3.3 194 12.7 203.3L34.9 225.5C44.4 235 59.9 234.8 69.2 225.1L184 104.6V392C184 405.3 194.7 416 208 416H240C253.3 416 264 405.3 264 392V104.6L378.8 225.1C388.1 234.9000000000001 403.6 235.1 413.1 225.5000000000001z" /> + <glyph glyph-name="arrow-left" + unicode="" + horiz-adv-x="448" d=" M257.5 2.9L235.3 -19.3C225.9 -28.7 210.7 -28.7 201.4 -19.3L7 175C-2.4 184.4 -2.4 199.6 7 208.9L201.4 403.3C210.8 412.7 226 412.7 235.3 403.3L257.5 381.1C267 371.6 266.8 356.1 257.1 346.8L136.6 232H424C437.3 232 448 221.3 448 208V176C448 162.7 437.3 152 424 152H136.6L257.1 37.2C266.9000000000001 27.9 267.1 12.4 257.5 2.9z" /> + <glyph glyph-name="arrow-right" + unicode="" + horiz-adv-x="448" d=" M190.5 381.1L212.7 403.3C222.1 412.7 237.3 412.7 246.6 403.3L441 209C450.4 199.6 450.4 184.4 441 175.1L246.6 -19.3C237.2 -28.7 222 -28.7 212.7 -19.3L190.5 2.9C181 12.4 181.2 27.9 190.9 37.2L311.4 152H24C10.7 152 0 162.7 0 176V208C0 221.3 10.7 232 24 232H311.4L190.9 346.8C181.1 356.1 180.9 371.6 190.5 381.1z" /> + <glyph glyph-name="arrow-up" + unicode="" + horiz-adv-x="448" d=" M34.9 158.5L12.7 180.7C3.3 190.1 3.3 205.3 12.7 214.6L207 409C216.4 418.4 231.6 418.4 240.9 409L435.2000000000001 214.7C444.6 205.3 444.6 190.1 435.2000000000001 180.8L413 158.6C403.5 149.1 388 149.3 378.7 159L264 279.4V-8C264 -21.3 253.3 -32 240 -32H208C194.7 -32 184 -21.3 184 -8V279.4L69.2 158.9C59.9 149.1 44.4 148.9 34.9 158.5z" /> + <glyph glyph-name="arrows-alt-h" + unicode="" + horiz-adv-x="512" d=" M377.941 278.059V232H134.059V278.059C134.059 299.4410000000001 108.208 310.149 93.088 295.03L7.029 208.971C-2.344 199.598 -2.344 184.403 7.029 175.03L93.088 88.971C108.207 73.852 134.059 84.56 134.059 105.942V152H377.9410000000001V105.941C377.9410000000001 84.559 403.7920000000001 73.851 418.9120000000001 88.97L504.971 175.029C514.344 184.402 514.344 199.597 504.971 208.97L418.9120000000001 295.029C403.793 310.149 377.9410000000001 299.4410000000001 377.9410000000001 278.059z" /> + <glyph glyph-name="arrows-alt-v" + unicode="" + horiz-adv-x="256" d=" M214.059 70.059H168V313.9410000000001H214.059C235.441 313.9410000000001 246.149 339.7920000000001 231.03 354.9120000000001L144.971 440.971C135.598 450.344 120.403 450.344 111.03 440.971L24.971 354.9120000000001C9.852 339.793 20.56 313.9410000000001 41.942 313.9410000000001H88V70.059H41.941C20.559 70.059 9.851 44.208 24.97 29.088L111.029 -56.971C120.402 -66.344 135.597 -66.344 144.97 -56.971L231.029 29.088C246.149 44.207 235.441 70.059 214.059 70.059z" /> + <glyph glyph-name="arrows-alt" + unicode="" + horiz-adv-x="512" d=" M352.201 22.225L273.005 -56.971C263.632 -66.344 248.437 -66.344 239.064 -56.971L159.868 22.225C144.749 37.3440000000001 155.457 63.196 176.839 63.1950000000001H228.001L228 164H127.196V112.838C127.196 91.456 101.345 80.7480000000001 86.225 95.867L7.029 175.063C-2.344 184.436 -2.344 199.632 7.029 209.004L86.225 288.2C101.344 303.319 127.196 292.611 127.196 271.229V220H228V320.804H176.77C155.388 320.804 144.68 346.655 159.799 361.775L238.995 440.971C248.368 450.344 263.563 450.344 272.9360000000001 440.971L352.1320000000001 361.775C367.2510000000001 346.656 356.5430000000001 320.804 335.1610000000001 320.804H283.9990000000001V220H384.8030000000001V271.1620000000001C384.8030000000001 292.544 410.6540000000001 303.252 425.7730000000002 288.1330000000001L504.9690000000002 208.937C514.3420000000002 199.564 514.3420000000002 184.368 504.9690000000002 174.996L425.773 95.8C410.654 80.681 384.802 91.389 384.803 112.771V164H284V63.196H335.23C356.612 63.196 367.3200000000001 37.345 352.201 22.225z" /> + <glyph glyph-name="assistive-listening-systems" + unicode="" + horiz-adv-x="512" d=" M216 188C216 172.536 203.464 160 188 160S160 172.536 160 188C160 232.112 195.888 268 240 268S320 232.112 320 188C320 172.536 307.464 160 292 160S264 172.536 264 188C264 201.234 253.233 212 240 212S216 201.234 216 188zM240 364C142.953 364 64 285.0470000000001 64 188C64 172.536 76.536 160 92 160S120 172.536 120 188C120 254.168 173.832 308 240 308S360 254.168 360 188C360 112.836 288.991 117.689 288.003 44.378L288 44C288 15.327 264.673 -8 236 -8C220.536 -8 208 -20.536 208 -36S220.536 -64 236 -64C295.475 -64 343.876 -15.672 344 43.774C344.5950000000001 78.202 416 92.014 416 188C416 285.0470000000001 337.0470000000001 364 240 364zM160 128C142.327 128 128 113.673 128 96S142.327 64 160 64S192 78.327 192 96S177.673 128 160 128zM32 0C14.327 0 0 -14.327 0 -32S14.327 -64 32 -64S64 -49.673 64 -32S49.673 0 32 0zM512 187.993C512 189.511 511.988 191.018 511.955 192.524C510.076 307.475 436.157 409.53 327.9940000000001 446.489C313.3610000000001 451.487 297.4450000000001 443.68 292.444 429.0470000000001C287.444 414.414 295.254 398.498 309.886 393.497C395.7920000000001 364.1430000000001 454.496 282.984 455.963 191.544L455.966 191.356C455.992 190.238 455.999 189.12 455.999 187.993C455.999 172.529 468.535 159.993 483.999 159.993S512 172.529 512 187.993zM152.971 8.971L72.971 88.971L39.03 55.03L119.03 -24.97L152.971 8.971z" /> + <glyph glyph-name="asterisk" + unicode="" + horiz-adv-x="512" d=" M478.21 113.907L336 192L478.21 270.093C490.0050000000001 276.5700000000001 494.171 291.4770000000001 487.442 303.13L467.962 336.8710000000001C461.234 348.524 446.242 352.37 434.735 345.394L296 261.2820000000001L299.475 423.486C299.763 436.939 288.937 448 275.48 448H236.52C223.064 448 212.237 436.939 212.526 423.486L216 261.2820000000001L77.265 345.3930000000001C65.759 352.3690000000001 50.766 348.523 44.038 336.87L24.558 303.129C17.83 291.476 21.996 276.569 33.791 270.092L176 192L33.79 113.907C21.995 107.43 17.829 92.523 24.558 80.87L44.038 47.129C50.766 35.476 65.759 31.63 77.265 38.606L216 122.718L212.525 -39.486C212.237 -52.939 223.064 -64 236.52 -64H275.481C288.937 -64 299.764 -52.939 299.476 -39.486L296 122.718L434.735 38.607C446.241 31.631 461.234 35.477 467.962 47.1300000000001L487.442 80.871C494.17 92.5240000000001 490.005 107.4300000000001 478.21 113.9070000000001z" /> + <glyph glyph-name="at" + unicode="" + horiz-adv-x="512" d=" M256 440C118.941 440 8 329.081 8 192C8 54.941 118.919 -56 256 -56C304.154 -56 351.342 -41.86 391.408 -15.777C403.413 -7.962 406.033 8.511 396.9600000000001 19.595L386.783 32.028C379.112 41.399 365.6040000000001 43.695 355.4100000000001 37.157C325.92 18.243 291.314 8 256 8C154.542 8 72 90.542 72 192S154.542 376 256 376C356.139 376 440 318.381 440 216C440 177.214 418.907 136.258 381.83 132.307C364.481 132.761 364.92 145.164 368.354 162.331L391.787 283.4410000000001C394.653 298.25 383.308 312 368.225 312H323.2440000000001A13.518 13.518 0 0 1 309.812 300.007L309.802 299.915C295.105 317.8160000000001 269.3540000000001 321.69 249.831 321.69C175.251 321.69 112 259.456 112 170.23C112 104.927 148.785 64.36 208 64.36C234.9840000000001 64.36 265.3690000000001 79.997 282.9910000000001 102.693C292.5130000000001 68.589 323.6040000000001 68.59 353.701 68.59C462.609 68.59 504 140.202 504 216C504 352.347 394.023 440 256 440zM234.32 135.57C212.071 135.57 198.25 151.193 198.25 176.341C198.25 221.334 229.029 249.07 256.88 249.07C279.1720000000001 249.07 292.481 233.829 292.481 208.3C292.481 163.239 258.606 135.57 234.32 135.57z" /> + <glyph glyph-name="atlas" + unicode="" + horiz-adv-x="448" d=" M318.38 240H279.29C277.8 212.97 272.75 188.65 265.08 169.59C292.79 182.8300000000001 313.1 208.78 318.38 240.0000000000001zM318.38 272C313.09 303.2200000000001 292.79 329.17 265.08 342.41C272.76 323.35 277.8 299.03 279.29 272H318.38zM224 350.69C216.31 343.24 203.23 316.27 200.57 272H247.44C244.77 316.26 231.69 343.24 224 350.69zM182.92 342.41C155.21 329.17 134.9 303.2200000000001 129.62 272H168.71C170.2 299.03 175.24 323.35 182.92 342.41zM182.92 169.59C175.24 188.65 170.2 212.97 168.71 240.0000000000001H129.62C134.9 208.78 155.21 182.8300000000001 182.92 169.59zM247.43 240H200.56C203.22 195.74 216.3 168.76 223.99 161.31C231.69 168.76 244.77 195.74 247.43 240zM448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM224 384C294.69 384 352 326.69 352 256S294.69 128 224 128S96 185.31 96 256S153.31 384 224 384zM384 0H96C76.8 0 64 12.8 64 32S80 64 96 64H384V0z" /> + <glyph glyph-name="atom" + unicode="" + horiz-adv-x="448" d=" M413.03 192C453.16 246.89 454.54 290.62 438.17 320C427.26 339.52 397.63 370.73 321.84 361.88C300.36 413.11 267.64 448 224 448S147.64 413.11 126.16 361.88C50.43 370.66 20.73 339.52 9.83 320C-6.55 290.6 -5.17 246.91 34.97 192C-5.16 137.11 -6.54 93.38 9.83 64C39.04 11.66 111.51 20.42 126.16 22.12C147.63 -29.1 180.36 -64 224 -64S300.37 -29.1 321.8400000000001 22.12C336.48 20.42 408.9500000000001 11.66 438.17 64C454.55 93.4 453.17 137.09 413.0300000000001 192zM63.38 96C59.35 103.21 63.19 120.8 78.33 144.29C85.29 137.7600000000001 92.53 131.4 100.2 125.11C101.91 111.4 104.2 98.03 106.96 85.03C82.4 84.14 67.07 89.4 63.38 96.0000000000001zM100.2 258.88C92.54 252.59 85.3 246.23 78.33 239.7C63.2 263.2 59.36 280.79 63.38 288C66.79 294.14 79.77 299.4700000000001 101.3 299.4700000000001C103.01 299.4700000000001 105.17 299.17 106.99 299.1A472.19100000000003 472.19100000000003 0 0 1 100.2 258.88zM224 384C233.47 384 246.2 370.48 257.86 346.74C246.67 343.04 235.42 338.74 224 333.88C212.58 338.74 201.33 343.04 190.14 346.74C201.8 370.48 214.53 384 224 384zM224 0C214.53 0 201.8 13.52 190.14 37.26C201.33 40.96 212.58 45.26 224 50.12C235.42 45.26 246.67 40.96 257.86 37.26C246.2 13.52 233.47 0 224 0zM286.5 157.3300000000001C259.8 138.2500000000001 240.36 128.0000000000001 224 119.85C207.65 127.99 188.2 138.2600000000001 161.5 157.3300000000001C159.51 185.1200000000001 159.51 198.87 161.5 226.6600000000001C188.17 245.7100000000001 207.63 255.98 224 264.14C240.39 255.9700000000001 259.86 245.7 286.5 226.6600000000001C288.48 198.88 288.49 185.13 286.5 157.3300000000001zM384.62 96C380.95 89.38 365.62 84.18 341.04 85.05C343.8 98.05 346.0900000000001 111.42 347.8 125.11C355.4600000000001 131.4 362.7 137.76 369.67 144.29C384.8 120.8 388.64 103.21 384.62 96zM369.67 239.71C362.7100000000001 246.24 355.4700000000001 252.6 347.8 258.89A473.535 473.535 0 0 1 341.01 299.11C342.83 299.18 344.98 299.48 346.7 299.48C368.22 299.48 381.21 294.14 384.62 288.01C388.64 280.79 384.8 263.2000000000001 369.67 239.7100000000001zM224 224C206.33 224 192 209.67 192 192S206.33 160 224 160S256 174.33 256 192S241.67 224 224 224z" /> + <glyph glyph-name="audio-description" + unicode="" + horiz-adv-x="512" d=" M162.925 209.291L171.747 178.636H146.141L155.182 209.288C156.459 213.709 157.833 219.282 159.054 224.533C160.274 219.282 161.648 213.71 162.9250000000001 209.291zM329.399 241.39H314.876V142.609H329.399C359.175 142.609 375.574 160.287 375.574 192.385C375.574 224.624 358.084 241.39 329.399 241.39zM512 336V48C512 21.49 490.51 0 464 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H464C490.51 384 512 362.51 512 336zM245.459 111.861L188.362 279.861A12.001000000000001 12.001000000000001 0 0 1 177 288H141.106A12.001000000000001 12.001000000000001 0 0 1 129.744 279.861L72.647 111.861C70.003 104.078 75.789 96 84.009 96H113.142A12 12 0 0 1 124.677 104.693L133.251 134.599H184.618L193.411 104.622A12 12 0 0 1 204.926 96H234.098C242.318 96 248.104 104.078 245.459 111.861zM430.16 192.386C430.16 251.363 392.241 288 331.2 288H273.834C267.207 288 261.834 282.627 261.834 276V108C261.834 101.373 267.207 96 273.834 96H331.2C392.241 96 430.16 132.933 430.16 192.386z" /> + <glyph glyph-name="award" + unicode="" + horiz-adv-x="384" d=" M97.12 85.37C88.43 94.06 92.96 91.61 72 97.22C62.49 99.77 54.13 104.67 46.57 110.54L1.2 -0.7C-3.19 -11.47 5.01 -23.17 16.63 -22.73L69.32 -20.72L105.56 -59C113.56 -67.44 127.6 -64.8099999999999 131.99 -54.04L184.04 73.58C173.2 67.54 161.17 64 148.73 64C129.23 64 110.91 71.59 97.12 85.37zM382.8 -0.7L337.43 110.54C329.87 104.66 321.51 99.77 312 97.22C290.93 91.58 295.55 94.04 286.88 85.37C273.09 71.59 254.76 64 235.26 64C222.82 64 210.79 67.55 199.95 73.58L252 -54.04C256.39 -64.8100000000001 270.44 -67.44 278.43 -59L314.68 -20.72L367.37 -22.73C378.99 -23.17 387.19 -11.46 382.8 -0.7zM263 108C278.28 123.55 280.03 122.21 301.79 128.14C315.68 131.93 326.54 142.98 330.26 157.12C337.74 185.52 335.8 182.09 356.21 202.87C366.38 213.22 370.35 228.31 366.63 242.45C359.16 270.83 359.15 266.87 366.63 295.28C370.35 309.42 366.38 324.51 356.21 334.86C335.8 355.64 337.74 352.22 330.26 380.61C326.54 394.75 315.68 405.8 301.79 409.59C273.91 417.2 277.27 415.21 256.84 436C246.67 446.35 231.84 450.4 217.95 446.61C190.08 439.01 193.97 439 166.05 446.61C152.16 450.4 137.33 446.36 127.16 436C106.75 415.22 110.11 417.2 82.22 409.59C68.33 405.8 57.47 394.75 53.75 380.61C46.28 352.22 48.21 355.64 27.8 334.86C17.63 324.51 13.65 309.42 17.38 295.28C24.85 266.92 24.86 270.88 17.38 242.46C13.66 228.32 17.63 213.23 27.8 202.87C48.21 182.09 46.27 185.52 53.75 157.12C57.47 142.98 68.33 131.93 82.22 128.14C104.6 122.04 106.27 123 121 108C134.23 94.53 154.84 92.12 170.74 102.18A39.676 39.676 0 0 0 213.27 102.18C229.1600000000001 92.12 249.77 94.53 263 108zM97.66 272.04C97.66 325.07 139.9 368.06 192 368.06S286.3400000000001 325.07 286.3400000000001 272.04S244.1 176.02 192 176.02S97.66 219.01 97.66 272.04z" /> + <glyph glyph-name="backspace" + unicode="" + horiz-adv-x="640" d=" M576 384H205.26A63.97 63.97 0 0 1 160 365.25L9.37 214.63C-3.13 202.13 -3.13 181.87 9.37 169.38L160 18.75C172 6.75 188.28 0 205.25 0H576C611.35 0 640 28.65 640 64V320C640 355.35 611.35 384 576 384zM491.31 129.94C497.56 123.69 497.56 113.56 491.31 107.31L468.69 84.69C462.44 78.44 452.31 78.44 446.06 84.69L384 146.75L321.94 84.69C315.69 78.44 305.56 78.44 299.31 84.69L276.69 107.31C270.44 113.56 270.44 123.69 276.69 129.94L338.75 192L276.69 254.06C270.44 260.31 270.44 270.44 276.69 276.69L299.31 299.31C305.56 305.56 315.69 305.56 321.94 299.31L384 237.25L446.06 299.31C452.31 305.56 462.44 305.56 468.69 299.31L491.31 276.69C497.56 270.44 497.56 260.31 491.31 254.06L429.25 192L491.31 129.94z" /> + <glyph glyph-name="backward" + unicode="" + horiz-adv-x="512" d=" M11.5 167.4L203.5 7.4C224.1 -9.8 256 4.6 256 32V352C256 379.4 224.1 393.8 203.5 376.6L11.5 216.6C-3.8 203.8 -3.8 180.2 11.5 167.4zM267.5 167.4L459.5 7.4C480.1 -9.8 512 4.6 512 32V352C512 379.4 480.1 393.8 459.5 376.6L267.5 216.6C252.2 203.8 252.2 180.2 267.5 167.4z" /> + <glyph glyph-name="balance-scale" + unicode="" + horiz-adv-x="640" d=" M256 112H255.98C255.98 128.18 257.32 120.73 170.93 293.51C153.28 328.8 102.74 328.87 85.06 293.51C-2.06 119.25 0.02 127.67 0.02 112H0C0 67.82 57.31 32 128 32S256 67.82 256 112zM128 272L200 128H56L128 272zM639.98 112C639.98 128.18 641.32 120.73 554.9300000000001 293.51C537.2800000000001 328.8 486.7400000000001 328.87 469.0600000000001 293.51C381.9400000000001 119.25 384.0200000000001 127.67 384.0200000000001 112H384C384 67.82 441.31 32 512 32S640 67.82 640 112H639.98zM440 128L512 272L584 128H440zM528 0H352V294.75C375.51 305.04 393.16 326.23 398.39 352H528C536.84 352 544 359.16 544 368V400C544 408.8400000000001 536.84 416 528 416H383.64C369.04 435.32 346.09 448 320 448S270.96 435.32 256.36 416H112C103.16 416 96 408.8400000000001 96 400V368C96 359.16 103.16 352 112 352H241.61C246.84 326.24 264.48 305.04 288 294.75V0H112C103.16 0 96 -7.16 96 -16V-48C96 -56.84 103.16 -64 112 -64H528C536.84 -64 544 -56.84 544 -48V-16C544 -7.16 536.84 0 528 0z" /> + <glyph glyph-name="ban" + unicode="" + horiz-adv-x="512" d=" M256 440C119.034 440 8 328.967 8 192S119.034 -56 256 -56S504 55.034 504 192S392.967 440 256 440zM386.108 322.108C451.556 256.6600000000001 456.108 156.627 406.7850000000001 86.471L150.47 342.784C220.674 392.14 320.6960000000001 387.519 386.108 322.108zM125.892 61.892C60.444 127.34 55.892 227.373 105.215 297.529L361.53 41.216C291.327 -8.14 191.304 -3.52 125.892 61.892z" /> + <glyph glyph-name="band-aid" + unicode="" + horiz-adv-x="640" d=" M0 288V96C0 60.7 28.7 32 64 32H160V352H64C28.7 352 0 323.3 0 288zM576 352H480V32H576C611.3 32 640 60.7 640 96V288C640 323.3 611.3 352 576 352zM192 32H448V352H192V32zM368 264C381.3 264 392 253.3 392 240S381.3 216 368 216S344 226.7 344 240S354.7 264 368 264zM368 168C381.3 168 392 157.3 392 144S381.3 120 368 120S344 130.7 344 144S354.7 168 368 168zM272 264C285.3 264 296 253.3 296 240S285.3 216 272 216S248 226.7 248 240S258.7 264 272 264zM272 168C285.3 168 296 157.3 296 144S285.3 120 272 120S248 130.7 248 144S258.7 168 272 168z" /> + <glyph glyph-name="barcode" + unicode="" + horiz-adv-x="512" d=" M0 0V384H18V0H0zM26.857 0.273V384H36V0.273H26.857zM54 0.273V384H62.857V0.273H54zM98.857 0.273V384H107.714V0.273H98.857zM134.857 0.273V384H152.571V0.273H134.857zM179.714 0.273V384H188.571V0.273H179.714zM197.714 0.273V384H206.571V0.273H197.714zM215.714 0.273V384H224.571V0.273H215.714zM251.429 0.273V384H269.429V0.273H251.429zM296.286 0.273V384H314.286V0.273H296.286zM332.2850000000001 0.273V384H350.286V0.273H332.2850000000001zM368.286 0.273V384H386.287V0.273H368.286zM395.1430000000001 0.273V384H413.1430000000001V0.273H395.1430000000001zM440.2860000000001 0.273V384H467.143V0.273H440.2860000000001zM476.0000000000001 0.273V384H485.143V0.273H476zM494.0000000000001 0V384H512V0H494z" /> + <glyph glyph-name="bars" + unicode="" + horiz-adv-x="448" d=" M16 316H432C440.837 316 448 323.163 448 332V372C448 380.837 440.837 388 432 388H16C7.163 388 0 380.837 0 372V332C0 323.163 7.163 316 16 316zM16 156H432C440.837 156 448 163.163 448 172V212C448 220.837 440.837 228 432 228H16C7.163 228 0 220.837 0 212V172C0 163.163 7.163 156 16 156zM16 -4H432C440.837 -4 448 3.163 448 12V52C448 60.837 440.837 68 432 68H16C7.163 68 0 60.837 0 52V12C0 3.163 7.163 -4 16 -4z" /> + <glyph glyph-name="baseball-ball" + unicode="" + horiz-adv-x="496" d=" M368.5 84.1L397.3 98C408.4000000000001 75.1 423.3 54.8 441.4000000000001 37.1C475.4 79.6 495.9 133.4 495.9 192C495.9 250.5000000000001 475.5000000000001 304.2000000000001 441.7000000000001 346.6C423.9000000000001 329.3 409.1 309.5 398.1 287.1L369.4000000000001 301.2000000000001C382.2000000000001 327.2000000000001 399.4000000000001 350.2000000000001 420.2000000000001 370.2000000000001C375.6 413.3 315 440 248 440C181.1 440 120.5 413.4 75.9 370.3C96.6 350.4 113.8 327.4 126.6 301.5L97.9 287.4C86.9 309.7000000000001 72.2 329.5 54.4 346.8C20.4 304.3 0 250.6 0 192C0 133.4 20.4 79.7 54.4 37.3C72.6 55 87.6 75.3 98.7 98.3L127.5 84.4C114.6 57.7000000000001 97.2 34.1 76 13.7C120.5 -29.4 181.1 -55.9999999999999 248 -55.9999999999999C314.8 -55.9999999999999 375.3 -29.4999999999999 419.9 13.5000000000001C398.8 33.9 381.4 57.4 368.5 84.1zM140.2 116.1L109.7 125.9C124.6 172.3 122.4 219.7000000000001 109.1 259.9000000000001L139.5 269.9000000000001C154.5 224.3000000000001 157.5 170 140.2 116.1zM356.5 269.5L386.9 259.5C373.7 219.4 371.4 172 386.3 125.5L355.8 115.7C338.5 169.7 341.5 224 356.5 269.5z" /> + <glyph glyph-name="basketball-ball" + unicode="" + horiz-adv-x="496" d=" M212.3 437.7C168.5 431.4 126.1 413.6 90.1 383.9L167.5 306.5C195.3 342.3 210.8 387.7 212.3 437.7zM248 226L405.9 383.9C363.5 418.9 312.3 437.4 260.4 440C259.2 376.1 238.9 317.7000000000001 201.7 272.3L248 226zM56.1 349.9C26.4 313.9 8.6 271.5 2.3 227.7C52.3 229.2 97.8 244.7 133.5 272.5L56.1 349.9zM328.3 145.7000000000001C373.6 182.8000000000001 432 203.1000000000001 496 204.4C493.4 256.3000000000001 474.9 307.5 439.9 349.9000000000001L282 192L328.3 145.7zM248 158L90.1 0.1C132.5 -34.8 183.7 -53.4 235.6 -56C236.9 8 257.2 66.4 294.3 111.7L248 158zM439.9 34.1C469.6 70.1 487.4 112.5 493.7 156.3C443.6 154.7 398.2 139.2 362.5 111.5L439.9 34.1zM167.7 238.3C122.3 201.1 63.9 180.7 0 179.6C2.6 127.7000000000001 21.1 76.5 56.1 34.1L214 192L167.7 238.3zM283.7 -53.7C327.5 -47.4 369.9 -29.6 405.9 0.1L328.5 77.5C300.8 41.8 285.3 -3.7 283.7 -53.7z" /> + <glyph glyph-name="bath" + unicode="" + horiz-adv-x="512" d=" M488 192H80V336C80 353.645 94.355 368 112 368C123.351 368 133.332 362.055 139.015 353.12C122.523 327.913 124.328 293.544 145.853 270.0850000000001C141.677 265.372 141.832 258.169 146.344 253.657L157.658 242.343C162.344 237.657 169.942 237.657 174.629 242.343L269.659 337.372C274.345 342.058 274.345 349.656 269.659 354.343L258.345 365.6570000000001C253.833 370.169 246.63 370.323 241.917 366.148C223.968 382.617 199.623 387.577 177.739 381.5130000000001C163.281 402.333 139.212 416 112 416C67.888 416 32 380.112 32 336V192H24C10.745 192 0 181.255 0 168V152C0 138.745 10.745 128 24 128H32V96C32 67.57 44.362 42.031 64 24.453V-8C64 -21.255 74.745 -32 88 -32H104C117.255 -32 128 -21.255 128 -8V0H384V-8C384 -21.255 394.745 -32 408 -32H424C437.255 -32 448 -21.255 448 -8V24.453C467.638 42.031 480 67.57 480 96V128H488C501.255 128 512 138.745 512 152V168C512 181.255 501.255 192 488 192z" /> + <glyph glyph-name="battery-empty" + unicode="" + horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352z" /> + <glyph glyph-name="battery-full" + unicode="" + horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM512 256H96V128H512V256z" /> + <glyph glyph-name="battery-half" + unicode="" + horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM320 256H96V128H320V256z" /> + <glyph glyph-name="battery-quarter" + unicode="" + horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM224 256H96V128H224V256z" /> + <glyph glyph-name="battery-three-quarters" + unicode="" + horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM416 256H96V128H416V256z" /> + <glyph glyph-name="bed" + unicode="" + horiz-adv-x="640" d=" M176 192C220.11 192 256 227.89 256 272S220.11 352 176 352S96 316.11 96 272S131.89 192 176 192zM528 320H304C295.1600000000001 320 288 312.8400000000001 288 304V160H64V368C64 376.8400000000001 56.84 384 48 384H16C7.16 384 0 376.8400000000001 0 368V16C0 7.16 7.16 0 16 0H48C56.84 0 64 7.16 64 16V64H576V16C576 7.16 583.16 0 592 0H624C632.84 0 640 7.16 640 16V208C640 269.86 589.86 320 528 320z" /> + <glyph glyph-name="beer" + unicode="" + horiz-adv-x="448" d=" M368 352H320V392C320 405.255 309.255 416 296 416H24C10.745 416 0 405.255 0 392V-8C0 -21.255 10.745 -32 24 -32H296C309.255 -32 320 -21.255 320 -8V34.11L400.606 70.087C429.396 82.937 448 111.612 448 143.14V272C448 316.112 412.112 352 368 352zM384 143.14A16.018 16.018 0 0 0 374.521 128.529L320 104.195V288H368C376.822 288 384 280.822 384 272V143.14zM208 64C199.164 64 192 71.164 192 80V304C192 312.836 199.164 320 208 320S224 312.836 224 304V80C224 71.164 216.836 64 208 64zM112 64C103.164 64 96 71.164 96 80V304C96 312.836 103.164 320 112 320S128 312.836 128 304V80C128 71.164 120.836 64 112 64z" /> + <glyph glyph-name="bell-slash" + unicode="" + horiz-adv-x="640" d=" M633.82 -10.1L543.2 59.95C543.3900000000001 61.33 544 62.61 544 64.01C544.05 71.56 541.39 79.28 535.39 85.72C516.0699999999999 106.48 479.92 137.71 479.92 240.01C479.92 317.71 425.44 379.91 351.98 395.17V416C351.98 433.67 337.66 448 320 448S288.0199999999999 433.67 288.0199999999999 416V395.16C247.69 386.78 213.3599999999999 364.0900000000001 190.4299999999999 332.5900000000001L45.47 444.63C38.49 450.05 28.43 448.8 23.01 441.82L3.37 416.55C-2.05 409.58 -0.8 399.53 6.18 394.1L594.53 -60.63C601.51 -66.0599999999999 611.56 -64.7999999999999 616.99 -57.82L636.63 -32.55C642.05 -25.58 640.8 -15.53 633.82 -10.1zM157.23 196.46C148.62 128.5 120.82 103.13 104.61 85.71C98.61 79.2600000000001 95.95 71.55 96 64.0000000000001C96.11 47.6000000000001 108.98 32.0000000000001 128.1 32.0000000000001H370.02L157.23 196.46zM320 -64C355.32 -64 383.9700000000001 -35.35 383.9700000000001 0H256.03C256.03 -35.35 284.68 -64 320 -64z" /> + <glyph glyph-name="bell" + unicode="" + horiz-adv-x="448" d=" M224 -64C259.32 -64 287.9700000000001 -35.35 287.9700000000001 0H160.03C160.03 -35.35 188.68 -64 224 -64zM439.39 85.71C420.07 106.47 383.92 137.7000000000001 383.92 240.0000000000001C383.92 317.7000000000001 329.44 379.9000000000001 255.98 395.1600000000001V416C255.98 433.67 241.66 448 224 448S192.02 433.67 192.02 416V395.16C118.56 379.9 64.08 317.7 64.08 240C64.08 137.7 27.93 106.47 8.61 85.71C2.61 79.2600000000001 -0.05 71.55 0 64.0000000000001C0.11 47.6000000000001 12.98 32.0000000000001 32.1 32.0000000000001H415.9000000000001C435.0200000000001 32.0000000000001 447.9000000000001 47.6000000000001 448.0000000000001 64.0000000000001C448.0500000000001 71.5500000000001 445.3900000000001 79.27 439.3900000000001 85.71z" /> + <glyph glyph-name="bezier-curve" + unicode="" + horiz-adv-x="640" d=" M368 416H272C254.33 416 240 401.67 240 384V288C240 270.33 254.33 256 272 256H368C385.67 256 400 270.3300000000001 400 288V384C400 401.67 385.67 416 368 416zM208 360H123.25C113.75 383.44 90.84 400 64 400C28.66 400 0 371.35 0 336S28.66 272 64 272C90.84 272 113.75 288.56 123.25 312H202.98C147.61 279.48 107.12 224.68 93.44 160H142.84C154.14 201.61 179.61 237.21 213.88 261.56C210.18 269.64 208 278.55 208 288V360zM160 128H64C46.33 128 32 113.67 32 96V0C32 -17.67 46.33 -32 64 -32H160C177.67 -32 192 -17.67 192 0V96C192 113.67 177.67 128 160 128zM576 400C549.16 400 526.25 383.44 516.75 360H432V288C432 278.55 429.81 269.64 426.12 261.56C460.39 237.21 485.86 201.61 497.16 160H546.5600000000001C532.8800000000001 224.68 492.39 279.48 437.0200000000001 312H516.75C526.25 288.56 549.16 272 576 272C611.34 272 640 300.65 640 336S611.34 400 576 400zM576 128H480C462.33 128 448 113.67 448 96V0C448 -17.67 462.33 -32 480 -32H576C593.67 -32 608 -17.67 608 0V96C608 113.67 593.67 128 576 128z" /> + <glyph glyph-name="bible" + unicode="" + horiz-adv-x="448" d=" M448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM144 304C144 312.8400000000001 151.16 320 160 320H208V368C208 376.8400000000001 215.16 384 224 384H256C264.84 384 272 376.8400000000001 272 368V320H320C328.84 320 336 312.8400000000001 336 304V272C336 263.16 328.84 256 320 256H272V144C272 135.16 264.84 128 256 128H224C215.16 128 208 135.16 208 144V256H160C151.16 256 144 263.16 144 272V304zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0z" /> + <glyph glyph-name="bicycle" + unicode="" + horiz-adv-x="640" d=" M512.509 255.999C496.136 256.063 480.479 253.044 466.073 247.504L388.3930000000001 372.657A24 24 0 0 1 368.001 384H304.001C295.164 384 288.001 376.837 288.001 368V352C288.001 343.163 295.164 336 304.001 336H354.65L369.546 312H256.002V328C256.002 336.837 248.839 344 240.002 344H152.543C139.102 344 127.766 333.001 128.007 319.563C128.239 306.519 138.883 296 152.002 296H200.728L171.311 248.48C157.878 253.31 143.407 255.963 128.319 256C58.094 256.17 0.412 198.988 0.002 128.764C-0.413 57.721 57.055 0 128.002 0C187.644 0 237.76 40.793 251.969 96H304.002A24 24 0 0 1 324.408 107.367L410.37 246.23L425.308 222.163C399.853 198.715 383.923 165.082 384.001 127.726C384.146 58.893 441.9 0.675 510.73 0.007C581.336 -0.678 638.911 55.81 639.9849999999999 126.003C641.0709999999999 196.944 583.459 255.723 512.5089999999999 255.999zM186.75 182.228C196.477 171.699 203.423 158.567 206.392 144H163.086L186.75 182.228zM128.002 48C83.89 48 48.002 83.888 48.002 128S83.89 208 128.002 208C133.871 208 139.588 207.347 145.101 206.141L99.596 132.632C89.715 116.673 101.213 96 120.002 96H201.302C188.932 67.775 160.74 48 128.002 48zM290.632 144H255.008C251.048 175.756 235.452 203.894 212.625 224.026L237.371 264H364.918L290.632 144zM507.689 48.114C466.653 50.2790000000001 433.64 83.806 432.062 124.869C431.25 145.99 438.695 165.3870000000001 451.3969999999999 180.132L495.8299999999999 108.546C500.49 101.038 510.3539999999999 98.73 517.862 103.39L531.456 111.827C538.964 116.487 541.273 126.351 536.612 133.859L492.1439999999999 205.502A79.901 79.901 0 0 0 512.002 207.999C556.1139999999999 207.999 592.002 172.111 592.002 127.999C592.001 82.459 553.75 45.683 507.689 48.114z" /> + <glyph glyph-name="binoculars" + unicode="" + horiz-adv-x="512" d=" M416 400C416 408.8400000000001 408.84 416 400 416H336C327.1600000000001 416 320 408.8400000000001 320 400V352H416V400zM63.91 288.01C61.4 194.16 3.46 173.78 0 44V0C0 -17.67 14.33 -32 32 -32H128C145.67 -32 160 -17.67 160 0V160H192V320H95.84C78.21 320 64.39 305.63 63.91 288.01zM448.0900000000001 288.01C447.61 305.63 433.79 320 416.1600000000001 320H320V160H352V0C352 -17.67 366.33 -32 384 -32H480C497.67 -32 512 -17.67 512 0V44C508.54 173.78 450.6 194.16 448.0900000000001 288.01zM176 416H112C103.16 416 96 408.8400000000001 96 400V352H192V400C192 408.8400000000001 184.84 416 176 416zM224 160H288V320H224V160z" /> + <glyph glyph-name="birthday-cake" + unicode="" + horiz-adv-x="448" d=" M448 64C419.98 64 416.74 96 373.5 96C330.07 96 326.675 64 298.75 64C271.055 64 267.296 96 224 96C181.158 96 176.782 64 149.5 64C121.352 64 118.298 96 74.75 96C31.203 96 28.097 64 0 64V144C0 170.5 21.5 192 48 192H64V336H128V192H192V336H256V192H320V336H384V192H400C426.5 192 448 170.5 448 144V64zM448 -64H0V32C43.356 32 46.767 64 74.75 64C102.701 64 106.003 32 149.5 32C192.343 32 196.717 64 224 64C252.148 64 255.201 32 298.75 32C342.107 32 345.517 64 373.5 64C400.988 64 404.752 32 448 32V-64zM96 352C78.25 352 64 366.25 64 384C64 415 96 407 96 448C108 448 128 418.5 128 392S113.75 352 96 352zM224 352C206.25 352 192 366.25 192 384C192 415 224 407 224 448C236 448 256 418.5 256 392S241.75 352 224 352zM352 352C334.25 352 320 366.25 320 384C320 415 352 407 352 448C364 448 384 418.5 384 392S369.75 352 352 352z" /> + <glyph glyph-name="blender" + unicode="" + horiz-adv-x="512" d=" M416 64H160C124.65 64 96 35.35 96 0V-32C96 -49.67 110.33 -64 128 -64H448C465.67 -64 480 -49.67 480 -32V0C480 35.35 451.35 64 416 64zM288 -32C270.33 -32 256 -17.67 256 0S270.33 32 288 32S320 17.67 320 0S305.67 -32 288 -32zM328 384H494.54L512 448H48C21.49 448 0 426.51 0 400V240C0 213.49 21.49 192 48 192H151.27L160 96H416L433.46 160H328C323.58 160 320 163.58 320 168V184C320 188.42 323.58 192 328 192H442.18L459.64 256H328C323.58 256 320 259.5800000000001 320 264V280C320 284.42 323.58 288 328 288H468.36L485.82 352H328C323.58 352 320 355.58 320 360V376C320 380.42 323.58 384 328 384zM64 256V384H133.82L145.46 256H64z" /> + <glyph glyph-name="blind" + unicode="" + horiz-adv-x="384" d=" M380.15 -62.837A8 8 0 0 0 369.161 -60.15L243.831 146.2770000000001A31.923 31.923 0 0 1 256.7890000000001 155.7620000000001L382.8370000000001 -51.8459999999999A8 8 0 0 0 380.1500000000001 -62.8369999999999zM142.803 133.662L110.263 44.177L146.383 -44.1080000000001C153.076 -60.4680000000001 171.76 -68.3000000000001 188.116 -61.609C204.473 -54.917 212.309 -36.2330000000001 205.617 -19.8750000000001L142.803 133.6619999999999zM96 360C120.301 360 140 379.699 140 404S120.301 448 96 448S52 428.301 52 404S71.699 360 96 360zM250.837 190.872L130.837 342.872C126.104 348.867 119.087 351.98 112 351.9840000000001V352H80V351.974C72.854 351.971 65.783 348.813 61.056 342.7340000000001L0 264.2340000000001V168.54C0 155.085 11.011 143.749 24.464 144.004C37.505 144.252 48 154.9 48 168V247.766L64 268.337V127.639L9.927 -21.055C3.887 -37.664 12.455 -56.024 29.065 -62.064C45.667 -68.1030000000001 64.033 -59.54 70.074 -42.926L136 138.362V245.559L104.594 285.375A4 4 0 1 0 110.863 290.346L213.163 161.129C222.308 149.545 237.531 149.79 246.871 157.1640000000001C257.281 165.3800000000001 259.0300000000001 180.4980000000001 250.837 190.8720000000001z" /> + <glyph glyph-name="bold" + unicode="" + horiz-adv-x="384" d=" M304.793 204.109C338.432 222.646 358.45 258.269 358.45 299.802C358.45 348.038 332.2 387.428 289.824 403.981C265.138 413.99 240.849 416 209.661 416H24C15.163 416 8 408.837 8 400V366.951C8 358.114 15.163 350.951 24 350.951H57.113V32.4210000000001H24C15.163 32.4210000000001 8 25.258 8 16.4210000000001V-16C8 -24.837 15.163 -32 24 -32H219.69C243.893 -32 264.524 -30.711 286.556 -24.416C337.52 -9.193 376 37.353 376 97.986C376 150.154 349.427 189.67 304.793 204.109zM142.217 347.1910000000001H209.661C225.955 347.1910000000001 237.197 345.1720000000001 247.186 340.474C263.014 331.995 272.092 313.972 272.092 291.028C272.092 255.999 251.772 234.2380000000001 219.063 234.2380000000001H142.217V347.1910000000001zM254.859 41.716C244.719 37.66 232.182 36.809 223.45 36.809H142.217V166.057H226.584C266.229 166.057 289.641 140.677 289.641 103C289.642 74.575 275.981 50.517 254.8590000000001 41.716z" /> + <glyph glyph-name="bolt" + unicode="" + horiz-adv-x="320" d=" M295.973 288H180.572L215.19 417.816C219.25 433.044 207.756 448 192 448H56C43.971 448 33.8 439.0950000000001 32.211 427.1720000000001L0.215 187.172C-1.704 172.783 9.504 160 24.004 160H142.705L96.646 -34.466C93.05 -49.649 104.659 -64 119.992 -64C128.342 -64 136.368 -59.626 140.77 -52.022L316.7430000000001 251.975C325.9870000000001 267.942 314.4550000000001 288 295.9730000000001 288z" /> + <glyph glyph-name="bomb" + unicode="" + horiz-adv-x="512" d=" M440.5 359.5L388.5 307.5L415 281C424.4 271.6 424.4 256.4 415 247.1L397.6 229.7C409.4000000000001 203.6 416 174.6 416 144.1C416 29.2 322.9 -63.9 208 -63.9S0 29.1 0 144S93.1 352 208 352C238.5 352 267.5 345.4 293.6 333.6L311 351C320.4 360.4 335.6 360.4 344.9 351L371.4 324.5L423.4 376.5L440.5 359.5zM500 388H476C469.4 388 464 382.6 464 376S469.4 364 476 364H500C506.6 364 512 369.4 512 376S506.6 388 500 388zM440 448C433.4 448 428 442.6 428 436V412C428 405.4 433.4 400 440 400S452 405.4 452 412V436C452 442.6 446.6 448 440 448zM473.9 393L490.9 410C495.6 414.7 495.6 422.3 490.9 427C486.2 431.7 478.6 431.7 473.9 427L456.9 410C452.2 405.3 452.2 397.7 456.9 393C461.7 388.3 469.3 388.3 473.9 393zM406.1 393C410.8 388.3 418.4 388.3 423.1 393C427.8 397.7 427.8 405.3 423.1 410L406.1 427C401.4 431.7 393.8 431.7 389.1 427C384.4 422.3 384.4 414.7 389.1 410L406.1 393zM473.9 359C469.2 363.7 461.6 363.7 456.9 359C452.2 354.3 452.2 346.7 456.9 342L473.9 325C478.6 320.3 486.2 320.3 490.9 325C495.6 329.7 495.6 337.3 490.9 342L473.9 359zM112 176C112 211.3 140.7 240 176 240C184.8 240 192 247.2 192 256S184.8 272 176 272C123.1 272 80 228.9 80 176C80 167.2 87.2 160 96 160S112 167.2 112 176z" /> + <glyph glyph-name="bone" + unicode="" + horiz-adv-x="640" d=" M598.88 203.44C624.08 216.04 640 241.8 640 269.9700000000001V277.61C640 318.7 606.7 352 565.61 352C533.59 352 505.17 331.51 495.04 301.14C487.36 278.11 483.44 256 456.93 256H183.06C155.68 256 151.48 281.54 144.95 301.14C134.83 331.51 106.4 352 74.39 352C33.3 352 0 318.7 0 277.61V269.9700000000001C0 241.8 15.92 216.04 41.12 203.44C50.55 198.73 50.55 185.2700000000001 41.12 180.56C15.92 167.96 0 142.2 0 114.03V106.39C0 65.3 33.3 32 74.38 32C106.4 32 134.82 52.49 144.95 82.86C152.63 105.89 156.55 128 183.06 128H456.93C484.31 128 488.51 102.46 495.04 82.86C505.17 52.49 533.6 32 565.61 32C606.69 32 639.99 65.3 639.99 106.39V114.03C639.99 142.21 624.07 167.96 598.87 180.56C589.45 185.2699999999999 589.45 198.73 598.88 203.44z" /> + <glyph glyph-name="bong" + unicode="" + horiz-adv-x="448" d=" M302.5 -64C325.68 -64 346.93 -51.42 358.5 -31.34C374.69 -3.26 384 29.25 384 64C384 100.12 373.92 133.81 356.56 162.62L400 206.06L409.38 196.68C415.63 190.43 425.76 190.43 432.01 196.68L443.31 208C449.56 214.25 449.56 224.38 443.31 230.63L390.62 283.32C384.37 289.57 374.24 289.57 367.99 283.32L356.68 272.01C350.43 265.76 350.43 255.63 356.68 249.38L366.06 240L326.65 200.59C315.09 211.96 302.12 221.92 288 230.1V384.26L303.9700000000001 384.28C312.79 384.29 319.9400000000001 391.44 319.9500000000001 400.26L319.9900000000001 431.98C320 440.83 312.82 448.01 303.9700000000001 448L80.03 447.74C71.21 447.73 64.06 440.58 64.05 431.76L64.01 400.03C64 391.18 71.18 384.01 80.03 384.02L96 384.04V230.11C38.67 196.9 0 135.03 0 64C0 29.25 9.31 -3.27 25.5 -31.34C37.08 -51.42 58.33 -64 81.5 -64H302.5zM120.06 188.57L144 202.44V384.0900000000001L240 384.2V202.44L263.94 188.57C288.75 174.2 308.06 152.84 320.5 128H63.5C75.95 152.84 95.25 174.2 120.06 188.57z" /> + <glyph glyph-name="book-open" + unicode="" + horiz-adv-x="576" d=" M542.22 415.95C487.42 412.8400000000001 378.5 401.52 311.26 360.36C306.62 357.52 303.99 352.4700000000001 303.99 347.19V-16.68C303.99 -28.23 316.62 -35.53 327.27 -30.17C396.45 4.65 496.5 14.15 545.97 16.75C562.86 17.64 575.99 31.18 575.99 47.41V385.25C576 402.96 560.64 416.99 542.22 415.95zM264.73 360.36C197.5 401.52 88.58 412.83 33.78 415.95C15.36 416.99 0 402.96 0 385.25V47.4C0 31.16 13.13 17.62 30.02 16.74C79.51 14.1399999999999 179.61 4.6299999999999 248.79 -30.21C259.4100000000001 -35.5600000000001 272 -28.27 272 -16.7500000000001V347.37C272 352.6600000000001 269.38 357.51 264.73 360.36z" /> + <glyph glyph-name="book-reader" + unicode="" + horiz-adv-x="512" d=" M352 352C352 405.02 309.02 448 256 448S160 405.02 160 352S202.98 256 256 256S352 298.98 352 352zM233.59 206.9C174.26 243.22 78.16 253.2 29.8 255.95C13.55 256.87 0 244.49 0 228.86V6.06C0 -8.27 11.59 -20.22 26.49 -20.99C70.15 -23.28 158.48 -31.67 219.53 -62.42C228.9 -67.14 240.01 -60.71 240.01 -50.55V195.44C240 200.11 237.69 204.39 233.59 206.9zM482.2 255.95C433.85 253.21 337.74 243.22 278.4200000000001 206.9C274.3200000000001 204.39 272.0100000000001 199.94 272.0100000000001 195.27V-50.52C272.0100000000001 -60.71 283.1500000000001 -67.15 292.5500000000001 -62.42C353.5900000000001 -31.6999999999999 441.8700000000001 -23.3099999999999 485.5200000000001 -21.02C500.4200000000001 -20.24 512.0100000000001 -8.29 512.0100000000001 6.04V228.86C512.0000000000001 244.49 498.4500000000001 256.87 482.2000000000001 255.95z" /> + <glyph glyph-name="book" + unicode="" + horiz-adv-x="448" d=" M448 88V424C448 437.3 437.3 448 424 448H96C43 448 0 405 0 352V32C0 -21 43 -64 96 -64H424C437.3 -64 448 -53.3 448 -40V-24C448 -16.5 444.5 -9.7 439.1 -5.3C434.9000000000001 10.1 434.9000000000001 54 439.1 69.4C444.5 73.7 448 80.5 448 88zM128 314C128 317.3 130.7 320 134 320H346C349.3 320 352 317.3 352 314V294C352 290.7 349.3 288 346 288H134C130.7 288 128 290.7 128 294V314zM128 250C128 253.3 130.7 256 134 256H346C349.3 256 352 253.3 352 250V230C352 226.7 349.3 224 346 224H134C130.7 224 128 226.7 128 230V250zM381.4 0H96C78.3 0 64 14.3 64 32C64 49.6 78.4 64 96 64H381.4C379.5 46.9 379.5 17.1 381.4 0z" /> + <glyph glyph-name="bookmark" + unicode="" + horiz-adv-x="384" d=" M0 -64V400C0 426.51 21.49 448 48 448H336C362.51 448 384 426.51 384 400V-64L192 48L0 -64z" /> + <glyph glyph-name="bowling-ball" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM120 256C102.3 256 88 270.3 88 288S102.3 320 120 320S152 305.7 152 288S137.7 256 120 256zM184 352C184 369.7 198.3 384 216 384S248 369.7 248 352S233.7 320 216 320S184 334.3 184 352zM232 208C214.3 208 200 222.3 200 240S214.3 272 232 272S264 257.7 264 240S249.7 208 232 208z" /> + <glyph glyph-name="box-open" + unicode="" + horiz-adv-x="640" d=" M53.2 407L1.7 304.2C-2.9 295 2 284 11.8 281.2L209.7 224.7C216.8 222.7 224.4 225.7 228.2 232L320 384L69.8 415.9C62.9 416.7 56.3 413.2 53.2 407zM638.3000000000001 304.2L586.8 407C583.6999999999999 413.2 577 416.8 570.0999999999999 415.9L320 384L411.7 231.9C415.5 225.6 423.1 222.6 430.2 224.6L628.1 281.1C638 284 642.8000000000001 295 638.3000000000001 304.2zM425.7 192C408.8 192 392.9 201 384.3 215.4L320 322L255.8 215.4C247.1 200.9 231.2 191.9 214.3 191.9C209.8 191.9 205.3 192.5 201 193.8L64 233V55C64 40.3 74 27.5 88.2 24L304.4 -30.1C314.6 -32.6 325.3 -32.6 335.4 -30.1L551.8 24C566 27.6 576 40.4 576 55V233L439 193.9C434.7 192.6 430.2 192 425.7 192z" /> + <glyph glyph-name="box" + unicode="" + horiz-adv-x="512" d=" M509.5 263.4L458.9 415.2C452.4 434.8 434.1 448 413.4 448H272V256H510.7C510.3 258.5 510.3 261 509.5 263.4zM240 448H98.6C77.9 448 59.6 434.8 53.1 415.2L2.5 263.4C1.7 261 1.7 258.5 1.3 256H240V448zM0 224V-16C0 -42.5 21.5 -64 48 -64H464C490.5 -64 512 -42.5 512 -16V224H0z" /> + <glyph glyph-name="boxes" + unicode="" + horiz-adv-x="576" d=" M560 160H480V64L448 85.3L416 64V160H336C327.2 160 320 152.8 320 144V-48C320 -56.8 327.2 -64 336 -64H560C568.8 -64 576 -56.8 576 -48V144C576 152.8 568.8 160 560 160zM176 224H400C408.8 224 416 231.2 416 240V432C416 440.8 408.8 448 400 448H320V352L288 373.3L256 352V448H176C167.2 448 160 440.8 160 432V240C160 231.2 167.2 224 176 224zM240 160H160V64L128 85.3L96 64V160H16C7.2 160 0 152.8 0 144V-48C0 -56.8 7.2 -64 16 -64H240C248.8 -64 256 -56.8 256 -48V144C256 152.8 248.8 160 240 160z" /> + <glyph glyph-name="braille" + unicode="" + horiz-adv-x="640" d=" M128 192C128 156.654 99.346 128 64 128S0 156.654 0 192S28.654 256 64 256S128 227.346 128 192zM64 64C46.327 64 32 49.673 32 32S46.327 0 64 0S96 14.327 96 32S81.673 64 64 64zM64 416C28.654 416 0 387.346 0 352S28.654 288 64 288S128 316.654 128 352S99.346 416 64 416zM224 224C206.327 224 192 209.673 192 192S206.327 160 224 160S256 174.327 256 192S241.673 224 224 224zM224 64C206.327 64 192 49.673 192 32S206.327 0 224 0S256 14.327 256 32S241.673 64 224 64zM224 416C188.654 416 160 387.346 160 352S188.654 288 224 288S288 316.654 288 352S259.346 416 224 416zM448 224C430.327 224 416 209.673 416 192S430.327 160 448 160S480 174.327 480 192S465.673 224 448 224zM448 64C430.327 64 416 49.673 416 32S430.327 0 448 0S480 14.327 480 32S465.673 64 448 64zM448 416C412.654 416 384 387.346 384 352S412.654 288 448 288S512 316.654 512 352S483.346 416 448 416zM608 224C590.327 224 576 209.673 576 192S590.327 160 608 160S640 174.327 640 192S625.673 224 608 224zM608 64C590.327 64 576 49.673 576 32S590.327 0 608 0S640 14.327 640 32S625.673 64 608 64zM608 384C590.327 384 576 369.673 576 352S590.327 320 608 320S640 334.327 640 352S625.673 384 608 384z" /> + <glyph glyph-name="brain" + unicode="" + horiz-adv-x="576" d=" M208 448C178.13 448 153.26 427.45 146.2 399.78C145.45 399.8 144.75 400 144 400C108.66 400 80 371.35 80 336C80 331.16 80.64 326.49 81.66 321.9600000000001C52.54 310 32 281.43 32 248C32 235.42 35.16 223.68 40.34 213.09C16.34 199.28 0 173.67 0 144C0 110.66 20.42 82.12 49.42 70.11C48.52 65.54 48 60.83 48 56C48 16.24 80.23 -16 120 -16C124.12 -16 128.1 -15.45 132.03 -14.79C141.61 -43.31 168.25 -64 200 -64C239.77 -64 272 -31.76 272 8V242.55C261.09 233.57 248.02 227.1 233.64 224.16C228.67 223.14 224 226.98 224 232.05V248.23C224 251.8 226.35 255.01 229.8 255.89C254 262.05 272 283.8400000000001 272 309.93V384C272 419.35 243.34 448 208 448zM576 144C576 173.67 559.66 199.28 535.66 213.09C540.8299999999999 223.68 544 235.42 544 248C544 281.43 523.46 310 494.34 321.96C495.36 326.49 496.0000000000001 331.16 496.0000000000001 336C496.0000000000001 371.35 467.34 400 432.0000000000001 400C431.2500000000001 400 430.5500000000001 399.8 429.8000000000001 399.78C422.74 427.45 397.87 448 368 448C332.66 448 304 419.35 304 384V309.93C304 283.8400000000001 321.99 262.05 346.2 255.89C349.66 255.01 352 251.8 352 248.23V232.05C352 226.98 347.32 223.14 342.36 224.16C327.98 227.1 314.92 233.57 304 242.55V8C304 -31.76 336.23 -64 376 -64C407.75 -64 434.39 -43.31 443.9700000000001 -14.79C447.9000000000001 -15.46 451.8800000000001 -16 456 -16C495.77 -16 528 16.24 528 56C528 60.83 527.48 65.54 526.58 70.11C555.58 82.12 576 110.66 576 144z" /> + <glyph glyph-name="briefcase-medical" + unicode="" + horiz-adv-x="512" d=" M464 320H384V368C384 394.5 362.5 416 336 416H176C149.5 416 128 394.5 128 368V320H48C21.5 320 0 298.5 0 272V-16C0 -42.5 21.5 -64 48 -64H464C490.5 -64 512 -42.5 512 -16V272C512 298.5 490.5 320 464 320zM192 352H320V320H192V352zM352 104C352 99.6 348.4 96 344 96H288V40C288 35.6 284.4 32 280 32H232C227.6 32 224 35.6 224 40V96H168C163.6 96 160 99.6 160 104V152C160 156.4 163.6 160 168 160H224V216C224 220.4 227.6 224 232 224H280C284.4 224 288 220.4 288 216V160H344C348.4 160 352 156.4 352 152V104z" /> + <glyph glyph-name="briefcase" + unicode="" + horiz-adv-x="512" d=" M320 112C320 103.16 312.84 96 304 96H208C199.16 96 192 103.16 192 112V160H0V16C0 -9.6 22.4 -32 48 -32H464C489.6 -32 512 -9.6 512 16V160H320V112zM464 320H384V368C384 393.6 361.6 416 336 416H176C150.4 416 128 393.6 128 368V320H48C22.4 320 0 297.6 0 272V192H512V272C512 297.6 489.6 320 464 320zM320 320H192V352H320V320z" /> + <glyph glyph-name="broadcast-tower" + unicode="" + horiz-adv-x="640" d=" M150.94 256H184.67C195.68 256 203.28 266.8300000000001 199.53 277.18C194.6 290.76 191.98 305.16 191.98 320S194.6 349.24 199.53 362.82C203.29 373.17 195.68 384 184.67 384H150.94C143.93 384 137.48 379.51 135.53 372.77C130.64 355.79 128 338.12 128 320C128 301.88 130.64 284.2100000000001 135.54 267.24C137.48 260.5 143.93 256 150.94 256zM89.92 424.6600000000001C95.56 435.28 87.97 448 75.96 448H40.63C34.36 448 28.49 444.4100000000001 25.89 438.69C9.4 402.46 0 362.35 0 320C0 295.25 3.12 251.67 26.69 201.14C29.31 195.51 35.11 192 41.3 192H76.14C88.16 192 95.75 204.74 90.09 215.37C40.31 308.69 73.38 393.52 89.92 424.66zM614.06 438.71C611.46 444.42 605.6 448 599.33 448H563.9100000000001C551.9300000000001 448 544.2500000000001 435.34 549.8900000000001 424.75C568.1600000000001 390.46 598.3100000000001 305.33 550.1700000000001 215.52C544.45 204.84 551.97 192 564.08 192H599.3100000000001C605.58 192 611.44 195.58 614.0400000000001 201.29C630.57 237.52 640 277.64 640 320S630.58 402.48 614.06 438.71zM489.06 384H455.33C444.32 384 436.72 373.17 440.47 362.82C445.4 349.24 448.02 334.84 448.02 320S445.4 290.76 440.47 277.18C436.71 266.8300000000001 444.32 256 455.33 256H489.06C496.08 256 502.52 260.49 504.47 267.24C509.37 284.2100000000001 512 301.88 512 320C512 338.12 509.36 355.79 504.46 372.76C502.52 379.51 496.07 384 489.06 384zM372.76 283.88C379.81 294.17 383.96 306.5900000000001 383.96 320C383.96 355.35 355.33 384 320 384C284.68 384 256.04 355.35 256.04 320C256.04 306.5900000000001 260.19 294.17 267.24 283.88L136.74 -29.53C133.34 -37.68 137.2 -47.05 145.35 -50.45L174.86 -62.76C183.01 -66.1600000000001 192.38 -62.3000000000001 195.77 -54.15L244.96 64H395.03L444.23 -54.15C447.63 -62.31 456.99 -66.16 465.14 -62.76L494.65 -50.45C502.8 -47.05 506.65 -37.68 503.26 -29.53L372.76 283.8800000000001zM271.62 128L320 244.19L368.38 128H271.62z" /> + <glyph glyph-name="broom" + unicode="" + horiz-adv-x="512" d=" M10.8 200.8C-0.7 196.2 -3.7 181.3 5 172.6L59.8 117.8L133 142.2L108.6 69L236.6 -59C245.4 -67.7999999999999 260.2 -64.7 264.8 -53.2L362.9 190.5L254.5 298.9L10.8 200.8zM507.3 420.7L484.7 443.3C478.5 449.6 468.3 449.6 462.1 443.3L359.8 341.1L319.4000000000001 381.5C315.2000000000001 385.8 308.0000000000001 384.5 305.5000000000001 379L278.3000000000001 320.4L384.4000000000001 214.3L443.0000000000001 241.5C448.4000000000001 244 449.7000000000001 251.2 445.5000000000001 255.4L405.1000000000002 295.8L507.3 398.1C513.6 404.3 513.6 414.4 507.3 420.7z" /> + <glyph glyph-name="brush" + unicode="" + horiz-adv-x="384" d=" M352 448H32C14.33 448 0 433.67 0 416V192H384V416C384 433.67 369.67 448 352 448zM0 128C0 92.65 28.66 64 64 64H128V0C128 -35.35 156.66 -64 192 -64S256 -35.35 256 0V64H320C355.3400000000001 64 384 92.65 384 128V160H0V128zM192 24C205.25 24 216 13.26 216 0C216 -13.25 205.25 -24 192 -24S168 -13.25 168 0C168 13.26 178.75 24 192 24z" /> + <glyph glyph-name="bug" + unicode="" + horiz-adv-x="512" d=" M511.988 159.1C511.51 141.67 496.771 128 479.335 128H424V112C424 90.136 419.118 69.416 410.4 50.855L470.628 -9.373C483.124 -21.87 483.124 -42.131 470.628 -54.628C458.13 -67.125 437.869 -67.124 425.372 -54.628L370.636 0.108C345.886 -19.965 314.351 -32 280 -32V212C280 218.627 274.627 224 268 224H244C237.373 224 232 218.627 232 212V-32C197.649 -32 166.114 -19.965 141.364 0.108L86.628 -54.628C74.13 -67.125 53.869 -67.124 41.372 -54.628C28.876 -42.131 28.876 -21.87 41.372 -9.373L101.6 50.855C92.882 69.416 88 90.136 88 112V128H32.666C15.23 128 0.491 141.67 0.013 159.1C-0.484 177.184 14.028 192 32 192H88V250.745L41.372 297.373C28.876 309.87 28.876 330.131 41.372 342.628C53.87 355.125 74.13 355.125 86.628 342.628L141.255 288H370.7440000000001L425.3710000000001 342.627C437.8690000000001 355.124 458.129 355.124 470.6270000000001 342.627C483.123 330.13 483.123 309.8690000000001 470.6270000000001 297.372L424 250.745V192H480C497.972 192 512.484 177.184 511.988 159.1zM257 448C195.144 448 145 397.856 145 336H369C369 397.856 318.856 448 257 448z" /> + <glyph glyph-name="building" + unicode="" + horiz-adv-x="448" d=" M436 -32H416V424C416 437.255 405.255 448 392 448H56C42.745 448 32 437.255 32 424V-32H12C5.373 -32 0 -37.373 0 -44V-64H448V-44C448 -37.373 442.627 -32 436 -32zM128 372C128 378.627 133.373 384 140 384H180C186.627 384 192 378.627 192 372V332C192 325.373 186.627 320 180 320H140C133.373 320 128 325.373 128 332V372zM128 276C128 282.627 133.373 288 140 288H180C186.627 288 192 282.627 192 276V236C192 229.373 186.627 224 180 224H140C133.373 224 128 229.373 128 236V276zM180 128H140C133.373 128 128 133.373 128 140V180C128 186.627 133.373 192 140 192H180C186.627 192 192 186.627 192 180V140C192 133.373 186.627 128 180 128zM256 -32H192V52C192 58.627 197.373 64 204 64H244C250.627 64 256 58.627 256 52V-32zM320 140C320 133.373 314.627 128 308 128H268C261.373 128 256 133.373 256 140V180C256 186.627 261.373 192 268 192H308C314.627 192 320 186.627 320 180V140zM320 236C320 229.373 314.627 224 308 224H268C261.373 224 256 229.373 256 236V276C256 282.627 261.373 288 268 288H308C314.627 288 320 282.627 320 276V236zM320 332C320 325.373 314.627 320 308 320H268C261.373 320 256 325.373 256 332V372C256 378.627 261.373 384 268 384H308C314.627 384 320 378.627 320 372V332z" /> + <glyph glyph-name="bullhorn" + unicode="" + horiz-adv-x="576" d=" M576 208C576 231.63 563.05 252.04 544 263.12V415.99C544 424.74 537.02 448 512 448C504.88 448 497.81 445.62 492.02 440.98L406.99 372.95C364.28 338.81 310.6600000000001 320 256 320H64C28.65 320 0 291.35 0 256V160C0 124.65 28.65 96 64 96H97.7C96.31 85.52 95.52 74.86 95.52 64C95.52 24.23 104.78 -13.35 121.08 -46.94C126.27 -57.63 137.6 -64 149.48 -64H223.76C249.81 -64 265.45 -34.16 249.66 -13.44C233.26 8.08 223.51 34.92 223.51 64C223.51 75.11 225.13 85.79 227.92 96H256C310.66 96 364.28 77.19 406.98 43.05L492.01 -24.98A32.023 32.023 0 0 1 511.99 -32C536.91 -32 543.99 -9.22 543.99 0V152.87C563.05 163.96 576 184.37 576 208zM480 66.58L446.95 93.02C392.95 136.22 325.12 160 256 160V256C325.12 256 392.95 279.78 446.95 322.98L480 349.42V66.58z" /> + <glyph glyph-name="bullseye" + unicode="" + horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 8C146.31 8 64 90.29 64 192C64 293.69 146.29 376 248 376C349.69 376 432 293.71 432 192C432 90.31 349.71 8 248 8zM248 320C177.31 320 120 262.69 120 192S177.31 64 248 64S376 121.31 376 192S318.69 320 248 320zM248 128C212.71 128 184 156.71 184 192S212.71 256 248 256S312 227.29 312 192S283.29 128 248 128z" /> + <glyph glyph-name="burn" + unicode="" + horiz-adv-x="384" d=" M192 448C79.7 346.7 0 227.1 0 147.5C0 23 79 -64 192 -64S384 23 384 147.5C384 227.4 303.8 347.1 192 448zM192 0C135.5 0 96 39 96 94.8C96 108.3 100.6 156.3 192 256C283.4 156.3 288 108.3 288 94.8C288 39 248.5 0 192 0z" /> + <glyph glyph-name="bus-alt" + unicode="" + horiz-adv-x="512" d=" M488 320H480V368C480 412.8 380.8 448 256 448S32 412.8 32 368V320H24C10.75 320 0 309.26 0 296V216C0 202.75 10.75 192 24 192H32V32C32 14.33 46.33 0 64 0V-32C64 -49.67 78.33 -64 96 -64H128C145.67 -64 160 -49.67 160 -32V0H352V-32C352 -49.67 366.33 -64 384 -64H416C433.67 -64 448 -49.67 448 -32V0H454.4C470.4 0 480 12.8 480 25.6V192H488C501.25 192 512 202.75 512 216V296C512 309.26 501.25 320 488 320zM160 376C160 380.42 163.58 384 168 384H344C348.42 384 352 380.42 352 376V360C352 355.58 348.42 352 344 352H168C163.58 352 160 355.58 160 360V376zM112 48C94.33 48 80 62.33 80 80S94.33 112 112 112S144 97.67 144 80S129.67 48 112 48zM240 160H128C110.33 160 96 174.33 96 192V288C96 305.67 110.33 320 128 320H240V160zM272 160V320H384C401.67 320 416 305.67 416 288V192C416 174.33 401.67 160 384 160H272zM400 48C382.33 48 368 62.33 368 80S382.33 112 400 112S432 97.67 432 80S417.67 48 400 48z" /> + <glyph glyph-name="bus" + unicode="" + horiz-adv-x="512" d=" M488 320H480V368C480 412.8 380.8 448 256 448S32 412.8 32 368V320H24C10.75 320 0 309.26 0 296V216C0 202.75 10.75 192 24 192H32V32C32 14.33 46.33 0 64 0V-32C64 -49.67 78.33 -64 96 -64H128C145.67 -64 160 -49.67 160 -32V0H352V-32C352 -49.67 366.33 -64 384 -64H416C433.67 -64 448 -49.67 448 -32V0H454.4C470.4 0 480 12.8 480 25.6V192H488C501.25 192 512 202.75 512 216V296C512 309.26 501.25 320 488 320zM112 48C94.33 48 80 62.33 80 80S94.33 112 112 112S144 97.67 144 80S129.67 48 112 48zM128 160C110.33 160 96 174.33 96 192V320C96 337.67 110.33 352 128 352H384C401.67 352 416 337.67 416 320V192C416 174.33 401.67 160 384 160H128zM400 48C382.33 48 368 62.33 368 80S382.33 112 400 112S432 97.67 432 80S417.67 48 400 48z" /> + <glyph glyph-name="business-time" + unicode="" + horiz-adv-x="640" d=" M496 224C416.41 224 352 159.59 352 80S416.41 -64 496 -64S640 0.41 640 80S575.59 224 496 224zM560 73.71C560 68.3700000000001 555.63 64.0000000000001 550.29 64.0000000000001H489.72C484.38 64.0000000000001 480.01 68.3700000000001 480.01 73.71V150.28C480.01 155.62 484.38 159.99 489.72 159.99H502.29C507.6299999999999 159.99 511.9999999999999 155.62 511.9999999999999 150.28V96H550.29C555.63 96 560 91.63 560 86.29V73.71zM496 256C501.4 256 506.72 255.67 512 255.19V304C512 329.6 489.6 352 464 352H384V400C384 425.6 361.6 448 336 448H176C150.4 448 128 425.6 128 400V352H48C22.4 352 0 329.6 0 304V224H395.12C423.7200000000001 244.09 458.47 256 496 256zM320 352H192V384H320V352zM326.82 128H208C199.16 128 192 135.16 192 144V192H0V48C0 22.4 22.4 0 48 0H339.43C327.1 24.04 320 51.18 320 80C320 96.66 322.48 112.72 326.82 128z" /> + <glyph glyph-name="calculator" + unicode="" + horiz-adv-x="448" d=" M400 448H48C22.4 448 0 425.6 0 400V-16C0 -41.6 22.4 -64 48 -64H400C425.6 -64 448 -41.6 448 -16V400C448 425.6 425.6 448 400 448zM128 12.8C128 6.4 121.6 0 115.2 0H76.8C70.4 0 64 6.4 64 12.8V51.2C64 57.6 70.4 64 76.8 64H115.2C121.6 64 128 57.6 128 51.2V12.8zM128 140.8C128 134.4 121.6 128 115.2 128H76.8C70.4 128 64 134.4 64 140.8V179.2C64 185.6 70.4 192 76.8 192H115.2C121.6 192 128 185.6 128 179.2V140.8zM256 12.8C256 6.4 249.6 0 243.2 0H204.8C198.4 0 192 6.4 192 12.8V51.2C192 57.6 198.4 64 204.8 64H243.2C249.6 64 256 57.6 256 51.2V12.8zM256 140.8C256 134.4 249.6 128 243.2 128H204.8C198.4 128 192 134.4 192 140.8V179.2C192 185.6 198.4 192 204.8 192H243.2C249.6 192 256 185.6 256 179.2V140.8zM384 12.8C384 6.4 377.6 0 371.2 0H332.8C326.4000000000001 0 320 6.4 320 12.8V179.2C320 185.6 326.4 192 332.8 192H371.2C377.6 192 384 185.6 384 179.2V12.8zM384 268.8C384 262.4 377.6 256 371.2 256H76.8C70.4 256 64 262.4 64 268.8V371.2C64 377.6 70.4 384 76.8 384H371.2C377.6 384 384 377.6 384 371.2V268.8z" /> + <glyph glyph-name="calendar-alt" + unicode="" + horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM128 52C128 58.6 122.6 64 116 64H76C69.4 64 64 58.6 64 52V12C64 5.4 69.4 0 76 0H116C122.6 0 128 5.4 128 12V52zM128 180C128 186.6 122.6 192 116 192H76C69.4 192 64 186.6 64 180V140C64 133.4 69.4 128 76 128H116C122.6 128 128 133.4 128 140V180zM256 52C256 58.6 250.6 64 244 64H204C197.4 64 192 58.6 192 52V12C192 5.4 197.4 0 204 0H244C250.6 0 256 5.4 256 12V52zM256 180C256 186.6 250.6 192 244 192H204C197.4 192 192 186.6 192 180V140C192 133.4 197.4 128 204 128H244C250.6 128 256 133.4 256 140V180zM384 52C384 58.6 378.6 64 372 64H332C325.4 64 320 58.6 320 52V12C320 5.4 325.4 0 332 0H372C378.6 0 384 5.4 384 12V52zM384 180C384 186.6 378.6 192 372 192H332C325.4 192 320 186.6 320 180V140C320 133.4 325.4 128 332 128H372C378.6 128 384 133.4 384 140V180z" /> + <glyph glyph-name="calendar-check" + unicode="" + horiz-adv-x="448" d=" M436 288H12C5.373 288 0 293.373 0 300V336C0 362.51 21.49 384 48 384H96V436C96 442.627 101.373 448 108 448H148C154.627 448 160 442.627 160 436V384H288V436C288 442.627 293.373 448 300 448H340C346.627 448 352 442.627 352 436V384H400C426.51 384 448 362.51 448 336V300C448 293.373 442.627 288 436 288zM12 256H436C442.627 256 448 250.627 448 244V-16C448 -42.51 426.51 -64 400 -64H48C21.49 -64 0 -42.51 0 -16V244C0 250.627 5.373 256 12 256zM345.296 160.053L317.127 188.451C312.4600000000001 193.156 304.862 193.187 300.1570000000001 188.519L194.12 83.335L148.14 129.687C143.473 134.392 135.874 134.423 131.169 129.755L102.772 101.5849999999999C98.067 96.918 98.036 89.3199999999999 102.704 84.6149999999999L185.305 1.3459999999999C189.972 -3.3590000000001 197.57 -3.3900000000001 202.275 1.2779999999999L345.228 143.0829999999999C349.933 147.7499999999999 349.964 155.3479999999999 345.296 160.0529999999999z" /> + <glyph glyph-name="calendar-minus" + unicode="" + horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM316 64C322.6 64 328 69.4 328 76V116C328 122.6 322.6 128 316 128H132C125.4 128 120 122.6 120 116V76C120 69.4 125.4 64 132 64H316z" /> + <glyph glyph-name="calendar-plus" + unicode="" + horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM328 116C328 122.6 322.6 128 316 128H256V188C256 194.6 250.6 200 244 200H204C197.4 200 192 194.6 192 188V128H132C125.4 128 120 122.6 120 116V76C120 69.4 125.4 64 132 64H192V4C192 -2.6 197.4 -8 204 -8H244C250.6 -8 256 -2.6 256 4V64H316C322.6 64 328 69.4 328 76V116z" /> + <glyph glyph-name="calendar-times" + unicode="" + horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM269.3 96L317.4000000000001 144.1C322.1 148.8 322.1 156.4 317.4000000000001 161.1L289.1 189.4C284.4000000000001 194.1 276.8 194.1 272.1 189.4L224 141.3L175.9 189.4C171.2 194.1 163.6 194.1 158.9 189.4L130.6 161.1C125.9 156.4 125.9 148.8 130.6 144.1L178.7 96L130.6 47.9C125.9 43.2 125.9 35.6 130.6 30.9L158.9 2.6C163.6 -2.1 171.2 -2.1 175.9 2.6L224 50.7L272.1 2.6C276.8 -2.1 284.4000000000001 -2.1 289.1 2.6L317.4000000000001 30.9C322.1 35.6 322.1 43.2 317.4000000000001 47.9L269.3 96z" /> + <glyph glyph-name="calendar" + unicode="" + horiz-adv-x="448" d=" M12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM448 300V336C448 362.5 426.5 384 400 384H352V436C352 442.6 346.6 448 340 448H300C293.4 448 288 442.6 288 436V384H160V436C160 442.6 154.6 448 148 448H108C101.4 448 96 442.6 96 436V384H48C21.5 384 0 362.5 0 336V300C0 293.4 5.4 288 12 288H436C442.6 288 448 293.4 448 300z" /> + <glyph glyph-name="camera-retro" + unicode="" + horiz-adv-x="512" d=" M48 416C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416H48zM48 384H154C157.3 384 160 381.3 160 378V358C160 354.7 157.3 352 154 352H38C34.7 352 32 354.7 32 358V368C32 376.8 39.2 384 48 384zM474 288H38C34.7 288 32 290.7 32 294V330C32 333.3 34.7 336 38 336H176L206.2 381.3C207.3 383 209.2 384 211.2 384H464C472.8 384 480 376.8 480 368V294C480 290.7 477.3 288 474 288zM256 24C189.8 24 136 77.8 136 144S189.8 264 256 264S376 210.2 376 144S322.2 24 256 24zM256 232C207.5 232 168 192.5 168 144S207.5 56 256 56S344 95.5 344 144S304.5 232 256 232zM208 128C199.2 128 192 135.2 192 144C192 179.3 220.7 208 256 208C264.8 208 272 200.8 272 192S264.8 176 256 176C238.4 176 224 161.6 224 144C224 135.2 216.8 128 208 128z" /> + <glyph glyph-name="camera" + unicode="" + horiz-adv-x="512" d=" M512 304V16C512 -10.5 490.5 -32 464 -32H48C21.5 -32 0 -10.5 0 16V304C0 330.5 21.5 352 48 352H136L148.3 384.9C155.3 403.6 173.2 416 193.2 416H318.7000000000001C338.7000000000001 416 356.6 403.6 363.6 384.9L376 352H464C490.5 352 512 330.5 512 304zM376 160C376 226.2 322.2 280 256 280S136 226.2 136 160S189.8 40 256 40S376 93.8 376 160zM344 160C344 111.5 304.5 72 256 72S168 111.5 168 160S207.5 248 256 248S344 208.5 344 160z" /> + <glyph glyph-name="cannabis" + unicode="" + horiz-adv-x="512" d=" M503.47 87.75C501.91 88.57 471.08 104.64 426.6900000000001 113.56C490.9400000000001 188.68 510.7400000000001 275.23 511.6200000000001 279.2C512.8000000000001 284.53 511.1800000000001 290.1 507.3200000000001 293.9700000000001C504.2900000000001 297.01 500.2 298.67 496.0000000000001 298.67C494.8600000000001 298.67 493.71 298.55 492.5600000000001 298.29C488.6800000000001 297.44 406.0200000000001 278.7 331.98 218.53C331.99 219.99 331.99 221.46 331.99 222.93C331.99 341.72 272.01 436.65 269.4600000000001 440.63A15.973000000000003 15.973000000000003 0 0 1 256 448C250.55 448 245.47 445.2200000000001 242.53 440.63C239.98 436.65 180 341.7200000000001 180 222.93C180 221.46 180.01 219.99 180.01 218.53C105.98 278.69 23.32 297.43 19.43 298.29C18.29 298.54 17.14 298.67 15.99 298.67C11.79 298.67 7.7 297.01 4.67 293.9700000000001A15.986 15.986 0 0 1 0.38 279.2C1.26 275.23 21.06 188.68 85.31 113.56C40.92 104.64 10.1 88.57 8.53 87.75A16.003 16.003 0 0 1 8.51 59.46C10.96 58.17 69.27 27.74 142 27.74C148.14 27.74 153.96 27.84 159.5 28.05C148.13 5.82 142.98 -10.26 142.69 -11.17C140.89 -16.85 142.4 -23.0599999999999 146.6 -27.28A16.019 16.019 0 0 1 162.7 -31.27C164.53 -30.7 200.42 -19.28 240 8.02V-56C240 -60.42 243.58 -64 248 -64H264C268.42 -64 272 -60.42 272 -56V8.01C311.58 -19.29 347.4700000000001 -30.7 349.3 -31.28A16.019 16.019 0 0 1 365.4000000000001 -27.29C369.6 -23.07 371.11 -16.86 369.3100000000001 -11.18C369.0200000000001 -10.27 363.8600000000001 5.81 352.5000000000001 28.04C358.0400000000001 27.83 363.8700000000001 27.73 370.0000000000001 27.73C442.7200000000001 27.73 501.0400000000001 58.16 503.4900000000001 59.4499999999999C508.7300000000001 62.2299999999999 512.0100000000001 67.67 512.0000000000001 73.5999999999999C511.9900000000001 79.5399999999999 508.7100000000001 84.9899999999999 503.4700000000001 87.7499999999999z" /> + <glyph glyph-name="capsules" + unicode="" + horiz-adv-x="576" d=" M555.3 147.9L424.2 335.2C401.9 367 366.4 384 330.4 384C307.8 384 284.9 377.3 264.9 363.3C245.2 349.5 231.2 330.5 223.4 309.5C220.5 368.8 172 416 112 416C50.1 416 0 365.9 0 304V80C0 18.1 50.1 -32 112 -32S224 18.1 224 80V229.1C227.3 220.5 231.3 212 236.8 204.1L368 16.8C390.2 -15 425.7 -32 461.8 -32C484.5 -32 507.3 -25.3 527.3 -11.3C579 24.9 591.5 96.2 555.3 147.9zM160 192H64V304C64 330.5 85.5 352 112 352S160 330.5 160 304V192zM354.8 147.1L289.2000000000001 240.8C281.5000000000001 251.8 278.5000000000001 265.2000000000001 280.9000000000001 278.4C283.2000000000001 291.6 290.6 303.2000000000001 301.6 310.9C310.1 316.9 320.1 320 330.4000000000001 320C346.9000000000001 320 362.3 312 371.7000000000001 298.5L437.3000000000001 204.8L354.8000000000001 147.1z" /> + <glyph glyph-name="car-alt" + unicode="" + horiz-adv-x="480" d=" M438.6600000000001 235.67L427.42 263.77L407.49 313.6C390.38 356.37 349.57 384 303.5 384H176.5C130.44 384 89.62 356.37 72.51 313.6L52.58 263.77L41.34 235.67C17.22 226.5 0 203.34 0 176V128C0 111.88 6.16 97.33 16 86.07V32C16 14.33 30.33 0 48 0H80C97.67 0 112 14.33 112 32V64H368V32C368 14.33 382.33 0 400 0H432C449.67 0 464 14.33 464 32V86.07C473.84 97.32 480 111.87 480 128V176C480 203.34 462.78 226.5 438.66 235.67zM131.93 289.83C139.22 308.05 156.87 320 176.5 320H303.5C323.13 320 340.78 308.05 348.07 289.83L368 240H112L131.93 289.83zM80 128.2C60.8 128.2 48 140.96 48 160.1S60.8 192 80 192S128 163.29 128 144.15S99.2 128.2 80 128.2zM400 128.2C380.8 128.2 352 125.01 352 144.15S380.8 192 400 192S432 179.24 432 160.1S419.2 128.2000000000001 400 128.2000000000001z" /> + <glyph glyph-name="car-battery" + unicode="" + horiz-adv-x="512" d=" M480 320H448V368C448 376.8400000000001 440.84 384 432 384H336C327.1600000000001 384 320 376.8400000000001 320 368V320H192V368C192 376.8400000000001 184.84 384 176 384H80C71.16 384 64 376.8400000000001 64 368V320H32C14.33 320 0 305.67 0 288V32C0 14.33 14.33 0 32 0H480C497.67 0 512 14.33 512 32V288C512 305.67 497.67 320 480 320zM192 184C192 179.58 188.42 176 184 176H72C67.58 176 64 179.58 64 184V200C64 204.42 67.58 208 72 208H184C188.42 208 192 204.42 192 200V184zM448 184C448 179.58 444.42 176 440 176H400V136C400 131.58 396.42 128 392 128H376C371.58 128 368 131.58 368 136V176H328C323.58 176 320 179.58 320 184V200C320 204.42 323.58 208 328 208H368V248C368 252.42 371.58 256 376 256H392C396.42 256 400 252.42 400 248V208H440C444.42 208 448 204.42 448 200V184z" /> + <glyph glyph-name="car-crash" + unicode="" + horiz-adv-x="640" d=" M143.25 227.19L130.83 180.82C127.82 169.57 127.2 157.93 128.42 146.43L93.22 117.45C86.65 112.04 76.91 117.88 78.6 126.22L94.04 202.9C95.1 208.16 91.38 213.18 86.04 213.69L8.18 221.24C-0.29 222.06 -3.05 233.07 4.04 237.78L69.19 281.08C73.65 284.05 74.57 290.23 71.17 294.37L21.46 354.78C16.05 361.35 21.89 371.08 30.24 369.4L106.92 353.9600000000001C112.18 352.9 117.2 356.62 117.72 361.9600000000001L125.27 439.82C126.09 448.3 137.1 451.05 141.82 443.96L185.12 378.82C188.09 374.36 194.27 373.44 198.41 376.8400000000001L258.81 426.55C265.38 431.96 275.11 426.12 273.43 417.7800000000001L262.1 361.62C259.3900000000001 358.57 256.67 355.53 254.1900000000001 352.2200000000001L222.04 309.25L211.33 294.93C178.6 286.17 152.15 260.4 143.25 227.19zM637.8199999999999 94.68L625.4 48.32C622.27 36.64 616.02 26.71 607.85 18.96A66.876 66.876 0 0 0 599.09 11.96L585.1 -40.27C583.96 -44.54 582 -48.3700000000001 579.45 -51.65C571.7800000000001 -61.49 558.71 -66.33 545.9100000000001 -62.9L515 -54.62C497.93 -50.05 487.8 -32.5 492.37 -15.43L500.65 15.48L253.37 81.74L245.09 50.83C240.52 33.76 222.97 23.63 205.9 28.2L174.99 36.48C162.19 39.91 153.29 50.64 151.57 62.99C151 67.11 151.22 71.41 152.36 75.67L166.35 127.9A66.62 66.62 0 0 0 162.26 138.35C159.06 149.14 158.61 160.87 161.74 172.55L174.16 218.92C179.47 238.72 193.52 253.75 211.05 261.13A64.336 64.336 0 0 0 229.54 265.85L247.67 290.08L279.82 333.05C283.2699999999999 337.66 287.01 341.95 291.0199999999999 345.89C299.0199999999999 353.78 308.05 360.33 317.76 365.4C322.62 367.94 327.6499999999999 370.11 332.81 371.89C343.14 375.47 354 377.52 365.05 377.93C376.1 378.34 387.36 377.11 398.48 374.13L521.16 341.26C532.28 338.28 542.64 333.72 552.01 327.83A111.10999999999999 111.10999999999999 0 0 0 586.7 293.33C595.5200000000001 279.45 601.34 263.49 603.38 246.34L609.74 193.05L613.33 163A64.49 64.49 0 0 0 636.07 133.0699999999999C640.46 121.19 641.36 107.8799999999999 637.82 94.68zM255.58 213.66C237.03 218.63 221.37 209.62 216.41 191.13C211.45 172.64 220.5200000000001 157.01 239.0600000000001 152.04C257.61 147.0699999999999 284.6 136.53 289.55 155.02C294.51 173.51 274.12 208.69 255.58 213.66zM546.19 185.49L539.83 238.78C539.25 243.65 537.94 248.31 536.01 252.64C530.21 265.63 518.81 275.65 504.59 279.46L381.91 312.33A48.008 48.008 0 0 1 331.05 294.72L298.9 251.75L470.9 205.67L546.1899999999999 185.49zM564.6800000000001 130.84C546.1300000000001 135.8100000000001 510.8800000000001 115.53 505.9300000000001 97.05C500.9800000000001 78.56 529.6200000000001 74.19 548.1700000000001 69.22C566.72 64.25 582.3800000000001 73.2600000000001 587.34 91.75C592.2900000000001 110.23 583.23 125.87 564.6800000000001 130.84z" /> + <glyph glyph-name="car-side" + unicode="" + horiz-adv-x="640" d=" M544 256H528L419.2200000000001 391.98A64.025 64.025 0 0 1 369.24 416H155.33C129.16 416 105.63 400.07 95.91 375.77L48 253.74C20.44 246.6 0 221.79 0 192V80C0 71.16 7.16 64 16 64H64C64 10.98 106.98 -32 160 -32S256 10.98 256 64H384C384 10.98 426.98 -32 480 -32S576 10.98 576 64H624C632.84 64 640 71.16 640 80V160C640 213.02 597.02 256 544 256zM160 16C133.53 16 112 37.53 112 64S133.53 112 160 112S208 90.47 208 64S186.47 16 160 16zM232 256H116.93L155.33 352H232V256zM280 256V352H369.24L446.04 256H280zM480 16C453.53 16 432 37.53 432 64S453.53 112 480 112S528 90.47 528 64S506.47 16 480 16z" /> + <glyph glyph-name="car" + unicode="" + horiz-adv-x="512" d=" M499.99 272H440.12L423.48 313.6C406.38 356.37 365.57 384 319.5 384H192.5C146.44 384 105.62 356.37 88.51 313.6L71.87 272H12.01C4.2 272 -1.53 264.66 0.37 257.0900000000001L6.37 233.09C7.7 227.75 12.5 224 18.01 224H38.08C24.65 212.27 16 195.22 16 176V128C16 111.88 22.16 97.33 32 86.07V32C32 14.33 46.33 0 64 0H96C113.67 0 128 14.33 128 32V64H384V32C384 14.33 398.33 0 416 0H448C465.67 0 480 14.33 480 32V86.07C489.84 97.32 496 111.87 496 128V176C496 195.22 487.35 212.27 473.93 224H494C499.51 224 504.31 227.75 505.64 233.09L511.64 257.0900000000001C513.53 264.66 507.8 272 499.99 272zM147.93 289.83C155.22 308.05 172.87 320 192.5 320H319.5C339.13 320 356.78 308.05 364.07 289.83L384 240H128L147.93 289.83zM96 128.2C76.8 128.2 64 140.96 64 160.1S76.8 192 96 192S144 163.29 144 144.15S115.2 128.2 96 128.2zM416 128.2C396.8 128.2 368 125.01 368 144.15S396.8 192 416 192S448 179.24 448 160.1S435.2 128.2000000000001 416 128.2000000000001z" /> + <glyph glyph-name="caret-down" + unicode="" + horiz-adv-x="320" d=" M31.3 256H288.6C306.4000000000001 256 315.3 234.5 302.7000000000001 221.9L174.1 93.2C166.3 85.4 153.6 85.4 145.8 93.2L17.2 221.9C4.6 234.5 13.5 256 31.3 256z" /> + <glyph glyph-name="caret-left" + unicode="" + horiz-adv-x="192" d=" M192 320.6620000000001V63.338C192 45.52 170.457 36.597 157.858 49.196L29.196 177.858C21.386 185.668 21.386 198.332 29.196 206.142L157.858 334.804C170.457 347.404 192 338.48 192 320.6620000000001z" /> + <glyph glyph-name="caret-right" + unicode="" + horiz-adv-x="192" d=" M0 63.338V320.6620000000001C0 338.48 21.543 347.403 34.142 334.804L162.804 206.142C170.614 198.332 170.614 185.668 162.804 177.858L34.142 49.196C21.543 36.596 0 45.52 0 63.338z" /> + <glyph glyph-name="caret-square-down" + unicode="" + horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM92.5 227.5L215.5 104.5C220.2 99.8 227.8 99.8 232.5 104.5L355.5 227.5C363.1 235.1 357.7 248 347 248H101C90.3 248 84.9 235.1 92.5 227.5z" /> + <glyph glyph-name="caret-square-left" + unicode="" + horiz-adv-x="448" d=" M400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32zM259.515 323.515L136.485 200.485C131.799 195.799 131.799 188.201 136.485 183.514L259.514 60.485C267.074 52.925 279.999 58.279 279.999 68.97V315.029C280 325.7200000000001 267.074 331.074 259.5150000000001 323.515z" /> + <glyph glyph-name="caret-square-right" + unicode="" + horiz-adv-x="448" d=" M48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416zM188.485 60.485L311.514 183.514C316.2 188.2 316.2 195.798 311.514 200.485L188.485 323.515C180.925 331.0750000000001 168 325.721 168 315.0300000000001V68.971C168 58.28 180.926 52.926 188.485 60.485z" /> + <glyph glyph-name="caret-square-up" + unicode="" + horiz-adv-x="448" d=" M0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16zM355.515 156.485L232.485 279.515C227.799 284.201 220.201 284.201 215.514 279.515L92.485 156.485C84.925 148.925 90.279 136 100.97 136H347.029C357.72 136 363.074 148.926 355.515 156.485z" /> + <glyph glyph-name="caret-up" + unicode="" + horiz-adv-x="320" d=" M288.662 96H31.338C13.52 96 4.597 117.543 17.196 130.142L145.858 258.804C153.668 266.6140000000001 166.332 266.6140000000001 174.142 258.804L302.804 130.142C315.404 117.543 306.48 96 288.662 96z" /> + <glyph glyph-name="cart-arrow-down" + unicode="" + horiz-adv-x="576" d=" M504.717 128H211.572L218.117 96H486.535C501.936 96 513.351 81.699 509.938 66.681L504.421 42.405C523.112 33.332 536 14.172 536 -8C536 -39.202 510.481 -64.444 479.176 -63.994C449.353 -63.565 424.826 -39.3630000000001 424.021 -9.547C423.581 6.74 430.106 21.502 440.824 32.001H231.176C241.553 21.835 248 7.674 248 -8C248 -39.813 221.472 -65.431 189.33 -63.938C160.79 -62.613 137.579 -39.553 136.079 -11.021C134.921 11.013 146.515 30.434 164.13 40.5650000000001L93.883 384H24C10.745 384 0 394.745 0 408V424C0 437.255 10.745 448 24 448H126.529C137.93 448 147.757 439.979 150.042 428.81L159.208 384H551.99C567.391 384 578.806 369.699 575.393 354.681L528.12 146.681C525.637 135.754 515.923 128 504.717 128zM403.029 256H360V316C360 322.627 354.627 328 348 328H324C317.373 328 312 322.627 312 316V256H268.971C258.2800000000001 256 252.926 243.074 260.486 235.515L327.515 168.486C332.201 163.8 339.799 163.8 344.486 168.486L411.515 235.515C419.074 243.074 413.72 256 403.029 256z" /> + <glyph glyph-name="cart-plus" + unicode="" + horiz-adv-x="576" d=" M504.717 128H211.572L218.117 96H486.535C501.936 96 513.351 81.699 509.938 66.681L504.421 42.405C523.112 33.332 536 14.172 536 -8C536 -39.202 510.481 -64.444 479.176 -63.994C449.353 -63.565 424.826 -39.3630000000001 424.021 -9.547C423.581 6.74 430.106 21.502 440.824 32.001H231.176C241.553 21.835 248 7.674 248 -8C248 -39.813 221.472 -65.431 189.33 -63.938C160.79 -62.613 137.579 -39.553 136.079 -11.021C134.921 11.013 146.515 30.434 164.13 40.5650000000001L93.883 384H24C10.745 384 0 394.745 0 408V424C0 437.255 10.745 448 24 448H126.529C137.93 448 147.757 439.979 150.042 428.81L159.208 384H551.99C567.391 384 578.806 369.699 575.393 354.681L528.12 146.681C525.637 135.754 515.923 128 504.717 128zM408 280H360V320C360 328.837 352.837 336 344 336H328C319.163 336 312 328.837 312 320V280H264C255.163 280 248 272.837 248 264V248C248 239.163 255.163 232 264 232H312V192C312 183.163 319.163 176 328 176H344C352.837 176 360 183.163 360 192V232H408C416.837 232 424 239.163 424 248V264C424 272.837 416.837 280 408 280z" /> + <glyph glyph-name="certificate" + unicode="" + horiz-adv-x="512" d=" M458.622 192.08L504.607 237.085C518.315 250.062 511.923 273.124 493.943 277.424L431.2930000000001 293.414L448.9540000000001 355.4290000000001C453.9450000000001 373.2670000000001 437.1250000000001 390.092 419.2930000000001 385.1L357.2990000000001 367.433L341.3150000000001 430.1040000000001C337.085 447.803 313.765 454.276 300.99 440.772L256 394.43L211.011 440.771C198.381 454.122 174.964 448.005 170.686 430.103L154.702 367.432L92.707 385.099C74.87 390.093 58.056 373.262 63.046 355.428L80.707 293.413L18.057 277.423C0.069 273.122 -6.31 250.056 7.392 237.085L53.377 192.08L7.392 147.076C-6.316 134.0990000000001 0.076 111.037 18.056 106.737L80.706 90.747L63.045 28.732C58.054 10.894 74.874 -5.931 92.706 -0.939L154.7 16.7280000000001L170.684 -45.9429999999999C175.123 -64.5179999999999 198.38 -69.9609999999999 211.009 -56.6109999999999L256 -10.61L300.989 -56.611C313.489 -70.0989999999999 336.976 -64.097 341.314 -45.943L357.298 16.728L419.2919999999999 -0.939C437.128 -5.933 453.9429999999999 10.898 448.9529999999999 28.732L431.2919999999999 90.747L493.9419999999999 106.737C511.9289999999999 111.0390000000001 518.3079999999999 134.1040000000001 504.6059999999999 147.076L458.6219999999999 192.08z" /> + <glyph glyph-name="chalkboard-teacher" + unicode="" + horiz-adv-x="640" d=" M208 96C205.61 96 203.22 95.65 200.94 94.91C187.98 90.7 174.35 88 160 88C145.65 88 132.02 90.7 119.05 94.91C116.77 95.65 114.39 96 112 96C49.94 96 -0.33 45.52 0 -16.62C0.14 -42.88 21.73 -64 48 -64H272C298.27 -64 319.86 -42.88 320 -16.62C320.33 45.52 270.06 96 208 96zM160 128C213.02 128 256 170.98 256 224S213.02 320 160 320S64 277.02 64 224S106.98 128 160 128zM592 448H208C181.53 448 160 425.75 160 398.41V352C183.42 352 205.1 345.2200000000001 224 334.2V384H576V96H512V160H384V96H307.76C326.86 79.31 340.88 57.27 347.45 32H592C618.47 32 640 54.25 640 81.59V398.41C640 425.75 618.47 448 592 448z" /> + <glyph glyph-name="chalkboard" + unicode="" + horiz-adv-x="640" d=" M96 384H544V32H608V408C608 430.06 590.06 448 568 448H72C49.94 448 32 430.06 32 408V32H96V384zM624 0H480V64H288V0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0z" /> + <glyph glyph-name="charging-station" + unicode="" + horiz-adv-x="576" d=" M336 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H336C344.84 -64 352 -56.84 352 -48V-16C352 -7.16 344.84 0 336 0zM544 320V368C544 376.8400000000001 536.84 384 528 384S512 376.8400000000001 512 368V320H480V368C480 376.8400000000001 472.84 384 464 384S448 376.8400000000001 448 368V320H432C423.1600000000001 320 416 312.8400000000001 416 304V272C416 236.24 439.62 206.31 472 196.07V77.58C472 63.63 462.5 50.66 448.74 48.39C431.2200000000001 45.5 416 59.01 416 76V104C416 152.6 376.6 192 328 192H320V384C320 419.35 291.35 448 256 448H96C60.65 448 32 419.35 32 384V32H320V144H328C350.09 144 368 126.09 368 104V79.39C368 39.72 396.92 4.23 436.41 0.38C481.71 -4.05 520 31.59 520 76V196.07C552.38 206.31 576 236.24 576 272V304C576 312.8400000000001 568.84 320 560 320H544zM260.09 272.24L166.39 133.24C164.19 129.91 160.18 128 156 128C148.33 128 142.53 134.28 144.33 140.92L167.35 224H108C100.75 224 95.15 229.59 96.11 235.89L112.11 342.89C112.9 348.1 117.98 352 124 352H192C199.88 352 205.62 345.46 203.6 338.79L192 288H249.7C258.94 288 264.71 279.2200000000001 260.09 272.24z" /> + <glyph glyph-name="chart-area" + unicode="" + horiz-adv-x="512" d=" M500 64C506.6 64 512 58.6 512 52V12C512 5.4 506.6 0 500 0H12C5.4 0 0 5.4 0 12V372C0 378.6 5.4 384 12 384H52C58.6 384 64 378.6 64 372V64H500zM372.7 288.5L288 232L202.7 345.7C197.6 352.5 187.2 352 182.8 344.7L96 200V96H480L390.1 283.8C386.9000000000001 290.3 378.7000000000001 292.5 372.7000000000001 288.5z" /> + <glyph glyph-name="chart-bar" + unicode="" + horiz-adv-x="512" d=" M332.8 128H371.2C377.6 128 384 134.4 384 140.8V275.2C384 281.6 377.6 288 371.2 288H332.8C326.4000000000001 288 320 281.6 320 275.2V140.8C320 134.4 326.4 128 332.8 128zM428.8 128H467.2C473.6 128 480 134.4 480 140.8V371.2C480 377.6 473.6 384 467.2 384H428.8C422.4000000000001 384 416 377.6 416 371.2V140.8C416 134.4 422.4 128 428.8 128zM140.8 128H179.2C185.6 128 192 134.4 192 140.8V211.2C192 217.6 185.6 224 179.2 224H140.8C134.4 224 128 217.6 128 211.2V140.8C128 134.4 134.4 128 140.8 128zM236.8 128H275.2C281.6 128 288 134.4 288 140.8V339.2C288 345.6 281.6 352 275.2 352H236.8C230.4 352 224 345.6 224 339.2V140.8C224 134.4 230.4 128 236.8 128zM496 64H64V368C64 376.8400000000001 56.84 384 48 384H16C7.16 384 0 376.8400000000001 0 368V32C0 14.33 14.33 0 32 0H496C504.84 0 512 7.16 512 16V48C512 56.84 504.84 64 496 64z" /> + <glyph glyph-name="chart-line" + unicode="" + horiz-adv-x="512" d=" M496 64H64V368C64 376.8400000000001 56.84 384 48 384H16C7.16 384 0 376.8400000000001 0 368V32C0 14.33 14.33 0 32 0H496C504.84 0 512 7.16 512 16V48C512 56.84 504.84 64 496 64zM464 352H345.94C324.56 352 313.85 326.15 328.9700000000001 311.03L361.37 278.63L288 205.25L214.63 278.62C202.13 291.12 181.87 291.12 169.38 278.62L100.69 209.93C94.44 203.68 94.44 193.55 100.69 187.3L123.31 164.68C129.56 158.43 139.69 158.43 145.94 164.68L192 210.75L265.37 137.38C277.87 124.88 298.13 124.88 310.62 137.38L406.62 233.38L439.02 200.98C454.14 185.86 479.99 196.57 479.99 217.95V336C480 344.8400000000001 472.84 352 464 352z" /> + <glyph glyph-name="chart-pie" + unicode="" + horiz-adv-x="544" d=" M527.79 160H290.5L448.53 1.97C454.57 -4.07 464.51 -4.5599999999999 470.72 1.29C509.42 37.75 536.04 86.9 543.8499999999999 142.15C545.1899999999999 151.61 537.3399999999999 160.0000000000001 527.79 160.0000000000001zM511.96 224.8C503.72 344.26 408.26 439.7200000000001 288.8 447.96C279.68 448.59 272 440.9 272 431.76V208H495.77C504.91 208 512.59 215.68 511.96 224.8zM224 160V397.29C224 406.8400000000001 215.61 414.69 206.16 413.35C86.99 396.51 -4.1 292.4 0.14 167.63C4.5 39.49 114.83 -65.59 243.03 -63.98C293.43 -63.35 340 -47.11 378.29 -19.95C386.19 -14.35 386.71 -2.72 379.86 4.1299999999999L224 160z" /> + <glyph glyph-name="check-circle" + unicode="" + horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM227.314 60.686L411.314 244.686C417.562 250.934 417.562 261.065 411.314 267.313L388.687 289.94C382.439 296.189 372.308 296.189 366.059 289.94L216 139.882L145.941 209.941C139.693 216.189 129.562 216.189 123.313 209.941L100.686 187.314C94.438 181.066 94.438 170.935 100.686 164.687L204.686 60.687C210.935 54.438 221.065 54.438 227.314 60.686z" /> + <glyph glyph-name="check-double" + unicode="" + horiz-adv-x="512" d=" M504.5 276.05L468.3 312.4600000000001C458.3 322.51 442.0900000000001 322.51 432.1 312.4600000000001L192 70.98L79.9 183.72C69.9 193.78 53.69 193.78 43.7 183.72L7.5 147.31C-2.5 137.26 -2.5 120.95 7.5 110.9L173.9 -56.46C183.9 -66.52 200.11 -66.52 210.1 -56.46L504.5 239.63C514.5 249.69 514.5 265.99 504.5 276.05zM166.57 165.29C173.41 158.2700000000001 184.75 158.2700000000001 191.78 165.11L403.85 375.38C410.87 382.2200000000001 410.87 393.56 404.0300000000001 400.59L362.08 442.71C355.24 449.73 343.9 449.73 336.87 442.89L179.71 286.81L111.48 355.58C104.64 362.6 93.3 362.6 86.28 355.76L44.15 313.99C37.13 307.15 37.13 295.81 43.97 288.79L166.57 165.29z" /> + <glyph glyph-name="check-square" + unicode="" + horiz-adv-x="448" d=" M400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32zM195.314 66.059L379.314 250.059C385.562 256.307 385.562 266.438 379.314 272.686L356.687 295.313C350.439 301.561 340.308 301.562 334.059 295.313L184 145.255L113.941 215.314C107.693 221.562 97.562 221.562 91.313 215.314L68.686 192.687C62.438 186.439 62.438 176.308 68.686 170.06L172.686 66.06C178.935 59.81 189.065 59.81 195.314 66.059z" /> + <glyph glyph-name="check" + unicode="" + horiz-adv-x="512" d=" M173.898 8.596L7.498 174.996C-2.499 184.993 -2.499 201.202 7.498 211.2L43.701 247.404C53.698 257.402 69.908 257.402 79.905 247.404L192 135.31L432.0950000000001 375.404C442.0920000000001 385.401 458.302 385.401 468.299 375.404L504.5020000000001 339.2C514.499 329.203 514.499 312.9940000000001 504.5020000000001 302.996L210.1020000000001 8.595C200.1040000000001 -1.402 183.8950000000001 -1.402 173.8980000000001 8.5959999999999z" /> + <glyph glyph-name="chess-bishop" + unicode="" + horiz-adv-x="320" d=" M123.158 370.1190000000001C107.369 375.4700000000001 96 390.403 96 408C96 430.091 113.909 448 136 448H183.796C205.887 448 223.796 430.091 223.796 408C223.796 390.459 212.501 375.5660000000001 196.791 370.171C220.784 353.514 245.368 323.332 265.4940000000001 288.121L144.929 167.557A6 6 0 0 1 144.929 159.072L159.071 144.93A6 6 0 0 1 167.556 144.93L280.9 258.274C298.658 219.977 310.271 178.831 310.271 144.001C310.271 90.215 287.374 68.213 251.825 57.968V0H68.174V57.97C32.631 68.216 9.739 90.219 9.739 144C9.739 222.029 68.02 331.766 123.158 370.1190000000001zM320 -52V-28C320 -21.373 314.627 -16 308 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H308C314.627 -64 320 -58.627 320 -52z" /> + <glyph glyph-name="chess-board" + unicode="" + horiz-adv-x="512" d=" M256 192V128H192V192H256zM256 448H192V384H256V448zM256 192H320V256H256V192zM384 448H320V384H384V448zM384 -64H448V0H384V-64zM512 0V64H448V0H512zM128 -64H192V0H128V-64zM128 448H64V384H128V448zM512 256V320H448V256H512zM512 128V192H448V128H512zM0 -64H64V0H0V-64zM0 384V320H64V384H0zM0 256V192H64V256H0zM0 128V64H64V128H0zM256 -64H320V0H256V-64zM192 64V0H256V64H192zM256 256V320H192V256H256zM64 64V0H128V64H64zM128 192H64V128H128V192zM384 64H448V128H384V64zM512 448H448V384H512V448zM384 192H448V256H384V192zM384 384V320H448V384H384zM320 64V0H384V64H320zM128 128V64H192V128H128zM256 128V64H320V128H256zM192 256H128V192H192V256zM128 320H64V256H128V320zM320 128H384V192H320V128zM192 320V384H128V320H192zM320 320V384H256V320H320zM320 256H384V320H320V256z" /> + <glyph glyph-name="chess-king" + unicode="" + horiz-adv-x="448" d=" M416 -28V-52C416 -58.627 410.627 -64 404 -64H44C37.373 -64 32 -58.627 32 -52V-28C32 -21.373 37.373 -16 44 -16H404C410.627 -16 416 -21.373 416 -28zM407.967 296H248V344H298A6 6 0 0 1 304 350V386A6 6 0 0 1 298 392H248V442A6 6 0 0 1 242 448H206A6 6 0 0 1 200 442V392H150A6 6 0 0 1 144 386V350A6 6 0 0 1 150 344H200V296H40.033C12.459 296 -6.846 268.756 2.295 242.741L87.582 0H360.418L445.7050000000001 242.741C454.846 268.756 435.541 296 407.967 296z" /> + <glyph glyph-name="chess-knight" + unicode="" + horiz-adv-x="384" d=" M352 224V0H32V46.557C32 76.859 49.12 104.56 76.223 118.111L133.466 146.733A48 48 0 0 1 160 189.666V240L137.873 228.937A23.996 23.996 0 0 1 125.323 213.292L113.488 165.954A12 12 0 0 0 106.303 157.723L76.702 145.8830000000001A11.998 11.998 0 0 0 67.372 146.059L7.126 172.833A12 12 0 0 0 0 183.799V342.059C0 348.424 2.529 354.529 7.03 359.03L16 368L1.789 396.4220000000001A16.937 16.937 0 0 0 0 404C0 410.627 5.373 416 12 416H160C266.039 416 352 330.039 352 224zM372 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H372C378.627 -64 384 -58.627 384 -52V-28C384 -21.373 378.627 -16 372 -16zM52 320C40.954 320 32 311.046 32 300S40.954 280 52 280S72 288.954 72 300S63.046 320 52 320z" /> + <glyph glyph-name="chess-pawn" + unicode="" + horiz-adv-x="320" d=" M264 0H56S116 42.743 116 176H84C77.373 176 72 181.373 72 188V212C72 218.627 77.373 224 84 224H124.209C95.721 237.44 76 266.4120000000001 76 300C76 346.392 113.608 384 160 384S244 346.392 244 300C244 266.4120000000001 224.279 237.44 195.791 224H236C242.627 224 248 218.627 248 212V188C248 181.373 242.627 176 236 176H204C204 42.743 264 0 264 0zM292 -16H28C21.373 -16 16 -21.373 16 -28V-52C16 -58.627 21.373 -64 28 -64H292C298.627 -64 304 -58.627 304 -52V-28C304 -21.373 298.627 -16 292 -16z" /> + <glyph glyph-name="chess-queen" + unicode="" + horiz-adv-x="512" d=" M436 -64H76C69.373 -64 64 -58.627 64 -52V-28C64 -21.373 69.373 -16 76 -16H436C442.627 -16 448 -21.373 448 -28V-52C448 -58.627 442.627 -64 436 -64zM255.579 448C224.651 448 199.579 422.928 199.579 392S224.651 336 255.579 336S311.579 361.072 311.579 392S286.507 448 255.579 448zM460.147 293.366C454.3790000000001 296.411 447.2310000000001 294.298 444.0650000000001 288.596C435.4490000000001 273.0800000000001 421.3180000000001 250.795 400.0000000000001 250.795C371.2860000000001 250.795 369.3750000000001 270.5990000000001 368.3140000000001 308.337C368.1310000000001 314.829 362.8130000000001 320.0010000000001 356.3190000000001 320.0010000000001H315.3130000000001C310.1380000000001 320.0010000000001 305.5590000000001 316.673 303.9250000000002 311.7630000000001C295.0350000000002 285.0540000000001 277.8520000000002 270.7710000000001 256.0000000000001 270.7710000000001S216.9660000000001 285.0540000000001 208.0750000000001 311.7630000000001C206.4410000000001 316.673 201.8620000000001 320.0010000000001 196.6870000000001 320.0010000000001H155.6820000000001C149.1870000000001 320.0010000000001 143.8690000000001 314.827 143.6870000000001 308.3340000000001C142.6350000000001 270.692 140.7530000000001 250.795 111.9990000000001 250.795C91.3080000000001 250.795 78.1820000000001 271.019 67.5740000000001 288.8200000000001C64.3080000000001 294.3 57.3160000000001 296.2510000000001 51.6750000000001 293.273L12.4960000000001 272.5940000000001A12 12 0 0 1 6.9860000000001 257.449L112 0H400L505.014 257.448A12 12 0 0 1 499.504 272.593L460.147 293.366z" /> + <glyph glyph-name="chess-rook" + unicode="" + horiz-adv-x="384" d=" M81.241 232.973C80.957 189.08 77.411 99.924 48 0H335.9820000000001C306.5820000000001 99.604 303.0460000000001 188.912 302.761 232.975L348.1790000000001 275.287A11.998 11.998 0 0 1 351.999 284.067V404C351.999 410.627 346.6260000000001 416 339.999 416H299.999C293.372 416 287.999 410.627 287.999 404V360H239.999V404C239.999 410.627 234.6260000000001 416 227.999 416H155.999C149.372 416 143.999 410.627 143.999 404V360H96V404C96 410.627 90.627 416 84 416H44C37.373 416 32 410.627 32 404V284.068C32 280.738 33.384 277.558 35.82 275.288L81.241 232.973zM160 192C160 209.673 174.327 224 192 224C209.673 224 224 209.673 224 192V127.996H160V192zM384 -28V-52C384 -58.627 378.627 -64 372 -64H12C5.373 -64 0 -58.627 0 -52V-28C0 -21.373 5.373 -16 12 -16H372C378.627 -16 384 -21.373 384 -28z" /> + <glyph glyph-name="chess" + unicode="" + horiz-adv-x="512" d=" M199.821 230.367A6 6 0 0 0 205.821 224.367L205.82 203.601A6 6 0 0 0 199.82 197.601H174.015C174.015 165.886 171.862 101.4 191.413 44.372H64.597C84.54 102.548 82.02 168.755 82.02 197.601H56.183A6 6 0 0 0 50.183 203.601L50.185 224.367A6 6 0 0 0 56.185 230.367H199.821zM41.554 332.9120000000001L76.134 237.841H179.868L214.44 332.913C217.286 340.7390000000001 211.49 349.014 203.162 349.014H152V379.2340000000001H173.57A6 6 0 0 1 179.57 385.2340000000001V407.617A6 6 0 0 1 173.57 413.617H145.203V442A6 6 0 0 1 139.203 448H116.82A6 6 0 0 1 110.82 442V413.617H82.421A6 6 0 0 1 76.421 407.617V385.2340000000001A6 6 0 0 1 82.421 379.2340000000001H104V349.015H52.831C44.503 349.014 38.707 340.7390000000001 41.554 332.9120000000001zM222.678 2.83V30.897A6 6 0 0 1 216.678 36.897H39.322A6 6 0 0 1 33.322 30.897V2.83L11.174 -11.334A6 6 0 0 1 8.407 -16.389V-58A6 6 0 0 1 14.407 -64H241.594A6 6 0 0 1 247.594 -58V-16.388A6 6 0 0 1 244.8270000000001 -11.333L222.678 2.83zM313.256 147.055L338.136 130.0919999999999C338.226 111.9679999999999 337.969 66.1879999999999 326.231 15.5699999999999H473.757C462.044 66.045 461.788 111.894 461.875 130.107L486.734 147.056A3.856 3.856 0 0 1 488.418 150.243V220.144A3.8569999999999998 3.8569999999999998 0 0 1 484.561 224.001H456.9059999999999A3.8569999999999998 3.8569999999999998 0 0 1 453.0489999999999 220.144V188.63H430.3119999999999V220.144A3.8569999999999998 3.8569999999999998 0 0 1 426.4539999999999 224.001H373.5359999999999A3.8569999999999998 3.8569999999999998 0 0 1 369.6789999999999 220.144V188.63H346.9419999999999V220.144A3.8569999999999998 3.8569999999999998 0 0 1 343.0849999999998 224.001H315.43A3.8569999999999998 3.8569999999999998 0 0 1 311.573 220.144V150.243A3.8549999999999995 3.8549999999999995 0 0 1 313.256 147.055zM384.841 95.149C384.841 103.521 391.628 110.307 400 110.307S415.158 103.52 415.158 95.149V64.831H384.841V95.149zM504.62 -22.059L490.956 -11.42V4.132A3.8569999999999998 3.8569999999999998 0 0 1 487.099 7.989H312.915A3.8569999999999998 3.8569999999999998 0 0 1 309.058 4.132V-11.42L295.381 -22.059A3.8569999999999998 3.8569999999999998 0 0 1 293.893 -25.103V-60.142A3.8569999999999998 3.8569999999999998 0 0 1 297.75 -63.999H502.25A3.8569999999999998 3.8569999999999998 0 0 1 506.107 -60.142V-25.102A3.859 3.859 0 0 1 504.62 -22.059z" /> + <glyph glyph-name="chevron-circle-down" + unicode="" + horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM273 78.1L408.5 213.6C417.9 223 417.9 238.2 408.5 247.5000000000001L391.5 264.5C382.1 273.9000000000001 366.9 273.9000000000001 357.6 264.5L256 162.9L154.4 264.5C145 273.9 129.8 273.9 120.5 264.5L103.5 247.5C94.1 238.1 94.1 222.9 103.5 213.6L239 78.1C248.4 68.7000000000001 263.6 68.7000000000001 273 78.1z" /> + <glyph glyph-name="chevron-circle-left" + unicode="" + horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM142.1 175L277.6 39.5C287 30.1 302.2000000000001 30.1 311.5 39.5L328.5 56.5C337.9 65.9 337.9 81.1 328.5 90.4L226.9 192L328.5 293.6C337.9 303 337.9 318.2 328.5 327.5L311.5 344.5C302.1 353.9 286.9 353.9 277.6 344.5L142.1 209C132.7 199.6 132.7 184.4 142.1 175z" /> + <glyph glyph-name="chevron-circle-right" + unicode="" + horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM369.9 209L234.4 344.5C225 353.9 209.8 353.9 200.5 344.5L183.5 327.5C174.1 318.1 174.1 302.9 183.5 293.6L285.1 192L183.5 90.4C174.1 81 174.1 65.8 183.5 56.5L200.5 39.5C209.9 30.1 225.1 30.1 234.4 39.5L369.9 175C379.3 184.4 379.3 199.6 369.9 209z" /> + <glyph glyph-name="chevron-circle-up" + unicode="" + horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM239 305.9L103.5 170.4C94.1 161 94.1 145.8 103.5 136.5L120.5 119.5C129.9 110.1 145.1 110.1 154.4 119.5L256 221.1L357.6 119.5C367 110.1 382.2000000000001 110.1 391.5 119.5L408.5 136.5C417.9 145.9 417.9 161.1 408.5 170.4L273 305.9C263.6 315.3 248.4 315.3 239 305.9z" /> + <glyph glyph-name="chevron-down" + unicode="" + horiz-adv-x="448" d=" M207.029 66.524L12.686 260.868C3.313 270.241 3.313 285.437 12.686 294.809L35.353 317.476C44.71 326.833 59.875 326.851 69.254 317.516L224 163.495L378.745 317.516C388.124 326.851 403.289 326.833 412.646 317.476L435.313 294.809C444.686 285.4360000000001 444.686 270.24 435.313 260.868L240.971 66.524C231.598 57.152 216.402 57.152 207.029 66.524z" /> + <glyph glyph-name="chevron-left" + unicode="" + horiz-adv-x="320" d=" M34.52 208.97L228.87 403.31C238.24 412.68 253.44 412.68 262.81 403.31L285.48 380.64C294.8400000000001 371.28 294.85 356.12 285.5200000000001 346.74L131.49 192L285.51 37.25C294.85 27.87 294.83 12.71 285.47 3.35L262.8 -19.32C253.43 -28.69 238.23 -28.69 228.86 -19.32L34.52 175.03C25.15 184.4 25.15 199.6 34.52 208.97z" /> + <glyph glyph-name="chevron-right" + unicode="" + horiz-adv-x="320" d=" M285.476 175.029L91.132 -19.314C81.759 -28.687 66.563 -28.687 57.191 -19.314L34.524 3.353C25.167 12.7099999999999 25.149 27.8749999999999 34.484 37.254L188.505 192L34.484 346.745C25.149 356.124 25.167 371.289 34.524 380.646L57.191 403.313C66.564 412.6860000000001 81.76 412.6860000000001 91.132 403.313L285.475 208.97C294.848 199.598 294.848 184.402 285.476 175.029z" /> + <glyph glyph-name="chevron-up" + unicode="" + horiz-adv-x="448" d=" M240.971 317.476L435.314 123.1330000000001C444.687 113.7600000000001 444.687 98.564 435.314 89.192L412.647 66.525C403.29 57.168 388.125 57.15 378.7459999999999 66.485L224 220.505L69.255 66.484C59.876 57.149 44.711 57.167 35.354 66.524L12.687 89.191C3.314 98.564 3.314 113.7600000000001 12.687 123.1320000000001L207.03 317.475C216.402 326.848 231.598 326.848 240.971 317.476z" /> + <glyph glyph-name="child" + unicode="" + horiz-adv-x="384" d=" M120 376C120 415.765 152.235 448 192 448S264 415.765 264 376C264 336.236 231.765 304 192 304S120 336.236 120 376zM374.627 374.627C362.1310000000001 387.124 341.8690000000001 387.124 329.373 374.627L242.745 288H141.254L54.627 374.627C42.131 387.124 21.869 387.124 9.373 374.627C-3.124 362.13 -3.124 341.8690000000001 9.373 329.372L104 234.746V-32C104 -49.673 118.327 -64 136 -64H152C169.673 -64 184 -49.673 184 -32V80H200V-32C200 -49.673 214.327 -64 232 -64H248C265.673 -64 280 -49.673 280 -32V234.746L374.627 329.373C387.124 341.87 387.124 362.13 374.627 374.627z" /> + <glyph glyph-name="church" + unicode="" + horiz-adv-x="640" d=" M464.46 201.32L352 268.8V320H400C408.84 320 416 327.16 416 336V368C416 376.8400000000001 408.84 384 400 384H352V432C352 440.84 344.84 448 336 448H304C295.1600000000001 448 288 440.84 288 432V384H240C231.16 384 224 376.8400000000001 224 368V336C224 327.16 231.16 320 240 320H288V268.8L175.54 201.32A31.997 31.997 0 0 1 160 173.88V-64H256V32C256 67.35 284.65 96 320 96S384 67.35 384 32V-64H480V173.88C480 185.12 474.1 195.54 464.46 201.32zM0 52.04V-48C0 -56.84 7.16 -64 16 -64H128V128L19.39 81.46A32.024 32.024 0 0 1 0 52.04zM620.61 81.46L512 128V-64H624C632.84 -64 640 -56.84 640 -48V52.04C640 64.84 632.37 76.41 620.61 81.46z" /> + <glyph glyph-name="circle-notch" + unicode="" + horiz-adv-x="512" d=" M288 408.944V392.2850000000001C288 381.481 295.281 372.126 305.686 369.219C383.204 347.5660000000001 440 276.482 440 192C440 90.311 357.705 8 256 8C154.311 8 72 90.295 72 192C72 276.4700000000001 128.786 347.564 206.312 369.219C216.719 372.126 224 381.483 224 392.288V408.936C224 424.645 209.166 436.089 193.954 432.17C86.603 404.5180000000001 7.394 306.794 8.003 190.668C8.723 53.616 119.48 -56.288 256.534 -55.999C393.255 -55.711 504 55.212 504 192C504 307.633 424.86 404.779 317.789 432.236C302.678 436.111 288 424.544 288 408.944z" /> + <glyph glyph-name="circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440z" /> + <glyph glyph-name="city" + unicode="" + horiz-adv-x="640" d=" M616 256H480V424C480 437.26 469.26 448 456 448H312C298.74 448 288 437.26 288 424V352H224V432C224 440.84 216.84 448 208 448H192C183.16 448 176 440.84 176 432V352H112V432C112 440.84 104.84 448 96 448H80C71.16 448 64 440.84 64 432V352H24C10.74 352 0 341.26 0 328V-32C0 -49.67 14.33 -64 32 -64H608C625.67 -64 640 -49.67 640 -32V232C640 245.26 629.25 256 616 256zM128 44C128 37.37 122.63 32 116 32H76C69.37 32 64 37.37 64 44V84C64 90.63 69.37 96 76 96H116C122.63 96 128 90.63 128 84V44zM128 140C128 133.37 122.63 128 116 128H76C69.37 128 64 133.37 64 140V180C64 186.63 69.37 192 76 192H116C122.63 192 128 186.63 128 180V140zM128 236C128 229.37 122.63 224 116 224H76C69.37 224 64 229.37 64 236V276C64 282.63 69.37 288 76 288H116C122.63 288 128 282.63 128 276V236zM256 44C256 37.37 250.63 32 244 32H204C197.37 32 192 37.37 192 44V84C192 90.63 197.37 96 204 96H244C250.63 96 256 90.63 256 84V44zM256 140C256 133.37 250.63 128 244 128H204C197.37 128 192 133.37 192 140V180C192 186.63 197.37 192 204 192H244C250.63 192 256 186.63 256 180V140zM256 236C256 229.37 250.63 224 244 224H204C197.37 224 192 229.37 192 236V276C192 282.63 197.37 288 204 288H244C250.63 288 256 282.63 256 276V236zM416 140C416 133.37 410.63 128 404 128H364C357.37 128 352 133.37 352 140V180C352 186.63 357.37 192 364 192H404C410.63 192 416 186.63 416 180V140zM416 236C416 229.37 410.63 224 404 224H364C357.37 224 352 229.37 352 236V276C352 282.63 357.37 288 364 288H404C410.63 288 416 282.63 416 276V236zM416 332C416 325.37 410.63 320 404 320H364C357.37 320 352 325.37 352 332V372C352 378.63 357.37 384 364 384H404C410.63 384 416 378.63 416 372V332zM576 44C576 37.37 570.63 32 564 32H524C517.37 32 512 37.37 512 44V84C512 90.63 517.37 96 524 96H564C570.63 96 576 90.63 576 84V44zM576 140C576 133.37 570.63 128 564 128H524C517.37 128 512 133.37 512 140V180C512 186.63 517.37 192 524 192H564C570.63 192 576 186.63 576 180V140z" /> + <glyph glyph-name="clipboard-check" + unicode="" + horiz-adv-x="384" d=" M336 384H256C256 419.3 227.3 448 192 448S128 419.3 128 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V336C384 362.5 362.5 384 336 384zM192 408C205.3 408 216 397.3 216 384S205.3 360 192 360S168 370.7 168 384S178.7 408 192 408zM313.2 176.2L170.2 34.4C165.5 29.7 157.9 29.8 153.2 34.5L70.6 117.8C65.9 122.5 66 130.1 70.7 134.8L99.1 163C103.8 167.7 111.4 167.6 116.1 162.9L162.1 116.5L268.1 221.7C272.8 226.4 280.4000000000001 226.3 285.1 221.6L313.3 193.2C318 188.4 317.9000000000001 180.9 313.2 176.2z" /> + <glyph glyph-name="clipboard-list" + unicode="" + horiz-adv-x="384" d=" M336 384H256C256 419.3 227.3 448 192 448S128 419.3 128 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V336C384 362.5 362.5 384 336 384zM96 24C82.7 24 72 34.7 72 48S82.7 72 96 72S120 61.3 120 48S109.3 24 96 24zM96 120C82.7 120 72 130.7 72 144S82.7 168 96 168S120 157.3 120 144S109.3 120 96 120zM96 216C82.7 216 72 226.7 72 240S82.7 264 96 264S120 253.3 120 240S109.3 216 96 216zM192 408C205.3 408 216 397.3 216 384S205.3 360 192 360S168 370.7 168 384S178.7 408 192 408zM320 40C320 35.6 316.4 32 312 32H168C163.6 32 160 35.6 160 40V56C160 60.4 163.6 64 168 64H312C316.4 64 320 60.4 320 56V40zM320 136C320 131.6 316.4 128 312 128H168C163.6 128 160 131.6 160 136V152C160 156.4 163.6 160 168 160H312C316.4 160 320 156.4 320 152V136zM320 232C320 227.6 316.4 224 312 224H168C163.6 224 160 227.6 160 232V248C160 252.4 163.6 256 168 256H312C316.4 256 320 252.4 320 248V232z" /> + <glyph glyph-name="clipboard" + unicode="" + horiz-adv-x="384" d=" M384 336V-16C384 -42.51 362.51 -64 336 -64H48C21.49 -64 0 -42.51 0 -16V336C0 362.51 21.49 384 48 384H128C128 419.29 156.71 448 192 448S256 419.29 256 384H336C362.51 384 384 362.51 384 336zM192 408C178.745 408 168 397.255 168 384S178.745 360 192 360S216 370.745 216 384S205.255 408 192 408M288 294V314A6 6 0 0 1 282 320H102A6 6 0 0 1 96 314V294A6 6 0 0 1 102 288H282A6 6 0 0 1 288 294z" /> + <glyph glyph-name="clock" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM313.1 89.9L224.9 154C221.8 156.3 220 159.9 220 163.7V332C220 338.6 225.4 344 232 344H280C286.6 344 292 338.6 292 332V194.3L355.5 148.1C360.9 144.2000000000001 362 136.7000000000001 358.1 131.3L329.9000000000001 92.5C326.0000000000001 87.2 318.5000000000001 86 313.1 89.9z" /> + <glyph glyph-name="clone" + unicode="" + horiz-adv-x="512" d=" M464 448C490.51 448 512 426.51 512 400V112C512 85.49 490.51 64 464 64H176C149.49 64 128 85.49 128 112V400C128 426.51 149.49 448 176 448H464M176 32C131.888 32 96 67.888 96 112V320H48C21.49 320 0 298.51 0 272V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V32H176z" /> + <glyph glyph-name="closed-captioning" + unicode="" + horiz-adv-x="512" d=" M464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM218.1 160.3C220.9 162.8 225.2 162.4 227.3 159.4L246.8 131.7000000000001C248.5 129.3000000000001 248.3 126.1 246.3 124.0000000000001C192.7 67.2000000000001 73.5 91.9 73.5 191.9000000000001C73.5 289.2000000000001 195.2 311.4000000000001 246 262.0000000000001C248.1 260.0000000000001 248.5 258.8000000000001 247 256.3000000000001L229.5 225.8000000000001C227.6 222.7000000000001 223.3 221.8000000000001 220.4 224.1000000000001C179.6 256.1000000000002 125.8 239.0000000000001 125.8 192.9000000000001C125.9 144.9000000000001 176.9 122.4000000000001 218.1 160.3000000000001zM408.5 160.3C411.3 162.8 415.6 162.4 417.7 159.4L437.2 131.7000000000001C438.9 129.3000000000001 438.7 126.1 436.7 124.0000000000001C383.2 67.1000000000001 264 91.9 264 191.9000000000001C264 289.2000000000001 385.7 311.4000000000001 436.5 262.0000000000001C438.6 260.0000000000001 439 258.8000000000001 437.5 256.3000000000001L420 225.8C418.1 222.7 413.8 221.8 410.9 224.1C370.1 256.1 316.3 239.0000000000001 316.3 192.9C316.3 144.9 367.3 122.4 408.5 160.3z" /> + <glyph glyph-name="cloud-download-alt" + unicode="" + horiz-adv-x="640" d=" M537.6 221.4C541.7 232.1 544 243.8 544 256C544 309 501 352 448 352C428.3 352 409.9 346 394.7 335.8C367 383.8 315.3 416 256 416C167.6 416 96 344.4 96 256C96 253.3 96.1 250.6 96.2 247.9C40.2 228.2 0 174.8 0 112C0 32.5 64.5 -32 144 -32H512C582.7 -32 640 25.3 640 96C640 157.9 596 209.6 537.6 221.4zM404.7000000000001 132.7L299.3 27.3C293.1 21.1 282.9000000000001 21.1 276.7 27.3L171.3 132.7C161.2 142.8 168.4 160 182.6 160H248V272C248 280.8 255.2 288 264 288H312C320.8 288 328 280.8 328 272V160H393.4C407.6 160 414.8 142.8 404.7 132.7z" /> + <glyph glyph-name="cloud-upload-alt" + unicode="" + horiz-adv-x="640" d=" M537.6 221.4C541.7 232.1 544 243.8 544 256C544 309 501 352 448 352C428.3 352 409.9 346 394.7 335.8C367 383.8 315.3 416 256 416C167.6 416 96 344.4 96 256C96 253.3 96.1 250.6 96.2 247.9C40.2 228.2 0 174.8 0 112C0 32.5 64.5 -32 144 -32H512C582.7 -32 640 25.3 640 96C640 157.9 596 209.6 537.6 221.4zM393.4 160H328V48C328 39.2 320.8 32 312 32H264C255.2 32 248 39.2 248 48V160H182.6C168.3 160 161.2 177.2 171.3 187.3L276.7 292.7000000000001C282.9 298.9 293.1 298.9 299.3 292.7000000000001L404.7000000000001 187.3C414.8000000000001 177.2 407.6 160 393.4000000000001 160z" /> + <glyph glyph-name="cloud" + unicode="" + horiz-adv-x="640" d=" M537.6 221.4C541.7 232.1 544 243.8 544 256C544 309 501 352 448 352C428.3 352 409.9 346 394.7 335.8C367 383.8 315.3 416 256 416C167.6 416 96 344.4 96 256C96 253.3 96.1 250.6 96.2 247.9C40.2 228.2 0 174.8 0 112C0 32.5 64.5 -32 144 -32H512C582.7 -32 640 25.3 640 96C640 157.9 596 209.6 537.6 221.4z" /> + <glyph glyph-name="cocktail" + unicode="" + horiz-adv-x="576" d=" M296 -16H240V109.22L408.74 277.9500000000001C424.26 293.4700000000001 413.27 320 391.32 320H24.68C2.73 320 -8.26 293.4700000000001 7.26 277.9500000000001L176 109.22V-16H120C97.91 -16 80 -33.91 80 -56C80 -60.42 83.58 -64 88 -64H328C332.42 -64 336 -60.42 336 -56C336 -33.91 318.09 -16 296 -16zM432 448C369.39 448 316.65 407.8 296.82 352H349.36C366.01 380.55 396.63 400 432 400C484.93 400 528 356.94 528 304S484.93 208 432 208C417.96 208 404.71 211.2 392.68 216.64L357.42 181.38C379.23 168.08 404.59 160 432 160C511.53 160 576 224.47 576 304S511.53 448 432 448z" /> + <glyph glyph-name="code-branch" + unicode="" + horiz-adv-x="384" d=" M384 304C384 348.2 348.2 384 304 384S224 348.2 224 304C224 267.6 248.3 236.9 281.5 227.2C280.9 211.1 277.3 198.7 270.5 190.3C255.1 171.1 221.2 167.9 185.3 164.6C157.1 162 127.9 159.2000000000001 104 147.7000000000001V291.7000000000001C136.5 301.9000000000001 160 332.2000000000001 160 368.0000000000001C160 412.2000000000001 124.2 448.0000000000001 80 448.0000000000001S0 412.2 0 368C0 332.2 23.5 301.9 56 291.7V92.4C23.5 82.1 0 51.8 0 16C0 -28.2 35.8 -64 80 -64S160 -28.2 160 16C160 50 138.8 79.1 108.8 90.6C111.9 95.8 116.6 100.4 123.7 104C139.9 112.2 164.1 114.4 189.8 116.8C232 120.7 279.8 125.2 308 160.2C322 177.6 329.1 200 329.6 228.1C361.2000000000001 238.9 384 268.8 384 304zM80 384C88.8 384 96 376.8 96 368S88.8 352 80 352S64 359.2 64 368S71.2 384 80 384zM80 0C71.2 0 64 7.2 64 16S71.2 32 80 32S96 24.8 96 16S88.8 0 80 0zM304 320C312.8 320 320 312.8 320 304S312.8 288 304 288S288 295.2 288 304S295.2 320 304 320z" /> + <glyph glyph-name="code" + unicode="" + horiz-adv-x="640" d=" M278.9 -63.5L217.9 -45.8C211.5 -44 207.9 -37.3 209.7 -30.9L346.2 439.3C348 445.7 354.7 449.3 361.1 447.5L422.1 429.8C428.5 428 432.1 421.3 430.3 414.9L293.8 -55.3C291.9000000000001 -61.7 285.3 -65.4 278.9000000000001 -63.5zM164.9 48.7L208.4 95.1C213 99.9999999999999 212.7 107.8 207.6 112.3L117 192L207.6 271.7C212.7 276.2 213.1 284 208.4 288.9L164.9 335.3C160.4 340.1 152.8 340.4 147.9 335.8L3.8 200.8C-1.3 196.1 -1.3 188 3.8 183.3L147.9 48.2C152.8 43.6 160.4 43.8000000000001 164.9 48.7zM492.1 48.1L636.1999999999999 183.1999999999999C641.3 187.8999999999999 641.3 196 636.1999999999999 200.6999999999999L492.1 335.9C487.3 340.4 479.7 340.2 475.1 335.4L431.6 289C427 284.1 427.3 276.3 432.4000000000001 271.8L523 192L432.4 112.3C427.3 107.8 426.9 100 431.6 95.1L475.1 48.7C479.6 43.8000000000001 487.2 43.6 492.1 48.1z" /> + <glyph glyph-name="coffee" + unicode="" + horiz-adv-x="640" d=" M192 64H384C437 64 480 107 480 160H512C582.6 160 640 217.4 640 288S582.6 416 512 416H120C106.7 416 96 405.3 96 392V160C96 107 139 64 192 64zM512 352C547.3 352 576 323.3 576 288S547.3 224 512 224H480V352H512zM559.7 -32H48.3C0.7 -32 -12.7 32 12.3 32H595.5999999999999C620.5999999999999 32 607.3999999999999 -32 559.6999999999999 -32z" /> + <glyph glyph-name="cog" + unicode="" + horiz-adv-x="512" d=" M444.788 156.9L487.404 132.301C492.271 129.492 494.53 123.683 492.863 118.316C481.793 82.674 462.893 50.474 438.174 23.73A12.015999999999998 12.015999999999998 0 0 0 423.342 21.4759999999999L380.758 46.0709999999999A191.577 191.577 0 0 0 319.999 10.9409999999999V-38.2410000000001A12.01 12.01 0 0 0 310.622 -49.9590000000001C275.666 -57.8090000000001 238.123 -58.2150000000001 201.403 -49.9660000000001C195.913 -48.7330000000001 192 -43.8700000000001 192 -38.2430000000001V10.9409999999999A191.555 191.555 0 0 0 131.241 46.0709999999999L88.657 21.4759999999999A12.015999999999998 12.015999999999998 0 0 0 73.825 23.7299999999999C49.107 50.4739999999999 30.206 82.6739999999999 19.136 118.3159999999999C17.469 123.6819999999999 19.728 129.4909999999999 24.595 132.3009999999999L67.212 156.9A193.48000000000002 193.48000000000002 0 0 0 67.212 227.099L24.596 251.698C19.729 254.507 17.47 260.316 19.137 265.683C30.207 301.325 49.107 333.525 73.826 360.269A12.015999999999998 12.015999999999998 0 0 0 88.658 362.523L131.242 337.928A191.577 191.577 0 0 0 192.001 373.058V422.241A12.01 12.01 0 0 0 201.3780000000001 433.959C236.3340000000001 441.8090000000001 273.8770000000001 442.215 310.5970000000001 433.966C316.0870000000001 432.733 320.0000000000001 427.87 320.0000000000001 422.243V373.059A191.555 191.555 0 0 0 380.7590000000001 337.929L423.3430000000001 362.524A12.015999999999998 12.015999999999998 0 0 0 438.1750000000001 360.27C462.8930000000001 333.526 481.7940000000001 301.326 492.8640000000001 265.684C494.5310000000001 260.318 492.2720000000001 254.509 487.4050000000001 251.699L444.788 227.1A193.485 193.485 0 0 0 444.788 156.9zM336 192C336 236.112 300.112 272 256 272S176 236.112 176 192S211.888 112 256 112S336 147.888 336 192z" /> + <glyph glyph-name="cogs" + unicode="" + horiz-adv-x="640" d=" M512.1 257L503.9 242.7C500.9 237.4 494.5000000000001 235.2 488.8 237.3C477 241.7 466.2 248 456.7 255.9C452.1 259.7 450.9 266.4 453.9 271.6L462.1 285.9C455.2 293.9 449.8 303.2 446.2 313.3H429.7C423.7 313.3 418.5 317.6 417.5 323.6C415.5 335.6 415.4 348.2 417.5 360.7C418.5 366.7 423.7 371.1 429.7 371.1H446.2C449.8 381.2 455.2 390.5 462.1 398.5L453.9 412.8C450.9 418 452 424.7 456.7 428.5C466.2 436.4 477.1 442.7 488.8 447.1C494.5 449.2 500.9 447 503.9 441.7L512.1 427.4C522.6 429.3 533.3000000000001 429.3 543.8000000000001 427.4L552 441.7C555 447 561.4 449.2 567.1 447.1C578.9 442.7 589.7 436.4 599.2 428.5C603.8000000000001 424.7 605 418 602 412.8L593.8 398.5C600.6999999999999 390.5 606.0999999999999 381.2 609.6999999999999 371.1H626.1999999999999C632.1999999999999 371.1 637.4 366.8 638.4 360.8C640.4 348.8 640.5 336.2 638.4 323.7C637.4 317.7 632.1999999999999 313.3 626.1999999999999 313.3H609.6999999999999C606.0999999999999 303.2 600.6999999999999 293.9 593.8 285.9L602 271.6C605 266.4 603.9 259.7 599.2 255.9C589.7 248 578.8000000000001 241.7 567.1 237.3C561.4 235.2 555 237.4 552 242.7L543.8 257C533.4 255.1 522.5999999999999 255.1 512.0999999999999 257zM501.6 315.8C540.1 286.2000000000001 584 330.1 554.4 368.6C515.9 398.3 472 354.3 501.6 315.8zM386.3 161.9L420 145.1C430.1 139.3 434.5 127 430.5 116C421.6 91.8 404.1 69.6 387.9 50.1999999999999C380.5 41.3 367.7 39.0999999999999 357.6 44.8999999999999L328.5 61.6999999999999C312.5 47.9999999999999 293.8999999999999 37.0999999999999 273.6 29.9999999999999V-3.6000000000001C273.6 -15.2000000000001 265.3 -25.2000000000001 253.9 -27.2000000000001C229.3 -31.4000000000001 203.5 -31.6000000000001 178 -27.2000000000001C166.5 -25.2000000000001 158 -15.3000000000001 158 -3.6000000000001V30C137.7 37.2 119.1 48 103.1 61.7L74 45C64 39.2 51.1 41.4 43.7 50.3C27.5 69.7 10.4 91.9 1.5 116C-2.5 126.9 1.9 139.2 12 145.1L45.3 161.9C41.4 182.8 41.4 204.3000000000001 45.3 225.3000000000001L12 242.2C1.9 248 -2.6 260.3 1.5 271.2C10.4 295.4 27.5 317.6 43.7 337C51.1 345.9 63.9 348.1 74 342.3L103.1 325.5C119.1 339.2 137.7 350.1 158 357.2V390.9C158 402.4 166.2 412.4 177.6 414.4C202.2 418.6 228.1 418.8 253.6 414.5C265.1 412.5 273.6 402.6 273.6 390.9V357.3C293.9000000000001 350.1 312.5 339.3 328.5 325.6L357.6 342.4C367.6 348.2 380.5 346 387.9000000000001 337.1C404.1 317.7 421.1 295.5 430.0000000000001 271.3C434.0000000000001 260.4 430.1000000000001 248.1 420.0000000000001 242.2L386.3000000000001 225.4C390.2000000000001 204.4 390.2000000000001 182.9 386.3000000000001 161.9zM268.7000000000001 140.8C327.9000000000001 217.8 240.0000000000001 305.7 163.0000000000001 246.5C103.8000000000001 169.5 191.7000000000001 81.5999999999999 268.7000000000001 140.8zM512.1 -41.9L503.9 -56.2C500.9 -61.5000000000001 494.5000000000001 -63.7 488.8 -61.6C477 -57.2 466.2 -50.9 456.7 -43C452.1 -39.2 450.9 -32.5 453.9 -27.3L462.1 -13C455.2 -5 449.8 4.3 446.2 14.4H429.7C423.7 14.4 418.5 18.7 417.5 24.7C415.5 36.7 415.4 49.3 417.5 61.8C418.5 67.8 423.7 72.2 429.7 72.2H446.2C449.8 82.3 455.2 91.6 462.1 99.6L453.9 113.9C450.9 119.1 452 125.8 456.7 129.6C466.2 137.5 477.1 143.8 488.8 148.2C494.5 150.3 500.9 148.1 503.9 142.8L512.1 128.5C522.6 130.4 533.3000000000001 130.4 543.8000000000001 128.5L552.0000000000001 142.8C555.0000000000001 148.1 561.4000000000001 150.3 567.1000000000001 148.2C578.9000000000001 143.8 589.7000000000002 137.5 599.2000000000002 129.6C603.8000000000002 125.8 605.0000000000001 119.1 602.0000000000001 113.9L593.8000000000001 99.6C600.7 91.6 606.1 82.3 609.7 72.2H626.2C632.2 72.2 637.4000000000001 67.9 638.4000000000001 61.9C640.4000000000001 49.9 640.5000000000001 37.3 638.4000000000001 24.8C637.4000000000001 18.8 632.2 14.4 626.2 14.4H609.7C606.1 4.3 600.7 -5 593.8000000000001 -13L602.0000000000001 -27.3C605.0000000000001 -32.5 603.9000000000001 -39.2 599.2000000000002 -43C589.7000000000002 -50.9 578.8000000000002 -57.2 567.1000000000001 -61.6C561.4000000000001 -63.7 555.0000000000001 -61.5 552.0000000000001 -56.2L543.8000000000001 -41.9C533.4000000000001 -43.8 522.6 -43.8 512.1 -41.9zM501.6 17C540.1 -12.6 584 31.3 554.4 69.8C515.9 99.4 472 55.5 501.6 17z" /> + <glyph glyph-name="coins" + unicode="" + horiz-adv-x="512" d=" M0 42.7V0C0 -35.3 86 -64 192 -64S384 -35.3 384 0V42.7C342.7 13.6 267.2 0 192 0S41.3 13.6 0 42.7zM320 320C426 320 512 348.7 512 384S426 448 320 448S128 419.3 128 384S214 320 320 320zM0 147.6V96C0 60.7 86 32 192 32S384 60.7 384 96V147.6C342.7 113.6 267.1 96 192 96S41.3 113.6 0 147.6zM416 136.6C473.3 147.7000000000001 512 168.3 512 192V234.7000000000001C488.8 218.3000000000001 454.7 207.1000000000001 416 200.2000000000001V136.6zM192 288C86 288 0 252.2 0 208S86 128 192 128S384 163.8 384 208S298 288 192 288zM411.3 231.7C471.3 242.5 512 263.7 512 288V330.7C476.5 305.6 415.5 292.1 351.3 288.9C380.8 274.6 402.5 255.4 411.3 231.7z" /> + <glyph glyph-name="columns" + unicode="" + horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM224 32H64V288H224V32zM448 32H288V288H448V32z" /> + <glyph glyph-name="comment-alt" + unicode="" + horiz-adv-x="512" d=" M448 448H64C28.7 448 0 419.3 0 384V96C0 60.7 28.7 32 64 32H160V-52C160 -61.8 171.2 -67.5 179.1 -61.7L304 32H448C483.3 32 512 60.7 512 96V384C512 419.3 483.3 448 448 448z" /> + <glyph glyph-name="comment-dollar" + unicode="" + horiz-adv-x="512" d=" M256 416C114.62 416 0 322.88 0 208C0 158.44 21.41 112.99 57.02 77.26C44.46 26.95 2.7 -17.97 2.2 -18.5A7.995 7.995 0 0 1 8 -32C74.26 -32 123.99 -0.25 148.6 19.38C181.29 7.07 217.59 0 256 0C397.38 0 512 93.12 512 208S397.38 416 256 416zM280 113.56V96C280 87.16 272.84 80 264 80H248C239.16 80 232 87.16 232 96V113.73C220.58 115.0800000000001 209.72 118.92 200.22 125.19C194 129.3 193.4 138.3 198.67 143.57L216.19 161.09C219.93 164.83 225.5 165.33 230.3 163.12C233.48 161.66 236.96 160.8999999999999 240.56 160.8999999999999H273.3400000000001C278.0000000000001 160.8999999999999 281.7800000000001 164.6799999999999 281.7800000000001 169.3199999999999C281.7800000000001 173.0699999999999 279.2600000000001 176.3999999999999 275.6600000000001 177.43L225.5900000000001 191.73C203.34 198.08 185.5800000000001 216.44 182.68 239.4C178.63 271.47 201.71 298.83 232.0000000000001 302.45V320C232.0000000000001 328.8400000000001 239.1600000000001 336 248.0000000000001 336H264C272.84 336 280 328.8400000000001 280 320V302.27C291.42 300.92 302.28 297.0800000000001 311.78 290.81C318 286.7 318.6 277.7 313.33 272.43L295.81 254.91C292.07 251.17 286.5 250.67 281.7 252.88A24.516 24.516 0 0 1 271.44 255.1H238.66C234 255.1 230.22 251.32 230.22 246.68C230.22 242.93 232.74 239.6 236.34 238.57L286.4100000000001 224.27C308.6600000000001 217.91 326.42 199.56 329.3200000000001 176.6C333.3700000000001 144.54 310.2900000000001 117.18 280.0000000000001 113.56z" /> + <glyph glyph-name="comment-dots" + unicode="" + horiz-adv-x="512" d=" M256 416C114.6 416 0 322.9 0 208C0 158.4 21.4 113 57 77.3C44.5 26.9 2.7 -18 2.2 -18.5C0 -20.8 -0.6 -24.2 0.7 -27.2S4.8 -32 8 -32C74.3 -32 124 -0.2 148.6 19.4C181.3 7.1 217.6 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416zM128 176C110.3 176 96 190.3 96 208S110.3 240 128 240S160 225.7 160 208S145.7 176 128 176zM256 176C238.3 176 224 190.3 224 208S238.3 240 256 240S288 225.7 288 208S273.7 176 256 176zM384 176C366.3 176 352 190.3 352 208S366.3 240 384 240S416 225.7 416 208S401.7 176 384 176z" /> + <glyph glyph-name="comment-slash" + unicode="" + horiz-adv-x="640" d=" M64 208C64 158.4 85.4 113 121 77.3C108.4 27 66.7 -17.9 66.2 -18.5C64 -20.8 63.4 -24.2 64.7 -27.2C66 -30.1 68.8 -32 72 -32C138.3 -32 188 -0.2 212.6 19.4C245.3 7.1 281.6 0 320 0C347.4 0 373.7 3.6 398.4 10L72.9 261.6C67.3 244.5 64 226.6 64 208zM633.8 -10.1L519.4 78.3C554.6 113.9 576 158.8 576 208C576 322.9 461.4 416 320 416C254.9 416 195.8 395.9 150.6 363.3L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L594.6 -60.5C601.6 -65.9 611.6 -64.7 617.1 -57.7L636.7 -32.4C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1z" /> + <glyph glyph-name="comment" + unicode="" + horiz-adv-x="512" d=" M256 416C114.6 416 0 322.9 0 208C0 158.4 21.4 113 57 77.3C44.5 26.9 2.7 -18 2.2 -18.5C0 -20.8 -0.6 -24.2 0.7 -27.2S4.8 -32 8 -32C74.3 -32 124 -0.2 148.6 19.4C181.3 7.1 217.6 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416z" /> + <glyph glyph-name="comments-dollar" + unicode="" + horiz-adv-x="576" d=" M416 256C416 344.37 322.88 416 208 416S0 344.37 0 256C0 221.73 14.13 190.05 37.97 164.02C24.61 133.78 2.52 109.84 2.2 109.5A7.995 7.995 0 0 1 8 96C44.58 96 74.93 108.25 96.73 120.98C128.93 105.24 167.02 96 208 96C322.88 96 416 167.63 416 256zM192 160V176.29C180.71 176.87 169.73 180.81 160.63 187.6400000000001C156.73 190.5700000000001 156.53 196.4100000000001 160.06 199.78L171.81 210.9900000000001C174.58 213.63 178.7 213.75 181.94 211.72C185.81 209.3000000000001 190.2 208 194.76 208H222.87C229.37 208 234.67 213.92 234.67 221.19C234.67 227.14 231.06 232.38 225.9 233.92L180.9 247.42C162.31 253.0000000000001 149.32 270.8400000000001 149.32 290.81C149.32 315.3300000000001 168.37 335.25 191.99 335.88V352C191.99 356.42 195.57 360 199.99 360H215.99C220.41 360 223.99 356.42 223.99 352V335.7100000000001C235.28 335.13 246.26 331.2 255.36 324.36C259.26 321.43 259.4600000000001 315.5900000000001 255.93 312.2200000000001L244.18 301.01C241.41 298.37 237.29 298.25 234.05 300.2800000000001C230.18 302.7100000000001 225.79 304 221.23 304H193.12C186.62 304 181.32 298.0800000000001 181.32 290.8100000000001C181.32 284.86 184.93 279.62 190.09 278.0800000000001L235.09 264.5800000000001C253.68 259 266.67 241.1600000000001 266.67 221.1900000000001C266.67 196.6600000000001 247.62 176.7500000000001 224 176.1200000000001V160C224 155.58 220.42 152 216 152H200C195.58 152 192 155.58 192 160zM538.01 36.01C561.87 62.04 576 93.73 576 128C576 194.94 522.51 252.2 446.67 276.07C447.53 269.4700000000001 448 262.78 448 256C448 150.13 340.3399999999999 64 208 64C197.22 64 186.68 64.77 176.27 65.88C207.8 8.37 281.77 -32 368 -32C408.98 -32 447.07 -22.76 479.27 -7.02C501.07 -19.75 531.42 -32 568 -32C571.2 -32 574.09 -30.09 575.34 -27.16C576.61 -24.22 576 -20.82 573.7900000000001 -18.49C573.4800000000001 -18.16 551.3700000000001 5.75 538.0100000000001 36.01z" /> + <glyph glyph-name="comments" + unicode="" + horiz-adv-x="576" d=" M416 256C416 344.4 322.9 416 208 416S0 344.4 0 256C0 221.7 14.1 190.1 38 164C24.6 133.8 2.5 109.8 2.2 109.5C0 107.2 -0.6 103.8 0.7 100.8S4.8 96 8 96C44.6 96 74.9 108.3 96.7 121C128.9 105.3 167 96 208 96C322.9 96 416 167.6 416 256zM538 36C561.9 62 576 93.7 576 128C576 194.9 522.5 252.2 446.7 276.1C447.6 269.5 448 262.8 448 256C448 150.1 340.3 64 208 64C197.2 64 186.7 64.8 176.3 65.9C207.8 8.4 281.8 -32 368 -32C409 -32 447.1 -22.8 479.3 -7C501.1 -19.7 531.4 -32 568 -32C571.2 -32 574.1 -30.1 575.3 -27.2C576.5999999999999 -24.3 576 -20.9 573.8 -18.5C573.5 -18.2 551.4 5.7 538 36z" /> + <glyph glyph-name="compact-disc" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM88 192H56C56 297.9 142.1 384 248 384V352C159.8 352 88 280.2 88 192zM248 96C195 96 152 139 152 192S195 288 248 288S344 245 344 192S301 96 248 96zM248 224C230.3 224 216 209.7 216 192S230.3 160 248 160S280 174.3 280 192S265.7 224 248 224z" /> + <glyph glyph-name="compass" + unicode="" + horiz-adv-x="496" d=" M225.38 214.63C212.88 202.13 212.88 181.87 225.38 169.38C237.87 156.88 258.14 156.88 270.63 169.38C283.13 181.88 283.13 202.14 270.63 214.63C258.13 227.12 237.87 227.12 225.38 214.63zM248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM374.14 291.95L308.17 147.6A31.938 31.938 0 0 0 292.4000000000001 131.8300000000001L148.06 65.86C131.41 58.25 114.25 75.41 121.86 92.06L187.84 236.41A31.938 31.938 0 0 0 203.6100000000001 252.18L347.9500000000001 318.15C364.6 325.75 381.7500000000001 308.6 374.1400000000001 291.9500000000001z" /> + <glyph glyph-name="compress" + unicode="" + horiz-adv-x="448" d=" M436 256H312C298.7 256 288 266.7 288 280V404C288 410.6 293.4 416 300 416H340C346.6 416 352 410.6 352 404V320H436C442.6 320 448 314.6 448 308V268C448 261.4 442.6 256 436 256zM160 280V404C160 410.6 154.6 416 148 416H108C101.4 416 96 410.6 96 404V320H12C5.4 320 0 314.6 0 308V268C0 261.4 5.4 256 12 256H136C149.3 256 160 266.7 160 280zM160 -20V104C160 117.3 149.3 128 136 128H12C5.4 128 0 122.6 0 116V76C0 69.4 5.4 64 12 64H96V-20C96 -26.6 101.4 -32 108 -32H148C154.6 -32 160 -26.6 160 -20zM352 -20V64H436C442.6 64 448 69.4 448 76V116C448 122.6 442.6 128 436 128H312C298.7 128 288 117.3 288 104V-20C288 -26.6 293.4 -32 300 -32H340C346.6 -32 352 -26.6 352 -20z" /> + <glyph glyph-name="concierge-bell" + unicode="" + horiz-adv-x="512" d=" M288 317.4600000000001V336H304C312.84 336 320 343.16 320 352V368C320 376.8400000000001 312.84 384 304 384H208C199.16 384 192 376.8400000000001 192 368V352C192 343.16 199.16 336 208 336H224V317.4600000000001C115.49 301.89 32 208.82 32 96H480C480 208.82 396.51 301.89 288 317.4600000000001zM496 64H16C7.16 64 0 56.84 0 48V16C0 7.16 7.16 0 16 0H496C504.84 0 512 7.16 512 16V48C512 56.84 504.84 64 496 64z" /> + <glyph glyph-name="cookie-bite" + unicode="" + horiz-adv-x="512" d=" M510.52 192.18C440.55 193.03 384.05 249.87 384.05 320.04C313.88 320.04 257.05 376.53 256.19 446.49C228.93 450.63 201.06 446.19 176.47 433.67L107.34 398.45A132.221 132.221 0 0 1 49.55 340.64L14.4499999999999 271.76A132.645 132.645 0 0 1 1.6299999999999 190.81L13.7099999999999 114.54A132.521 132.521 0 0 1 50.8699999999999 41.58L105.6399999999999 -13.1799999999999A132.036 132.036 0 0 1 178.3499999999999 -50.2399999999999L255.06 -62.3899999999999C282.57 -66.7499999999999 310.76 -62.2799999999999 335.5899999999999 -49.6299999999999L404.7199999999999 -14.42A132.273 132.273 0 0 1 462.5099999999999 43.39L497.61 112.27C510.17 136.91 514.62 164.85 510.52 192.18zM176 80C158.33 80 144 94.33 144 112S158.33 144 176 144S208 129.67 208 112S193.67 80 176 80zM208 240C190.33 240 176 254.33 176 272S190.33 304 208 304S240 289.67 240 272S225.67 240 208 240zM368 112C350.33 112 336 126.33 336 144S350.33 176 368 176S400 161.67 400 144S385.67 112 368 112z" /> + <glyph glyph-name="cookie" + unicode="" + horiz-adv-x="512" d=" M510.37 193.21L498.29 269.4700000000001A132.493 132.493 0 0 1 461.13 342.42L406.37 397.17C386.64 416.8900000000001 361.19 429.87 333.6600000000001 434.2200000000001L256.9600000000001 446.37C229.4500000000001 450.73 201.2700000000001 446.2600000000001 176.4400000000001 433.61L107.32 398.4A132.25 132.25 0 0 1 49.53 340.6L14.43 271.7200000000001A132.602 132.602 0 0 1 1.61 190.78L13.69 114.51A132.493 132.493 0 0 1 50.85 41.56L105.61 -13.19A132.087 132.087 0 0 1 178.32 -50.24L255.02 -62.38C282.53 -66.74 310.71 -62.27 335.54 -49.63L404.66 -14.42A132.302 132.302 0 0 1 462.45 43.38L497.55 112.25C510.26 137.21 514.75 165.55 510.37 193.21zM176 80C158.33 80 144 94.33 144 112S158.33 144 176 144S208 129.67 208 112S193.67 80 176 80zM208 240C190.33 240 176 254.33 176 272S190.33 304 208 304S240 289.67 240 272S225.67 240 208 240zM368 112C350.33 112 336 126.33 336 144S350.33 176 368 176S400 161.67 400 144S385.67 112 368 112z" /> + <glyph glyph-name="copy" + unicode="" + horiz-adv-x="448" d=" M320 0V-40C320 -53.255 309.255 -64 296 -64H24C10.745 -64 0 -53.255 0 -40V328C0 341.255 10.745 352 24 352H96V56C96 25.121 121.121 0 152 0H320zM320 344V448H152C138.745 448 128 437.255 128 424V56C128 42.745 138.745 32 152 32H424C437.255 32 448 42.745 448 56V320H344C330.8 320 320 330.8 320 344zM440.971 375.029L375.029 440.971A24 24 0 0 1 358.0590000000001 448H352V352H448V358.059A24 24 0 0 1 440.971 375.029z" /> + <glyph glyph-name="copyright" + unicode="" + horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM373.134 93.247C371.5420000000001 91.38 333.358 47.516 263.283 47.516C178.591 47.516 118.799 110.776 118.799 193.083C118.799 274.386 180.803 336.4840000000001 262.5610000000001 336.4840000000001C329.5180000000001 336.4840000000001 364.5260000000001 299.1690000000001 365.9830000000001 297.5800000000001A12 12 0 0 0 367.2210000000001 282.9570000000001L344.8410000000001 248.3020000000001C340.7920000000001 242.0350000000001 332.0670000000001 240.9510000000001 326.6070000000001 246.0070000000001C326.3740000000001 246.2210000000001 300.0780000000001 269.8870000000001 264.7270000000001 269.8870000000001C218.6110000000001 269.8870000000001 190.8110000000001 236.3120000000001 190.8110000000001 193.8050000000001C190.8110000000001 154.2030000000001 216.3250000000001 114.1130000000001 265.0880000000001 114.1130000000001C303.7850000000001 114.1130000000001 330.3680000000001 142.4510000000001 330.6320000000001 142.7380000000001C335.7640000000001 148.3030000000001 344.6910000000001 147.7710000000001 349.1400000000001 141.6850000000001L373.6870000000001 108.1130000000001A12.001000000000001 12.001000000000001 0 0 0 373.1340000000001 93.2470000000001z" /> + <glyph glyph-name="couch" + unicode="" + horiz-adv-x="640" d=" M160 224V160H480V224C480 259.3 508.7 288 544 288H576C576 341 533 384 480 384H160C107 384 64 341 64 288H96C131.3 288 160 259.3 160 224zM576 256H544C526.3 256 512 241.7 512 224V128H128V224C128 241.7 113.7 256 96 256H64C28.7 256 0 227.3 0 192C0 168.4 13 148 32 136.9V16C32 7.2 39.2 0 48 0H112C120.8 0 128 7.2 128 16V32H512V16C512 7.2 519.2 0 528 0H592C600.8 0 608 7.2 608 16V136.9C627 148 640 168.4 640 192C640 227.3 611.3 256 576 256z" /> + <glyph glyph-name="credit-card" + unicode="" + horiz-adv-x="576" d=" M0 16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V192H0V16zM192 84C192 90.6 197.4 96 204 96H340C346.6 96 352 90.6 352 84V44C352 37.4 346.6 32 340 32H204C197.4 32 192 37.4 192 44V84zM64 84C64 90.6 69.4 96 76 96H148C154.6 96 160 90.6 160 84V44C160 37.4 154.6 32 148 32H76C69.4 32 64 37.4 64 44V84zM576 368V320H0V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368z" /> + <glyph glyph-name="crop-alt" + unicode="" + horiz-adv-x="512" d=" M488 96H448V352C448 369.67 433.67 384 416 384H192V288H352V-40C352 -53.25 362.75 -64 376 -64H424C437.25 -64 448 -53.25 448 -40V0H488C501.25 0 512 10.75 512 24V72C512 85.26 501.25 96 488 96zM160 424C160 437.26 149.25 448 136 448H88C74.75 448 64 437.26 64 424V384H24C10.75 384 0 373.26 0 360V312C0 298.75 10.75 288 24 288H64V32C64 14.33 78.33 0 96 0H320V96H160V424z" /> + <glyph glyph-name="crop" + unicode="" + horiz-adv-x="512" d=" M488 96H448V338.75L507.31 398.06C513.56 404.31 513.56 414.44 507.31 420.69L484.69 443.31C478.44 449.56 468.31 449.56 462.06 443.31L402.75 384H192V288H306.75L160 141.25V424C160 437.26 149.25 448 136 448H88C74.75 448 64 437.26 64 424V384H24C10.75 384 0 373.26 0 360V312C0 298.75 10.75 288 24 288H64V24C64 10.75 74.75 0 88 0H320V96H205.25L352 242.75V-40C352 -53.25 362.75 -64 376 -64H424C437.25 -64 448 -53.25 448 -40V0H488C501.25 0 512 10.75 512 24V72C512 85.26 501.25 96 488 96z" /> + <glyph glyph-name="cross" + unicode="" + horiz-adv-x="384" d=" M352 320H256V416C256 433.67 241.67 448 224 448H160C142.33 448 128 433.67 128 416V320H32C14.33 320 0 305.67 0 288V224C0 206.33 14.33 192 32 192H128V-32C128 -49.67 142.33 -64 160 -64H224C241.67 -64 256 -49.67 256 -32V192H352C369.67 192 384 206.33 384 224V288C384 305.67 369.67 320 352 320z" /> + <glyph glyph-name="crosshairs" + unicode="" + horiz-adv-x="512" d=" M500 224H469.636C455.724 317.675 381.675 391.724 288 405.636V436C288 442.627 282.627 448 276 448H236C229.373 448 224 442.627 224 436V405.636C130.325 391.724 56.276 317.675 42.364 224H12C5.373 224 0 218.627 0 212V172C0 165.373 5.373 160 12 160H42.364C56.276 66.325 130.325 -7.724 224 -21.636V-52C224 -58.627 229.373 -64 236 -64H276C282.627 -64 288 -58.627 288 -52V-21.636C381.675 -7.724 455.724 66.325 469.636 160H500C506.627 160 512 165.373 512 172V212C512 218.627 506.627 224 500 224zM288 43.366V84C288 90.627 282.627 96 276 96H236C229.373 96 224 90.627 224 84V43.366C165.826 55.768 119.783 101.757 107.366 160H148C154.627 160 160 165.373 160 172V212C160 218.627 154.627 224 148 224H107.366C119.768 282.174 165.757 328.217 224 340.634V300C224 293.373 229.373 288 236 288H276C282.627 288 288 293.373 288 300V340.634C346.174 328.232 392.217 282.243 404.634 224H364C357.373 224 352 218.627 352 212V172C352 165.373 357.373 160 364 160H404.634C392.2320000000001 101.826 346.243 55.783 288 43.366zM288 192C288 174.327 273.673 160 256 160S224 174.327 224 192C224 209.673 238.327 224 256 224S288 209.673 288 192z" /> + <glyph glyph-name="crow" + unicode="" + horiz-adv-x="640" d=" M544 416H527.64C513.04 435.32 490.09 448 464 448C419.82 448 384 412.18 384 368V347.02L12.09 54.43A30.216 30.216 0 0 1 0 30.26C0 7.8 23.64 -6.81 43.73 3.23L165.27 64H261.76L306.17 -56.1C308.44 -62.33 315.32 -65.5400000000001 321.55 -63.27L344.1 -55.0600000000001C350.33 -52.7900000000001 353.54 -45.9100000000001 351.27 -39.6800000000001L312.94 64H352C353.9100000000001 64 355.76 64.23 357.6600000000001 64.29L402.17 -56.09C404.44 -62.32 411.32 -65.53 417.55 -63.26L440.1 -55.05C446.3300000000001 -52.78 449.54 -45.9 447.2700000000001 -39.67L406.0300000000001 71.86C485.74 95.2 544 168.74 544 256V336L640 352C640 387.35 597.02 416 544 416zM464 344C450.75 344 440 354.75 440 368C440 381.26 450.75 392 464 392S488 381.26 488 368C488 354.75 477.25 344 464 344z" /> + <glyph glyph-name="crown" + unicode="" + horiz-adv-x="640" d=" M528 0H112C103.2 0 96 -7.2 96 -16V-48C96 -56.8 103.2 -64 112 -64H528C536.8 -64 544 -56.8 544 -48V-16C544 -7.2 536.8 0 528 0zM592 320C565.5 320 544 298.5 544 272C544 264.9 545.6 258.3 548.4 252.2L476 208.8C460.6 199.6 440.7 204.8 431.8 220.4L350.3 363C361 371.8 368 385 368 400C368 426.5 346.5 448 320 448S272 426.5 272 400C272 385 279 371.8 289.7 363L208.2 220.4C199.3 204.8 179.3 199.6 164 208.8L91.7 252.2C94.4 258.2000000000001 96.1 264.9 96.1 272C96.1 298.5 74.6 320 48.1 320S0 298.5 0 272S21.5 224 48 224C50.6 224 53.2 224.4 55.7 224.8L128 32H512L584.3 224.8C586.8 224.4 589.4 224 592 224C618.5 224 640 245.5 640 272S618.5 320 592 320z" /> + <glyph glyph-name="cube" + unicode="" + horiz-adv-x="512" d=" M239.1 441.7L31.1 363.7C12.4 356.7 0 338.7 0 318.7V93.6C0 75.4 10.3 58.8 26.5 50.7L234.5 -53.3C248 -60.1 263.9 -60.1 277.4 -53.3L485.4 50.7C501.7 58.8000000000001 511.9 75.5000000000001 511.9 93.6V318.7C511.9 338.7 499.5 356.6 480.8 363.6L272.8 441.6C262 445.8 250 445.8 239.1 441.7zM256 379.6L448 307.6V306.5L256 228.5L64 306.5V307.6L256 379.6zM288 23.6V172.5L448 237.5V103.6L288 23.6z" /> + <glyph glyph-name="cubes" + unicode="" + horiz-adv-x="512" d=" M488.6 197.8L392 234V342.5C392 357.5 382.7 370.9 368.6 376.2L268.6 413.7C260.5 416.8 251.5000000000001 416.8 243.3 413.7L143.3 376.2C129.2 370.9 119.9 357.5 119.9 342.5V234L23.3 197.8C9.3 192.5 0 179.1 0 164.1V54C0 40.4 7.7 27.9 19.9 21.8L119.9 -28.2C130 -33.3 142 -33.3 152.1 -28.2L256 23.8L359.9 -28.2C370 -33.3 382 -33.3 392.1 -28.2L492.1 21.8C504.3 27.9 511.9999999999999 40.4 511.9999999999999 54V164.1C511.9999999999999 179.1 502.6999999999999 192.5 488.6 197.8zM358 233.2L273 201.3V269.5L358 306.5V233.2zM154 343.9L256 382.1L358 343.9V343.3L256 301.9L154 343.3V343.9zM238 52.8L153 10.3V89.4L238 128.2V52.8zM238 164.8L136 123.4L34 164.8V165.4L136 203.6L238 165.4V164.8zM478 52.8L393 10.3V89.4L478 128.2V52.8zM478 164.8L376 123.4L274 164.8V165.4L376 203.6L478 165.4V164.8z" /> + <glyph glyph-name="cut" + unicode="" + horiz-adv-x="448" d=" M278.06 192L444.48 358.43C449.17 363.12 449.17 370.7200000000001 444.48 375.4C411.68 408.2 358.49 408.2 325.69 375.4L210.18 259.88L185.32 284.74C189.63 295.66 192 307.55 192 320C192 373.02 149.02 416 96 416S0 373.02 0 320S42.98 224 96 224C100.54 224 104.99 224.32 109.36 224.93L142.29 192L109.36 159.07C104.99 159.68 100.53 160 96 160C42.98 160 0 117.02 0 64S42.98 -32 96 -32S192 10.98 192 64C192 76.45 189.63 88.34 185.32 99.26L210.18 124.12L325.69 8.6C358.49 -24.2 411.68 -24.2 444.48 8.6C449.17 13.28 449.17 20.88 444.48 25.5700000000001L278.06 192zM96 288C78.36 288 64 302.36 64 320S78.36 352 96 352S128 337.64 128 320S113.64 288 96 288zM96 32C78.36 32 64 46.36 64 64S78.36 96 96 96S128 81.64 128 64S113.64 32 96 32z" /> + <glyph glyph-name="database" + unicode="" + horiz-adv-x="448" d=" M448 374.857V329.1430000000001C448 288.857 347.667 256 224 256S0 288.857 0 329.1430000000001V374.857C0 415.1430000000001 100.333 448 224 448S448 415.1430000000001 448 374.857zM448 272V169.143C448 128.857 347.667 96 224 96S0 128.857 0 169.143V272C48.125 238.857 136.208 223.428 224 223.428S399.874 238.857 448 272zM448 112V9.143C448 -31.143 347.667 -64 224 -64S0 -31.143 0 9.143V112C48.125 78.857 136.208 63.428 224 63.428S399.874 78.857 448 112z" /> + <glyph glyph-name="deaf" + unicode="" + horiz-adv-x="512" d=" M216 188C216 172.536 203.464 160 188 160S160 172.536 160 188C160 232.112 195.888 268 240 268S320 232.112 320 188C320 172.536 307.464 160 292 160S264 172.536 264 188C264 201.234 253.233 212 240 212S216 201.234 216 188zM240 364C142.953 364 64 285.0470000000001 64 188C64 172.536 76.536 160 92 160S120 172.536 120 188C120 254.168 173.832 308 240 308S360 254.168 360 188C360 112.836 288.991 117.689 288.003 44.378L288 44C288 15.327 264.673 -8 236 -8C220.536 -8 208 -20.536 208 -36S220.536 -64 236 -64C295.475 -64 343.876 -15.672 344 43.774C344.5950000000001 78.202 416 92.014 416 188C416 285.0470000000001 337.0470000000001 364 240 364zM508.485 416.201L480.2 444.485C475.513 449.171 467.916 449.171 463.229 444.485L376.2 357.456C371.514 352.77 371.514 345.1720000000001 376.2 340.485L404.485 312.2C409.171 307.514 416.769 307.514 421.4550000000001 312.2L508.485 399.229C513.172 403.917 513.172 411.515 508.485 416.201zM168.97 133.255C164.284 137.941 156.686 137.941 152 133.255L3.515 -15.23C-1.171 -19.916 -1.171 -27.514 3.515 -32.201L31.8 -60.485C36.487 -65.171 44.084 -65.171 48.771 -60.485L197.256 88C201.942 92.686 201.942 100.284 197.256 104.971L168.97 133.255z" /> + <glyph glyph-name="desktop" + unicode="" + horiz-adv-x="576" d=" M528 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H240L224 -16H152C138.7 -16 128 -26.7 128 -40S138.7 -64 152 -64H424C437.3 -64 448 -53.3 448 -40S437.3 -16 424 -16H352L336 32H528C554.5 32 576 53.5 576 80V400C576 426.5 554.5 448 528 448zM512 96H64V384H512V96z" /> + <glyph glyph-name="dharmachakra" + unicode="" + horiz-adv-x="512" d=" M495 222.94L477.78 221.86C472.51 261.35 456.99 297.5 433.92 327.7L446.87 339.13C453.79 345.24 454.1199999999999 355.92 447.6 362.44L426.44 383.6C419.9100000000001 390.13 409.23 389.79 403.13 382.87L391.7 369.93C361.5 392.99 325.35 408.51 285.87 413.79L286.94 431C287.52 440.21 280.2 448 270.97 448H241.03C231.8 448 224.49 440.21 225.06 431L226.14 413.78C186.65 408.51 150.5 392.99 120.31 369.92L108.88 382.87C102.77 389.79 92.09 390.12 85.57 383.6L64.4 362.44C57.87 355.91 58.21 345.23 65.13 339.13L78.08 327.7C55.02 297.5 39.5 261.35 34.22 221.86L17 222.94C7.79 223.52 0 216.2 0 206.97V177.03C0 167.8 7.79 160.49 17 161.06L34.22 162.1399999999999C39.49 122.6499999999999 55.01 86.4999999999999 78.08 56.31L65.13 44.8799999999999C58.21 38.7699999999999 57.88 28.0899999999999 64.4 21.5699999999999L85.57 0.3999999999999C92.1 -6.1300000000001 102.78 -5.7900000000001 108.88 1.1299999999999L120.31 14.0799999999999C150.51 -8.9800000000001 186.66 -24.5000000000001 226.15 -29.7800000000001L225.06 -47C224.48 -56.21 231.8 -64 241.03 -64H270.9700000000001C280.2000000000001 -64 287.5100000000001 -56.21 286.9400000000001 -47L285.8600000000001 -29.78C325.3500000000001 -24.51 361.5000000000001 -8.99 391.7000000000001 14.08L403.1300000000001 1.1300000000001C409.2400000000001 -5.79 419.9200000000001 -6.1199999999999 426.4400000000001 0.4L447.6100000000001 21.5700000000001C454.14 28.1 453.8000000000001 38.78 446.8800000000001 44.8800000000001L433.9300000000001 56.3100000000001C456.9900000000001 86.5100000000001 472.51 122.6600000000001 477.7900000000001 162.1400000000001L495.0100000000001 161.0600000000001C504.2200000000001 160.4800000000001 512.0100000000001 167.8000000000001 512.0100000000001 177.0300000000001V206.9700000000001C512.0000000000001 216.2000000000001 504.2100000000001 223.5100000000001 495.0000000000001 222.9400000000001zM281.84 349.39C306.65 345.32 329.47 335.73 349.07 321.61L306.45 273.32C297.72 278.76 288.13 282.86 277.83 285.27L281.84 349.39zM230.16 349.39L234.17 285.27C223.88 282.86 214.28 278.75 205.55 273.32L162.93 321.61C182.53 335.73 205.35 345.32 230.16 349.39zM126.39 285.06L174.69 242.45C169.25 233.72 165.15 224.12 162.73 213.83L98.61 217.84C102.68 242.65 112.27 265.46 126.39 285.06zM98.61 166.16L162.73 170.17C165.14 159.88 169.25 150.28 174.68 141.55L126.39 98.93C112.27 118.53 102.68 141.35 98.61 166.16zM230.16 34.61C205.35 38.68 182.53 48.27 162.93 62.39L205.54 110.69C214.27 105.25 223.87 101.15 234.16 98.73L230.16 34.61zM256 160C238.33 160 224 174.33 224 192S238.33 224 256 224S288 209.67 288 192S273.67 160 256 160zM281.84 34.61L277.83 98.73C288.12 101.14 297.72 105.25 306.45 110.69L349.06 62.39C329.46 48.27 306.65 38.68 281.8400000000001 34.61zM385.61 98.94L337.32 141.56C342.76 150.29 346.86 159.88 349.2699999999999 170.18L413.39 166.17C409.32 141.35 399.7299999999999 118.53 385.6099999999999 98.94zM349.27 213.83C346.86 224.12 342.75 233.72 337.31 242.45L385.61 285.06C399.73 265.4600000000001 409.32 242.64 413.39 217.83L349.27 213.83z" /> + <glyph glyph-name="diagnoses" + unicode="" + horiz-adv-x="640" d=" M496 192C504.8 192 512 199.2 512 208S504.8 224 496 224S480 216.8 480 208S487.2 192 496 192zM320 272C368.5 272 408 311.5 408 360S368.5 448 320 448S232 408.5 232 360S271.5 272 320 272zM59.8 84C70 68.7 89.1 66.2 102.7 74.2C118.9 83.8 158.9 105.9 208 122.8V32H432V122.7C481.1 105.9 521.1 83.7 537.3 74.1C550.9 66.1 570 68.8 580.1999999999999 83.9L597.9999999999999 110.6C606.7999999999998 123.8 605.5999999999999 145.2 587.9999999999999 155.7C576.0999999999999 162.8 558.2999999999998 172.7 536.8999999999999 183.1C508.7999999999998 137 437.4999999999999 165.3 449.1999999999999 218.2C409.3 230.8 365.1 240 320 240C263 240 207.1 225.5 160 207.8C159.8 167.6 112.4 144.5 80.8 171.8C69.6 165.8 59.5 160.2 52.1 155.8C34.5 145.3 33.3 124 42.1 110.7L59.8 84zM368 104C381.3 104 392 93.3 392 80S381.3 56 368 56S344 66.7 344 80S354.7 104 368 104zM272 200C285.3 200 296 189.3 296 176S285.3 152 272 152S248 162.7 248 176S258.7 200 272 200zM112 192C120.8 192 128 199.2 128 208S120.8 224 112 224S96 216.8 96 208S103.2 192 112 192zM624 0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H624C632.8 -64 640 -56.8 640 -48V-16C640 -7.2 632.8 0 624 0z" /> + <glyph glyph-name="dice-five" + unicode="" + horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 64C110.33 64 96 78.33 96 96S110.33 128 128 128S160 113.67 160 96S145.67 64 128 64zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM224 160C206.33 160 192 174.33 192 192S206.33 224 224 224S256 209.67 256 192S241.67 160 224 160zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64zM320 256C302.33 256 288 270.3300000000001 288 288S302.33 320 320 320S352 305.67 352 288S337.67 256 320 256z" /> + <glyph glyph-name="dice-four" + unicode="" + horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 64C110.33 64 96 78.33 96 96S110.33 128 128 128S160 113.67 160 96S145.67 64 128 64zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64zM320 256C302.33 256 288 270.3300000000001 288 288S302.33 320 320 320S352 305.67 352 288S337.67 256 320 256z" /> + <glyph glyph-name="dice-one" + unicode="" + horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM224 160C206.33 160 192 174.33 192 192S206.33 224 224 224S256 209.67 256 192S241.67 160 224 160z" /> + <glyph glyph-name="dice-six" + unicode="" + horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 64C110.33 64 96 78.33 96 96S110.33 128 128 128S160 113.67 160 96S145.67 64 128 64zM128 160C110.33 160 96 174.33 96 192S110.33 224 128 224S160 209.67 160 192S145.67 160 128 160zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64zM320 160C302.33 160 288 174.33 288 192S302.33 224 320 224S352 209.67 352 192S337.67 160 320 160zM320 256C302.33 256 288 270.3300000000001 288 288S302.33 320 320 320S352 305.67 352 288S337.67 256 320 256z" /> + <glyph glyph-name="dice-three" + unicode="" + horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM224 160C206.33 160 192 174.33 192 192S206.33 224 224 224S256 209.67 256 192S241.67 160 224 160zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64z" /> + <glyph glyph-name="dice-two" + unicode="" + horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64z" /> + <glyph glyph-name="dice" + unicode="" + horiz-adv-x="640" d=" M592 256H473.26C485.95 226.41 480.38 190.8 456.26 166.68L320 30.42V-16C320 -42.51 341.49 -64 368 -64H592C618.51 -64 640 -42.51 640 -16V208C640 234.51 618.51 256 592 256zM480 72C466.75 72 456 82.75 456 96C456 109.26 466.75 120 480 120S504 109.26 504 96C504 82.75 493.25 72 480 72zM433.63 258.7L258.7 433.63C239.54 452.79 208.47 452.79 189.31 433.63L14.37 258.7C-4.79 239.54 -4.79 208.47 14.37 189.31L189.3 14.37C208.46 -4.79 239.53 -4.79 258.69 14.37L433.63 189.3C452.79 208.47 452.79 239.54 433.63 258.7000000000001zM96 200C82.75 200 72 210.75 72 224C72 237.26 82.75 248 96 248S120 237.26 120 224C120 210.75 109.25 200 96 200zM224 72C210.75 72 200 82.75 200 96C200 109.26 210.75 120 224 120S248 109.26 248 96C248 82.75 237.25 72 224 72zM224 200C210.75 200 200 210.75 200 224C200 237.26 210.75 248 224 248S248 237.26 248 224C248 210.75 237.25 200 224 200zM224 328C210.75 328 200 338.75 200 352C200 365.26 210.75 376 224 376S248 365.26 248 352C248 338.75 237.25 328 224 328zM352 200C338.75 200 328 210.75 328 224C328 237.26 338.75 248 352 248S376 237.26 376 224C376 210.75 365.25 200 352 200z" /> + <glyph glyph-name="digital-tachograph" + unicode="" + horiz-adv-x="640" d=" M608 352H32C14.33 352 0 337.67 0 320V64C0 46.33 14.33 32 32 32H608C625.67 32 640 46.33 640 64V320C640 337.67 625.67 352 608 352zM304 96C304 91.58 300.42 88 296 88H72C67.58 88 64 91.58 64 96V104C64 108.42 67.58 112 72 112H296C300.42 112 304 108.42 304 104V96zM72 160V176C72 180.42 75.58 184 80 184H96C100.42 184 104 180.42 104 176V160C104 155.58 100.42 152 96 152H80C75.58 152 72 155.58 72 160zM136 160V176C136 180.42 139.58 184 144 184H160C164.42 184 168 180.42 168 176V160C168 155.58 164.42 152 160 152H144C139.58 152 136 155.58 136 160zM200 160V176C200 180.42 203.58 184 208 184H224C228.42 184 232 180.42 232 176V160C232 155.58 228.42 152 224 152H208C203.58 152 200 155.58 200 160zM264 160V176C264 180.42 267.58 184 272 184H288C292.42 184 296 180.42 296 176V160C296 155.58 292.42 152 288 152H272C267.58 152 264 155.58 264 160zM304 224C304 215.16 296.84 208 288 208H80C71.16 208 64 215.16 64 224V272C64 280.8400000000001 71.16 288 80 288H288C296.84 288 304 280.8400000000001 304 272V224zM576 96C576 91.58 572.42 88 568 88H344C339.58 88 336 91.58 336 96V104C336 108.42 339.58 112 344 112H568C572.42 112 576 108.42 576 104V96z" /> + <glyph glyph-name="directions" + unicode="" + horiz-adv-x="512" d=" M502.61 214.68L278.68 438.61C266.1600000000001 451.13 245.85 451.13 233.32 438.61L9.39 214.68C-3.13 202.15 -3.13 181.85 9.39 169.32L233.32 -54.61C245.84 -67.14 266.15 -67.14 278.68 -54.61L502.61 169.32C515.13 181.85 515.13 202.15 502.61 214.68zM401.63 202.12L317.42 124.39C312.3 119.66 303.99 123.29 303.99 130.27V184H207.99V120C207.99 115.58 204.41 112 199.99 112H167.99C163.57 112 159.99 115.58 159.99 120V200C159.99 217.67 174.32 232 191.99 232H303.99V285.73C303.99 292.7 312.29 296.34 317.42 291.61L401.63 213.88C405.06 210.71 405.06 205.29 401.63 202.12z" /> + <glyph glyph-name="divide" + unicode="" + horiz-adv-x="448" d=" M224 96C188.65 96 160 67.35 160 32S188.65 -32 224 -32S288 -3.35 288 32S259.35 96 224 96zM224 288C259.35 288 288 316.65 288 352S259.35 416 224 416S160 387.35 160 352S188.65 288 224 288zM416 240H32C14.33 240 0 225.67 0 208V176C0 158.33 14.33 144 32 144H416C433.67 144 448 158.33 448 176V208C448 225.67 433.67 240 416 240z" /> + <glyph glyph-name="dizzy" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM152 233.4L123.3 204.7C108.5 189.9 85.5 212.2 100.7 227.3L129.4 256L100.7 284.7C85.7 299.7 108.4 322.3 123.3 307.3L152 278.6L180.7 307.3C195.7 322.3 218.3 299.6 203.3 284.7L174.6 256L203.3 227.3C218.5 212.1 195.4 189.9 180.7 204.7L152 233.4zM248 32C212.7 32 184 60.7 184 96S212.7 160 248 160S312 131.3 312 96S283.3 32 248 32zM395.3 227.3C410.5 212.1 387.4000000000001 189.9 372.7 204.7L344 233.4L315.3 204.7C300.5 189.9 277.5 212.2 292.7 227.3L321.4 256L292.7 284.7C277.7 299.7 300.4 322.3 315.3 307.3L344 278.6L372.7 307.3C387.7 322.3 410.3 299.6 395.3 284.7L366.6 256L395.3 227.3z" /> + <glyph glyph-name="dna" + unicode="" + horiz-adv-x="448" d=" M0.1 -46.1C-1 -55.6 6.4 -63.9 16 -63.9L48.3 -64C56.4 -64 63.2 -58.1 64.3 -50.1C65 -45.2 66.1 -39 67.7 -32H380C381.6 -38.9 382.9 -45.2 383.5 -50.1C384.6 -58.1 391.4 -64.1 399.5 -64L431.8 -63.9C441.4000000000001 -63.9 448.9000000000001 -55.6 447.7 -46.1C443.1 -8.2 422.1 82.9 328.8 161.6C311.2 149.2000000000001 291.7 137.4 270.3 126.2000000000001C276.5 121.6 281.7 116.8000000000001 287.3 112.0000000000001H159.7C181 130.1000000000001 206.7 147.6000000000001 238.4 163.4C410.5 248.9 442.1 382.2 447.9 430.1C449 439.6 441.6 447.9 432 447.9L399.6 448C391.5 448 384.7000000000001 442.1 383.6 434.1C382.9000000000001 429.2 381.8 423 380.2000000000001 416H67.8C66.2 423 65.1 429.1 64.4 434.1C63.3 442.1 56.5 448.1 48.4 448L16.1 447.9C6.5 447.9 -1 439.6 0.1 430.1C5.3 387.2 31.4 276.2 160 192C31.5 107.8 5.3 -3.2 0.1 -46.1zM224 228.4C198.9 242.1 177.6 256.8 159.7 272H288.2C270.4 256.8 249.1 242 224 228.4zM355.1 352C349.3 341.6 342.3 330.9 334.1 320H114C105.7 330.9 98.7 341.6 93 352H355.1zM92.9 32C98.7 42.4 105.7 53.1 113.9 64H333.3C341.6 53.1 348.7 42.4 354.5 32H92.9z" /> + <glyph glyph-name="dollar-sign" + unicode="" + horiz-adv-x="288" d=" M209.2 214.6L101.2 246.2C88.7 249.8 80 261.5 80 274.5C80 290.8 93.2 304 109.5 304H175.8C188 304 200 300.3 210 293.5C216.1 289.4 224.3 290.4 229.5 295.5L264.3 329.5C271.4000000000001 336.4 270.4000000000001 347.9 262.5 354C238 373.2 207.4 383.9 176 384V432C176 440.8 168.8 448 160 448H128C119.2 448 112 440.8 112 432V384H109.5C45.8 384 -5.4 329.3 0.5 264.4C4.7 218.3 39.9 180.8 84.3 167.8L186.8 137.8C199.3 134.1 208 122.5 208 109.5C208 93.2 194.8 80 178.5 80H112.2C100 80 88 83.7 78 90.5C71.9 94.6 63.7 93.6 58.5 88.5L23.7 54.5C16.6 47.6 17.6 36.1 25.5 30C50 10.8 80.6 0.1 112 0V-48C112 -56.8 119.2 -64 128 -64H160C168.8 -64 176 -56.8 176 -48V0.2C222.6 1.1 266.3 28.8 281.7 72.9C303.2 134.5 267.1 197.7 209.2 214.6z" /> + <glyph glyph-name="dolly-flatbed" + unicode="" + horiz-adv-x="640" d=" M208 128H592C600.8 128 608 135.2 608 144V400C608 408.8 600.8 416 592 416H448V288L400 320L352 288V416H208C199.2 416 192 408.8 192 400V144C192 135.2 199.2 128 208 128zM624 64H128V432C128 440.8 120.8 448 112 448H16C7.2 448 0 440.8 0 432V400C0 391.2 7.2 384 16 384H64V16C64 7.2 71.2 0 80 0H162.9C161.1 -5 160 -10.4 160 -16C160 -42.5 181.5 -64 208 -64S256 -42.5 256 -16C256 -10.4 254.8 -5 253.1 0H451C449.2 -5 448.1 -10.4 448.1 -16C448.1 -42.5 469.6 -64 496.1 -64S544.1 -42.5 544.1 -16C544.1 -10.4 542.9 -5 541.2 0H624C632.8 0 640 7.2 640 16V48C640 56.8 632.8 64 624 64z" /> + <glyph glyph-name="dolly" + unicode="" + horiz-adv-x="576" d=" M294.2 170.3C312.2 165.3 328.9 156.9 343.7 145.6L505.2 199.4C513.6 202.2000000000001 518.1 211.3000000000001 515.3 219.6L454.9 400.8C452.1 409.2 443 413.7 434.7 410.9L373.6 390.5L406.7 291.1L346 271L312.9 370.4L251.3 349.9C242.9 347.1 238.4 338 241.2 329.7L294.2 170.3zM575.2 121.6L565 152C562.2 160.4 553.1 164.9 544.8 162.1L331.3 90.9C314.1 112.9 287.7 127.3 257.8 127.9L158.4 426.1C154 439.2 141.8 448 128 448H16C7.2 448 0 440.8 0 432V400C0 391.2 7.2 384 16 384H104.9L197.1 107.3C171 86.9 155.4 53.7 161.1 16.8C167.2 -22.6 199 -55.5 238.4000000000001 -62.4C298.6 -73.1 350.7000000000001 -27.6 351.8000000000001 30.2L565.1000000000001 101.4C573.4000000000001 104.2000000000001 578.0000000000001 113.2000000000001 575.2000000000002 121.6zM256 -16C229.5 -16 208 5.5 208 32S229.5 80 256 80S304 58.5 304 32S282.5 -16 256 -16z" /> + <glyph glyph-name="donate" + unicode="" + horiz-adv-x="512" d=" M256 32C370.9 32 464 125.1 464 240S370.9 448 256 448S48 354.9 48 240S141.1 32 256 32zM233.8 350.6V367.4C233.8 376.6 241.2 384 250.4 384H261.5C270.7 384 278.1 376.6 278.1 367.4V350.4C293.6 349.6 308.6 344.3 321.1 335C326.7000000000001 330.9 327.3 322.7 322.3 317.9L306 302.4C302.2 298.7000000000001 296.5 298.6 292 301.4C286.6 304.8 280.6 306.5 274.2 306.5H235.3C226.3 306.5 219 298.3 219 288.2C219 280 224 272.7 231.1 270.6L293.4 251.9C319.1 244.2 337.1 219.5 337.1 191.8C337.1 157.8 310.7 130.3 278 129.4V112.6C278 103.4 270.6 96 261.3999999999999 96H250.3C241.1 96 233.7 103.4 233.7 112.6V129.6C218.1999999999999 130.4 203.1999999999999 135.7000000000001 190.6999999999999 145C185.0999999999999 149.1 184.5 157.3 189.5 162.1L205.8 177.6C209.6 181.3 215.3 181.4 219.8 178.6C225.2 175.2000000000001 231.2 173.5 237.6 173.5H276.5C285.5 173.5 292.8 181.7 292.8 191.8C292.8 200 287.8 207.3 280.7 209.4L218.3999999999999 228.1C192.6999999999999 235.8 174.6999999999999 260.5 174.6999999999999 288.2C174.7999999999999 322.2 201.0999999999999 349.7 233.8 350.6zM480 96H447.5C427.9 70 402.9 48.3 374.5 32H438.3C443.6 32 447.9000000000001 28.4 447.9000000000001 24V8C447.9000000000001 3.6 443.6 0 438.3 0H73.6C68.3 0 64 3.6 64 8V24C64 28.4 68.3 32 73.6 32H137.4C109 48.3 84.1 70 64.4 96H32C14.3 96 0 81.7 0 64V-32C0 -49.7 14.3 -64 32 -64H480C497.7 -64 512 -49.7 512 -32V64C512 81.7 497.7 96 480 96z" /> + <glyph glyph-name="door-closed" + unicode="" + horiz-adv-x="640" d=" M624 0H512V397.2C512 425.2200000000001 490.47 448 464 448H175.99C149.52 448 127.99 425.2200000000001 127.99 397.2V0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM415.99 160C398.32 160 383.99 174.33 383.99 192S398.32 224 415.99 224S447.99 209.67 447.99 192C448 174.33 433.67 160 415.99 160z" /> + <glyph glyph-name="door-open" + unicode="" + horiz-adv-x="640" d=" M624 0H544V334.55C544 361.81 522.47 384 496 384H384V320H480V-64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM312.24 446.99L120.24 397.25C105.99 393.56 96 380.3 96 365.08V0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H352V414.82C352 436.4 332.44 452.23 312.24 446.99zM264 160C250.75 160 240 174.33 240 192S250.75 224 264 224S288 209.67 288 192S277.25 160 264 160z" /> + <glyph glyph-name="dot-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM336 192C336 147.888 300.112 112 256 112S176 147.888 176 192S211.888 272 256 272S336 236.112 336 192z" /> + <glyph glyph-name="dove" + unicode="" + horiz-adv-x="512" d=" M288 280.8V308.9C259.8 345.2 240.9 388.2 233.9 434.1C231.8 447.6 214.9 452.9 206.1 442.4000000000001C185 417.5 168.4 388.3 157.2 355.9C191.4 317.6 237.2 291.3 288 280.8zM400 384C355.8 384 320 348.1 320 303.9V244.5C215.6 250.7 127 315 87 406.2C81.5 418.7 63.8 419.4 58 407.1C41.4 372 32 332.8 32 291.4C32 220.6 66.1 154.5 117.1 105.5C130.3 92.8 143.2 82.3 156 72.7L12.1 36.7C1.4 34 -3.4 21.6 2.6 12.3C20 -14.6 63 -60.2 155.8 -64C163.8 -64.2999999999999 171.8 -61.4 177.9 -56.1L243.1 0H320C408.4 0 480 71.5 480 159.9V320L512 384H400zM400 287.9C391.2 287.9 384 295.1 384 303.9S391.2 319.9 400 319.9S416 312.7000000000001 416 303.9S408.8 287.9 400 287.9z" /> + <glyph glyph-name="download" + unicode="" + horiz-adv-x="512" d=" M216 448H296C309.3 448 320 437.3 320 424V256H407.7C425.5 256 434.4 234.5 421.8 221.9L269.7 69.7C262.2 62.2 249.9 62.2 242.4 69.7L90.1 221.9C77.5 234.5 86.4 256 104.2 256H192V424C192 437.3 202.7 448 216 448zM512 72V-40C512 -53.3 501.3 -64 488 -64H24C10.7 -64 0 -53.3 0 -40V72C0 85.3 10.7 96 24 96H170.7L219.7 47C239.8 26.9 272.2 26.9 292.3 47L341.3 96H488C501.3 96 512 85.3 512 72zM388 -16C388 -5 379 4 368 4S348 -5 348 -16S357 -36 368 -36S388 -27 388 -16zM452 -16C452 -5 443 4 432 4S412 -5 412 -16S421 -36 432 -36S452 -27 452 -16z" /> + <glyph glyph-name="drafting-compass" + unicode="" + horiz-adv-x="512" d=" M457.01 103.58C431.96 83.25 404.38 66.4 374.47 54.53L428.85 -39.66L482.8 -62.7C492.61 -66.8900000000001 503.6899999999999 -60.4900000000001 504.97 -49.9L511.99 8.35L457.0099999999999 103.58zM499.5 198.14C504.36 205.81 501.39 216.13 493.45 220.53L465.38 236.1C457.9 240.25 448.77 237.56 444.12 230.38C403.01 166.85 332.25 128 256 128C232.07 128 208.77 132.25 186.59 139.53L253.95 256.21C254.65 256.19 255.29 256 255.99 256S257.34 256.19 258.03 256.21L309.12 167.71C340.35 176.67 368.68 193.46 391.73 216.63L339.94 306.34C347.39 319.9700000000001 352 335.37 352 352C352 405.02 309.02 448 256 448S160 405.02 160 352C160 335.37 164.61 319.9700000000001 172.05 306.3400000000001L103.75 188.03C91.2 199.64 79.79 212.62 70.07 227.03C65.28 234.13 56.1 236.65 48.69 232.36L20.94 216.29C13.09 211.75 10.31 201.39 15.3 193.82C30.87 170.18 49.99 149.61 71.28 131.8L0 8.34L7.02 -49.91C8.3 -60.5 19.38 -66.9 29.19 -62.71L83.14 -39.67L153.94 82.96C186.13 70.72 220.62 64 256 64C355.05 64 446.88 115.01 499.5 198.14zM256 384C273.67 384 288 369.67 288 352S273.67 320 256 320S224 334.33 224 352S238.33 384 256 384z" /> + <glyph glyph-name="draw-polygon" + unicode="" + horiz-adv-x="448" d=" M384 96C383.65 96 383.33 95.9 382.98 95.9L343.7800000000001 161.22C348.85 170.39 352.0000000000001 180.78 352.0000000000001 192S348.8600000000001 213.61 343.7800000000001 222.78L382.98 288.1C383.3300000000001 288.0900000000001 383.6500000000001 288 384 288C419.35 288 448 316.65 448 352S419.35 416 384 416C360.37 416 339.96 403.05 328.88 384H119.12C108.04 403.05 87.63 416 64 416C28.65 416 0 387.35 0 352C0 328.37 12.95 307.9600000000001 32 296.88V87.13C12.95 76.04 0 55.63 0 32C0 -3.35 28.65 -32 64 -32C87.63 -32 108.04 -19.05 119.12 0H328.87C339.96 -19.05 360.36 -32 383.99 -32C419.3400000000001 -32 447.99 -3.35 447.99 32C448 67.35 419.35 96 384 96zM96 87.12V296.88A63.824999999999996 63.824999999999996 0 0 1 119.12 320H327.48L289.0200000000001 255.9C288.67 255.91 288.35 256 288.0000000000001 256C252.6500000000001 256 224.0000000000001 227.35 224.0000000000001 192S252.6500000000001 128 288.0000000000001 128C288.3500000000001 128 288.6700000000001 128.1 289.0200000000001 128.1L327.48 64H119.12A63.748000000000005 63.748000000000005 0 0 1 96 87.12zM272 192C272 200.82 279.18 208 288 208S304 200.82 304 192S296.82 176 288 176S272 183.18 272 192zM400 352C400 343.18 392.82 336 384 336S368 343.18 368 352S375.18 368 384 368S400 360.82 400 352zM64 368C72.82 368 80 360.82 80 352S72.82 336 64 336S48 343.18 48 352S55.18 368 64 368zM48 32C48 40.82 55.18 48 64 48S80 40.82 80 32S72.82 16 64 16S48 23.18 48 32zM384 16C375.18 16 368 23.18 368 32S375.18 48 384 48S400 40.82 400 32S392.82 16 384 16z" /> + <glyph glyph-name="drum-steelpan" + unicode="" + horiz-adv-x="576" d=" M288 416C128.94 416 0 358.69 0 288V96C0 25.31 128.94 -32 288 -32S576 25.31 576 96V288C576 358.69 447.06 416 288 416zM205.01 257.64C200.56 241.03 190.47 227.07 176.7 217.16C100.23 230.54 48 257.2200000000001 48 288C48 318.16 98.11 344.39 172.04 358.03L197.64 313.69C207.5 296.6 210.12 276.7 205.01 257.64zM288 208C266.92 208 246.59 209 227.11 210.7C235.17 236.83 259.26 256 288 256S340.83 236.83 348.89 210.7C329.4100000000001 209 309.08 208 288 208zM352 352C352 316.7100000000001 323.29 288 288 288S224 316.7100000000001 224 352V365.04C244.4 366.92 265.8 368 288 368S331.6 366.92 352 365.04V352zM398.93 217.1C385.12 227.01 374.99 241 370.5300000000001 257.64C365.42 276.7 368.04 296.6 377.9100000000001 313.68L403.56 358.1C477.72 344.5 528 318.2100000000001 528 288C528 257.17 475.6 230.46 398.93 217.1z" /> + <glyph glyph-name="drum" + unicode="" + horiz-adv-x="576" d=" M458.08 327.12L560.47 388.55C575.63 397.64 580.53 417.3 571.44 432.46C562.34 447.61 542.7 452.53 527.53 443.43L366.84 347.02A629.3200000000002 629.3200000000002 0 0 1 288 352C128.94 352 0 294.69 0 224V63.17C0 32.71 24.03 4.77 64 -17.2V79.17C64 96.77 78.4 111.17 96 111.17S128 96.77 128 79.17V-43.24C165.4 -54.37 209 -61.68 256 -63.99V47.16C256 64.7600000000001 270.4 79.16 288 79.16S320 64.7600000000001 320 47.16V-64C367 -61.69 410.6 -54.38 448 -43.25V79.16C448 96.7600000000001 462.4 111.16 480 111.16S512 96.7600000000001 512 79.16V-17.21C551.97 4.76 576 32.7 576 63.16V223.99C575.99 266.37 529.46 303.8300000000001 458.08 327.12zM288 144C155.45 144 48 179.82 48 224S155.45 304 288 304C290.34 304 292.62 303.9 294.94 303.88L207.53 251.44C192.37 242.35 187.47 222.69 196.56 207.53C206.12 191.6 226.07 187.92 240.47 196.56L403.18 294.18C477.55 280.5900000000001 528 254.26 528 223.99C528 179.81 420.54 144 288 144z" /> + <glyph glyph-name="dumbbell" + unicode="" + horiz-adv-x="640" d=" M104 352H56C42.7 352 32 341.3 32 328V224H8C3.6 224 0 220.4 0 216V168C0 163.6 3.6 160 8 160H32V56C32 42.7 42.7 32 56 32H104C117.3 32 128 42.7 128 56V328C128 341.3 117.3 352 104 352zM632 224H608V328C608 341.3 597.3 352 584 352H536C522.7 352 512 341.3 512 328V56C512 42.7 522.7 32 536 32H584C597.3 32 608 42.7 608 56V160H632C636.4 160 640 163.6 640 168V216C640 220.4 636.4 224 632 224zM456 416H408C394.7 416 384 405.3 384 392V224H256V392C256 405.3 245.3 416 232 416H184C170.7 416 160 405.3 160 392V-8C160 -21.3 170.7 -32 184 -32H232C245.3 -32 256 -21.3 256 -8V160H384V-8C384 -21.3 394.7 -32 408 -32H456C469.3 -32 480 -21.3 480 -8V392C480 405.3 469.3 416 456 416z" /> + <glyph glyph-name="edit" + unicode="" + horiz-adv-x="576" d=" M402.6 364.8L492.8 274.6C496.6 270.8 496.6 264.6 492.8 260.8L274.4 42.4L181.6 32.1C169.2 30.7 158.7 41.2 160.1 53.6L170.4 146.4L388.8 364.8C392.6 368.6 398.8 368.6 402.6 364.8zM564.6 387.7L515.8000000000001 436.5C500.6000000000001 451.7 475.9000000000001 451.7 460.6000000000001 436.5L425.2000000000001 401.1C421.4000000000001 397.3 421.4000000000001 391.1 425.2000000000001 387.3L515.4000000000001 297.1C519.2 293.3 525.4000000000001 293.3 529.2 297.1L564.6 332.5C579.8000000000001 347.8 579.8000000000001 372.5 564.6 387.7zM384 101.8V0H64V320H293.8C297 320 300 321.3 302.3 323.5L342.3 363.5C349.9000000000001 371.1 344.5 384 333.8 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V141.8C448 152.5 435.1 157.8 427.5 150.3L387.5 110.3C385.3 108 384 105 384 101.8z" /> + <glyph glyph-name="eject" + unicode="" + horiz-adv-x="448" d=" M448 64V0C448 -17.673 433.673 -32 416 -32H32C14.327 -32 0 -17.673 0 0V64C0 81.673 14.327 96 32 96H416C433.673 96 448 81.673 448 64zM48.053 128H399.939C441.5900000000001 128 463.52 177.674 435.322 208.435L259.383 400.442C240.369 421.185 207.632 421.186 188.616 400.442L12.67 208.435C-15.475 177.732 6.324 128 48.053 128z" /> + <glyph glyph-name="ellipsis-h" + unicode="" + horiz-adv-x="512" d=" M328 192C328 152.2 295.8 120 256 120S184 152.2 184 192S216.2 264 256 264S328 231.8 328 192zM432 264C392.2 264 360 231.8 360 192S392.2 120 432 120S504 152.2 504 192S471.8 264 432 264zM80 264C40.2 264 8 231.8 8 192S40.2 120 80 120S152 152.2 152 192S119.8 264 80 264z" /> + <glyph glyph-name="ellipsis-v" + unicode="" + horiz-adv-x="192" d=" M96 264C135.8 264 168 231.8 168 192S135.8 120 96 120S24 152.2 24 192S56.2 264 96 264zM24 368C24 328.2 56.2 296 96 296S168 328.2 168 368S135.8 440 96 440S24 407.8 24 368zM24 16C24 -23.8 56.2 -56 96 -56S168 -23.8 168 16S135.8 88 96 88S24 55.8 24 16z" /> + <glyph glyph-name="envelope-open-text" + unicode="" + horiz-adv-x="512" d=" M176 232H336C344.84 232 352 239.16 352 248V264C352 272.8400000000001 344.84 280 336 280H176C167.16 280 160 272.8400000000001 160 264V248C160 239.16 167.16 232 176 232zM160 152C160 143.16 167.16 136 176 136H336C344.84 136 352 143.16 352 152V168C352 176.84 344.84 184 336 184H176C167.16 184 160 176.84 160 168V152zM256 30.87C239.58 30.87 223.16 35.93 209.14 46.06L0 197.14V-16C0 -42.51 21.49 -64 48 -64H464C490.51 -64 512 -42.51 512 -16V197.14L302.86 46.06C288.8400000000001 35.94 272.42 30.87 256 30.87zM493.61 285.05C484.76 291.99 476.37 298.52 464 307.86V352C464 378.51 442.51 400 416 400H338.45C335.41 402.2 332.58 404.26 329.41 406.56C312.6 418.83 279.2 448.35 256 448C232.8 448.35 199.41 418.83 182.59 406.56C179.42 404.26 176.59 402.2 173.55 400H96C69.49 400 48 378.51 48 352V307.86C35.63 298.53 27.24 291.99 18.39 285.05A47.995 47.995 0 0 1 0 247.28V236.63L96 167.28V352H416V167.28L512 236.63V247.28C512 262.02 505.22 275.95 493.61 285.05z" /> + <glyph glyph-name="envelope-open" + unicode="" + horiz-adv-x="512" d=" M512 -16C512 -42.51 490.51 -64 464 -64H48C21.49 -64 0 -42.51 0 -16V247.276A48 48 0 0 0 18.387 285.052C43.3 304.581 63.888 320.4170000000001 182.587 406.563C199.412 418.83 232.797 448.347 256 447.997C279.198 448.351 312.596 418.825 329.413 406.564C448.1 320.427 468.716 304.569 493.613 285.052A48 48 0 0 0 512 247.276V-16zM446.334 180.605C443.771 184.333 438.634 185.2000000000001 434.995 182.512C412.15 165.639 379.533 141.807 329.413 105.433C312.588 93.167 279.2030000000001 63.652 256 64.003C232.789 63.659 199.441 93.146 182.587 105.433C132.473 141.803 99.853 165.637 77.005 182.512C73.366 185.2 68.229 184.333 65.666 180.605L56.594 167.409A7.997999999999999 7.997999999999999 0 0 1 58.433 156.442C81.32 139.543 113.887 115.752 163.736 79.574C184.01 64.793 220.26 31.761 256 32.001C291.724 31.759 327.961 64.7720000000001 348.2630000000001 79.574C398.1130000000001 115.7530000000001 430.6810000000001 139.544 453.566 156.442A7.997999999999999 7.997999999999999 0 0 1 455.405 167.409L446.334 180.605z" /> + <glyph glyph-name="envelope-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM178.117 185.896C87.429 251.713 88.353 251.879 64 270.833V296C64 309.255 74.745 320 88 320H360C373.255 320 384 309.255 384 296V270.833C359.629 251.864 360.566 251.709 269.883 185.895C259.383 178.24 238.491 159.775 224 160.001C209.497 159.783 188.633 178.228 178.117 185.896zM384 230.225V88C384 74.745 373.255 64 360 64H88C74.745 64 64 74.745 64 88V230.225C77.958 219.431 97.329 204.989 159.303 160.011C173.465 149.67 197.278 127.866 223.997 128.001C250.884 127.867 275.034 150.042 288.717 160.026C350.675 204.991 370.042 219.432 384 230.225z" /> + <glyph glyph-name="envelope" + unicode="" + horiz-adv-x="512" d=" M502.3 257.2C506.2 260.3 512 257.4 512 252.5V48C512 21.5 490.5 0 464 0H48C21.5 0 0 21.5 0 48V252.4C0 257.4 5.7 260.2000000000001 9.7 257.1C32.1 239.7 61.8 217.6 163.8 143.5C184.9 128.1 220.5 95.7 256 95.9C291.7 95.6 328 128.7 348.3 143.5C450.3 217.6 479.9 239.8 502.3 257.2zM256 128C279.2 127.6 312.6 157.2 329.4 169.4C462.1 265.7 472.2 274.1 502.8 298.1C508.6 302.6 511.9999999999999 309.6 511.9999999999999 317V336C511.9999999999999 362.5 490.4999999999999 384 463.9999999999999 384H48C21.5 384 0 362.5 0 336V317C0 309.6 3.4 302.7 9.2 298.1C39.8 274.2 49.9 265.7 182.6 169.4C199.4 157.2 232.8 127.6 256 128z" /> + <glyph glyph-name="equals" + unicode="" + horiz-adv-x="448" d=" M416 144H32C14.33 144 0 129.67 0 112V80C0 62.33 14.33 48 32 48H416C433.67 48 448 62.33 448 80V112C448 129.67 433.67 144 416 144zM416 336H32C14.33 336 0 321.67 0 304V272C0 254.33 14.33 240 32 240H416C433.67 240 448 254.33 448 272V304C448 321.67 433.67 336 416 336z" /> + <glyph glyph-name="eraser" + unicode="" + horiz-adv-x="512" d=" M497.941 174.059C516.6859999999999 192.804 516.6859999999999 223.196 497.941 241.9410000000001L337.941 401.9410000000001C319.196 420.6860000000001 288.805 420.687 270.058 401.9410000000001L14.058 145.941C-4.687 127.196 -4.687 96.804 14.058 78.059L110.058 -17.941A48.004000000000005 48.004000000000005 0 0 1 144 -32H500C506.627 -32 512 -26.627 512 -20V20C512 26.627 506.627 32 500 32H355.883L497.941 174.059zM195.314 236.6860000000001L332.687 99.3130000000001L265.373 32H150.628L70.628 112L195.314 236.686z" /> + <glyph glyph-name="euro-sign" + unicode="" + horiz-adv-x="320" d=" M310.706 34.235C309.392 40.865 302.8710000000001 45.107 296.2820000000001 43.604C285.5900000000001 41.165 268.86 38.191 250.8560000000001 38.191C194.0930000000001 38.191 148.9270000000001 72.9810000000001 129.3950000000001 123.6400000000001H243.0840000000001A12 12 0 0 1 254.7920000000001 133.009L261.165 161.369C262.851 168.8710000000001 257.146 176 249.457 176H115.22C114.01 190.328 113.806 204.287 115.357 218.245H261.95A12 12 0 0 1 273.673 227.679L280.185 257.434C281.823 264.918 276.124 272 268.462 272H130.184C150.817 316.991 192.874 347.03 247.803 347.03C262.289 347.03 276.367 344.78 285.654 342.885C291.87 341.617 298.001 345.3830000000001 299.656 351.5080000000001L311.647 395.8760000000001C313.469 402.617 309.182 409.492 302.321 410.793C290.217 413.088 270.71 416 249.635 416C152.451 416 74.03 355.748 45.075 272H12C5.373 272 0 266.627 0 260V230.245C0 223.618 5.373 218.245 12 218.245H33.569C32.56 204.638 32.388 188.958 33.388 176H12C5.373 176 0 170.627 0 164V135.64C0 129.013 5.373 123.64 12 123.64H42.114C67.139 33.308 145.264 -32 249.635 -32C275.936 -32 298.197 -27.456 310.736 -24.212C316.903 -22.617 320.763 -16.504 319.524 -10.255L310.706 34.235z" /> + <glyph glyph-name="exchange-alt" + unicode="" + horiz-adv-x="512" d=" M0 280V296C0 309.255 10.745 320 24 320H384V368C384 389.367 409.899 400.0420000000001 424.971 384.971L504.971 304.971C514.343 295.598 514.343 280.4020000000001 504.971 271.03L424.971 191.03C409.956 176.018 384 186.544 384 208V256H24C10.745 256 0 266.745 0 280zM488 128H128V176C128 197.314 102.138 208.08 87.029 192.971L7.029 112.971C-2.343 103.598 -2.343 88.402 7.029 79.03L87.029 -0.97C102.057 -15.997 128 -5.437 128 16V64H488C501.255 64 512 74.745 512 88V104C512 117.255 501.255 128 488 128z" /> + <glyph glyph-name="exclamation-circle" + unicode="" + horiz-adv-x="512" d=" M504 192C504 55.003 392.957 -56 256 -56S8 55.003 8 192C8 328.9170000000001 119.043 440 256 440S504 328.9170000000001 504 192zM256 142C230.595 142 210 121.405 210 96S230.595 50 256 50S302 70.595 302 96S281.405 142 256 142zM212.327 307.346L219.745 171.346C220.092 164.982 225.354 160 231.727 160H280.273C286.646 160 291.908 164.982 292.255 171.346L299.673 307.346C300.048 314.2200000000001 294.575 320 287.6910000000001 320H224.308C217.424 320 211.952 314.2200000000001 212.327 307.346z" /> + <glyph glyph-name="exclamation-triangle" + unicode="" + horiz-adv-x="576" d=" M569.517 7.987C587.975 -24.007 564.806 -64 527.94 -64H48.054C11.117 -64 -11.945 -23.945 6.477 7.987L246.423 424.015C264.89 456.024 311.1430000000001 455.966 329.577 424.015L569.517 7.987zM288 94C262.5950000000001 94 242 73.405 242 48S262.5950000000001 2 288 2S334 22.595 334 48S313.405 94 288 94zM244.327 259.346L251.745 123.346C252.092 116.982 257.354 112 263.727 112H312.273C318.646 112 323.908 116.982 324.255 123.346L331.673 259.346C332.048 266.2200000000001 326.575 272 319.6910000000001 272H256.3080000000001C249.4240000000001 272 243.9520000000001 266.2200000000001 244.3270000000001 259.346z" /> + <glyph glyph-name="exclamation" + unicode="" + horiz-adv-x="192" d=" M176 16C176 -28.112 140.112 -64 96 -64S16 -28.112 16 16S51.888 96 96 96S176 60.112 176 16zM25.26 422.801L38.86 150.801C39.499 138.028 50.041 128 62.83 128H129.17C141.959 128 152.501 138.028 153.14 150.801L166.74 422.801C167.425 436.51 156.496 448 142.77 448H49.23C35.504 448 24.575 436.51 25.26 422.801z" /> + <glyph glyph-name="expand-arrows-alt" + unicode="" + horiz-adv-x="448.1" d=" M448.1 104V-8C448.1 -21.3 437.4000000000001 -32 424.1 -32H312.1C290.7000000000001 -32 280 -6.1 295.1 9L331.3 45.2L224 152.4L116.8 45.1L153 9C168.1 -6.1 157.4 -32 136 -32H24C10.7 -32 0 -21.3 0 -8V104C0 125.4 25.9 136.1 41 121L77.2 84.8L184.5 192L77.2 299.3L41 263C25.9 247.9 0 258.6 0 280V392C0 405.3 10.7 416 24 416H136C157.4 416 168.1 390.1 153 375L116.8 338.8L224 231.6L331.3 338.9L295.1 375C280 390.1 290.7000000000001 416 312.1 416H424.1C437.4000000000001 416 448.1 405.3 448.1 392V280C448.1 258.6 422.2000000000001 247.9 407.1 263L370.9000000000001 299.2L263.6 192L370.9000000000001 84.7L407.1 120.9C422.2000000000001 136.1 448.1 125.4 448.1 104z" /> + <glyph glyph-name="expand" + unicode="" + horiz-adv-x="448" d=" M0 268V392C0 405.3 10.7 416 24 416H148C154.6 416 160 410.6 160 404V364C160 357.4 154.6 352 148 352H64V268C64 261.4 58.6 256 52 256H12C5.4 256 0 261.4 0 268zM288 404V364C288 357.4 293.4 352 300 352H384V268C384 261.4 389.4 256 396 256H436C442.6 256 448 261.4 448 268V392C448 405.3 437.3 416 424 416H300C293.4 416 288 410.6 288 404zM436 128H396C389.4 128 384 122.6 384 116V32H300C293.4 32 288 26.6 288 20V-20C288 -26.6 293.4 -32 300 -32H424C437.3 -32 448 -21.3 448 -8V116C448 122.6 442.6 128 436 128zM160 -20V20C160 26.6 154.6 32 148 32H64V116C64 122.6 58.6 128 52 128H12C5.4 128 0 122.6 0 116V-8C0 -21.3 10.7 -32 24 -32H148C154.6 -32 160 -26.6 160 -20z" /> + <glyph glyph-name="external-link-alt" + unicode="" + horiz-adv-x="576" d=" M576 424V296.016C576 274.555 550.04 264.0360000000001 535.029 279.045L499.322 314.754L255.799 71.231C246.426 61.858 231.231 61.858 221.858 71.231L199.231 93.858C189.858 103.231 189.858 118.427 199.231 127.799L442.756 371.324L407.053 407.029C391.9820000000001 422.1 402.656 448 424.024 448H552C565.255 448 576 437.255 576 424zM407.029 177.206L391.029 161.206A23.999000000000002 23.999000000000002 0 0 1 384 144.235V0H64V320H328A24.003 24.003 0 0 1 344.9700000000001 327.029L360.9700000000001 343.029C376.089 358.149 365.381 384 344 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V160.236C448 181.618 422.148 192.326 407.029 177.206z" /> + <glyph glyph-name="external-link-square-alt" + unicode="" + horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM360 352H248.029C226.716 352 215.949 326.139 231.058 311.029L263.042 279.0420000000001L67.515 83.515C62.829 78.829 62.829 71.231 67.515 66.544L98.544 35.515C103.231 30.829 110.829 30.829 115.515 35.515L311.041 231.041L343.029 199.05C358.058 184.023 384 194.575 384 216.021V328C384 341.255 373.255 352 360 352z" /> + <glyph glyph-name="eye-dropper" + unicode="" + horiz-adv-x="512" d=" M50.75 114.75C38.75 102.75 32 86.47 32 69.49V24L0 -32L32 -64L88 -32H133.49C150.46 -32 166.74 -25.26 178.74 -13.26L305.38 113.36L177.38 241.36L50.75 114.75zM483.88 419.88C446.41 457.38 385.6 457.38 348.13 419.88L271.04 342.79L257.94 355.89C248.5 365.33 233.29 365.2 224 355.89L183.03 314.92C173.66 305.55 173.66 290.35 183.03 280.98L344.9699999999999 119.04C354.4099999999999 109.6 369.6199999999999 109.73 378.9099999999999 119.04L419.88 160C429.25 169.37 429.25 184.57 419.88 193.94L406.78 207.04L483.87 284.13C521.38 321.61 521.38 382.39 483.88 419.88z" /> + <glyph glyph-name="eye-slash" + unicode="" + horiz-adv-x="576" d=" M286.693 56.016L319.272 9.474A333.958 333.958 0 0 0 288 8C168.19 8 63.031 71.949 6.646 167.631A47.999 47.999 0 0 0 6.646 216.37C30.669 257.136 63.559 292.145 102.67 318.907L159.747 237.368C154.736 223.18 152 207.913 152 192C152 117.264 212.135 56.718 286.693 56.016zM569.354 167.631C537.687 113.894 490.607 70.1710000000001 434.1790000000001 42.1560000000001L434.1900000000001 42.1410000000001L475.6600000000001 -17.0589999999999C483.2600000000001 -27.9189999999999 480.6200000000001 -42.8789999999999 469.7600000000001 -50.4789999999999L456.6500000000001 -59.6589999999999C445.7900000000001 -67.2589999999999 430.8300000000001 -64.6189999999999 423.2300000000001 -53.759L100.34 401.06C92.74 411.92 95.38 426.88 106.24 434.48L119.35 443.6600000000001C130.21 451.26 145.17 448.62 152.77 437.76L203.808 365.1430000000001C230.68 372.224 258.905 376 288 376C407.81 376 512.969 312.051 569.354 216.369A48.00200000000001 48.00200000000001 0 0 0 569.354 167.631zM424 192C424 267.174 363.162 328 288 328C270.061 328 252.944 324.527 237.271 318.228L256.57 291.17C282.439 299.341 311.614 297.3330000000001 336.9700000000001 283.76H336.9400000000001C313.2900000000001 283.76 294.1200000000001 264.5900000000001 294.1200000000001 240.9400000000001C294.1200000000001 217.314 313.2670000000001 198.12 336.9400000000001 198.12C360.5900000000001 198.12 379.7600000000001 217.29 379.7600000000001 240.9400000000001V240.9700000000001C398.2220000000001 206.48 396.0720000000001 163.0560000000001 371.5100000000001 130.0200000000001V130.0100000000001L390.8240000000001 102.9490000000001C411.496 126.8 424 157.926 424 192zM262.014 91.273L184.484 202.03C179.47 149.643 213.798 103.6760000000001 262.014 91.273z" /> + <glyph glyph-name="eye" + unicode="" + horiz-adv-x="576" d=" M569.354 216.369C512.969 312.051 407.81 376 288 376C168.14 376 63.004 312.006 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.031 71.949 168.19 8 288 8C407.86 8 512.996 71.994 569.354 167.631A47.997 47.997 0 0 1 569.354 216.369zM288 56C212.838 56 152 116.827 152 192C152 267.1620000000001 212.826 328 288 328C363.1620000000001 328 424 267.174 424 192C424 116.838 363.174 56 288 56zM392 192C392 134.562 345.438 88 288 88S184 134.562 184 192C184 209.708 188.431 226.379 196.236 240.973L196.235 240.941C196.235 217.29 215.408 198.118 239.059 198.118S281.883 217.291 281.883 240.941C281.883 264.592 262.71 283.765 239.059 283.765L239.027 283.764C253.621 291.569 270.292 296 288 296C345.438 296 392 249.438 392 192z" /> + <glyph glyph-name="fast-backward" + unicode="" + horiz-adv-x="512" d=" M0 12V372C0 378.6 5.4 384 12 384H52C58.6 384 64 378.6 64 372V220.1L235.5 376.6C256.1 393.7 288 379.4 288 352V220.1L459.5 376.6C480.1 393.7 512 379.4 512 352V32C512 4.6 480.1 -9.7 459.5 7.4L288 162.7V32C288 4.6 256.1 -9.7 235.5 7.4L64 162.7V12C64 5.4 58.6 0 52 0H12C5.4 0 0 5.4 0 12z" /> + <glyph glyph-name="fast-forward" + unicode="" + horiz-adv-x="512" d=" M512 372V12C512 5.4 506.6 0 500 0H460C453.4 0 448 5.4 448 12V163.9L276.5 7.4C255.9 -9.8 224 4.6 224 32V163.9L52.5 7.4C31.9 -9.8 0 4.6 0 32V352C0 379.4 31.9 393.7 52.5 376.6L224 221.2V352C224 379.4 255.9 393.7 276.5 376.6L448 221.2V372C448 378.6 453.4 384 460 384H500C506.6 384 512 378.6 512 372z" /> + <glyph glyph-name="fax" + unicode="" + horiz-adv-x="512" d=" M64 320H32C14.33 320 0 305.67 0 288V-32C0 -49.67 14.33 -64 32 -64H64C81.67 -64 96 -49.67 96 -32V288C96 305.67 81.67 320 64 320zM480 288V370.75C480 379.24 476.63 387.37 470.63 393.38L425.37 438.63C419.37 444.63 411.23 448 402.74 448H160C142.33 448 128 433.67 128 416V-32C128 -49.67 142.33 -64 160 -64H480C497.67 -64 512 -49.67 512 -32V256C512 273.67 497.67 288 480 288zM288 16C288 7.16 280.84 0 272 0H240C231.16 0 224 7.16 224 16V48C224 56.84 231.16 64 240 64H272C280.84 64 288 56.84 288 48V16zM288 144C288 135.16 280.84 128 272 128H240C231.16 128 224 135.16 224 144V176C224 184.84 231.16 192 240 192H272C280.84 192 288 184.84 288 176V144zM416 16C416 7.16 408.84 0 400 0H368C359.1600000000001 0 352 7.16 352 16V48C352 56.84 359.1600000000001 64 368 64H400C408.84 64 416 56.84 416 48V16zM416 144C416 135.16 408.84 128 400 128H368C359.1600000000001 128 352 135.16 352 144V176C352 184.84 359.1600000000001 192 368 192H400C408.84 192 416 184.84 416 176V144zM432 256H176V400H384V368C384 359.16 391.1600000000001 352 400 352H432V256z" /> + <glyph glyph-name="feather-alt" + unicode="" + horiz-adv-x="512" d=" M512 448C460.22 444.44 96.44 409.8 71.01 160.39C67.92 133.73 66.17 106.95 65.02 80.15L243.89 258.84C250.14 265.09 260.29 265.09 266.54 258.84S272.79 242.46 266.54 236.21L7.04 -23.03C-2.34 -32.4 -2.34 -47.6 7.04 -56.97C16.42 -66.3399999999999 31.63 -66.3399999999999 41.02 -56.97L98.15 0.1C140.24 0.24 182.3 2.63 224.11 7.46C277.5900000000001 12.9 321.13 33.9300000000001 356.6900000000001 64.0000000000001H255.74L402.53 112.8800000000001C413.78 127.7700000000001 423.9 143.59 432.98 160.0000000000001H351.84L458.38 213.2100000000001C500.29 315.14 510.19 421.74 512 448z" /> + <glyph glyph-name="feather" + unicode="" + horiz-adv-x="512" d=" M467.14 403.16C404.59 465.64 305.4700000000001 467.94 214.86 377.43C136.25 298.91 153.88 316.51 129.11 291.77C68.65 231.38 58.72 140.94 65.47 80.6L243.91 258.85C250.17 265.1 260.31 265.1 266.56 258.85S272.81 242.4700000000001 266.56 236.2200000000001L7.04 -23.03C-2.34 -32.4 -2.34 -47.6 7.04 -56.97C16.42 -66.3399999999999 31.64 -66.3399999999999 41.02 -56.97L107.12 9.0600000000001C159.42 -6.65 279 -9.11 353.95 64H255.76L403.33 113.14C453.32 163.07 439.71 149.32 449.64 160H351.86L483.4 203.8C528.8399999999999 278.26 517.71 352.64 467.14 403.1600000000001z" /> + <glyph glyph-name="female" + unicode="" + horiz-adv-x="256" d=" M128 448C163.346 448 192 419.346 192 384S163.346 320 128 320C92.654 320 64 348.654 64 384S92.654 448 128 448M247.283 93.821L199.283 285.8210000000001A24 24 0 0 1 176 304H164.64C141.929 293.557 115.05 293.106 91.36 304H80A24 24 0 0 1 56.717 285.8210000000001L8.717 93.821C4.935 78.695 16.383 64 32 64H88V-40C88 -53.255 98.745 -64 112 -64H144C157.255 -64 168 -53.255 168 -40V64H224C239.591 64 251.071 78.671 247.283 93.821z" /> + <glyph glyph-name="fighter-jet" + unicode="" + horiz-adv-x="640" d=" M544 224L416 240L368 256H344L227.158 404H266.667C278.3330000000001 404 288 406.625 288 410S278.3330000000001 416 266.6670000000001 416H152V404H168V240H120L53.333 320H18.667L8 309.333V240H16V224H64V221.334L0 213.334V170.667L64 162.667V160H16V144H8V74.667L18.667 64H53.334L120 144H168V-20H152V-32H266.6670000000001C278.334 -32 288 -29.375 288 -26S278.3330000000001 -20 266.6670000000001 -20H227.158L344 128H368L416 144L544 160C640 181.333 640 186.583 640 192C640 197.417 640 202.667 544 224z" /> + <glyph glyph-name="file-alt" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM288 76C288 69.4 282.6 64 276 64H108C101.4 64 96 69.4 96 76V84C96 90.6 101.4 96 108 96H276C282.6 96 288 90.6 288 84V76zM288 140C288 133.4 282.6 128 276 128H108C101.4 128 96 133.4 96 140V148C96 154.6 101.4 160 108 160H276C282.6 160 288 154.6 288 148V140zM288 212V204C288 197.4 282.6 192 276 192H108C101.4 192 96 197.4 96 204V212C96 218.6 101.4 224 108 224H276C282.6 224 288 218.6 288 212zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" /> + <glyph glyph-name="file-archive" + unicode="" + horiz-adv-x="384" d=" M224 312V448H160.4V416H128.4V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM95.9 416H127.9V384H95.9V416zM128.2 32C95 32 70.2 62.4 76.8 94.9L96.4 192V224H128.4V256H96.4V288H128.4V320H96.4V352H128.4V384H160.4V352H128.4V320H160.4V288H128.4V256H160.4V224H128.4V192H150.5C156.2 192 161.2 187.9 162.3 182.3L179.6 94.6C186 62.2000000000001 161.2 32 128.2 32zM160.9 85C160.9 70.1 146.4 58 128.5 58S96 70 96 85C96 99.9 110.5 112 128.4 112S160.9 99.9 160.9 85zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" /> + <glyph glyph-name="file-audio" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM160 44C160 33.3 147.1 28 139.5 35.5L104 72H76C69.4 72 64 77.4 64 84V140C64 146.6 69.4 152 76 152H104L139.5 188.5C147.1 196.1 160 190.7 160 180V44zM193.2 91.6C202.3 100.9 202.3 115.7000000000001 193.2 125C171.1 147.8 205.4 181.2 227.6 158.5C254.8 130.6 254.8 86.1 227.6 58.1C205.8 35.8 170.7 68.5 193.2 91.6zM279.2 208.7C333.6 152.8 333.6 63.9 279.2 7.9C257.4 -14.5 222.2 18.2 244.8 41.4C281 78.6 281.1 137.9 244.8 175.2C222.7 198 257.1 231.5 279.2 208.7zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" /> + <glyph glyph-name="file-code" + unicode="" + horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001C268.4240000000001 448 274.5290000000001 445.471 279.0300000000001 440.971L376.971 343.03A24.005 24.005 0 0 0 384 326.059zM248 288C234.8 288 224 298.8 224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248zM123.206 47.495A5.4 5.4 0 0 0 115.573 47.249L50.707 108.061A5.4 5.4 0 0 0 50.707 115.9400000000001L115.573 176.7520000000001A5.4 5.4 0 0 0 123.206 176.5060000000001L142.785 155.6210000000001A5.4 5.4 0 0 0 142.413 147.8740000000001L101.65 112L142.413 76.126A5.4 5.4 0 0 0 142.785 68.379L123.206 47.495zM174.501 -2.984L147.048 4.986A5.401999999999999 5.401999999999999 0 0 0 143.367 11.6780000000001L204.807 223.3040000000001A5.401999999999999 5.401999999999999 0 0 0 211.499 226.9850000000001L238.951 219.0150000000001A5.4 5.4 0 0 0 242.631 212.3230000000001L181.191 0.6970000000001A5.396999999999999 5.396999999999999 0 0 0 174.501 -2.9839999999999zM335.293 108.061L270.427 47.249A5.4 5.4 0 0 0 262.7940000000001 47.495L243.2140000000001 68.38A5.4 5.4 0 0 0 243.5860000000001 76.127L284.35 112L243.587 147.874A5.4 5.4 0 0 0 243.215 155.6210000000001L262.795 176.506A5.4 5.4 0 0 0 270.428 176.752L335.294 115.94A5.4 5.4 0 0 0 335.293 108.061z" /> + <glyph glyph-name="file-contract" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM64 376C64 380.42 67.58 384 72 384H152C156.42 384 160 380.42 160 376V360C160 355.58 156.42 352 152 352H72C67.58 352 64 355.58 64 360V376zM64 312C64 316.42 67.58 320 72 320H152C156.42 320 160 316.42 160 312V296C160 291.5800000000001 156.42 288 152 288H72C67.58 288 64 291.5800000000001 64 296V312zM256.81 64H304C312.84 64 320 56.84 320 48S312.84 32 304 32H256.81C240.36 32 225.54 41.14 218.17 55.86C215.22 61.78 210.08 62.38 208 62.38S200.78 61.79 197.98 56.19L190.31 40.85A15.986 15.986 0 0 0 176 32.0100000000001C175.62 32.0100000000001 175.25 32.03 174.8600000000001 32.0600000000001C168.4100000000001 32.5100000000001 162.8600000000001 36.8100000000001 160.8300000000001 42.95L144 93.41L133.39 61.53C127.5 43.87 111.01 32 92.39 32H80C71.16 32 64 39.16 64 48S71.16 64 80 64H92.39C97.22 64 101.5 67.08 103.03 71.66L121.22 126.3C124.52 136.11 133.66 142.71 144 142.71S163.48 136.1200000000001 166.77 126.3L180.65 84.66C200.42 100.85 234.7 94.36 246.65 70.5C248.67 66.44 252.61 64 256.81 64zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343z" /> + <glyph glyph-name="file-download" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM300.45 100.64L204.03 4.94C197.38 -1.67 186.64 -1.67 179.99 4.94L83.57 100.64C73.42 110.71 80.54 128 94.82 128H160V208C160 216.84 167.16 224 176 224H208C216.84 224 224 216.84 224 208V128H289.18C303.46 128 310.58 110.71 300.45 100.64zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343z" /> + <glyph glyph-name="file-excel" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM284.1 205.5L224 112L284.1 18.5C289.2000000000001 10.5 283.5 0 274 0H239.1C234.7 0 230.6 2.4 228.5 6.3C208.9 42.5 192 75 192 75C185.6 60.2 182 55 155.4 6.2C153.3 2.3 149.3 -0.1 144.9 -0.1H110C100.5 -0.1 94.8 10.4 99.9 18.4L160.2 111.9L99.9 205.4C94.7 213.4 100.5 223.9 110 223.9H144.8C149.2 223.9 153.3 221.5 155.4 217.6C181.5 168.8 175.4 184 192 149.1C192 149.1 198.1 160.8 228.6 217.6C230.7 221.5 234.8 223.9 239.2 223.9H274C283.5 224 289.2 213.5 284.1 205.5zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" /> + <glyph glyph-name="file-export" + unicode="" + horiz-adv-x="576" d=" M384 326.1C384 332.4 381.5 338.5 377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1zM192 112V144C192 152.84 199.16 160 208 160H384V288H248C234.8 288 224 298.8 224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V96H208C199.16 96 192 103.16 192 112zM571.05 140.02L475.35 236.45C465.29 246.59 447.99 239.46 447.99 225.18V160H384V96H447.99V30.82C447.99 16.54 465.28 9.41 475.35 19.55L571.0500000000001 115.97C577.6500000000001 122.6300000000001 577.6500000000001 133.37 571.0500000000001 140.0200000000001z" /> + <glyph glyph-name="file-image" + unicode="" + horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001A24 24 0 0 0 279.029 440.971L376.9700000000001 343.03A24.002000000000002 24.002000000000002 0 0 0 384 326.059zM248 288C234.8 288 224 298.8 224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248zM112.545 272C139.055 272 160.545 250.51 160.545 224S139.055 176 112.545 176S64.545 197.49 64.545 224S86.036 272 112.545 272zM320.545 32H64.545L65.03 80.485L104.545 120C109.231 124.686 116.344 124.201 121.03 119.515L160.545 80L264.06 183.515C268.746 188.201 276.344 188.201 281.031 183.515L320.545 144V32z" /> + <glyph glyph-name="file-import" + unicode="" + horiz-adv-x="512" d=" M16 160C7.16 160 0 152.84 0 144V112C0 103.16 7.16 96 16 96H128V160H16zM352 312V448H152C138.7 448 128 437.3 128 424V160H255.99V225.18C255.99 239.46 273.2800000000001 246.59 283.35 236.45L379.05 140.02C385.6500000000001 133.37 385.6500000000001 122.63 379.05 115.98L283.35 19.5599999999999C273.29 9.42 255.99 16.55 255.99 30.8299999999999V96H128V-40C128 -53.3 138.7 -64 152 -64H488C501.3 -64 512 -53.3 512 -40V288H376C362.8 288 352 298.8 352 312zM505 343L407.1 441C402.6 445.5 396.5 448 390.1 448H384V320H512V326.1C512 332.4 509.5 338.5 505 343z" /> + <glyph glyph-name="file-invoice-dollar" + unicode="" + horiz-adv-x="384" d=" M377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM64 376C64 380.42 67.58 384 72 384H152C156.42 384 160 380.42 160 376V360C160 355.58 156.42 352 152 352H72C67.58 352 64 355.58 64 360V376zM64 296V312C64 316.42 67.58 320 72 320H152C156.42 320 160 316.42 160 312V296C160 291.5800000000001 156.42 288 152 288H72C67.58 288 64 291.5800000000001 64 296zM208 32.12V8C208 3.58 204.42 0 200 0H184C179.58 0 176 3.58 176 8V32.29C164.71 32.87 153.73 36.81 144.63 43.64C140.73 46.5700000000001 140.53 52.41 144.06 55.78L155.81 66.99C158.58 69.63 162.7 69.75 165.94 67.72C169.81 65.3 174.2 64 178.76 64H206.87C213.37 64 218.67 69.92 218.67 77.19C218.67 83.14 215.06 88.38 209.9 89.92L164.9 103.42C146.31 109 133.32 126.84 133.32 146.81C133.32 171.33 152.37 191.25 175.99 191.88V216C175.99 220.42 179.57 224 183.99 224H199.99C204.41 224 207.99 220.42 207.99 216V191.71C219.28 191.13 230.26 187.2 239.36 180.36C243.26 177.43 243.46 171.59 239.93 168.22L228.18 157.01C225.41 154.37 221.29 154.25 218.05 156.28C214.18 158.71 209.79 160 205.23 160H177.12C170.62 160 165.32 154.08 165.32 146.81C165.32 140.86 168.93 135.62 174.09 134.08L219.09 120.58C237.68 115 250.67 97.16 250.67 77.19C250.67 52.66 231.62 32.75 208 32.12z" /> + <glyph glyph-name="file-invoice" + unicode="" + horiz-adv-x="384" d=" M288 192H96V128H288V192zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM64 376C64 380.42 67.58 384 72 384H152C156.42 384 160 380.42 160 376V360C160 355.58 156.42 352 152 352H72C67.58 352 64 355.58 64 360V376zM64 312C64 316.42 67.58 320 72 320H152C156.42 320 160 316.42 160 312V296C160 291.5800000000001 156.42 288 152 288H72C67.58 288 64 291.5800000000001 64 296V312zM320 8C320 3.58 316.42 0 312 0H232C227.58 0 224 3.58 224 8V24C224 28.42 227.58 32 232 32H312C316.42 32 320 28.42 320 24V8zM320 208V112C320 103.16 312.84 96 304 96H80C71.16 96 64 103.16 64 112V208C64 216.84 71.16 224 80 224H304C312.84 224 320 216.84 320 208z" /> + <glyph glyph-name="file-medical-alt" + unicode="" + horiz-adv-x="448" d=" M288 312V448H88C74.7 448 64 437.3 64 424V192H8C3.6 192 0 188.4 0 184V168C0 163.6 3.6 160 8 160H148.9C151.9 160 154.7 158.3 156.1 155.6L176 115.8L232.8 229.5C235.7 235.4 244.2 235.4 247.1 229.5L281.8 160H352C360.8 160 368 152.8 368 144S360.8 128 352 128H262.1L240 172.2L183.2 58.5C180.3 52.6 171.8 52.6 168.9 58.5L134.1 128H64V-40C64 -53.3 74.7 -64 88 -64H424C437.3 -64 448 -53.3 448 -40V288H312C298.8 288 288 298.8 288 312zM441 343L343.1 441C338.6 445.5 332.5 448 326.1 448H320V320H448V326.1C448 332.4 445.5 338.5 441 343z" /> + <glyph glyph-name="file-medical" + unicode="" + horiz-adv-x="384" d=" M377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM288 152V104C288 99.6 284.4 96 280 96H224V40C224 35.6 220.4 32 216 32H168C163.6 32 160 35.6 160 40V96H104C99.6 96 96 99.6 96 104V152C96 156.4 99.6 160 104 160H160V216C160 220.4 163.6 224 168 224H216C220.4 224 224 220.4 224 216V160H280C284.4 160 288 156.4 288 152z" /> + <glyph glyph-name="file-pdf" + unicode="" + horiz-adv-x="384" d=" M181.9 191.9C176.9 207.9 177 238.8 179.9 238.8C188.3 238.8 187.5 201.9 181.9 191.9zM180.2 144.7C172.5 124.5 162.9 101.4 151.8 82C170.1 89 190.8 99.2 214.7 103.9C202 113.5 189.8 127.3 180.2 144.7zM86.1 19.9C86.1 19.1 99.3 25.3 121 60.1C114.3 53.8 91.9 35.6 86.1 19.9zM248 288H384V-40C384 -53.3 373.3 -64 360 -64H24C10.7 -64 0 -53.3 0 -40V424C0 437.3 10.7 448 24 448H224V312C224 298.8 234.8 288 248 288zM240 116.2C220 128.4 206.7 145.2 197.3 170C201.8 188.5 208.9 216.6 203.5 234.2C198.8 263.6 161.1 260.7 155.7 241C150.7 222.7 155.3 196.9 163.8 164C152.2 136.4 135.1 99.4 123 78.2C122.9 78.2 122.9 78.1 122.8 78.1C95.7 64.2 49.2 33.6 68.3 10.1C73.9 3.2 84.3 0.1 89.8 0.1C107.7 0.1 125.5 18.1 150.9 61.9C176.7 70.4 205 81 229.9 85.1C251.6 73.3 277 65.6 293.9 65.6C323.1 65.6 325.1 97.6 313.6 108.9999999999999C299.7 122.6 259.3 118.6999999999999 240 116.1999999999999zM377 343L279 441C274.5 445.5 268.4 448 262 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM302.9 87.7C307 90.4 300.4 99.6 260.1 96.7C297.2 80.9 302.9 87.7 302.9 87.7z" /> + <glyph glyph-name="file-powerpoint" + unicode="" + horiz-adv-x="384" d=" M193.7 176.8C202.5 176.8 209.2 174.1 214 168.7C223.6 157.8 223.8 136 213.8 124.6C208.9 119 201.9 116.1 192.7 116.1H165.8V176.8H193.7zM377 343L279 441C274.5 445.5 268.4 448 262 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM277 146.8C277 56.5 188.2 69.2000000000001 165.9 69.2000000000001V12C165.9 5.4 160.5 0 153.9 0H123.1C116.5 0 111.1 5.4 111.1 12V211.8C111.1 218.4 116.5 223.8 123.1 223.8H204.1C248.6 223.8 277 191 277 146.8z" /> + <glyph glyph-name="file-prescription" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM292.53 132.52L303.84 121.21C310.09 114.96 310.09 104.83 303.84 98.58L273.94 68.68L304 38.62C310.25 32.37 310.25 22.24 304 15.99L292.69 4.68C286.44 -1.57 276.31 -1.57 270.06 4.68L240 34.75L209.94 4.69C203.69 -1.56 193.56 -1.56 187.31 4.69L176 16C169.75 22.25 169.75 32.38 176 38.63L206.06 68.69L146.74 128H128V80C128 71.16 120.84 64 112 64H96C87.16 64 80 71.16 80 80V240C80 248.84 87.16 256 96 256H176C211.35 256 240 227.35 240 192C240 167.78 226.38 146.95 206.54 136.08L240 102.62L269.9 132.52C276.15 138.77 286.28 138.77 292.53 132.52zM176 176H128V208H176C184.82 208 192 200.82 192 192S184.82 176 176 176zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" /> + <glyph glyph-name="file-signature" + unicode="" + horiz-adv-x="576" d=" M218.17 23.86C215.22 29.78 210.08 30.38 208 30.38S200.78 29.79 197.98 24.19L190.31 8.85C183.94 -3.9299999999999 165.28 -2.52 160.83 10.94L144 61.41L133.39 29.53C127.5 11.87 111.01 0 92.39 0H80C71.16 0 64 7.16 64 16S71.16 32 80 32H92.39C97.22 32 101.5 35.08 103.03 39.66L121.22 94.3C124.52 104.11 133.66 110.71 144 110.71S163.48 104.1200000000001 166.77 94.3L180.65 52.66C200.4 68.85 234.71 62.36 246.65 38.5C248.54 34.72 252.14 32.55 256.01 32.24V114.36L384.01 241.45V288H248C234.8 288 224 298.8 224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V0L256 0.11C239.88 0.42 225.42 9.39 218.17 23.86zM384 326.1C384 332.4 381.5 338.5 377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1zM288 101.04V32H356.99L518.6700000000001 194.78L450.7900000000001 262.66L288 101.04zM568.54 280.67L536.67 312.54C526.7299999999999 322.48 510.6 322.48 500.66 312.54L473.41 285.29L541.29 217.41L568.54 244.66C578.49 254.6 578.49 270.73 568.54 280.67z" /> + <glyph glyph-name="file-upload" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM289.18 95.99H224V15.99C224 7.15 216.84 -0.01 208 -0.01H176C167.16 -0.01 160 7.15 160 15.99V95.99H94.82C80.54 95.99 73.41 113.28 83.55 123.35L179.97 219.05C186.62 225.6600000000001 197.36 225.6600000000001 204.01 219.05L300.43 123.35C310.58 113.28 303.46 95.99 289.18 95.99zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343z" /> + <glyph glyph-name="file-video" + unicode="" + horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001C268.4240000000001 448 274.5290000000001 445.471 279.0300000000001 440.971L376.971 343.03A24.005 24.005 0 0 0 384 326.059zM224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248C234.8 288 224 298.8 224 312zM320 167.984V56.0210000000001C320 34.5760000000001 294.057 24.0230000000001 279.029 39.0500000000001L224 94.059V56C224 42.745 213.255 32 200 32H88C74.745 32 64 42.745 64 56V168C64 181.255 74.745 192 88 192H200C213.255 192 224 181.255 224 168V129.941L279.029 184.954C294.04 199.964 320 189.445 320 167.984z" /> + <glyph glyph-name="file-word" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM281.1 192H305C312.7 192 318.4 184.9 316.7 177.3L278.7 9.3C277.5 3.8 272.6 0 267 0H229C223.5 0 218.7 3.8 217.4 9.1C191.6 112.6 196.6 90.3 191.8 119.6H191.3C190.2 105.3 188.9 102.2000000000001 165.7 9.1C164.4 3.8 159.6 0 154.1 0H117C111.4 0 106.5 3.9 105.3 9.4L67.5 177.4C65.8 184.9 71.5 192 79.2 192H103.7C109.4 192 114.4 188 115.5 182.3C131.1 104.3 135.6 72.8 136.5 60.1C138.1 70.3 143.8 92.8 165.9 182.8C167.2 188.2 172 191.9 177.6 191.9H206.7C212.3 191.9 217.1 188.1 218.4 182.7000000000001C242.4 82.3000000000001 247.2 58.7000000000001 248 53.3000000000001C247.8 64.5000000000001 245.4 71.1000000000001 269.6 182.5000000000001C270.6 188.1000000000001 275.5 192.0000000000001 281.1 192.0000000000001zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" /> + <glyph glyph-name="file" + unicode="" + horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" /> + <glyph glyph-name="fill-drip" + unicode="" + horiz-adv-x="576" d=" M512 128S448 35.35 448 0C448 -35.35 476.66 -64 512 -64S576 -35.35 576 0S512 128 512 128zM502.63 230.94L294.94 438.63C288.69 444.88 280.5 448 272.31 448S255.93 444.88 249.69 438.63L168.11 357.05L81.93 443.24C75.68 449.49 65.55 449.49 59.31 443.24L36.69 420.62C30.45 414.37 30.45 404.24 36.69 398L122.88 311.82L28.12 217.06C-9.37 179.58 -9.37 118.8 28.12 81.31L145.31 -35.88C164.05 -54.62 188.62 -64 213.18 -64C237.75 -64 262.31 -54.63 281.05 -35.88L502.62 185.69C515.12 198.19 515.12 218.44 502.63 230.94zM386.41 159.97H65.93C67.29 163.81 69.5 167.9500000000001 73.36 171.8L86.51 184.95L168.12 266.56L226.72 207.96C239.21 195.47 259.4700000000001 195.47 271.96 207.96S284.45 240.71 271.96 253.2L213.36 311.8L272.31 370.75L434.75 208.31L386.41 159.97z" /> + <glyph glyph-name="fill" + unicode="" + horiz-adv-x="512" d=" M502.63 230.94L294.94 438.63C288.69 444.88 280.5 448 272.31 448S255.93 444.88 249.69 438.63L168.11 357.05L81.93 443.23C75.69 449.48 65.55 449.48 59.31 443.23L36.69 420.62C30.45 414.37 30.45 404.24 36.69 397.99L122.88 311.81L28.12 217.05C-9.37 179.56 -9.37 118.79 28.12 81.3L145.31 -35.89C164.06 -54.63 188.62 -64.01 213.18 -64.01C237.75 -64.01 262.31 -54.64 281.06 -35.89L502.63 185.68C515.12 198.18 515.12 218.44 502.63 230.94zM386.41 159.97H65.93C67.29 163.81 69.5 167.9500000000001 73.36 171.8L86.51 184.95L168.12 266.56L226.73 207.96C239.2200000000001 195.47 259.48 195.47 271.9700000000001 207.96C284.4600000000001 220.45 284.4600000000001 240.71 271.9700000000001 253.2L213.36 311.8L272.31 370.75L434.76 208.31L386.41 159.97z" /> + <glyph glyph-name="film" + unicode="" + horiz-adv-x="512" d=" M488 384H480V364C480 357.4 474.6 352 468 352H428C421.4 352 416 357.4 416 364V384H96V364C96 357.4 90.6 352 84 352H44C37.4 352 32 357.4 32 364V384H24C10.7 384 0 373.3 0 360V24C0 10.7 10.7 0 24 0H32V20C32 26.6 37.4 32 44 32H84C90.6 32 96 26.6 96 20V0H416V20C416 26.6 421.4 32 428 32H468C474.6 32 480 26.6 480 20V0H488C501.3 0 512 10.7 512 24V360C512 373.3 501.3 384 488 384zM96 76C96 69.4 90.6 64 84 64H44C37.4 64 32 69.4 32 76V116C32 122.6 37.4 128 44 128H84C90.6 128 96 122.6 96 116V76zM96 172C96 165.4 90.6 160 84 160H44C37.4 160 32 165.4 32 172V212C32 218.6 37.4 224 44 224H84C90.6 224 96 218.6 96 212V172zM96 268C96 261.4 90.6 256 84 256H44C37.4 256 32 261.4 32 268V308C32 314.6 37.4 320 44 320H84C90.6 320 96 314.6 96 308V268zM368 60C368 53.4 362.6 48 356 48H156C149.4 48 144 53.4 144 60V156C144 162.6 149.4 168 156 168H356C362.6 168 368 162.6 368 156V60zM368 228C368 221.4 362.6 216 356 216H156C149.4 216 144 221.4 144 228V324C144 330.6 149.4 336 156 336H356C362.6 336 368 330.6 368 324V228zM480 76C480 69.4 474.6 64 468 64H428C421.4 64 416 69.4 416 76V116C416 122.6 421.4 128 428 128H468C474.6 128 480 122.6 480 116V76zM480 172C480 165.4 474.6 160 468 160H428C421.4 160 416 165.4 416 172V212C416 218.6 421.4 224 428 224H468C474.6 224 480 218.6 480 212V172zM480 268C480 261.4 474.6 256 468 256H428C421.4 256 416 261.4 416 268V308C416 314.6 421.4 320 428 320H468C474.6 320 480 314.6 480 308V268z" /> + <glyph glyph-name="filter" + unicode="" + horiz-adv-x="512" d=" M487.976 448H24.028C2.71 448 -8.047 422.134 7.058 407.029L192 222.059V16C192 8.169 195.821 0.83 202.237 -3.662L282.237 -59.642C298.02 -70.69 320 -59.493 320 -39.98V222.059L504.947 407.029C520.021 422.104 509.338 448 487.976 448z" /> + <glyph glyph-name="fingerprint" + unicode="" + horiz-adv-x="512" d=" M256.12 202.04C242.87 202.04 232.12 191.3 232.12 178.04C233.26 105.79 223.98 36.14 204.42 -33.51C201.69 -43.2300000000001 206.57 -64 227.54 -64C238.02 -64 247.6500000000001 -57.08 250.63 -46.48C264.1600000000001 1.43 281.67 78.93 280.11 178.04C280.12 191.29 269.38 202.04 256.12 202.04zM255.26 283.77C194 283.8400000000001 151.25 236.7 152.1 182.68C152.85 134.74 148.35 86.77 138.73 40.13C136.04 27.15 144.4 14.44 157.37 11.77C170.42 9.1 183.04 17.43 185.73 30.41C196.07 80.5 200.9 131.99 200.1 183.43C199.69 209.38 220.0200000000001 235.92 254.55 235.77C285.86 235.3 311.7 210.43 312.17 180.3C312.94 132.25 309.36 83.97 301.56 36.7499999999999C299.39 23.6899999999999 308.25 11.3299999999999 321.32 9.17C341.29 5.84 348.13 24.27 348.9 28.9399999999999C357.18 78.9699999999999 360.96 130.1499999999999 360.17 181.05C359.29 236.85 312.23 282.93 255.26 283.77zM144.57 303.55C134.27 311.89 119.2 310.35 110.81 300.07C85.19 268.57 71.42 228.79 72.06 188.07C72.65 150.49 69.59 112.8 62.95 76.02C60.61 62.97 69.26 50.49 82.31 48.13C102.42 44.63 109.38 62.94 110.2 67.49C117.39 107.33 120.7 148.15 120.06 188.82C119.59 218.7 129.26 246.7 148.06 269.79C156.41 280.07 154.85 295.18 144.57 303.55zM254.04 365.88C238.63 366.29 223.17 364.44 208.26 360.91C195.37 357.85 187.39 344.93 190.43 332.02C193.49 319.13 206.43 311.19 219.32 314.19C230.37 316.8 241.79 317.9600000000001 253.32 317.88C328.75 316.75 391.05 256.38 392.2 183.3C392.79 145.42 390.92 107.1899999999999 386.62 69.67C385.12 56.4999999999999 394.57 44.59 407.73 43.09C424.4500000000001 41.14 433.24 54.97 434.31 64.2A929.06 929.06 0 0 1 440.2 184.05C438.64 282.8 355.13 364.38 254.04 365.88zM506.11 244.43C503.25 257.35 490.6 265.63 477.5 262.7C464.56 259.84 456.38 247.04 459.24 234.09C463.95 212.68 464.15 196.68 463.94 172.49C463.83 159.22 474.49 148.4 487.74 148.29H487.94C501.11 148.29 511.83 158.9 511.94 172.09C512.12 194.27 512.34 216.2 506.11 244.43zM465.99 335.15C417.29 404.54 337.6 446.71 252.81 447.98C183.02 448.82 118.47 423.09 70.46 375.06C24.09 328.63 -0.9 266.9600000000001 0.14 201.35L0.02 179.88C-0.37 166.63 10.05 155.57 23.3 155.19C23.53 155.17 23.78 155.17 24.02 155.17C36.94 155.17 47.61 165.47 47.99 178.47L48.15 202.11C47.32 254.61 67.31 303.9700000000001 104.43 341.11C143.19 379.9100000000001 195.77 400.7800000000001 252.11 399.9700000000001C321.56 398.94 386.8400000000001 364.4100000000001 426.73 307.5800000000001C434.3400000000001 296.7200000000001 449.29 294.13 460.15 301.7200000000001C470.99 309.3400000000001 473.61 324.31 465.99 335.15z" /> + <glyph glyph-name="fire-extinguisher" + unicode="" + horiz-adv-x="448" d=" M434.027 421.671L266.027 393.671C254.693 391.782 256 380.2 256 376H197.668C208.353 411.892 181.446 448 144 448C104.565 448 77.632 408.324 91.772 371.7970000000001C39.733 358.746 16.391 317.584 1.723 280.913C-3.2 268.606 2.786 254.639 15.093 249.716C27.41 244.79 41.372 250.791 46.289 263.086C75.058 335.01 106.964 328 168 328V300.924C126.457 290.062 96 251.689 96 206.795V-40C96 -53.255 106.745 -64 120 -64H264C277.255 -64 288 -53.255 288 -40V208C288 252.731 257.404 290.312 216 300.9700000000001V328H256C256 325.026 254.297 312.284 266.027 310.329L434.027 282.329C441.342 281.11 448 286.75 448 294.166V409.834C448 417.25 441.342 422.89 434.027 421.671zM144 376C135.178 376 128 383.178 128 392S135.178 408 144 408S160 400.822 160 392S152.822 376 144 376z" /> + <glyph glyph-name="fire" + unicode="" + horiz-adv-x="384" d=" M216 424.142C216 447.944 185.347 456.907 171.851 437.18C48 256.149 224 248 224 160C224 124.371 194.886 95.542 159.15 96.006C123.98 96.462 96 125.78 96 160.954V246.464C96 268.1670000000001 69.529 278.689 54.568 262.968C27.801 234.842 0 186.668 0 128C0 22.131 86.131 -64 192 -64S384 22.131 384 128C384 298.29 216 321.003 216 424.142z" /> + <glyph glyph-name="first-aid" + unicode="" + horiz-adv-x="576" d=" M0 368V16C0 -10.5 21.5 -32 48 -32H96V416H48C21.5 416 0 394.5 0 368zM128 -32H448V416H128V-32zM192 216C192 220.4 195.6 224 200 224H256V280C256 284.4 259.6 288 264 288H312C316.4 288 320 284.4 320 280V224H376C380.4 224 384 220.4 384 216V168C384 163.6 380.4 160 376 160H320V104C320 99.6 316.4 96 312 96H264C259.6 96 256 99.6 256 104V160H200C195.6 160 192 163.6 192 168V216zM528 416H480V-32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416z" /> + <glyph glyph-name="fish" + unicode="" + horiz-adv-x="576" d=" M327.1 352C237.13 352 158.56 297.23 114.83 250.37L27.5 316.42C15.37 325.6 -2.74 315.82 0.36 301.76L24.54 192L0.35 82.23C-2.75 68.17 15.36 58.4 27.49 67.57L114.82 133.62C158.55 86.77 237.13 32 327.1 32C464.56 32 576 160 576 192S464.56 352 327.1 352zM414.5300000000001 168C401.2800000000001 168 390.5300000000001 178.75 390.5300000000001 192C390.5300000000001 205.26 401.2800000000001 216 414.5300000000001 216C427.79 216 438.5300000000001 205.26 438.5300000000001 192C438.5300000000001 178.75 427.7800000000001 168 414.5300000000001 168z" /> + <glyph glyph-name="flag-checkered" + unicode="" + horiz-adv-x="512" d=" M466.515 381.072C487.731 390.926 512 375.449 512 352.056V108.956C512 98.43 506.839 88.549 498.157 82.598C462.32 58.034 423.822 41.74 375.652 41.74C308.279 41.74 264.022 76.523 210.435 76.523C159.582 76.523 124.311 66.465 96 54.401V-40C96 -53.255 85.255 -64 72 -64H56C42.745 -64 32 -53.255 32 -40V346.055C17.497 356.175 8 372.974 8 392C8 423.704 34.345 449.254 66.338 447.952C94.806 446.794 118.117 423.984 119.889 395.548C120.409 387.206 119.079 379.238 116.303 371.986C137.039 379.616 159.393 384 184.348 384C251.721 384 295.978 349.217 349.5650000000001 349.217C390.0610000000001 349.217 432.177 365.123 466.515 381.072zM96 313.37V242.88C125 253.55 147.18 260.71 169.6 263.79V335.36C146.1 333.19 129.16 325.57 96 313.37zM316.8 304.18C290.3830000000001 308.852 266.914 318.159 243.2 325.52V258.1C267.375 251.3940000000001 290.766 241.6560000000001 316.8 235.79V304.18zM169.6 263.79V193.75C202.396 196.728 223.51 194.385 243.2 189.95V258.1C217.953 265.135 196.619 267.523 169.6 263.79zM243.2 121.5600000000001C269.538 116.9080000000001 292.932 107.633 316.8 100.2200000000001V167.6300000000001C292.523 174.3760000000001 269.26 184.0800000000001 243.2 189.9500000000001V121.5600000000001zM96 105.9C119.62 114.29 143.79 119.74 169.6 122.46V193.75C143.49 191.4 122.24 185.71 96 176.39V105.9zM464 327.5C442.7 318.65 417.41 309.86 390.4 305.03V233.12C417.71 237.48 440.43 247.22 464 257.01V327.5zM464 117.54V188.03C441.81 173.83 415.2200000000001 165.42 390.4 162.01V90.43C415.47 92.81 438.89 101.47 464 117.54zM316.8 235.79V167.63C342.464 160.496 363.416 158.288 390.4 162.01V233.12C364.401 228.933 340.457 230.444 316.8 235.79z" /> + <glyph glyph-name="flag" + unicode="" + horiz-adv-x="512" d=" M349.565 349.217C295.978 349.217 251.721 384 184.348 384C159.393 384 137.039 379.616 116.303 371.987A55.947 55.947 0 0 1 119.889 395.549C118.117 423.985 94.806 446.794 66.338 447.952C34.345 449.254 8 423.704 8 392C8 372.974 17.497 356.175 32 346.055V-40C32 -53.255 42.745 -64 56 -64H72C85.255 -64 96 -53.255 96 -40V54.4C124.311 66.464 159.582 76.522 210.435 76.522C264.023 76.522 308.279 41.739 375.6520000000001 41.739C423.8210000000001 41.739 462.3190000000001 58.033 498.157 82.597C506.84 88.548 512 98.429 512 108.955V352.055C512 375.448 487.731 390.925 466.515 381.071C432.177 365.123 390.061 349.217 349.565 349.217z" /> + <glyph glyph-name="flask" + unicode="" + horiz-adv-x="448" d=" M437.2 44.5L320 233V384H328C341.3 384 352 394.7 352 408V424C352 437.3 341.3 448 328 448H120C106.7 448 96 437.3 96 424V408C96 394.7 106.7 384 120 384H128V233L10.8 44.5C-18.5 -2.6 15.3 -64 70.9 -64H377.1C432.8 -64 466.5 -2.5 437.2000000000001 44.5zM137.9 128L186.1 205.6C189.8 210.8 191.9 217.2 191.9 224V384H255.9000000000001V224C255.9000000000001 217.1 258.1 210.8 261.7000000000001 205.6L309.9000000000001 128H137.9z" /> + <glyph glyph-name="flushed" + unicode="" + horiz-adv-x="496" d=" M344 248C330.7 248 320 237.3 320 224S330.7 200 344 200S368 210.7 368 224S357.3 248 344 248zM152 248C138.7 248 128 237.3 128 224S138.7 200 152 200S176 210.7 176 224S165.3 248 152 248zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM80 224C80 263.8 112.2 296 152 296S224 263.8 224 224S191.8 152 152 152S80 184.2 80 224zM312 48H184C162.8 48 162.8 80 184 80H312C333.2 80 333.2 48 312 48zM344 152C304.2 152 272 184.2 272 224S304.2 296 344 296S416 263.8 416 224S383.8 152 344 152z" /> + <glyph glyph-name="folder-minus" + unicode="" + horiz-adv-x="512" d=" M464 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320zM368 152C368 143.16 360.84 136 352 136H160C151.16 136 144 143.16 144 152V168C144 176.84 151.16 184 160 184H352C360.84 184 368 176.84 368 168V152z" /> + <glyph glyph-name="folder-open" + unicode="" + horiz-adv-x="576" d=" M572.694 155.907L500.27 31.752A63.99699999999999 63.99699999999999 0 0 0 444.989 0H45.025C26.502 0 14.961 20.093 24.294 36.093L96.718 160.2480000000001A64 64 0 0 0 152 192H551.9639999999999C570.487 192 582.0279999999999 171.907 572.694 155.907zM152 224H480V272C480 298.51 458.51 320 432 320H272L208 384H48C21.49 384 0 362.51 0 336V57.954L69.077 176.372C86.214 205.75 117.989 224 152 224z" /> + <glyph glyph-name="folder-plus" + unicode="" + horiz-adv-x="512" d=" M464 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320zM368 152C368 143.16 360.84 136 352 136H280V64C280 55.16 272.84 48 264 48H248C239.16 48 232 55.16 232 64V136H160C151.16 136 144 143.16 144 152V168C144 176.84 151.16 184 160 184H232V256C232 264.8400000000001 239.16 272 248 272H264C272.84 272 280 264.8400000000001 280 256V184H352C360.84 184 368 176.84 368 168V152z" /> + <glyph glyph-name="folder" + unicode="" + horiz-adv-x="512" d=" M464 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320z" /> + <glyph glyph-name="font" + unicode="" + horiz-adv-x="448" d=" M152 32H127.987L154.573 112.782H292.8L319.386 32H296C287.163 32 280 24.837 280 16V-16C280 -24.837 287.163 -32 296 -32H432C440.837 -32 448 -24.837 448 -16V16C448 24.837 440.837 32 432 32H405.261L275.495 405.254A16 16 0 0 1 260.382 416H187.616A16 16 0 0 1 172.503 405.254L42.739 32H16C7.163 32 0 24.837 0 16V-16C0 -24.837 7.163 -32 16 -32H152C160.837 -32 168 -24.837 168 -16V16C168 24.837 160.837 32 152 32zM216.353 303.778C220.701 318.9940000000001 222.963 331.9340000000001 223.939 338.4220000000001C224.778 331.901 226.878 318.9460000000001 231.6660000000001 303.716L273.0010000000001 179.71H174.382L216.353 303.778z" /> + <glyph glyph-name="football-ball" + unicode="" + horiz-adv-x="496" d=" M481.5 387.7C476.7 405.9 462.4 420.2 444.2 425.1C420.3 431.5 383 439.1 339.4 440L496 283.2C495.2 326.7 487.8 363.8 481.5 387.7zM14.5 -3.7C19.3 -21.9 33.6 -36.2 51.8 -41.1C75.7 -47.4999999999999 113 -55.1 156.6 -55.9999999999999L0 100.8C0.8 57.3 8.2 20.2 14.5 -3.7zM4.2 164.6L220.4 -52C352.9 -32.6 469.2 66.7 491.9 219.4L275.6 436C143.1 416.6 26.8 317.3 4.2 164.6zM321.5 288.2000000000001C324.6 291.3 329.7 291.3 332.8 288.2000000000001L344.1 276.9C347.2000000000001 273.8 347.2000000000001 268.7000000000001 344.1 265.6L315.8 237.3L344.1 209C347.2000000000001 205.9 347.2000000000001 200.8 344.1 197.7L332.8 186.4C329.7 183.3 324.6 183.3 321.5 186.4L293.2 214.7L270.6 192L298.9 163.7C302 160.6 302 155.5 298.9 152.4L287.6 141.1C284.5 138 279.4 138 276.3 141.1L248 169.4L225.4 146.8L253.7 118.5C256.8 115.3999999999999 256.8 110.3 253.7 107.1999999999999L242.4 95.8999999999999C239.3 92.7999999999999 234.2 92.7999999999999 231.1 95.8999999999999L202.8 124.1999999999999L174.5 95.8999999999999C171.4 92.7999999999999 166.3 92.7999999999999 163.2 95.8999999999999L151.9 107.1999999999999C148.8 110.3 148.8 115.3999999999999 151.9 118.5L180.2 146.8L151.9 175C148.8 178.1 148.8 183.1999999999999 151.9 186.3L163.2 197.6C166.3 200.7 171.4 200.7 174.5 197.6L202.8 169.3L225.4 191.9L197.1 220.2C194 223.3 194 228.4 197.1 231.5L208.4 242.8C211.5 245.9 216.6 245.9 219.7 242.8L248 214.5L270.6 237.1L242.3 265.4C239.2 268.5 239.2 273.6 242.3 276.7000000000001L253.6 288C256.7000000000001 291.1 261.8 291.1 264.9000000000001 288L293.2000000000001 259.7000000000001L321.5000000000001 288.2000000000001z" /> + <glyph glyph-name="forward" + unicode="" + horiz-adv-x="512" d=" M500.5 216.6L308.5 376.6C287.9 393.7 256 379.4 256 352V32C256 4.6 287.9 -9.8 308.5 7.4L500.5 167.4C515.8 180.2 515.8 203.8 500.5 216.6zM244.5 216.6L52.5 376.6C31.9 393.7 0 379.4 0 352V32C0 4.6 31.9 -9.8 52.5 7.4L244.5 167.4C259.8 180.2 259.8 203.8 244.5 216.6z" /> + <glyph glyph-name="frog" + unicode="" + horiz-adv-x="576" d=" M446.53 350.57C439.67 387.77 407.19 416 368 416C328.77 416 296.28 387.71 289.46 350.46C126.75 335.04 -0.5 197.88 0 31.02C0.11 -3.9 29.08 -32 64 -32H368C376.84 -32 384 -24.84 384 -16C384 1.67 369.67 16 352 16H272.51L308.31 64.33C332.45 100.56 318.6600000000001 152.61 274.6 170.93C250.7100000000001 180.86 223.05 175.5799999999999 202.36 160.05L169.6 135.46C162.54 130.15 152.51 131.55 147.19 138.65C141.89 145.73 143.31 155.76 150.38 161.06L185.16 187.15C222 214.81 273.4400000000001 214.77 310.29 187.15C321.1600000000001 179 356.1600000000001 148.09 351.0900000000001 93.94L469.62 -32H560C568.84 -32 576 -24.84 576 -16C576 1.67 561.67 16 544 16H490.37L391.85 120.68L546.29 207.33A58.15999999999999 58.15999999999999 0 0 1 576 258.06C576 279.4600000000001 564.28 299.01 545.52 309.29C504.96 331.51 446.53 350.57 446.53 350.57zM368 312C354.74 312 344 322.75 344 336C344 349.26 354.74 360 368 360C381.25 360 392 349.26 392 336C392 322.75 381.25 312 368 312z" /> + <glyph glyph-name="frown-open" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM136 240C136 257.7 150.3 272 168 272S200 257.7 200 240S185.7 208 168 208S136 222.3 136 240zM323.3 56.7C292.1 66.3 263.9000000000001 72 248 72S203.9 66.3 172.7 56.7C161.2 53.2 150.2 63 152.2 74.8C159.2 114.8 212.3 136 248 136S336.8 114.7 343.8 74.8C345.8 62.9 334.7 53.2 323.3 56.7zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" /> + <glyph glyph-name="frown" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 272C345.7 272 360 257.7 360 240S345.7 208 328 208S296 222.3 296 240S310.3 272 328 272zM168 272C185.7 272 200 257.7 200 240S185.7 208 168 208S136 222.3 136 240S150.3 272 168 272zM338.2 53.8C315.8 80.6 282.9 96 248 96S180.2 80.6 157.8 53.8C144.3 37.5 119.7 58 133.2 74.3C161.7 108.4 203.6 128 248 128S334.3 108.4 362.7 74.2C376.3 58 351.7 37.5 338.2 53.8z" /> + <glyph glyph-name="funnel-dollar" + unicode="" + horiz-adv-x="640" d=" M433.46 282.06L534.66 393.93C554.61 413.88 540.48 448 512.26 448H31.74C3.52 448 -10.61 413.88 9.34 393.93L192 192V36.08C192 23.4900000000001 197.93 11.64 208 4.08L287.99 -55.92C308.85 -71.5599999999999 336.4600000000001 -62.89 347.2100000000001 -42.35C310.8 -7.38 288 41.65 288 96C288 185.79 350.05 261.17 433.4600000000001 282.06zM480 256C391.63 256 320 184.37 320 96S391.63 -64 480 -64S640 7.63 640 96S568.37 256 480 256zM496 16.12V0C496 -4.42 492.42 -8 488 -8H472C467.58 -8 464 -4.42 464 0V16.29C452.71 16.87 441.73 20.81 432.63 27.64C428.73 30.5700000000001 428.53 36.41 432.06 39.78L443.81 50.99C446.58 53.63 450.7 53.75 453.94 51.72C457.81 49.3 462.2 48 466.76 48H494.87C501.37 48 506.67 53.92 506.67 61.19C506.67 67.14 503.06 72.38 497.9 73.92L452.9 87.42C434.3100000000001 93 421.3200000000001 110.84 421.3200000000001 130.81C421.3200000000001 155.33 440.3700000000001 175.25 463.9900000000001 175.88V192C463.9900000000001 196.42 467.5700000000001 200 471.9900000000001 200H487.9900000000001C492.4100000000001 200 495.9900000000001 196.42 495.9900000000001 192V175.71C507.2800000000001 175.13 518.2600000000001 171.2 527.36 164.36C531.26 161.43 531.46 155.59 527.9300000000001 152.22L516.1800000000001 141.01C513.4100000000001 138.37 509.2900000000001 138.25 506.0500000000001 140.28C502.1800000000001 142.71 497.7900000000001 144 493.2300000000001 144H465.1200000000001C458.6200000000001 144 453.3200000000001 138.08 453.3200000000001 130.81C453.3200000000001 124.86 456.9300000000001 119.62 462.09 118.08L507.09 104.58C525.6800000000001 99 538.6700000000001 81.16 538.6700000000001 61.19C538.6700000000001 36.66 519.6300000000001 16.75 496.0000000000001 16.12z" /> + <glyph glyph-name="futbol" + unicode="" + horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM456 192L455.997 192.282L429.933 169.541L367.254 228.041L383.7080000000001 312.396L418.011 309.324C393.122 343.54 358.007 369.413 317.302 382.4650000000001L330.9530000000001 350.526L256 309L181.047 350.525L194.698 382.464C154.067 369.436 118.918 343.594 93.989 309.323L128.554 312.396L144.746 228.041L82.068 169.541L56.004 192.282L56.001 192C56.001 148.985 69.498 108.048 94.473 74.009L102.177 107.906L187.315 97.459L223.616 19.633L193.714 1.847C233.916 -11.275 278.004 -11.301 318.286 1.847L288.384 19.633L324.685 97.4590000000001L409.823 107.9060000000001L417.527 74.0090000000001C442.503 108.048 456 148.985 456 192zM207.898 122.429L178.004 213.741L256 270.2680000000001L333.996 213.741L304.374 122.429H207.898z" /> + <glyph glyph-name="gamepad" + unicode="" + horiz-adv-x="640" d=" M480 352H160C71.6 352 0 280.4 0 192S71.6 32 160 32C204.8 32 245.2 50.4 274.2 80H365.7C394.7 50.4 435.2 32 479.9 32C568.3 32 639.9 103.6 639.9 192S568.4 352 480 352zM256 172C256 165.4 250.6 160 244 160H192V108C192 101.4 186.6 96 180 96H140C133.4 96 128 101.4 128 108V160H76C69.4 160 64 165.4 64 172V212C64 218.6 69.4 224 76 224H128V276C128 282.6 133.4 288 140 288H180C186.6 288 192 282.6 192 276V224H244C250.6 224 256 218.6 256 212V172zM440 104C413.5 104 392 125.5 392 152S413.5 200 440 200S488 178.5 488 152S466.5 104 440 104zM520 184C493.5 184 472 205.5 472 232S493.5 280 520 280S568 258.5 568 232S546.5 184 520 184z" /> + <glyph glyph-name="gas-pump" + unicode="" + horiz-adv-x="512" d=" M336 0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H336C344.8 -64 352 -56.8 352 -48V-16C352 -7.2 344.8 0 336 0zM493.2 340.7L412.2 421.7C406 427.9 395.8 427.9 389.6 421.7L378.3 410.4C372.1 404.2 372.1 394 378.3 387.8L416 350.1V288C416 259.9 436.9 236.7 464 232.8V72C464 58.8 453.2 48 440 48S416 58.8 416 72V104C416 152.6 376.6 192 328 192H320V384C320 419.3 291.3 448 256 448H96C60.7 448 32 419.3 32 384V32H320V144H328C350.1 144 368 126.1 368 104V76.2C368 38.5 395 4.2 432.5 0.3C475.5 -4.0000000000001 512 29.8 512 71.9999999999999V295.4C512 312.4 505.2 328.7 493.2 340.7zM256 256H96V384H256V256z" /> + <glyph glyph-name="gavel" + unicode="" + horiz-adv-x="512" d=" M504.971 248.638L482.344 271.265C472.971 280.6380000000001 457.775 280.6380000000001 448.403 271.265L442.7460000000001 265.608L329.608 378.745L335.265 384.402C344.638 393.775 344.638 408.971 335.265 418.343L312.638 440.971C303.265 450.344 288.069 450.344 278.697 440.971L154.246 316.52C144.873 307.1470000000001 144.873 291.951 154.246 282.579L176.873 259.952C186.246 250.579 201.442 250.579 210.814 259.952L216.471 265.6090000000001L256.069 226.011L175.029 144.971L169.372 150.628C156.875 163.125 136.614 163.125 124.117 150.628L9.373 35.882C-3.124 23.385 -3.124 3.124 9.373 -9.373L54.628 -54.628C67.125 -67.125 87.386 -67.125 99.883 -54.628L214.628 60.117C227.125 72.614 227.125 92.875 214.628 105.372L208.971 111.029L290.011 192.069L329.6090000000001 152.471L323.9520000000001 146.814C314.5790000000001 137.441 314.5790000000001 122.245 323.9520000000001 112.8730000000001L346.5790000000001 90.246C355.9520000000001 80.8730000000001 371.1480000000001 80.8730000000001 380.5200000000001 90.246L504.9710000000001 214.697C514.3430000000001 224.069 514.3430000000001 239.2650000000001 504.9710000000001 248.6380000000001z" /> + <glyph glyph-name="gem" + unicode="" + horiz-adv-x="576" d=" M485.5 448L576 288H474.9L405.7 448H485.5zM357.5 448L426.7 288H149.3L218.5 448H357.5zM90.5 448H170.3L101.1 288H0L90.5 448zM0 256H100.7L223.7 4.3C225.2 1.2 221 -1.6 218.7 1L0 256zM148.2 256H427.8L290.8 -62.2C289.8 -64.6 286.3 -64.6 285.3 -62.2L148.2 256zM352.3 4.3L475.3 256H576L357.3 1.1C355 -1.6 350.8 1.2 352.3 4.3z" /> + <glyph glyph-name="genderless" + unicode="" + horiz-adv-x="288" d=" M144 272C188.1 272 224 236.1 224 192S188.1 112 144 112S64 147.9 64 192S99.9 272 144 272M144 336C64.5 336 0 271.5 0 192S64.5 48 144 48S288 112.5 288 192S223.5 336 144 336z" /> + <glyph glyph-name="gift" + unicode="" + horiz-adv-x="512" d=" M32 0C32 -17.7 46.3 -32 64 -32H224V128H32V0zM480 288H437.9C444.1 300.1 448 313.5 448 328C448 376.5 408.5 416 360 416C318.4 416 291.5 394.7 257 347.7C222.5 394.7 195.6 416 154 416C105.5 416 66 376.5 66 328C66 313.5 69.8 300.1 76.1 288H32C14.3 288 0 273.7 0 256V176C0 167.2 7.2 160 16 160H496C504.8 160 512 167.2 512 176V256C512 273.7 497.7 288 480 288zM153.9 288C131.8 288 113.9 305.9 113.9 328S131.8 368 153.9 368C173.8 368 188.5 364.7 240 288H153.9zM360 288H273.9C325.3 364.5 339.6 368 360 368C382.1 368 400 350.1 400 328S382.1 288 360 288zM288 -32H448C465.7 -32 480 -17.7 480 0V128H288V-32z" /> + <glyph glyph-name="glass-martini-alt" + unicode="" + horiz-adv-x="512" d=" M502.05 390.4C523.3 411.66 508.25 448 478.2 448H33.8C3.75 448 -11.3 411.66 9.95 390.4L224 176.36V-16H168C145.91 -16 128 -33.91 128 -56C128 -60.42 131.58 -64 136 -64H376C380.42 -64 384 -60.42 384 -56C384 -33.91 366.09 -16 344 -16H288V176.36L502.05 390.4zM443.77 400L395.77 352H116.24L68.24 400H443.77z" /> + <glyph glyph-name="glass-martini" + unicode="" + horiz-adv-x="512" d=" M502.05 390.4C523.3 411.66 508.25 448 478.2 448H33.8C3.75 448 -11.3 411.66 9.95 390.4L224 176.36V-16H168C145.91 -16 128 -33.91 128 -56C128 -60.42 131.58 -64 136 -64H376C380.42 -64 384 -60.42 384 -56C384 -33.91 366.09 -16 344 -16H288V176.36L502.05 390.4z" /> + <glyph glyph-name="glasses" + unicode="" + horiz-adv-x="576" d=" M574.1 167.63L528.75 349.3400000000001C522.84 373.04 507.16 393.39 485.75 405.15C464.31 416.88 438.78 419.26 415.56 411.48L400.31 406.4C391.92 403.61 387.39 394.54 390.19 386.1600000000001L395.25 370.98C398.04 362.6 407.1 358.0700000000001 415.48 360.86L428.6600000000001 365.25C439.5300000000001 368.87 451.66 368.82 461.8200000000001 363.52C472.1100000000001 358.15 479.39 348.9600000000001 482.1900000000001 337.7000000000001L520.6500000000001 183.88C498.4600000000001 190.69 470.8600000000001 196.34 439.4500000000001 196.34C404.6800000000001 196.34 365.4700000000001 189.32 324.6000000000002 169.6H251.4200000000002C210.5500000000001 189.34 171.3400000000002 196.35 136.5600000000001 196.35C105.1400000000001 196.35 77.5400000000001 190.7000000000001 55.3500000000001 183.8900000000001L93.8100000000001 337.7200000000001C96.6000000000001 348.9700000000001 103.9000000000001 358.1700000000001 114.1900000000001 363.5300000000001C124.3500000000001 368.8300000000001 136.4700000000001 368.8800000000001 147.3400000000001 365.2600000000001L160.5100000000001 360.8700000000001C168.8900000000001 358.0800000000001 177.9500000000001 362.6100000000001 180.7400000000001 370.9900000000001L185.8000000000001 386.1700000000001C188.6000000000001 394.5500000000001 184.0700000000001 403.6200000000001 175.6800000000001 406.4100000000001L160.4300000000001 411.4900000000001C137.2100000000001 419.2700000000001 111.6800000000001 416.9000000000001 90.2400000000001 405.1600000000001C68.8300000000001 393.3900000000001 53.1500000000001 373.0500000000001 47.2400000000001 349.3600000000001L1.9 167.63A64.218 64.218 0 0 1 0 152.14V81.89C0 18.99 51.58 -32 115.2 -32H152.32C212.6 -32 262.69 13.94 267.2 73.37L270.13 112H305.88L308.81 73.37C313.31 13.94 363.4 -32 423.68 -32H460.8C524.42 -32 576 18.99 576 81.88V152.13C576 157.36 575.36 162.56 574.1 167.63zM203.38 78.21C201.41 52.3 178.98 32 152.32 32H115.2C86.97 32 64 54.38 64 81.89V119.43C82.12 125.92 107.42 132.35 136.58 132.35C160.44 132.35 183.84 128.0200000000001 206.51 119.43L203.38 78.21zM512 81.88C512 54.37 489.03 32 460.8 32H423.68C397.01 32 374.58 52.3 372.62 78.21L369.49 119.43C392.1600000000001 128.0199999999999 415.57 132.35 439.44 132.35C468.56 132.35 493.87 125.91 511.99 119.42V81.8799999999999z" /> + <glyph glyph-name="globe-africa" + unicode="" + horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM408 224.5V217.57C408 211.7 404.68 206.33 399.43 203.71L384.04 196.01A15.485 15.485 0 0 0 368.5100000000001 196.98L350.3000000000001 209.12A15.519999999999998 15.519999999999998 0 0 1 336.8000000000001 210.93L334.1500000000001 210.05C324.4500000000001 206.82 320.4900000000001 195.26 326.1600000000001 186.75L339.4000000000001 166.89C342.2700000000001 162.58 347.1100000000001 159.99 352.2900000000001 159.99H360.5000000000001C369.0600000000001 159.99 376.0000000000001 153.05 376.0000000000001 144.49V133.15C376.0000000000001 129.8 374.9100000000001 126.53 372.9000000000001 123.85L354.1600000000001 98.87C352.74 96.97 351.7700000000001 94.77 351.3300000000001 92.44L347.0300000000001 69.61C346.4100000000001 66.32 344.74 63.32 342.2700000000001 61.05A159.60800000000003 159.60800000000003 0 0 1 317.2700000000001 31.89L304.2400000000001 12.34A27.756 27.756 0 0 0 281.1500000000001 -0.02C270.6400000000001 -0.02 261.0300000000001 5.92 256.3300000000001 15.3199999999999A78.902 78.902 0 0 0 248.0000000000001 50.61V80.5C248.0000000000001 89.06 241.0600000000001 96 232.5000000000001 96H206.6200000000001C192.1300000000001 96 178.2400000000001 101.76 167.9900000000001 112A54.65899999999999 54.65899999999999 0 0 0 151.9900000000001 150.63V164.69C151.9900000000001 181.88 160.0900000000001 198.07 173.8400000000001 208.39L201.4200000000001 229.08A54.663 54.663 0 0 0 234.2000000000001 240.01H235.0900000000001C243.5700000000001 240.01 251.9400000000001 238.04 259.5200000000001 234.24L274.2400000000001 226.88C277.9200000000001 225.04 282.1700000000001 224.74 286.0700000000001 226.04L333.3800000000001 241.81C339.7100000000001 243.92 343.9800000000001 249.84 343.9800000000001 256.51C343.9800000000001 265.07 337.0400000000001 272.01 328.4800000000001 272.01H318.3900000000001C314.2800000000001 272.01 310.3400000000001 273.64 307.4300000000001 276.55L300.5100000000001 283.4699999999999A15.493 15.493 0 0 1 289.5500000000002 288.01H199.5C190.94 288.01 184 294.95 184 303.51V307.91C184 315.02 188.84 321.2199999999999 195.74 322.95L210.19 326.56C213.93 327.5 217.19 329.79 219.33 333L227.41 345.1099999999999C230.28 349.42 235.12 352.01 240.3 352.01H264.51C273.07 352.01 280.01 358.95 280.01 367.51V389.2099999999999C359.23 376.37 422.86 316.98 441.93 240H423.5C414.94 240 408 233.06 408 224.5z" /> + <glyph glyph-name="globe-americas" + unicode="" + horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM330.29 82.4C326.3900000000001 78.52 322.3 74.45 318.98 71.12C315.99 68.12 313.88 64.42 312.81 60.41C311.3 54.75 310.08 49.03 308.04 43.54L290.6500000000001 -3.31C276.8900000000001 -6.31 262.6500000000001 -8 248.0000000000001 -8V19.38C249.6900000000001 32 240.3600000000001 55.64 225.3700000000001 70.63C219.37 76.63 216 84.77 216 93.26V125.27C216 136.91 209.73 147.61 199.54 153.24C185.17 161.19 164.73 172.3 150.73 179.35C139.25 185.13 128.63 192.49 119.08 201.1L118.28 201.82A114.792 114.792 0 0 0 100.22 222.56C90.84 236.3300000000001 75.56 258.98 65.63 273.7000000000001C86.1 319.2000000000001 122.99 355.7400000000001 168.83 375.5900000000001L192.84 363.5800000000001C203.48 358.26 216 365.99 216 377.89V389.19C223.99 390.48 232.12 391.3 240.39 391.61L268.69 363.31C274.94 357.06 274.94 346.93 268.69 340.68L264 336L253.66 325.66C250.54 322.54 250.54 317.4700000000001 253.66 314.35L258.35 309.66C261.4700000000001 306.54 261.4700000000001 301.4700000000001 258.35 298.35L250.35 290.35A8.008 8.008 0 0 0 244.6900000000001 288.01H235.7C233.62 288.01 231.62 287.2 230.12 285.74L220.2 276.09A8.008 8.008 0 0 1 218.62 266.78L234.21 235.59C236.87 230.27 233 224.01 227.06 224.01H221.42C219.49 224.01 217.63 224.71 216.18 225.97L206.9 234.03A16.017 16.017 0 0 1 191.35 237.13L160.18 226.74A11.95 11.95 0 0 1 152.01 215.4C152.01 210.87 154.57 206.74 158.62 204.71L169.7000000000001 199.17C179.1100000000001 194.46 189.4900000000001 192.01 200.0100000000001 192.01S222.6000000000001 164.72 232.0100000000001 160.01H298.7600000000001C307.2500000000001 160.01 315.3800000000001 156.64 321.3900000000001 150.64L335.0800000000001 136.95A30.503000000000004 30.503000000000004 0 0 0 344.0100000000001 115.38A46.536 46.536 0 0 0 330.29 82.4zM417 173.75C411.21 175.2 406.1600000000001 178.75 402.85 183.72L384.87 210.69A23.97 23.97 0 0 0 384.87 237.3100000000001L404.46 266.6900000000001C406.78 270.1600000000001 409.96 272.98 413.7 274.8400000000001L426.68 281.3300000000001C440.2 254.41 448 224.13 448 192C448 183.33 447.26 174.84 446.18 166.46L417 173.75z" /> + <glyph glyph-name="globe-asia" + unicode="" + horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM236.66 199.77C233.77 194.95 228.56 192 222.94 192H222.63C218.39 192 214.32 190.31 211.32 187.31L205.66 181.65C202.54 178.53 202.54 173.46 205.66 170.34L211.32 164.68C214.32 161.68 216.01 157.61 216.01 153.37V144C216.01 135.16 208.85 128 200.01 128H193.9C187.84 128 182.3 131.42 179.59 136.85L156.97 182.0800000000001C154.53 186.96 148.02 188.0200000000001 144.16 184.16L124.69 164.7000000000001C121.69 161.7000000000001 117.62 160.0100000000001 113.38 160.0100000000001H50.81C49.12 170.45 48 181.08 48 192C48 302.28 137.72 392 248 392C269.51 392 290.2 388.49 309.63 382.18L259.4700000000001 343.65C254.36 340.24 254.8400000000001 332.5900000000001 260.3300000000001 329.8400000000001L271.1600000000001 324.43C276.5800000000001 321.7200000000001 280 316.18 280 310.12V232C280 227.58 276.42 224 272 224H268.94C265.9100000000001 224 263.14 225.71 261.79 228.42C260.23 231.54 255.83 231.71 254.0300000000001 228.72L236.6600000000001 199.77zM408 89.57C408 85.33 406.31 81.26 403.31 78.26L393.74 68.69C390.74 65.69 386.67 64 382.43 64H367.27C363.03 64 358.96 65.69 355.96 68.69L342.95 81.7A26.767 26.767 0 0 1 317.53 88.74L296.26 83.42C294.99 83.1 293.69 82.94 292.38 82.94H282.04C277.8 82.94 273.73 84.63 270.73 87.63L258.82 99.54A8.008 8.008 0 0 0 256.48 105.2000000000001V115.4C256.48 118.67 258.4700000000001 121.61 261.51 122.8300000000001L300.85 138.5700000000001C302.8300000000001 139.3600000000001 304.7100000000001 140.3900000000001 306.44 141.6200000000001L330.15 158.5100000000001A7.978 7.978 0 0 0 334.79 159.9900000000001H346.88C350.11 159.9900000000001 353.0299999999999 158.0500000000001 354.2699999999999 155.0600000000001L359.62 142.21A4 4 0 0 1 363.31 139.7500000000001H367.11C368.89 139.7500000000001 370.46 140.9300000000001 370.95 142.6300000000001L375.1499999999999 157.1000000000001C375.6499999999999 158.8100000000001 377.2099999999999 159.9800000000001 378.9899999999999 159.9800000000001H385.0499999999999C387.2599999999999 159.9800000000001 389.0499999999999 158.1900000000001 389.0499999999999 155.9800000000001V143.0500000000001C389.0499999999999 140.9300000000001 389.8899999999999 138.8900000000001 391.3899999999999 137.3900000000001L403.2999999999999 125.48C406.2999999999999 122.48 407.9899999999999 118.41 407.9899999999999 114.17V89.57z" /> + <glyph glyph-name="globe" + unicode="" + horiz-adv-x="496" d=" M336.5 288C322 377.3 287.8 440 248 440S174 377.3 159.5 288H336.5zM152 192C152 169.8 153.2 148.5 155.3 128H340.6C342.7000000000001 148.5 343.9000000000001 169.8 343.9000000000001 192S342.7000000000001 235.5 340.6 256H155.3C153.2 235.5 152 214.2 152 192zM476.7 288C448.1 355.9 390.2 408.4 318.7 429.6C343.1 395.8 359.9 344.9 368.7 288H476.7zM177.2 429.6C105.8 408.4 47.8 355.9 19.3 288H127.3C136 344.9 152.8 395.8 177.2 429.6zM487.4 256H372.7C374.8 235 376 213.5 376 192S374.8 149 372.7 128H487.3C492.8 148.5 495.9 169.8 495.9 192S492.8 235.5 487.4 256zM120 192C120 213.5 121.2 235 123.3 256H8.6C3.2 235.5 0 214.2 0 192S3.2 148.5 8.6 128H123.2C121.2 149 120 170.5 120 192zM159.5 96C174 6.7 208.2 -56 248 -56S322 6.7 336.5 96H159.5zM318.8 -45.6C390.2000000000001 -24.4 448.2000000000001 28.1 476.8 96H368.8C360 39.1 343.2 -11.8 318.8 -45.6zM19.3 96C47.9 28.1 105.8 -24.4 177.3 -45.6C152.9 -11.8 136.1 39.1 127.3 96H19.3z" /> + <glyph glyph-name="golf-ball" + unicode="" + horiz-adv-x="416" d=" M96 32H320C320 14.3 305.7 0 288 0H272C254.3 0 240 -14.3 240 -32V-52C240 -58.6 234.6 -64 228 -64H188C181.4 -64 176 -58.6 176 -52V-32C176 -14.3 161.7 0 144 0H128C110.3 0 96 14.3 96 32zM416 240C416 165.8 377 100.8 318.5 64H97.5C39 100.8 0 165.8 0 240C0 354.9 93.1 448 208 448S416 354.9 416 240zM235.9 196.1C254.2 196.1 269 210.9 269 229.2C269 243.6 259.7 255.5 246.9 260.1C256.5 233.3 231.3 208.8 205 218.2C209.6 205.4 221.5 196.1 235.9 196.1zM285 149.2C285 163.6 275.7 175.5 262.9 180.1C272.5 153.3 247.3 128.8 221 138.2C225.6 125.4 237.5 116.1 251.9 116.1C270.2 116.1 285 131 285 149.2zM349 213.2C349 227.6 339.7 239.5 326.9 244.1C336.5 217.3 311.3 192.8 285 202.2C289.6 189.4 301.5 180.1 315.9 180.1C334.2 180.1 349 195 349 213.2z" /> + <glyph glyph-name="gopuram" + unicode="" + horiz-adv-x="512" d=" M496 96H480V208C480 216.84 472.84 224 464 224H448V304C448 312.8400000000001 440.84 320 432 320H416V432C416 440.84 408.84 448 400 448S384 440.84 384 432V416H320V432C320 440.84 312.84 448 304 448S288 440.84 288 432V416H224V432C224 440.84 216.84 448 208 448S192 440.84 192 432V416H128V432C128 440.84 120.84 448 112 448S96 440.84 96 432V320H80C71.16 320 64 312.8400000000001 64 304V224H48C39.16 224 32 216.84 32 208V96H16C7.16 96 0 88.84 0 80V-48C0 -56.84 7.16 -64 16 -64H96V96H128V224H160V320H192V224H160V96H128V-64H208V16C208 24.84 215.16 32 224 32H288C296.84 32 304 24.84 304 16V-64H384V96H352V224H320V320H352V224H384V96H416V-64H496C504.84 -64 512 -56.84 512 -48V80C512 88.84 504.84 96 496 96zM224 96V160C224 168.84 231.16 176 240 176H272C280.84 176 288 168.84 288 160V96H224zM232 224V272C232 280.8400000000001 239.16 288 248 288H264C272.84 288 280 280.8400000000001 280 272V224H232z" /> + <glyph glyph-name="graduation-cap" + unicode="" + horiz-adv-x="640" d=" M622.34 294.8L343.4 380.5C328.2 385.17 311.8 385.17 296.61 380.5L17.66 294.8C-5.88 287.5700000000001 -5.88 256.44 17.66 249.21L66.29 234.27C55.62 221.08 49.06 204.99 48.41 187.37C38.78 181.85 32 171.89 32 160C32 149.22 37.68 140.15 45.86 134.35L20.33 19.47C18.11 9.48 25.71 0 35.94 0H92.05C102.29 0 109.89 9.48 107.67 19.47L82.14 134.35C90.32 140.15 96 149.22 96 160C96 171.57 89.53 181.25 80.34 186.87C81.1 201.89 88.78 215.17 101.03 223.59L296.6 163.5C305.6600000000001 160.72 323.04 157.25 343.3900000000001 163.5L622.34 249.2C645.89 256.44 645.89 287.56 622.34 294.8zM352.79 132.91C324.26 124.15 299.9500000000001 128.99 287.2000000000001 132.91L142.18 177.46L128 64C128 28.65 213.96 0 320 0S512 28.65 512 64L497.82 177.47L352.79 132.91z" /> + <glyph glyph-name="greater-than-equal" + unicode="" + horiz-adv-x="448" d=" M55.22 340.31L230.78 272.2200000000001L55.34 204.17C36.95 198.14 27.46 179.78 34.14 163.17L46.23 133.09C52.91 116.48 73.22 107.9 91.61 113.9400000000001L393.02 233.8C406.79 238.32 416 250.4100000000001 416 263.9700000000001V279.9300000000001C416 293.49 406.79 305.5800000000001 393.02 310.1L91.3 430.08C73.01 436.08 52.79 427.55 46.15 411.02L34.12 381.1C27.48 364.57 36.93 346.31 55.22 340.31zM424 48H24C10.75 48 0 37.26 0 24V-24C0 -37.25 10.75 -48 24 -48H424C437.25 -48 448 -37.25 448 -24V24C448 37.26 437.25 48 424 48z" /> + <glyph glyph-name="greater-than" + unicode="" + horiz-adv-x="384" d=" M365.52 238.15L59.22 380.99C43.16 388.48 24.07 381.53 16.58 365.4700000000001L3.01 336.39C-4.48 320.33 2.47 301.24 18.53 293.75L236.96 191.9L18.49 90.01C2.47 82.54 -4.46 63.5 3.01 47.48L16.53 18.48C24 2.46 43.04 -4.47 59.06 3L365.5300000000001 145.91A32.003 32.003 0 0 1 384.0100000000001 174.91V209.14C384.0000000000001 221.59 376.8000000000001 232.9 365.5200000000001 238.15z" /> + <glyph glyph-name="grimace" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM144 48H136C118.3 48 104 62.3 104 80V88H144V48zM144 104H104V112C104 129.7 118.3 144 136 144H144V104zM136 240C136 257.7 150.3 272 168 272S200 257.7 200 240S185.7 208 168 208S136 222.3 136 240zM208 48H160V88H208V48zM208 104H160V144H208V104zM272 48H224V88H272V48zM272 104H224V144H272V104zM336 48H288V88H336V48zM336 104H288V144H336V104zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208zM392 80C392 62.3 377.7 48 360 48H352V88H392V80zM392 104H352V144H360C377.7 144 392 129.7 392 112V104z" /> + <glyph glyph-name="grin-alt" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM311.7 311.3C319.3 322.7000000000001 336.4 323 344.4 311.3C356.8 292.9 359.5 274.4 360.1 256C359.6 237.6 356.8 219.1 344.4 200.7C336.8 189.3 319.7 189 311.7 200.7C299.3 219.1 296.6 237.6 296 256C296.5 274.4 299.3 292.9 311.7 311.3zM151.7 311.3C159.3 322.7000000000001 176.4 323 184.4 311.3C196.8 292.9 199.5 274.4 200.1 256C199.6 237.6 196.8 219.1 184.4 200.7C176.8 189.3 159.7 189 151.7 200.7C139.3 219.1 136.6 237.6 136 256C136.5 274.4 139.3 292.9 151.7 311.3zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.5 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.9 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16z" /> + <glyph glyph-name="grin-beam-sweat" + unicode="" + horiz-adv-x="504" d=" M456 320C482.5 320 504 341 504 367C504 387 475.5 427.4 462.4 444.8C459.2 449.1 452.8 449.1 449.6 444.8C436.5 427.4 408 387 408 367C408 341 429.5 320 456 320zM456 288C411.9 288 376 323.4 376 367C376 371.4 376.3 381.2 384.1 399.2C345 424.9 298.3 440 248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192C496 227.1 488.6 260.4 475.5 290.6C469.2 289.1 462.8 288 456 288zM328 296C351.8 296 380.7 266.7 384 224.6C384.7 216 373.2 212.6 369.1 220.1L359.6 237.1C351.9000000000001 250.8 340.4000000000001 258.7 328.1 258.7S304.3 250.8 296.6 237.1L287.1 220.1C283 212.7 271.5 216.1 272.2000000000001 224.6C275.3000000000001 266.7 304.2000000000001 296 328.0000000000001 296zM168 296C191.8 296 220.7 266.7 224 224.6C224.7 216 213.2 212.6 209.1 220.1L199.6 237.1C191.9 250.8 180.4 258.7 168.1 258.7S144.3 250.8 136.6 237.1L127.1 220.1C122.9 212.7 111.5 216.1 112.2 224.6C115.3 266.7 144.2 296 168 296zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.5 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.6 130.9 393.7000000000001 121 391.8 109.3C382.5 54.3 308.6 16 248 16z" /> + <glyph glyph-name="grin-beam" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 296C351.8 296 380.7 266.7 384 224.6C384.7 216 373.2 212.7 369.1 220.1L359.6 237.1C351.9000000000001 250.8 340.4000000000001 258.7 328.1 258.7S304.3 250.8 296.6 237.1L287.1 220.1C283 212.8 271.5 216.1 272.2000000000001 224.6C275.3000000000001 266.7 304.2000000000001 296 328.0000000000001 296zM168 296C191.8 296 220.7 266.7 224 224.6C224.7 216 213.2 212.7 209.1 220.1L199.6 237.1C191.9 250.8 180.4 258.7 168.1 258.7S144.3 250.8 136.6 237.1L127.1 220.1C122.9 212.7 111.5 216.1 112.2 224.6C115.3 266.7 144.2 296 168 296zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.2 113.6 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.9 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16z" /> + <glyph glyph-name="grin-hearts" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM90.4 264.4C97.1 282 117.1 291.1 135.3 286.3L142.4 284.4L144.4 291.5C149.4 309.6 167.2 322.4 185.9 319.4C207.3 316 220.3 295.2000000000001 214.7 274.9L195.3 205C194.1 200.5 189.4 197.8 184.8 199L114.6 217.2C94.2 222.6 82.7 244.2 90.4 264.4zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.4 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.8 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16zM381.4 217.3L311.2 199.1C306.7 197.9 302 200.6 300.7 205.1L281.3 275C275.7 295.3 288.7 316.1 310.1 319.5C328.7000000000001 322.5 346.5 309.7 351.6 291.6L353.6 284.5L360.7000000000001 286.4C378.9000000000001 291.1 398.9000000000001 282.1 405.6 264.5C413.3 244.2 401.8 222.6 381.4000000000001 217.3z" /> + <glyph glyph-name="grin-squint-tears" + unicode="" + horiz-adv-x="512" d=" M409.6 336.1C432.2000000000001 339.3 483.1 348.1 497.9 362.9C517.1 382.1 516.8000000000001 413.5 497.2 433.1S446 453 426.9 433.8C412.1 419 403.4 368.1 400.1 345.5C399.3 340 404 335.3 409.6 336.1zM102.4 47.9C79.8 44.7 28.9 35.9 14.1 21.1C-5 1.9999999999999 -4.7 -29.5000000000001 14.9 -49.1S65.9 -69 85.1 -49.8C99.9 -35 108.6 15.9 111.9 38.5C112.7 44 108 48.7 102.4 47.9zM414.1 304.4C381.1 300.5 365.5 329.5 368.4000000000001 350.1C371.8 374.1 375.8 392.2 379.9000000000001 406.6C285.1 461.4 161.8 448.5 80.6 367.4C-0.5 286.3 -13.4 163 41.4 68.1C55.8 72.2000000000001 73.8 76.1 97.9 79.6C131.1 83.5 146.5 54.4 143.6 33.9C140.2 9.9 136.2 -8.2 132.1 -22.6C226.9000000000001 -77.4 350.2000000000001 -64.5 431.4000000000001 16.6S525.4000000000001 221 470.6 315.9000000000001C456.2 311.8000000000001 438.1 307.9000000000001 414.1 304.4000000000001zM255.7 342C259 355.2 278.1 353.5 279.3 340.2L284.1 287.9L336.4000000000001 283.1C349.8 281.9 351.3 262.8 338.2000000000001 259.5L247.7000000000001 236.9C238.8000000000001 234.7 231.0000000000001 242.8 233.2000000000001 251.4L255.7000000000001 342zM164.8 111.7L160 164L107.7 168.8C94.3 170 92.8 189.1 105.9 192.4L196.4 215C205.2 217.2 213.1 209.2 210.9 200.5L188.3 110C185.2 96.8 166.1 98.3 164.8 111.7zM380.5 67.5C351.2 38.2 304.8 17.1 263.8 17.1C244.9 17.1 227.2 21.6 212.8 31.8C203 38.7 204.1 53.6 214.8 59C243.1 73.6 278.7 101.4 312.6 135.3S374.3 204.9 388.9000000000001 233.1C394.3 243.6 409.1 245.0000000000001 416.2000000000001 235.1C448.5000000000001 189.8 423.3000000000001 110.4 380.5000000000001 67.5z" /> + <glyph glyph-name="grin-squint" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM281.8 250.3L361.8 298.3C373.4000000000001 305.2000000000001 385.8 290.6 377.2 280.3L343.6 240L377.2000000000001 199.7C385.9000000000001 189.3 373.3000000000001 174.9 361.8000000000001 181.7L281.8000000000001 229.7C274.1000000000001 234.4 274.1000000000001 245.6 281.8000000000001 250.3zM118.8 280.3C110.2 290.6 122.6 305.2000000000001 134.2 298.3L214.2 250.3C222 245.6 222 234.4 214.2 229.7L134.2 181.7000000000001C122.7 174.9 110.2 189.3000000000001 118.8 199.7000000000001L152.4 240.0000000000001L118.8 280.3000000000001zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.2 113.6 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.6 130.9 393.7000000000001 121 391.8 109.3C382.5 54.3 308.6 16 248 16z" /> + <glyph glyph-name="grin-stars" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM94.6 279.1L129.5 284.1L145 315.7C147.9 321.5 156 321.5 158.9 315.7L174.4 284.1L209.3 279.1C215.5 278.1 218.2 270.5 213.6 265.9L188.2 241.3L194.2 206.4C195.2 200.2 188.9 195.4 183.2 198.5L152 214.7L120.7 198.4C115 195.3 108.7 200.1 109.7 206.3L115.7 241.2L90.3 265.8C85.7 270.5 88.4 278.1 94.6 279.1zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.5 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.6 130.9 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16zM405.7 265.9L380.3 241.3L386.3 206.4C387.3 200.2 381 195.4 375.3 198.5L344 214.7L312.7 198.4C307 195.3 300.7 200.1 301.7 206.3L307.7 241.2L282.3 265.8C277.8 270.4 280.4000000000001 278 286.6 279L321.5 284L337 315.6C339.9 321.4 348 321.4 350.9 315.6L366.4 284L401.3 279C407.6 278.1 410.3 270.5 405.7 265.9z" /> + <glyph glyph-name="grin-tears" + unicode="" + horiz-adv-x="640" d=" M102.4 191.9C79.8 188.7 28.9 179.9 14.1 165.1C-5 146 -4.7 114.5 14.9 94.9S65.9 75 85.1 94.2C99.9 109 108.6 159.9 111.9 182.5C112.7 188 108 192.7 102.4 191.9zM625.8 165.1C611 179.9 560.0999999999999 188.6 537.5 191.9C532 192.7 527.2 188 528 182.4C531.2 159.8 540 108.9 554.8 94.1C574 74.9 605.4 75.2 625 94.8S645 146 625.8 165.1zM496.4 177.9C492.6 204.5 515.5 227.4 542.1 223.6C551 222.3 558.9 220.9 566.4 219.5C552.7 343.5 447.7 440 320 440S87.3 343.5 73.6 219.5C81.1 220.9 89 222.3 97.9 223.6C131.1 227.5 146.5 198.3 143.6 177.9C131.8 95.6 113.7 77.5 107.8 71.5C106.9 70.6 105.8 69.9 104.8 69C147.5 -5.6 227.8 -56 320 -56S492.5 -5.6 535.2 69.1C534.2 70 533.1 70.6 532.2 71.6C526.3000000000001 77.5 508.2 95.6 496.4 177.9zM400 296C423.8 296 452.7 266.7 456 224.6C456.7 216 445.2 212.6 441.1 220.1L431.6 237.1C423.9000000000001 250.8 412.4000000000001 258.7 400.1 258.7S376.3 250.8 368.6 237.1L359.1 220.1C354.9000000000001 212.7 343.5 216.1 344.2000000000001 224.6C347.3000000000001 266.7 376.2000000000001 296 400.0000000000001 296zM240 296C263.8 296 292.7 266.7 296 224.6C296.7 216 285.2 212.6 281.1 220.1L271.6 237.1C263.9000000000001 250.8 252.4000000000001 258.7 240.1 258.7S216.3 250.8 208.6 237.1L199.1 220.1C194.9 212.7 183.5 216.1 184.2 224.6C187.3 266.7 216.2 296 240 296zM320 16C259.4 16 185.5 54.3 176.2 109.3C174.2 121 185.4 130.9 196.9 127.2C227.1 117.5 272 112 320 112S412.9 117.5 443.1 127.2C454.5 130.9 465.7 121.1 463.8 109.3C454.5 54.3 380.6 16 320 16z" /> + <glyph glyph-name="grin-tongue-squint" + unicode="" + horiz-adv-x="496" d=" M293.1 73.4C278.7000000000001 79.9 262 71.2 258.5 55.8L256.7 47.9999999999999C254.6 38.8 241.5 38.8 239.4 47.9999999999999L237.6 55.8C234.1 71.1999999999999 217.4 79.9 203 73.4C202.1 73 203.3 73.6 184.1 64V1C184.1 -34.2 212.1 -63.5 247.2 -63.9C282.9 -64.4 312.1 -35.5 312.1 0.1V64.1C292.6 73.7000000000001 293.9 73 293.1 73.4zM248 440C111 440 0 329 0 192C0 85.7 67 -4.7 161 -40C155.4 -27.8 152 -14.3 152 0V45.5C127.3 61.7 108.5 83.6 104.2 109.3C102.2 121.1 113.4 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.9 393.7000000000001 121.1 391.8 109.3C387.5 83.6 368.7 61.7 344 45.5V0C344 -14.3 340.6 -27.8 335 -40C429 -4.7 496 85.7 496 192C496 329 385 440 248 440zM214.2 229.7L134.2 181.7C122.7 174.9 110.2 189.3 118.8 199.7L152.4 240L118.8 280.3C110.2 290.6 122.6 305.2000000000001 134.2 298.3L214.2 250.3C221.9 245.6 221.9 234.4 214.2 229.7zM377.2 199.7C385.9 189.3 373.3 174.9 361.8 181.7L281.8 229.7C274 234.4 274 245.6 281.8 250.3L361.8 298.3C373.5 305.2 385.7 290.6 377.2 280.3L343.6 240L377.2000000000001 199.7z" /> + <glyph glyph-name="grin-tongue-wink" + unicode="" + horiz-adv-x="496" d=" M344 264C330.7 264 320 253.3 320 240S330.7 216 344 216S368 226.7 368 240S357.3 264 344 264zM248 440C111 440 0 329 0 192C0 85.7 67 -4.7 161 -40C155.4 -27.8 152 -14.3 152 0V45.5C127.3 61.7 108.5 83.6 104.2 109.3C102.2 121.1 113.5 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.6 130.9 393.7000000000001 121.1 391.8 109.3C387.5 83.6 368.7 61.7 344 45.5V0C344 -14.3 340.6 -27.8 335 -40C429 -4.7 496 85.7 496 192C496 329 385 440 248 440zM192 215L182.5 223.5C167.7 236.7 136.3 236.7 121.5 223.5L112 215C103.5 207.6 90.4 214.7 92.2 225.8C96.2 251 126.4 267.9 152.1 267.9S208 251 212 225.8C213.6 214.7 200.4 207.6 192 215zM344 176C308.7 176 280 204.7 280 240S308.7 304 344 304S408 275.3 408 240S379.3 176 344 176zM293.1 73.4C278.7000000000001 79.9 262 71.2 258.5 55.8L256.7 47.9999999999999C254.6 38.8 241.5 38.8 239.4 47.9999999999999L237.6 55.8C234.1 71.1999999999999 217.4 79.9 203 73.4C202.1 73 203.3 73.6 184.1 64V1C184.1 -34.2 212.1 -63.5 247.2 -63.9C282.9 -64.4 312.1 -35.5 312.1 0.1V64.1C292.6 73.7000000000001 293.9 73 293.1 73.4z" /> + <glyph glyph-name="grin-tongue" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192C0 85.7 67 -4.7 161 -40C155.4 -27.8 152 -14.3 152 0V45.5C127.3 61.7 108.5 83.6 104.2 109.3C102.2 121.1 113.5 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.8 393.7000000000001 121.1 391.8 109.3C387.5 83.6 368.7 61.7 344 45.5V0C344 -14.3 340.6 -27.8 335 -40C429 -4.7 496 85.7 496 192C496 329 385 440 248 440zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208zM293.1 73.4C278.7000000000001 79.9 262 71.2 258.5 55.8L256.7 47.9999999999999C254.6 38.8 241.5 38.8 239.4 47.9999999999999L237.6 55.8C234.1 71.1999999999999 217.4 79.9 203 73.4C202.1 73 203.3 73.6 184.1 64V1C184.1 -34.2 212.1 -63.5 247.2 -63.9C282.9 -64.4 312.1 -35.5 312.1 0.1V64.1C292.6 73.7000000000001 293.9 73 293.1 73.4z" /> + <glyph glyph-name="grin-wink" + unicode="" + horiz-adv-x="496" d=" M0 192C0 55 111 -56 248 -56S496 55 496 192S385 440 248 440S0 329 0 192zM200 240C200 222.3 185.7 208 168 208S136 222.3 136 240S150.3 272 168 272S200 257.7 200 240zM368 215L358.5 223.5C343.7 236.7 312.3 236.7 297.5 223.5L288 215C279.7 207.6 266.4 214.6 268.2 225.8C272.2 251 302.4 267.9 328.1 267.9S384 251 388 225.8C389.6 214.8 376.5 207.6 368 215zM124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.4000000000001 130.9 393.7000000000001 121.2 391.8 109.3C382.6 54.3 308.6 16 248 16S113.5 54.3 104.2 109.3C102.2 121.2 113.5 130.9 124.9 127.2z" /> + <glyph glyph-name="grin" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 272C345.7 272 360 257.7 360 240S345.7 208 328 208S296 222.3 296 240S310.3 272 328 272zM168 272C185.7 272 200 257.7 200 240S185.7 208 168 208S136 222.3 136 240S150.3 272 168 272zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.5 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.4000000000001 130.9 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16z" /> + <glyph glyph-name="grip-horizontal" + unicode="" + horiz-adv-x="448" d=" M96 160H32C14.33 160 0 145.67 0 128V64C0 46.33 14.33 32 32 32H96C113.67 32 128 46.33 128 64V128C128 145.67 113.67 160 96 160zM256 160H192C174.33 160 160 145.67 160 128V64C160 46.33 174.33 32 192 32H256C273.67 32 288 46.33 288 64V128C288 145.67 273.67 160 256 160zM416 160H352C334.33 160 320 145.67 320 128V64C320 46.33 334.33 32 352 32H416C433.67 32 448 46.33 448 64V128C448 145.67 433.67 160 416 160zM96 352H32C14.33 352 0 337.67 0 320V256C0 238.33 14.33 224 32 224H96C113.67 224 128 238.33 128 256V320C128 337.67 113.67 352 96 352zM256 352H192C174.33 352 160 337.67 160 320V256C160 238.33 174.33 224 192 224H256C273.67 224 288 238.33 288 256V320C288 337.67 273.67 352 256 352zM416 352H352C334.33 352 320 337.67 320 320V256C320 238.33 334.33 224 352 224H416C433.67 224 448 238.33 448 256V320C448 337.67 433.67 352 416 352z" /> + <glyph glyph-name="grip-vertical" + unicode="" + horiz-adv-x="320" d=" M96 416H32C14.33 416 0 401.67 0 384V320C0 302.33 14.33 288 32 288H96C113.67 288 128 302.3300000000001 128 320V384C128 401.67 113.67 416 96 416zM96 256H32C14.33 256 0 241.67 0 224V160C0 142.33 14.33 128 32 128H96C113.67 128 128 142.33 128 160V224C128 241.67 113.67 256 96 256zM96 96H32C14.33 96 0 81.67 0 64V0C0 -17.67 14.33 -32 32 -32H96C113.67 -32 128 -17.67 128 0V64C128 81.67 113.67 96 96 96zM288 416H224C206.33 416 192 401.67 192 384V320C192 302.33 206.33 288 224 288H288C305.67 288 320 302.3300000000001 320 320V384C320 401.67 305.67 416 288 416zM288 256H224C206.33 256 192 241.67 192 224V160C192 142.33 206.33 128 224 128H288C305.67 128 320 142.33 320 160V224C320 241.67 305.67 256 288 256zM288 96H224C206.33 96 192 81.67 192 64V0C192 -17.67 206.33 -32 224 -32H288C305.67 -32 320 -17.67 320 0V64C320 81.67 305.67 96 288 96z" /> + <glyph glyph-name="h-square" + unicode="" + horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM336 320H304C295.163 320 288 312.837 288 304V224H160V304C160 312.837 152.837 320 144 320H112C103.163 320 96 312.837 96 304V80C96 71.163 103.163 64 112 64H144C152.837 64 160 71.163 160 80V160H288V80C288 71.163 295.163 64 304 64H336C344.837 64 352 71.163 352 80V304C352 312.837 344.837 320 336 320z" /> + <glyph glyph-name="hamsa" + unicode="" + horiz-adv-x="512" d=" M509.34 140.75C504.28 152.44 492.75 160 480 160H416V368C416 390 398 408 376 408S336 390 336 368V234C336 228.48 331.52 224 326 224H306C300.48 224 296 228.48 296 234V408C296 430 278 448 256 448S216 430 216 408V234C216 228.48 211.52 224 206 224H186C180.48 224 176 228.48 176 234V368C176 390 158 408 136 408S96 390 96 368V160H32C19.25 160 7.72 152.44 2.66 140.75A31.966 31.966 0 0 1 8.6 106.17L111.29 -3.86C146.97 -42.08 199.69 -64 256 -64S365.03 -42.08 400.7200000000001 -3.86L503.4 106.17A31.966 31.966 0 0 1 509.34 140.75zM256 32C202.98 32 160 96 160 96S202.98 160 256 160S352 96 352 96S309.02 32 256 32zM256 128C238.33 128 224 113.67 224 96S238.33 64 256 64S288 78.33 288 96S273.67 128 256 128z" /> + <glyph glyph-name="hand-holding-heart" + unicode="" + horiz-adv-x="576" d=" M275.3 197.5C282.3 190.1 293.7 190.1 300.8 197.5L409.7000000000001 311.7C441.3000000000001 344.9 439.5000000000001 399.9 404.1 430.5C373.3 457.2 327.4000000000001 452.4 299.2000000000001 422.8L288 411.1L276.9 422.7C248.7 452.4 202.8 457.2 172 430.5C136.7 399.9 134.8 344.9 166.4 311.7L275.3 197.5zM565.3 119.9C553.5 130.6 535.0999999999999 129.9 522.6999999999999 119.9L430.3 46C419 36.9 404.9000000000001 32 390.3 32H272C263.2 32 256 39.2 256 48S263.2 64 272 64H350.3C366.2 64 381 74.9 383.6 90.6C386.9000000000001 110.6 371.5 128 352 128H192C165 128 138.9 118.7 117.9 101.7L71.4 64H16C7.2 64 0 56.8 0 48V-48C0 -56.8 7.2 -64 16 -64H372.8C387.3 -64 401.4000000000001 -59.1 412.8 -50L564 71C579.2 83.1 580.4 106.3 565.3 119.9z" /> + <glyph glyph-name="hand-holding-usd" + unicode="" + horiz-adv-x="544" d=" M257.6 303.7L307.6 289.4C311.2000000000001 288.4 313.7000000000001 285 313.7000000000001 281.3C313.7000000000001 276.7 309.9000000000001 272.9 305.3000000000001 272.9H272.5000000000001C268.9000000000001 272.9 265.4000000000001 273.7 262.2000000000001 275.1C257.4000000000001 277.3 251.8000000000001 276.8 248.1000000000001 273.1L230.6000000000001 255.6C225.3000000000001 250.3 225.9000000000001 241.3 232.1000000000001 237.2C241.6000000000001 230.9 252.4000000000001 227.1 263.9000000000001 225.7V208C263.9000000000001 199.2 271.1 192 279.9000000000001 192H295.9000000000001C304.7000000000001 192 311.9000000000001 199.2 311.9000000000001 208V225.6C342.2000000000001 229.2 365.2000000000001 256.6 361.2000000000001 288.6C358.3000000000001 311.6 340.5000000000001 329.9 318.3000000000001 336.3L268.3000000000001 350.6C264.7000000000001 351.6 262.2000000000001 355 262.2000000000001 358.7C262.2000000000001 363.3 266.0000000000001 367.1 270.6 367.1H303.4000000000001C307.0000000000001 367.1 310.5000000000001 366.3 313.7000000000001 364.9C318.5000000000001 362.7 324.1 363.2 327.8000000000001 366.9L345.3000000000001 384.4C350.6000000000001 389.7 350.0000000000001 398.7 343.8000000000001 402.8C334.3000000000001 409.1 323.5000000000001 412.9 312.0000000000001 414.3V432C312.0000000000001 440.8 304.8000000000001 448 296.0000000000001 448H280.0000000000001C271.2000000000001 448 264.0000000000001 440.8 264.0000000000001 432V414.4C233.7000000000001 410.8 210.7000000000001 383.4 214.7000000000001 351.4C217.6000000000001 328.4 235.4000000000001 310.1 257.6 303.7zM533.9000000000001 119.9C522.7 130.6 505.4000000000001 129.9 493.6000000000001 119.9L406.4 46C395.7 36.9 382.4 32 368.6 32H256.9C248.6 32 241.8 39.2 241.8 48S248.6 64 256.9 64H330.8C345.9 64 359.8 74.9 362.2 90.6C365.3 110.6 350.7 128 332.3999999999999 128H181.3C155.8 128 131.1 118.7 111.4 101.7L67.5 64H15.1C6.8 64 0 56.8 0 48V-48C0 -56.8 6.8 -64 15.1 -64H352C365.7 -64 379 -59.1 389.8 -50L532.6 71C547 83.1 548.1 106.3 533.9 119.9z" /> + <glyph glyph-name="hand-holding" + unicode="" + horiz-adv-x="576" d=" M565.3 119.9C553.5 130.6 535.0999999999999 129.9 522.6999999999999 119.9L430.3 46C419 36.9 404.9000000000001 32 390.3 32H272C263.2 32 256 39.2 256 48S263.2 64 272 64H350.3C366.2 64 381 74.9 383.6 90.6C386.9000000000001 110.6 371.5 128 352 128H192C165 128 138.9 118.7 117.9 101.7L71.4 64H16C7.2 64 0 56.8 0 48V-48C0 -56.8 7.2 -64 16 -64H372.8C387.3 -64 401.4000000000001 -59.1 412.8 -50L564 71C579.2 83.1 580.4 106.3 565.3 119.9z" /> + <glyph glyph-name="hand-lizard" + unicode="" + horiz-adv-x="576" d=" M384 -32H576V84.222A95.998 95.998 0 0 1 561.167 135.485L398.127 393.632A48 48 0 0 1 357.544 416H24C10.745 416 0 405.255 0 392V376C0 345.072 25.072 320 56 320H285.981C298.825 320 307.537 306.933 302.596 295.077L281.186 243.692A32 32 0 0 0 251.648 224H128C92.654 224 64 195.346 64 160V152C64 138.745 74.745 128 88 128H235.406A47.995 47.995 0 0 0 261.098 120.545L372.846 49.734A24.001000000000005 24.001000000000005 0 0 0 384 29.461V-32z" /> + <glyph glyph-name="hand-paper" + unicode="" + horiz-adv-x="448" d=" M408.781 319.993C386.356 320.4220000000001 368 301.64 368 279.2100000000001V192H360V368.21C360 390.64 341.644 409.4220000000001 319.219 408.993C297.488 408.577 280 390.831 280 369V192H272V407.21C272 429.64 253.644 448.4220000000001 231.219 447.993C209.488 447.577 192 429.831 192 408V192H184V367.21C184 389.64 165.644 408.4220000000001 143.219 407.993C121.488 407.577 104 389.831 104 368V132.0080000000001L72.352 175.5270000000001C59.359 193.393 34.343 197.3440000000001 16.475 184.35C-1.39 171.356 -5.34 146.34 7.653 128.473L133.254 -44.232A48 48 0 0 1 172.073 -64H369.663C391.937 -64 411.2850000000001 -48.676 416.387 -26.994L442.895 85.6659999999999A192.011 192.011 0 0 1 447.999 129.641V280C448 301.831 430.512 319.577 408.781 319.993z" /> + <glyph glyph-name="hand-peace" + unicode="" + horiz-adv-x="448" d=" M408 232C385.908 232 368 214.091 368 192H360V224C360 246.091 342.092 264 320 264S280 246.091 280 224V192H272V400C272 426.51 250.51 448 224 448S176 426.51 176 400V192H162.428L92.688 369.551C82.994 394.226 55.134 406.37 30.461 396.676C5.787 386.983 -6.356 359.123 3.337 334.449L78.102 144.107L47.012 119.235C31.631 106.929 27.497 85.257 37.271 68.1539999999999L101.271 -43.8460000000001A39.998 39.998 0 0 1 136 -64H376C394.562 -64 410.686 -51.23 414.937 -33.162L446.937 102.838A39.97 39.97 0 0 1 448 112V192C448 214.091 430.092 232 408 232z" /> + <glyph glyph-name="hand-point-down" + unicode="" + horiz-adv-x="384" d=" M91.826 -19.2V130.034C83.578 124.193 75.268 119.464 66.908 115.881C35.098 102.248 -0.014 125.778 0 160C0.008 178.616 10.897 192.203 29.092 200C57.378 212.122 93.421 278.648 106.415 307.534C114.371 325.391 131.894 335.987 150.26 335.998L150.261 336H321.7870000000001C333.5990000000001 336 343.6840000000001 327.404 345.49 315.731C352.74 268.894 383.973 253.971 383.805 192C383.798 189.276 384 178.746 384 176C384 125.346 361.878 94.426 312.737 103.4C303.44 84.803 273.251 72.662 250.422 86.95C229.245 62.305 196.526 64.311 179.478 80.651V-19.2C179.478 -43.35 159.277 -64 135.652 -64C112.369 -64 91.826 -42.65 91.826 -19.2zM112 376V424C112 437.255 122.745 448 136 448H328C341.255 448 352 437.255 352 424V376C352 362.745 341.255 352 328 352H136C122.745 352 112 362.745 112 376zM324 400C324 411.046 315.046 420 304 420S284 411.046 284 400S292.954 380 304 380S324 388.954 324 400z" /> + <glyph glyph-name="hand-point-left" + unicode="" + horiz-adv-x="512" d=" M44.8 292.174H194.034C188.193 300.4220000000001 183.464 308.732 179.881 317.092C166.248 348.902 189.778 384.014 224 384C242.616 383.992 256.203 373.103 264 354.908C276.122 326.622 342.648 290.579 371.534 277.5850000000001C389.391 269.629 399.987 252.106 399.998 233.74L400 233.739V62.213C400 50.401 391.404 40.316 379.731 38.51C332.894 31.26 317.971 0.027 256 0.195C253.276 0.202 242.746 0 240 0C189.346 0 158.426 22.122 167.4 71.263C148.803 80.5600000000001 136.662 110.749 150.95 133.578C126.305 154.7550000000001 128.311 187.4740000000001 144.651 204.5220000000001H44.8C20.65 204.5220000000001 0 224.7230000000001 0 248.3480000000001C0 271.6310000000001 21.35 292.1740000000001 44.8 292.1740000000001zM440 272H488C501.255 272 512 261.255 512 248V56C512 42.745 501.255 32 488 32H440C426.745 32 416 42.745 416 56V248C416 261.255 426.745 272 440 272zM464 60C475.046 60 484 68.954 484 80S475.046 100 464 100S444 91.046 444 80S452.954 60 464 60z" /> + <glyph glyph-name="hand-point-right" + unicode="" + horiz-adv-x="512" d=" M512 248.348C512 224.723 491.35 204.522 467.2 204.522H367.349C383.689 187.4740000000001 385.695 154.756 361.05 133.578C375.338 110.749 363.197 80.561 344.6 71.263C353.574 22.122 322.654 0 272 0C269.254 0 258.724 0.203 256 0.195C194.029 0.027 179.106 31.26 132.269 38.51C120.596 40.317 112 50.401 112 62.214V233.739L112.002 233.74C112.013 252.106 122.609 269.629 140.466 277.5850000000001C169.352 290.579 235.879 326.623 248 354.908C255.797 373.102 269.384 383.992 288 384C322.222 384.014 345.752 348.902 332.1190000000001 317.092C328.536 308.733 323.807 300.422 317.966 292.174H467.2C490.65 292.174 512 271.631 512 248.348zM96 248V56C96 42.745 85.255 32 72 32H24C10.745 32 0 42.745 0 56V248C0 261.255 10.745 272 24 272H72C85.255 272 96 261.255 96 248zM68 80C68 91.046 59.046 100 48 100S28 91.046 28 80S36.954 60 48 60S68 68.954 68 80z" /> + <glyph glyph-name="hand-point-up" + unicode="" + horiz-adv-x="384" d=" M135.652 448C159.277 448 179.478 427.35 179.478 403.2V303.349C196.526 319.689 229.244 321.695 250.422 297.05C273.251 311.338 303.439 299.197 312.737 280.6C361.878 289.574 384 258.654 384 208C384 205.254 383.7970000000001 194.724 383.805 192C383.973 130.029 352.74 115.106 345.49 68.269C343.683 56.596 333.599 48 321.786 48H150.261L150.26 48.002C131.894 48.013 114.371 58.609 106.415 76.466C93.421 105.352 57.377 171.878 29.092 184C10.897 191.797 0.008 205.384 0 224C-0.014 258.222 35.098 281.752 66.908 268.1190000000001C75.267 264.536 83.578 259.807 91.826 253.966V403.2C91.826 426.65 112.369 448 135.652 448zM136 32H328C341.255 32 352 21.255 352 8V-40C352 -53.255 341.255 -64 328 -64H136C122.745 -64 112 -53.255 112 -40V8C112 21.255 122.745 32 136 32zM304 4C292.954 4 284 -4.954 284 -16S292.954 -36 304 -36S324 -27.046 324 -16S315.046 4 304 4z" /> + <glyph glyph-name="hand-pointer" + unicode="" + horiz-adv-x="448" d=" M448 208V112C448 108.916 447.644 105.841 446.937 102.838L414.937 -33.162C410.686 -51.23 394.562 -64 376 -64H168A40.004 40.004 0 0 0 135.65 -47.527L7.653 128.473C-5.34 146.339 -1.39 171.356 16.475 184.349C34.342 197.343 59.359 193.392 72.352 175.526L104 132.008V408C104 430.091 121.908 448 144 448S184 430.091 184 408V208H192V248C192 270.091 209.908 288 232 288S272 270.091 272 248V208H280V232C280 254.091 297.908 272 320 272S360 254.091 360 232V208H368C368 230.091 385.908 248 408 248S448 230.091 448 208zM192 128H184V32H192V128zM280 128H272V32H280V128zM368 128H360V32H368V128z" /> + <glyph glyph-name="hand-rock" + unicode="" + horiz-adv-x="512" d=" M512 319.2100000000001C512 345.5320000000001 491.139 367.554 464.82 367.993C437.935 368.442 416 346.783 416 320H408V351.21C408 377.532 387.139 399.554 360.82 399.993C333.935 400.442 312 378.783 312 352V320H304V367.21C304 393.532 283.139 415.554 256.82 415.993C229.935 416.442 208 394.783 208 368V320H200V351.21C200 377.532 179.139 399.554 152.82 399.993C125.935 400.442 104 378.783 104 352V216L96 223.111V271.2100000000001C96 297.5320000000001 75.139 319.554 48.82 319.993C21.935 320.442 0 298.783 0 272V205.555A95.998 95.998 0 0 1 32.221 133.804L143.889 34.543A47.999 47.999 0 0 0 160 -1.333V-8C160 -21.255 170.745 -32 184 -32H424C437.255 -32 448 -21.255 448 -8V-5.079A96.01 96.01 0 0 0 455.523 32.175L504.477 148.44A96.002 96.002 0 0 1 512 185.694V319.2100000000001z" /> + <glyph glyph-name="hand-scissors" + unicode="" + horiz-adv-x="512" d=" M216 8C216 30.092 233.909 48 256 48V56H224C201.909 56 184 73.908 184 96S201.909 136 224 136H256V144H48C21.49 144 0 165.49 0 192S21.49 240 48 240H256V253.572L78.449 323.312C53.775 333.006 41.631 360.867 51.324 385.54C61.017 410.214 88.878 422.357 113.552 412.664L303.894 337.899L328.766 368.9890000000001C341.072 384.37 362.7440000000001 388.504 379.8470000000001 378.73L491.847 314.73A40.002 40.002 0 0 0 512 280V40C512 21.438 499.23 5.314 481.162 1.063L345.162 -30.937A39.982 39.982 0 0 0 336 -32H256C233.909 -32 216 -14.092 216 8z" /> + <glyph glyph-name="hand-spock" + unicode="" + horiz-adv-x="512" d=" M10.872 131.415C26.011 147.501 51.326 148.269 67.415 133.1280000000001L128 76.107V155.5120000000001L88.995 327.135C84.099 348.677 97.593 370.1090000000001 119.135 375.005C140.684 379.899 162.11 366.406 167.005 344.8640000000001L201.747 192H211.58L164.016 399.034C159.07 420.565 172.514 442.028 194.044 446.974C215.576 451.924 237.038 438.476 241.984 416.9460000000001L293.664 192H308.769L357.194 385.702C362.5510000000001 407.134 384.269 420.164 405.701 414.806C427.1330000000001 409.448 440.1640000000001 387.731 434.805 366.299L391.231 192H402.311L433.079 321.265C438.196 342.756 459.764 356.033 481.256 350.912C502.747 345.795 516.021 324.226 510.903 302.735L474.611 150.268A96.02400000000002 96.02400000000002 0 0 1 472 128.033V85.931A96.002 96.002 0 0 0 468.04 58.6440000000001L441.8660000000001 -29.6429999999999C435.825 -50.022 417.101 -64 395.846 -64H179.172A48.00200000000001 48.00200000000001 0 0 0 146.274 -50.954L12.585 74.872C-3.502 90.013 -4.268 115.328 10.872 131.415z" /> + <glyph glyph-name="hands-helping" + unicode="" + horiz-adv-x="640" d=" M488 256H336V200C336 160.3 303.7 128 264 128S192 160.3 192 200V321.6L127.1 282.6C107.8 271.1 96 250.2 96 227.8V180.5L16 134.3C0.7 125.5 -4.6 105.9 4.3 90.6L84.3 -48C93.1 -63.3 112.7 -68.5 128 -59.7L231.4 0H368C403.3 0 432 28.7 432 64H448C465.7 64 480 78.3 480 96V160H488C501.3 160 512 170.7 512 184V232C512 245.3 501.3 256 488 256zM635.7 293.4L555.7 432C546.9 447.3 527.3 452.5 512 443.7L408.6 384H306.4C294.4 384 282.7 380.6 272.5 374.3L239 353.4C229.6 347.6 224 337.3 224 326.3V200C224 177.9 241.9 160 264 160S304 177.9 304 200V288H488C518.9 288 544 262.9 544 232V203.5L624 249.7C639.3 258.6 644.5 278.1 635.7 293.4z" /> + <glyph glyph-name="hands" + unicode="" + horiz-adv-x="640" d=" M204.8 217.6C194.2 231.7 174.1 234.6 160 224C145.9 213.4 143 193.3 153.6 179.2L191.7 128.4C196.5 122 195.8 113.1 190.2 107.5L177.4 94.7C170.7 88 159.8 88.5 153.8 95.8L64 203.6V352C64 369.7 49.7 384 32 384S0 369.7 0 352V133.6C0 122.7000000000001 3.7 112.1 10.5 103.6L114.6 -30.7C119.6 -37.2 123 -44.6 125 -52.4C126.8 -59.2999999999999 133.1 -64 140.3 -64H272C280.8 -64 288 -56.8 288 -48V64C288 91.7 279 118.6 262.4 140.8L204.8 217.6zM608 384C590.3 384 576 369.7 576 352V203.6L486.2 95.8C480.2 88.6 469.2 88.1 462.6 94.7L449.8 107.5C444.2 113.1 443.5 122 448.3 128.4L486.4 179.2C497 193.3 494.1 213.4 480 224C465.9 234.6 445.8 231.7 435.2 217.6L377.6 140.8C361 118.6 352 91.7 352 64V-48C352 -56.8 359.2 -64 368 -64H499.7C506.8 -64 513.2 -59.3 515 -52.4C517 -44.6 520.4 -37.2 525.4 -30.7L629.5 103.6C636.3 112.1 640 122.7000000000001 640 133.6V352C640 369.7 625.7 384 608 384z" /> + <glyph glyph-name="handshake" + unicode="" + horiz-adv-x="640" d=" M434.7 384H348.8C340.8 384 333.1 381 327.2 375.6L228.8999999999999 285.6C228.8 285.5 228.7 285.3 228.5999999999999 285.2C211.9999999999999 269.6 212.2999999999999 244.7 226.4999999999999 229.2C239.1999999999999 215.3 265.8999999999999 211.6 282.5999999999999 226.5C282.7 226.6 282.8999999999999 226.6 282.9999999999999 226.7L362.8999999999999 299.9C369.3999999999999 305.8 379.5999999999999 305.4 385.4999999999999 298.9C391.4999999999999 292.4 390.9999999999999 282.3 384.4999999999999 276.3L358.3999999999999 252.4L504 134.2C506.9 131.8 509.5 129.2 511.9 126.5V320L457.3 374.6C451.4 380.6 443.2 384 434.7 384zM544 319.8V95.9C544 78.2 558.3 63.9 576 63.9H640V319.8H544zM592 95.9C583.2 95.9 576 103.1 576 111.9S583.2 127.9 592 127.9S608 120.7 608 111.9S600.8 95.9 592 95.9zM0 64H64C81.7 64 96 78.3 96 96V319.8H0V64zM48 127.9C56.8 127.9 64 120.7 64 111.9S56.8 95.9 48 95.9S32 103.1 32 111.9C32 120.8 39.2 127.9 48 127.9zM483.9 109.3L334.6 230.5L304.6 203C274.9000000000001 175.9 229.4000000000001 178.5 202.9 207.4C176 236.8 178.1 282.3 207.3000000000001 309.1L289.1 384H205.3C196.8 384 188.7 380.6 182.7 374.6L128 320V96.1H146.3L236.8 14.2C264.2 -8.1 304.5 -3.9 326.8 23.5000000000001L327 23.7L344.9 8.2C360.8 -4.8 384.3 -2.3 397.2 13.6L428.6 52.2L434 47.8000000000001C447.7 36.7 467.8999999999999 38.7 478.9999999999999 52.5000000000001L488.4999999999999 64.2000000000001C499.6999999999999 78.0000000000001 497.6 98.1 483.8999999999999 109.3000000000001z" /> + <glyph glyph-name="hashtag" + unicode="" + horiz-adv-x="448" d=" M440.667 265.891L447.81 305.891C449.123 313.246 443.468 320 435.997 320H361.187L375.81 401.891C377.123 409.246 371.468 416 363.997 416H323.365A12 12 0 0 1 311.552 406.109L296.175 320H197.54L212.163 401.891C213.477 409.246 207.822 416 200.35 416H159.718A12 12 0 0 1 147.905 406.109L132.528 320H53.432A12 12 0 0 1 41.619 310.1090000000001L34.476 270.1090000000001C33.163 262.754 38.818 256 46.289 256H121.099L98.242 128H19.146A12 12 0 0 1 7.333 118.109L0.19 78.109C-1.123 70.754 4.532 64 12.003 64H86.813L72.19 -17.891C70.877 -25.246 76.532 -32 84.003 -32H124.635A12 12 0 0 1 136.448 -22.109L151.826 64H250.46L235.837 -17.891C234.523 -25.246 240.178 -32 247.65 -32H288.282A12 12 0 0 1 300.095 -22.109L315.472 64H394.568A12 12 0 0 1 406.381 73.891L413.524 113.891C414.837 121.2460000000001 409.182 128 401.711 128H326.901L349.7579999999999 256H428.854A12 12 0 0 1 440.6669999999999 265.891zM261.889 128H163.255L186.112 256H284.746L261.889 128z" /> + <glyph glyph-name="haykal" + unicode="" + horiz-adv-x="512" d=" M496.25 245.48L386.25 260.92L428.07 365.26C434.74 381.9 416.47 397.44 401.48 387.89L307.44 328L273.35 435.18C270.64 443.73 263.32 448 256 448C248.68 448 241.36 443.73 238.65 435.18L204.56 327.99L110.52 387.88C95.53 397.43 77.27 381.89 83.93 365.25L125.75 260.9100000000001L15.75 245.48C-1.79 243.02 -5.93 219.21 9.72 210.81L107.88 158.15L33.4 74.61C22.48 62.36 31.68 43.68 46.69 43.68C48 43.68 49.36 43.8199999999999 50.76 44.1299999999999L159.33 67.7799999999999L155.22 -44.7700000000001C154.79 -56.4200000000001 164.09 -63.9900000000001 173.63 -63.9900000000001C178.78 -63.9900000000001 184.02 -61.7800000000001 187.83 -56.8100000000001L256.01 32.0899999999999L324.19 -56.8100000000001C328 -61.7800000000001 333.23 -63.9900000000001 338.39 -63.9900000000001C347.93 -63.9900000000001 357.23 -56.4200000000001 356.8 -44.7700000000001L352.69 67.7799999999999L461.26 44.1299999999999C478.62 40.37 490.47 61.3299999999999 478.61 74.62L404.13 158.16L502.29 210.82C517.93 219.21 513.79 243.02 496.2499999999999 245.48zM338.51 136.32L286.62 147.62L288.5900000000001 93.83L256 136.32L223.41 93.83L225.37 147.62L173.48 136.32L209.08 176.25L162.16 201.42L214.73 208.8L194.74 258.67L239.69 230.05L256 281.28L272.29 230.05L317.24 258.67L297.25 208.8L349.82 201.42L302.9 176.25L338.51 136.32z" /> + <glyph glyph-name="hdd" + unicode="" + horiz-adv-x="576" d=" M576 144V48C576 21.49 554.51 0 528 0H48C21.49 0 0 21.49 0 48V144C0 170.51 21.49 192 48 192H528C554.51 192 576 170.51 576 144zM528 224A79.557 79.557 0 0 0 558.777 217.835L462.25 362.626A48.003 48.003 0 0 1 422.311 384H153.689A48 48 0 0 1 113.751 362.626L17.223 217.835A79.557 79.557 0 0 0 48 224H528zM480 128C462.327 128 448 113.673 448 96S462.327 64 480 64S512 78.327 512 96S497.673 128 480 128zM384 128C366.327 128 352 113.673 352 96S366.327 64 384 64S416 78.327 416 96S401.673 128 384 128z" /> + <glyph glyph-name="heading" + unicode="" + horiz-adv-x="512" d=" M496 368V400C496 408.837 488.837 416 480 416H320C311.163 416 304 408.837 304 400V368C304 359.163 311.163 352 320 352H357.621V224H154.379V352H192C200.837 352 208 359.163 208 368V400C208 408.837 200.837 416 192 416H32C23.163 416 16 408.837 16 400V368C16 359.163 23.163 352 32 352H69.275V32H32C23.163 32 16 24.837 16 16V-16C16 -24.837 23.163 -32 32 -32H192C200.837 -32 208 -24.837 208 -16V16C208 24.837 200.837 32 192 32H154.379V160H357.62V32H320C311.163 32 304 24.837 304 16V-16C304 -24.837 311.163 -32 320 -32H480C488.837 -32 496 -24.837 496 -16V16C496 24.837 488.837 32 480 32H442.725V352H480C488.837 352 496 359.163 496 368z" /> + <glyph glyph-name="headphones-alt" + unicode="" + horiz-adv-x="512" d=" M160 160H144C108.65 160 80 131.3 80 95.88V32.12C80 -3.29 108.65 -32 144 -32H160C177.67 -32 192 -17.64 192 0.06V127.94C192 145.65 177.67 160 160 160zM368 160H352C334.33 160 320 145.65 320 127.94V0.06C320 -17.64 334.33 -32 352 -32H368C403.35 -32 432 -3.29 432 32.12V95.88C432 131.29 403.35 160 368 160zM256 416C112.91 416 4.57 296.87 0 160V48C0 39.16 7.16 32 16 32H32C40.84 32 48 39.16 48 48V160C48 274.67 141.33 367.8 256 367.82C370.67 367.8 464 274.67 464 160V48C464 39.16 471.16 32 480 32H496C504.84 32 512 39.16 512 48V160C507.43 296.87 399.09 416 256 416z" /> + <glyph glyph-name="headphones" + unicode="" + horiz-adv-x="512" d=" M256 416C114.52 416 0 301.504 0 160V112A32 32 0 0 1 17.689 83.378L32.072 76.187C34.083 16.097 83.421 -32 144 -32H168C181.255 -32 192 -21.255 192 -8V168C192 181.255 181.255 192 168 192H144C112.658 192 84.329 179.121 64 158.373V160C64 265.8690000000001 150.131 352 256 352S448 265.8690000000001 448 160V158.373C427.671 179.121 399.342 192 368 192H344C330.745 192 320 181.255 320 168V-8C320 -21.255 330.745 -32 344 -32H368C428.579 -32 477.917 16.098 479.928 76.187L494.31 83.378A32 32 0 0 1 512 112V160C512 301.4790000000001 397.504 416 256 416z" /> + <glyph glyph-name="headset" + unicode="" + horiz-adv-x="512" d=" M192 240C192 257.67 177.67 272 160 272H144C108.65 272 80 243.35 80 208V160C80 124.65 108.65 96 144 96H160C177.67 96 192 110.33 192 128V240zM368 96C403.35 96 432 124.65 432 160V208C432 243.35 403.35 272 368 272H352C334.33 272 320 257.67 320 240V128C320 110.33 334.33 96 352 96H368zM256 448C113.18 448 4.58 329.17 0 192V176C0 167.16 7.16 160 16 160H32C40.84 160 48 167.16 48 176V192C48 306.69 141.31 400 256 400S464 306.69 464 192H463.88C463.96 189.57 464 26.28 464 26.28C464 2.93 445.07 -16 421.7200000000001 -16H320C320 10.51 298.51 32 272 32H240C213.49 32 192 10.51 192 -16S213.49 -64 240 -64H421.7200000000001C471.58 -64 512 -23.58 512 26.28V192C507.42 329.17 398.82 448 256 448z" /> + <glyph glyph-name="heart" + unicode="" + horiz-adv-x="512" d=" M462.3 385.4C407.5 432.1 326 423.7 275.7 371.8L256 351.5L236.3 371.8C186.1 423.7 104.5 432.1 49.7 385.4C-13.1 331.8 -16.4 235.6 39.8 177.5L233.3 -22.3C245.8 -35.2 266.1 -35.2 278.6 -22.3L472.1 177.5C528.4 235.6 525.1 331.8 462.3 385.4z" /> + <glyph glyph-name="heartbeat" + unicode="" + horiz-adv-x="512" d=" M320.2 204.2L270.5 104.8C264.5 92.6999999999999 247.1 93.1 241.6 105.4L184.7 231.7L154.7 160H60.6L243.1 -26.5C250.2 -33.8 261.7 -33.8 268.8 -26.5L451.4 160H342.3L320.2 204.2zM473.7 374.1L471.3 376.6C419.8 429.2 335.5 429.2 283.9 376.6L256 348L228.1 376.5C176.6 429.2 92.2 429.2 40.7 376.5L38.3 374.1C-10.4 324.3 -12.5 245 31 192H133.4L169.3 278.2C174.7 291.1 192.9 291.4 198.7 278.6L256.9000000000001 149.3L305.9000000000001 247.2C311.8 259 328.6 259 334.5000000000001 247.2L362.1000000000001 192H481C524.5 245 522.4 324.3 473.7 374.0999999999999z" /> + <glyph glyph-name="helicopter" + unicode="" + horiz-adv-x="640" d=" M304 64H576C593.67 64 608 78.33 608 96C608 219.71 507.71 320 384 320V384H560C568.84 384 576 391.16 576 400V432C576 440.84 568.84 448 560 448H144C135.16 448 128 440.84 128 432V400C128 391.16 135.16 384 144 384H320V320H112L68.8 377.6C65.78 381.63 61.03 384 56 384H16.01C5.6 384 -2.04 374.2200000000001 0.49 364.12L32 256L192 192L278.4 76.8A31.991999999999997 31.991999999999997 0 0 1 304 64zM416 252.49C478.55 239.7 528.03 190.56 540.79 128H416V252.49zM635.37 -10.81L613.22 11.39C606.97 17.65 596.98 17.49 590.58 11.38C583.49 4.61 576.74 0.13 565.94 0.13H240C231.16 0.13 224 -7.05 224 -15.9V-47.96C224 -56.81 231.16 -63.99 240 -63.99H565.94C580.82 -63.99 601.24 -63.52 634.3900000000001 -34.47C641.4100000000001 -28.33 641.9600000000002 -17.42 635.3700000000001 -10.81z" /> + <glyph glyph-name="highlighter" + unicode="" + horiz-adv-x="544" d=" M0 -31.98L99.92 -64L135.37 -28.55L68.33 38.49L0 -31.98zM124.61 208.03A36.592 36.592 0 0 1 113.82 169.93L126.87 127.1L75.94 76.16L172.17 -20.07L223.03 30.79L265.7700000000001 17.71C279.5000000000001 13.51 294.42 17.72 303.92 28.49L339.4700000000001 70.1299999999999L166.13 243.47L124.61 208.03zM527.92 368.73L464.72 431.93C444.23 452.42 411.34 453.45 389.6 434.28L190.55 264.32L360.3200000000001 94.54L530.27 293.6C549.4499999999999 315.3400000000001 548.42 348.23 527.92 368.73z" /> + <glyph glyph-name="history" + unicode="" + horiz-adv-x="512" d=" M504 192.469C504.253 55.829 392.82 -55.903 256.18 -55.999C197.165 -56.041 142.957 -35.469 100.358 -1.088C89.281 7.852 88.453 24.453 98.519 34.519L109.786 45.786C118.395 54.395 132.139 55.337 141.677 47.77C173.062 22.865 212.781 8 256 8C357.705 8 440 90.311 440 192C440 293.705 357.689 376 256 376C207.186 376 162.851 357.031 129.932 326.068L180.686 275.314C190.766 265.234 183.627 248 169.373 248H24C15.163 248 8 255.163 8 264V409.373C8 423.627 25.234 430.766 35.314 420.687L84.686 371.315C129.209 413.864 189.552 440 256 440C392.81 440 503.747 329.2200000000001 504 192.469zM323.088 113.685L332.911 126.315C341.0489999999999 136.778 339.164 151.857 328.701 159.994L288 191.651V296C288 309.255 277.255 320 264 320H248C234.745 320 224 309.255 224 296V160.349L289.409 109.475C299.872 101.338 314.95 103.222 323.088 113.685z" /> + <glyph glyph-name="hockey-puck" + unicode="" + horiz-adv-x="512" d=" M0 288C0 341 114.6 384 256 384S512 341 512 288S397.4 192 256 192S0 235 0 288zM0 205.8V96C0 43 114.6 0 256 0S512 43 512 96V205.8C398.6 123.5 113.5 123.4 0 205.8z" /> + <glyph glyph-name="home" + unicode="" + horiz-adv-x="576" d=" M488 135.3V-8C488 -21.3 477.3 -32 464 -32H348C341.4 -32 336 -26.6 336 -20V92C336 98.6 330.6 104 324 104H252C245.4 104 240 98.6 240 92V-20C240 -26.6 234.6 -32 228 -32H112C98.7 -32 88 -21.3 88 -8V135.3C88 138.9 89.6 142.3 92.4 144.6L280.4 299.4000000000001C284.8 303 291.2 303 295.7 299.4000000000001L483.7 144.6C486.4 142.3 488 138.9 488 135.3zM571.6 196.2L488 265.1V403.6C488 410.2 482.6 415.6 476 415.6H420C413.4 415.6 408 410.2 408 403.6V331L318.5 404.7C300.8 419.3 275.2 419.3 257.5 404.7L4.4 196.2C-0.7 192 -1.4 184.4 2.8 179.3L28.3 148.3C32.5 143.2 40.1 142.5 45.2 146.7L280.4 340.4C284.8 344 291.2 344 295.7 340.4L530.9 146.7C536 142.5 543.6 143.2 547.8 148.3L573.3 179.3C577.5 184.5 576.6999999999999 192 571.5999999999999 196.2z" /> + <glyph glyph-name="hospital-alt" + unicode="" + horiz-adv-x="576" d=" M544 352H416V416C416 433.7 401.7 448 384 448H192C174.3 448 160 433.7 160 416V352H32C14.3 352 0 337.7 0 320V-48C0 -56.8 7.2 -64 16 -64H560C568.8 -64 576 -56.8 576 -48V320C576 337.7 561.7 352 544 352zM160 12C160 5.4 154.6 0 148 0H108C101.4 0 96 5.4 96 12V52C96 58.6 101.4 64 108 64H148C154.6 64 160 58.6 160 52V12zM160 140C160 133.4 154.6 128 148 128H108C101.4 128 96 133.4 96 140V180C96 186.6 101.4 192 108 192H148C154.6 192 160 186.6 160 180V140zM320 12C320 5.4 314.6 0 308 0H268C261.4 0 256 5.4 256 12V52C256 58.6 261.4 64 268 64H308C314.6 64 320 58.6 320 52V12zM320 140C320 133.4 314.6 128 308 128H268C261.4 128 256 133.4 256 140V180C256 186.6 261.4 192 268 192H308C314.6 192 320 186.6 320 180V140zM336 310C336 306.7 333.3 304 330 304H304V278C304 274.7 301.3 272 298 272H278C274.7 272 272 274.7 272 278V304H246C242.7 304 240 306.7 240 310V330C240 333.3 242.7 336 246 336H272V362C272 365.3 274.7 368 278 368H298C301.3 368 304 365.3 304 362V336H330C333.3 336 336 333.3 336 330V310zM480 12C480 5.4 474.6 0 468 0H428C421.4 0 416 5.4 416 12V52C416 58.6 421.4 64 428 64H468C474.6 64 480 58.6 480 52V12zM480 140C480 133.4 474.6 128 468 128H428C421.4 128 416 133.4 416 140V180C416 186.6 421.4 192 428 192H468C474.6 192 480 186.6 480 180V140z" /> + <glyph glyph-name="hospital-symbol" + unicode="" + horiz-adv-x="512" d=" M256 448C114.6 448 0 333.4 0 192S114.6 -64 256 -64S512 50.6 512 192S397.4 448 256 448zM368 72C368 67.6 364.4 64 360 64H312C307.6 64 304 67.6 304 72V160H208V72C208 67.6 204.4 64 200 64H152C147.6 64 144 67.6 144 72V312C144 316.4 147.6 320 152 320H200C204.4 320 208 316.4 208 312V224H304V312C304 316.4 307.6 320 312 320H360C364.4 320 368 316.4 368 312V72z" /> + <glyph glyph-name="hospital" + unicode="" + horiz-adv-x="448" d=" M448 -44V-64H0V-44C0 -37.373 5.373 -32 12 -32H32V328C32 341.255 42.745 352 56 352H144V424C144 437.255 154.745 448 168 448H280C293.255 448 304 437.255 304 424V352H392C405.255 352 416 341.255 416 328V-32H436C442.627 -32 448 -37.373 448 -44zM308 256H268C261.373 256 256 250.627 256 244V204C256 197.373 261.373 192 268 192H308C314.627 192 320 197.373 320 204V244C320 250.627 314.627 256 308 256zM140 192H180C186.627 192 192 197.373 192 204V244C192 250.627 186.627 256 180 256H140C133.373 256 128 250.627 128 244V204C128 197.373 133.373 192 140 192zM244 64H204C197.373 64 192 58.627 192 52V-32H256V52C256 58.627 250.627 64 244 64zM308 160H268C261.373 160 256 154.627 256 148V108C256 101.373 261.373 96 268 96H308C314.627 96 320 101.373 320 108V148C320 154.627 314.627 160 308 160zM192 148C192 154.627 186.627 160 180 160H140C133.373 160 128 154.627 128 148V108C128 101.373 133.373 96 140 96H180C186.627 96 192 101.373 192 108V148zM182 352H208V326A6 6 0 0 1 214 320H234A6 6 0 0 1 240 326V352H266A6 6 0 0 1 272 358V378A6 6 0 0 1 266 384H240V410A6 6 0 0 1 234 416H214A6 6 0 0 1 208 410V384H182A6 6 0 0 1 176 378V358A6 6 0 0 1 182 352z" /> + <glyph glyph-name="hot-tub" + unicode="" + horiz-adv-x="512" d=" M414.21 270.35C415.23 262.14 421.96 256 429.96 256H446.08C455.59 256 463.16 264.57 462.08 274.35C457.74 313.46 439.68 348.88 411.95 371.51C394.58 385.68 383.13 408.26 379.97 433.66C378.96 441.86 372.2200000000001 448 364.23 448H348.11C338.6 448 331.0200000000001 439.43 332.11 429.65C336.45 390.54 354.51 355.12 382.24 332.49C399.6 318.3200000000001 411.06 295.74 414.2100000000001 270.35zM306.21 270.35C307.23 262.14 313.96 256 321.96 256H338.08C347.59 256 355.16 264.57 354.08 274.35C349.74 313.46 331.68 348.88 303.95 371.51C286.58 385.68 275.13 408.26 271.97 433.66C270.96 441.86 264.2200000000001 448 256.23 448H240.11C230.6 448 223.02 439.43 224.11 429.65C228.45 390.54 246.51 355.12 274.24 332.49C291.6 318.3200000000001 303.06 295.74 306.2100000000001 270.35zM480 192H256L145.07 275.2A63.99 63.99 0 0 1 106.67 288H64C28.65 288 0 259.35 0 224V0C0 -35.35 28.65 -64 64 -64H448C483.35 -64 512 -35.35 512 0V160C512 177.67 497.67 192 480 192zM128 8C128 3.58 124.42 0 120 0H104C99.58 0 96 3.58 96 8V120C96 124.42 99.58 128 104 128H120C124.42 128 128 124.42 128 120V8zM224 8C224 3.58 220.42 0 216 0H200C195.58 0 192 3.58 192 8V120C192 124.42 195.58 128 200 128H216C220.42 128 224 124.42 224 120V8zM320 8C320 3.58 316.42 0 312 0H296C291.58 0 288 3.58 288 8V120C288 124.42 291.58 128 296 128H312C316.42 128 320 124.42 320 120V8zM416 8C416 3.58 412.42 0 408 0H392C387.58 0 384 3.58 384 8V120C384 124.42 387.58 128 392 128H408C412.42 128 416 124.42 416 120V8zM64 320C99.35 320 128 348.65 128 384S99.35 448 64 448S0 419.35 0 384S28.65 320 64 320z" /> + <glyph glyph-name="hotel" + unicode="" + horiz-adv-x="576" d=" M560 384C568.84 384 576 391.16 576 400V432C576 440.84 568.84 448 560 448H16C7.16 448 0 440.84 0 432V400C0 391.16 7.16 384 16 384H31.98V0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H256V16C256 24.8 263.2 32 272 32H304C312.8 32 320 24.8 320 16V-64H560C568.84 -64 576 -56.84 576 -48V-16C576 -7.16 568.84 0 560 0H544V384H560zM256 339.2C256 345.6 262.4 352 268.8 352H307.2C313.6 352 320 345.6 320 339.2V300.8C320 294.4 313.6 288 307.2 288H268.8C262.4000000000001 288 256 294.4 256 300.8V339.2000000000001zM256 243.2C256 249.6 262.4 256 268.8 256H307.2C313.6 256 320 249.6 320 243.2V204.8C320 198.4 313.6 192 307.2 192H268.8C262.4000000000001 192 256 198.4 256 204.8V243.2zM128 339.2C128 345.6 134.4 352 140.8 352H179.2C185.6 352 192 345.6 192 339.2V300.8C192 294.4 185.6 288 179.2 288H140.8C134.4 288 128 294.4 128 300.8V339.2zM179.2 192H140.8C134.4 192 128 198.4 128 204.8V243.2C128 249.6 134.4 256 140.8 256H179.2C185.6 256 192 249.6 192 243.2V204.8C192 198.4 185.6 192 179.2 192zM192 64C192 117.02 234.98 160 288 160S384 117.02 384 64H192zM448 204.8C448 198.4 441.6 192 435.2 192H396.8C390.4000000000001 192 384 198.4 384 204.8V243.2C384 249.6 390.4 256 396.8 256H435.2C441.6 256 448 249.6 448 243.2V204.8zM448 300.8C448 294.4 441.6 288 435.2 288H396.8C390.4000000000001 288 384 294.4 384 300.8V339.2000000000001C384 345.6 390.4 352 396.8 352H435.2C441.6 352 448 345.6 448 339.2000000000001V300.8z" /> + <glyph glyph-name="hourglass-end" + unicode="" + horiz-adv-x="384" d=" M360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384zM192 240C134.213 240 88 306.5180000000001 88 384H296C296 306.055 249.49 240 192 240z" /> + <glyph glyph-name="hourglass-half" + unicode="" + horiz-adv-x="384" d=" M360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448zM284.9220000000001 64H99.08C116.139 110.797 151.176 144 192 144C232.821 144 267.862 110.804 284.9220000000001 64zM284.9410000000001 320H99.078C91.988 339.452 88 361.252 88 384H296C296 361.195 292.013 339.413 284.941 320z" /> + <glyph glyph-name="hourglass-start" + unicode="" + horiz-adv-x="384" d=" M360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448zM296 0H88C88 77.458 134.204 144 192 144C249.786 144 296 77.483 296 0z" /> + <glyph glyph-name="hourglass" + unicode="" + horiz-adv-x="384" d=" M360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384z" /> + <glyph glyph-name="i-cursor" + unicode="" + horiz-adv-x="256" d=" M256 395.952V435.935C256 442.504 250.726 447.852 244.158 447.9340000000001C211.621 448.344 166.469 447.989 128 410.041C90.266 447.264 46.979 448.114 11.913 447.886C5.318 447.843 0 442.481 0 435.886V396.241C0 389.554 5.458 384.163 12.145 384.243C38.111 384.553 96 380.757 96 335.818V224H60C53.373 224 48 218.627 48 212V172C48 165.373 53.373 160 60 160H96V48C96 3.068 39.925 -0.031 12.05 0.041C5.404 0.058 0 -5.306 0 -11.952V-51.935C0 -58.504 5.274 -63.852 11.842 -63.934C44.379 -64.3430000000001 89.531 -63.988 128 -26.04C165.734 -63.263 209.021 -64.1130000000001 244.087 -63.885C250.682 -63.842 256 -58.48 256 -51.885V-12.24C256 -5.553 250.542 -0.162 243.855 -0.242C217.889 -0.553 160 3.061 160 48V160H196C202.627 160 208 165.373 208 172V212C208 218.627 202.627 224 196 224H160V335.818C160 380.75 216.075 384.031 243.95 383.9600000000001C250.596 383.942 256 389.3060000000001 256 395.952z" /> + <glyph glyph-name="id-badge" + unicode="" + horiz-adv-x="384" d=" M336 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V400C384 426.5 362.5 448 336 448zM144 416H240C248.8 416 256 408.8 256 400S248.8 384 240 384H144C135.2 384 128 391.2 128 400S135.2 416 144 416zM192 288C227.3 288 256 259.3 256 224S227.3 160 192 160S128 188.7 128 224S156.7 288 192 288zM304 51.2C304 40.6 294 32 281.6 32H102.4C90 32 80 40.6 80 51.2V70.4C80 102.2 110.1 128 147.2 128H152.2C164.5 122.9 177.9 120 192 120S219.6 122.9 231.8 128H236.8C273.9000000000001 128 304 102.2 304 70.4V51.2z" /> + <glyph glyph-name="id-card-alt" + unicode="" + horiz-adv-x="576" d=" M528 384H384V288H192V384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H528C554.5 -64 576 -42.5 576 -16V336C576 362.5 554.5 384 528 384zM288 224C323.3 224 352 195.3 352 160S323.3 96 288 96S224 124.7 224 160S252.7 224 288 224zM381.3 0H194.7C184.3 0 175.9 10 179.1 19.8C187.4 45.4 211.5 64 240 64H248.2C260.5 58.9 273.9 56 288 56S315.6 58.9 327.8 64H336C364.4 64 388.5 45.5 396.9 19.8C400.1 10 391.7 0 381.3 0zM352 416C352 433.7 337.7 448 320 448H256C238.3 448 224 433.7 224 416V320H352V416z" /> + <glyph glyph-name="id-card" + unicode="" + horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V352H576V368C576 394.5 554.5 416 528 416zM0 16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V320H0V16zM352 248C352 252.4 355.6 256 360 256H504C508.4 256 512 252.4 512 248V232C512 227.6 508.4 224 504 224H360C355.6 224 352 227.6 352 232V248zM352 184C352 188.4 355.6 192 360 192H504C508.4 192 512 188.4 512 184V168C512 163.6 508.4 160 504 160H360C355.6 160 352 163.6 352 168V184zM352 120C352 124.4 355.6 128 360 128H504C508.4 128 512 124.4 512 120V104C512 99.6 508.4 96 504 96H360C355.6 96 352 99.6 352 104V120zM176 256C211.3 256 240 227.3 240 192S211.3 128 176 128S112 156.7 112 192S140.7 256 176 256zM67.1 51.8C75.5 77.5 99.6 96 128 96H136.2C148.5 90.9 161.9 88 176 88S203.6 90.9 215.8 96H224C252.4 96 276.5 77.5 284.9 51.8C288.1 41.9 279.7 32 269.3 32H82.7C72.3 32 63.9 42 67.1 51.8z" /> + <glyph glyph-name="image" + unicode="" + horiz-adv-x="512" d=" M464 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H464C490.51 384 512 362.51 512 336V48C512 21.49 490.51 0 464 0zM112 328C81.072 328 56 302.928 56 272S81.072 216 112 216S168 241.072 168 272S142.928 328 112 328zM64 64H448V176L360.485 263.515C355.7990000000001 268.201 348.201 268.201 343.514 263.515L208 128L152.485 183.515C147.799 188.201 140.201 188.201 135.514 183.515L64 112V64z" /> + <glyph glyph-name="images" + unicode="" + horiz-adv-x="576" d=" M480 32V16C480 -10.51 458.51 -32 432 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V112C64 67.888 99.888 32 144 32H480zM576 112V368C576 394.51 554.51 416 528 416H144C117.49 416 96 394.51 96 368V112C96 85.49 117.49 64 144 64H528C554.51 64 576 85.49 576 112zM256 320C256 293.49 234.51 272 208 272S160 293.49 160 320S181.49 368 208 368S256 346.51 256 320zM160 176L215.515 231.515C220.201 236.201 227.799 236.201 232.486 231.515L272 192L407.515 327.515C412.201 332.201 419.799 332.201 424.486 327.515L512 240V128H160V176z" /> + <glyph glyph-name="inbox" + unicode="" + horiz-adv-x="576" d=" M567.938 204.092L462.25 362.626A48.003 48.003 0 0 1 422.311 384H153.689A48 48 0 0 1 113.751 362.626L8.062 204.092A47.994 47.994 0 0 1 0 177.467V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V177.467A47.994 47.994 0 0 1 567.938 204.092zM162.252 320H413.749L499.082 192H376L344 128H232L200 192H76.918L162.252 320z" /> + <glyph glyph-name="indent" + unicode="" + horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM176 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H176C167.163 292 160 284.837 160 276V236C160 227.163 167.163 220 176 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM176 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H176C167.163 164 160 156.837 160 148V108C160 99.163 167.163 92 176 92zM123.313 203.313L27.313 299.297C17.266 309.348 0 302.224 0 287.9840000000001V96.009C0 81.68 17.325 74.705 27.313 84.696L123.313 180.6880000000001C129.562 186.9350000000001 129.562 197.0650000000001 123.313 203.3130000000001z" /> + <glyph glyph-name="industry" + unicode="" + horiz-adv-x="512" d=" M475.115 284.219L336 195.691V263.971C336 282.887 315.069 294.37 299.115 284.219L160 195.691V392C160 405.255 149.255 416 136 416H24C10.745 416 0 405.255 0 392V-8C0 -21.255 10.745 -32 24 -32H488C501.255 -32 512 -21.255 512 -8V263.971C512 282.8880000000001 491.069 294.37 475.115 284.219z" /> + <glyph glyph-name="infinity" + unicode="" + horiz-adv-x="640" d=" M471.1 352C405 352 353.3 310.7 320 273.4C286.7 310.7 235 352 168.9 352C75.8 352 0 280.2 0 192S75.8 32 168.9 32C235 32 286.7 73.3 320 110.6C353.3 73.3 405 32 471.1 32C564.2 32 640 103.8 640 192S564.2 352 471.1 352zM168.9 128C128.7 128 96 156.7 96 192S128.7 256 168.9 256C207.1 256 242.3 219.9 262.9 192C242.5 164.4 207 128 168.9 128zM471.1 128C432.9000000000001 128 397.7000000000001 164.1 377.1 192C397.5 219.6 433 256 471.1 256C511.3 256 544 227.3 544 192S511.3 128 471.1 128z" /> + <glyph glyph-name="info-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119.043 440 8 328.9170000000001 8 192C8 55.003 119.043 -56 256 -56S504 55.003 504 192C504 328.9170000000001 392.957 440 256 440zM256 330C279.1960000000001 330 298 311.1960000000001 298 288S279.1960000000001 246 256 246S214 264.804 214 288S232.804 330 256 330zM312 76C312 69.373 306.627 64 300 64H212C205.373 64 200 69.373 200 76V100C200 106.627 205.373 112 212 112H224V176H212C205.373 176 200 181.373 200 188V212C200 218.627 205.373 224 212 224H276C282.627 224 288 218.627 288 212V112H300C306.627 112 312 106.627 312 100V76z" /> + <glyph glyph-name="info" + unicode="" + horiz-adv-x="192" d=" M20 23.771H40V168.229H20C8.954 168.229 0 177.183 0 188.229V236C0 247.046 8.954 256 20 256H132C143.046 256 152 247.046 152 236V23.771H172C183.046 23.771 192 14.817 192 3.771V-44C192 -55.046 183.046 -64 172 -64H20C8.954 -64 0 -55.046 0 -44V3.771C0 14.817 8.954 23.771 20 23.771zM96 448C56.235 448 24 415.765 24 376S56.235 304 96 304S168 336.235 168 376S135.764 448 96 448z" /> + <glyph glyph-name="italic" + unicode="" + horiz-adv-x="320" d=" M204.758 32H170.909L233.0010000000001 352H273.7260000000001A16 16 0 0 1 289.4300000000001 364.937L295.6720000000001 396.937C297.599 406.8160000000001 290.034 416 279.968 416H120.235A16 16 0 0 1 104.531 403.063L98.289 371.063C96.362 361.184 103.927 352 113.993 352H147.839L85.749 32H46.278A16 16 0 0 1 30.574 19.065L24.329 -12.935C22.402 -22.815 29.967 -32 40.034 -32H198.513A16 16 0 0 1 214.217 -19.065L220.462 12.935C222.389 22.815 214.824 32 204.758 32z" /> + <glyph glyph-name="jedi" + unicode="" + horiz-adv-x="544" d=" M479.99 96L538.87 154.87C542.16 171.67 544 188.99 544 206.73C544 212.54 543.32 218.24 542.95 224H496L537.25 265.24C522.75 330.0300000000001 484.82 388.29 429.3400000000001 427.5100000000001C426.5700000000001 429.4700000000001 423.37 430.5000000000001 420.0900000000001 430.5000000000001C414.7200000000001 430.5000000000001 409.68 427.7900000000001 406.6 423.2600000000001C403.55 418.7700000000001 402.9600000000001 413.2700000000001 404.99 408.1700000000001C411.54 391.7100000000001 414.85 374.4400000000001 414.85 356.86C414.85 311.74 393.8200000000001 270.2900000000001 357.1600000000001 243.1300000000001C353.1400000000001 240.1500000000001 350.7000000000001 235.6300000000001 350.4600000000001 230.7300000000001C350.2200000000001 225.8100000000001 352.2200000000001 221.0700000000001 355.9500000000001 217.7000000000001C388.8800000000001 187.9500000000001 403.3000000000001 144.1900000000001 394.5200000000001 100.6300000000001C384.7800000000001 52.28 345.6800000000001 13.5300000000001 297.2100000000001 4.1300000000001L294.7100000000001 69.47L321.88 51C324.86 48.94 329.27 49.31 331.9 51.8A8.002 8.002 0 0 1 333.24 61.72L313.13 95.4500000000001L355.2 104.1700000000001C358.8999999999999 104.9200000000001 361.58 108.2200000000001 361.58 112.0000000000001C361.58 115.7700000000001 358.89 119.0600000000001 355.2 119.8300000000001L313.13 128.5600000000001L333.26 162.3300000000001C335.18 165.5600000000001 334.5999999999999 169.6400000000001 331.88 172.2400000000001C329.18 174.7900000000001 324.9099999999999 175.1300000000001 321.88 173.0400000000001L291.49 152.3700000000001L279.96 440.3A7.9639999999999995 7.9639999999999995 0 0 1 271.96 448C267.63 448 264.12 444.62 263.96 440.33L252.44 152.36L222.05 173.02C218.91 175.14 214.78 174.85 212.05 172.24C209.33 169.65 208.75 165.57 210.69 162.3L230.8 128.57L188.73 119.84C185.03 119.09 182.35 115.79 182.35 112.01S185.02 104.93 188.73 104.18L230.8 95.46L210.67 61.69C208.75 58.46 209.33 54.36 212.06 51.75C214.65 49.3 219.09 49 222.06 51L249.22 69.48L246.72 4.22C189.78 15.86 146.8299999999999 66.11 146.8299999999999 126.1400000000001C146.8299999999999 161.22 161.4499999999999 193.7400000000001 188 217.72C191.72 221.0800000000001 193.72 225.8300000000001 193.4799999999999 230.73C193.2399999999999 235.63 190.7999999999999 240.14 186.7899999999999 243.11C150.12 270.27 129.0799999999999 311.73 129.0799999999999 356.85C129.0799999999999 374.4100000000001 132.3899999999999 391.6600000000001 138.9199999999999 408.11C140.94 413.2 140.3499999999999 418.7 137.2999999999999 423.2C134.2199999999999 427.74 129.1699999999999 430.45 123.7899999999999 430.45C120.4899999999999 430.45 117.2899999999999 429.4100000000001 114.5199999999999 427.45C58.6499999999999 387.93 20.9199999999999 330.08 6.5499999999999 265.38L47.93 224H0.72C0.09 214.08 -0.25 204.09 0.22 194.01C0.84 180.58 2.76 167.48 5.33 154.6L63.93 96H24.02C65.27 5.77 155.15 -58.94 259.12 -63.71C263.42 -63.91 267.71 -64 271.9700000000001 -64C382.3100000000001 -64 477.3200000000001 1.83 519.95 96H479.9900000000001z" /> + <glyph glyph-name="joint" + unicode="" + horiz-adv-x="640" d=" M444.34 266.9C466.72 251.22 480 225.74 480 198.31V168C480 163.58 483.58 160 488 160H536C540.42 160 544 163.58 544 168V198.31C544 241.55 522.99 281.7200000000001 487.66 306.37C463.85 322.98 448 348.66 448 377.69V440C448 444.42 444.42 448 440 448H392C387.58 448 384 444.42 384 440V373.6C384 329.91 408.56 291.9700000000001 444.3400000000001 266.9zM194.97 89.02C126.03 77.93 59.69 53.31 0 16C83.65 -36.28 180.3 -64 278.94 -64H367.51L254.79 67.51C240.05 84.71 217.34 92.62 194.97 89.02zM553.28 360.91C547.61 364.71 544 370.87 544 377.69V440C544 444.42 540.42 448 536 448H488C483.58 448 480 444.42 480 440V377.69C480 355.67 490.17 334.28 508.64 322.3C550.79 294.9600000000001 576 248.46 576 198.31V168C576 163.58 579.58 160 584 160H632C636.42 160 640 163.58 640 168V198.31C640 263.75 607.59 324.5 553.28 360.91zM360.89 95.95C326.49 95.89 274.08 95.8 272.68 95.78L390.48 -41.65A63.98700000000001 63.98700000000001 0 0 1 439.07 -64H527.52L409.57 73.6A63.95499999999999 63.95499999999999 0 0 1 360.89 95.9500000000001zM616 96H432L549.99 -41.65A63.98700000000001 63.98700000000001 0 0 1 598.58 -64H616C629.25 -64 640 -53.25 640 -40V72C640 85.26 629.25 96 616 96z" /> + <glyph glyph-name="journal-whills" + unicode="" + horiz-adv-x="448" d=" M448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM133.08 303.61L154.34 282.35C155.9 280.79 157.95 280.01 160 280.01S164.09 280.79 165.66 282.35C168.78 285.4700000000001 168.78 290.54 165.66 293.6600000000001L139.24 320.0800000000001C149.24 340.98 165.48 358.05 185.61 369.3400000000001C179.62 359.6 176 348.26 176 336C176 316.04 185.33 298.43 199.66 286.69C190.01 276.63 184 263.04 184 248C184 221.06 203.04 198.6 228.38 193.24L229.74 225.95L219.37 218.91C218.68 218.46 217.9 218.22 217.12 218.22C216.12 218.22 215.14 218.6 214.37 219.31A4.006 4.006 0 0 0 213.68 224.26L222.22 238.57L204.31 242.29C202.45 242.68 201.12 244.32 201.12 246.21S202.45 249.74 204.31 250.13L222.22 253.85L213.68 268.16C212.73 269.77 213.01 271.83 214.37 273.11C215.73 274.41 217.81 274.55 219.37 273.52L231.38 265.36L236 376.17C236.09 378.31 237.86 380 240 380S243.91 378.31 244 376.17L248.68 263.88L262.88 273.53A4.067 4.067 0 0 0 267.88 273.12A4.006 4.006 0 0 0 268.57 268.17L260.03 253.86L277.94 250.14C279.8 249.7500000000001 281.13 248.11 281.13 246.2200000000001S279.8 242.6900000000001 277.94 242.3000000000001L260.03 238.5800000000001L268.57 224.2700000000001C269.52 222.66 269.24 220.6000000000001 267.88 219.3200000000001C267.11 218.6000000000001 266.11 218.2300000000001 265.13 218.2300000000001C264.35 218.2300000000001 263.57 218.46 262.88 218.9200000000001L250.2 227.5400000000001L251.63 193.2600000000001C276.96 198.6 296 221.06 296 248C296 263.04 289.99 276.63 280.34 286.69C294.67 298.43 304 316.04 304 336C304 348.26 300.38 359.6 294.4 369.33C314.53 358.05 330.77 340.9700000000001 340.77 320.07L314.35 293.65C311.23 290.53 311.23 285.46 314.35 282.34C315.91 280.78 317.96 280 320.01 280S324.1 280.78 325.67 282.34L346.93 303.6C349.9000000000001 293.52 352 283.05 352 272C352 271.48 351.86 271.01 351.85 270.49L314.74 238.02A7.974999999999999 7.974999999999999 0 0 1 313.99 226.74A7.97 7.97 0 0 1 320.01 224.01C321.89 224.01 323.76 224.67 325.28 225.99L348.87 246.63C337.32 197.04 293.09 160 240 160S142.68 197.04 131.14 246.62L154.73 225.98A7.957 7.957 0 0 1 160 224C162.22 224 164.44 224.92 166.02 226.73C168.94 230.06 168.6 235.11 165.27 238.01L128.16 270.48C128.15 271 128.01 271.4700000000001 128.01 271.99C128 283.05 130.1 293.52 133.08 303.61zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0z" /> + <glyph glyph-name="kaaba" + unicode="" + horiz-adv-x="576" d=" M554.12 364.49L318.36 443.07A95.962 95.962 0 0 1 257.6500000000001 443.07L21.88 364.49A32.006 32.006 0 0 1 0 334.13V285.12L265.02 364.63C280.05 369.13 295.94 369.13 311 364.63L576 285.12V334.13C576 347.9 567.19 360.13 554.12 364.49zM274.2200000000001 333.9700000000001L0 251.7V23.32C0 8.32 10.42 -4.66 25.06 -7.92L267.18 -61.72A95.937 95.937 0 0 1 308.83 -61.72L550.95 -7.92C565.59 -4.67 576.01 8.32 576.01 23.32V251.71L301.81 333.9700000000001C292.77 336.69 283.2200000000001 336.69 274.2200000000001 333.9700000000001zM128 217.89C128 214.28 125.59 211.12 122.11 210.17L42.11 188.35C37.02 186.97 32 190.8 32 196.07V212.65C32 216.26 34.41 219.42 37.89 220.37L117.89 242.19C122.98 243.58 128 239.75 128 234.47V217.89zM272 257.17C272 253.56 269.59 250.4 266.11 249.45L170.11 223.27C165.02 221.88 160 225.71 160 230.99V247.57C160 251.18 162.41 254.34 165.89 255.29L261.89 281.4700000000001C266.98 282.86 272 279.03 272 273.75V257.17zM448 234.47C448 239.75 453.02 243.58 458.11 242.19L538.11 220.37C541.59 219.42 544 216.26 544 212.65V196.07C544 190.79 538.98 186.96 533.89 188.35L453.89 210.17A7.997 7.997 0 0 0 448 217.89V234.47zM304 273.74C304 279.02 309.02 282.85 314.11 281.4600000000001L410.11 255.28C413.5900000000001 254.33 416 251.17 416 247.56V230.98C416 225.7 410.98 221.87 405.89 223.26L309.89 249.4400000000001A7.997 7.997 0 0 0 304 257.1600000000001V273.74z" /> + <glyph glyph-name="key" + unicode="" + horiz-adv-x="512" d=" M512 271.999C512 174.797 433.202 96 336 96C324.78 96 313.81 97.062 303.173 99.069L279.161 72.055A23.999000000000002 23.999000000000002 0 0 0 261.223 64H224V24C224 10.745 213.255 0 200 0H160V-40C160 -53.255 149.255 -64 136 -64H24C10.745 -64 0 -53.255 0 -40V38.059C0 44.424 2.529 50.529 7.029 55.03L168.831 216.832C163.108 234.186 160 252.729 160 272C160 369.202 238.797 447.999 335.999 448C433.488 448.001 512 369.4890000000001 512 271.999zM336 320C336 293.49 357.49 272 384 272S432 293.49 432 320S410.51 368 384 368S336 346.51 336 320z" /> + <glyph glyph-name="keyboard" + unicode="" + horiz-adv-x="576" d=" M528 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H528C554.51 384 576 362.51 576 336V48C576 21.49 554.51 0 528 0zM128 268V308C128 314.627 122.627 320 116 320H76C69.373 320 64 314.627 64 308V268C64 261.373 69.373 256 76 256H116C122.627 256 128 261.373 128 268zM224 268V308C224 314.627 218.627 320 212 320H172C165.373 320 160 314.627 160 308V268C160 261.373 165.373 256 172 256H212C218.627 256 224 261.373 224 268zM320 268V308C320 314.627 314.627 320 308 320H268C261.373 320 256 314.627 256 308V268C256 261.373 261.373 256 268 256H308C314.627 256 320 261.373 320 268zM416 268V308C416 314.627 410.627 320 404 320H364C357.373 320 352 314.627 352 308V268C352 261.373 357.373 256 364 256H404C410.627 256 416 261.373 416 268zM512 268V308C512 314.627 506.627 320 500 320H460C453.373 320 448 314.627 448 308V268C448 261.373 453.373 256 460 256H500C506.627 256 512 261.373 512 268zM176 172V212C176 218.627 170.627 224 164 224H124C117.373 224 112 218.627 112 212V172C112 165.373 117.373 160 124 160H164C170.627 160 176 165.373 176 172zM272 172V212C272 218.627 266.627 224 260 224H220C213.373 224 208 218.627 208 212V172C208 165.373 213.373 160 220 160H260C266.627 160 272 165.373 272 172zM368 172V212C368 218.627 362.627 224 356 224H316C309.373 224 304 218.627 304 212V172C304 165.373 309.373 160 316 160H356C362.627 160 368 165.373 368 172zM464 172V212C464 218.627 458.627 224 452 224H412C405.373 224 400 218.627 400 212V172C400 165.373 405.373 160 412 160H452C458.627 160 464 165.373 464 172zM128 76V116C128 122.627 122.627 128 116 128H76C69.373 128 64 122.627 64 116V76C64 69.373 69.373 64 76 64H116C122.627 64 128 69.373 128 76zM416 76V116C416 122.627 410.627 128 404 128H172C165.373 128 160 122.627 160 116V76C160 69.373 165.373 64 172 64H404C410.627 64 416 69.373 416 76zM512 76V116C512 122.627 506.627 128 500 128H460C453.373 128 448 122.627 448 116V76C448 69.373 453.373 64 460 64H500C506.627 64 512 69.373 512 76z" /> + <glyph glyph-name="khanda" + unicode="" + horiz-adv-x="512" d=" M415.81 382C409.44 385.5 401.44 384.33 396.45 378.98A15.973999999999998 15.973999999999998 0 0 1 394.54 359.4600000000001C411.03 333.3 419.74 303.07 419.74 272.05C419.55 218.8 392.97 169.36 348.47 139.64L271.84 86.29V106.39L315.89 142.48C319.81 146.68 320.89 152.57 318.7 157.76L310.85 175C344.6900000000001 194.26 367.79 230.25 367.79 271.99C367.79 312.78 345.7700000000001 348.12 313.2000000000001 367.7L318.4200000000001 379.14C320.7600000000001 384.67 319.3500000000001 390.9700000000001 314.8500000000001 395.18L255.86 448L196.87 395.19C192.37 390.98 190.97 384.68 193.3 379.15L198.52 367.7100000000001C165.95 348.13 143.93 312.78 143.93 271.99C143.93 230.24 167.02 194.26 200.87 175L193.02 157.76C190.83 152.58 191.92 146.69 195.83 142.48L239.88 106.39V86.49L163.29 139.82C119.02 169.38 92.44 218.81 92.26 272C92.26 303.08 100.97 333.31 117.46 359.4700000000001C121.33 365.63 119.86 373.24 114.87 378.55C109.87 383.89 101.19 384.75 94.85 381.25C16.32 338.4 -22.3 242.7 13.36 152.01C20.43 134.02 31.25 117.63 43.82 102.95L99.79 37.59C104.66 31.9 112.83 30.35 119.44 33.87L198.79 76.1L228 55.77L180.92 22.99C179.25 23.36 177.69 24 175.91 24C162.66 24 151.92 13.26 151.92 0C151.92 -13.25 162.66 -24 175.91 -24C188.01 -24 197.6 -14.89 199.24 -3.24L239.87 25.04V-4.91C230.48 -10.48 223.88 -20.29 223.88 -32.01C223.88 -49.6800000000001 238.2 -64.01 255.86 -64.01S287.84 -49.68 287.84 -32.01C287.84 -20.3 281.23 -10.49 271.85 -4.91V25.24L312.76 -3.24C314.4100000000001 -14.89 324 -24 336.09 -24C349.34 -24 360.08 -13.25 360.08 0C360.08 13.26 349.34 24 336.09 24C334.31 24 332.75 23.36 331.08 22.99L284 55.77L313.21 76.11L392.56 33.8799999999999C399.17 30.36 407.3399999999999 31.9099999999999 412.2099999999999 37.5899999999999L464.7199999999999 98.8999999999999C483.5899999999999 120.9199999999999 498.7199999999999 146.3999999999999 505.9699999999999 174.4899999999999C527.5899999999999 258.1499999999999 489.5199999999999 341.7599999999999 415.81 381.9999999999999zM319.82 272C319.82 249.7 308.33 230.08 290.99 218.62L285.3400000000001 231.03C276.5900000000001 255.55 276.5900000000001 282.07 285.3400000000001 306.5900000000001L293.17 323.77C309.24 312.12 319.82 293.3200000000001 319.82 272zM191.89 272C191.89 293.32 202.47 312.12 218.55 323.76L226.38 306.58C235.13 282.06 235.13 255.55 226.38 231.02L220.73 218.61C203.39 230.07 191.89 249.7 191.89 272z" /> + <glyph glyph-name="kiss-beam" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM209 220.1L199.5 237.1C191.8 250.8 180.3 258.7 168 258.7S144.2 250.8 136.5 237.1L127 220.1C122.8 212.7 111.4 216.1 112.1 224.6C115.4 266.7 144.3 296 168.1 296S220.8 266.7 224.1 224.6C224.6 216.1 213.2 212.6 209 220.1zM304 52C304 32.8 275.3 10.5 232.5 8C224 7.2 220.4 19.8 228.9 23.4L245.9 30.6C258.9 36.1 266.7 44.1 266.7 52.1S258.9 68.1 245.9 73.6L228.9 80.8C222.9 83.3 222.8 92.9999999999999 228.9 95.6L245.9 102.8C258.9 108.3 266.7 116.3 266.7 124.3S258.9 140.3 245.9 145.8L228.9 153C220.3 156.6 224.1 169.5 232.5 168.3999999999999C275.3 165.8999999999999 304 143.5999999999999 304 124.3999999999999C304 111.3999999999999 290.6 97.0999999999999 268.8 88.3999999999999C290.6 79.3 304 65 304 52zM369 220.1L359.5 237.1C351.8 250.8 340.3 258.7 328 258.7S304.2 250.8 296.5 237.1L287 220.1C282.9 212.8 271.4 216.1 272.1 224.6C275.4000000000001 266.7 304.3 296 328.1 296S380.8 266.7 384.1 224.6C384.6 216.1 373.2000000000001 212.6 369 220.1z" /> + <glyph glyph-name="kiss-wink-heart" + unicode="" + horiz-adv-x="504" d=" M501.1 45.5C493.1 66.3 469.6 77 448 71.4L439.6 69.2L437.3 77.6C431.4000000000001 98.9999999999999 410.3 114.1 388.3 110.6C363.1 106.6 347.7 81.9999999999999 354.3 57.9999999999999L377.2 -24.6C378.7 -29.9 384.2 -33.1 389.6 -31.7L472.6 -10.2C496.7 -3.9 510.3 21.6 501.1 45.4999999999999zM323.5 49.5C317.9 69.8 321.2 91.5 332.5 109.2C362.2 155.5 431.2 154.7 460.3 104.9C466.7 104.8 472.9 103.5 478.9 102C489.8 129.9 496.0000000000001 160.2 496.0000000000001 192C496 329 385 440 248 440S0 329 0 192S111 -56 248 -56C283.4 -56 316.9 -48.5 347.4 -35.1C347.1 -34.4 323.5 49.5 323.5 49.5zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM288 52C288 32.8 259.3 10.5 216.5 8C208 7.2 204.4 19.8 212.9 23.4L229.9 30.6C242.9 36.1 250.7 44.1 250.7 52.1S242.9 68.1 229.9 73.6L212.9 80.8C206.9 83.3 207.2 93.1 212.9 95.6L229.9 102.8C242.9 108.3 250.7 116.3 250.7 124.3S242.9 140.3 229.9 145.8L212.9 153C204.1 156.6999999999999 208.3 169.6 216.5 168.3999999999999C259.3 165.8999999999999 288 143.5999999999999 288 124.3999999999999C288 111.3999999999999 274.6 97.0999999999999 252.8 88.3999999999999C274.6 79.3 288 65 288 52zM304 231C295.7 223.6 282.4 230.6 284.2 241.8C288.2 267 318.4 283.9 344.1 283.9S400 267 404 241.8C405.7 230.7 392.7 223.5 384.2 231L374.7 239.5C359.9 252.7 328.5 252.7 313.7 239.5L304 231z" /> + <glyph glyph-name="kiss" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM304 52C304 32.8 275.3 10.5 232.5 8C224 7.2 220.4 19.8 228.9 23.4L245.9 30.6C258.9 36.1 266.7 44.1 266.7 52.1S258.9 68.1 245.9 73.6L228.9 80.8C222.9 83.3 222.8 92.9999999999999 228.9 95.6L245.9 102.8C258.9 108.3 266.7 116.3 266.7 124.3S258.9 140.3 245.9 145.8L228.9 153C220.3 156.6 224.1 169.5 232.5 168.3999999999999C275.3 165.8999999999999 304 143.5999999999999 304 124.3999999999999C304 111.3999999999999 290.6 97.0999999999999 268.8 88.3999999999999C290.6 79.3 304 65 304 52zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" /> + <glyph glyph-name="kiwi-bird" + unicode="" + horiz-adv-x="576" d=" M575.81 230.02C572.64 290.5900000000001 518.28 336 457.63 336H448.26C395.44 336 344.01 352.25 300.52 382.24C258.53 411.2 204.48 423.86 147.31 410.94C129.3 406.88 -0.08 369.76 0 224C0.04 153.05 38.68 91.2 95.99 57.99V-16C95.99 -24.84 103.15 -32 111.99 -32H127.99C136.83 -32 143.99 -24.84 143.99 -16V38.26C159.35 34.3 175.39 32 191.99 32C197.43 32 202.67 32.73 207.99 33.18V-16C207.99 -24.84 215.15 -32 223.99 -32H239.99C248.83 -32 255.99 -24.84 255.99 -16V43.43C270.23 48.49 283.87 54.82 296.3300000000001 62.94C342.07 92.75 393.86 112 448.46 112C473.94 112 464.47 112.31 471.51 112.78L545.92 -23.66C548.78 -28.89 554.2199999999999 -32 559.9699999999999 -32C561.2799999999999 -32 562.6099999999999 -31.84 563.92 -31.5C571.01 -29.7 575.9699999999999 -23.31 575.9699999999999 -16C575.9699999999999 -16 576.1099999999999 224.24 575.81 230.02zM463.97 200C450.72 200 439.9700000000001 210.75 439.9700000000001 224C439.9700000000001 237.26 450.72 248 463.97 248S487.97 237.26 487.97 224C487.97 210.75 477.22 200 463.97 200zM543.97 46.75L504.11 119.83C519.23 125.66 532.84 134.43 543.97 145.81V46.75z" /> + <glyph glyph-name="landmark" + unicode="" + horiz-adv-x="512" d=" M501.62 355.89L267.24 445.96A31.958 31.958 0 0 1 244.77 445.96L10.38 355.89A16.001 16.001 0 0 1 0 340.91V304C0 295.16 7.16 288 16 288H496C504.84 288 512 295.16 512 304V340.91C512 347.58 507.86 353.55 501.62 355.89zM64 256V96H48C39.16 96 32 88.84 32 80V32H480V80C480 88.84 472.84 96 464 96H448V256H384V96H288V256H224V96H128V256H64zM496 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H496C504.84 -64 512 -56.84 512 -48V-16C512 -7.16 504.84 0 496 0z" /> + <glyph glyph-name="language" + unicode="" + horiz-adv-x="640" d=" M304 32H24C10.745 32 0 42.745 0 56V328C0 341.255 10.745 352 24 352H304V32zM183.324 104.622A12 12 0 0 1 194.839 96H217.702C225.922 96 231.709 104.078 229.064 111.861L171.61 280.915A12 12 0 0 1 160.248 289.054H127.759A12.001000000000001 12.001000000000001 0 0 1 116.397 280.915L58.942 111.861C56.297 104.078 62.084 96 70.304 96H93.109A12 12 0 0 1 104.644 104.693L113.762 136.5H173.973L183.324 104.622zM144.273 245.042S148.593 223.981 152.103 211.832L162.9030000000001 174.301H124.8330000000001L135.9030000000001 211.832C139.4130000000001 223.982 143.7330000000001 245.042 143.7330000000001 245.042H144.2730000000001zM616 32H336V352H616C629.255 352 640 341.255 640 328V56C640 42.745 629.255 32 616 32zM580 260H516V276C516 282.627 510.627 288 504 288H488C481.373 288 476 282.627 476 276V260H412C405.373 260 400 254.627 400 248V232C400 225.373 405.373 220 412 220H526.106C519.843 205.701 509.588 191.028 496.083 176.794C489.523 183.692 483.686 190.704 478.718 197.727C475.079 202.871 468.133 204.402 462.723 201.173L455.443 196.827L448.945 192.948C442.989 189.392 441.252 181.527 445.21 175.831C451.275 167.102 458.308 158.495 466.194 150.105C458.0719999999999 143.879 449.353 137.861 440.091 132.141C434.57 128.731 432.7099999999999 121.585 435.929 115.951L443.87 102.055C447.232 96.172 454.8049999999999 94.2289999999999 460.576 97.7789999999999C473.308 105.61 485.147 113.954 496.0189999999999 122.67C506.9359999999999 113.9089999999999 518.785 105.568 531.415 97.789C537.189 94.233 544.7679999999999 96.171 548.132 102.059L556.0759999999999 115.962C559.2889999999999 121.585 557.4459999999999 128.722 551.9409999999999 132.133A312.737 312.737 0 0 0 525.881 150.152C546.905 172.577 561.649 196.441 568.5939999999999 220.002H580C586.627 220.002 592 225.375 592 232.002V248.002C592 254.627 586.627 260 580 260z" /> + <glyph glyph-name="laptop-code" + unicode="" + horiz-adv-x="640" d=" M255.03 186.35C261.28 180.1 271.4100000000001 180.1 277.6600000000001 186.35L288.9700000000001 197.66C295.2200000000001 203.91 295.2200000000001 214.04 288.9700000000001 220.29L253.25 256L288.96 291.7200000000001C295.21 297.9700000000001 295.21 308.1 288.96 314.35L277.65 325.66C271.4 331.91 261.27 331.91 255.02 325.66L196.68 267.32C190.43 261.07 190.43 250.94 196.68 244.69L255.03 186.35zM351.04 197.65L362.35 186.34C368.6 180.09 378.73 180.09 384.98 186.34L443.3200000000001 244.6800000000001C449.5700000000001 250.9300000000001 449.5700000000001 261.0600000000001 443.3200000000001 267.3100000000001L384.98 325.6500000000001C378.73 331.9000000000001 368.6 331.9000000000001 362.35 325.6500000000001L351.04 314.3400000000001C344.79 308.0900000000001 344.79 297.9600000000001 351.04 291.7100000000001L386.75 256L351.04 220.28C344.79 214.03 344.79 203.9 351.04 197.65zM624 32H381.54C380.8 12.19 366.8300000000001 0 348.8 0H288C269.31 0 254.98 17.47 255.23 32H16C7.2 32 0 24.8 0 16V0C0 -35.2 28.8 -64 64 -64H576C611.2 -64 640 -35.2 640 0V16C640 24.8 632.8 32 624 32zM576 400C576 426.4 554.4 448 528 448H112C85.6 448 64 426.4 64 400V64H576V400zM512 128H128V384H512V128z" /> + <glyph glyph-name="laptop" + unicode="" + horiz-adv-x="640" d=" M624 32H381.54C380.8 12.19 366.8300000000001 0 348.8 0H288C269.31 0 254.98 17.47 255.23 32H16C7.2 32 0 24.8 0 16V0C0 -35.2 28.8 -64 64 -64H576C611.2 -64 640 -35.2 640 0V16C640 24.8 632.8 32 624 32zM576 400C576 426.4 554.4 448 528 448H112C85.6 448 64 426.4 64 400V64H576V400zM512 128H128V384H512V128z" /> + <glyph glyph-name="laugh-beam" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM272 240.6C275.3 282.7 304.2 312 328 312S380.7 282.7 384 240.6C384.7 232 373.2 228.7 369.1 236.1L359.6 253.1C351.9000000000001 266.8 340.4000000000001 274.7 328.1 274.7S304.3 266.8 296.6 253.1L287.1 236.1C282.9000000000001 228.7 271.3 232 272 240.6zM112 240.6C115.3 282.7 144.2 312 168 312S220.7 282.7 224 240.6C224.7 232 213.2 228.7 209.1 236.1L199.6 253.1C191.9 266.8 180.4 274.7 168.1 274.7S144.3 266.8 136.6 253.1L127.1 236.1C122.8 228.7 111.3 232.1 112 240.6zM398.9 142C390 71 329.4 16 256 16H240C166.6 16 106 71 97.1 142C95.9 151.5 103.4 160 113 160H383C392.6 160 400.1 151.6 398.9 142z" /> + <glyph glyph-name="laugh-squint" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM281.8 278.3L361.8 326.3C373.4000000000001 333.2000000000001 385.8 318.6 377.2 308.3L343.6 268L377.2000000000001 227.7C385.9000000000001 217.3 373.3000000000001 202.9 361.8000000000001 209.7L281.8000000000001 257.7C274.1000000000001 262.4 274.1000000000001 273.6 281.8000000000001 278.3zM118.8 308.3C110.2 318.6 122.6 333.2000000000001 134.2 326.3L214.2 278.3C222 273.6 222 262.4 214.2 257.7000000000001L134.2 209.7C122.7 202.9 110.2 217.3 118.8 227.7L152.4 268L118.8 308.3zM398.9 142C390 71 329.4 16 256 16H240C166.6 16 106 71 97.1 142C95.9 151.5 103.4 160 113 160H383C392.6 160 400.1 151.6 398.9 142z" /> + <glyph glyph-name="laugh-wink" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM268.1 241.9C272.1 267.1 302.3 284 328 284S383.9 267.1 387.9 241.9C389.6 230.8 376.5 223.6 368.1 231.1L358.6 239.6C343.8 252.8 312.4 252.8 297.6 239.6L288 231C279.6 223.6 266.4 230.7 268.1 241.9zM168 288C185.7 288 200 273.7 200 256S185.7 224 168 224S136 238.3 136 256S150.3 288 168 288zM398.9 142C390 71 329.4 16 256 16H240C166.6 16 106 71 97.1 142C95.9 151.5 103.4 160 113 160H383C392.6 160 400.1 151.6 398.9 142z" /> + <glyph glyph-name="laugh" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 288C345.7 288 360 273.7 360 256S345.7 224 328 224S296 238.3 296 256S310.3 288 328 288zM168 288C185.7 288 200 273.7 200 256S185.7 224 168 224S136 238.3 136 256S150.3 288 168 288zM256 16H240C166.6 16 106 71 97.1 142C95.9 151.5 103.4 160 113 160H383C392.6 160 400.1 151.6 398.9 142C390 71 329.4 16 256 16z" /> + <glyph glyph-name="layer-group" + unicode="" + horiz-adv-x="512" d=" M12.41 299.98L245.35 194.31C252.15 191.22 259.84 191.22 266.64 194.31L499.58 299.98C516.13 307.49 516.13 332.5 499.58 340.01L266.65 445.69A25.606999999999996 25.606999999999996 0 0 1 245.36 445.69L12.41 340.02C-4.14 332.51 -4.14 307.49 12.41 299.98zM499.59 211.7L441.5 238.03L279.86 164.76C272.3 161.33 264.2700000000001 159.59 256 159.59S239.71 161.33 232.14 164.76L70.51 238.03L12.41 211.7C-4.14 204.2 -4.14 179.2 12.41 171.7L245.35 66.11C252.15 63.03 259.84 63.03 266.64 66.11L499.59 171.7C516.14 179.2 516.14 204.2 499.59 211.7zM499.59 83.9L441.7200000000001 110.13L279.86 36.76C272.3 33.33 264.2700000000001 31.59 256 31.59S239.71 33.33 232.14 36.76L70.29 110.13L12.41 83.9C-4.14 76.4 -4.14 51.4 12.41 43.9L245.35 -61.69C252.15 -64.7700000000001 259.84 -64.7700000000001 266.64 -61.69L499.59 43.9C516.14 51.4 516.14 76.4 499.59 83.9z" /> + <glyph glyph-name="leaf" + unicode="" + horiz-adv-x="576" d=" M546.2 438.3C540.6 450.8 524.6 451.3 517.9000000000001 439.5C486.9 385.6 431.4 352 368 352H288C182 352 96 266 96 160C96 153 96.8 146.3 97.5 139.5C161.3 185.2 253.4 224 384 224C392.8 224 400 216.8 400 208S392.8 192 384 192C132.6 192 26 37.9 2.4 -20C-4.2 -36.3 3.6 -54.9 19.9 -61.6C36.3 -68.4 54.9 -60.5 61.7 -44.3C63.2 -40.7 82.6 3.6 133.6 46.3C166 2.4 227.6 -39.5000000000001 308.5 -30.9C465.5 -19.5 576 121.3 576 293.7C576 343.9 565.2 395.9 546.2 438.3z" /> + <glyph glyph-name="lemon" + unicode="" + horiz-adv-x="512" d=" M489.038 425.037C465.944 448.13 434.648 453.93 413.947 441.871C355.041 407.5590000000001 232.697 494.948 92.874 355.125S40.441 92.959 6.129 34.055C-5.93 13.353 -0.131 -17.944 22.962 -41.038C46.057 -64.133 77.354 -69.929 98.057 -57.87C156.958 -23.56 279.303 -110.9489999999999 419.125 28.873S471.56 291.04 505.871 349.944C517.93 370.646 512.132 401.943 489.038 425.0370000000001zM243.881 352.478C185.692 337.931 110.073 262.323 95.523 204.12C93.706 196.85 87.181 191.996 80.012 191.996C78.728 191.996 77.422 192.152 76.119 192.477C67.547 194.621 62.335 203.307 64.477 211.88C81.901 281.573 166.316 366.07 236.119 383.522C244.694 385.665 253.38 380.453 255.522 371.88S252.453 354.621 243.881 352.478z" /> + <glyph glyph-name="less-than-equal" + unicode="" + horiz-adv-x="448" d=" M54.98 233.8L356.3900000000001 113.93C374.7800000000001 107.9 395.1 116.47 401.7700000000001 133.08L413.86 163.16C420.54 179.77 411.04 198.13 392.6500000000001 204.16L217.21 272.21L392.7700000000001 340.3C411.0600000000001 346.3 420.5100000000001 364.57 413.8700000000001 381.09L401.8400000000001 411.01C395.2000000000001 427.54 374.9800000000001 436.07 356.6900000000001 430.07L54.98 310.11C41.21 305.5900000000001 32 293.5 32 279.93V263.9700000000001C32 250.41 41.21 238.32 54.98 233.8zM424 48H24C10.75 48 0 37.26 0 24V-24C0 -37.25 10.75 -48 24 -48H424C437.25 -48 448 -37.25 448 -24V24C448 37.26 437.25 48 424 48z" /> + <glyph glyph-name="less-than" + unicode="" + horiz-adv-x="384" d=" M365.46 90.26L147.04 192.11L365.51 293.99C381.53 301.4600000000001 388.46 320.5 380.99 336.52L367.4700000000001 365.52C360 381.54 340.96 388.4700000000001 324.94 381L18.48 238.09A32.014 32.014 0 0 1 0 209.09V174.85C0 162.41 7.21 151.1 18.48 145.85L324.79 3.02C340.85 -4.47 359.94 2.48 367.43 18.54L380.99 47.62C388.48 63.68 381.5300000000001 82.7699999999999 365.4600000000001 90.2599999999999z" /> + <glyph glyph-name="level-down-alt" + unicode="" + horiz-adv-x="320" d=" M313.553 55.669L209.587 -56.334C200.102 -66.548 183.911 -66.563 174.413 -56.334L70.438 55.669C56.232 70.969 67.062 96 88.025 96H152V368H68.024A11.996 11.996 0 0 0 59.539 371.515L3.539 427.515C-4.021 435.074 1.333 448 12.024 448H208C221.255 448 232 437.255 232 424V96H295.966C316.844 96 327.817 71.031 313.553 55.669z" /> + <glyph glyph-name="level-up-alt" + unicode="" + horiz-adv-x="320" d=" M313.553 328.331L209.587 440.334C200.102 450.548 183.911 450.563 174.413 440.334L70.438 328.331C56.232 313.031 67.062 288 88.025 288H152V16H68.024A11.996 11.996 0 0 1 59.539 12.485L3.539 -43.515C-4.021 -51.074 1.333 -64 12.024 -64H208C221.255 -64 232 -53.255 232 -40V288H295.966C316.844 288 327.817 312.969 313.553 328.331z" /> + <glyph glyph-name="life-ring" + unicode="" + horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM429.6960000000001 320.4410000000001L366.2970000000001 257.0420000000001C355.31 275.601 339.627 291.294 321.0420000000001 302.2970000000001L384.4410000000001 365.6960000000001A218.396 218.396 0 0 0 429.6960000000001 320.4410000000001zM256 96C202.981 96 160 138.981 160 192S202.981 288 256 288S352 245.019 352 192S309.019 96 256 96zM127.559 365.6960000000001L190.958 302.2970000000001C172.399 291.31 156.706 275.627 145.703 257.0420000000001L82.304 320.4410000000001A218.372 218.372 0 0 0 127.559 365.6960000000001zM82.304 63.559L145.703 126.958C156.69 108.399 172.373 92.706 190.958 81.703L127.559 18.304A218.396 218.396 0 0 0 82.304 63.559zM384.4410000000001 18.304L321.0420000000001 81.703C339.6010000000001 92.6900000000001 355.2940000000001 108.3730000000001 366.2970000000001 126.958L429.6960000000001 63.559A218.40299999999996 218.40299999999996 0 0 0 384.4410000000001 18.304z" /> + <glyph glyph-name="lightbulb" + unicode="" + horiz-adv-x="352" d=" M96.06 -6.35C96.07 -12.64 97.93 -18.8 101.42 -24.04L118.51 -49.73A31.989999999999995 31.989999999999995 0 0 1 145.15 -64.01H206.86A31.989999999999995 31.989999999999995 0 0 1 233.5 -49.73L250.59 -24.04A31.989000000000004 31.989000000000004 0 0 1 255.95 -6.35L255.99 32H96.01L96.06 -6.35zM0 272C0 227.63 16.45 187.15 43.56 156.22C60.08 137.37 85.92 97.99 95.77 64.77C95.81 64.5100000000001 95.84 64.2500000000001 95.88 63.9900000000001H256.12C256.1600000000001 64.2500000000001 256.19 64.5000000000001 256.23 64.77C266.0800000000001 97.99 291.92 137.37 308.44 156.22C335.55 187.15 352 227.63 352 272C352 369.39 272.9100000000001 448.3 175.45 448C73.44 447.69 0 365.03 0 272zM176 352C131.89 352 96 316.11 96 272C96 263.16 88.84 256 80 256S64 263.16 64 272C64 333.76 114.24 384 176 384C184.84 384 192 376.8400000000001 192 368S184.84 352 176 352z" /> + <glyph glyph-name="link" + unicode="" + horiz-adv-x="512" d=" M326.612 262.6090000000001C386.3590000000001 202.8 385.5390000000001 106.911 326.9720000000001 48.019C326.862 47.899 326.7320000000001 47.769 326.612 47.649L259.4120000000001 -19.551C200.142 -78.821 103.713 -78.813 44.452 -19.551C-14.818 39.709 -14.818 136.149 44.452 195.409L81.558 232.515C91.398 242.355 108.344 235.8150000000001 108.852 221.909C109.5 204.187 112.678 186.382 118.542 169.1880000000001C120.528 163.3660000000001 119.109 156.9260000000001 114.759 152.576L101.672 139.489C73.646 111.463 72.767 65.8290000000001 100.517 37.5290000000001C128.541 8.95 174.603 8.78 202.842 37.0190000000001L270.0420000000001 104.2090000000001C298.233 132.4 298.115 177.9660000000001 270.0420000000001 206.0390000000001C266.341 209.733 262.6130000000001 212.603 259.701 214.608A16.037 16.037 0 0 0 252.754 227.2140000000001C252.3580000000001 237.7810000000001 256.1020000000001 248.67 264.452 257.0200000000001L285.506 278.0750000000001C291.027 283.596 299.688 284.2740000000001 306.09 279.8060000000001A152.482 152.482 0 0 0 326.612 262.6090000000001zM467.547 403.551C408.286 462.813 311.8570000000001 462.821 252.587 403.551L185.387 336.351C185.267 336.231 185.137 336.101 185.027 335.981C126.461 277.089 125.64 181.2 185.387 121.391A152.454 152.454 0 0 1 205.908 104.1949999999999C212.31 99.7269999999999 220.972 100.406 226.492 105.9259999999999L247.546 126.981C255.896 135.331 259.6400000000001 146.2199999999999 259.2440000000001 156.7869999999999A16.037 16.037 0 0 1 252.2970000000001 169.3929999999999C249.385 171.3979999999999 245.6570000000001 174.2679999999999 241.956 177.9619999999999C213.883 206.035 213.765 251.601 241.956 279.7919999999999L309.156 346.9819999999999C337.395 375.2209999999999 383.456 375.051 411.481 346.4719999999999C439.231 318.1719999999999 438.353 272.5379999999999 410.326 244.5119999999999L397.2390000000001 231.425C392.889 227.075 391.4700000000001 220.6349999999999 393.456 214.8129999999999C399.32 197.619 402.498 179.8139999999999 403.146 162.0919999999999C403.6550000000001 148.1859999999999 420.6 141.6459999999999 430.44 151.4859999999999L467.546 188.5919999999999C526.817 247.851 526.817 344.291 467.547 403.551z" /> + <glyph glyph-name="lira-sign" + unicode="" + horiz-adv-x="384" d=" M371.9940000000001 192H323.975C317.64 192 312 187.088 312 180.754C312 80 230.179 32 144 32V191.219L278.603 221.131A12 12 0 0 1 288 232.845V273.8210000000001C288 281.498 280.891 287.201 273.397 285.535L144 256.781V287.2200000000001L278.603 317.132A12 12 0 0 1 288 328.846V369.8210000000001C288 377.498 280.891 383.201 273.397 381.535L144 352.781V404C144 410.627 138.627 416 132 416H76C69.373 416 64 410.627 64 404V335.003L9.397 322.8690000000001A12 12 0 0 1 0 311.155V270.179C0 262.502 7.109 256.799 14.603 258.4650000000001L64 269.442V239.003L9.397 226.869A12 12 0 0 1 0 215.155V174.179C0 166.502 7.109 160.799 14.603 162.465L64 173.442V-20C64 -26.627 69.373 -32 76 -32H155.583C289.674 -32 378.838 45.834 383.991 179.592C384.252 186.374 378.78 192 371.994 192z" /> + <glyph glyph-name="list-alt" + unicode="" + horiz-adv-x="512" d=" M464 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H464C490.51 416 512 394.51 512 368V16C512 -10.51 490.51 -32 464 -32zM128 328C105.909 328 88 310.091 88 288S105.909 248 128 248S168 265.909 168 288S150.091 328 128 328zM128 232C105.909 232 88 214.091 88 192S105.909 152 128 152S168 169.909 168 192S150.091 232 128 232zM128 136C105.909 136 88 118.091 88 96S105.909 56 128 56S168 73.909 168 96S150.091 136 128 136zM416 272V304C416 310.627 410.627 316 404 316H204C197.373 316 192 310.627 192 304V272C192 265.373 197.373 260 204 260H404C410.627 260 416 265.373 416 272zM416 176V208C416 214.627 410.627 220 404 220H204C197.373 220 192 214.627 192 208V176C192 169.373 197.373 164 204 164H404C410.627 164 416 169.373 416 176zM416 80V112C416 118.627 410.627 124 404 124H204C197.373 124 192 118.627 192 112V80C192 73.373 197.373 68 204 68H404C410.627 68 416 73.373 416 80z" /> + <glyph glyph-name="list-ol" + unicode="" + horiz-adv-x="512" d=" M3.263 308.473C3.263 315.9500000000001 7.18 320.045 14.836 320.045H29.967V359.9220000000001C29.967 365.085 30.501 370.425 30.501 370.425H30.145S28.366 367.755 27.297 366.687C22.846 362.414 16.793 362.236 11.631 367.755L6.113 373.986C0.771 379.327 1.129 385.202 6.647 390.365L28.367 410.303C32.815 414.398 36.732 416 42.785 416H54.89C62.546 416 66.639 412.084 66.639 404.428V320.044H82.127C89.782 320.044 93.699 315.95 93.699 308.472V299.5710000000001C93.699 292.094 89.782 287.999 82.127 287.999H14.836C7.18 287.999 3.263 292.094 3.263 299.5710000000001V308.473zM2.211 143.409C2.211 190.687 53.166 199.792 53.166 212.574C53.166 219.754 47.212 221.329 43.886 221.329C40.733 221.329 37.407 220.278 34.431 217.477C29.352 212.574 23.924 210.473 18.32 215.026L9.741 221.855C3.962 226.408 2.561 231.6600000000001 6.938 237.264C13.592 246.019 26.025 256 47.387 256C66.824 256 91.863 245.494 91.863 216.427C91.863 178.08 45.11 170.025 43.184 159.518H82.233C89.762 159.518 93.79 155.491 93.79 148.136V139.381C93.79 132.027 89.762 127.999 82.233 127.999H14.293C7.288 127.999 2.21 132.027 2.21 139.381V143.409zM5.654 -6.61L11.257 2.67C15.11 9.324 20.362 9.674 26.841 5.8219999999999C31.744 3.7209999999999 36.471 2.67 41.2 2.67C51.355 2.67 55.558 6.172 55.558 10.9C55.558 17.554 49.954 20.006 39.624 20.006H34.896C28.942 20.006 25.616 22.107 22.638 27.886L21.588 29.812C19.137 34.54 20.362 39.6179999999999 24.389 44.696L29.993 51.7C36.822 60.105 42.25 65.183 42.25 65.183V65.533S38.047 64.482 29.642 64.482H16.685C9.155 64.482 5.302 68.5100000000001 5.302 75.864V84.619C5.302 92.149 9.155 96.001 16.685 96.001H75.169C82.698 96.001 86.551 91.9740000000001 86.551 84.619V81.292C86.551 75.514 85.15 71.4860000000001 81.472 67.109L63.963 46.972C83.574 41.8940000000001 92.679 26.485 92.679 12.1270000000001C92.679 -9.2359999999999 78.321 -31.9989999999999 44.176 -31.9989999999999C27.54 -31.9989999999999 15.984 -27.2709999999999 8.28 -22.5439999999999C2.501 -18.3419999999999 1.976 -12.7389999999999 5.654 -6.6099999999999zM144 316H496C504.837 316 512 323.163 512 332V372C512 380.837 504.837 388 496 388H144C135.163 388 128 380.837 128 372V332C128 323.163 135.163 316 144 316zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4z" /> + <glyph glyph-name="list-ul" + unicode="" + horiz-adv-x="512" d=" M96 352C96 325.49 74.51 304 48 304S0 325.49 0 352S21.49 400 48 400S96 378.51 96 352zM48 240C21.49 240 0 218.51 0 192S21.49 144 48 144S96 165.49 96 192S74.51 240 48 240zM48 80C21.49 80 0 58.51 0 32S21.49 -16 48 -16S96 5.49 96 32S74.51 80 48 80zM144 316H496C504.837 316 512 323.163 512 332V372C512 380.837 504.837 388 496 388H144C135.163 388 128 380.837 128 372V332C128 323.163 135.163 316 144 316zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4z" /> + <glyph glyph-name="list" + unicode="" + horiz-adv-x="512" d=" M128 332V372C128 380.837 135.163 388 144 388H496C504.837 388 512 380.837 512 372V332C512 323.163 504.837 316 496 316H144C135.163 316 128 323.163 128 332zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4zM16 304H80C88.837 304 96 311.163 96 320V384C96 392.837 88.837 400 80 400H16C7.163 400 0 392.837 0 384V320C0 311.163 7.163 304 16 304zM16 144H80C88.837 144 96 151.163 96 160V224C96 232.837 88.837 240 80 240H16C7.163 240 0 232.837 0 224V160C0 151.163 7.163 144 16 144zM16 -16H80C88.837 -16 96 -8.837 96 0V64C96 72.837 88.837 80 80 80H16C7.163 80 0 72.837 0 64V0C0 -8.837 7.163 -16 16 -16z" /> + <glyph glyph-name="location-arrow" + unicode="" + horiz-adv-x="512" d=" M444.52 444.48L28.74 252.58C-19.23 230.19 -3.24 159.8300000000001 47.93 159.8300000000001H223.84V-16.0799999999999C223.84 -67.2499999999999 294.2 -83.2499999999999 316.5900000000001 -35.2699999999999L508.49 380.5100000000001C524.48 418.9000000000001 482.9 460.48 444.52 444.48z" /> + <glyph glyph-name="lock-open" + unicode="" + horiz-adv-x="576" d=" M423.5 448C339.5 447.7 272 378.5 272 294.5V224H48C21.5 224 0 202.5 0 176V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V176C448 202.5 426.5 224 400 224H352V295.1C352 334.7 383.7 367.6 423.3 368C463.3 368.4 496 335.9 496 296V216C496 202.7 506.7 192 520 192H552C565.3 192 576 202.7 576 216V296C576 380 507.5 448.3 423.5 448z" /> + <glyph glyph-name="lock" + unicode="" + horiz-adv-x="448" d=" M400 224H376V296C376 379.8 307.8 448 224 448S72 379.8 72 296V224H48C21.5 224 0 202.5 0 176V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V176C448 202.5 426.5 224 400 224zM296 224H152V296C152 335.7 184.3 368 224 368S296 335.7 296 296V224z" /> + <glyph glyph-name="long-arrow-alt-down" + unicode="" + horiz-adv-x="256" d=" M168 102.059V404C168 410.627 162.627 416 156 416H100C93.373 416 88 410.627 88 404V102.059H41.941C20.559 102.059 9.851 76.208 24.97 61.088L111.029 -24.971C120.402 -34.344 135.598 -34.344 144.97 -24.971L231.029 61.088C246.148 76.207 235.44 102.059 214.058 102.059H168z" /> + <glyph glyph-name="long-arrow-alt-left" + unicode="" + horiz-adv-x="448" d=" M134.059 152H436C442.627 152 448 157.373 448 164V220C448 226.627 442.627 232 436 232H134.059V278.059C134.059 299.4410000000001 108.208 310.149 93.088 295.03L7.029 208.971C-2.344 199.598 -2.344 184.402 7.029 175.03L93.088 88.971C108.207 73.852 134.059 84.56 134.059 105.942V152z" /> + <glyph glyph-name="long-arrow-alt-right" + unicode="" + horiz-adv-x="448" d=" M313.941 232H12C5.373 232 0 226.627 0 220V164C0 157.373 5.373 152 12 152H313.941V105.941C313.941 84.559 339.792 73.851 354.912 88.97L440.971 175.029C450.344 184.402 450.344 199.598 440.971 208.97L354.9120000000001 295.029C339.793 310.148 313.9410000000001 299.44 313.9410000000001 278.058V232z" /> + <glyph glyph-name="long-arrow-alt-up" + unicode="" + horiz-adv-x="256" d=" M88 281.9410000000001V-20C88 -26.627 93.373 -32 100 -32H156C162.627 -32 168 -26.627 168 -20V281.9410000000001H214.059C235.441 281.9410000000001 246.149 307.7920000000001 231.03 322.9120000000001L144.971 408.971C135.598 418.344 120.402 418.344 111.03 408.971L24.971 322.9120000000001C9.852 307.793 20.56 281.9410000000001 41.942 281.9410000000001H88z" /> + <glyph glyph-name="low-vision" + unicode="" + horiz-adv-x="576" d=" M569.344 216.369C512.96 312.051 407.81 376 288 376C259.532 376 231.898 372.381 205.549 365.591L152.778 437.76C145.177 448.618 130.214 451.26 119.355 443.6600000000001L106.241 434.482C95.381 426.881 92.739 411.916 100.341 401.056L143.472 342.661C89.449 316.27 40.228 273.317 6.682 216.419C6.672 216.402 6.659 216.386 6.648 216.369C-2.117 201.494 -2.316 182.841 6.648 167.63C45.148 102.298 106.39 51.768 179.507 26.281L55.316 203.698A272.194 272.194 0 0 0 83.61 239.61L203.01 69.03H203.02L243.65 10.99A330.055 330.055 0 0 1 322.59 9.8199999999999L132.61 281.2199999999999A277.628 277.628 0 0 0 171.387 302.7829999999999L423.223 -53.7610000000001C430.824 -64.619 445.7870000000001 -67.2600000000001 456.646 -59.6610000000001L469.76 -50.4830000000001C480.62 -42.8820000000001 483.262 -27.9160000000001 475.66 -17.0570000000001L432.54 41.3199999999999L432.533 41.329C489.694 69.307 537.3679999999999 113.369 569.343 167.63A47.937999999999995 47.937999999999995 0 0 1 569.3439999999999 216.369zM390.026 102.06L370.9600000000001 129.29C395.6420000000001 161.857 398.6710000000001 205.643 379.7600000000001 240.9700000000001V240.9400000000001C379.7600000000001 217.29 360.5900000000001 198.12 336.9400000000001 198.12C313.1120000000001 198.12 294.1200000000001 217.469 294.1200000000001 240.9400000000001C294.1200000000001 264.5900000000001 313.2900000000001 283.76 336.9400000000001 283.76H336.9700000000001C312.2200000000001 297.009 283.4480000000001 299.403 257.4600000000001 291.4400000000001L238.392 318.677C253.758 324.694 270.488 328 288 328C363.1620000000001 328 424 267.174 424 192C424 157.496 411.167 126.025 390.026 102.06z" /> + <glyph glyph-name="luggage-cart" + unicode="" + horiz-adv-x="640" d=" M224 128H256V352H224C206.33 352 192 337.67 192 320V160C192 142.33 206.33 128 224 128zM576 160V320C576 337.67 561.67 352 544 352H512V128H544C561.67 128 576 142.33 576 160zM624 64H128V432C128 440.84 120.84 448 112 448H16C7.16 448 0 440.84 0 432V400C0 391.16 7.16 384 16 384H64V16C64 7.16 71.16 0 80 0H162.94C161.15 -5.03 160 -10.36 160 -16C160 -42.51 181.49 -64 208 -64S256 -42.51 256 -16C256 -10.36 254.85 -5.03 253.06 0H450.94C449.15 -5.03 448 -10.36 448 -16C448 -42.51 469.49 -64 496 -64S544 -42.51 544 -16C544 -10.36 542.85 -5.03 541.06 0H624C632.84 0 640 7.16 640 16V48C640 56.84 632.84 64 624 64zM480 352V400C480 426.51 458.51 448 432 448H336C309.49 448 288 426.51 288 400V128H480V352zM432 352H336V400H432V352z" /> + <glyph glyph-name="magic" + unicode="" + horiz-adv-x="512" d=" M224 352L240 384L272 400L240 416L224 448L208 416L176 400L208 384L224 352zM80 288L106.66 341.33L160 368L106.66 394.67L80 448L53.34 394.67L0 368L53.34 341.33L80 288zM432 160L405.34 106.67L352 80L405.3400000000001 53.33L432 0L458.66 53.33L512 80L458.66 106.67L432 160zM502.62 353.77L417.77 438.62C411.53 444.88 403.34 448 395.15 448C386.96 448 378.77 444.88 372.52 438.62L9.38 75.48C-3.12 62.98 -3.12 42.72 9.38 30.23L94.23 -54.62C100.48 -60.87 108.67 -63.99 116.85 -63.99C125.04 -63.99 133.23 -60.87 139.48 -54.62L502.62 308.53C515.12 321.01 515.12 341.28 502.62 353.77zM359.45 244.54L308.54 295.45L395.14 382.05L446.05 331.14L359.45 244.54z" /> + <glyph glyph-name="magnet" + unicode="" + horiz-adv-x="512.1" d=" M164.1 288H12C5.4 288 0 293.4 0 300V380C0 399.9 16.1 416 36 416H140C159.9 416 176 399.9 176 380V300C176.1 293.4 170.7 288 164.1 288zM512.1 300V380.1C512.1 400 496 416.1 476.1 416.1H372.1C352.2000000000001 416.1 336.1 400 336.1 380.1V300.1C336.1 293.5 341.5 288.1 348.1 288.1H500.1C506.7 288 512.1 293.4 512.1 300zM348.1 256C341.5 256 336.1 250.6 336.1 244V192C336.1 63.9 176.1 64.1 176.1 192V244C176.1 250.6 170.7 256 164.1 256H12.1C5.4 256 0.1 250.6 0.1 243.9C0.2 222.5 0.7 203.6 0.1 190.6C0.1 40 136.3 -56 256.9 -56C377.5 -56 512 40 512 190.7C511.4 203.5 511.8 223.7 512 243.9C512 250.6 506.7 256 500 256H348.1z" /> + <glyph glyph-name="mail-bulk" + unicode="" + horiz-adv-x="576" d=" M160 0C134.4 0 108.8 22.4 96 32C32 76.8 12.8 92.8 0 102.4V-32C0 -49.67 14.33 -64 32 -64H288C305.67 -64 320 -49.67 320 -32V102.4C307.2 92.8 288 76.8 224 32C211.2 22.4 185.6 0 160 0zM288 192H32C14.33 192 0 177.67 0 160V144C25.6 124.8 22.4 124.8 115.2 57.6C124.8 51.2 144 32 160 32S195.2 51.2 204.8 54.4C297.6 121.6 294.4 121.6 320 140.8V160C320 177.67 305.67 192 288 192zM544 288H224C206.33 288 192 273.67 192 256V224H288C321.21 224 348.5900000000001 198.58 351.71 166.18L352 166.4V32H544C561.67 32 576 46.33 576 64V256C576 273.67 561.67 288 544 288zM512 160H448V224H512V160zM160 256C160 291.29 188.71 320 224 320H448V416C448 433.67 433.67 448 416 448H96C78.33 448 64 433.67 64 416V224H160V256z" /> + <glyph glyph-name="male" + unicode="" + horiz-adv-x="192" d=" M96 448C131.346 448 160 419.346 160 384S131.346 320 96 320S32 348.654 32 384S60.654 448 96 448M144 304H132.64C109.929 293.557 83.05 293.106 59.36 304H48C21.49 304 0 282.51 0 256V120C0 106.745 10.745 96 24 96H40V-40C40 -53.255 50.745 -64 64 -64H128C141.255 -64 152 -53.255 152 -40V96H168C181.255 96 192 106.745 192 120V256C192 282.51 170.51 304 144 304z" /> + <glyph glyph-name="map-marked-alt" + unicode="" + horiz-adv-x="576" d=" M288 448C218.41 448 162 391.5900000000001 162 322C162 265.74 244.35 163.2 275.9 125.98C282.29 118.44 293.72 118.44 300.1 125.98C331.65 163.2 414 265.74 414 322C414 391.5900000000001 357.59 448 288 448zM288 280C264.8 280 246 298.8 246 322S264.8 364 288 364S330 345.2 330 322S311.2 280 288 280zM20.12 232.05A32.006 32.006 0 0 1 0 202.34V-47.98C0 -59.3 11.43 -67.04 21.94 -62.84L160 0V233.08C151.16 249.06 143.93 264.62 138.75 279.5L20.12 232.05zM288 88.33C273.93 88.33 260.62 94.51 251.49 105.29C231.83 128.49 210.92 154.91 192 182.01V0.01L384 -63.99V182C365.08 154.91 344.18 128.48 324.51 105.28C315.38 94.51 302.07 88.33 288 88.33zM554.06 286.84L416 224V-64L555.88 -8.05A31.996 31.996 0 0 1 576 21.66V271.98C576 283.3 564.57 291.04 554.06 286.84z" /> + <glyph glyph-name="map-marked" + unicode="" + horiz-adv-x="576" d=" M288 448C218.41 448 162 391.5900000000001 162 322C162 265.74 244.35 163.2 275.9 125.98C282.29 118.44 293.72 118.44 300.1 125.98C331.65 163.2 414 265.74 414 322C414 391.5900000000001 357.59 448 288 448zM20.12 232.05A32.006 32.006 0 0 1 0 202.34V-47.98C0 -59.3 11.43 -67.04 21.94 -62.84L160 0V233.08C151.16 249.06 143.93 264.62 138.75 279.5L20.12 232.05zM288 88.33C273.93 88.33 260.62 94.51 251.49 105.29C231.83 128.49 210.92 154.91 192 182.01V0.01L384 -63.99V182C365.08 154.91 344.18 128.48 324.51 105.28C315.38 94.51 302.07 88.33 288 88.33zM554.06 286.84L416 224V-64L555.88 -8.05A31.996 31.996 0 0 1 576 21.66V271.98C576 283.3 564.57 291.04 554.06 286.84z" /> + <glyph glyph-name="map-marker-alt" + unicode="" + horiz-adv-x="384" d=" M172.268 -53.67C26.97 156.969 0 178.587 0 256C0 362.039 85.961 448 192 448S384 362.039 384 256C384 178.587 357.03 156.969 211.732 -53.67C202.197 -67.444 181.802 -67.443 172.268 -53.67zM192 176C236.183 176 272 211.817 272 256S236.183 336 192 336S112 300.183 112 256S147.817 176 192 176z" /> + <glyph glyph-name="map-marker" + unicode="" + horiz-adv-x="384" d=" M172.268 -53.67C26.97 156.969 0 178.587 0 256C0 362.039 85.961 448 192 448S384 362.039 384 256C384 178.587 357.03 156.969 211.732 -53.67C202.197 -67.444 181.802 -67.443 172.268 -53.67z" /> + <glyph glyph-name="map-pin" + unicode="" + horiz-adv-x="288" d=" M112 131.06V-25.63L134.02 -58.65C138.77 -65.77 149.24 -65.77 153.99 -58.65L176 -25.63V131.06C165.61 129.14 154.94 128 144 128S122.39 129.14 112 131.06zM144 448C64.47 448 0 383.53 0 304S64.47 160 144 160S288 224.47 288 304S223.53 448 144 448zM144 372C106.5 372 76 341.5 76 304C76 297.38 70.62 292 64 292S52 297.38 52 304C52 354.73 93.28 396 144 396C150.62 396 156 390.62 156 384S150.62 372 144 372z" /> + <glyph glyph-name="map-signs" + unicode="" + horiz-adv-x="512" d=" M507.31 363.31L464 406.63C458 412.63 449.86 416 441.37 416H288V432C288 440.84 280.84 448 272 448H240C231.16 448 224 440.84 224 432V416H56C42.75 416 32 405.25 32 392V312C32 298.75 42.75 288 56 288H441.37C449.86 288 457.99 291.37 464 297.37L507.31 340.68C513.56 346.94 513.56 357.06 507.31 363.31zM224 -48C224 -56.84 231.16 -64 240 -64H272C280.84 -64 288 -56.84 288 -48V64H224V-48zM456 224H288V256H224V224H70.63C62.14 224 54.01 220.63 48 214.63L4.69 171.31C-1.56 165.06 -1.56 154.93 4.69 148.68L48 105.37C54 99.37 62.14 96 70.63 96H456C469.25 96 480 106.75 480 120V200C480 213.25 469.25 224 456 224z" /> + <glyph glyph-name="map" + unicode="" + horiz-adv-x="576" d=" M0 330.3400000000001V-15.98C0 -27.3 11.43 -35.04 21.94 -30.84L160 32V416L20.12 360.05A32.006 32.006 0 0 1 0 330.3400000000001zM192 32L384 -32V352L192 416V32zM554.06 414.8400000000001L416 352V-32L555.88 23.95A31.996 31.996 0 0 1 576 53.66V399.98C576 411.3 564.57 419.04 554.06 414.84z" /> + <glyph glyph-name="marker" + unicode="" + horiz-adv-x="512" d=" M93.95 157.97A327.038 327.038 0 0 1 0.17 -37.11L0.14 -37.34C-1.56 -52.62 11.35 -65.5400000000001 26.63 -63.85A327.02000000000004 327.02000000000004 0 0 1 221.97 29.95L297.37 105.35L169.35 233.3700000000001L93.95 157.97zM485.49 421.49C450.14 456.84 392.82 456.84 357.4700000000001 421.49L335.7100000000001 399.73L299.1500000000001 436.28C283.5300000000001 451.9 258.2000000000001 451.9 242.5900000000001 436.28L138.47 332.16C132.22 325.91 132.22 315.78 138.47 309.53L161.09 286.91C167.34 280.66 177.47 280.66 183.72 286.91L270.87 374.06L290.46 354.4700000000001L191.98 256L320 127.98L485.49 293.4700000000001C520.84 328.8200000000001 520.84 386.13 485.49 421.49z" /> + <glyph glyph-name="mars-double" + unicode="" + horiz-adv-x="512" d=" M340 448H261C250.3 448 245 435.1 252.5 427.5L269.4 410.6L220.7 361.9C198.5 375.9 172.2 384 144 384C64.5 384 0 319.5 0 240S64.5 96 144 96S288 160.5 288 240C288 268.2 279.9 294.5 265.9 316.7L314.6 365.4L331.5 348.5C333.8999999999999 346.1 337 345 339.8999999999999 345C346.0999999999999 345 352 349.8 352 357V436C352 442.6 346.6 448 340 448zM144 160C99.9 160 64 195.9 64 240S99.9 320 144 320S224 284.1 224 240S188.1 160 144 160zM500 288.1H421C410.3 288.1 405 275.2 412.5 267.6L429.4 250.7L380.7 202C362.5 213.4 341.7 220.9 319.2 223.3C317.1 201.5 311 180 300.8 160C301.9000000000001 160 303 160.1 304 160.1C348.1 160.1 384 124.2000000000001 384 80.1S348.1 0.1 304 0.1S224 36 224 80.1C224 81.2000000000001 224 82.3 224.1 83.3C204.1 73.1 182.6 66.9 160.8 64.9C168.4 -7.6 229.6 -64 304 -64C383.5 -64 448 0.5 448 80C448 108.2 439.9 134.5 425.9 156.7L474.6 205.4L491.4999999999999 188.5C493.8999999999999 186.1 496.8999999999999 185 499.8999999999999 185C506.0999999999999 185 511.9999999999999 189.8 511.9999999999999 197V276C511.9999999999999 282.7 506.6 288.1 499.9999999999999 288.1z" /> + <glyph glyph-name="mars-stroke-h" + unicode="" + horiz-adv-x="480" d=" M476.2 200.5L420.3 256.4C412.7 264 399.8 258.6 399.8 247.9V224H376V244C376 250.6 370.6 256 364 256H324C317.4 256 312 250.6 312 244V224H284.4C278.6 249.6 265.7 273.9 245.8 293.8C189.6 350 98.4 350 42.2 293.8C-14 237.6 -14 146.4 42.2 90.2000000000001C98.4 34.0000000000001 189.6 34.0000000000001 245.8 90.2000000000001C265.7 110.1 278.6 134.4 284.4000000000001 160.0000000000001H312V140.0000000000001C312 133.4 317.4 128.0000000000001 324 128.0000000000001H364C370.6 128.0000000000001 376 133.4 376 140.0000000000001V160.0000000000001H399.9V136.1000000000001C399.9 125.4000000000001 412.8 120.1000000000001 420.4 127.6000000000001L476.3 183.5000000000001C480.9 188.2000000000001 480.9 195.8000000000001 476.1999999999999 200.5000000000001zM200.6 135.4C169.4 104.2 118.7 104.2 87.5 135.4C56.3 166.6 56.3 217.3 87.5 248.5C118.7 279.7 169.4 279.7 200.6 248.5C231.8 217.4 231.8 166.6 200.6 135.4z" /> + <glyph glyph-name="mars-stroke-v" + unicode="" + horiz-adv-x="288" d=" M245.8 213.8C225.9 233.7 201.6 246.6 176 252.4V277.8H196C202.6 277.8 208 283.2000000000001 208 289.8V329.8C208 336.4 202.6 341.8 196 341.8H176V366.6H199.9C210.6 366.6 215.9 379.5 208.4 387.1L152.5 442.9C147.8 447.6 140.2 447.6 135.5 442.9L79.6 387C72 379.4 77.4 366.5 88.1 366.5H112V341.8H92C85.4 341.8 80 336.4 80 329.8V289.8C80 283.2000000000001 85.4 277.8 92 277.8H112V252.4C86.4 246.6 62.1 233.7 42.2 213.8C-14 157.6 -14 66.4 42.2 10.2C98.4 -45.9999999999999 189.6 -45.9999999999999 245.8 10.2C302.1 66.4 302.1 157.6 245.8 213.8000000000001zM200.6 55.4C169.4 24.2 118.7 24.2 87.5 55.4C56.3 86.6 56.3 137.3 87.5 168.5C118.7 199.7 169.4 199.7 200.6 168.5C231.8 137.4 231.8 86.6 200.6 55.4z" /> + <glyph glyph-name="mars-stroke" + unicode="" + horiz-adv-x="384" d=" M372 384H293C282.3 384 277 371.1 284.5 363.5L301.4 346.6L283.9 329.1L269.8 343.2C265.1 347.9 257.5 347.9 252.8 343.2L224.5 315C219.8 310.3 219.8 302.7 224.5 298L238.6 283.9L220.6 265.9C198.4 279.9 172.1 288 143.9 288C64.5 288 0 223.5 0 144S64.5 0 144 0S288 64.5 288 144C288 172.2 279.9 198.5 265.9 220.7L283.9 238.7L298 224.6C302.7 219.9 310.3 219.9 315 224.6L343.3 252.9C348 257.6 348 265.2000000000001 343.3 269.9L329.2 284L346.7 301.5L363.6 284.6C371.2 277 384.1 282.4 384.1 293.1V372C384 378.6 378.6 384 372 384zM144 64C99.9 64 64 99.9 64 144S99.9 224 144 224S224 188.1 224 144S188.1 64 144 64z" /> + <glyph glyph-name="mars" + unicode="" + horiz-adv-x="384" d=" M372 384H293C282.3 384 277 371.1 284.5 363.5L301.4 346.6L220.7 265.9C198.5 279.9 172.2 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0S288 64.5 288 144C288 172.2 279.9 198.5 265.9 220.7L346.6 301.4L363.5 284.5C371.1 276.9 384 282.3 384 293V372C384 378.6 378.6 384 372 384zM144 64C99.9 64 64 99.9 64 144S99.9 224 144 224S224 188.1 224 144S188.1 64 144 64z" /> + <glyph glyph-name="medal" + unicode="" + horiz-adv-x="512" d=" M223.75 317.25L154.62 432.46A31.997 31.997 0 0 1 127.18 448H16.03C3.08 448 -4.5 433.43 2.92 422.82L114.19 263.86C143.91 291.63 181.71 310.69 223.75 317.25zM495.97 448H384.82C373.58 448 363.16 442.1 357.38 432.46L288.25 317.25C330.29 310.69 368.0900000000001 291.63 397.81 263.87L509.08 422.82C516.5 433.43 508.92 448 495.97 448zM256 288C158.8 288 80 209.2 80 112S158.8 -64 256 -64S432 14.8 432 112S353.2 288 256 288zM348.52 130.74L310.59 93.78L319.56 41.5600000000001C321.1600000000001 32.2 311.3 25.0500000000001 302.9100000000001 29.4700000000001L256 54.12L209.1 29.47C200.7 25.02 190.85 32.21 192.45 41.56L201.42 93.78L163.49 130.74C156.67 137.38 160.44 148.97 169.84 150.3299999999999L222.27 157.9699999999999L245.7 205.4899999999999C247.81 209.7699999999999 251.89 211.8799999999999 255.98 211.8799999999999C260.09 211.8799999999999 264.2 209.7399999999999 266.31 205.4899999999999L289.74 157.9699999999999L342.17 150.3299999999999C351.57 148.9699999999999 355.3400000000001 137.38 348.5200000000001 130.74z" /> + <glyph glyph-name="medkit" + unicode="" + horiz-adv-x="512" d=" M96 -32H416V320H384V368C384 394.51 362.51 416 336 416H176C149.49 416 128 394.51 128 368V320H96V-32zM192 352H320V320H192V352zM512 272V16C512 -10.51 490.51 -32 464 -32H448V320H464C490.51 320 512 298.51 512 272zM64 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V-32zM352 176V144C352 135.163 344.837 128 336 128H288V80C288 71.163 280.837 64 272 64H240C231.163 64 224 71.163 224 80V128H176C167.163 128 160 135.163 160 144V176C160 184.837 167.163 192 176 192H224V240C224 248.837 231.163 256 240 256H272C280.837 256 288 248.837 288 240V192H336C344.837 192 352 184.837 352 176z" /> + <glyph glyph-name="meh-blank" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" /> + <glyph glyph-name="meh-rolling-eyes" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM88 224C88 248.3 101.7 269.2 121.6 280C120.9 277.4 120 274.8 120 272C120 254.3 134.3 240 152 240S184 254.3 184 272C184 274.8 183.1 277.4 182.4 280C202.3 269.2 216 248.3 216 224C216 188.7 187.3 160 152 160S88 188.7 88 224zM312 48H184C162.8 48 162.8 80 184 80H312C333.2 80 333.2 48 312 48zM344 160C308.7 160 280 188.7 280 224C280 248.3 293.7 269.2 313.6 280C312.9000000000001 277.4 312 274.8 312 272C312 254.3 326.3 240 344 240S376 254.3 376 272C376 274.8 375.1 277.4 374.4 280C394.3 269.2 408 248.3 408 224C408 188.7 379.3 160 344 160z" /> + <glyph glyph-name="meh" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM168 272C185.7 272 200 257.7 200 240S185.7 208 168 208S136 222.3 136 240S150.3 272 168 272zM344 80H152C130.8 80 130.8 112 152 112H344C365.2 112 365.2 80 344 80zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" /> + <glyph glyph-name="memory" + unicode="" + horiz-adv-x="640" d=" M640 317.06V352C640 369.67 625.67 384 608 384H32C14.33 384 0 369.67 0 352V317.06C18.6 310.45 32 292.87 32 272S18.6 233.55 0 226.94V128H640V226.94C621.4 233.55 608 251.13 608 272S621.4 310.45 640 317.06zM224 192H160V320H224V192zM352 192H288V320H352V192zM480 192H416V320H480V192zM0 0H64V26.67C64 35.51 71.16 42.67 80 42.67S96 35.51 96 26.67V0H224V26.67C224 35.51 231.16 42.67 240 42.67S256 35.51 256 26.67V0H384V26.67C384 35.51 391.1600000000001 42.67 400 42.67S416 35.51 416 26.67V0H544V26.67C544 35.51 551.16 42.67 560 42.67S576 35.51 576 26.67V0H640V96H0V0z" /> + <glyph glyph-name="menorah" + unicode="" + horiz-adv-x="640" d=" M144 288H112C103.16 288 96 280.8400000000001 96 272V160H160V272C160 280.8400000000001 152.84 288 144 288zM240 288H208C199.16 288 192 280.8400000000001 192 272V160H256V272C256 280.8400000000001 248.84 288 240 288zM432 288H400C391.1600000000001 288 384 280.8400000000001 384 272V160H448V272C448 280.8400000000001 440.84 288 432 288zM528 288H496C487.16 288 480 280.8400000000001 480 272V160H544V272C544 280.8400000000001 536.84 288 528 288zM608 320C625.67 320 640 334.33 640 352S608 416 608 416S576 369.67 576 352S590.33 320 608 320zM512 320C529.67 320 544 334.33 544 352S512 416 512 416S480 369.67 480 352S494.33 320 512 320zM416 320C433.67 320 448 334.33 448 352S416 416 416 416S384 369.67 384 352S398.33 320 416 320zM320 352C337.67 352 352 366.33 352 384S320 448 320 448S288 401.67 288 384S302.33 352 320 352zM224 320C241.67 320 256 334.33 256 352S224 416 224 416S192 369.67 192 352S206.33 320 224 320zM128 320C145.67 320 160 334.33 160 352S128 416 128 416S96 369.67 96 352S110.33 320 128 320zM32 320C49.67 320 64 334.33 64 352S32 416 32 416S0 369.67 0 352S14.33 320 32 320zM576 160C576 142.33 561.67 128 544 128H352V304C352 312.8400000000001 344.84 320 336 320H304C295.1600000000001 320 288 312.8400000000001 288 304V128H96C78.33 128 64 142.33 64 160V272C64 280.8400000000001 56.84 288 48 288H16C7.16 288 0 280.8400000000001 0 272V160C0 106.98 42.98 64 96 64H288V0H112C103.16 0 96 -7.16 96 -16V-48C96 -56.84 103.16 -64 112 -64H528C536.84 -64 544 -56.84 544 -48V-16C544 -7.16 536.84 0 528 0H352V64H544C597.02 64 640 106.98 640 160V272C640 280.8400000000001 632.84 288 624 288H592C583.16 288 576 280.8400000000001 576 272V160z" /> + <glyph glyph-name="mercury" + unicode="" + horiz-adv-x="288" d=" M288 240C288 284.2 268.1 323.7 236.8 350.1C239.3 351.9 241.7 353.9 244 355.9C268.7 377.1 283.8 404.7 287.2 434.7C288.1 441.8 282.5 448 275.3 448H234.8C229 448 224.1 443.9 223 438.2C220.6 425.7 213.4 413.9 202.3 404.4C187 391.2 166.3 384 144 384S101 391.2 85.6 404.4C74.5 413.9 67.4 425.7 64.9 438.2C63.8 443.9 58.9 448 53.2 448H12.7C5.5 448 -0.1 441.8 0.8 434.7C4.2 404.6 19.2 377 44 355.8C46.3 353.8 48.7 351.9 51.2 350C19.9 323.7 0 284.2 0 240C0 171.5 47.9 114.1 112 99.6V48H76C69.4 48 64 42.6 64 36V-4C64 -10.6 69.4 -16 76 -16H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-16H212C218.6 -16 224 -10.6 224 -4V36C224 42.6 218.6 48 212 48H176V99.6C240.1 114.1 288 171.5 288 240.0000000000001zM64 240C64 284.1 99.9 320 144 320S224 284.1 224 240S188.1 160 144 160S64 195.9 64 240z" /> + <glyph glyph-name="microchip" + unicode="" + horiz-adv-x="512" d=" M416 400V-16C416 -42.51 394.51 -64 368 -64H144C117.49 -64 96 -42.51 96 -16V400C96 426.51 117.49 448 144 448H368C394.51 448 416 426.51 416 400zM512 342V330A6 6 0 0 0 506 324H488V318A6 6 0 0 0 482 312H440V360H482A6 6 0 0 0 488 354V348H506A6 6 0 0 0 512 342zM512 246V234A6 6 0 0 0 506 228H488V222A6 6 0 0 0 482 216H440V264H482A6 6 0 0 0 488 258V252H506A6 6 0 0 0 512 246zM512 150V138A6 6 0 0 0 506 132H488V126A6 6 0 0 0 482 120H440V168H482A6 6 0 0 0 488 162V156H506A6 6 0 0 0 512 150zM512 54V42A6 6 0 0 0 506 36H488V30A6 6 0 0 0 482 24H440V72H482A6 6 0 0 0 488 66V60H506A6 6 0 0 0 512 54zM30 72H72V24H30A6 6 0 0 0 24 30V36H6A6 6 0 0 0 0 42V54A6 6 0 0 0 6 60H24V66A6 6 0 0 0 30 72zM30 168H72V120H30A6 6 0 0 0 24 126V132H6A6 6 0 0 0 0 138V150A6 6 0 0 0 6 156H24V162A6 6 0 0 0 30 168zM30 264H72V216H30A6 6 0 0 0 24 222V228H6A6 6 0 0 0 0 234V246A6 6 0 0 0 6 252H24V258A6 6 0 0 0 30 264zM30 360H72V312H30A6 6 0 0 0 24 318V324H6A6 6 0 0 0 0 330V342A6 6 0 0 0 6 348H24V354A6 6 0 0 0 30 360z" /> + <glyph glyph-name="microphone-alt-slash" + unicode="" + horiz-adv-x="640" d=" M633.82 -10.1L476.26 111.67C488.74 135.79 496 163.02 496 192V240C496 248.84 488.84 256 480 256H464C455.16 256 448 248.84 448 240V192C448 174.08 444.04 157.2 437.28 141.8L410.73 162.32C413.83 171.72 416.01 181.54 416.01 191.99H372.3399999999999L330.94 223.99H416V255.99H330.67C324.7800000000001 255.99 320 259.5700000000001 320 263.99V279.99C320 284.41 324.78 287.99 330.67 287.99H416V319.99H330.67C324.7800000000001 319.99 320 323.57 320 327.99V343.99C320 348.4100000000001 324.78 351.99 330.67 351.99H416C416 405.01 373.02 447.99 320 447.99S224 405.01 224 351.99V306.63L45.47 444.63C38.49 450.05 28.43 448.8 23.01 441.82L3.37 416.55C-2.05 409.58 -0.8 399.53 6.18 394.1L594.54 -60.63C601.52 -66.0599999999999 611.5699999999999 -64.7999999999999 617 -57.82L636.64 -32.55C642.05 -25.58 640.8 -15.53 633.8199999999999 -10.1zM400 -16H344V17.78C355.71 19.4 367.1 22.0599999999999 377.96 25.86L327.56 64.8199999999999C320.85 64.42 314.15 63.9499999999999 307.21 64.62C251.36 70.0699999999999 208.47 113.25 196.03 166.4699999999999L144 206.69V199.84C144 110.2 207.97 30.29 296 18.15V-16H240C231.16 -16 224 -23.16 224 -32V-48C224 -56.84 231.16 -64 240 -64H400C408.84 -64 416 -56.84 416 -48V-32C416 -23.16 408.84 -16 400 -16z" /> + <glyph glyph-name="microphone-alt" + unicode="" + horiz-adv-x="352" d=" M336 256H320C311.1600000000001 256 304 248.84 304 240V192C304 117.2 239.51 57.18 163.21 64.62C96.71 71.11 48 130.89 48 197.7V240C48 248.84 40.84 256 32 256H16C7.16 256 0 248.84 0 240V199.84C0 110.2 63.97 30.29 152 18.15V-16H96C87.16 -16 80 -23.16 80 -32V-48C80 -56.84 87.16 -64 96 -64H256C264.84 -64 272 -56.84 272 -48V-32C272 -23.16 264.84 -16 256 -16H200V17.77C285.71 29.53 352 103.1 352 192V240C352 248.84 344.84 256 336 256zM176 96C229.02 96 272 138.98 272 192H186.67C180.78 192 176 195.58 176 200V216C176 220.42 180.78 224 186.67 224H272V256H186.67C180.78 256 176 259.5800000000001 176 264V280C176 284.42 180.78 288 186.67 288H272V320H186.67C180.78 320 176 323.58 176 328V344C176 348.42 180.78 352 186.67 352H272C272 405.02 229.02 448 176 448S80 405.02 80 352V192C80 138.98 122.98 96 176 96z" /> + <glyph glyph-name="microphone-slash" + unicode="" + horiz-adv-x="640" d=" M633.82 -10.1L476.02 111.86C488.61 135.87 496 162.99 496 192V240C496 248.84 488.84 256 480 256H464C455.16 256 448 248.84 448 240V192C448 174.08 444.04 157.2 437.28 141.8L410.73 162.32C413.83 171.72 416.01 181.54 416.01 191.99V352C416.01 405.02 373.0299999999999 448 320.01 448S224.0099999999999 405.02 224.0099999999999 352V306.64L45.47 444.63C38.49 450.05 28.43 448.8 23.01 441.82L3.37 416.55C-2.05 409.58 -0.8 399.53 6.18 394.1L594.54 -60.63C601.52 -66.0599999999999 611.5699999999999 -64.7999999999999 617 -57.82L636.64 -32.55C642.05 -25.58 640.8 -15.53 633.8199999999999 -10.1zM400 -16H344V17.77C355.6600000000001 19.37 366.85 22.31 377.67 26.08L327.56 64.81C320.85 64.41 314.15 63.94 307.21 64.61C251.36 70.06 208.47 113.24 196.03 166.46L144 206.69V199.84C144 110.2 207.97 30.29 296 18.15V-16H240C231.16 -16 224 -23.16 224 -32V-48C224 -56.84 231.16 -64 240 -64H400C408.84 -64 416 -56.84 416 -48V-32C416 -23.16 408.84 -16 400 -16z" /> + <glyph glyph-name="microphone" + unicode="" + horiz-adv-x="352" d=" M176 96C229.02 96 272 138.98 272 192V352C272 405.02 229.02 448 176 448S80 405.02 80 352V192C80 138.98 122.98 96 176 96zM336 256H320C311.1600000000001 256 304 248.84 304 240V192C304 117.2 239.51 57.18 163.21 64.62C96.71 71.11 48 130.89 48 197.7V240C48 248.84 40.84 256 32 256H16C7.16 256 0 248.84 0 240V199.84C0 110.2 63.97 30.29 152 18.15V-16H96C87.16 -16 80 -23.16 80 -32V-48C80 -56.84 87.16 -64 96 -64H256C264.84 -64 272 -56.84 272 -48V-32C272 -23.16 264.84 -16 256 -16H200V17.77C285.71 29.53 352 103.1 352 192V240C352 248.84 344.84 256 336 256z" /> + <glyph glyph-name="microscope" + unicode="" + horiz-adv-x="512" d=" M160 128H172V112C172 103.16 179.16 96 188 96H228C236.84 96 244 103.16 244 112V128H256C273.67 128 288 142.33 288 160V384C288 401.67 273.67 416 256 416V432C256 440.84 248.84 448 240 448H176C167.16 448 160 440.84 160 432V416C142.33 416 128 401.67 128 384V160C128 142.33 142.33 128 160 128zM464 0H462.71C493.24 34.01 512 78.8 512 128C512 233.88 425.88 320 320 320V256C390.58 256 448 198.58 448 128S390.58 0 320 0H48C21.49 0 0 -21.49 0 -48C0 -56.84 7.16 -64 16 -64H496C504.84 -64 512 -56.84 512 -48C512 -21.49 490.51 0 464 0zM104 32H312C316.42 32 320 35.58 320 40V56C320 60.42 316.42 64 312 64H104C99.58 64 96 60.42 96 56V40C96 35.58 99.58 32 104 32z" /> + <glyph glyph-name="minus-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM124 152C117.4 152 112 157.4 112 164V220C112 226.6 117.4 232 124 232H388C394.6 232 400 226.6 400 220V164C400 157.4 394.6 152 388 152H124z" /> + <glyph glyph-name="minus-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM92 152C85.4 152 80 157.4 80 164V220C80 226.6 85.4 232 92 232H356C362.6 232 368 226.6 368 220V164C368 157.4 362.6 152 356 152H92z" /> + <glyph glyph-name="minus" + unicode="" + horiz-adv-x="448" d=" M416 240H32C14.33 240 0 225.67 0 208V176C0 158.33 14.33 144 32 144H416C433.67 144 448 158.33 448 176V208C448 225.67 433.67 240 416 240z" /> + <glyph glyph-name="mobile-alt" + unicode="" + horiz-adv-x="320" d=" M272 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H272C298.5 -64 320 -42.5 320 -16V400C320 426.5 298.5 448 272 448zM160 -32C142.3 -32 128 -17.7 128 0S142.3 32 160 32S192 17.7 192 0S177.7 -32 160 -32zM272 76C272 69.4 266.6 64 260 64H60C53.4 64 48 69.4 48 76V388C48 394.6 53.4 400 60 400H260C266.6 400 272 394.6 272 388V76z" /> + <glyph glyph-name="mobile" + unicode="" + horiz-adv-x="320" d=" M272 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H272C298.5 -64 320 -42.5 320 -16V400C320 426.5 298.5 448 272 448zM160 -32C142.3 -32 128 -17.7 128 0S142.3 32 160 32S192 17.7 192 0S177.7 -32 160 -32z" /> + <glyph glyph-name="money-bill-alt" + unicode="" + horiz-adv-x="640" d=" M352 160H336V248C336 252.42 332.42 256 328 256H314.42C309.68 256 305.05 254.6 301.11 251.97L285.7800000000001 241.75A7.993999999999999 7.993999999999999 0 0 1 283.56 230.66L292.44 217.35A7.993999999999999 7.993999999999999 0 0 1 303.53 215.13L304 215.44V160H288C283.58 160 280 156.42 280 152V136C280 131.58 283.58 128 288 128H352C356.42 128 360 131.58 360 136V152C360 156.42 356.42 160 352 160zM608 384H32C14.33 384 0 369.67 0 352V32C0 14.33 14.33 0 32 0H608C625.67 0 640 14.33 640 32V352C640 369.67 625.67 384 608 384zM48 48V112C83.35 112 112 83.35 112 48H48zM48 272V336H112C112 300.65 83.35 272 48 272zM320 80C266.98 80 224 130.15 224 192C224 253.86 266.98 304 320 304S416 253.86 416 192C416 130.13 373 80 320 80zM592 48H528C528 83.35 556.65 112 592 112V48zM592 272C556.65 272 528 300.65 528 336H592V272z" /> + <glyph glyph-name="money-bill-wave-alt" + unicode="" + horiz-adv-x="640" d=" M621.16 393.54C582.37 409.81 543.55 416 504.75 416C381.58 416.01 258.42 353.66 135.25 353.66C104.36 353.66 73.49 357.58 42.6 367.38C39.13 368.48 35.65 369 32.25 369C15.04 369 0 355.68 0 337.19V19.93C0 7.3 7.23 -4.67 18.84 -9.53C57.63 -25.81 96.45 -32 135.25 -32C258.42 -32 381.5900000000001 30.35 504.76 30.35C535.65 30.35 566.52 26.43 597.41 16.63C600.88 15.53 604.36 15.01 607.76 15.01C624.97 15.01 640.01 28.33 640.01 46.82V364.07C640 376.71 632.77 388.67 621.16 393.54zM320 96C275.81 96 240 138.99 240 192C240 245.02 275.82 288 320 288S400 245.02 400 192C400 138.97 364.17 96 320 96z" /> + <glyph glyph-name="money-bill-wave" + unicode="" + horiz-adv-x="640" d=" M621.16 393.54C582.37 409.81 543.55 416 504.75 416C381.58 416.01 258.42 353.66 135.25 353.66C104.36 353.66 73.49 357.58 42.6 367.38C39.13 368.48 35.65 369 32.25 369C15.04 369 0 355.68 0 337.19V19.93C0 7.3 7.23 -4.67 18.84 -9.53C57.63 -25.81 96.45 -32 135.25 -32C258.42 -32 381.5900000000001 30.35 504.76 30.35C535.65 30.35 566.52 26.43 597.41 16.63C600.88 15.53 604.36 15.01 607.76 15.01C624.97 15.01 640.01 28.33 640.01 46.82V364.07C640 376.71 632.77 388.67 621.16 393.54zM48 315.78C68.12 310.74 89.12 308.2100000000001 110.72 306.85C104.84 277.4600000000001 79 255.31 48 255.31V315.78zM48 30.78V78.56C82.37 78.56 110.18 51.29 111.71 17.16C89.18 18.97 68.12 23.47 48 30.78zM320 96C275.81 96 240 138.99 240 192C240 245.02 275.82 288 320 288S400 245.02 400 192C400 138.97 364.17 96 320 96zM592 68.22C574.48 72.61 556.29 75.0700000000001 537.68 76.66C543.55 102.74 565.18 122.54 592 125.9400000000001V68.22zM592 304.3300000000001C561.11 308.24 537.14 334.0300000000001 536.19 365.8800000000001C555.73 363.7100000000001 574.2800000000001 359.6500000000001 592 353.2200000000001V304.3300000000001z" /> + <glyph glyph-name="money-bill" + unicode="" + horiz-adv-x="640" d=" M608 384H32C14.33 384 0 369.67 0 352V32C0 14.33 14.33 0 32 0H608C625.67 0 640 14.33 640 32V352C640 369.67 625.67 384 608 384zM48 48V112C83.35 112 112 83.35 112 48H48zM48 272V336H112C112 300.65 83.35 272 48 272zM320 96C275.81 96 240 138.99 240 192C240 245.02 275.82 288 320 288S400 245.02 400 192C400 138.97 364.17 96 320 96zM592 48H528C528 83.35 556.65 112 592 112V48zM592 272C556.65 272 528 300.65 528 336H592V272z" /> + <glyph glyph-name="money-check-alt" + unicode="" + horiz-adv-x="640" d=" M608 416H32C14.33 416 0 401.67 0 384V0C0 -17.67 14.33 -32 32 -32H608C625.67 -32 640 -17.67 640 0V384C640 401.67 625.67 416 608 416zM176 120.12V104C176 99.58 172.42 96 168 96H152C147.58 96 144 99.58 144 104V120.29C132.71 120.87 121.73 124.81 112.63 131.6400000000001C108.73 134.5700000000001 108.53 140.41 112.06 143.78L123.81 154.99C126.58 157.63 130.7 157.75 133.94 155.72C137.81 153.3 142.2 152 146.76 152H174.87C181.37 152 186.67 157.92 186.67 165.19C186.67 171.14 183.06 176.38 177.9 177.92L132.9 191.42C114.31 197 101.32 214.84 101.32 234.81C101.32 259.3300000000001 120.37 279.25 143.99 279.88V296C143.99 300.42 147.57 304 151.99 304H167.99C172.41 304 175.99 300.42 175.99 296V279.7100000000001C187.28 279.13 198.26 275.2000000000001 207.36 268.36C211.26 265.43 211.46 259.5900000000001 207.93 256.2200000000001L196.18 245.01C193.41 242.3700000000001 189.29 242.2500000000001 186.05 244.2800000000001C182.18 246.7100000000001 177.79 248.0000000000001 173.23 248.0000000000001H145.12C138.62 248.0000000000001 133.32 242.0800000000001 133.32 234.8100000000001C133.32 228.8600000000001 136.93 223.62 142.09 222.0800000000001L187.09 208.5800000000001C205.68 203 218.67 185.16 218.67 165.1900000000001C218.67 140.6600000000001 199.62 120.7500000000001 176 120.1200000000001zM416 136C416 131.58 412.42 128 408 128H296C291.58 128 288 131.58 288 136V152C288 156.42 291.58 160 296 160H408C412.42 160 416 156.42 416 152V136zM576 136C576 131.58 572.42 128 568 128H488C483.58 128 480 131.58 480 136V152C480 156.42 483.58 160 488 160H568C572.42 160 576 156.42 576 152V136zM576 232C576 227.58 572.42 224 568 224H296C291.58 224 288 227.58 288 232V248C288 252.42 291.58 256 296 256H568C572.42 256 576 252.42 576 248V232z" /> + <glyph glyph-name="money-check" + unicode="" + horiz-adv-x="640" d=" M0 0C0 -17.67 14.33 -32 32 -32H608C625.67 -32 640 -17.67 640 0V320H0V0zM448 208C448 216.84 455.16 224 464 224H560C568.84 224 576 216.84 576 208V176C576 167.16 568.84 160 560 160H464C455.16 160 448 167.16 448 176V208zM448 88C448 92.42 451.58 96 456 96H568C572.42 96 576 92.42 576 88V72C576 67.58 572.42 64 568 64H456C451.58 64 448 67.58 448 72V88zM64 184C64 188.42 67.58 192 72 192H376C380.42 192 384 188.42 384 184V168C384 163.58 380.42 160 376 160H72C67.58 160 64 163.58 64 168V184zM64 88C64 92.42 67.58 96 72 96H248C252.42 96 256 92.42 256 88V72C256 67.58 252.42 64 248 64H72C67.58 64 64 67.58 64 72V88zM624 416H16C7.16 416 0 408.8400000000001 0 400V352H640V400C640 408.8400000000001 632.84 416 624 416z" /> + <glyph glyph-name="monument" + unicode="" + horiz-adv-x="384" d=" M368 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H368C376.84 -64 384 -56.84 384 -48V-16C384 -7.16 376.84 0 368 0zM289.14 347.26A31.97 31.97 0 0 1 279.93 366.7L203.31 443.31C197.06 449.56 186.93 449.56 180.68 443.31L104.08 366.7A31.97 31.97 0 0 1 94.87 347.26L64 32H320L289.14 347.26zM240 140.8C240 134.4 233.6 128 227.2 128H156.8C150.4 128 144 134.4 144 140.8V179.2C144 185.6 150.4 192 156.8 192H227.2C233.6 192 240 185.6 240 179.2V140.8z" /> + <glyph glyph-name="moon" + unicode="" + horiz-adv-x="512" d=" M283.211 -64C362.173 -64 434.29 -28.075 482.068 30.792C489.136 39.5000000000001 481.429 52.222 470.506 50.1420000000001C346.303 26.4880000000001 232.244 121.7180000000001 232.244 247.0960000000001C232.244 319.3180000000001 270.906 385.7310000000001 333.742 421.4900000000001C343.428 427.0020000000001 340.992 441.6870000000001 329.986 443.7200000000001A258.156 258.156 0 0 1 283.211 448C141.902 448 27.211 333.4890000000001 27.211 192C27.211 50.691 141.722 -64 283.211 -64z" /> + <glyph glyph-name="mortar-pestle" + unicode="" + horiz-adv-x="512" d=" M501.54 387.0900000000001C518.76 404.31 514.0500000000001 433.3400000000001 492.27 444.23A35.696 35.696 0 0 1 454.9 440.86L251.09 288H402.4600000000001L501.54 387.0900000000001zM496 256H16C7.16 256 0 248.84 0 240V208C0 199.16 7.16 192 16 192H32C32 111.02 82.2 41.89 153.13 13.68C140.37 -3.19 131.41 -23.12 128.18 -45.01C126.72 -54.93 134.22 -63.99 144.25 -63.99H367.75C377.78 -63.99 385.28 -54.93 383.82 -45.01C380.6 -23.12 371.64 -3.19 358.87 13.68C429.8 41.89 480 111.02 480 192H496C504.84 192 512 199.16 512 208V240C512 248.84 504.84 256 496 256z" /> + <glyph glyph-name="mosque" + unicode="" + horiz-adv-x="640" d=" M0 -32C0 -49.67 14.33 -64 32 -64H96C113.67 -64 128 -49.67 128 -32V288H0V-32zM579.16 160C597.02 177.39 608 197.34 608 218.91C608 271.77 566.21 312.7 520.08 341.81C478.14 368.28 439.4500000000001 399.58 408.1200000000001 438.03L400 448L391.88 438.03C360.55 399.58 321.87 368.27 279.92 341.81C233.79 312.7 192 271.77 192 218.91C192 197.34 202.98 177.39 220.84 160H579.16zM608 128H192C174.33 128 160 113.67 160 96V-32C160 -49.67 174.33 -64 192 -64H224V0C224 17.67 238.33 32 256 32S288 17.67 288 0V-64H352V8C352 56 400 80 400 80S448 56 448 8V-64H512V0C512 17.67 526.33 32 544 32S576 17.67 576 0V-64H608C625.67 -64 640 -49.67 640 -32V96C640 113.67 625.67 128 608 128zM64 448S0 416 0 352V320H128V352C128 416 64 448 64 448z" /> + <glyph glyph-name="motorcycle" + unicode="" + horiz-adv-x="640" d=" M512.949 255.997C498.0869999999999 256.105 483.809 253.675 470.515 249.123L437.589 304H520C533.255 304 544 314.745 544 328V360C544 373.255 533.255 384 520 384H474.689A24 24 0 0 1 456.85 376.055L419.3540000000001 334.392L396.5800000000001 372.348A24 24 0 0 1 376 384H296C287.163 384 280 376.837 280 368V352C280 343.163 287.163 336 296 336H362.411L381.611 304H227.904C210.177 327.073 182.98 344 128 344H72.54C59.085 344 47.749 332.9890000000001 48.004 319.536C48.252 306.495 58.9 296 72 296H128C152.504 296 166.686 285.081 175.787 271.231L164.496 250.702C151.49 254.567 137.625 256.438 123.245 255.912C55.857 253.451 1.565 198.395 0.034 130.979C-1.603 58.924 56.317 0 128 0C187.642 0 237.744 40.794 251.953 96H336.189C349.862 96 360.778 107.421 360.165 121.077C358.0470000000001 168.197 377.687 214.742 416.35 246.103L428.8350000000001 225.295C401.189 201.641 383.7380000000001 166.415 384.004 127.116C384.4740000000001 57.56 441.207 0.664 510.762 0.006C582.391 -0.672 640.601 57.493 639.996 129.105C639.408 198.696 582.5409999999999 255.491 512.949 255.997zM128 48C83.888 48 48 83.888 48 128S83.888 208 128 208C132.242 208 136.405 207.659 140.469 207.018L98.97 131.566C90.187 115.593 101.762 96 120 96H201.297C188.927 67.775 160.737 48 128 48zM516.351 48.116C470.272 45.663 432 82.446 432 128C432 149.363 440.4340000000001 168.781 454.125 183.144L503.537 100.792C508.083 93.215 517.912 90.758 525.489 95.304L539.2090000000001 103.5360000000001C546.7860000000001 108.0820000000001 549.243 117.9110000000001 544.6970000000001 125.4880000000001L496.1410000000001 206.4150000000001A80.005 80.005 0 0 0 512 208C557.554 208 594.338 169.727 591.884 123.648C589.724 83.09 556.91 50.276 516.351 48.116z" /> + <glyph glyph-name="mouse-pointer" + unicode="" + horiz-adv-x="320" d=" M302.189 118.874H196.105L251.936 -17.119C255.825 -26.547 251.381 -37.118 242.492 -41.118L193.327 -62.545C184.162 -66.5450000000001 173.884 -61.974 169.995 -52.831L116.942 76.305L30.278 -12.8330000000001C18.729 -24.71 0 -15.554 0 0.023V429.701C0 446.101 19.921 454.096 30.277 442.557L314.689 150.0150000000001C326.161 138.8360000000001 317.696 118.874 302.189 118.874z" /> + <glyph glyph-name="music" + unicode="" + horiz-adv-x="512" d=" M511.99 415.99C511.99 437.7 490.89 453 470.39 446.5L150.4 352C137.1 347.8 128 335.5 128 321.5V60.08C117.95 62.46 107.28 64 96 64C42.98 64 0 35.35 0 0S42.98 -64 96 -64S192 -35.35 192 0V233.69L448 308.71V124.08C437.95 126.46 427.28 128 416 128C362.98 128 320 99.35 320 64S362.98 0 416 0S512 28.65 512 64L511.99 415.99z" /> + <glyph glyph-name="neuter" + unicode="" + horiz-adv-x="288" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V131.6C240.1 146.1 288 203.5 288 272zM144 192C99.9 192 64 227.9 64 272S99.9 352 144 352S224 316.1 224 272S188.1 192 144 192z" /> + <glyph glyph-name="newspaper" + unicode="" + horiz-adv-x="576" d=" M552 384H88C74.745 384 64 373.255 64 360V352H24C10.745 352 0 341.255 0 328V56C0 25.072 25.072 0 56 0H528C554.51 0 576 21.49 576 48V360C576 373.255 565.255 384 552 384zM56 48A8 8 0 0 0 48 56V304H64V56A8 8 0 0 0 56 48zM292 64H140C133.373 64 128 69.373 128 76V84C128 90.627 133.373 96 140 96H292C298.627 96 304 90.627 304 84V76C304 69.373 298.627 64 292 64zM500 64H348C341.373 64 336 69.373 336 76V84C336 90.627 341.373 96 348 96H500C506.627 96 512 90.627 512 84V76C512 69.373 506.627 64 500 64zM292 160H140C133.373 160 128 165.373 128 172V180C128 186.627 133.373 192 140 192H292C298.627 192 304 186.627 304 180V172C304 165.373 298.627 160 292 160zM500 160H348C341.373 160 336 165.373 336 172V180C336 186.627 341.373 192 348 192H500C506.627 192 512 186.627 512 180V172C512 165.373 506.627 160 500 160zM500 256H140C133.373 256 128 261.373 128 268V308C128 314.627 133.373 320 140 320H500C506.627 320 512 314.627 512 308V268C512 261.373 506.627 256 500 256z" /> + <glyph glyph-name="not-equal" + unicode="" + horiz-adv-x="448" d=" M416 240C433.67 240 448 254.33 448 272V304C448 321.67 433.67 336 416 336H392.12L443.99 402.81C449.36 409.83 448.0300000000001 419.87 441.02 425.24L415.61 444.7C408.5900000000001 450.08 398.55 448.74 393.17 441.73L311.09 336H32C14.33 336 0 321.67 0 304V272C0 254.33 14.33 240 32 240H236.56L162.03 144H32C14.33 144 0 129.67 0 112V80C0 62.33 14.33 48 32 48H87.49L35.62 -18.81C30.25 -25.82 31.58 -35.86 38.59 -41.24L64 -60.7C71.02 -66.08 81.06 -64.74 86.43 -57.73L168.52 48H416C433.67 48 448 62.33 448 80V112C448 129.67 433.67 144 416 144H243.05L317.5800000000001 240H416z" /> + <glyph glyph-name="notes-medical" + unicode="" + horiz-adv-x="384" d=" M336 384H256C256 419.3 227.3 448 192 448S128 419.3 128 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V336C384 362.5 362.5 384 336 384zM192 408C205.3 408 216 397.3 216 384S205.3 360 192 360S168 370.7 168 384S178.7 408 192 408zM288 104C288 99.6 284.4 96 280 96H224V40C224 35.6 220.4 32 216 32H168C163.6 32 160 35.6 160 40V96H104C99.6 96 96 99.6 96 104V152C96 156.4 99.6 160 104 160H160V216C160 220.4 163.6 224 168 224H216C220.4 224 224 220.4 224 216V160H280C284.4 160 288 156.4 288 152V104zM288 296C288 291.6 284.4 288 280 288H104C99.6 288 96 291.6 96 296V312C96 316.4 99.6 320 104 320H280C284.4 320 288 316.4 288 312V296z" /> + <glyph glyph-name="object-group" + unicode="" + horiz-adv-x="512" d=" M480 320V352H500C506.627 352 512 357.373 512 364V404C512 410.627 506.627 416 500 416H460C453.373 416 448 410.627 448 404V384H64V404C64 410.627 58.627 416 52 416H12C5.373 416 0 410.627 0 404V364C0 357.373 5.373 352 12 352H32V32H12C5.373 32 0 26.627 0 20V-20C0 -26.627 5.373 -32 12 -32H52C58.627 -32 64 -26.627 64 -20V0H448V-20C448 -26.627 453.373 -32 460 -32H500C506.627 -32 512 -26.627 512 -20V20C512 26.627 506.627 32 500 32H480V320zM96 172V308C96 314.627 101.373 320 108 320H276C282.627 320 288 314.627 288 308V172C288 165.373 282.627 160 276 160H108C101.373 160 96 165.373 96 172zM416 76C416 69.373 410.627 64 404 64H236C229.373 64 224 69.373 224 76V128H296C309.255 128 320 138.745 320 152V224H404C410.627 224 416 218.627 416 212V76z" /> + <glyph glyph-name="object-ungroup" + unicode="" + horiz-adv-x="576" d=" M64 128V102A6 6 0 0 0 58 96H6A6 6 0 0 0 0 102V154A6 6 0 0 0 6 160H32V352H6A6 6 0 0 0 0 358V410A6 6 0 0 0 6 416H58A6 6 0 0 0 64 410V384H352V410A6 6 0 0 0 358 416H410A6 6 0 0 0 416 410V358A6 6 0 0 0 410 352H384V160H410A6 6 0 0 0 416 154V102A6 6 0 0 0 410 96H358A6 6 0 0 0 352 102V128H64zM544 192V224H570A6 6 0 0 1 576 230V282A6 6 0 0 1 570 288H518A6 6 0 0 1 512 282V256H408V184H416C429.255 184 440 173.255 440 160V96C440 82.745 429.255 72 416 72H352C338.745 72 328 82.745 328 96V104H192V32H166A6 6 0 0 1 160 26V-26A6 6 0 0 1 166 -32H218A6 6 0 0 1 224 -26V0H512V-26A6 6 0 0 1 518 -32H570A6 6 0 0 1 576 -26V26A6 6 0 0 1 570 32H544V192z" /> + <glyph glyph-name="oil-can" + unicode="" + horiz-adv-x="640" d=" M629.8 287.69L416 224L365.51 249.24A64.07 64.07 0 0 1 336.89 256H280V304H336C344.84 304 352 311.16 352 320V336C352 344.8400000000001 344.84 352 336 352H176C167.16 352 160 344.8400000000001 160 336V320C160 311.16 167.16 304 176 304H232V256H176L37.72 281.14A31.899999999999995 31.899999999999995 0 0 1 31.93 281.67C14.67 281.67 0 267.64 0 249.66V154.71C0 139.25 11.06 125.99 26.28 123.23L96 110.54V64C96 46.33 110.33 32 128 32H402.63C411.18 32 419.38 35.42 425.39 41.51L637.65 256.26C639.15 257.76 639.99 259.8 639.99 261.92V280C640 285.31 634.91 289.15 629.8 287.69zM96 159.33L48 168.06V230.49L96 221.76V159.3300000000001zM549.3299999999999 74.67C549.3299999999999 51.11 568.43 31.9999999999999 591.9999999999999 31.9999999999999S634.6699999999998 51.1 634.6699999999998 74.67S592 160 592 160S549.33 98.23 549.33 74.67z" /> + <glyph glyph-name="om" + unicode="" + horiz-adv-x="512" d=" M360.6 387.06A10.43 10.43 0 0 1 375.36 387.06L396.93 408.62A10.43 10.43 0 0 1 396.93 423.38L375.35 444.94C371.2700000000001 449.01 364.67 449.01 360.5900000000001 444.94L339.0200000000001 423.38A10.43 10.43 0 0 1 339.0200000000001 408.62L360.6 387.06zM412.11 256C385.42 256 360.3400000000001 245.61 341.4700000000001 226.75L317.2200000000001 202.5C310.4400000000001 195.73 301.4400000000001 192 291.8400000000001 192H245C255.54 214.1 259.17 240.11 252.73 267.23C242.63 309.7800000000001 206.37 343.3400000000001 163.21 350.42C127.06 356.35 92.31 345.38 67.2 321.64C59.84 314.68 60.23 302.79 68.32 296.7100000000001L94.47 277.0800000000001C100.19 272.78 108.13 272.76 113.67 277.29C122.12 284.1900000000001 132.69 288 143.94 288C170.41 288 191.95 266.4700000000001 191.95 240.0000000000001S170.41 192 143.94 192H112.04C100.08 192 92.3 179.42 97.65 168.72L113.74 136.55C116.27 131.49 121.34 128.45 126.91 128H159.94C195.24 128 223.95 99.3 223.95 64S195.24 0 159.94 0C63.92 0 37.59 54.02 14.79 92.03C10.26 99.58 0.02 95.61 0 86.81C-0.09 32 41.13 -64 159.94 -64C230.53 -64 287.9600000000001 -6.58 287.9600000000001 64C287.9600000000001 87.42 281.1800000000001 109.1 270.1500000000001 128H291.8400000000001C318.5300000000001 128 343.61 138.39 362.48 157.25L386.73 181.5C393.51 188.27 402.51 192 412.11 192C431.89 192 447.99 175.91 447.99 156.12V56C447.99 42.77 429.2200000000001 32 415.98 32C376.5800000000001 32 349.31 56.24 334.1600000000001 74.89C329.3900000000001 80.76 319.9600000000001 77.43 319.9600000000001 69.87V32S319.9600000000001 -32 415.98 -32C464.52 -32 512 7.47 512 56V156.12C512 211.2 467.2 256 412.11 256zM454.29 380.73C368.74 315.61 285.24 377.98 281.7100000000001 380.68C275.6900000000001 385.3 267.2700000000001 385.06 261.5700000000001 380.13C255.8300000000001 375.2100000000001 254.3000000000001 366.9600000000001 257.9100000000001 360.3300000000001C259.5200000000001 357.38 298.2800000000001 287.99 376.7100000000001 287.99C456.6300000000001 287.99 475.49 319.35 478.46 325.65C479.48 327.77 479.99 330.12 479.99 332.48V368C479.99 381.2200000000001 464.85 388.69 454.29 380.73z" /> + <glyph glyph-name="outdent" + unicode="" + horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM208 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H208C199.163 292 192 284.837 192 276V236C192 227.163 199.163 220 208 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM208 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H208C199.163 164 192 156.837 192 148V108C192 99.163 199.163 92 208 92zM4.687 180.687L100.687 84.703C110.734 74.652 128 81.776 128 96.016V287.992C128 302.3210000000001 110.675 309.296 100.687 299.305L4.687 203.313C-1.562 197.065 -1.562 186.935 4.687 180.687z" /> + <glyph glyph-name="paint-brush" + unicode="" + horiz-adv-x="512" d=" M167.02 138.66C126.9 136.0800000000001 90.49 120.8 69.83 66.36C67.48 60.15 61.83 56.38 55.24 56.38C44.13 56.38 9.78 84.05 -0.01 90.73C0 8.38 37.93 -64 128 -64C203.86 -64 256 -20.23 256 56.19C256 59.3 255.35 62.27 255.03 65.32L167.02 138.66zM457.89 448C442.73 448 428.52 441.29 417.68 431.55C213.27 248.95 192 244.66 192 190.91C192 177.21 195.25 164.15 200.73 152.21L264.55 99.03C271.76 97.23 279.19 96.0000000000001 286.94 96.0000000000001C349.05 96.0000000000001 385.05 141.47 498.1 352.4600000000001C505.48 366.8100000000001 512 382.3100000000001 512 398.4500000000001C512 427.36 486 448 457.89 448z" /> + <glyph glyph-name="paint-roller" + unicode="" + horiz-adv-x="512" d=" M416 320V416C416 433.67 401.67 448 384 448H32C14.33 448 0 433.67 0 416V320C0 302.33 14.33 288 32 288H384C401.67 288 416 302.3300000000001 416 320zM448 384V256C448 238.33 433.67 224 416 224H256C220.65 224 192 195.35 192 160V128C174.33 128 160 113.67 160 96V-32C160 -49.67 174.33 -64 192 -64H256C273.67 -64 288 -49.67 288 -32V96C288 113.67 273.67 128 256 128V160H416C469.02 160 512 202.98 512 256V320C512 355.35 483.35 384 448 384z" /> + <glyph glyph-name="palette" + unicode="" + horiz-adv-x="512" d=" M204.3 443C104.9 423.6 24.8 343.7 5.2 244.6C-31.8 57.6 136.9 -81.7999999999999 264 -62.1C305.2 -55.7 325.4 -7.5 306.5 29.6C283.4 74.9999999999999 316.4 128 367.4 128H447.1C482.9 128 511.9 157.6 512 193.3C511.5 350.9 368.1 474.9 204.3 443zM96 128C78.3 128 64 142.3 64 160S78.3 192 96 192S128 177.7 128 160S113.7 128 96 128zM128 256C110.3 256 96 270.3 96 288S110.3 320 128 320S160 305.7 160 288S145.7 256 128 256zM256 320C238.3 320 224 334.3 224 352S238.3 384 256 384S288 369.7 288 352S273.7 320 256 320zM384 256C366.3 256 352 270.3 352 288S366.3 320 384 320S416 305.7 416 288S401.7 256 384 256z" /> + <glyph glyph-name="pallet" + unicode="" + horiz-adv-x="640" d=" M144 192H496C504.8 192 512 199.2 512 208V432C512 440.8 504.8 448 496 448H384V320L320 352L256 320V448H144C135.2 448 128 440.8 128 432V208C128 199.2 135.2 192 144 192zM624 64C632.8 64 640 71.2 640 80V112C640 120.8 632.8 128 624 128H16C7.2 128 0 120.8 0 112V80C0 71.2 7.2 64 16 64H64V0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H624C632.8 -64 640 -56.8 640 -48V-16C640 -7.2 632.8 0 624 0H576V64H624zM288 0H128V64H288V0zM512 0H352V64H512V0z" /> + <glyph glyph-name="paper-plane" + unicode="" + horiz-adv-x="512" d=" M476 444.8L12.5 177.4C-5.6 167 -3.3 141.8 14.7 134.2L121 89.6L408.3 342.8C413.8 347.7000000000001 421.6 340.2000000000001 416.9000000000001 334.5L176 41V-39.5C176 -63.1 204.5 -72.4 218.5 -55.3L282 22L406.6 -30.2C420.8 -36.2 437 -27.3 439.6 -12L511.6 420C515 440.2 493.3 454.8 476 444.8z" /> + <glyph glyph-name="paperclip" + unicode="" + horiz-adv-x="448" d=" M43.246 -18.142C-15.184 42.147 -14.095 139.369 44.632 199.439L254.392 414C298.708 459.332 370.743 459.336 415.063 414C458.953 369.106 459.006 296.671 415.063 251.724L232.214 64.872C202.359 34.335 153.581 34.761 124.232 65.87C95.957 95.84 96.864 143.343 125.684 172.823L269.427 319.658C275.6090000000001 325.972 285.7390000000001 326.08 292.053 319.899L314.914 297.52C321.229 291.338 321.336 281.208 315.155 274.894L171.427 128.073C166.495 123.028 166.191 114.645 170.779 109.781C175.151 105.1469999999999 182.024 105.0699999999999 186.467 109.6159999999999L369.316 296.467C388.929 316.529 388.929 349.1919999999999 369.305 369.265C350.116 388.892 319.348 388.902 300.151 369.265L90.39 154.705C55.627 119.145 55.091 61.585 89.199 26.392C123.209 -8.701 178.184 -8.745 212.257 26.106L384.317 202.105C390.4940000000001 208.424 400.624 208.538 406.943 202.361L429.82 179.997C436.139 173.82 436.254 163.69 430.076 157.3710000000001L258.016 -18.627C198.44 -79.5649999999999 102.073 -78.843 43.246 -18.1419999999999z" /> + <glyph glyph-name="parachute-box" + unicode="" + horiz-adv-x="512" d=" M511.9 273C502.8 348.6 433.5 405.4 353.6 431.7C390 392.3 416 331.1 416 256H444.1L327.5 126.5C325 127.1 322.7 128 320 128H272V256H384C384 371.2 315.1 448 256 448S128 371.2 128 256H240V128H192C189.3 128 187 127.1 184.5 126.5L67.9 256H96C96 331.1 122 392.3 158.4 431.7C78.5 405.3 9.2 348.5 0.1 273C-1 263.9 6.9 256 16.1 256H24.8L161.5 104.1C160.8 101.5 159.9 98.9 159.9 96V-32C159.9 -49.7 174.2 -64 191.9 -64H319.9C337.6 -64 351.9 -49.7 351.9 -32V96C351.9 98.9 351 101.4 350.3 104.1L487.1 256H495.8C505.1 256 513 263.8 511.9 273z" /> + <glyph glyph-name="paragraph" + unicode="" + horiz-adv-x="448" d=" M408 416H177.531C88.948 416 16.045 344.665 16 256.082C15.956 167.679 87.607 96 176 96V-8C176 -21.255 186.745 -32 200 -32H232C245.255 -32 256 -21.255 256 -8V336H288V-8C288 -21.255 298.745 -32 312 -32H344C357.255 -32 368 -21.255 368 -8V336H408C421.255 336 432 346.745 432 360V392C432 405.255 421.255 416 408 416z" /> + <glyph glyph-name="parking" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM240 128H192V80C192 71.2 184.8 64 176 64H144C135.2 64 128 71.2 128 80V304C128 312.8 135.2 320 144 320H240C292.9 320 336 276.9 336 224S292.9 128 240 128zM240 256H192V192H240C257.6 192 272 206.4 272 224S257.6 256 240 256z" /> + <glyph glyph-name="passport" + unicode="" + horiz-adv-x="448" d=" M129.62 272H168.71C170.2 299.03 175.25 323.35 182.92 342.41C155.21 329.17 134.9 303.2200000000001 129.62 272zM129.62 240C134.91 208.78 155.21 182.83 182.92 169.59C175.24 188.65 170.2 212.97 168.71 240.0000000000001H129.62zM224 161.31C231.69 168.76 244.77 195.73 247.43 240H200.56C203.23 195.74 216.31 168.76 224 161.31zM200.57 272H247.44C244.78 316.26 231.7 343.24 224.01 350.69C216.31 343.24 203.23 316.26 200.57 272zM265.08 169.59C292.79 182.8300000000001 313.1 208.78 318.38 240.0000000000001H279.29C277.8 212.97 272.76 188.65 265.08 169.59zM416 448H64C28.65 448 0 419.35 0 384V0C0 -35.35 28.65 -64 64 -64H416C433.67 -64 448 -49.67 448 -32V416C448 433.67 433.67 448 416 448zM336 32H112C103.2 32 96 39.2 96 48S103.2 64 112 64H336C344.8 64 352 56.8 352 48S344.8 32 336 32zM224 128C153.31 128 96 185.31 96 256S153.31 384 224 384S352 326.69 352 256S294.69 128 224 128zM265.08 342.41C272.76 323.35 277.8 299.03 279.29 272H318.38C313.1 303.2200000000001 292.79 329.17 265.08 342.41z" /> + <glyph glyph-name="pastafarianism" + unicode="" + horiz-adv-x="640" d=" M624.54 100.33C591.8399999999999 112.85 567.18 96.08 549.17 83.88C532.11 72.35 525.92 69.46 517.76 72.52C509.64 75.61 506.93 81.9 501.87 101.9C498.54 115.05 494.43 131.22 483.92 144.55C486.16 147.46 488.35 150.34 490.3 153.12C500.47 143.55 513.71 136 532 136C565.95 136 582.87 161.78 594.06 178.83C604.65 194.97 609.06 200 616 200C629.25 200 640 210.75 640 224S629.25 248 616 248C582.05 248 565.13 222.22 553.94 205.17C543.34 189.03 538.94 184 532 184C514.69 184 494.52 245.43 434.74 285.91L451.99 320.41C485.43 322.5 512 350.02 512 384C512 419.35 483.35 448 448 448S384 419.35 384 384C384 370.98 387.94 358.9 394.62 348.79L376.4700000000001 312.49C359.49 317.0900000000001 340.87 320 320.0100000000001 320S280.5200000000001 317.0900000000001 263.5500000000001 312.49L245.4000000000001 348.79C252.06 358.9 256 370.98 256 384C256 419.35 227.35 448 192 448S128 419.35 128 384C128 350.02 154.56 322.5 188.02 320.4L205.27 285.9C145.68 245.56 125.15 184 108 184C101.06 184 96.66 189.03 86.06 205.17C74.88 222.22 57.96 248 24 248C10.75 248 0 237.25 0 224S10.75 200 24 200C30.94 200 35.34 194.97 45.94 178.83C57.13 161.78 74.05 136 108 136C126.29 136 139.53 143.55 149.7 153.11C151.65 150.32 153.84 147.45 156.08 144.54C145.57 131.21 141.46 115.04 138.13 101.89C133.07 81.89 130.36 75.61 122.24 72.5100000000001C114.13 69.4500000000001 107.91 72.34 90.83 83.8700000000001C72.8 96.0700000000001 48.11 112.7900000000001 15.46 100.3200000000001C3.07 95.6 -3.13 81.7400000000001 1.59 69.35C6.31 56.94 20.2 50.74 32.56 55.47C40.72 58.56 46.9 55.66 63.95 44.11C77.5 34.95 94.78 23.25 116.37 23.27C123.54 23.27 131.2 24.55 139.34 27.66C172 40.1 179.32 68.99 184.67 90.1C186.88 98.8200000000001 188.66 104.59 190.62 108.97C207.24 95.36 227.57 83.09 252.26 74.8C242.3 37.8 220.08 -16 192 -16C178.75 -16 168 -26.75 168 -40S178.75 -64 192 -64C258.74 -64 289.05 24.63 299.42 65.14C306.11 64.54 312.8400000000001 64 320 64S333.89 64.54 340.58 65.14C350.95 24.63 381.26 -64 448 -64C461.25 -64 472 -53.25 472 -40S461.25 -16 448 -16C420.06 -16 397.79 37.81 387.78 74.81C412.47 83.1 432.78 95.37 449.4 108.97C451.36 104.59 453.14 98.8200000000001 455.35 90.1C460.6899999999999 68.99 468.02 40.1 500.6799999999999 27.66C508.8199999999999 24.55 516.4799999999999 23.27 523.65 23.27C545.24 23.27 562.52 34.96 576.0699999999999 44.11C593.1199999999999 55.66 599.3499999999999 58.56 607.4599999999999 55.47C619.8499999999999 50.72 633.7299999999999 56.9400000000001 638.43 69.35C643.14 81.75 636.9399999999999 95.61 624.54 100.33zM448 400C456.82 400 464 392.82 464 384S456.82 368 448 368S432 375.18 432 384S439.18 400 448 400zM192 400C200.82 400 208 392.82 208 384S200.82 368 192 368S176 375.18 176 384S183.18 400 192 400z" /> + <glyph glyph-name="paste" + unicode="" + horiz-adv-x="448" d=" M128 264C128 294.879 153.122 320 184 320H320V392C320 405.255 309.255 416 296 416H215.39C204.306 435.11 183.637 448 160 448S115.694 435.11 104.61 416H24C10.745 416 0 405.255 0 392V56C0 42.745 10.745 32 24 32H128V264zM160 408C173.255 408 184 397.255 184 384S173.255 360 160 360S136 370.745 136 384S146.745 408 160 408zM344 160H448V-40C448 -53.255 437.255 -64 424 -64H184C170.745 -64 160 -53.255 160 -40V264C160 277.255 170.745 288 184 288H320V184C320 170.8 330.8 160 344 160zM448 198.059V192H352V288H358.0590000000001A24 24 0 0 0 375.029 280.971L440.9700000000001 215.03A24.002000000000002 24.002000000000002 0 0 0 448 198.059z" /> + <glyph glyph-name="pause-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM240 112C240 103.2 232.8 96 224 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H224C232.8 288 240 280.8 240 272V112zM352 112C352 103.2 344.8 96 336 96H288C279.2 96 272 103.2 272 112V272C272 280.8 279.2 288 288 288H336C344.8 288 352 280.8 352 272V112z" /> + <glyph glyph-name="pause" + unicode="" + horiz-adv-x="448" d=" M144 -31H48C21.5 -31 0 -9.5 0 17V369C0 395.5 21.5 417 48 417H144C170.5 417 192 395.5 192 369V17C192 -9.5 170.5 -31 144 -31zM448 17V369C448 395.5 426.5 417 400 417H304C277.5 417 256 395.5 256 369V17C256 -9.5 277.5 -31 304 -31H400C426.5 -31 448 -9.5 448 17z" /> + <glyph glyph-name="paw" + unicode="" + horiz-adv-x="512" d=" M85.231 117.042C36 117.042 0 174.208 0 216.5C0 244.792 16 274.5420000000001 49.538 274.5420000000001C98.769 274.5420000000001 134.769 217.084 134.769 174.792C134.769 146.5 119.077 117.042 85.231 117.042zM433.231 10.875C433.231 -26.167 401.231 -32 369.846 -32C328.615 -32 295.384 -5.75 256 -5.75C214.769 -5.75 179.692 -31.708 135.077 -31.708C105.23 -31.708 78.769 -22.083 78.769 10.875C78.769 80 180.616 182.667 256 182.667S433.231 79.708 433.231 10.875zM182.462 244.208C132.615 244.208 102.462 303.708 102.462 344.541C102.462 377.208 120.308 416 160 416C210.154 416 240 356.5 240 315.6670000000001C240 283 222.154 244.208 182.462 244.208zM272 315.6670000000001C272 356.5 301.846 416 352 416C391.692 416 409.539 377.208 409.539 344.5420000000001C409.539 303.709 379.385 244.209 329.538 244.209C289.846 244.208 272 283 272 315.6670000000001zM512 216.5C512 174.208 476 117.042 426.769 117.042C392.9220000000001 117.042 377.231 146.5 377.231 174.792C377.231 217.083 413.23 274.5420000000001 462.462 274.5420000000001C496 274.5420000000001 512 244.792 512 216.5z" /> + <glyph glyph-name="peace" + unicode="" + horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM432 192C432 160.07 423.8 130.03 409.43 103.83L280 207.37V373.03C366.23 357.82 432 282.53 432 192zM216 10.97C182.14 16.9400000000001 151.51 32.17 126.71 53.99L216 125.43V10.97zM280 125.43L369.29 54C344.49 32.18 313.86 16.95 280 10.98V125.43zM216 373.03V207.37L86.57 103.83C72.2 130.03 64 160.07 64 192C64 282.53 129.77 357.82 216 373.03z" /> + <glyph glyph-name="pen-alt" + unicode="" + horiz-adv-x="512" d=" M497.94 373.83L437.83 433.94C419.08 452.69 388.67 452.69 369.92 433.94L313.37 377.39L441.39 249.37L497.94 305.92C516.69 324.67 516.69 355.0700000000001 497.94 373.8300000000001zM251.14 394.36C235.52 409.98 210.2 409.98 194.58 394.36L75.8 275.57C69.55 269.32 69.55 259.19 75.8 252.95L98.43 230.32C104.68 224.07 114.81 224.07 121.06 230.32L222.88 332.14L245.51 309.52L93.95 157.97A327.038 327.038 0 0 1 0.17 -37.11L0.14 -37.34C-1.56 -52.62 11.35 -65.5400000000001 26.63 -63.85A327.02000000000004 327.02000000000004 0 0 1 221.97 29.95L418.76 226.74L335.99 309.51L251.14 394.36z" /> + <glyph glyph-name="pen-fancy" + unicode="" + horiz-adv-x="512" d=" M79.18 165.06A32.005 32.005 0 0 1 58.94 144.82L0 -32L4.69 -36.69L97.58 56.2C96.92 58.76 96.01 61.23 96.01 64C96.01 81.67 110.34 96 128.01 96S160.01 81.67 160.01 64S145.68 32 128.01 32C125.24 32 122.77 32.91 120.21 33.57L27.32 -59.32L32 -64L208.82 -5.06A31.982999999999997 31.982999999999997 0 0 1 229.06 15.18L262.13 99.25L163.25 198.13L79.18 165.06zM369.25 419.68L186.14 220.19L283.99 122.34L483.48 305.4500000000001C568.4 380.52 443.73 503.94 369.25 419.68z" /> + <glyph glyph-name="pen-nib" + unicode="" + horiz-adv-x="512" d=" M136.6 309.2100000000001A64.003 64.003 0 0 1 93.29 267.86L0 -12L14.69 -26.69L164.8 123.42C161.81 129.68 160 136.6 160 144C160 170.51 181.49 192 208 192S256 170.51 256 144S234.51 96 208 96C200.6 96 193.68 97.81 187.42 100.8L37.31 -49.31L52 -64L331.86 29.29A64.003 64.003 0 0 1 373.2100000000001 72.6L416 224L288 352L136.6 309.2100000000001zM497.9399999999999 373.8300000000001L437.83 433.94C419.08 452.69 388.67 452.69 369.92 433.94L313.37 377.39L441.39 249.37L497.94 305.92C516.69 324.67 516.69 355.0700000000001 497.94 373.8300000000001z" /> + <glyph glyph-name="pen-square" + unicode="" + horiz-adv-x="448" d=" M400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368V16C448 -10.5 426.5 -32 400 -32zM238.1 270.1L102.4 134.4L96.1 77.3C95.3 69.6999999999999 101.7 63.1999999999999 109.4 63.9999999999999L166.5 70.3L302.2 206C304.5 208.3 304.5 212.1 302.2 214.5L246.7 270C244.2 272.4 240.4 272.4 238.1 270.1zM345 282.9L314.9 313C305.5 322.4 290.3 322.4 281 313L257.9 289.9C255.6 287.6 255.6 283.8 257.9 281.4L313.4 225.9C315.7 223.6 319.5 223.6 321.9 225.9L345 249C354.3 258.3 354.3 273.5 345 282.9z" /> + <glyph glyph-name="pen" + unicode="" + horiz-adv-x="512" d=" M290.74 354.76L418.76 226.74L140.77 -51.25L26.63 -63.85C11.35 -65.54 -1.56 -52.62 0.14 -37.34L12.84 76.88L290.74 354.76zM497.94 373.82L437.83 433.93C419.08 452.68 388.67 452.68 369.92 433.93L313.37 377.38L441.39 249.36L497.94 305.9100000000001C516.69 324.67 516.69 355.0700000000001 497.94 373.8200000000001z" /> + <glyph glyph-name="pencil-alt" + unicode="" + horiz-adv-x="512" d=" M497.9 305.9L451.8 259.8C447.1 255.1 439.5 255.1 434.8 259.8L323.8 370.8C319.1 375.5 319.1 383.1 323.8 387.8L369.9 433.9000000000001C388.6 452.6 419 452.6 437.8 433.9000000000001L497.9 373.8C516.6999999999999 355.1 516.6999999999999 324.7000000000001 497.9 305.9zM284.2 348.2L21.6 85.6L0.4 -35.9C-2.5 -52.3 11.8 -66.5 28.2 -63.7L149.7 -42.4L412.3 220.2000000000001C417 224.9 417 232.5000000000001 412.3 237.2000000000001L301.3 348.2000000000001C296.5 352.9000000000001 288.9000000000001 352.9000000000001 284.2 348.2000000000001zM124.1 108.1C118.6 113.6 118.6 122.4 124.1 127.9L278.1 281.9000000000001C283.6 287.4000000000001 292.4000000000001 287.4000000000001 297.9000000000001 281.9000000000001S303.4000000000001 267.6 297.9000000000001 262.1L143.9 108.1C138.4 102.6 129.6 102.6 124.1 108.1zM88 24H136V-12.3L71.5 -23.6L40.4 7.5L51.7 72H88V24z" /> + <glyph glyph-name="pencil-ruler" + unicode="" + horiz-adv-x="512" d=" M109.46 203.96L244.04 338.52L199.92 382.64L138.24 320.9600000000001A7.919 7.919 0 0 0 127.03 320.9600000000001L115.82 332.17C112.72 335.27 112.72 340.29 115.82 343.38L177.5 405.06L143.86 438.7100000000001C131.47 451.1 111.39 451.1 99 438.71L9.29 349C-3.09 336.61 -3.1 316.53 9.29 304.14L109.46 203.96zM497.93 320.76C516.69 339.52 516.6800000000001 369.93 497.93 388.69L452.68 433.94C433.92 452.7 403.5 452.7 384.73 433.94L338.7100000000001 387.93L451.91 274.73L497.93 320.76zM316.08 365.29L19.08 68.33L0.32 -39.11C-2.21 -53.6 10.41 -66.22 24.91 -63.67L132.36 -44.83L429.28 252.1L316.08 365.29zM502.71 79.86L469.07 113.5L407.39 51.82C404.29 48.72 399.27 48.72 396.18 51.82L384.9700000000001 63.03C381.8800000000001 66.13 381.8800000000001 71.15 384.9700000000001 74.24L446.6500000000001 135.92L402.5100000000001 180.06L267.93 45.5L368.14 -54.7C380.53 -67.09 400.61 -67.09 413 -54.7L502.71 35C515.1 47.39 515.1 67.47 502.71 79.86z" /> + <glyph glyph-name="people-carry" + unicode="" + horiz-adv-x="640" d=" M128 352C154.5 352 176 373.5 176 400S154.5 448 128 448S80 426.5 80 400S101.5 352 128 352zM512 352C538.5 352 560 373.5 560 400S538.5 448 512 448S464 426.5 464 400S485.5 352 512 352zM637.7 -20.1L593.7 89.9L552.6 43.5L550.6 25.3L578.3000000000001 -43.9C583.3000000000001 -56.4 595.3000000000001 -64 608.0000000000001 -64C612.0000000000001 -64 616.0000000000001 -63.3 619.9000000000001 -61.7C636.3000000000001 -55.1 644.3000000000001 -36.5 637.7 -20.1zM603.5 189.7L585 269.9C580.4 289.9 566.4 306.7 547.5 314.8C529 322.8 508.5 321.5 491.4 311.5C468.7 298.1 451.7 277 443.3 252.1L432 218.2L416 208V304C416 312.8 408.8 320 400 320H240C231.2 320 224 312.8 224 304V208L207.9 218.2L196.6 252.1C188.3 277.1 171.2 298.1 148.5 311.5C131.3 321.5 110.9 322.8 92.4 314.8C73.5 306.7000000000001 59.5 289.9 54.9 269.9L36.5 189.7C31.9 169.7 37.2 148.5 50.9 133L118.1 57.1L128.2 -35.5C130 -51.8 143.8 -64 160 -64C161.2 -64 162.3 -63.9 163.5 -63.8C181.1 -61.9 193.7 -46.1 191.8 -28.5L181.7 64.3C180.2 77.3 174.8 89.4 166.1 99.3L122.8 148.3L140.4 218.6L147.2000000000001 198.2C151.3000000000001 185.7000000000001 159.1000000000001 174.8 171.7000000000001 165.6L222.8000000000001 133.1C227.4000000000001 130.2000000000001 234.9000000000001 128.5 240.0000000000001 128.1H400C405.1 128.5 412.6 130.2000000000001 417.2 133.1L468.3 165.6C480.9 174.8 488.7 185.6 492.8 198.2L499.6 218.6L517.2 148.3L473.9 99.3C465.2 89.4 459.8 77.3 458.3 64.3L448.2 -28.5C446.3 -46.1 459 -61.9 476.5 -63.8C477.7 -63.9 478.8 -64 480 -64C496.1 -64 510 -51.9 511.8 -35.5L521.9 57.1L589.1 133C602.7 148.5 608.1 169.7 603.5 189.7zM46.3 89.9L2.3 -20.1C-4.3 -36.5 3.7 -55.1 20.1 -61.7C36.9 -68.3000000000001 55.2 -60.0000000000001 61.7 -43.9L89.4 25.3L87.4 43.4999999999999L46.3 89.8999999999999z" /> + <glyph glyph-name="percent" + unicode="" + horiz-adv-x="448" d=" M112 224C173.9 224 224 274.1 224 336S173.9 448 112 448S0 397.9 0 336S50.1 224 112 224zM112 384C138.5 384 160 362.5 160 336S138.5 288 112 288S64 309.5 64 336S85.5 384 112 384zM336 160C274.1 160 224 109.9 224 48S274.1 -64 336 -64S448 -13.9 448 48S397.9 160 336 160zM336 0C309.5 0 288 21.5 288 48S309.5 96 336 96S384 74.5 384 48S362.5 0 336 0zM392.3 447.8L423.9000000000001 447.9C443.3 448 454.8 426.1 443.6 410.1L77.4 -53.6A23.95 23.95 0 0 0 57.8 -63.8L24.4 -63.9C4.9 -63.9 -6.5 -42.0000000000001 4.7 -26.1L372.7 437.6C377.2 444 384.5 447.8 392.3 447.8z" /> + <glyph glyph-name="percentage" + unicode="" + horiz-adv-x="384" d=" M109.25 274.75C134.24 299.74 134.24 340.27 109.25 365.26C84.26 390.25 43.73 390.25 18.74 365.26C-6.25 340.27 -6.25 299.74 18.74 274.75C43.74 249.75 84.26 249.75 109.25 274.75zM365.25 109.26C340.26 134.25 299.73 134.25 274.74 109.26C249.75 84.27 249.75 43.74 274.74 18.75C299.73 -6.24 340.26 -6.24 365.25 18.75C390.25 43.74 390.25 84.26 365.25 109.26zM363.31 340.69L340.69 363.31C328.19 375.81 307.93 375.81 295.44 363.31L20.69 88.56C8.19 76.06 8.19 55.8 20.69 43.31L43.31 20.69C55.81 8.19 76.07 8.19 88.56 20.69L363.31 295.44C375.81 307.93 375.81 328.19 363.31 340.69z" /> + <glyph glyph-name="phone-slash" + unicode="" + horiz-adv-x="640" d=" M268.2 66.6L218.6 127.2000000000001C211.8 135.5000000000001 200.4 138.3000000000001 190.6 134.1L78.6 86.1C67.9 81.5 62.1 70 64.7 58.6L88.7 -45.4C91.2 -56.2 100.8 -64 112.1 -64C212.8 -64 305.8 -31.6 381.8 22.9L301.8 84.7C290.9 78.2 279.7 72 268.2 66.6zM633.8 -10.1L475.1 112.5C537.9 191.6 576 291.1 576 400C576 411.2 568.3 420.9 557.4 423.4L453.4 447.4C442.1 450 430.5 444.1 425.9 433.5L377.9 321.5C373.7 311.7 376.5 300.2 384.8 293.5L445.4 243.9C433.2 217.8 417.5 193.6 399.4 171.1L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L594.6 -60.5C601.6 -65.9 611.6 -64.7 617.1 -57.7L636.7 -32.4C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1z" /> + <glyph glyph-name="phone-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM94 32C86.967 32 80.943 36.873 79.384 43.627L64.386 108.627A15 15 0 0 0 73.093 125.787L143.091 155.7860000000001A15 15 0 0 0 160.609 151.4970000000001L191.606 113.6120000000001C240.55 136.5750000000001 279.903 176.4700000000001 302.387 224.3920000000001L264.501 255.3890000000001A15.000999999999998 15.000999999999998 0 0 0 260.212 272.9070000000001L290.212 342.9050000000001A15 15 0 0 0 307.372 351.6120000000001L372.372 336.6140000000001A14.997000000000002 14.997000000000002 0 0 0 384 322C384 161.708 254.055 32 94 32z" /> + <glyph glyph-name="phone-volume" + unicode="" + horiz-adv-x="384" d=" M97.333 -58.966C-32.541 70.908 -32.348 281.286 97.333 410.967C103.031 416.665 111.86 417.599 118.596 413.389L183.413 372.876A17.187 17.187 0 0 0 190.262 351.918L157.854 270.897A17.188 17.188 0 0 0 140.185 260.178L84.375 265.7580000000001C63.324 207.497 63.763 143.287 84.375 86.2430000000001L140.186 91.8240000000001A17.188 17.188 0 0 0 157.855 81.1050000000001L190.263 0.0830000000001A17.188 17.188 0 0 0 183.414 -20.8749999999999L118.597 -61.3879999999999A17.19 17.19 0 0 0 97.333 -58.9659999999998zM247.126 352.527C258.9580000000001 332.48 258.9580000000001 307.519 247.126 287.472C243.176 280.779 234.018 279.513 228.408 284.891L222.433 290.617C218.522 294.365 217.64 300.239 220.172 305.027A32.063 32.063 0 0 1 220.172 334.972C217.6390000000001 339.76 218.522 345.634 222.433 349.382L228.408 355.108C234.0180000000001 360.486 243.176 359.22 247.126 352.527zM338.913 443.714C399.053 372.11 399.005 267.832 338.913 196.286C334.439 190.959 326.3830000000001 190.54 321.361 195.353L315.563 200.91C311.003 205.281 310.586 212.439 314.633 217.289C364.32 276.827 364.279 363.222 314.633 422.711C310.586 427.561 311.002 434.719 315.563 439.09L321.361 444.647C326.383 449.46 334.439 449.041 338.913 443.714zM292.9410000000001 398.773C328.9910000000001 352.451 329.0490000000001 287.624 292.9410000000001 241.227C288.5510000000001 235.586 280.2440000000001 234.976 275.0850000000001 239.923L269.2670000000001 245.502C264.8670000000001 249.721 264.2690000000001 256.597 267.9820000000001 261.433C294.5180000000001 295.997 294.516 344.005 267.9820000000001 378.567C264.269 383.403 264.867 390.278 269.2670000000001 394.4980000000001L275.0850000000001 400.077C280.2440000000001 405.024 288.5510000000001 404.414 292.9410000000001 398.773z" /> + <glyph glyph-name="phone" + unicode="" + horiz-adv-x="512" d=" M493.4 423.4L389.4 447.4C378.1 450 366.5 444.1 361.9 433.5L313.9 321.5C309.7 311.7 312.5 300.2 320.8 293.5L381.4 243.9C345.4 167.2 282.5 103.4 204.2 66.7000000000001L154.6 127.3000000000001C147.8 135.6000000000001 136.4 138.4000000000001 126.6 134.2000000000001L14.6 86.2000000000001C3.9 81.5 -2 69.9 0.6 58.6L24.6 -45.4C27.1 -56.2 36.7 -64 48 -64C304.1 -64 512 143.5 512 400C512 411.2 504.3 420.9 493.4 423.4z" /> + <glyph glyph-name="piggy-bank" + unicode="" + horiz-adv-x="576" d=" M560 224H530.5C521.7 244 508.9 261.7 493.1 276.5L512 352H480C450.6 352 424.6 338.5 407 317.7C399.4 318.8 391.9 320 384 320H256C178.6 320 114.1 265 99.2 192H56C41.2 192 29.5 205.5 32.5 220.8C34.7 232.2 45.4 240 57 240H58C61.3 240 64 242.7 64 246V266C64 269.3 61.3 272 58 272C29.5 272 4.1 251.6 0.5 223.4C-3.9 189.2 22.7 160 56 160H96C96 107.8 121.4 61.9 160 32.7V-48C160 -56.8 167.2 -64 176 -64H240C248.8 -64 256 -56.8 256 -48V0H384V-48C384 -56.8 391.2 -64 400 -64H464C472.8 -64 480 -56.8 480 -48V32.7C491.8 41.6 502.3 52.1 511.3 64H560C568.8 64 576 71.2 576 80V208C576 216.8 568.8 224 560 224zM432 160C423.2 160 416 167.2 416 176S423.2 192 432 192S448 184.8 448 176S440.8 160 432 160zM256 352H384C389.4 352 394.7 351.6 399.9 351.2C399.9 351.5 400 351.7 400 352C400 405 357 448 304 448S208 405 208 352C208 349.9 208.5 347.9 208.6 345.8C223.8 349.7 239.6 352 256 352z" /> + <glyph glyph-name="pills" + unicode="" + horiz-adv-x="576" d=" M112 416C50.1 416 0 365.9 0 304V80C0 18.1 50.1 -32 112 -32S224 18.1 224 80V304C224 365.9 173.9 416 112 416zM160 192H64V304C64 330.5 85.5 352 112 352S160 330.5 160 304V192zM299.7 221.7C296.2 225.2 290.3 224.8 287.4 220.9C242.1 158.4 247 70.8 303.3 14.5C359.6 -41.8 447.2 -46.7 509.6999999999999 -1.4C513.6999999999999 1.5 513.9999999999999 7.4 510.4999999999999 10.9L299.7 221.7zM529.5 240.7C473.2 297 385.6 301.9 323.1 256.6C319.1 253.7 318.8 247.8 322.3 244.3L533.1 33.5C536.6 30 542.5 30.4 545.4 34.3C590.6999999999999 96.9 585.9 184.4 529.5 240.7z" /> + <glyph glyph-name="place-of-worship" + unicode="" + horiz-adv-x="640" d=" M620.61 81.45L512 128V-64H624C632.84 -64 640 -56.84 640 -48V52.04A32 32 0 0 1 620.61 81.4500000000001zM0 52.04V-48C0 -56.84 7.16 -64 16 -64H128V128L19.39 81.45A32 32 0 0 1 0 52.04zM464.46 201.32L416 230.4V345.37C416 353.86 412.63 361.99 406.62 368L331.31 443.31C325.06 449.56 314.93 449.56 308.69 443.31L233.38 368C227.38 362 224 353.86 224 345.37V230.4L175.54 201.32A31.997 31.997 0 0 1 160 173.88V-64H256V32C256 67.35 284.6600000000001 96 320 96S384 67.35 384 32V-64H480V173.88C480 185.12 474.1 195.54 464.46 201.32z" /> + <glyph glyph-name="plane-arrival" + unicode="" + horiz-adv-x="640" d=" M624 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM44.81 242.34L133.55 162.34A62.60699999999999 62.60699999999999 0 0 1 159.02 148.41L446.62 70.0600000000001C473.1 62.8500000000001 501.18 61.34 527.62 68.7000000000001C557.29 76.97 571.06 89.91 574.87 104.41C578.7 118.91 573.14 137.12 551.5 159.37C532.22 179.19 507.15 192.16 480.67 199.37L383.1600000000001 225.93L282.8 417.78C281.29 423.59 276.85 428.13 271.14 429.69L206.05 447.42C195.49 450.3 185.15 442.1 185.34 430.98L233.26 266.77L131.06 294.61L103.47 362.49C101.54 367.38 97.46 371.06 92.45 372.42L52.72 383.25C42.38 386.07 32.19 378.25 32 367.37L32.23 265.5900000000001C32.42 256.68 38.26 248.25 44.81 242.34z" /> + <glyph glyph-name="plane-departure" + unicode="" + horiz-adv-x="640" d=" M624 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM80.55 106.73C86.83 99.89 95.65 96.01 104.88 96.02L235.42 96.2000000000001A65.62 65.62 0 0 1 265.06 103.3200000000001L556.02 250.9700000000001C582.76 264.5400000000001 606.73 283.9100000000001 623.04 309.2800000000001C641.3499999999999 337.7600000000001 643.3399999999999 358.3700000000001 636.11 372.9300000000001C628.9 387.5000000000001 611.37 398.2000000000001 577.86 400.3800000000001C548.01 402.3200000000001 518.32 394.4600000000001 491.58 380.9000000000001L393.0700000000001 330.9100000000001L174.3700000000001 412.9700000000001A17.799 17.799 0 0 1 156.3700000000001 414.0800000000001L90.62 380.71C79.95 375.3 77.37 361.06 85.45 352.18L241.67 254.08L138.46 201.7L66.11 238.17A17.804 17.804 0 0 1 50.04 238.15L9.91 217.78C-0.53 212.48 -3.28 198.66 4.34 189.7L80.55 106.73z" /> + <glyph glyph-name="plane" + unicode="" + horiz-adv-x="576" d=" M480 256H365.71L260.61 439.94A16.014 16.014 0 0 1 246.71 448H181.21C170.58 448 162.91 437.83 165.83 427.61L214.86 256H112L68.8 313.6C65.78 317.63 61.03 320 56 320H16.01C5.6 320 -2.04 310.2200000000001 0.49 300.12L32 192L0.49 83.88C-2.04 73.78 5.6 64 16.01 64H56C61.04 64 65.78 66.37 68.8 70.4L112 128H214.86L165.83 -43.6C162.91 -53.82 170.58 -64 181.21 -64H246.71C252.45 -64 257.75 -60.92 260.6 -55.94L365.71 128H480C515.35 128 576 156.65 576 192S515.35 256 480 256z" /> + <glyph glyph-name="play-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM371.7 168L195.7 67C179.9 58.2 160 69.5 160 88V296C160 314.4 179.8 325.8 195.7 317L371.7 210C388.1 200.8 388.1 177.1 371.7 168z" /> + <glyph glyph-name="play" + unicode="" + horiz-adv-x="448" d=" M424.4 233.3L72.4 441.4C43.8 458.3 0 441.9 0 400.1V-16C0 -53.5 40.7 -76.1 72.4 -57.3L424.4 150.7C455.8 169.2 455.9 214.8 424.4 233.3z" /> + <glyph glyph-name="plug" + unicode="" + horiz-adv-x="384" d=" M256 304V416C256 433.673 270.327 448 288 448S320 433.673 320 416V304H256zM368 288H16C7.163 288 0 280.837 0 272V240C0 231.163 7.163 224 16 224H32V192C32 114.594 86.969 50.029 160 35.204V-64H224V35.204C297.031 50.029 352 114.594 352 192V224H368C376.837 224 384 231.163 384 240V272C384 280.837 376.837 288 368 288zM128 304V416C128 433.673 113.673 448 96 448S64 433.673 64 416V304H128z" /> + <glyph glyph-name="plus-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM400 164C400 157.4 394.6 152 388 152H296V60C296 53.4 290.6 48 284 48H228C221.4 48 216 53.4 216 60V152H124C117.4 152 112 157.4 112 164V220C112 226.6 117.4 232 124 232H216V324C216 330.6 221.4 336 228 336H284C290.6 336 296 330.6 296 324V232H388C394.6 232 400 226.6 400 220V164z" /> + <glyph glyph-name="plus-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM368 164C368 157.4 362.6 152 356 152H264V60C264 53.4 258.6 48 252 48H196C189.4 48 184 53.4 184 60V152H92C85.4 152 80 157.4 80 164V220C80 226.6 85.4 232 92 232H184V324C184 330.6 189.4 336 196 336H252C258.6 336 264 330.6 264 324V232H356C362.6 232 368 226.6 368 220V164z" /> + <glyph glyph-name="plus" + unicode="" + horiz-adv-x="448" d=" M416 240H272V384C272 401.67 257.67 416 240 416H208C190.33 416 176 401.67 176 384V240H32C14.33 240 0 225.67 0 208V176C0 158.33 14.33 144 32 144H176V0C176 -17.67 190.33 -32 208 -32H240C257.67 -32 272 -17.67 272 0V144H416C433.67 144 448 158.33 448 176V208C448 225.67 433.67 240 416 240z" /> + <glyph glyph-name="podcast" + unicode="" + horiz-adv-x="448" d=" M267.429 -40.563C262.286 -59.573 242.858 -64 224 -64C205.143 -64 185.714 -59.573 180.572 -40.563C172.927 -12.134 160 59.102 160 92.25C160 127.406 191.142 136 224 136S288 127.406 288 92.25C288 59.301 275.129 -11.929 267.429 -40.563zM156.867 159.446C138.174 177.754 126.909 203.619 128.083 232.045C130.137 281.769 170.478 322.0010000000001 220.207 323.9260000000001C274.862 326.0420000000001 320 282.193 320 228C320 201.173 308.936 176.884 291.134 159.448C288.459 156.828 288.733 152.462 291.762 150.261C301.074 143.496 308.222 134.918 312.996 124.898C314.737 121.244 319.493 120.238 322.445 123.007C351.271 150.05 368.998 188.79 367.956 231.572C366.101 307.778 304.361 369.78 228.163 371.9409999999999C146.869 374.247 80 308.785 80 228C80 186.639 97.532 149.3 125.55 123.011C128.503 120.24 133.261 121.241 135.003 124.898C139.777 134.919 146.926 143.496 156.238 150.261C159.267 152.461 159.542 156.827 156.867 159.446zM224 448C100.204 448 0 347.815 0 224C0 134.008 52.602 58.353 125.739 22.592C130.072 20.474 135.006 24.136 134.274 28.902C131.892 44.414 129.932 59.848 128.868 73.241C128.722 75.077 127.719 76.727 126.19 77.753C78.79 109.559 47.626 163.769 48.003 225.1C48.595 321.337 127.293 399.748 223.532 399.999C320.793 400.253 400 321.203 400 224C400 162.068 367.842 107.51 319.35 76.133C318.351 62.0960000000001 316.281 45.545 313.726 28.903C312.994 24.136 317.929 20.474 322.261 22.593C395.227 58.273 448 133.813 448 224C448 347.795 347.815 448 224 448zM224 288C188.654 288 160 259.346 160 224S188.654 160 224 160S288 188.654 288 224S259.346 288 224 288z" /> + <glyph glyph-name="poll-h" + unicode="" + horiz-adv-x="448" d=" M448 16V368C448 394.5 426.5 416 400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16zM112 256C103.16 256 96 263.16 96 272V304C96 312.8400000000001 103.16 320 112 320H240C248.84 320 256 312.8400000000001 256 304V272C256 263.16 248.84 256 240 256H112zM112 160C103.16 160 96 167.16 96 176V208C96 216.84 103.16 224 112 224H336C344.84 224 352 216.84 352 208V176C352 167.16 344.84 160 336 160H112zM112 64C103.16 64 96 71.16 96 80V112C96 120.84 103.16 128 112 128H176C184.84 128 192 120.84 192 112V80C192 71.16 184.84 64 176 64H112z" /> + <glyph glyph-name="poll" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM160 80C160 71.16 152.84 64 144 64H112C103.16 64 96 71.16 96 80V208C96 216.84 103.16 224 112 224H144C152.84 224 160 216.84 160 208V80zM256 80C256 71.16 248.84 64 240 64H208C199.16 64 192 71.16 192 80V304C192 312.8400000000001 199.16 320 208 320H240C248.84 320 256 312.8400000000001 256 304V80zM352 80C352 71.16 344.84 64 336 64H304C295.1600000000001 64 288 71.16 288 80V144C288 152.84 295.1600000000001 160 304 160H336C344.84 160 352 152.84 352 144V80z" /> + <glyph glyph-name="poo" + unicode="" + horiz-adv-x="512" d=" M451.4 78.9C468.7 92 480 112.6 480 136C480 175.8 447.8 208 408 208H393.9C407.3 219.7 416 236.8 416 256C416 291.3 387.3 320 352 320H346.1C349.7000000000001 330.1 352 340.7 352 352C352 405 309 448 256 448C250.8 448 245.8 447.3 240.9 446.5C250.3 433.4 256 417.4 256 400C256 355.8 220.2 320 176 320H160C124.7 320 96 291.3 96 256C96 236.8 104.7 219.7 118.1 208H104C64.2 208 32 175.8 32 136C32 112.6 43.3 92 60.6 78.9C26.3 73.4 0 43.9 0 8C0 -31.8 32.2 -64 72 -64H440C479.8 -64 512 -31.8 512 8C512 43.9 485.7 73.4 451.4 78.9zM192 192C209.7 192 224 177.7 224 160S209.7 128 192 128S160 142.3 160 160S174.3 192 192 192zM351.5 53C341 25.1 293 0 256 0S171 25.1 160.5 53C158.5 58.3 162.5 64 168.3 64H343.7000000000001C349.5000000000001 64 353.5000000000001 58.3 351.5000000000001 53zM320 128C302.3 128 288 142.3 288 160S302.3 192 320 192S352 177.7 352 160S337.7 128 320 128z" /> + <glyph glyph-name="poop" + unicode="" + horiz-adv-x="512" d=" M451.36 78.86C468.66 92.01 480 112.59 480 136C480 175.77 447.76 208 408 208H393.93C407.35 219.73 416 236.78 416 256C416 291.35 387.35 320 352 320H346.12C349.69 330.05 352 340.7200000000001 352 352C352 405.02 309.02 448 256 448C250.83 448 245.85 447.26 240.89 446.48C250.31 433.36 256 417.38 256 400C256 355.82 220.18 320 176 320H160C124.65 320 96 291.35 96 256C96 236.78 104.65 219.73 118.07 208H104C64.24 208 32 175.77 32 136C32 112.59 43.34 92.01 60.64 78.86C26.31 73.38 0 43.88 0 8C0 -31.76 32.24 -64 72 -64H440C479.76 -64 512 -31.76 512 8C512 43.88 485.69 73.38 451.36 78.86z" /> + <glyph glyph-name="portrait" + unicode="" + horiz-adv-x="384" d=" M336 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V400C384 426.5 362.5 448 336 448zM192 320C227.3 320 256 291.3 256 256S227.3 192 192 192S128 220.7 128 256S156.7 320 192 320zM304 83.2C304 72.6 294 64 281.6 64H102.4C90 64 80 72.6 80 83.2V102.4C80 134.2 110.1 160 147.2 160H152.2C164.5 154.9 177.9 152 192 152S219.6 154.9 231.8 160H236.8C273.9000000000001 160 304 134.2 304 102.4V83.2z" /> + <glyph glyph-name="pound-sign" + unicode="" + horiz-adv-x="320" d=" M308 96H262.505C255.878 96 250.505 90.627 250.505 84V33.152H128V160H212C218.627 160 224 165.373 224 172V212C224 218.627 218.627 224 212 224H128V287.556C128 319.822 152.562 344.642 189.792 344.642C213.45 344.642 235.67 333.137 247.444 325.793C252.5950000000001 322.58 259.332 323.742 263.132 328.478L291.625 363.991C295.858 369.267 294.904 376.996 289.506 381.072C273.124 393.44 236.576 416 187.931 416C106.026 416 48 363.258 48 290.039V224H20C13.373 224 8 218.627 8 212V172C8 165.373 13.373 160 20 160H48V32H12C5.373 32 0 26.627 0 20V-20C0 -26.627 5.373 -32 12 -32H308C314.627 -32 320 -26.627 320 -20V84C320 90.627 314.627 96 308 96z" /> + <glyph glyph-name="power-off" + unicode="" + horiz-adv-x="512" d=" M400 393.9C463 348.9 504 275.3 504 192C504 55.2 393.2 -55.7 256.5 -56C120 -56.3 8.2 55 8 191.6C7.9 274.9 48.9 348.7 111.8 393.8C123.5 402.1 139.8 398.6 146.8 386.1L162.6 358C168.5 347.5 165.7 334.2 156 327C114.5 296.2 88 247.4 88 192.1C87.9 99.8 162.5 24 256 24C347.6 24 424.6 98.2 424 193.1C423.7 244.9 399.3 294.9 355.9 327.1C346.2 334.3 343.5 347.6 349.4 358L365.2 386.1C372.2 398.5 388.4 402.2 400 393.9zM296 184V424C296 437.3 285.3 448 272 448H240C226.7 448 216 437.3 216 424V184C216 170.7 226.7 160 240 160H272C285.3 160 296 170.7 296 184z" /> + <glyph glyph-name="pray" + unicode="" + horiz-adv-x="384" d=" M256 320C291.35 320 320 348.65 320 384S291.35 448 256 448S192 419.35 192 384S220.65 320 256 320zM225.37 150.25C239.43 133.53 264.37 131.16 281.3400000000001 145.03L369.3400000000001 217.05C386.43 231.03 388.93 256.24 374.9600000000001 273.33C360.99 290.44 335.7700000000001 292.92 318.6500000000001 278.95L261.2100000000001 231.95L222.3000000000001 278.26C206.8600000000001 296.65 183.0800000000001 306.18 158.3000000000001 303.59C134.1100000000001 301.11 113.0500000000001 287.32 101.93 266.67L52.56 174.64C29.16 131 43.87 78.27 86.75 50.89L131.56 16H40C17.91 16 0 -1.91 0 -24S17.91 -64 40 -64H248C282.08 -64 301.77 -21.21 276.28 4.28L166.42 114.14L201.22 179.01L225.37 150.25z" /> + <glyph glyph-name="praying-hands" + unicode="" + horiz-adv-x="640" d=" M272 256.0900000000001C254.4 256.0900000000001 240 241.69 240 224.09V144.09C240 135.2500000000001 232.84 128.09 224 128.09S208 135.2500000000001 208 144.09V220.6400000000001C208 238.0300000000001 212.72 255.1100000000001 221.69 270.0300000000001L299.44 399.62C308.53 414.7800000000001 303.63 434.4300000000001 288.47 443.5300000000001C274.02 452.2 255.75 447.8300000000001 246.17 434.3200000000001C245.97 434.0900000000001 245.55 434.11 245.38 433.8400000000001L128.12 257.9400000000001C117.56 242.1 112 223.69 112 204.71V124.48L21.88 94.44A31.974000000000004 31.974000000000004 0 0 1 0 64.09V-31.91C0 -42.73 8.52 -63.91 32 -63.91C34.69 -63.91 37.41 -63.57 40.06 -62.88L219.25 -16.26C269.1600000000001 -1.99 304 44.2 304 96.09V224.09C304 241.69 289.6 256.09 272 256.09zM618.12 94.36L528 124.4V204.63C528 223.61 522.44 242.02 511.88 257.86L394.62 433.75C394.44 434.02 394.0300000000001 433.99 393.83 434.23C384.25 447.74 365.98 452.11 351.53 443.44C336.37 434.35 331.47 414.69 340.56 399.53L418.31 269.94C427.28 255.02 432 237.94 432 220.55V144C432 135.16 424.8399999999999 128 416 128S400 135.16 400 144V224C400 241.6 385.6 256 368 256S336 241.6 336 224V96C336 44.11 370.8399999999999 -2.08 420.75 -16.34L599.9399999999999 -62.96C602.5999999999999 -63.65 605.3199999999999 -63.99 607.9999999999999 -63.99C631.4799999999999 -63.99 639.9999999999999 -42.81 639.9999999999999 -31.99V64.01C639.9999999999999 77.78 631.1899999999999 90 618.1199999999999 94.36z" /> + <glyph glyph-name="prescription-bottle-alt" + unicode="" + horiz-adv-x="384" d=" M360 448H24C10.8 448 0 437.2 0 424V376C0 362.8 10.8 352 24 352H360C373.2 352 384 362.8 384 376V424C384 437.2 373.2 448 360 448zM32 -32C32 -49.6 46.4 -64 64 -64H320C337.6 -64 352 -49.6 352 -32V320H32V-32zM96 152C96 156.4 99.6 160 104 160H160V216C160 220.4 163.6 224 168 224H216C220.4 224 224 220.4 224 216V160H280C284.4 160 288 156.4 288 152V104C288 99.6 284.4 96 280 96H224V40C224 35.6 220.4 32 216 32H168C163.6 32 160 35.6 160 40V96H104C99.6 96 96 99.6 96 104V152z" /> + <glyph glyph-name="prescription-bottle" + unicode="" + horiz-adv-x="384" d=" M32 256H152C156.4 256 160 252.4 160 248V232C160 227.6 156.4 224 152 224H32V160H152C156.4 160 160 156.4 160 152V136C160 131.6 156.4 128 152 128H32V64H152C156.4 64 160 60.4 160 56V40C160 35.6 156.4 32 152 32H32V-32C32 -49.6 46.4 -64 64 -64H320C337.6 -64 352 -49.6 352 -32V320H32V256zM360 448H24C10.8 448 0 437.2 0 424V376C0 362.8 10.8 352 24 352H360C373.2 352 384 362.8 384 376V424C384 437.2 373.2 448 360 448z" /> + <glyph glyph-name="prescription" + unicode="" + horiz-adv-x="384" d=" M301.26 96L379.32 174.06C385.57 180.31 385.57 190.44 379.32 196.69L356.69 219.32C350.44 225.57 340.31 225.57 334.06 219.32L256 141.26L172.04 225.22C219.31 231.2 256 271.11 256 320C256 373.02 213.02 416 160 416H16C7.16 416 0 408.8400000000001 0 400V144C0 135.16 7.16 128 16 128H48C56.84 128 64 135.16 64 144V224H82.75L210.75 96L132.69 17.94C126.44 11.69 126.44 1.56 132.69 -4.69L155.32 -27.32C161.57 -33.57 171.7 -33.57 177.95 -27.32L256 50.75L334.06 -27.31C340.31 -33.56 350.44 -33.56 356.69 -27.31L379.32 -4.68C385.57 1.57 385.57 11.7 379.32 17.95L301.26 96zM64 352H160C177.64 352 192 337.64 192 320S177.64 288 160 288H64V352z" /> + <glyph glyph-name="print" + unicode="" + horiz-adv-x="512" d=" M448 256V370.75C448 379.24 444.63 387.37 438.63 393.38L393.37 438.63C387.37 444.63 379.23 448 370.74 448H96C78.33 448 64 433.67 64 416V256C28.65 256 0 227.35 0 192V80C0 71.16 7.16 64 16 64H64V-32C64 -49.67 78.33 -64 96 -64H416C433.67 -64 448 -49.67 448 -32V64H496C504.84 64 512 71.16 512 80V192C512 227.35 483.35 256 448 256zM384 0H128V96H384V0zM384 224H128V384H320V336C320 327.16 327.1600000000001 320 336 320H384V224zM432 152C418.75 152 408 162.75 408 176C408 189.26 418.75 200 432 200S456 189.26 456 176C456 162.75 445.25 152 432 152z" /> + <glyph glyph-name="procedures" + unicode="" + horiz-adv-x="640" d=" M528 224H272C263.2 224 256 216.8 256 208V64H64V304C64 312.8 56.8 320 48 320H16C7.2 320 0 312.8 0 304V-48C0 -56.8 7.2 -64 16 -64H48C56.8 -64 64 -56.8 64 -48V0H576V-48C576 -56.8 583.2 -64 592 -64H624C632.8 -64 640 -56.8 640 -48V112C640 173.9 589.9 224 528 224zM136 352H262.1L289.7000000000001 296.8C295.6 285 312.4000000000001 285 318.3000000000001 296.8L368 396.2L390.1 352H512C520.8 352 528 359.2 528 368S520.8 384 512 384H409.9L382.3 439.2C376.4 451 359.6 451 353.7 439.2L304 339.8L284.1 379.6C282.7000000000001 382.3 280 384 276.9000000000001 384H136C131.6 384 128 380.4 128 376V360C128 355.6 131.6 352 136 352zM160 96C195.3 96 224 124.7 224 160S195.3 224 160 224S96 195.3 96 160S124.7 96 160 96z" /> + <glyph glyph-name="project-diagram" + unicode="" + horiz-adv-x="640" d=" M384 128H256C238.33 128 224 113.67 224 96V-32C224 -49.67 238.33 -64 256 -64H384C401.67 -64 416 -49.67 416 -32V96C416 113.67 401.67 128 384 128zM192 416C192 433.67 177.67 448 160 448H32C14.33 448 0 433.67 0 416V288C0 270.33 14.33 256 32 256H127.72L200.88 127.96C211.98 147.02 232.4 160 256 160H256.28L192 272.49V320H416V384H192V416zM608 448H480C462.33 448 448 433.67 448 416V288C448 270.33 462.33 256 480 256H608C625.67 256 640 270.3300000000001 640 288V416C640 433.67 625.67 448 608 448z" /> + <glyph glyph-name="puzzle-piece" + unicode="" + horiz-adv-x="576" d=" M519.442 159.349C477.923 159.349 459.942 127.756 437.384 127.756C377.409 127.756 432 304 432 304S235.712 224 235.712 307.2970000000001C235.712 343.124 272 353.5470000000001 272 393.282C272 428.784 243.885 448 210.539 448C175.885 448 144.173 429.109 144.173 391.654C144.173 350.29 175.884 332.377 175.884 309.904C175.885 240.281 0 281.242 0 281.242V-51.995S178.635 -93.042 178.635 -23.333C178.635 -0.86 138.635 16.774 138.635 58.138C138.635 95.594 167.885 114.484 202.212 114.484C235.885 114.484 264 95.268 264 59.767C264 20.032 227.712 9.609 227.712 -26.218C227.712 -87.021 357.387 -51.948 408.942 -51.948C408.942 -51.948 374.217 68.153 434.769 68.153C470.731 68.153 481.192 32.001 521.077 32.001C556.712 32 576 60.01 576 93.557C576 127.756 557.038 159.3490000000001 519.442 159.3490000000001z" /> + <glyph glyph-name="qrcode" + unicode="" + horiz-adv-x="448" d=" M0 224H192V416H0V224zM64 352H128V288H64V352zM256 416V224H448V416H256zM384 288H320V352H384V288zM0 -32H192V160H0V-32zM64 96H128V32H64V96zM416 160H448V32H352V64H320V-32H256V160H352V128H416V160zM416 0H448V-32H416V0zM352 0H384V-32H352V0z" /> + <glyph glyph-name="question-circle" + unicode="" + horiz-adv-x="512" d=" M504 192C504 55.003 392.957 -56 256 -56S8 55.003 8 192C8 328.9170000000001 119.043 440 256 440S504 328.9170000000001 504 192zM262.655 358C208.158 358 173.4 335.043 146.106 294.242C142.57 288.956 143.753 281.827 148.821 277.984L183.52 251.674C188.725 247.727 196.141 248.666 200.185 253.796C218.049 276.454 230.298 289.593 257.488 289.593C277.9169999999999 289.593 303.1859999999999 276.445 303.1859999999999 256.635C303.1859999999999 241.659 290.8229999999999 233.968 270.652 222.659C247.128 209.472 216 193.059 216 152V148C216 141.373 221.373 136 228 136H284C290.627 136 296 141.373 296 148V149.333C296 177.795 379.1860000000001 178.98 379.1860000000001 256C379.1860000000001 314.0020000000001 319.021 358 262.6550000000001 358zM256 110C230.635 110 210 89.365 210 64C210 38.636 230.635 18 256 18S302 38.636 302 64C302 89.365 281.365 110 256 110z" /> + <glyph glyph-name="question" + unicode="" + horiz-adv-x="384" d=" M202.021 448C122.202 448 70.503 415.2970000000001 29.914 356.974C22.551 346.394 24.821 331.8880000000001 35.092 324.1L78.23 291.391C88.603 283.526 103.362 285.365 111.483 295.539C136.532 326.92 155.113 344.988 194.24 344.988C225.004 344.988 263.0560000000001 325.189 263.0560000000001 295.357C263.0560000000001 272.805 244.4390000000001 261.223 214.0630000000001 244.193C178.6400000000001 224.333 131.7640000000001 199.617 131.7640000000001 137.788V128C131.7640000000001 114.745 142.5090000000001 104 155.7640000000001 104H228.2350000000001C241.4900000000001 104 252.2350000000001 114.745 252.2350000000001 128V133.773C252.2350000000001 176.6330000000001 377.5030000000001 178.418 377.5030000000001 294.4000000000001C377.504 381.7440000000001 286.902 448 202.021 448zM192 74.541C153.804 74.541 122.729 43.466 122.729 5.27C122.729 -32.925 153.804 -64 192 -64S261.271 -32.925 261.271 5.271S230.1960000000001 74.541 192 74.541z" /> + <glyph glyph-name="quidditch" + unicode="" + horiz-adv-x="640" d=" M256.5 231.2L343.2 122S326.6 19.6 266.6 -28.1C206.7 -75.7999999999999 0 -62.2 0 -62.2S3.8 -39.1 11 -6.8L105.6 105.4C109.6 110.1 104.7 117 99 114.9L38.6 92.8C53 134.5 71.3 172.8 93.2 190.3C153.1 238.1 256.5 231.2 256.5 231.2zM494.5 96.2C450.5 96.2 414.7 60.4 414.7 16.3C414.7 -27.8000000000001 450.4 -63.6 494.5 -63.6C538.6 -63.6 574.3 -27.8 574.3 16.3C574.3 60.4999999999999 538.5 96.1999999999999 494.4999999999999 96.1999999999999zM636.5 417L616.7 442C611.2 448.9 601.2 450 594.3000000000001 444.6L361.8 266.7L327.7 309.7C322.6 316.1 312.6 314.9 309.1 307.5L283.8 252.9L370.5 143.7L429.3 156.1C437.3 157.8 440.7 167.3 435.6 173.7L401.5 216.6L634 394.5C640.9 400 642 410.1 636.5 417z" /> + <glyph glyph-name="quote-left" + unicode="" + horiz-adv-x="512" d=" M464 192H384V256C384 291.3 412.7 320 448 320H456C469.3 320 480 330.7 480 344V392C480 405.3 469.3 416 456 416H448C359.6 416 288 344.4 288 256V16C288 -10.5 309.5 -32 336 -32H464C490.5 -32 512 -10.5 512 16V144C512 170.5 490.5 192 464 192zM176 192H96V256C96 291.3 124.7 320 160 320H168C181.3 320 192 330.7 192 344V392C192 405.3 181.3 416 168 416H160C71.6 416 0 344.4 0 256V16C0 -10.5 21.5 -32 48 -32H176C202.5 -32 224 -10.5 224 16V144C224 170.5 202.5 192 176 192z" /> + <glyph glyph-name="quote-right" + unicode="" + horiz-adv-x="512" d=" M464 416H336C309.5 416 288 394.5 288 368V240C288 213.5 309.5 192 336 192H416V128C416 92.7 387.3 64 352 64H344C330.7 64 320 53.3 320 40V-8C320 -21.3 330.7 -32 344 -32H352C440.4 -32 512 39.6 512 128V368C512 394.5 490.5 416 464 416zM176 416H48C21.5 416 0 394.5 0 368V240C0 213.5 21.5 192 48 192H128V128C128 92.7 99.3 64 64 64H56C42.7 64 32 53.3 32 40V-8C32 -21.3 42.7 -32 56 -32H64C152.4 -32 224 39.6 224 128V368C224 394.5 202.5 416 176 416z" /> + <glyph glyph-name="quran" + unicode="" + horiz-adv-x="448" d=" M448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM301.08 302.18C301.68 303.39 302.84 304 304 304S306.32 303.39 306.92 302.18L318.1 279.53L343.1 275.9C345.7700000000001 275.51 346.8400000000001 272.23 344.9100000000001 270.3400000000001L326.8200000000001 252.71L331.0900000000001 227.82C331.4500000000001 225.71 329.7800000000001 224 327.8800000000001 224C327.3800000000001 224 326.8600000000001 224.12 326.3600000000001 224.38L304 236.13L281.64 224.38C281.14 224.12 280.62 224 280.12 224C278.2200000000001 224 276.55 225.71 276.9100000000001 227.82L281.18 252.71L263.0900000000001 270.34C261.1500000000001 272.23 262.2200000000001 275.51 264.9000000000001 275.9L289.8900000000001 279.53L301.0800000000001 302.18zM243.19 371.19C256.86 371.19 270.45 368.7000000000001 283.57 363.7800000000001A6.775 6.775 0 1 0 281.19 350.6600000000001C280.52 350.6600000000001 278.1 350.87 277.06 350.87C224.75 350.87 182.2 308.32 182.2 256.01C182.2 203.71 224.75 161.15 277.06 161.15C278.09 161.15 280.54 161.36 281.19 161.36C285.12 161.36 287.99 158.22 287.99 154.58C287.99 151.6 286.05 149.07 283.37 148.16C270.3 143.29 256.7800000000001 140.82 243.18 140.82C179.67 140.81 128 192.49 128 256C128 319.52 179.67 371.19 243.19 371.19zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0z" /> + <glyph glyph-name="random" + unicode="" + horiz-adv-x="512" d=" M504.971 88.971C514.344 79.598 514.344 64.402 504.971 55.03L424.971 -24.954C409.961 -39.964 384 -29.444 384 -7.983V32H325.2150000000001A12.004 12.004 0 0 0 316.442 35.812L245.886 111.408L299.2190000000001 168.5510000000001L352 112H384V151.981C384 173.419 409.943 183.979 424.971 168.952L504.971 88.971zM12 272H96L148.781 215.449L202.114 272.592L131.558 348.188A11.999000000000002 11.999000000000002 0 0 1 122.785 352H12C5.373 352 0 346.627 0 340V284C0 277.373 5.373 272 12 272zM384 272V232.016C384 210.556 409.961 200.036 424.971 215.045L504.971 295.029C514.344 304.402 514.344 319.598 504.971 328.9700000000001L424.971 408.951C409.943 423.979 384 413.418 384 391.981V352H325.2150000000001A12.004 12.004 0 0 1 316.442 348.188L96 112H12C5.373 112 0 106.627 0 100V44C0 37.373 5.373 32 12 32H122.785C126.111 32 129.288 33.381 131.558 35.812L352 272H384z" /> + <glyph glyph-name="receipt" + unicode="" + horiz-adv-x="384" d=" M358.4 444.8L320 400L265.6 444.8A15.9 15.9 0 0 1 246.4000000000001 444.8L192 400L137.6 444.8A15.9 15.9 0 0 1 118.4 444.8L64 400L25.6 444.8C15 452.7 0 445.2 0 432V-48C0 -61.2 15 -68.7 25.6 -60.8L64 -16L118.4 -60.8A15.9 15.9 0 0 1 137.6 -60.8L192 -16L246.4 -60.8A15.9 15.9 0 0 1 265.6 -60.8L320 -16L358.4 -60.8C368.9 -68.7 384 -61.2 384 -48V432C384 445.2 369 452.7 358.4 444.8zM320 88C320 83.6 316.4 80 312 80H72C67.6 80 64 83.6 64 88V104C64 108.4 67.6 112 72 112H312C316.4 112 320 108.4 320 104V88zM320 184C320 179.6 316.4 176 312 176H72C67.6 176 64 179.6 64 184V200C64 204.4 67.6 208 72 208H312C316.4 208 320 204.4 320 200V184zM320 280C320 275.6 316.4 272 312 272H72C67.6 272 64 275.6 64 280V296C64 300.4 67.6 304 72 304H312C316.4 304 320 300.4 320 296V280z" /> + <glyph glyph-name="recycle" + unicode="" + horiz-adv-x="512" d=" M184.561 186.097C187.793 172.1 172.438 161.462 160.493 168.929L119.757 194.384L68.89 112.982C55.606 91.727 70.96 64 96.012 64H148C154.627 64 160 58.627 160 52V12C160 5.373 154.627 0 148 0H96.115C20.781 0 -25.187 83.048 14.707 146.88L65.529 228.268L24.804 253.716C12.723 261.2630000000001 15.838 279.677 29.683 282.874L139.92 308.324C148.531 310.312 157.121 304.943 159.109 296.334L184.561 186.097zM283.122 369.012L324.411 302.936L283.671 277.479C271.62 269.951 274.671 251.526 288.55 248.321L398.7870000000001 222.871C407.4590000000001 220.872 416.002 226.309 417.9760000000001 234.861L443.4260000000001 345.098C446.6230000000001 358.942 431.4360000000001 369.817 419.3580000000001 362.266L378.6710000000001 336.842L337.4080000000001 402.924C299.8870000000001 462.957 212.1990000000001 463.095 174.5920000000001 402.924L156.6290000000001 374.158C153.1190000000001 368.538 154.8290000000001 361.137 160.4490000000001 357.625L194.3680000000001 336.43C199.9880000000001 332.918 207.3920000000001 334.627 210.9040000000001 340.247L228.8650000000001 368.99C241.5770000000001 389.331 270.8380000000001 388.666 283.1220000000001 369.012zM497.288 146.88L469.773 190.945C466.262 196.568 458.857 198.279 453.235 194.766L419.374 173.607C413.754 170.095 412.0440000000001 162.692 415.5560000000001 157.071L443.1200000000001 112.959C456.3770000000001 91.7479999999999 441.0630000000001 63.999 415.9840000000001 63.999H320V111.98C320 126.1930000000001 302.758 133.363 292.687 123.293L212.687 43.312C206.438 37.064 206.438 26.933 212.687 20.685L292.687 -59.304C302.689 -69.308 320 -62.3 320 -47.989V0H415.88C491.154 0 537.215 82.997 497.288 146.88z" /> + <glyph glyph-name="redo-alt" + unicode="" + horiz-adv-x="512" d=" M256.455 440C322.724 439.881 382.892 413.767 427.314 371.315L463.029 407.03C478.149 422.149 504 411.4410000000001 504 390.059V256C504 242.745 493.255 232 480 232H345.941C324.559 232 313.851 257.851 328.97 272.971L370.72 314.721C339.856 343.62 299.919 359.628 257.49 359.9940000000001C165.092 360.7920000000001 87.207 286.017 88.0059999999999 190.552C88.764 99.991 162.184 24 256 24C297.127 24 335.997 38.678 366.629 65.556C371.372 69.717 378.5350000000001 69.464 382.997 65.003L422.659 25.341C427.531 20.469 427.29 12.526 422.177 7.908C378.202 -31.813 319.926 -56 256 -56C119.034 -56 8.001 55.033 8 191.998C7.999 328.807 119.646 440.245 256.455 440z" /> + <glyph glyph-name="redo" + unicode="" + horiz-adv-x="512.333" d=" M500.333 448H452.922C446.069 448 440.608 442.271 440.9360000000001 435.426L444.9020000000001 352.6670000000001C399.416 406.101 331.6720000000001 440 256.001 440C119.34 440 7.899 328.474 8 191.813C8.101 54.932 119.096 -56 256 -56C319.926 -56 378.202 -31.813 422.178 7.908C427.291 12.526 427.532 20.469 422.6600000000001 25.341L388.689 59.312C384.223 63.778 377.0490000000001 64.029 372.3090000000001 59.855C341.308 32.552 300.606 16 256 16C158.733 16 80 94.716 80 192C80 289.267 158.716 368 256 368C316.892 368 370.506 337.142 402.099 290.2L300.574 295.065C293.729 295.3930000000001 288 289.932 288 283.079V235.668C288 229.041 293.373 223.668 300 223.668H500.333C506.96 223.668 512.333 229.041 512.333 235.668V436C512.333 442.627 506.96 448 500.333 448z" /> + <glyph glyph-name="registered" + unicode="" + horiz-adv-x="512" d=" M285.363 240.525C285.363 221.925 275.532 212.094 256.932 212.094H227.056V268.234H250.4340000000001C279.1020000000001 268.234 285.3630000000001 259.461 285.3630000000001 240.525zM504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM363.411 87.586C316.682 172.411 320.112 166.222 318.709 168.566C342.141 183.7380000000001 356.654 211.545 356.654 243.052C356.654 297.2960000000001 325.154 332.3040000000001 251.156 332.3040000000001H180.489C167.234 332.3040000000001 156.489 321.5590000000001 156.489 308.3040000000001V76C156.489 62.745 167.234 52 180.489 52H203.056C216.311 52 227.056 62.745 227.056 76V147.663H252.612L296.7410000000001 64.726A24.001000000000005 24.001000000000005 0 0 1 317.9290000000001 51.999H342.3930000000001C360.6540000000001 52 372.2220000000001 71.59 363.4110000000001 87.586z" /> + <glyph glyph-name="reply-all" + unicode="" + horiz-adv-x="576" d=" M136.309 258.164L312.313 410.149C327.7200000000001 423.454 352 412.652 352 391.985V309.222C481.182 298.991 576 257.01 576 125.674C576 64.233 536.418 3.365 492.667 -28.458C479.014 -38.389 459.556 -25.925 464.59 -9.827C503.102 113.335 460.668 159.655 352 172.188V88.013C352 67.312 327.7 56.56 312.313 69.849L136.309 221.836C125.238 231.397 125.223 248.589 136.309 258.164zM8.309 221.836L184.313 69.85C199.7 56.561 224 67.313 224 88.014V103.832L115.394 197.617A55.96 55.96 0 0 0 96 240.002A55.95300000000001 55.95300000000001 0 0 0 115.393 282.382L224 376.168V391.985C224 412.652 199.72 423.454 184.313 410.149L8.309 258.164C-2.777 248.589 -2.762 231.397 8.309 221.836z" /> + <glyph glyph-name="reply" + unicode="" + horiz-adv-x="512" d=" M8.309 258.164L184.313 410.149C199.719 423.454 224 412.653 224 391.985V311.932C384.629 310.093 512 277.9000000000001 512 125.674C512 64.233 472.419 3.365 428.6670000000001 -28.458C415.014 -38.389 395.5560000000001 -25.925 400.5900000000001 -9.827C445.9340000000001 135.185 379.0830000000001 173.683 224 175.915V88C224 67.3 199.7 56.547 184.3130000000001 69.836L8.3090000000001 221.836C-2.7619999999999 231.398 -2.7769999999999 248.589 8.3090000000001 258.164z" /> + <glyph glyph-name="retweet" + unicode="" + horiz-adv-x="640" d=" M629.657 104.402L528.971 3.716C519.598 -5.656 504.403 -5.656 495.03 3.716L394.343 104.402C384.9700000000001 113.775 384.9700000000001 128.971 394.343 138.343L405.166 149.166C414.728 158.728 430.299 158.5059999999999 439.585 148.6739999999999L480 105.882V288H292.451A24.005 24.005 0 0 0 275.48 295.029L259.48 311.029C244.361 326.149 255.069 352 276.451 352H520C533.255 352 544 341.255 544 328V105.882L584.4159999999999 148.674C593.7009999999999 158.505 609.2719999999999 158.728 618.8349999999999 149.166L629.6579999999999 138.343C639.0299999999999 128.971 639.0299999999999 113.774 629.6569999999999 104.402zM364.5190000000001 88.971A23.999000000000002 23.999000000000002 0 0 1 347.548 96H160V278.1190000000001L200.416 235.327C209.702 225.496 225.272 225.273 234.835 234.836L245.657 245.658C255.03 255.031 255.03 270.227 245.657 279.599L144.971 380.284C135.598 389.657 120.402 389.657 111.03 380.284L10.343 279.598C0.97 270.225 0.97 255.029 10.343 245.657L21.165 234.835C30.727 225.273 46.298 225.495 55.584 235.326L96 278.1190000000001V56C96 42.745 106.745 32 120 32H363.549C384.931 32 395.639 57.851 380.52 72.971L364.519 88.971z" /> + <glyph glyph-name="ribbon" + unicode="" + horiz-adv-x="448" d=" M6.1 3.7C-3.5 -7.1 -1.4 -23.9 10.6 -32L79.4 -59.9C89.3 -66.6 102.7 -64.9 110.7 -56.1L202.5 45.8000000000001L123.3 133.7000000000001L6.1 3.7zM441.9000000000001 3.7S149.9 328.3 146.5000000000001 333.8C161.9000000000001 342.2000000000001 186.7000000000001 351.7000000000001 224.0000000000001 351.7000000000001S286.1000000000001 342.2000000000001 301.5000000000001 333.8C298.2000000000001 328.2000000000001 245.5000000000001 269.2000000000001 245.5000000000001 269.2000000000001L324.6 181.5L358.8 219.5C387.5 251.4 392.1 298.1 370.2 335L326.5 408.5C322.2 415.7 316.6 421.8 309.7 426.5C269 454.1 182.3 456.2 138.3 426.5C131.4 421.8 125.8 415.7 121.5 408.5L77.9 335.3C76.4 332.8 40.8 273.1 89.4 219.3L337.5 -56C345.5 -64.9 358.9 -66.5 368.8 -59.8L437.6 -31.9C449.5 -23.9 451.6 -7.1 441.9000000000001 3.7z" /> + <glyph glyph-name="road" + unicode="" + horiz-adv-x="576" d=" M573.19 45.33L433.4000000000001 365.33C428.43 376.71 417.6 384 405.68 384H308.0900000000001L310.54 360.8400000000001C311.04 356.12 307.3300000000001 352 302.5800000000001 352H273.42C268.67 352 264.9600000000001 356.12 265.4600000000001 360.8400000000001L267.9100000000001 384H170.32C158.39 384 147.56 376.71 142.59 365.33L2.8 45.33C-6.45 24.14 8.31 0 30.54 0H227.38L237.69 97.68C238.55 105.82 245.41 112 253.6 112H322.4C330.59 112 337.45 105.82 338.31 97.68L348.62 0H545.46C567.69 0 582.45 24.14 573.19 45.33zM260.4 312.8400000000001A8 8 0 0 0 268.36 320H307.65C311.74 320 315.18 316.91 315.61 312.8400000000001L320.21 269.26C320.96 262.17 315.4 256 308.28 256H267.74C260.61 256 255.06 262.17 255.81 269.26L260.3999999999999 312.84zM315.64 144H260.35C250.85 144 243.44 152.23 244.44 161.68L249.51 209.68C250.37 217.82 257.23 224 265.42 224H310.57C318.76 224 325.62 217.82 326.48 209.68L331.55 161.68C332.55 152.23 325.14 144 315.64 144z" /> + <glyph glyph-name="robot" + unicode="" + horiz-adv-x="640" d=" M0 192V64C0 46.3 14.3 32 32 32H64V224H32C14.3 224 0 209.7 0 192zM464 352H352V416C352 433.7 337.7 448 320 448S288 433.7 288 416V352H176C131.8 352 96 316.2 96 272V0C96 -35.3 124.7 -64 160 -64H480C515.3 -64 544 -35.3 544 0V272C544 316.2 508.2 352 464 352zM256 32H192V64H256V32zM224 152C201.9 152 184 169.9 184 192S201.9 232 224 232S264 214.1 264 192S246.1 152 224 152zM352 32H288V64H352V32zM448 32H384V64H448V32zM416 152C393.9 152 376 169.9 376 192S393.9 232 416 232S456 214.1 456 192S438.1 152 416 152zM608 224H576V32H608C625.7 32 640 46.3 640 64V192C640 209.7 625.7 224 608 224z" /> + <glyph glyph-name="rocket" + unicode="" + horiz-adv-x="512" d=" M505.1 428.9C503.8 435 499 439.8 492.9 441.1C460.7 448 435.5 448 410.4 448C307.2 448 245.3 392.8 199.1 320H94.9C76.7 320 60.1 309.7 52 293.5L2.6 194.7C-5.4 178.7 6.2 160 24.1 160H119.2C113.3 147.2 107.3 134.5 101.2 122.3C98.1 116.1 99.3 108.7 104.2 103.8L167.8 40.2C172.7 35.3 180.1 34.1 186.3 37.2C198.5 43.3 211.2 49.2 224 55.1V-40C224 -57.8 242.8 -69.4 258.7 -61.5L357.4 -12.1C373.7 -4 383.9 12.7 383.9 30.8V135.2C456.5 181.5 511.9 243.6 511.9 346.3C512 371.5 512 396.7 505.1 428.9zM400 288C373.5 288 352 309.5 352 336S373.5 384 400 384S448 362.5 448 336S426.5 288 400 288z" /> + <glyph glyph-name="route" + unicode="" + horiz-adv-x="512" d=" M416 128H320C302.4 128 288 142.4 288 160S302.4 192 320 192H416S512 299 512 352S469 448 416 448S320 405 320 352C320 326.5 342.2 288.6 365.3 256H320C267.1 256 224 212.9 224 160S267.1 64 320 64H416C433.6 64 448 49.6 448 32S433.6 0 416 0H185.5C169.5 -24.8 151.7 -47.7 138.2 -64H416C468.9 -64 512 -20.9 512 32S468.9 128 416 128zM416 384C433.7 384 448 369.7 448 352S433.7 320 416 320S384 334.3 384 352S398.3 384 416 384zM96 192C43 192 0 149 0 96S96 -64 96 -64S192 43 192 96S149 192 96 192zM96 64C78.3 64 64 78.3 64 96S78.3 128 96 128S128 113.7 128 96S113.7 64 96 64z" /> + <glyph glyph-name="rss-square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM112 32C85.49 32 64 53.49 64 80S85.49 128 112 128S160 106.51 160 80S138.51 32 112 32zM269.533 32H235.198C229.187 32 224.147 36.636 223.756 42.634C218.542 122.684 154.513 186.554 74.633 191.757C68.636 192.147 64 197.188 64 203.198V237.533C64 244.068 69.468 249.31 75.994 248.9580000000001C186.54 242.9840000000001 274.9910000000001 154.422 280.9580000000001 43.994C281.31 37.468 276.0680000000001 32 269.533 32zM372.56 32H338.226C332.065 32 327.051 36.882 326.799 43.038C321.201 179.573 211.595 289.199 75.039 294.798C68.882 295.051 64 300.065 64 306.226V340.56C64 347.014 69.338 352.224 75.787 351.992C243.617 345.967 377.997 210.801 383.992 43.787C384.224 37.338 379.014 32.0000000000001 372.56 32.0000000000001z" /> + <glyph glyph-name="rss" + unicode="" + horiz-adv-x="448" d=" M128.081 32.041C128.081 -3.328 99.409 -32 64.04 -32S0 -3.328 0 32.041S28.672 96.082 64.041 96.082S128.081 67.409 128.081 32.041zM303.741 -15.209C295.387 139.391 171.556 263.378 16.791 271.741C7.656 272.235 0 264.895 0 255.747V207.678C0 199.263 6.49 192.206 14.887 191.66C126.719 184.376 216.36 94.958 223.659 -17.112C224.206 -25.509 231.263 -31.999 239.677 -31.999H287.746C296.895 -32 304.235 -24.344 303.741 -15.209zM447.99 -15.497C439.596 218.323 251.465 407.555 16.503 415.99C7.473 416.314 0 409.019 0 399.984V351.916C0 343.291 6.835 336.271 15.453 335.9170000000001C206.632 328.078 360.08 174.601 367.918 -16.548C368.271 -25.166 375.291 -32.001 383.917 -32.001H431.985C441.019 -32 448.314 -24.527 447.99 -15.497z" /> + <glyph glyph-name="ruble-sign" + unicode="" + horiz-adv-x="384" d=" M239.36 128C324.48 128 384 187.458 384 272.929S324.48 416 239.36 416H76C69.373 416 64 410.627 64 404V197.368H12C5.373 197.368 0 191.995 0 185.368V140C0 133.373 5.373 128 12 128H64V96H12C5.373 96 0 90.627 0 84V44C0 37.373 5.373 32 12 32H64V-20C64 -26.627 69.373 -32 76 -32H134.56C141.187 -32 146.56 -26.627 146.56 -20V32H308C314.627 32 320 37.373 320 44V84C320 90.627 314.627 96 308 96H146.56V128H239.36zM146.56 347.252H225.28C272 347.252 300.16 318.142 300.16 272.9290000000001C300.16 227.0970000000001 272 197.368 224 197.368H146.56V347.252z" /> + <glyph glyph-name="ruler-combined" + unicode="" + horiz-adv-x="512" d=" M160 160H104C99.58 160 96 163.58 96 168V184C96 188.42 99.58 192 104 192H160V256H104C99.58 256 96 259.5800000000001 96 264V280C96 284.42 99.58 288 104 288H160V352H104C99.58 352 96 355.58 96 360V376C96 380.42 99.58 384 104 384H160V416C160 433.67 145.67 448 128 448H32C14.33 448 0 433.67 0 416V-32C0 -34.77 0.91 -37.24 1.57 -39.8L160 118.62V160zM480 96H448V40C448 35.58 444.42 32 440 32H424C419.58 32 416 35.58 416 40V96H352V40C352 35.58 348.42 32 344 32H328C323.58 32 320 35.58 320 40V96H256V40C256 35.58 252.42 32 248 32H232C227.58 32 224 35.58 224 40V96H182.63L24.2 -62.43C26.76 -63.09 29.24 -64 32 -64H480C497.67 -64 512 -49.67 512 -32V64C512 81.67 497.67 96 480 96z" /> + <glyph glyph-name="ruler-horizontal" + unicode="" + horiz-adv-x="576" d=" M544 320H496V232C496 227.58 492.42 224 488 224H472C467.58 224 464 227.58 464 232V320H400V232C400 227.58 396.42 224 392 224H376C371.58 224 368 227.58 368 232V320H304V232C304 227.58 300.42 224 296 224H280C275.58 224 272 227.58 272 232V320H208V232C208 227.58 204.42 224 200 224H184C179.58 224 176 227.58 176 232V320H112V232C112 227.58 108.42 224 104 224H88C83.58 224 80 227.58 80 232V320H32C14.33 320 0 305.67 0 288V96C0 78.33 14.33 64 32 64H544C561.67 64 576 78.33 576 96V288C576 305.67 561.67 320 544 320z" /> + <glyph glyph-name="ruler-vertical" + unicode="" + horiz-adv-x="256" d=" M168 32C163.58 32 160 35.58 160 40V56C160 60.42 163.58 64 168 64H256V128H168C163.58 128 160 131.58 160 136V152C160 156.42 163.58 160 168 160H256V224H168C163.58 224 160 227.58 160 232V248C160 252.42 163.58 256 168 256H256V320H168C163.58 320 160 323.58 160 328V344C160 348.42 163.58 352 168 352H256V416C256 433.67 241.67 448 224 448H32C14.33 448 0 433.67 0 416V-32C0 -49.67 14.33 -64 32 -64H224C241.67 -64 256 -49.67 256 -32V32H168z" /> + <glyph glyph-name="ruler" + unicode="" + horiz-adv-x="640" d=" M635.7 280.8L556.1 416.3C547.3000000000001 431.3 527.8000000000001 436.4 512.6 427.8L443.6 388.7L503.3 287C505.5 283.2 504.2 278.5 500.4 276.3L486.6 268.5C482.8 266.3 477.9 267.6 475.7 271.4L416 373L360.8 341.7L388.7 294.3C390.9 290.5 389.6 285.8 385.8 283.6L372 275.8C368.2 273.6 363.3 274.9 361.1 278.7000000000001L333.2 326L278 294.7L337.8 193C340 189.3 338.7 184.5 334.9000000000001 182.3L321.1 174.5C317.3 172.3 312.4000000000001 173.6 310.2000000000001 177.4L250.5000000000001 279.1L195.3000000000001 247.8L223.2000000000001 200.4C225.4000000000001 196.5999999999999 224.1000000000001 191.9 220.3000000000001 189.6999999999999L206.5000000000001 181.8999999999999C202.7000000000001 179.6999999999999 197.8000000000001 181 195.6000000000001 184.7999999999999L167.7000000000001 232.2999999999999L112.5 200.9999999999999L172.2000000000001 99.2999999999999C174.4 95.5999999999999 173.1000000000001 90.7999999999999 169.3000000000001 88.5999999999999L155.5 80.7999999999999C151.7 78.5999999999999 146.8000000000001 79.8999999999999 144.6 83.6999999999999L84.9 185.1L15.9 146C0.7 137.3 -4.6 118.2 4.2 103.2L83.8 -32.4C92.6 -47.4 112.1 -52.5 127.3 -43.9L624.1 238C639.3000000000001 246.6 644.5 265.8 635.7 280.8z" /> + <glyph glyph-name="rupee-sign" + unicode="" + horiz-adv-x="320" d=" M308 352C314.627 352 320 357.373 320 364V404C320 410.627 314.627 416 308 416H12C5.373 416 0 410.627 0 404V359.252C0 352.625 5.373 347.252 12 347.252H97.28C124.588 347.252 145.541 337.294 158.25 320H12C5.373 320 0 314.627 0 308V268C0 261.373 5.373 256 12 256H170.757C164.54 219.914 137.796 197.368 96 197.368H12C5.373 197.368 0 191.995 0 185.368V132.356C0 129.007 1.4 125.81 3.861 123.538L168.913 -28.818A12.001000000000001 12.001000000000001 0 0 1 177.052 -32H259.614C270.538 -32 275.78 -18.592 267.753 -11.182L116.871 128.094C193.37 130.434 248.015 181.489 255.189 256H308C314.627 256 320 261.373 320 268V308C320 314.627 314.627 320 308 320H249.31C245.824 331.541 241.03 342.246 235.058 352H308z" /> + <glyph glyph-name="sad-cry" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192C0 101.9 48.2 23.3 120 -20.1V160C120 168.8 127.2 176 136 176S152 168.8 152 160V-36.7C181.5 -49.1 214 -56 248 -56S314.5 -49.1 344 -36.7V160C344 168.8 351.2 176 360 176S376 168.8 376 160V-20.1C447.8 23.3 496 102 496 192C496 329 385 440 248 440zM182.5 223.5C167.7 236.7 136.3 236.7 121.5 223.5L112 215C108.2 211.7 102.7 211 98.3 213.4C93.9 215.8 91.4 220.8 92.2 225.8C96.2 251 126.4 267.9 152.1 267.9S208 251 212 225.8C212.8 220.8 210.3 215.8 205.9 213.4C200.1 210.3 194.7 212.7 192.2 215L182.5 223.5zM248 32C221.5 32 200 60.7 200 96S221.5 160 248 160S296 131.3 296 96S274.5 32 248 32zM397.8 213.5C392 210.4 386.6 212.8 384.1 215.1L374.6 223.6C359.8 236.8 328.4000000000001 236.8 313.6 223.6L304 215C300.2 211.7 294.7 211 290.3 213.4C285.9000000000001 215.8 283.4000000000001 220.8 284.2 225.8C288.2 251 318.4 267.9 344.1 267.9S400 251 404 225.8C404.6 220.9 402.2 215.9 397.8 213.5z" /> + <glyph glyph-name="sad-tear" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 272C345.7 272 360 257.7 360 240S345.7 208 328 208S296 222.3 296 240S310.3 272 328 272zM152 32C125.5 32 104 53 104 79C104 99 132.5 139.4 145.6 156.8C148.8 161.1 155.2 161.1 158.4 156.8C171.5 139.4 200 99 200 79C200 53 178.5 32 152 32zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM338.2 53.8C315.8 80.6 282.9 96 248 96C226.8 96 226.8 128 248 128C292.4 128 334.3 108.4 362.7 74.2C376.5 57.8 351.5 37.7 338.2 53.8z" /> + <glyph glyph-name="save" + unicode="" + horiz-adv-x="448" d=" M433.941 318.059L350.059 401.9410000000001A48 48 0 0 1 316.118 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V284.118A48 48 0 0 1 433.941 318.059zM224 32C188.654 32 160 60.654 160 96C160 131.346 188.654 160 224 160S288 131.346 288 96C288 60.654 259.346 32 224 32zM320 336.52V236C320 229.373 314.627 224 308 224H76C69.373 224 64 229.373 64 236V340C64 346.627 69.373 352 76 352H304.52C307.703 352 310.755 350.736 313.005 348.485L316.485 345.005A11.996 11.996 0 0 0 320 336.52z" /> + <glyph glyph-name="school" + unicode="" + horiz-adv-x="640" d=" M0 224V-48C0 -56.84 7.16 -64 16 -64H96V256H32C14.33 256 0 241.67 0 224zM360 272H336V312C336 316.42 332.42 320 328 320H312C307.58 320 304 316.42 304 312V248C304 243.58 307.58 240 312 240H360C364.42 240 368 243.58 368 248V264C368 268.42 364.42 272 360 272zM497.75 335.9600000000001L337.75 442.63A32.02 32.02 0 0 1 302.25 442.63L142.25 335.9600000000001A32.002 32.002 0 0 1 128 309.3400000000001V-64H256V80C256 88.84 263.1600000000001 96 272 96H368C376.84 96 384 88.84 384 80V-64H512V309.3300000000001C512 320.0300000000001 506.65 330.0300000000001 497.75 335.9600000000001zM320 192C275.82 192 240 227.82 240 272S275.82 352 320 352S400 316.18 400 272S364.18 192 320 192zM608 256H544V-64H624C632.84 -64 640 -56.84 640 -48V224C640 241.67 625.67 256 608 256z" /> + <glyph glyph-name="screwdriver" + unicode="" + horiz-adv-x="512" d=" M448 448L320 352V289.94L236.97 206.91C243.76 202.66 250.24 197.85 256.04 192.04C261.8400000000001 186.24 266.6600000000001 179.76 270.9100000000001 172.97L353.94 256H416L512 384L448 448zM128 169.41L10.92 52.33C-3.63 37.78 -3.63 14.18 10.92 -0.38L63.62 -53.08C78.18 -67.64 101.77 -67.64 116.33 -53.08L233.41 64C262.52 93.11 262.52 140.3 233.41 169.41S157.11 198.52 128 169.41z" /> + <glyph glyph-name="search-dollar" + unicode="" + horiz-adv-x="512" d=" M505.04 5.34L405.3300000000001 105.03C400.8300000000001 109.53 394.73 112.03 388.3300000000001 112.03H372.0300000000001C399.6300000000001 147.33 416.0300000000001 191.72 416.0300000000001 240.02C416.03 354.91 322.92 448 208.02 448S0 354.91 0 240.02S93.11 32.04 208.02 32.04C256.32 32.04 300.73 48.44 336.03 76.04V59.74C336.03 53.34 338.53 47.24 343.03 42.74L442.74 -56.95C452.1399999999999 -66.35 467.34 -66.35 476.6399999999999 -56.95L504.9399999999999 -28.65C514.3399999999999 -19.25 514.3399999999999 -4.06 505.04 5.34zM208.0200000000001 96.04C128.48 96.04 64.02 160.38 64.02 240.02C64.02 319.55 128.37 384 208.0200000000001 384C287.5600000000001 384 352.0200000000001 319.66 352.0200000000001 240.02C352.0200000000001 160.49 287.6700000000001 96.04 208.0200000000001 96.04zM235.1300000000001 248.58L190.1200000000001 262.08C184.9600000000001 263.63 181.3500000000001 268.86 181.3500000000001 274.81C181.3500000000001 282.08 186.6500000000001 288 193.1500000000001 288H221.2600000000001C225.8200000000001 288 230.2200000000001 286.7099999999999 234.0800000000001 284.28C237.3200000000001 282.25 241.4400000000001 282.37 244.2100000000001 285.01L255.9600000000001 296.2199999999999C259.49 299.5899999999999 259.29 305.43 255.3900000000001 308.36C246.2900000000001 315.19 235.3100000000001 319.13 224.0200000000001 319.7099999999999V336C224.0200000000001 340.42 220.44 344 216.0200000000001 344H200.0200000000001C195.6000000000001 344 192.0200000000001 340.42 192.0200000000001 336V319.88C168.3900000000001 319.25 149.34 299.33 149.34 274.81C149.34 254.84 162.3300000000001 237 180.92 231.42L225.93 217.92C231.09 216.37 234.7 211.14 234.7 205.19C234.7 197.92 229.4 192 222.9 192H194.8C190.24 192 185.84 193.29 181.98 195.72C178.74 197.75 174.62 197.63 171.85 194.9900000000001L160.1 183.78C156.57 180.41 156.77 174.5700000000001 160.67 171.6400000000001C169.77 164.8100000000001 180.75 160.8700000000001 192.04 160.29V144C192.04 139.58 195.62 136 200.04 136H216.04C220.46 136 224.04 139.58 224.04 144V160.12C247.67 160.75 266.7200000000001 180.66 266.7200000000001 205.19C266.7200000000001 225.16 253.73 243 235.13 248.58z" /> + <glyph glyph-name="search-location" + unicode="" + horiz-adv-x="512" d=" M505.04 5.34L405.3300000000001 105.03C400.8300000000001 109.53 394.73 112.03 388.3300000000001 112.03H372.0300000000001C399.6300000000001 147.33 416.0300000000001 191.72 416.0300000000001 240.02C416.03 354.91 322.92 448 208.02 448S0 354.91 0 240.02S93.11 32.04 208.02 32.04C256.32 32.04 300.73 48.44 336.03 76.04V59.74C336.03 53.34 338.53 47.24 343.03 42.74L442.74 -56.95C452.1399999999999 -66.35 467.34 -66.35 476.6399999999999 -56.95L504.9399999999999 -28.65C514.3399999999999 -19.25 514.3399999999999 -4.06 505.04 5.34zM208.0200000000001 96.04C128.48 96.04 64.02 160.38 64.02 240.02C64.02 319.55 128.37 384 208.0200000000001 384C287.5600000000001 384 352.0200000000001 319.66 352.0200000000001 240.02C352.0200000000001 160.49 287.6700000000001 96.04 208.0200000000001 96.04zM208.0400000000001 336C167.2600000000001 336 134.2000000000001 302.95 134.2000000000001 262.17C134.2000000000001 229.21 182.46 169.12 200.9500000000001 147.31A9.24 9.24 0 0 1 215.1300000000001 147.31C233.6200000000001 169.12 281.8800000000001 229.2 281.8800000000001 262.17C281.8800000000001 302.95 248.8200000000001 336 208.0400000000001 336zM208.0400000000001 240C194.7800000000001 240 184.0400000000001 250.75 184.0400000000001 264C184.0400000000001 277.26 194.7900000000001 288 208.0400000000001 288S232.0400000000001 277.26 232.0400000000001 264C232.0400000000001 250.75 221.2900000000001 240 208.0400000000001 240z" /> + <glyph glyph-name="search-minus" + unicode="" + horiz-adv-x="512" d=" M304 256V224C304 217.4 298.6 212 292 212H124C117.4 212 112 217.4 112 224V256C112 262.6 117.4 268 124 268H292C298.6 268 304 262.6 304 256zM505 -28.7L476.7 -57C467.3 -66.4 452.1 -66.4 442.8 -57L343 42.7C338.5 47.2 336 53.3 336 59.7V76C300.7 48.4 256.3 32 208 32C93.1 32 0 125.1 0 240S93.1 448 208 448S416 354.9 416 240C416 191.7 399.6 147.3 372 112H388.3C394.7 112 400.8 109.5 405.3 105L505 5.3C514.3 -4.1 514.3 -19.3 505 -28.7zM344 240C344 315.2 283.2 376 208 376S72 315.2 72 240S132.8 104 208 104S344 164.8 344 240z" /> + <glyph glyph-name="search-plus" + unicode="" + horiz-adv-x="512" d=" M304 256V224C304 217.4 298.6 212 292 212H236V156C236 149.4 230.6 144 224 144H192C185.4 144 180 149.4 180 156V212H124C117.4 212 112 217.4 112 224V256C112 262.6 117.4 268 124 268H180V324C180 330.6 185.4 336 192 336H224C230.6 336 236 330.6 236 324V268H292C298.6 268 304 262.6 304 256zM505 -28.7L476.7 -57C467.3 -66.4 452.1 -66.4 442.8 -57L343 42.7C338.5 47.2 336 53.3 336 59.7V76C300.7 48.4 256.3 32 208 32C93.1 32 0 125.1 0 240S93.1 448 208 448S416 354.9 416 240C416 191.7 399.6 147.3 372 112H388.3C394.7 112 400.8 109.5 405.3 105L505 5.3C514.3 -4.1 514.3 -19.3 505 -28.7zM344 240C344 315.2 283.2 376 208 376S72 315.2 72 240S132.8 104 208 104S344 164.8 344 240z" /> + <glyph glyph-name="search" + unicode="" + horiz-adv-x="512" d=" M505 5.3L405.3 105C400.8 109.5 394.7 112 388.3 112H372C399.6 147.3 416 191.7 416 240C416 354.9 322.9 448 208 448S0 354.9 0 240S93.1 32 208 32C256.3 32 300.7 48.4 336 76V59.7C336 53.3 338.5 47.2 343 42.7L442.7 -57C452.1 -66.4 467.3 -66.4 476.6 -57L504.9 -28.7C514.3 -19.3 514.3 -4.1 505 5.3zM208 112C137.3 112 80 169.2 80 240C80 310.7 137.2 368 208 368C278.7 368 336 310.8 336 240C336 169.3 278.8 112 208 112z" /> + <glyph glyph-name="seedling" + unicode="" + horiz-adv-x="512" d=" M64 352H0C0 228.3 100.3 128 224 128V-16C224 -24.8 231.2 -32 240 -32H272C280.8 -32 288 -24.8 288 -16V128C288 251.7 187.7 352 64 352zM448 416C363.8 416 290.6 369.5 252.3 300.8C280 270.6 300.5 233.9 311.3 193.2C424 204.9 512 300.1 512 416H448z" /> + <glyph glyph-name="server" + unicode="" + horiz-adv-x="512" d=" M480 288H32C14.327 288 0 302.327 0 320V384C0 401.673 14.327 416 32 416H480C497.673 416 512 401.673 512 384V320C512 302.327 497.673 288 480 288zM432 376C418.745 376 408 365.255 408 352S418.745 328 432 328S456 338.745 456 352S445.255 376 432 376zM368 376C354.745 376 344 365.255 344 352S354.745 328 368 328S392 338.745 392 352S381.255 376 368 376zM480 128H32C14.327 128 0 142.327 0 160V224C0 241.673 14.327 256 32 256H480C497.673 256 512 241.673 512 224V160C512 142.327 497.673 128 480 128zM432 216C418.745 216 408 205.255 408 192S418.745 168 432 168S456 178.745 456 192S445.255 216 432 216zM368 216C354.745 216 344 205.255 344 192S354.745 168 368 168S392 178.745 392 192S381.255 216 368 216zM480 -32H32C14.327 -32 0 -17.673 0 0V64C0 81.673 14.327 96 32 96H480C497.673 96 512 81.673 512 64V0C512 -17.673 497.673 -32 480 -32zM432 56C418.745 56 408 45.255 408 32S418.745 8 432 8S456 18.745 456 32S445.255 56 432 56zM368 56C354.745 56 344 45.255 344 32S354.745 8 368 8S392 18.745 392 32S381.255 56 368 56z" /> + <glyph glyph-name="shapes" + unicode="" + horiz-adv-x="512" d=" M512 128V-32C512 -49.67 497.67 -64 480 -64H320C302.33 -64 288 -49.67 288 -32V128C288 145.67 302.33 160 320 160H480C497.67 160 512 145.67 512 128zM128 192C57.31 192 0 134.69 0 64S57.31 -64 128 -64S256 -6.69 256 64S198.69 192 128 192zM479.03 224C504.3699999999999 224 520.2099999999999 250.67 507.54 272L412.51 432C399.84 453.33 368.16 453.33 355.49 432L260.4600000000001 272C247.7900000000001 250.67 263.6300000000001 224 288.9700000000001 224H479.03z" /> + <glyph glyph-name="share-alt-square" + unicode="" + horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM304 152C289.438 152 276.177 146.439 266.217 137.329L198.259 178.104A56.33899999999999 56.33899999999999 0 0 1 198.259 205.897L266.217 246.672C276.177 237.561 289.438 232 304 232C334.928 232 360 257.072 360 288S334.928 344 304 344S248 318.928 248 288C248 283.203 248.605 278.5470000000001 249.74 274.103L181.782 233.328C171.823 242.439 158.562 248 144 248C113.072 248 88 222.928 88 192S113.072 136 144 136C158.562 136 171.823 141.561 181.783 150.671L249.741 109.896A56.08800000000001 56.08800000000001 0 0 1 248.001 95.999C248.001 65.071 273.073 39.999 304.001 39.999S360.001 65.071 360.001 95.999C360 126.928 334.928 152 304 152z" /> + <glyph glyph-name="share-alt" + unicode="" + horiz-adv-x="448" d=" M352 128C329.392 128 308.613 120.181 292.21 107.105L189.724 171.159A96.551 96.551 0 0 1 189.724 212.842L292.21 276.896C308.613 263.819 329.392 256 352 256C405.019 256 448 298.981 448 352S405.019 448 352 448S256 405.019 256 352C256 344.842 256.79 337.87 258.276 331.159L155.79 267.105C139.387 280.1810000000001 118.608 288 96 288C42.981 288 0 245.019 0 192S42.981 96 96 96C118.608 96 139.387 103.819 155.79 116.895L258.276 52.841A96.301 96.301 0 0 1 256 32C256 -21.019 298.981 -64 352 -64S448 -21.019 448 32S405.019 128 352 128z" /> + <glyph glyph-name="share-square" + unicode="" + horiz-adv-x="576" d=" M568.482 270.552L424.479 134.567C409.3 120.232 384 130.86 384 152.015V223.978C239.425 223.008 178.434 188.865 219.225 52.625C223.708 37.652 206.379 26.058 194.219 35.295C155.252 64.895 120 121.512 120 178.661C120 322.598 237.599 351.161 384 351.973V423.988C384 445.162 409.317 455.756 424.479 441.436L568.482 305.448C578.502 295.985 578.51 280.023 568.482 270.552zM384 68.872V0H64V320H114.916A11.989999999999998 11.989999999999998 0 0 1 123.564 323.693C138.517 339.261 155.801 351.583 174.578 361.3690000000001C185.708 367.17 181.584 384 169.033 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V72.806C448 81.094 439.803 86.872 431.989 84.108A71.83 71.83 0 0 0 397.8 80.731C390.53 81.777 384 76.217 384 68.872z" /> + <glyph glyph-name="share" + unicode="" + horiz-adv-x="512" d=" M503.691 258.164L327.687 410.149C312.281 423.454 288 412.653 288 391.985V311.932C127.371 310.093 0 277.9 0 125.674C0 64.233 39.581 3.365 83.333 -28.458C96.986 -38.389 116.444 -25.925 111.41 -9.827C66.066 135.186 132.917 173.684 288 175.915V88C288 67.3 312.3 56.547 327.687 69.836L503.691 221.836C514.7620000000001 231.398 514.777 248.589 503.691 258.164z" /> + <glyph glyph-name="shekel-sign" + unicode="" + horiz-adv-x="448" d=" M248 280V112C248 103.16 255.16 96 264 96H312C320.84 96 328 103.16 328 112V280C328 355.11 267.11 416 192 416H24C10.75 416 0 405.26 0 392V-16C0 -24.84 7.16 -32 16 -32H64C72.84 -32 80 -24.84 80 -16V336H192C222.93 336 248 310.93 248 280zM432 416H384C375.1600000000001 416 368 408.8400000000001 368 400V104C368 73.07 342.93 48 312 48H200V272C200 280.8400000000001 192.84 288 184 288H136C127.16 288 120 280.8400000000001 120 272V-8C120 -21.25 130.75 -32 144 -32H312C387.11 -32 448 28.89 448 104V400C448 408.8400000000001 440.84 416 432 416z" /> + <glyph glyph-name="shield-alt" + unicode="" + horiz-adv-x="512" d=" M496 320C496 98.718 360.0660000000001 -24.645 274.461 -60.308A48 48 0 0 0 237.538 -60.308C130.495 -15.713 16 121.513 16 320A48 48 0 0 0 45.539 364.308L237.539 444.308A48 48 0 0 0 274.462 444.308L466.462 364.308A48 48 0 0 0 496 320zM256 1.687L256.066 1.653C349.801 48.342 428.563 157.961 431.883 309.382L256 382.6670000000001V1.687z" /> + <glyph glyph-name="ship" + unicode="" + horiz-adv-x="640" d=" M496.616 75.361L566.6279999999999 145.373C583.5269999999999 162.273 576.5699999999999 191.144 553.7919999999999 198.465L512 211.898V352C512 369.673 497.673 384 480 384H416V424C416 437.255 405.255 448 392 448H248C234.745 448 224 437.255 224 424V384H160C142.327 384 128 369.673 128 352V211.898L86.208 198.465C63.455 191.152 56.454 162.292 73.372 145.373L143.384 75.361C125.828 31.713 85.587 0 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64C85.023 -64 131.499 -43.39 167.258 -4.604C181.677 -39.432 216.021 -64 256 -64H384C423.979 -64 458.323 -39.432 472.742 -4.604C508.495 -43.384 554.968 -64 616 -64C629.255 -64 640 -53.255 640 -40V-24C640 -10.745 629.255 0 616 0C555.183 0 514.458 31.001 496.616 75.361zM192 320H448V232.469L329.7920000000001 270.464A31.995 31.995 0 0 1 310.2080000000001 270.464L192 232.469V320z" /> + <glyph glyph-name="shipping-fast" + unicode="" + horiz-adv-x="640" d=" M624 96H608V204.1C608 216.8 602.9 229 593.9 238L494 337.9C485 346.9 472.8 352 460.1 352H416V400C416 426.5 394.5 448 368 448H112C85.5 448 64 426.5 64 400V352H8C3.6 352 0 348.4 0 344V328C0 323.6 3.6 320 8 320H280C284.4 320 288 316.4 288 312V296C288 291.6 284.4 288 280 288H40C35.6 288 32 284.4 32 280V264C32 259.6 35.6 256 40 256H248C252.4 256 256 252.4 256 248V232C256 227.6 252.4 224 248 224H8C3.6 224 0 220.4 0 216V200C0 195.6 3.6 192 8 192H216C220.4 192 224 188.4 224 184V168C224 163.6 220.4 160 216 160H64V32C64 -21 107 -64 160 -64S256 -21 256 32H384C384 -21 427 -64 480 -64S576 -21 576 32H624C632.8 32 640 39.2 640 48V80C640 88.8 632.8 96 624 96zM160 -16C133.5 -16 112 5.5 112 32S133.5 80 160 80S208 58.5 208 32S186.5 -16 160 -16zM480 -16C453.5 -16 432 5.5 432 32S453.5 80 480 80S528 58.5 528 32S506.5 -16 480 -16zM560 192H416V304H460.1L560 204.1V192z" /> + <glyph glyph-name="shoe-prints" + unicode="" + horiz-adv-x="640" d=" M192 288H224V416H192C156.65 416 128 387.35 128 352S156.65 288 192 288zM0 32C0 -3.35 28.65 -32 64 -32H96V96H64C28.65 96 0 67.35 0 32zM337.46 160C302.55 160 261.3 146.88 232.73 128C207.94 111.62 188.21 96 128 96V-32L185.53 -47.97C211.74 -55.25 238.54 -61.09 265.84 -63.02C298.53 -65.33 331.44 -63.69 363.42 -56.82C472.9 -33.3 512 18.78 512 64C512 128 427.82 160 337.4600000000001 160zM491.42 440.81C459.44 447.68 426.53 449.33 393.84 447.01C366.54 445.08 339.74 439.24 313.53 431.9700000000001L256 416V288C316.2 288 335.94 272.38 360.73 256C389.3 237.12 430.55 224 465.46 224C555.82 224 640 256 640 320C640 365.2200000000001 600.9 417.3 491.42 440.81z" /> + <glyph glyph-name="shopping-bag" + unicode="" + horiz-adv-x="448" d=" M352 288V320C352 390.58 294.579 448 224 448C153.42 448 96 390.58 96 320V288H0V16C0 -28.183 35.817 -64 80 -64H368C412.183 -64 448 -28.183 448 16V288H352zM160 320C160 355.29 188.71 384 224 384S288 355.29 288 320V288H160V320zM320 200C306.745 200 296 210.745 296 224S306.745 248 320 248S344 237.255 344 224S333.255 200 320 200zM128 200C114.745 200 104 210.745 104 224S114.745 248 128 248S152 237.255 152 224S141.255 200 128 200z" /> + <glyph glyph-name="shopping-basket" + unicode="" + horiz-adv-x="576" d=" M576 232V216C576 202.745 565.255 192 552 192H544L517.887 9.212C514.509 -14.435 494.257 -32 470.37 -32H105.63C81.743 -32 61.491 -14.435 58.112 9.212L32 192H24C10.745 192 0 202.745 0 216V232C0 245.255 10.745 256 24 256H91.341L198.121 402.8210000000001C208.516 417.113 228.528 420.274 242.822 409.879C257.115 399.484 260.275 379.471 249.88 365.178L170.477 256H405.523L326.12 365.179C315.725 379.471 318.886 399.485 333.1790000000001 409.88C347.4700000000001 420.275 367.485 417.115 377.8800000000001 402.822L484.659 256H552C565.255 256 576 245.255 576 232zM312 56V168C312 181.255 301.255 192 288 192S264 181.255 264 168V56C264 42.745 274.745 32 288 32S312 42.745 312 56zM424 56V168C424 181.255 413.255 192 400 192S376 181.255 376 168V56C376 42.745 386.745 32 400 32S424 42.745 424 56zM200 56V168C200 181.255 189.255 192 176 192S152 181.255 152 168V56C152 42.745 162.745 32 176 32S200 42.745 200 56z" /> + <glyph glyph-name="shopping-cart" + unicode="" + horiz-adv-x="576" d=" M528.12 146.681L575.393 354.681C578.806 369.699 567.391 384 551.99 384H159.208L150.042 428.81C147.758 439.979 137.93 448 126.529 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384H93.883L164.131 40.565C147.325 30.9 136 12.778 136 -8C136 -38.928 161.072 -64 192 -64S248 -38.928 248 -8C248 7.674 241.553 21.835 231.176 32H440.823C430.447 21.835 424 7.674 424 -8C424 -38.928 449.072 -64 480 -64S536 -38.928 536 -8C536 14.172 523.112 33.332 504.421 42.405L509.938 66.681C513.351 81.699 501.936 96 486.535 96H218.117L211.572 128H504.717C515.923 128 525.637 135.754 528.12 146.681z" /> + <glyph glyph-name="shower" + unicode="" + horiz-adv-x="512" d=" M389.6600000000001 312.4L231.6 154.34C222.23 144.97 207.03 144.97 197.66 154.34L186.34 165.66C176.97 175.03 176.97 190.23 186.34 199.6L186.45 199.71C152.42 239.92 151.29 298.65 183.06 340.09C171.09 347.64 156.92 352 141.7600000000001 352C98.88 352 64 317.12 64 274.24V-32H0V274.24C0 352.41 63.59 416 141.76 416C178.69 416 212.37 401.8 237.62 378.58C273.52 390.09 314.12 383.08 344.29 357.55L344.4000000000001 357.66C353.7700000000001 367.03 368.9700000000001 367.03 378.3400000000001 357.66L389.6600000000001 346.3400000000001C399.0300000000001 336.9700000000001 399.0300000000001 321.77 389.6600000000001 312.4zM384 240C384 231.163 376.837 224 368 224S352 231.163 352 240S359.163 256 368 256S384 248.837 384 240zM416 240C416 248.837 423.163 256 432 256S448 248.837 448 240S440.837 224 432 224S416 231.163 416 240zM512 240C512 231.163 504.837 224 496 224S480 231.163 480 240S487.163 256 496 256S512 248.837 512 240zM352 208C352 199.163 344.837 192 336 192S320 199.163 320 208S327.163 224 336 224S352 216.837 352 208zM400 224C408.837 224 416 216.837 416 208S408.837 192 400 192S384 199.163 384 208S391.163 224 400 224zM480 208C480 199.163 472.837 192 464 192S448 199.163 448 208S455.163 224 464 224S480 216.837 480 208zM320 176C320 167.163 312.837 160 304 160S288 167.163 288 176S295.163 192 304 192S320 184.837 320 176zM352 176C352 184.837 359.163 192 368 192S384 184.837 384 176S376.837 160 368 160S352 167.163 352 176zM448 176C448 167.163 440.837 160 432 160S416 167.163 416 176S423.163 192 432 192S448 184.837 448 176zM320 144C320 152.837 327.163 160 336 160S352 152.837 352 144S344.837 128 336 128S320 135.163 320 144zM416 144C416 135.163 408.837 128 400 128S384 135.163 384 144S391.163 160 400 160S416 152.837 416 144zM320 112C320 103.163 312.837 96 304 96S288 103.163 288 112S295.163 128 304 128S320 120.837 320 112zM384 112C384 103.163 376.837 96 368 96S352 103.163 352 112S359.163 128 368 128S384 120.837 384 112zM352 80C352 71.163 344.837 64 336 64S320 71.163 320 80S327.163 96 336 96S352 88.837 352 80zM320 48C320 39.163 312.837 32 304 32S288 39.163 288 48S295.163 64 304 64S320 56.837 320 48z" /> + <glyph glyph-name="shuttle-van" + unicode="" + horiz-adv-x="640" d=" M628.88 237.35L494.39 398.73A48.01 48.01 0 0 1 457.52 416H32C14.33 416 0 401.67 0 384V96C0 78.33 14.33 64 32 64H64C64 10.98 106.98 -32 160 -32S256 10.98 256 64H384C384 10.98 426.98 -32 480 -32S576 10.98 576 64H608C625.67 64 640 78.33 640 96V206.62C640 217.85 636.06 228.72 628.88 237.35zM64 256V352H160V256H64zM160 16C133.49 16 112 37.49 112 64S133.49 112 160 112S208 90.51 208 64S186.51 16 160 16zM320 256H224V352H320V256zM480 16C453.49 16 432 37.49 432 64S453.49 112 480 112S528 90.51 528 64S506.51 16 480 16zM384 256V352H450.02L530.02 256H384z" /> + <glyph glyph-name="sign-in-alt" + unicode="" + horiz-adv-x="512" d=" M416 0H332C325.4 0 320 5.4 320 12V52C320 58.6 325.4 64 332 64H416C433.7 64 448 78.3 448 96V288C448 305.7 433.7 320 416 320H332C325.4 320 320 325.4 320 332V372C320 378.6 325.4 384 332 384H416C469 384 512 341 512 288V96C512 43 469 0 416 0zM369 201L201 369C186 384 160 373.5 160 352V256H24C10.7 256 0 245.3 0 232V136C0 122.7 10.7 112 24 112H160V16C160 -5.5 186 -16 201 -1L369 167C378.3 176.4 378.3 191.6 369 201z" /> + <glyph glyph-name="sign-language" + unicode="" + horiz-adv-x="448" d=" M91.434 -35.987C91.127 -19.969 104.543 -6.858 120.564 -6.858H182.857V-1.144H56.993C40.972 -1.144 27.556 11.967 27.863 27.985C28.16 43.509 40.835 56 56.428 56H182.857V61.714H29.136C13.115 61.714 -0.301 74.825 0.006 90.843C0.303 106.365 12.979 118.856 28.572 118.856H182.858V124.57H57.707C41.686 124.57 28.27 137.681 28.577 153.699C28.874 169.221 41.55 181.712 57.143 181.712H225.709L194.624 204.318C181.862 213.599 179.041 231.467 188.322 244.23C197.603 256.991 215.472 259.812 228.234 250.532L351.5950000000001 160.817A34.287 34.287 0 0 0 365.7150000000001 133.089V-8.047C365.7150000000001 -23.957 354.769 -37.777 339.2820000000001 -41.421L258.8110000000001 -60.3550000000001A137.16 137.16 0 0 0 227.4000000000001 -64.0010000000001H120C104.407 -64.0000000000001 91.731 -51.5090000000001 91.434 -35.9870000000001zM164.683 189.714H201.106L189.919 197.8499999999999C171.34 211.3609999999999 169.606 238.737 186.749 254.386L173.745 271.0859999999999C163.902 283.7269999999999 145.315 286.257 132.865 276.1739999999999C120.8 266.4029999999999 118.732 248.7269999999999 128.312 236.4239999999999L164.683 189.714zM447.981 191.817L442.978 344.269C442.4600000000001 360.04 429.2560000000001 372.405 413.485 371.8879999999999C397.712 371.37 385.348 358.166 385.866 342.395L387.128 303.98L283.565 436.981C273.985 449.284 256.342 451.611 243.912 442.3090000000001C231.085 432.71 228.983 414.069 238.826 401.428L315.715 302.683L311.206 299.1720000000001L216.416 420.906C206.8359999999999 433.209 189.1929999999999 435.536 176.763 426.234C163.936 416.635 161.834 397.994 171.6769999999999 385.353L266.12 264.065L261.611 260.554L183.9359999999999 360.308C174.3559999999999 372.611 156.7129999999999 374.938 144.2829999999999 365.636C131.4559999999999 356.0370000000001 129.3539999999999 337.396 139.1969999999999 324.755L191.2499999999999 257.906C203.7469999999999 266.163 220.3049999999999 266.1910000000001 232.9399999999999 257.002L356.2999999999999 167.288C367.2039999999999 159.358 373.7149999999999 146.573 373.7149999999999 133.09V116.091L434.779 163.64A34.285 34.285 0 0 1 447.981 191.817z" /> + <glyph glyph-name="sign-out-alt" + unicode="" + horiz-adv-x="512" d=" M497 175L329 7C314 -8 288 2.5 288 24V120H152C138.7 120 128 130.7 128 144V240C128 253.3 138.7 264 152 264H288V360C288 381.4 313.9 392 329 377L497 209C506.3 199.6 506.3 184.4 497 175zM192 12V52C192 58.6 186.6 64 180 64H96C78.3 64 64 78.3 64 96V288C64 305.7 78.3 320 96 320H180C186.6 320 192 325.4 192 332V372C192 378.6 186.6 384 180 384H96C43 384 0 341 0 288V96C0 43 43 0 96 0H180C186.6 0 192 5.4 192 12z" /> + <glyph glyph-name="sign" + unicode="" + horiz-adv-x="512" d=" M496 384H128V432C128 440.8 120.8 448 112 448H80C71.2 448 64 440.8 64 432V384H16C7.2 384 0 376.8 0 368V336C0 327.2 7.2 320 16 320H64V-48C64 -56.8 71.2 -64 80 -64H112C120.8 -64 128 -56.8 128 -48V320H496C504.8 320 512 327.2 512 336V368C512 376.8 504.8 384 496 384zM160 64H480V288H160V64z" /> + <glyph glyph-name="signal" + unicode="" + horiz-adv-x="640" d=" M216 160H168C159.16 160 152 152.84 152 144V-48C152 -56.84 159.16 -64 168 -64H216C224.84 -64 232 -56.84 232 -48V144C232 152.84 224.84 160 216 160zM88 64H40C31.16 64 24 56.84 24 48V-48C24 -56.84 31.16 -64 40 -64H88C96.84 -64 104 -56.84 104 -48V48C104 56.84 96.84 64 88 64zM344 256H296C287.1600000000001 256 280 248.84 280 240V-48C280 -56.84 287.1600000000001 -64 296 -64H344C352.84 -64 360 -56.84 360 -48V240C360 248.84 352.84 256 344 256zM472 352H424C415.1600000000001 352 408 344.8400000000001 408 336V-48C408 -56.84 415.1600000000001 -64 424 -64H472C480.84 -64 488 -56.84 488 -48V336C488 344.8400000000001 480.84 352 472 352zM600 448H552C543.16 448 536 440.84 536 432V-48C536 -56.84 543.16 -64 552 -64H600C608.84 -64 616 -56.84 616 -48V432C616 440.84 608.84 448 600 448z" /> + <glyph glyph-name="signature" + unicode="" + horiz-adv-x="512" d=" M496 128H404.14C394.87 128 384.42 139.31 378.36 156.52C363.13 199.88 330.25 226.82 292.56 226.82C261.7200000000001 226.82 234.09 208.77 216.45 177.59L194.8 341.5C188.84 366.92 169.34 384 146.28 384C123.23 384 103.73 366.92 97.78 341.5L56.16 163.8C50.7 140.55 37.75 128 28.33 128H16C7.16 128 0 120.84 0 112V80C0 71.16 7.16 64 16 64H28.33C70.3 64 106.52 98.23 118.47 149.2L142.31 250.98L171.56 28.87C173.54 13.82 185.38 1.42 200.5 0.12C201.49 0.03 202.46 -0.01 203.43 -0.01C217.51 -0.01 230.07 9.26 234.12 22.94L267.15 135.28C273.03 152 282.99 162.8 292.56 162.8C302.14 162.8 312.11 152 318.3400000000001 134.28C333.5700000000001 90.92 366.4500000000001 63.98 404.1400000000001 63.98H496C504.84 63.98 512 71.14 512 79.98V111.98C512 120.84 504.84 128 496 128z" /> + <glyph glyph-name="sitemap" + unicode="" + horiz-adv-x="640" d=" M128 96H32C14.33 96 0 81.67 0 64V-32C0 -49.67 14.33 -64 32 -64H128C145.67 -64 160 -49.67 160 -32V64C160 81.67 145.67 96 128 96zM104 176H296V128H344V176H536V128H584V185.59C584 206.7600000000001 566.77 224 545.59 224H344V288H384C401.67 288 416 302.3300000000001 416 320V416C416 433.67 401.67 448 384 448H256C238.33 448 224 433.67 224 416V320C224 302.33 238.33 288 256 288H296V224H94.41C73.23 224 56 206.77 56 185.59V128H104V176zM368 96H272C254.33 96 240 81.67 240 64V-32C240 -49.67 254.33 -64 272 -64H368C385.67 -64 400 -49.67 400 -32V64C400 81.67 385.67 96 368 96zM608 96H512C494.33 96 480 81.67 480 64V-32C480 -49.67 494.33 -64 512 -64H608C625.67 -64 640 -49.67 640 -32V64C640 81.67 625.67 96 608 96z" /> + <glyph glyph-name="skull" + unicode="" + horiz-adv-x="512" d=" M256 448C114.6 448 0 347.7 0 224C0 153.9 36.9 91.4 94.5 50.3C104.1 43.4 109.7 32.2 108 20.4L98.6 -45.8C97.2 -55.4 104.6 -63.9999999999999 114.3 -63.9999999999999H192V-7.9999999999999C192 -3.6 195.6 1e-13 200 1e-13H216C220.4 1e-13 224 -3.6 224 -7.9999999999999V-63.9999999999999H288V-7.9999999999999C288 -3.6 291.6 1e-13 296 1e-13H312C316.4 1e-13 320 -3.6 320 -7.9999999999999V-63.9999999999999H397.7C407.4 -63.9999999999999 414.8 -55.3999999999999 413.4 -45.8L404 20.4C402.3 32.1 407.8 43.4 417.5 50.3C475.1 91.4 512 153.9 512 224C512 347.7 397.4 448 256 448zM160 128C124.7 128 96 156.7 96 192S124.7 256 160 256S224 227.3 224 192S195.3 128 160 128zM352 128C316.7 128 288 156.7 288 192S316.7 256 352 256S416 227.3 416 192S387.3 128 352 128z" /> + <glyph glyph-name="sliders-h" + unicode="" + horiz-adv-x="512" d=" M496 64H160V80C160 88.8 152.8 96 144 96H112C103.2 96 96 88.8 96 80V64H16C7.2 64 0 56.8 0 48V16C0 7.2 7.2 0 16 0H96V-16C96 -24.8 103.2 -32 112 -32H144C152.8 -32 160 -24.8 160 -16V0H496C504.8 0 512 7.2 512 16V48C512 56.8 504.8 64 496 64zM496 224H416V240C416 248.8 408.8 256 400 256H368C359.2 256 352 248.8 352 240V224H16C7.2 224 0 216.8 0 208V176C0 167.2 7.2 160 16 160H352V144C352 135.2 359.2 128 368 128H400C408.8 128 416 135.2 416 144V160H496C504.8 160 512 167.2 512 176V208C512 216.8 504.8 224 496 224zM496 384H288V400C288 408.8 280.8 416 272 416H240C231.2 416 224 408.8 224 400V384H16C7.2 384 0 376.8 0 368V336C0 327.2 7.2 320 16 320H224V304C224 295.2 231.2 288 240 288H272C280.8 288 288 295.2 288 304V320H496C504.8 320 512 327.2 512 336V368C512 376.8 504.8 384 496 384z" /> + <glyph glyph-name="smile-beam" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM112 224.6C115.3 266.7 144.2 296 168 296S220.7 266.7 224 224.6C224.7 216 213.2 212.7 209.1 220.1L199.6 237.1C191.9 250.8 180.4 258.7 168.1 258.7S144.3 250.8 136.6 237.1L127.1 220.1C122.8 212.7 111.3 216.1 112 224.6zM362.8 101.8C334.3 67.6 292.5 48 248 48S161.7 67.6 133.2 101.8C119.7 118.1 144.2 138.5 157.8 122.3C180.2 95.4 213 80.1 248 80.1S315.8 95.5 338.2 122.3C351.8 138.5 376.3 118 362.8 101.8zM369 220.1L359.5 237.1C351.8 250.8 340.3 258.7000000000001 328 258.7000000000001S304.2 250.8 296.5 237.1L287 220.1C282.9 212.8 271.4 216.1 272.1 224.6C275.4000000000001 266.7000000000001 304.3 296 328.1 296S380.8 266.7000000000001 384.1 224.6C384.7000000000001 216 373.1 212.7 369 220.1z" /> + <glyph glyph-name="smile-wink" + unicode="" + horiz-adv-x="496" d=" M0 192C0 55 111 -56 248 -56S496 55 496 192S385 440 248 440S0 329 0 192zM200 240C200 222.3 185.7 208 168 208S136 222.3 136 240S150.3 272 168 272S200 257.7 200 240zM358.5 223.5C343.7 236.7 312.3 236.7 297.5 223.5L288 215C279.7 207.6 266.4 214.6 268.2 225.8C272.2 251 302.4 267.9 328.1 267.9S384 251 388 225.8C389.7 214.7 376.6 207.5 368.2 215L358.5 223.5zM157.8 122.2C180.2 95.3 213 80 248 80S315.8 95.4 338.2 122.2C351.8 138.4 376.3 118 362.8 101.7C334.3 67.6 292.5 48 248 48S161.7 67.6 133.2 101.8C119.7 118.1 144.4 138.5 157.8 122.2z" /> + <glyph glyph-name="smile" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 272C345.7 272 360 257.7 360 240S345.7 208 328 208S296 222.3 296 240S310.3 272 328 272zM168 272C185.7 272 200 257.7 200 240S185.7 208 168 208S136 222.3 136 240S150.3 272 168 272zM362.8 101.8C334.3 67.6 292.5 48 248 48S161.7 67.6 133.2 101.8C119.6 118.1 144.2 138.5 157.8 122.3C180.2 95.4 213 80.1 248 80.1S315.8 95.5 338.2 122.3C351.6 138.5 376.3 118.1 362.8 101.8z" /> + <glyph glyph-name="smoking-ban" + unicode="" + horiz-adv-x="512" d=" M96 144C96 135.2 103.2 128 112 128H229.5L133.5 224H112C103.2 224 96 216.8 96 208V144zM256 448C114.6 448 0 333.4 0 192S114.6 -64 256 -64S512 50.6 512 192S397.4 448 256 448zM256 0C150.1 0 64 86.1 64 192C64 233.4 77.3 271.7 99.7 303.1L367.1 35.7C335.7 13.3 297.4 0 256 0zM301.2 192H384V160H333.2L301.2 192zM412.3 80.9L365.2 128H400C408.8 128 416 135.2 416 144V208C416 216.8 408.8 224 400 224H269.2L144.9 348.3C176.3 370.7 214.6 384 256 384C361.9 384 448 297.9 448 192C448 150.6 434.7 112.3 412.3 80.9zM320.6 320C305 320 292 331.2 289.2000000000001 345.9C288.5000000000001 349.5 285.2000000000001 352 281.5000000000001 352H265.3000000000001C260.3000000000001 352 256.6000000000001 347.5 257.3000000000001 342.6C261.9000000000001 311.7 288.5000000000001 288 320.6000000000001 288C336.2000000000001 288 349.2000000000001 276.8 352.0000000000001 262.1C352.7000000000001 258.5 356.0000000000001 256 359.7000000000001 256H375.9000000000001C380.9000000000001 256 384.6 260.5 383.9000000000001 265.4C379.3 296.3 352.7000000000001 320 320.6 320z" /> + <glyph glyph-name="smoking" + unicode="" + horiz-adv-x="640" d=" M632 96H584C579.6 96 576 92.4 576 88V-56C576 -60.4 579.6 -64 584 -64H632C636.4 -64 640 -60.4 640 -56V88C640 92.4 636.4 96 632 96zM553.3 360.9C547.5999999999999 364.7 544 370.9 544 377.7V440C544 444.4 540.4 448 536 448H488C483.6 448 480 444.4 480 440V377.7C480 355.7 490.2 334.3 508.6 322.3C550.8000000000001 295 576 248.5 576 198.3V168C576 163.6 579.6 160 584 160H632C636.4 160 640 163.6 640 168V198.3C640 263.8 607.6 324.5 553.3 360.9zM432 96H48C21.5 96 0 74.5 0 48V-16C0 -42.5 21.5 -64 48 -64H432C440.8 -64 448 -56.8 448 -48V80C448 88.8 440.8 96 432 96zM400 -16H224V48H400V-16zM487.7 306.4C463.8 323 448 348.7 448 377.7V440C448 444.4 444.4 448 440 448H392C387.6 448 384 444.4 384 440V373.6C384 329.9 408.6 292 444.3 266.9C466.7 251.2 480 225.7 480 198.3V168C480 163.6 483.6 160 488 160H536C540.4 160 544 163.6 544 168V198.3C544 241.6 523 281.7000000000001 487.7 306.4zM536 96H488C483.6 96 480 92.4 480 88V-56C480 -60.4 483.6 -64 488 -64H536C540.4 -64 544 -60.4 544 -56V88C544 92.4 540.4 96 536 96z" /> + <glyph glyph-name="snowflake" + unicode="" + horiz-adv-x="448" d=" M444.816 146.361A24.12 24.12 0 0 1 447.477 163.339C444.752 176.305 432.138 184.584 419.303 181.831L331.896 156.785L264 192L331.896 227.215L419.303 202.169C432.138 199.416 444.752 207.695 447.477 220.661C450.202 233.627 442.006 246.369 429.172 249.122L381.695 256.259L434.772 287.2150000000001C446.135 293.842 450.029 308.521 443.468 320C436.9070000000001 331.479 422.377 335.4120000000001 411.014 328.785L357.937 297.829L375.558 342.933C379.615 355.539 372.79 369.079 360.311 373.178C347.833 377.2770000000001 334.428 370.3810000000001 330.371 357.776L308.139 268.786L247.759 233.571V304L312.9340000000001 367.945C321.7120000000001 377.7970000000001 320.9210000000001 392.972 311.168 401.839C301.415 410.706 286.3930000000001 409.907 277.616 400.055L247.759 362.088V424C247.759 437.255 237.122 448 224.001 448S200.243 437.255 200.243 424V362.088L170.386 400.055C161.607 409.907 146.587 410.707 136.834 401.839C127.081 392.972 126.291 377.7970000000001 135.068 367.945L200.242 304V233.569L139.862 268.784L117.63 357.774C113.573 370.379 100.168 377.2750000000001 87.69 373.1760000000001C75.212 369.077 68.386 355.536 72.443 342.9310000000001L90.063 297.827L36.986 328.783C25.623 335.41 11.093 331.477 4.532 319.998S1.865 293.841 13.228 287.213L66.305 256.257L18.828 249.12C5.993 246.366 -2.203 233.625 0.523 220.659C3.248 207.694 15.862 199.414 28.697 202.167L116.104 227.213L184 192L116.104 156.785L28.698 181.83C15.863 184.583 3.249 176.304 0.524 163.338C-2.201 150.371 5.994 137.63 18.829 134.877L66.306 127.74L13.229 96.7839999999999C1.866 90.157 -2.027 75.479 4.533 64S25.624 48.588 36.987 55.215L90.064 86.171L72.444 41.067A24.157 24.157 0 0 1 74.466 21.639C77.297 16.686 81.882 12.73 87.69 10.823C100.168 6.724 113.573 13.6200000000001 117.63 26.225L139.862 115.215L200.242 150.4300000000001V80L135.067 16.055C126.289 6.203 127.08 -8.972 136.833 -17.839C146.587 -26.707 161.607 -25.907 170.385 -16.055L200.242 21.912V-40C200.242 -53.255 210.879 -64 224 -64S247.758 -53.255 247.758 -40V21.912L277.615 -16.055A23.59 23.59 0 0 1 295.282 -24A23.534 23.534 0 0 1 311.167 -17.839C320.92 -8.972 321.711 6.203 312.933 16.055L247.758 80V150.431L308.1380000000001 115.216L330.37 26.226C334.427 13.621 347.832 6.725 360.31 10.824C372.789 14.923 379.614 28.464 375.557 41.069L357.9360000000001 86.173L411.0130000000001 55.217C422.3760000000001 48.59 436.9060000000001 52.523 443.4670000000001 64.002S446.134 90.159 434.771 96.787L381.694 127.7430000000001L429.171 134.8800000000001C436.031 136.3490000000001 441.565 140.6730000000001 444.816 146.3610000000001z" /> + <glyph glyph-name="socks" + unicode="" + horiz-adv-x="512" d=" M214.66 136.99L288 192V352H128V176L41.35 111.39C1.95 81.83 -12.51 26.97 12.14 -15.67C30.39 -47.25 63.27 -64 96.08 -64C116.11 -64 136.33 -57.75 153.6 -44.8L175.46 -28.41C145.61 26.97 161.92 97.43 214.66 136.99zM288 416C288 427.05 291.07 437.3 296.02 446.38C293.4 447.08 290.85 448 288 448H160C142.33 448 128 433.67 128 416V384H288V416zM480 448H352C334.33 448 320 433.67 320 416V384H512V416C512 433.67 497.67 448 480 448zM320 176L233.87 111.39C194.47 81.83 180.01 26.97 204.66 -15.67C222.91 -47.25 255.27 -64 288.08 -64C308.11 -64 328.33 -57.75 345.6 -44.8L460.8 41.6A127.99699999999999 127.99699999999999 0 0 1 512 144V352H320V176z" /> + <glyph glyph-name="solar-panel" + unicode="" + horiz-adv-x="640" d=" M431.98 -0.01L384.01 -0.06V32H256.01V-0.21L208.03 -0.26C199.21 -0.27 192.06 -7.42 192.05 -16.25L192 -47.98C191.99 -56.83 199.17 -64.01 208.02 -64L431.98 -63.74C440.8 -63.73 447.9500000000001 -56.58 447.9600000000001 -47.76L448.0000000000001 -16.03C448.0100000000001 -7.1799999999999 440.8300000000001 0 431.9800000000001 -0.01zM585.2 421.26C582.58 436.69 568.99 448 553.06 448H86.93C71 448 57.41 436.69 54.79 421.26C-3.32 78.84 0.04 99.92 0.03 96C0 78.68 14.32 64 32.63 64H607.37C625.6 64 639.88 78.56 639.96 95.79C639.98 99.87 643.3100000000001 78.84 585.2 421.2600000000001zM259.83 384H380.16L389.93 288H250.06L259.83 384zM184.66 128H71.09L90.1 240H196.07L184.66 128zM200.95 288H98.24L114.53 384H210.72L200.95 288zM233.77 128L245.17 240H394.82L406.2199999999999 128H233.77zM429.27 384H525.46L541.75 288H439.04L429.2700000000001 384zM455.33 128L443.93 240H549.9L568.91 128H455.33z" /> + <glyph glyph-name="sort-alpha-down" + unicode="" + horiz-adv-x="448" d=" M187.298 52.686L107.314 -27.316C101.066 -33.563 90.931 -33.561 84.687 -27.316L4.705 52.686C-5.365 62.756 1.807 80 16.019 80H64V400C64 408.837 71.163 416 80 416H112C120.837 416 128 408.837 128 400V80H175.984C190.225 80 197.347 62.736 187.298 52.686zM306.373 232.693A12 12 0 0 0 294.838 224H259.1210000000001C250.9010000000001 224 245.1140000000001 232.078 247.7590000000001 239.861L304.855 407.861A12 12 0 0 0 316.217 416H355.783C360.9220000000001 416 365.4910000000001 412.727 367.1450000000001 407.861L424.2410000000001 239.861C426.886 232.078 421.1 224 412.879 224H377.144A12 12 0 0 0 365.629 232.622L357.3280000000001 260.9210000000001H314.4650000000001L306.3730000000001 232.693zM329.23 311.39H342.5970000000001L335.997 334.327L329.23 311.39zM341.805 24.067L409.256 119.765A12 12 0 0 1 411.448 126.678V148C411.448 154.627 406.075 160 399.448 160H274.522C267.895 160 262.522 154.627 262.522 148V119.07C262.522 112.443 267.895 107.07 274.522 107.07H330.991C330.252 106.079 329.494 105.034 328.721 103.937L261.5180000000001 8.732A12.001000000000001 12.001000000000001 0 0 1 259.322 1.812V-20C259.322 -26.627 264.695 -32 271.322 -32H400.677C407.3040000000001 -32 412.677 -26.627 412.677 -20V8.93C412.677 15.557 407.3040000000001 20.93 400.677 20.93H339.531C340.271 21.923 341.031 22.969 341.805 24.067z" /> + <glyph glyph-name="sort-alpha-up" + unicode="" + horiz-adv-x="448" d=" M4.702 331.314L84.686 411.316C90.934 417.563 101.069 417.561 107.313 411.316L187.294 331.314C197.364 321.2440000000001 190.193 304 175.98 304H128V-16C128 -24.837 120.837 -32 112 -32H80C71.163 -32 64 -24.837 64 -16V304H16.016C1.775 304 -5.347 321.264 4.702 331.314zM306.373 232.693A12 12 0 0 0 294.838 224H259.1210000000001C250.9010000000001 224 245.1140000000001 232.078 247.7590000000001 239.861L304.855 407.861A12 12 0 0 0 316.217 416H355.783C360.9220000000001 416 365.4910000000001 412.727 367.1450000000001 407.861L424.2410000000001 239.861C426.886 232.078 421.1 224 412.879 224H377.144A12 12 0 0 0 365.629 232.622L357.3280000000001 260.9210000000001H314.4650000000001L306.3730000000001 232.693zM329.23 311.39H342.5970000000001L335.997 334.327L329.23 311.39zM341.805 24.067L409.256 119.765A12 12 0 0 1 411.448 126.678V148C411.448 154.627 406.075 160 399.448 160H274.522C267.895 160 262.522 154.627 262.522 148V119.07C262.522 112.443 267.895 107.07 274.522 107.07H330.991C330.252 106.079 329.494 105.034 328.721 103.937L261.5180000000001 8.732A12.001000000000001 12.001000000000001 0 0 1 259.322 1.812V-20C259.322 -26.627 264.695 -32 271.322 -32H400.677C407.3040000000001 -32 412.677 -26.627 412.677 -20V8.93C412.677 15.557 407.3040000000001 20.93 400.677 20.93H339.531C340.271 21.923 341.031 22.969 341.805 24.067z" /> + <glyph glyph-name="sort-amount-down" + unicode="" + horiz-adv-x="512" d=" M187.298 52.686L107.314 -27.316C101.066 -33.563 90.931 -33.561 84.687 -27.316L4.705 52.686C-5.365 62.756 1.807 80 16.019 80H64V400C64 408.837 71.163 416 80 416H112C120.837 416 128 408.837 128 400V80H175.984C190.225 80 197.347 62.736 187.298 52.686zM240 352H496C504.837 352 512 359.163 512 368V400C512 408.837 504.837 416 496 416H240C231.163 416 224 408.837 224 400V368C224 359.163 231.163 352 240 352zM224 240V272C224 280.837 231.163 288 240 288H432C440.837 288 448 280.837 448 272V240C448 231.163 440.837 224 432 224H240C231.163 224 224 231.163 224 240zM224 -16V16C224 24.837 231.163 32 240 32H304C312.837 32 320 24.837 320 16V-16C320 -24.837 312.837 -32 304 -32H240C231.163 -32 224 -24.837 224 -16zM224 112V144C224 152.837 231.163 160 240 160H368C376.837 160 384 152.837 384 144V112C384 103.163 376.837 96 368 96H240C231.163 96 224 103.163 224 112z" /> + <glyph glyph-name="sort-amount-up" + unicode="" + horiz-adv-x="512" d=" M4.702 331.314L84.686 411.316C90.934 417.563 101.069 417.561 107.313 411.316L187.294 331.314C197.364 321.2440000000001 190.193 304 175.98 304H128V-16C128 -24.837 120.837 -32 112 -32H80C71.163 -32 64 -24.837 64 -16V304H16.016C1.775 304 -5.347 321.264 4.702 331.314zM240 352H496C504.837 352 512 359.163 512 368V400C512 408.837 504.837 416 496 416H240C231.163 416 224 408.837 224 400V368C224 359.163 231.163 352 240 352zM224 240V272C224 280.837 231.163 288 240 288H432C440.837 288 448 280.837 448 272V240C448 231.163 440.837 224 432 224H240C231.163 224 224 231.163 224 240zM224 -16V16C224 24.837 231.163 32 240 32H304C312.837 32 320 24.837 320 16V-16C320 -24.837 312.837 -32 304 -32H240C231.163 -32 224 -24.837 224 -16zM224 112V144C224 152.837 231.163 160 240 160H368C376.837 160 384 152.837 384 144V112C384 103.163 376.837 96 368 96H240C231.163 96 224 103.163 224 112z" /> + <glyph glyph-name="sort-down" + unicode="" + horiz-adv-x="320" d=" M41 160H279C300.4 160 311.1 134.1 296 119L177 0C167.6 -9.4 152.4 -9.4 143.1 0L24 119C8.9 134.1 19.6 160 41 160z" /> + <glyph glyph-name="sort-numeric-down" + unicode="" + horiz-adv-x="448" d=" M308.811 334.213L289.363 355.008C284.841 359.844 285.089 367.429 289.919 371.958L333.362 412.699A11.999000000000002 11.999000000000002 0 0 0 341.571 415.9460000000001H373.162C379.789 415.9460000000001 385.162 410.573 385.162 403.9460000000001V276.876H410.822C417.449 276.876 422.822 271.5030000000001 422.822 264.876V235.946C422.822 229.319 417.449 223.946 410.822 223.946H301.649C295.022 223.946 289.649 229.319 289.649 235.946V264.876C289.649 271.5030000000001 295.022 276.876 301.649 276.876H327.063V334.814C319.809 328.2340000000001 312.852 329.8930000000001 308.811 334.213zM278.241 95.644C278.241 128.297 302.106 163 346.335 163C384.588 163 425.759 134.139 425.759 70.772C425.759 19.496 393.522 -35 333.776 -35C315.94 -35 303.23 -31.443 295.228 -28.219C289.438 -25.886 286.439 -19.473 288.306 -13.516L297.543 15.964C299.5780000000001 22.46 306.592 25.947 313.01 23.68C326.039 19.078 340.888 18.405 351.113 27.818C312.371 22.746 278.241 53.178 278.241 95.644zM370.514 76.306C370.514 98.591 355.212 112.811 344.6790000000001 112.811C336.0370000000001 112.811 331.5150000000001 104.846 331.5150000000001 96.979C331.5150000000001 91.31 333.3300000000001 72.811 356.6830000000001 72.811C366.6560000000001 72.811 370.0600000000001 74.965 370.427 75.542C370.4480000000001 75.588 370.514 75.833 370.514 76.306zM175.984 80H128V400C128 408.837 120.837 416 112 416H80C71.163 416 64 408.837 64 400V80H16.019C1.807 80 -5.365 62.756 4.705 52.686L84.686 -27.316C90.931 -33.561 101.066 -33.563 107.313 -27.316L187.297 52.686C197.347 62.736 190.225 80 175.984 80z" /> + <glyph glyph-name="sort-numeric-up" + unicode="" + horiz-adv-x="448" d=" M308.811 334.213L289.363 355.008C284.841 359.844 285.089 367.429 289.919 371.958L333.362 412.699A11.999000000000002 11.999000000000002 0 0 0 341.571 415.9460000000001H373.162C379.789 415.9460000000001 385.162 410.573 385.162 403.9460000000001V276.876H410.822C417.449 276.876 422.822 271.5030000000001 422.822 264.876V235.946C422.822 229.319 417.449 223.946 410.822 223.946H301.649C295.022 223.946 289.649 229.319 289.649 235.946V264.876C289.649 271.5030000000001 295.022 276.876 301.649 276.876H327.063V334.814C319.809 328.2340000000001 312.852 329.8930000000001 308.811 334.213zM278.241 95.644C278.241 128.297 302.106 163 346.335 163C384.588 163 425.759 134.139 425.759 70.772C425.759 19.496 393.522 -35 333.776 -35C315.94 -35 303.23 -31.443 295.228 -28.219C289.438 -25.886 286.439 -19.473 288.306 -13.516L297.543 15.964C299.5780000000001 22.46 306.592 25.947 313.01 23.68C326.039 19.078 340.888 18.405 351.113 27.818C312.371 22.746 278.241 53.178 278.241 95.644zM370.514 76.306C370.514 98.591 355.212 112.811 344.6790000000001 112.811C336.0370000000001 112.811 331.5150000000001 104.846 331.5150000000001 96.979C331.5150000000001 91.31 333.3300000000001 72.811 356.6830000000001 72.811C366.6560000000001 72.811 370.0600000000001 74.965 370.427 75.542C370.4480000000001 75.588 370.514 75.833 370.514 76.306zM16.016 304H64V-16C64 -24.837 71.163 -32 80 -32H112C120.837 -32 128 -24.837 128 -16V304H175.981C190.193 304 197.365 321.2440000000001 187.295 331.314L107.314 411.316C101.069 417.561 90.934 417.563 84.687 411.316L4.702 331.314C-5.347 321.264 1.775 304 16.016 304z" /> + <glyph glyph-name="sort-up" + unicode="" + horiz-adv-x="320" d=" M279 224H41C19.6 224 8.9 249.9 24 265L143 384C152.4 393.4 167.6 393.4 176.9 384L295.9 265C311.1 249.9 300.4 224 279 224z" /> + <glyph glyph-name="sort" + unicode="" + horiz-adv-x="320" d=" M41 160H279C300.4 160 311.1 134.1 296 119L177 0C167.6 -9.4 152.4 -9.4 143.1 0L24 119C8.9 134.1 19.6 160 41 160zM296 265L177 384C167.6 393.4 152.4 393.4 143.1 384L24 265C8.9 249.9 19.6 224 41 224H279C300.4 224 311.1 249.9 296 265z" /> + <glyph glyph-name="spa" + unicode="" + horiz-adv-x="576" d=" M568.25 256C539.21 255.87 433.24 249.84 354.41 173C321.29 143.37 301.05 109.7 288 78.14C274.95 109.7 254.71 143.37 221.59 173C142.76 249.84 36.79 255.87 7.75 256C3.34 256.02 -0.04 252.6 0 248.18C0.23 220.26 7.14 122.04 88.77 48.88C172.79 -32.94 256 -32 288 -32S403.19 -32.95 487.23 48.88C568.87 122.05 575.77 220.26 576 248.18C576.04 252.6 572.66 256.02 568.25 256zM287.98 145.4C300.8 164.25 315.5800000000001 181.18 332.0700000000001 195.92C351.1600000000001 214.53 371.6500000000001 229.22 392.3300000000001 241.1C375.8900000000001 311.6 340.61 374.15 295.6 413.32C291.49 416.9 284.5800000000001 416.9 280.4600000000001 413.32C235.4700000000001 374.18 200.1900000000001 311.69 183.72 241.25C204.09 229.55 224.22 215.11 242.9400000000001 196.86A282.768 282.768 0 0 0 287.98 145.4z" /> + <glyph glyph-name="space-shuttle" + unicode="" + horiz-adv-x="640" d=" M592.604 239.756C559.735 255.164 515.777 264 472 264H186.327C181.375 270.555 175.742 275.978 169.607 280H376C229.157 310.253 219.403 416 96.003 416H96V288H80V416C53.49 416 32 387.346 32 352V288C8.803 288 0 277.968 0 264V224C0 210.017 8.819 200 32 200V184C8.803 184 0 173.968 0 160V120C0 106.017 8.819 96 32 96V32C32 -3.346 53.49 -32 80 -32V96H96V-32H96.003C219.403 -32 229.157 73.747 376 104H169.606C175.741 108.022 181.374 113.445 186.326 120H472C515.777 120 559.735 128.836 592.604 144.244C622.282 158.155 640 176.008 640 192S622.282 225.845 592.604 239.756zM488 152A8 8 0 0 0 480 160V224A8 8 0 0 0 488 232C519.909 232 519.942 152 488 152z" /> + <glyph glyph-name="spinner" + unicode="" + horiz-adv-x="512" d=" M304 400C304 373.49 282.51 352 256 352S208 373.49 208 400S229.49 448 256 448S304 426.51 304 400zM256 32C229.49 32 208 10.51 208 -16S229.49 -64 256 -64S304 -42.51 304 -16S282.51 32 256 32zM464 240C437.49 240 416 218.51 416 192S437.49 144 464 144S512 165.49 512 192S490.51 240 464 240zM96 192C96 218.51 74.51 240 48 240S0 218.51 0 192S21.49 144 48 144S96 165.49 96 192zM108.922 92.922C82.412 92.922 60.922 71.432 60.922 44.922S82.412 -3.078 108.922 -3.078S156.922 18.412 156.922 44.922C156.922 71.431 135.431 92.922 108.922 92.922zM403.078 92.922C376.568 92.922 355.078 71.432 355.078 44.922S376.568 -3.078 403.078 -3.078S451.078 18.412 451.078 44.922C451.078 71.431 429.588 92.922 403.078 92.922zM108.922 387.078C82.412 387.078 60.922 365.588 60.922 339.078S82.412 291.078 108.922 291.078S156.922 312.568 156.922 339.078S135.431 387.078 108.922 387.078z" /> + <glyph glyph-name="splotch" + unicode="" + horiz-adv-x="512" d=" M472.29 252.11L405.23 275.06C385.9500000000001 281.66 371.69 295.98 367.0900000000001 313.36L351.1 373.81C339.5200000000001 417.58 274.5300000000001 430.94 241.12 396.43L194.98 348.76C181.72 335.05 161.44 327.8300000000001 140.78 329.45L68.9 335.07C16.85 339.14 -18.03 290.19 9.87 252.24L48.41 199.82C59.49 184.75 61.23 165.96 53.05 149.58L24.62 92.6C4.03 51.35 47.46 7.73 98.11 18.79L168.07 34.07C188.18 38.46 209.52 34.07 225.14 22.34L279.46 -18.49C318.78 -48.05 380.5 -26.06 383.91 18.73L388.61 80.59C389.96 98.3800000000001 401.41 114.4500000000001 419.24 123.5800000000001L481.24 155.3200000000001C526.12 178.28 520.8299999999999 235.4900000000001 472.29 252.1100000000001z" /> + <glyph glyph-name="spray-can" + unicode="" + horiz-adv-x="512" d=" M224 416C224 433.67 209.67 448 192 448H128C110.33 448 96 433.67 96 416V320H224V416zM480 320C462.33 320 448 305.67 448 288S462.33 256 480 256S512 270.3300000000001 512 288S497.67 320 480 320zM224 288H96C42.98 288 0 245.02 0 192V-32C0 -49.67 14.33 -64 32 -64H288C305.67 -64 320 -49.67 320 -32V192C320 245.02 277.02 288 224 288zM160 32C115.82 32 80 67.82 80 112S115.82 192 160 192S240 156.18 240 112S204.18 32 160 32zM480 352C497.67 352 512 366.33 512 384S497.67 416 480 416S448 401.67 448 384S462.33 352 480 352zM384 320C366.33 320 352 305.67 352 288S366.33 256 384 256S416 270.3300000000001 416 288S401.67 320 384 320zM288 416C270.33 416 256 401.67 256 384S270.33 352 288 352S320 366.33 320 384S305.67 416 288 416zM384 416C366.33 416 352 401.67 352 384S366.33 352 384 352S416 366.33 416 384S401.67 416 384 416zM480 224C462.33 224 448 209.67 448 192S462.33 160 480 160S512 174.33 512 192S497.67 224 480 224z" /> + <glyph glyph-name="square-full" + unicode="" + horiz-adv-x="512" d=" M512 -64H0V448H512V-64z" /> + <glyph glyph-name="square-root-alt" + unicode="" + horiz-adv-x="576" d=" M571.31 196.69L548.6899999999999 219.31C542.4399999999999 225.56 532.31 225.56 526.06 219.31L480 173.25L433.94 219.31C427.69 225.56 417.56 225.56 411.31 219.31L388.69 196.69C382.44 190.44 382.44 180.31 388.69 174.06L434.75 128L388.69 81.94C382.44 75.69 382.44 65.56 388.69 59.31L411.31 36.69C417.56 30.44 427.69 30.44 433.94 36.69L480 82.75L526.06 36.69C532.31 30.44 542.4399999999999 30.44 548.6899999999999 36.69L571.31 59.31C577.56 65.56 577.56 75.69 571.31 81.94L525.25 128L571.31 174.06C577.56 180.31 577.56 190.44 571.31 196.69zM552 448H307.65C293.11 448 280.39 438.2 276.7 424.13L191.91 101.33L133.5 207.43A32.008 32.008 0 0 1 105.47 224H24C10.75 224 0 213.26 0 200V152C0 138.75 10.75 128 24 128H67.62L156.5 -35.73C168.99 -55.5 186.3 -64 204.94 -64C222.21 -64 249.38 -55 259.2200000000001 -22.52L357.03 352H552C565.25 352 576 362.75 576 376V424C576 437.26 565.25 448 552 448z" /> + <glyph glyph-name="square" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416z" /> + <glyph glyph-name="stamp" + unicode="" + horiz-adv-x="512" d=" M32 -64H480V0H32V-64zM416 192H349.44C333.18 192 320 205.18 320 221.44V230.9C320 258.27 328.88 284.31 341.46 308.62C350.57 326.23 354.36 347.01 350.51 369.04C343.74 407.82 312.04 439.74 273.25 446.49C212.62 457.04 160 410.67 160 352C160 337.8400000000001 163.12 324.4600000000001 168.69 312.42C182.02 283.57 192 253.3 192 221.51V221.44C192 205.18 178.82 192 162.56 192H96C42.98 192 0 149.02 0 96V64C0 46.33 14.33 32 32 32H480C497.67 32 512 46.33 512 64V96C512 149.02 469.02 192 416 192z" /> + <glyph glyph-name="star-and-crescent" + unicode="" + horiz-adv-x="512" d=" M340.4700000000001 -18.36C339.0200000000001 -18.36 333.5800000000001 -18.82 331.29 -18.82C215.04 -18.82 120.47 75.75 120.47 192S215.04 402.82 331.29 402.82C333.61 402.82 338.99 402.36 340.4700000000001 402.36C347.6 402.36 353.8 407.39 355.2200000000001 414.43C356.68 421.68 352.67 428.92 345.75 431.52C316.58 442.46 286.39 448 256 448C114.84 448 0 333.16 0 192S114.84 -64 256 -64C286.23 -64 316.28 -58.51 345.32 -47.68C351.28 -45.66 355.6 -40.04 355.6 -33.42C355.6 -25.33 349.21 -18.36 340.47 -18.36zM503.46 234.14L427.0800000000001 245.24L392.9200000000001 314.45C391.0900000000001 318.15 387.5400000000001 320 383.9900000000001 320S376.8900000000001 318.15 375.0600000000001 314.45L340.9000000000001 245.24L264.5200000000001 234.14C256.3500000000001 232.96 253.0900000000001 222.92 259.0000000000001 217.15L314.2700000000001 163.28L301.2200000000001 87.21C300.1100000000001 80.77 305.2300000000001 75.55 311.0300000000001 75.55C312.5600000000001 75.55 314.1400000000001 75.91 315.6700000000001 76.72L384 112.63L452.31 76.72C453.84 75.92 455.42 75.55 456.95 75.55C462.75 75.55 467.87 80.78 466.76 87.21L453.71 163.28L508.98 217.15C514.89 222.9200000000001 511.6299999999999 232.9600000000001 503.46 234.1400000000001z" /> + <glyph glyph-name="star-half-alt" + unicode="" + horiz-adv-x="536" d=" M508.55 276.49L362.18 297.8L296.77 430.19C290.89 442.02 279.42 448 267.95 448C256.55 448 245.16 442.1 239.26 430.19L173.83 297.81L27.45 276.52C1.2 272.7200000000001 -9.32 240.43 9.71 221.93L115.6 118.93L90.54 -26.55C86.98 -47.33 103.57 -64 122.15 -64C127.08 -64 132.15 -62.83 137.02 -60.25L267.9700000000001 8.43L398.9100000000001 -60.27C403.7700000000001 -62.82 408.8300000000001 -63.98 413.74 -63.98C432.3400000000001 -63.98 448.9600000000001 -47.3699999999999 445.4000000000001 -26.58L420.37 118.91L526.28 221.8900000000001C545.3199999999999 240.3900000000001 534.8 272.6900000000001 508.55 276.49zM386.81 153.29L368.69 135.67L372.97 110.79L392.49 -2.66L290.36 50.9300000000001L267.98 62.6700000000001L268.01 379.8600000000001L319.04 276.5700000000001L330.22 253.9400000000001L355.23 250.3000000000001L469.46 233.6700000000001L386.81 153.2900000000001z" /> + <glyph glyph-name="star-half" + unicode="" + horiz-adv-x="576" d=" M288 448C276.6 448 265.2 442.1 259.3 430.2L194 297.8L47.9 276.6C21.7 272.8 11.2 240.5 30.2 222L135.9 119L110.9 -26.5C106.4 -52.6 133.9 -72.5 157.3 -60.2L288 8.4V448z" /> + <glyph glyph-name="star-of-david" + unicode="" + horiz-adv-x="464" d=" M405.68 192L458.89 281.39C473.3 305.6 455.48 336 426.88 336H319.96L264.01 429.98C256.86 441.99 244.43 448 232 448S207.14 441.99 199.99 429.98L144.04 336H37.11C8.51 336 -9.31 305.6 5.1 281.39L58.32 192L5.1 102.61C-9.31 78.4 8.51 48 37.11 48H144.04L199.99 -45.98C207.14 -57.99 219.57 -64 232 -64S256.86 -57.99 264.01 -45.98L319.96 48H426.89C455.49 48 473.31 78.4 458.9 102.61L405.68 192zM392.9000000000001 280L373.1 246.74L353.3 280H392.9000000000001zM340.5100000000001 192L288.1200000000001 104H175.88L123.49 192L175.87 280H288.12L340.51 192zM232 374.28L254.79 336H209.22L232 374.28zM71.1 280H110.7L90.9 246.74L71.1 280zM71.1 104L90.9 137.26L110.7 104H71.1zM232 9.72L209.21 48H254.78L232 9.72zM353.29 104L373.0900000000001 137.26L392.9 104H353.29z" /> + <glyph glyph-name="star-of-life" + unicode="" + horiz-adv-x="480" d=" M471.99 113.57L336.06 192L471.99 270.43C479.65 274.85 482.27 284.63 477.85 292.29L445.8300000000001 347.7200000000001C441.4100000000001 355.37 431.6200000000001 358 423.9600000000001 353.5800000000001L288.0300000000001 275.1500000000001V432C288.0300000000001 440.84 280.86 448 272.0200000000001 448H207.98C199.14 448 191.97 440.84 191.97 432V275.14L56.04 353.57C48.38 357.99 38.59 355.36 34.17 347.71L2.15 292.29C-2.27 284.64 0.35 274.85 8.01 270.43L143.94 192L8.01 113.57C0.35 109.15 -2.27 99.36 2.15 91.71L34.17 36.28C38.59 28.63 48.38 26.01 56.04 30.42L191.97 108.85V-48C191.97 -56.84 199.14 -64 207.98 -64H272.0200000000001C280.86 -64 288.0300000000001 -56.84 288.0300000000001 -48V108.86L423.9600000000001 30.43C431.6200000000001 26.01 441.4100000000001 28.63 445.8300000000001 36.29L477.85 91.72C482.27 99.37 479.65 109.15 471.99 113.5700000000001z" /> + <glyph glyph-name="star" + unicode="" + horiz-adv-x="576" d=" M259.3 430.2L194 297.8L47.9 276.5C21.7 272.7 11.2 240.4 30.2 221.9L135.9 118.9L110.9 -26.6C106.4 -52.9 134.1 -72.6 157.3 -60.3L288 8.4L418.7 -60.3C441.9 -72.5 469.6 -52.9 465.1 -26.6L440.1 118.9L545.8 221.9C564.8 240.4 554.3 272.7 528.0999999999999 276.5L382 297.8L316.7 430.2C305 453.8 271.1 454.1 259.3 430.2z" /> + <glyph glyph-name="step-backward" + unicode="" + horiz-adv-x="448" d=" M64 -20V404C64 410.6 69.4 416 76 416H124C130.6 416 136 410.6 136 404V227.6L331.5 408.6C352.1 425.7 384 411.4 384 384V0C384 -27.4 352.1 -41.7 331.5 -24.6L136 155.3V-20C136 -26.6 130.6 -32 124 -32H76C69.4 -32 64 -26.6 64 -20z" /> + <glyph glyph-name="step-forward" + unicode="" + horiz-adv-x="448" d=" M384 404V-20C384 -26.6 378.6 -32 372 -32H324C317.4 -32 312 -26.6 312 -20V156.4L116.5 -24.6C95.9 -41.7 64 -27.4 64 0V384C64 411.4 95.9 425.7 116.5 408.6L312 228.7V404C312 410.6 317.4 416 324 416H372C378.6 416 384 410.6 384 404z" /> + <glyph glyph-name="stethoscope" + unicode="" + horiz-adv-x="512" d=" M447.1 336C412.9000000000001 335.5 384.8 307.6 384.1 273.4C383.6 249.1 396.6 227.8 416.1 216.6V104C416.1 46.7 365.9000000000001 0 304.1 0C244.1 0 194.9 44.1 192.2 99.2C265 114.2 320 178.8 320 256V411.4C320 422.8 311.9 432.7 300.7 434.9L237.8 447.5C224.8 450.1 212.2 441.7 209.6 428.7L206.4 413C203.8 400 212.2 387.4 225.2 384.8L255.9 378.7V257.3C255.9 204.4 213.7 160.6 160.8 160.1C107.4 159.6 63.9 202.8 63.9 256.1V378.6L94.6 384.7C107.6 387.3 116 399.9 113.4 412.9L110.3 428.6C107.7 441.6 95.1 450 82.1 447.4L19.3 435C8.1 432.7 0 422.9 0 411.4V256C0 178.7 55.1 114 128.1 99.2C130.7 8.8 208.6 -64 304 -64C401 -64 480 11.4 480 104V216.6C499.1 227.7 512 248.3 512 272C512 307.7 482.8 336.5 447.1 336zM448 256C439.2 256 432 263.2 432 272S439.2 288 448 288S464 280.8 464 272S456.8 256 448 256z" /> + <glyph glyph-name="sticky-note" + unicode="" + horiz-adv-x="448" d=" M312 128H448V392C448 405.3 437.3 416 424 416H24C10.7 416 0 405.3 0 392V-8C0 -21.3 10.7 -32 24 -32H288V104C288 117.2 298.8 128 312 128zM441 73L343 -25C338.5 -29.5 332.4 -32 326 -32H320V96H448V89.9C448 83.6 445.5 77.5 441 73z" /> + <glyph glyph-name="stop-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM352 112C352 103.2 344.8 96 336 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H336C344.8 288 352 280.8 352 272V112z" /> + <glyph glyph-name="stop" + unicode="" + horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416z" /> + <glyph glyph-name="stopwatch" + unicode="" + horiz-adv-x="448" d=" M432 144C432 29.1 338.9 -64 224 -64S16 29.1 16 144C16 248 92.3 334.2 192 349.5V384H164C157.4 384 152 389.4 152 396V436C152 442.6 157.4 448 164 448H284C290.6 448 296 442.6 296 436V396C296 389.4 290.6 384 284 384H256V349.5C293.5 343.7 327.7 327.9 355.7 304.9L383.2 332.4C387.9 337.1 395.5 337.1 400.2 332.4L428.5 304.1C433.2 299.4 433.2 291.8 428.5 287.1L399.1 257.7L398.5 257.1C419.7 224.7 432 185.8 432 144zM256 108V259.5C256 266.1 250.6 271.5 244 271.5H204C197.4 271.5 192 266.1 192 259.5V108C192 101.4 197.4 96 204 96H244C250.6 96 256 101.4 256 108z" /> + <glyph glyph-name="store-alt" + unicode="" + horiz-adv-x="640" d=" M320 64H128V224H64V-32C64 -49.7 78.3 -64 96 -64H352C369.7 -64 384 -49.7 384 -32V224H320V64zM634.6 305.8L549.3000000000001 433.8C543.3000000000001 442.7 533.3000000000001 448 522.6 448H117.4C106.7 448 96.7 442.7 90.8 433.8L5.5 305.8C-8.7 284.5 6.5 256 32.1 256H608C633.5 256 648.7 284.5 634.6 305.8zM512 -48C512 -56.8 519.2 -64 528 -64H560C568.8 -64 576 -56.8 576 -48V224H512V-48z" /> + <glyph glyph-name="store" + unicode="" + horiz-adv-x="616" d=" M602 329.4L537.1 433C531.3 442.3 521 448 510 448H106C95 448 84.7 442.3 78.9 433L14 329.4C-19.5 275.9 10.2 201.5 72.8 193C77.3 192.4 81.9 192.1 86.5 192.1C116.1 192.1 142.3 205.1 160.3 225.2C178.3 205.1 204.6 192.1 234.1 192.1C263.7000000000001 192.1 289.9000000000001 205.1 307.9000000000001 225.2C325.9000000000001 205.1 352.2000000000001 192.1 381.7000000000001 192.1C411.3000000000001 192.1 437.5000000000001 205.1 455.5000000000001 225.2C473.6000000000001 205.1 499.8000000000001 192.1 529.3000000000001 192.1C534.0000000000001 192.1 538.5000000000001 192.4 543.0000000000001 193C605.8000000000001 201.4 635.6000000000001 275.8 602.0000000000001 329.4zM529.5 160C519.5 160 509.6 161.5 500 163.8V64H116V163.8C106.4 161.6 96.5 160 86.5 160C80.5 160 74.4 160.4 68.5 161.2C62.9 162 57.4 163.3 52.1 164.8V-32C52.1 -49.7 66.4 -64 84.1 -64H532.1C549.8000000000001 -64 564.1 -49.7 564.1 -32V164.8C558.7 163.2 553.3000000000001 161.9 547.7 161.2C541.6 160.4 535.6 160 529.5 160z" /> + <glyph glyph-name="stream" + unicode="" + horiz-adv-x="512" d=" M16 320H432C440.84 320 448 327.16 448 336V400C448 408.8400000000001 440.84 416 432 416H16C7.16 416 0 408.8400000000001 0 400V336C0 327.16 7.16 320 16 320zM496 240H80C71.16 240 64 232.84 64 224V160C64 151.16 71.16 144 80 144H496C504.84 144 512 151.16 512 160V224C512 232.84 504.84 240 496 240zM432 64H16C7.16 64 0 56.84 0 48V-16C0 -24.84 7.16 -32 16 -32H432C440.84 -32 448 -24.84 448 -16V48C448 56.84 440.84 64 432 64z" /> + <glyph glyph-name="street-view" + unicode="" + horiz-adv-x="512" d=" M367.9 118.24C363.28 112.94 358.12 108.14 352 104.59V81.65C418.52 72.3100000000001 464 53.6 464 32.0000000000001C464 1.0700000000001 370.88 -23.9999999999999 256 -23.9999999999999S48 1.07 48 32C48 53.6 93.48 72.3 160 81.65V104.59C153.88 108.14 148.72 112.94 144.1 118.24C58.87 102.66 0 69.95 0 32C0 -21.02 114.62 -64 256 -64S512 -21.02 512 32C512 69.95 453.13 102.66 367.9 118.24zM256 320C291.35 320 320 348.65 320 384S291.35 448 256 448S192 419.35 192 384S220.65 320 256 320zM192 128V32C192 14.33 206.33 0 224 0H288C305.67 0 320 14.33 320 32V128C337.67 128 352 142.33 352 160V256C352 282.51 330.51 304 304 304H292.2C281.13 298.9700000000001 268.94 296 256 296S230.87 298.9700000000001 219.8 304H208C181.49 304 160 282.51 160 256V160C160 142.33 174.33 128 192 128z" /> + <glyph glyph-name="strikethrough" + unicode="" + horiz-adv-x="512" d=" M496 160H16C7.163 160 0 167.163 0 176V208C0 216.837 7.163 224 16 224H496C504.837 224 512 216.837 512 208V176C512 167.163 504.837 160 496 160zM281.334 144C308.592 131.063 327.858 115.317 327.858 87.757C327.858 54.649 298.8810000000001 34.081 252.237 34.081C219.912 34.081 175.363 46.161 175.363 78.352V80C175.363 88.837 168.1990000000001 96 159.363 96H113.75C104.914 96 97.75 88.837 97.75 80V60.796C97.75 -6.049 175.467 -41.024 252.237 -41.024C340.815 -41.024 414.25 4.414 414.25 93.4C414.25 113.215 410.632 129.817 404.107 144H281.334zM250.382 240C217.96 253.505 193.546 268.9460000000001 193.546 299.683C193.546 333.603 224.447 347.089 258.508 347.089C301.155 347.089 323.47 330.496 323.47 314.104V312C323.47 303.163 330.634 296 339.47 296H385.083C393.919 296 401.083 303.163 401.083 312V342.318C401.083 394.756 329.358 422.193 258.508 422.193C173.305 422.193 107.782 381.221 107.782 296.5470000000001C107.782 273.837 112.447 255.371 120.559 240H250.382z" /> + <glyph glyph-name="stroopwafel" + unicode="" + horiz-adv-x="512" d=" M188.12 237.26L142.86 192L188.11 146.75L233.37 192L188.12 237.26zM301.25 259.88L256 305.14L210.75 259.89L256 214.63L301.25 259.88zM210.75 124.12L256 78.86L301.26 124.12L256 169.37L210.75 124.12zM256 448C114.62 448 0 333.38 0 192S114.62 -64 256 -64S512 50.62 512 192S397.38 448 256 448zM442.68 152.4L431.37 141.09C428.25 137.97 423.18 137.97 420.06 141.09L391.77 169.38L346.52 124.13L380.46 90.19L397.43 107.16C400.55 110.28 405.62 110.28 408.74 107.16L420.05 95.85C423.17 92.73 423.17 87.66 420.05 84.54L403.08 67.5699999999999L420.05 50.5999999999999C423.17 47.4799999999999 423.17 42.4099999999999 420.05 39.2899999999999L408.74 27.9799999999999C405.62 24.8599999999999 400.55 24.8599999999999 397.43 27.9799999999999L380.4599999999999 44.9499999999999L363.4899999999999 27.9799999999999C360.3699999999999 24.8599999999999 355.2999999999999 24.8599999999999 352.1799999999999 27.9799999999999L340.8699999999999 39.2899999999999C337.7499999999999 42.4099999999999 337.7499999999999 47.4799999999999 340.8699999999999 50.5999999999999L357.8399999999999 67.5699999999999L323.8999999999999 101.5099999999999L278.64 56.2499999999999L306.93 27.9599999999999C310.05 24.8399999999999 310.05 19.7699999999999 306.93 16.6499999999999L295.62 5.3399999999999C292.5 2.2199999999999 287.43 2.2199999999999 284.31 5.3399999999999L256 33.61L227.71 5.32C224.59 2.2 219.52 2.2 216.4 5.32L205.09 16.63C201.97 19.75 201.97 24.82 205.09 27.94L233.38 56.23L188.13 101.49L154.19 67.55L171.16 50.58C174.28 47.46 174.28 42.39 171.16 39.27L159.85 27.96C156.73 24.84 151.66 24.84 148.54 27.96L131.57 44.9300000000001L114.6 27.96C111.48 24.84 106.41 24.84 103.29 27.96L91.98 39.27C88.86 42.39 88.86 47.46 91.98 50.58L108.95 67.5500000000001L91.98 84.5200000000001C88.86 87.6400000000001 88.86 92.7100000000001 91.98 95.8300000000001L103.29 107.1400000000001C106.41 110.2600000000001 111.48 110.2600000000001 114.6 107.1400000000001L131.57 90.1700000000001L165.51 124.1100000000001L120.26 169.3600000000001L91.97 141.0700000000001C88.85 137.9500000000001 83.78 137.9500000000001 80.66 141.0700000000001L69.32 152.4C66.2 155.52 66.2 160.59 69.32 163.71L97.61 192L69.32 220.29C66.2 223.41 66.2 228.48 69.32 231.6L80.63 242.91C83.75 246.03 88.82 246.03 91.94 242.91L120.23 214.62L165.48 259.88L131.54 293.82L114.57 276.85C111.45 273.73 106.38 273.73 103.26 276.85L91.95 288.16C88.83 291.28 88.83 296.35 91.95 299.4700000000001L108.92 316.44L91.95 333.41C88.83 336.53 88.83 341.6 91.95 344.7200000000001L103.26 356.03C106.38 359.15 111.45 359.15 114.57 356.03L131.54 339.06L148.51 356.03C151.63 359.15 156.7 359.15 159.82 356.03L171.13 344.7200000000001C174.25 341.6 174.25 336.53 171.13 333.41L154.16 316.44L188.1 282.5L233.36 327.75L205.07 356.04C201.95 359.16 201.95 364.23 205.07 367.35L216.38 378.66C219.5 381.78 224.57 381.78 227.69 378.66L256 350.39L284.29 378.68C287.4100000000001 381.8 292.48 381.8 295.6 378.68L306.9100000000001 367.37C310.0300000000001 364.25 310.0300000000001 359.18 306.9100000000001 356.06L278.62 327.77L323.88 282.52L357.82 316.4600000000001L340.85 333.43C337.73 336.55 337.73 341.62 340.85 344.74L352.1600000000001 356.05C355.2800000000001 359.17 360.35 359.17 363.4700000000001 356.05L380.4400000000001 339.0800000000001L397.4100000000001 356.05C400.5300000000001 359.17 405.6000000000001 359.17 408.7200000000001 356.05L420.0300000000001 344.74C423.1500000000001 341.62 423.1500000000001 336.55 420.0300000000001 333.43L403.0600000000001 316.4600000000001L420.0300000000001 299.49C423.1500000000001 296.37 423.1500000000001 291.3 420.0300000000001 288.18L408.7200000000001 276.87C405.6000000000001 273.75 400.5300000000001 273.75 397.4100000000001 276.87L380.4400000000001 293.8400000000001L346.5000000000001 259.9L391.7500000000001 214.64L420.0400000000001 242.93C423.1600000000001 246.05 428.2300000000001 246.05 431.3500000000001 242.93L442.6600000000001 231.62C445.7800000000001 228.5 445.7800000000001 223.43 442.6600000000001 220.31L414.39 192L442.68 163.72A8.015 8.015 0 0 0 442.68 152.4zM278.63 192L323.89 146.75L369.14 192L323.89 237.26L278.63 192z" /> + <glyph glyph-name="subscript" + unicode="" + horiz-adv-x="512" d=" M395.198 32C398.659 42.526 413.994 53.28 431.463 64.425C448.088 75.03 466.9299999999999 87.051 481.804 103.287C499.2619999999999 122.341 507.748 143.4620000000001 507.748 167.8540000000001C507.748 228.4160000000001 457.046 256.0000000000001 409.938 256.0000000000001C367.447 256.0000000000001 333.56 233.9840000000001 315.506 205.5530000000001C310.852 198.2240000000001 312.914 188.5170000000001 320.129 183.6880000000001L350.457 163.3920000000001C357.4889999999999 158.686 366.9169999999999 160.3080000000001 372.087 167.006C380.1089999999999 177.4 390.9049999999999 185.2310000000001 403.7539999999999 185.2310000000001C423.1409999999999 185.2310000000001 430.0199999999999 172.3300000000001 430.0199999999999 161.2830000000001C430.0199999999999 125.1240000000001 310.5829999999999 104.2600000000001 310.5829999999999 1.2590000000001C310.5829999999999 -5.3949999999999 311.1439999999999 -11.7549999999999 311.998 -18.0719999999999C313.074 -26.0359999999999 319.832 -31.9999999999999 327.868 -31.9999999999999H496C504.837 -31.9999999999999 512 -24.8369999999999 512 -15.9999999999999V16.0000000000001C512 24.837 504.837 32.0000000000001 496 32.0000000000001H395.198zM272 192C280.837 192 288 184.837 288 176V144C288 135.163 280.837 128 272 128H209.601A16 16 0 0 0 196.06 135.478L150.359 208.093C148.062 211.445 145.937 215.062 144.164 218.302C142.514 215.058 140.517 211.365 138.29 207.72L93.578 135.573A15.999 15.999 0 0 0 79.978 128.001H16C7.163 128.001 0 135.1640000000001 0 144.001V176.001C0 184.838 7.163 192.001 16 192.001H42.325L98.877 274.7100000000001L46.111 352H16C7.163 352 0 359.163 0 368V400C0 408.837 7.163 416 16 416H84.806A16 16 0 0 0 98.451 408.356L138.333 343.23C140.405 339.707 142.386 336.059 144.06 332.86C145.837 336.104 147.98 339.814 150.297 343.397L190.629 408.432A15.999 15.999 0 0 0 204.226 416H272C280.837 416 288 408.837 288 400V368C288 359.163 280.837 352 272 352H244.021L191.331 276.329L249.974 192H272z" /> + <glyph glyph-name="subway" + unicode="" + horiz-adv-x="448" d=" M448 352V96C448 44.185 386.376 0 317.978 0L380.9580000000001 -49.721C386.905 -54.417 383.562 -64 376 -64H72C64.422 -64 61.108 -54.406 67.043 -49.721L130.022 0C61.82 0 0 44.046 0 96V352C0 405.019 64 448 128 448H320C385 448 448 405.019 448 352zM200 216V328C200 341.255 189.255 352 176 352H72C58.745 352 48 341.255 48 328V216C48 202.745 58.745 192 72 192H176C189.255 192 200 202.745 200 216zM400 216V328C400 341.255 389.255 352 376 352H272C258.745 352 248 341.255 248 328V216C248 202.745 258.745 192 272 192H376C389.255 192 400 202.745 400 216zM352 160C325.49 160 304 138.51 304 112S325.49 64 352 64S400 85.49 400 112S378.51 160 352 160zM96 160C69.49 160 48 138.51 48 112S69.49 64 96 64S144 85.49 144 112S122.51 160 96 160z" /> + <glyph glyph-name="suitcase-rolling" + unicode="" + horiz-adv-x="384" d=" M336 288H48C21.49 288 0 266.51 0 240V16C0 -10.51 21.49 -32 48 -32H64V-48C64 -56.84 71.16 -64 80 -64H112C120.84 -64 128 -56.84 128 -48V-32H256V-48C256 -56.84 263.1600000000001 -64 272 -64H304C312.84 -64 320 -56.84 320 -48V-32H336C362.51 -32 384 -10.51 384 16V240C384 266.51 362.51 288 336 288zM320 72C320 67.58 316.42 64 312 64H72C67.58 64 64 67.58 64 72V88C64 92.42 67.58 96 72 96H312C316.42 96 320 92.42 320 88V72zM320 168C320 163.58 316.42 160 312 160H72C67.58 160 64 163.58 64 168V184C64 188.42 67.58 192 72 192H312C316.42 192 320 188.42 320 184V168zM144 400H240V320H288V400C288 426.51 266.51 448 240 448H144C117.49 448 96 426.51 96 400V320H144V400z" /> + <glyph glyph-name="suitcase" + unicode="" + horiz-adv-x="512" d=" M128 -32H384V368C384 394.5 362.5 416 336 416H176C149.5 416 128 394.5 128 368V-32zM192 352H320V320H192V352zM512 272V16C512 -10.5 490.5 -32 464 -32H416V320H464C490.5 320 512 298.5 512 272zM96 -32H48C21.5 -32 0 -10.5 0 16V272C0 298.5 21.5 320 48 320H96V-32z" /> + <glyph glyph-name="sun" + unicode="" + horiz-adv-x="512" d=" M274.835 435.354L300.351 372.961C304.564 362.66 317.022 358.612 326.485 364.469L383.8010000000001 399.948C399.2910000000001 409.536 418.6090000000001 395.501 414.2760000000001 377.806L398.2460000000001 312.331C395.5990000000001 301.521 403.2990000000001 290.923 414.3980000000001 290.1L481.6220000000001 285.1130000000001C499.7890000000001 283.765 507.1680000000001 261.0560000000001 493.2630000000001 249.2870000000001L441.81 205.74C433.315 198.55 433.315 185.451 441.81 178.261L493.264 134.713C507.17 122.944 499.791 100.235 481.623 98.887L414.399 93.9C403.3 93.077 395.6 82.479 398.247 71.669L414.2770000000001 6.194C418.6090000000001 -11.501 399.2910000000001 -25.5360000000001 383.802 -15.948L326.486 19.531C317.023 25.389 304.564 21.341 300.352 11.0389999999999L274.836 -51.354C267.94 -68.216 244.062 -68.216 237.166 -51.354L211.65 11.039C207.437 21.34 194.979 25.388 185.516 19.531L128.199 -15.948C112.709 -25.536 93.391 -11.501 97.724 6.194L113.754 71.669C116.401 82.479 108.701 93.077 97.602 93.9L30.378 98.887C12.211 100.235 4.832 122.944 18.737 134.713L70.19 178.26C78.685 185.45 78.685 198.549 70.19 205.739L18.736 249.287C4.83 261.056 12.209 283.765 30.377 285.113L97.601 290.1C108.7 290.923 116.4 301.521 113.753 312.331L97.723 377.806C93.391 395.501 112.709 409.536 128.198 399.948L185.515 364.469C194.978 358.611 207.436 362.659 211.649 372.961L237.165 435.354C244.061 452.215 267.939 452.215 274.835 435.354zM392 192C392 266.991 330.99 328 256 328C181.009 328 120 266.991 120 192S181.009 56 256 56C330.99 56 392 117.009 392 192zM360 192C360 134.654 313.346 88 256 88S152 134.654 152 192S198.654 296 256 296S360 249.346 360 192z" /> + <glyph glyph-name="superscript" + unicode="" + horiz-adv-x="512" d=" M395.198 192C398.659 202.526 413.994 213.28 431.463 224.425C448.088 235.03 466.9299999999999 247.051 481.804 263.2870000000001C499.2619999999999 282.341 507.748 303.462 507.748 327.854C507.748 388.416 457.046 416 409.938 416C367.447 416 333.56 393.984 315.506 365.553C310.852 358.224 312.914 348.517 320.129 343.688L350.457 323.392C357.4889999999999 318.6860000000001 366.9169999999999 320.308 372.087 327.006C380.1089999999999 337.4 390.9049999999999 345.231 403.7539999999999 345.231C423.1409999999999 345.231 430.0199999999999 332.33 430.0199999999999 321.283C430.0199999999999 285.124 310.5829999999999 264.26 310.5829999999999 161.259C310.5829999999999 154.605 311.1439999999999 148.245 311.998 141.928C313.074 133.964 319.832 128 327.868 128H496C504.837 128 512 135.163 512 144V176C512 184.837 504.837 192 496 192H395.198zM272 32C280.837 32 288 24.837 288 16V-16C288 -24.837 280.837 -32 272 -32H209.601A16 16 0 0 0 196.06 -24.522L150.359 48.093C148.062 51.445 145.937 55.062 144.164 58.302C142.514 55.058 140.517 51.365 138.29 47.72L93.578 -24.427A15.999 15.999 0 0 0 79.978 -31.999H16C7.163 -31.999 0 -24.836 0 -15.999V16.001C0 24.838 7.163 32.001 16 32.001H42.325L98.877 114.71L46.111 192H16C7.163 192 0 199.163 0 208V240C0 248.837 7.163 256 16 256H84.806A16 16 0 0 0 98.451 248.356L138.333 183.23C140.405 179.707 142.386 176.059 144.06 172.86C145.837 176.1040000000001 147.98 179.814 150.297 183.397L190.629 248.432A16 16 0 0 0 204.227 255.999H272C280.837 255.999 288 248.836 288 239.999V207.999C288 199.162 280.837 191.999 272 191.999H244.021L191.331 116.328L249.974 32H272z" /> + <glyph glyph-name="surprise" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM136 240C136 257.7 150.3 272 168 272S200 257.7 200 240S185.7 208 168 208S136 222.3 136 240zM248 32C212.7 32 184 60.7 184 96S212.7 160 248 160S312 131.3 312 96S283.3 32 248 32zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" /> + <glyph glyph-name="swatchbook" + unicode="" + horiz-adv-x="511" d=" M479.06 128H372.29L186.15 -58.51C184.09 -60.58 181.66 -62.09 179.48 -64H479.06C496.7 -64 511 -49.67 511 -32V96C511 113.67 496.7 128 479.06 128zM434.56 280.9L344.23 371.4100000000001C331.76 383.9100000000001 311.54 383.9100000000001 299.06 371.4100000000001L223.56 295.76V32C223.56 29.04 222.89 26.27 222.69 23.36L434.56 235.64C447.0300000000001 248.14 447.0300000000001 268.4100000000001 434.56 280.9zM191.62 416C191.62 433.67 177.32 448 159.68 448H31.94C14.3 448 0 433.67 0 416V32C0 -21.02 42.9 -64 95.81 -64S191.62 -21.02 191.62 32V416zM95.81 8C82.58 8 71.86 18.75 71.86 32C71.86 45.26 82.59 56 95.81 56S119.76 45.26 119.76 32C119.77 18.75 109.04 8 95.81 8zM127.75 192H63.88V256H127.76V192zM127.75 320H63.88V384H127.76V320z" /> + <glyph glyph-name="swimmer" + unicode="" + horiz-adv-x="640" d=" M189.61 137.42C193.15 134.16 204.88 128 224 128S254.86 134.16 258.39 137.42C274.41 152.19 292.89 160 311.85 160H328.15C347.11 160 365.6 152.19 381.61 137.42C385.15 134.16 396.88 128 416 128S446.86 134.16 450.3899999999999 137.42C465.2499999999999 151.13 482.2699999999999 158.54 499.7799999999999 159.5800000000001L386.94 240.1800000000001L404.94 253.04C408.58 255.6200000000001 413.2199999999999 256.5600000000001 417.56 255.6500000000001L517.91 234.1200000000001C543.8199999999999 228.5900000000001 569.3499999999999 245.0900000000001 574.91 271C580.4599999999999 296.92 563.9599999999999 322.4400000000001 538.03 328L437.68 349.53C406.95 356.11 374.6600000000001 349.41 349.12 331.15L269.1 273.98C258.7200000000001 266.5900000000001 249.74 257.54 242.38 247.04L173.75 149C179.22 145.77 184.57 142.07 189.61 137.42zM624 96H608C581.96 96 562.2 104.42 551.91 113.9C543.01 122.11 532.25 128 520.14 128H503.84C491.73 128 480.97 122.11 472.07 113.9C461.8 104.42 442.04 96 416 96S370.2 104.42 359.91 113.9C351.01 122.11 340.25 128 328.14 128H311.84C299.73 128 288.97 122.11 280.07 113.9C269.8 104.42 250.04 96 224 96S178.2 104.42 167.91 113.9C159.01 122.11 148.25 128 136.14 128H119.84C107.73 128 96.97 122.11 88.07 113.9C77.8 104.42 58.04 96 32 96H16C7.16 96 0 88.84 0 80V48C0 39.16 7.16 32 16 32H32C70.62 32 104.72 44.19 128 63.84C151.28 44.18 185.38 32 224 32S296.7200000000001 44.19 320 63.84C343.28 44.18 377.38 32 416 32S488.72 44.19 512 63.84C535.28 44.18 569.38 32 608 32H624C632.84 32 640 39.16 640 48V80C640 88.84 632.84 96 624 96zM112 192C156.18 192 192 227.82 192 272S156.18 352 112 352S32 316.18 32 272S67.82 192 112 192z" /> + <glyph glyph-name="swimming-pool" + unicode="" + horiz-adv-x="640" d=" M624 32H608C581.96 32 562.2 40.42 551.91 49.9C543.01 58.11 532.25 64 520.14 64H503.84C491.73 64 480.97 58.11 472.07 49.9C461.8 40.42 442.04 32 416 32S370.2 40.42 359.91 49.9C351.01 58.11 340.25 64 328.14 64H311.84C299.73 64 288.97 58.11 280.07 49.9C269.8 40.42 250.04 32 224 32S178.2 40.42 167.91 49.9C159.01 58.11 148.25 64 136.14 64H119.84C107.73 64 96.97 58.11 88.07 49.9C77.8 40.42 58.04 32 32 32H16C7.16 32 0 24.84 0 16V-16C0 -24.84 7.16 -32 16 -32H32C70.62 -32 104.72 -19.81 128 -0.16C151.28 -19.82 185.38 -32 224 -32S296.7200000000001 -19.81 320 -0.16C343.28 -19.82 377.38 -32 416 -32S488.72 -19.81 512 -0.16C535.28 -19.82 569.38 -32 608 -32H624C632.84 -32 640 -24.84 640 -16V16C640 24.84 632.84 32 624 32zM224 64V160H416V64C435.12 64 446.86 70.16 450.39 73.42C459.56 81.88 469.59 87.76 480 91.49V320C480 337.64 494.36 352 512 352S544 337.64 544 320V304C544 295.16 551.16 288 560 288H592C600.84 288 608 295.16 608 304V320C608 372.94 564.94 416 512 416S416 372.94 416 320V224H224V320C224 337.64 238.36 352 256 352S288 337.64 288 320V304C288 295.16 295.1600000000001 288 304 288H336C344.84 288 352 295.16 352 304V320C352 372.94 308.94 416 256 416S160 372.94 160 320V91.5C170.41 87.77 180.44 81.88 189.61 73.43C193.14 70.16 204.88 64 224 64z" /> + <glyph glyph-name="synagogue" + unicode="" + horiz-adv-x="640" d=" M70 251.49L6.67 179.71A26.643000000000004 26.643000000000004 0 0 1 0 162.07V-64H128V208.42L90 251.49C84.69 257.5 75.31 257.5 70 251.49zM633.33 179.71L570 251.49C564.69 257.51 555.31 257.51 550 251.49L512 208.42V-64H640V162.07C640 168.57 637.63 174.84 633.33 179.71zM339.99 440.99C328.3 450.34 311.7 450.34 300.01 440.99L172.01 338.59A32.005 32.005 0 0 1 160 313.6V-64H256V28.57C256 60.45 277.78 90 309.25 95.12C349.34 101.65 384 70.87 384 32V-64H480V313.6C480 323.32 475.58 332.52 467.99 338.59L339.99 440.99zM392.06 225.44C394.04 222.29 391.77 218.2 388.06 218.2H349.12L324 178.21C322.15 175.26 317.85 175.26 316 178.21L290.88 218.19H251.94C248.22 218.19 245.96 222.28 247.94 225.43L267.14 255.99L247.94 286.55C245.96 289.7 248.23 293.79 251.94 293.79H290.88L316 333.79C317.85 336.74 322.15 336.74 324 333.79L349.12 293.81H388.07C391.78 293.81 394.05 289.7200000000001 392.07 286.57L372.87 256L392.06 225.44z" /> + <glyph glyph-name="sync-alt" + unicode="" + horiz-adv-x="512" d=" M370.7200000000001 314.7200000000001C339.4580000000001 343.992 298.888 360.038 255.848 360C178.39 359.932 111.52 306.822 93.057 233.15C91.713 227.787 86.935 224 81.406 224H24.103C16.605 224 10.909 230.807 12.296 238.176C33.933 353.076 134.813 440 256 440C322.448 440 382.791 413.8640000000001 427.315 371.315L463.03 407.03C478.149 422.149 504 411.4410000000001 504 390.059V256C504 242.745 493.255 232 480 232H345.941C324.559 232 313.851 257.851 328.97 272.971L370.72 314.7200000000001zM32 152H166.059C187.441 152 198.149 126.149 183.03 111.029L141.28 69.279C172.542 40.006 213.115 23.96 256.156 23.999C333.574 24.069 400.471 77.143 418.943 150.848C420.287 156.211 425.065 159.998 430.594 159.998H487.898C495.396 159.998 501.092 153.191 499.705 145.822C478.067 30.924 377.187 -56 256 -56C189.552 -56 129.209 -29.864 84.685 12.685L48.97 -23.03C33.851 -38.149 8 -27.441 8 -6.059V128C8 141.255 18.745 152 32 152z" /> + <glyph glyph-name="sync" + unicode="" + horiz-adv-x="512.333" d=" M440.935 435.426L444.901 352.66C399.416 406.096 331.674 440 256 440C134.813 440 33.933 353.076 12.296 238.176C10.908 230.807 16.604 224 24.103 224H73.187C78.757 224 83.564 227.842 84.863 233.259C103.407 310.592 172.931 368 256 368C316.8930000000001 368 370.512 337.144 402.1040000000001 290.199L300.5740000000001 295.064C293.7290000000001 295.3920000000001 288.0000000000001 289.9310000000001 288.0000000000001 283.0780000000001V235.6670000000001C288.0000000000001 229.04 293.3730000000001 223.667 300.0000000000001 223.667H500.3330000000001C506.9600000000001 223.667 512.3330000000001 229.04 512.3330000000001 235.6670000000001V436C512.3330000000001 442.627 506.9600000000001 448 500.3330000000001 448H452.9220000000001C446.0690000000001 448 440.6070000000001 442.271 440.9350000000001 435.426zM256 16C195.105 16 141.483 46.858 109.891 93.805L211.759 88.934C218.604 88.607 224.332 94.068 224.332 100.92V148.332C224.332 154.959 218.959 160.332 212.332 160.332H12C5.373 160.332 0 154.959 0 148.332V-52C0 -58.627 5.373 -64 12 -64H59.385C66.248 -64 71.713 -58.255 71.37 -51.401L67.241 31.174C112.725 -22.166 180.405 -56 256 -56C377.187 -56 478.067 30.924 499.704 145.824C501.092 153.193 495.396 160 487.897 160H438.813C433.243 160 428.436 156.158 427.137 150.741C408.593 73.408 339.069 16 256 16z" /> + <glyph glyph-name="syringe" + unicode="" + horiz-adv-x="512" d=" M201.5 273.2L257.2 217.4C260.3 214.3 260.3 209.2 257.2 206.1L245.9 194.8C242.8 191.6999999999999 237.7 191.6999999999999 234.6 194.8L178.9 250.6L133.6 205.3L189.4 149.5C192.5 146.3999999999999 192.5 141.3 189.4 138.1999999999999L178.1 126.8999999999999C175 123.7999999999999 169.9 123.7999999999999 166.8 126.8999999999999L111 182.8L84.6 156.4C67.3 139.1 59 115.3 61.6 91L68.7 27.4L2.3 -39C-0.8 -42.1 -0.8 -47.2 2.3 -50.3L13.6 -61.6C16.7 -64.7 21.8 -64.7 24.9 -61.6L91.2 4.7L154.8 -2.4C178.7 -5.0000000000001 202.7 2.9999999999999 220.2 20.6L402.1 202.5L266.4000000000001 338.2L201.5 273.2zM509.7 366.5L430.5 445.7C427.4 448.8 422.3 448.8 419.2 445.7L407.9 434.4C404.8 431.3 404.8 426.2 407.9 423.1L436.2 394.8L390.9 349.5L334.3 406.1L317.3 423.1C314.2 426.2 309.1 426.2 306 423.1L272.1 389.2C269 386.1 269 381 272.1 377.9L289.1 360.9L424.8 225L441.8 208C444.9000000000001 204.9 450 204.9 453.1 208L487 242C490.1 245.1 490.1 250.2 487 253.3L413.5 326.8L458.8 372.1L487.1 343.8C490.2 340.7000000000001 495.3 340.7000000000001 498.4 343.8L509.7 355.1C512.8000000000001 358.3 512.8000000000001 363.3 509.7 366.5z" /> + <glyph glyph-name="table-tennis" + unicode="" + horiz-adv-x="512" d=" M496.2 151.5C527.7 229.3 512 321.8 449 384.9C365.1 469 229 469 145.1 384.9L89.1 328.8L300.6 117.3C346.7000000000001 179.4 432.1 194.7 496.2 151.5zM278.3 71.8L57.9 292.1C30.6 246.8 36.2 187.1 75.2 148L109.7 113.4L6.7 24C-1.9 16.5 -2.4 3.3 5.7 -4.8L59.1 -58.3C67.1 -66.4 80.3 -65.9 87.8 -57.3L177.1 46L212.8 10.3C232.5 -9.4 257.4000000000001 -20.2 283.1 -23C276 -6 272.1 12.6 272.1 32.1C272 45.9 274.6 59.1 278.3 71.8zM416 128C363 128 320 85 320 32S363 -64 416 -64S512 -21 512 32S469 128 416 128z" /> + <glyph glyph-name="table" + unicode="" + horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM224 32H64V128H224V32zM224 192H64V288H224V192zM448 32H288V128H448V32zM448 192H288V288H448V192z" /> + <glyph glyph-name="tablet-alt" + unicode="" + horiz-adv-x="448" d=" M400 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V400C448 426.5 426.5 448 400 448zM224 -32C206.3 -32 192 -17.7 192 0S206.3 32 224 32S256 17.7 256 0S241.7 -32 224 -32zM400 76C400 69.4 394.6 64 388 64H60C53.4 64 48 69.4 48 76V388C48 394.6 53.4 400 60 400H388C394.6 400 400 394.6 400 388V76z" /> + <glyph glyph-name="tablet" + unicode="" + horiz-adv-x="448" d=" M400 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V400C448 426.5 426.5 448 400 448zM224 -32C206.3 -32 192 -17.7 192 0S206.3 32 224 32S256 17.7 256 0S241.7 -32 224 -32z" /> + <glyph glyph-name="tablets" + unicode="" + horiz-adv-x="640" d=" M160 256C78.9 256 12.5 197.5 0.1 121.3C-0.7 116.5 3.4 112 8.4 112H311.7C316.7 112 320.8 116.5 320 121.3C307.5 197.5 241.1 256 160 256zM311.6 80H8.4C3.4 80 -0.7 75.5 0.1 70.7C12.5 -5.5 78.9 -64 160 -64S307.5 -5.5 319.9 70.7C320.7 75.5 316.6 80 311.6 80zM593.4 401.4C536.9 457.9 449.2 462.8 386.5 417.4C382.5 414.5 382.2 408.5 385.7 405.1L597 193.7C600.5 190.2 606.5 190.5 609.3 194.5C654.8 257.2 649.9 344.9 593.4 401.4zM363 382.3C359.5 385.8 353.5 385.5 350.7 381.5C305.3 318.8 310.2 231.1 366.6 174.6C423.1 118.1 510.8 113.2000000000001 573.5 158.7000000000001C577.5 161.6 577.8 167.6 574.3 171.0000000000001L363 382.3z" /> + <glyph glyph-name="tachometer-alt" + unicode="" + horiz-adv-x="576" d=" M288 416C128.94 416 0 287.06 0 128C0 75.2 14.25 25.74 39.06 -16.8C44.67 -26.42 55.36 -32 66.5 -32H509.5C520.64 -32 531.33 -26.42 536.94 -16.8C561.75 25.74 576 75.2 576 128C576 287.06 447.06 416 288 416zM288 352C302.71 352 314.58 341.87 318.32 328.35C317.21 326.09 315.68 324.12 314.87 321.68L305.65 294.01C300.52 290.52 294.68 288 288.01 288C270.34 288 256.01 302.3300000000001 256.01 320S270.33 352 288 352zM96 64C78.33 64 64 78.33 64 96S78.33 128 96 128S128 113.67 128 96S113.67 64 96 64zM144 224C126.33 224 112 238.33 112 256S126.33 288 144 288S176 273.67 176 256S161.67 224 144 224zM390.77 296.41L329.44 112.41C343.13 100.67 352 83.46 352 64C352 52.28 348.62 41.45 343.12 32H232.88C227.38 41.45 224 52.28 224 64C224 97.94 250.5 125.43 283.9 127.59L345.24 311.6C349.4100000000001 324.1600000000001 362.9700000000001 331.05 375.6 326.7700000000001C388.17 322.5800000000001 394.9500000000001 308.98 390.7700000000001 296.4100000000001zM405.43 239.21L420.95 285.76C424.42 287.05 428.08 287.99 432 287.99C449.67 287.99 464 273.66 464 255.99S449.67 223.99 432 223.99C420.62 224 411.11 230.27 405.43 239.21zM480 64C462.33 64 448 78.33 448 96S462.33 128 480 128S512 113.67 512 96S497.67 64 480 64z" /> + <glyph glyph-name="tag" + unicode="" + horiz-adv-x="512" d=" M0 195.882V400C0 426.51 21.49 448 48 448H252.118A48 48 0 0 0 286.059 433.941L497.941 222.059C516.6859999999999 203.314 516.6859999999999 172.922 497.941 154.177L293.823 -49.941C275.078 -68.6859999999999 244.686 -68.6859999999999 225.941 -49.941L14.059 161.941A48 48 0 0 0 0 195.882zM112 384C85.49 384 64 362.51 64 336S85.49 288 112 288S160 309.49 160 336S138.51 384 112 384z" /> + <glyph glyph-name="tags" + unicode="" + horiz-adv-x="640" d=" M497.941 222.059L286.0590000000001 433.941A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V195.882A48 48 0 0 1 14.059 161.941L225.941 -49.941C244.685 -68.6859999999999 275.077 -68.687 293.823 -49.941L497.941 154.177C516.6859999999999 172.922 516.6859999999999 203.314 497.941 222.059zM112 288C85.49 288 64 309.49 64 336S85.49 384 112 384S160 362.51 160 336S138.51 288 112 288zM625.941 154.177L421.823 -49.941C403.078 -68.6859999999999 372.686 -68.6859999999999 353.941 -49.941L353.581 -49.581L527.64 124.478C544.639 141.477 554 164.078 554 188.118S544.638 234.759 527.64 251.758L331.397 448H380.118A48 48 0 0 0 414.059 433.941L625.941 222.059C644.686 203.314 644.686 172.922 625.941 154.177z" /> + <glyph glyph-name="tape" + unicode="" + horiz-adv-x="640" d=" M224 256C188.7 256 160 227.3 160 192S188.7 128 224 128S288 156.7 288 192S259.3 256 224 256zM624 32H380.6C422.1 72.7 448 129.3 448 192C448 315.7 347.7 416 224 416S0 315.7 0 192S100.3 -32 224 -32H624C632.8 -32 640 -24.8 640 -16V16C640 24.8 632.8 32 624 32zM224 96C171 96 128 139 128 192S171 288 224 288S320 245 320 192S277 96 224 96z" /> + <glyph glyph-name="tasks" + unicode="" + horiz-adv-x="512" d=" M208 316H496C504.8 316 512 323.2 512 332V372C512 380.8 504.8 388 496 388H208C199.2 388 192 380.8 192 372V332C192 323.2 199.2 316 208 316zM208 156H496C504.8 156 512 163.2 512 172V212C512 220.8 504.8 228 496 228H208C199.2 228 192 220.8 192 212V172C192 163.2 199.2 156 208 156zM208 -4H496C504.8 -4 512 3.2 512 12V52C512 60.8 504.8 68 496 68H208C199.2 68 192 60.8 192 52V12C192 3.2 199.2 -4 208 -4zM64 80C37.5 80 15.4 58.5 15.4 32S37.5 -16 64 -16S112 5.5 112 32S90.5 80 64 80zM156.5 379L84.3 306.8L68.7 291.2000000000001C64 286.5 55.8 286.5 51.1 291.2000000000001L3.5 338.6C-1.2 343.3 -1.2 350.9 3.5 355.6L19.2 371.3C23.9 376 31.5 376 36.2 371.3L58.9 349.2L122.6 412.5C127.3 417.2 134.9 417.2 139.6 412.5L156.6 396C161.2 391.3 161.2 383.7 156.5 379zM156.5 219.4L84.3 147.2L68.6 131.5C63.9 126.8 55.7 126.8 51 131.5L3.5 179C-1.2 183.7 -1.2 191.3 3.5 196L19.2 211.7C23.9 216.4 31.5 216.4 36.2 211.7L58.9 189.6L122.6 253.3C127.3 258 134.9 258 139.6 253.3L156.6 236.3C161.2 231.7 161.2 224.1 156.5 219.4z" /> + <glyph glyph-name="taxi" + unicode="" + horiz-adv-x="512" d=" M462 206.36L440 291.2000000000001C430.4 326.4000000000001 398.4 352 363.2 352H352V384C352 401.67 337.67 416 320 416H192C174.33 416 160 401.67 160 384V352H148.8C113.6 352 81.6 326.4 72 291.2L50 206.36C21.41 199.96 0 174.53 0 144V96C0 72.37 12.95 51.96 32 40.88V0C32 -17.67 46.33 -32 64 -32H96C113.67 -32 128 -17.67 128 0V32H384V0C384 -17.67 398.33 -32 416 -32H448C465.67 -32 480 -17.67 480 0V40.88C499.05 51.97 512 72.38 512 96V144C512 174.53 490.59 199.96 462 206.36zM96 96C78.33 96 64 110.33 64 128S78.33 160 96 160S128 145.67 128 128S113.67 96 96 96zM116.55 208L133.75 274.36C135.98 282.52 143.34 288 148.81 288H363.2100000000001C368.6800000000001 288 376.04 282.52 378.0600000000001 275.14L395.45 208H116.55zM416 96C398.33 96 384 110.33 384 128S398.33 160 416 160S448 145.67 448 128S433.67 96 416 96z" /> + <glyph glyph-name="teeth-open" + unicode="" + horiz-adv-x="640" d=" M544 448H96C42.98 448 0 405.02 0 352V288C0 252.65 28.66 224 64 224H576C611.34 224 640 252.65 640 288V352C640 405.02 597.02 448 544 448zM160 272C160 263.16 152.84 256 144 256H80C71.16 256 64 263.16 64 272V304C64 330.51 85.49 352 112 352S160 330.51 160 304V272zM304 272C304 263.16 296.84 256 288 256H208C199.16 256 192 263.16 192 272V328C192 358.93 217.07 384 248 384S304 358.93 304 328V272zM448 272C448 263.16 440.84 256 432 256H352C343.1600000000001 256 336 263.16 336 272V328C336 358.93 361.07 384 392 384S448 358.93 448 328V272zM576 272C576 263.16 568.84 256 560 256H496C487.16 256 480 263.16 480 272V304C480 330.51 501.49 352 528 352S576 330.51 576 304V272zM576 128H64C28.66 128 0 99.35 0 64V32C0 -21.02 42.98 -64 96 -64H544C597.02 -64 640 -21.02 640 32V64C640 99.35 611.34 128 576 128zM160 48C160 21.49 138.51 0 112 0S64 21.49 64 48V80C64 88.84 71.16 96 80 96H144C152.84 96 160 88.84 160 80V48zM304 56C304 25.07 278.93 0 248 0S192 25.07 192 56V80C192 88.84 199.16 96 208 96H288C296.84 96 304 88.84 304 80V56zM448 56C448 25.07 422.93 0 392 0S336 25.07 336 56V80C336 88.84 343.1600000000001 96 352 96H432C440.84 96 448 88.84 448 80V56zM576 48C576 21.49 554.51 0 528 0S480 21.49 480 48V80C480 88.84 487.16 96 496 96H560C568.84 96 576 88.84 576 80V48z" /> + <glyph glyph-name="teeth" + unicode="" + horiz-adv-x="640" d=" M544 448H96C42.98 448 0 405.02 0 352V32C0 -21.02 42.98 -64 96 -64H544C597.02 -64 640 -21.02 640 32V352C640 405.02 597.02 448 544 448zM160 80C160 53.49 138.51 32 112 32S64 53.49 64 80V144C64 152.84 71.16 160 80 160H144C152.84 160 160 152.84 160 144V80zM160 208C160 199.16 152.84 192 144 192H80C71.16 192 64 199.16 64 208V272C64 298.51 85.49 320 112 320S160 298.51 160 272V208zM304 88C304 57.07 278.93 32 248 32S192 57.07 192 88V144C192 152.84 199.16 160 208 160H288C296.84 160 304 152.84 304 144V88zM304 208C304 199.16 296.84 192 288 192H208C199.16 192 192 199.16 192 208V296C192 326.93 217.07 352 248 352S304 326.93 304 296V208zM448 88C448 57.07 422.93 32 392 32S336 57.07 336 88V144C336 152.84 343.1600000000001 160 352 160H432C440.84 160 448 152.84 448 144V88zM448 208C448 199.16 440.84 192 432 192H352C343.1600000000001 192 336 199.16 336 208V296C336 326.93 361.07 352 392 352S448 326.93 448 296V208zM576 80C576 53.49 554.51 32 528 32S480 53.49 480 80V144C480 152.84 487.16 160 496 160H560C568.84 160 576 152.84 576 144V80zM576 208C576 199.16 568.84 192 560 192H496C487.16 192 480 199.16 480 208V272C480 298.51 501.49 320 528 320S576 298.51 576 272V208z" /> + <glyph glyph-name="terminal" + unicode="" + horiz-adv-x="640" d=" M257.981 175.029L63.638 -19.314C54.265 -28.687 39.069 -28.687 29.697 -19.314L7.029 3.353C-2.328 12.71 -2.346 27.875 6.989 37.254L161.011 192L6.99 346.745C-2.345 356.124 -2.327 371.289 7.03 380.646L29.697 403.313C39.07 412.6860000000001 54.266 412.6860000000001 63.638 403.313L257.981 208.97C267.354 199.598 267.354 184.402 257.981 175.029zM640 -8V24C640 37.255 629.255 48 616 48H312C298.745 48 288 37.255 288 24V-8C288 -21.255 298.745 -32 312 -32H616C629.255 -32 640 -21.255 640 -8z" /> + <glyph glyph-name="text-height" + unicode="" + horiz-adv-x="576" d=" M16 416H304C312.837 416 320 408.837 320 400V304C320 295.163 312.837 288 304 288H268.504C259.6670000000001 288 252.504 295.163 252.504 304V352H197.743V32H232C240.837 32 248 24.837 248 16V-16C248 -24.837 240.837 -32 232 -32H88C79.163 -32 72 -24.837 72 -16V16C72 24.837 79.163 32 88 32H122.257V352H67.496V304C67.496 295.163 60.333 288 51.496 288H16C7.163 288 0 295.163 0 304V400C0 408.837 7.163 416 16 416zM491.308 411.315L571.303 331.314C581.309 321.307 574.297 304 559.99 304H512V80H560C575.639 80 580.635 62.009 571.313 52.686L491.318 -27.3150000000001C485.071 -33.5620000000001 474.937 -33.5600000000001 468.692 -27.3150000000001L388.697 52.6859999999999C378.691 62.693 385.703 80 400.01 80H448V304H400C384.361 304 379.365 321.991 388.687 331.314L468.682 411.315C474.929 417.563 485.063 417.56 491.308 411.315z" /> + <glyph glyph-name="text-width" + unicode="" + horiz-adv-x="448" d=" M16 416H432C440.837 416 448 408.837 448 400V304C448 295.163 440.837 288 432 288H396.504C387.6670000000001 288 380.504 295.163 380.504 304V352H261.743V224H296C304.837 224 312 216.837 312 208V176C312 167.163 304.837 160 296 160H152C143.163 160 136 167.163 136 176V208C136 216.837 143.163 224 152 224H186.257V352H67.496V304C67.496 295.163 60.333 288 51.496 288H16C7.163 288 0 295.163 0 304V400C0 408.837 7.163 416 16 416zM443.315 75.318L363.314 155.313C353.991 164.635 336 159.638 336 144V96H112V143.99C112 158.297 94.693 165.309 84.686 155.303L4.685 75.308C-1.56 69.063 -1.562 58.929 4.685 52.682L84.686 -27.313C94.009 -36.635 112 -31.638 112 -16V32H336V-15.99C336 -30.297 353.307 -37.309 363.314 -27.303L443.3150000000001 52.692C449.5600000000001 58.937 449.5630000000001 69.071 443.3150000000001 75.318z" /> + <glyph glyph-name="th-large" + unicode="" + horiz-adv-x="512" d=" M296 416H488C501.255 416 512 405.255 512 392V232C512 218.745 501.255 208 488 208H296C282.745 208 272 218.745 272 232V392C272 405.255 282.745 416 296 416zM216 416H24C10.745 416 0 405.255 0 392V232C0 218.745 10.745 208 24 208H216C229.255 208 240 218.745 240 232V392C240 405.255 229.255 416 216 416zM0 152V-8C0 -21.255 10.745 -32 24 -32H216C229.255 -32 240 -21.255 240 -8V152C240 165.255 229.255 176 216 176H24C10.745 176 0 165.255 0 152zM296 -32H488C501.255 -32 512 -21.255 512 -8V152C512 165.255 501.255 176 488 176H296C282.745 176 272 165.255 272 152V-8C272 -21.255 282.745 -32 296 -32z" /> + <glyph glyph-name="th-list" + unicode="" + horiz-adv-x="512" d=" M149.333 232V152C149.333 138.745 138.588 128 125.333 128H24C10.745 128 0 138.745 0 152V232C0 245.255 10.745 256 24 256H125.333C138.588 256 149.333 245.255 149.333 232zM0 72V-8C0 -21.255 10.745 -32 24 -32H125.333C138.588 -32 149.333 -21.255 149.333 -8V72C149.333 85.255 138.588 96 125.333 96H24C10.745 96 0 85.255 0 72zM125.333 416H24C10.745 416 0 405.255 0 392V312C0 298.745 10.745 288 24 288H125.333C138.588 288 149.333 298.745 149.333 312V392C149.333 405.255 138.588 416 125.333 416zM205.333 -32H488C501.255 -32 512 -21.255 512 -8V72C512 85.255 501.255 96 488 96H205.333C192.078 96 181.333 85.255 181.333 72V-8C181.333 -21.255 192.078 -32 205.333 -32zM181.333 392V312C181.333 298.745 192.078 288 205.333 288H488C501.255 288 512 298.745 512 312V392C512 405.255 501.255 416 488 416H205.333C192.078 416 181.333 405.255 181.333 392zM205.333 128H488C501.255 128 512 138.745 512 152V232C512 245.255 501.255 256 488 256H205.333C192.078 256 181.333 245.255 181.333 232V152C181.333 138.745 192.078 128 205.333 128z" /> + <glyph glyph-name="th" + unicode="" + horiz-adv-x="512" d=" M149.333 392V312C149.333 298.745 138.588 288 125.333 288H24C10.745 288 0 298.745 0 312V392C0 405.255 10.745 416 24 416H125.333C138.588 416 149.333 405.255 149.333 392zM330.6670000000001 152V232C330.6670000000001 245.255 319.9220000000001 256 306.6670000000001 256H205.333C192.078 256 181.333 245.255 181.333 232V152C181.333 138.745 192.078 128 205.333 128H306.666C319.9220000000001 128 330.667 138.745 330.667 152zM362.6670000000001 392V312C362.6670000000001 298.745 373.4120000000001 288 386.6670000000001 288H488C501.255 288 512 298.745 512 312V392C512 405.255 501.255 416 488 416H386.667C373.412 416 362.667 405.255 362.667 392zM330.6670000000001 312V392C330.6670000000001 405.255 319.9220000000001 416 306.6670000000001 416H205.333C192.078 416 181.333 405.255 181.333 392V312C181.333 298.745 192.078 288 205.333 288H306.666C319.9220000000001 288 330.667 298.745 330.667 312zM125.333 256H24C10.745 256 0 245.255 0 232V152C0 138.745 10.745 128 24 128H125.333C138.588 128 149.333 138.745 149.333 152V232C149.333 245.255 138.588 256 125.333 256zM0 72V-8C0 -21.255 10.745 -32 24 -32H125.333C138.588 -32 149.333 -21.255 149.333 -8V72C149.333 85.255 138.588 96 125.333 96H24C10.745 96 0 85.255 0 72zM386.667 128H488C501.255 128 512 138.745 512 152V232C512 245.255 501.255 256 488 256H386.667C373.412 256 362.667 245.255 362.667 232V152C362.667 138.745 373.412 128 386.667 128zM386.667 -32H488C501.255 -32 512 -21.255 512 -8V72C512 85.255 501.255 96 488 96H386.667C373.412 96 362.667 85.255 362.667 72V-8C362.667 -21.255 373.412 -32 386.667 -32zM181.333 72V-8C181.333 -21.255 192.078 -32 205.333 -32H306.666C319.921 -32 330.666 -21.255 330.666 -8V72C330.666 85.255 319.921 96 306.666 96H205.333C192.078 96 181.333 85.255 181.333 72z" /> + <glyph glyph-name="theater-masks" + unicode="" + horiz-adv-x="640" d=" M206.86 202.85C170.98 192.4 146.91 161.65 149.33 128.75C160.73 141.47 178.14 152.45 199.23 159.67L206.86 202.85zM95.81 153L64.08 332.51C63.79 334.13 64.36 335.13 64.32 335.1600000000001C122.08 367.2200000000001 187.44 384.17 253.33 384.17C254.94 384.17 256.56 384 258.18 383.98C272.13 397.45 289.9100000000001 406.81 309.77 409.98C328.66 413 347.82 414.53 366.95 415.3C356.96 429.25 342.47 439.5300000000001 325.18 442.3C301.27 446.11 277.24 448 253.32 448C176.66 448 101.02 428.58 33.2 390.94C9.03 377.52 -3.92 349.52 1.05 321.42L32.78 141.91C47.01 61.39 169.11 -0.17 237.23 -0.17C240.82 -0.17 243.98 0.29 247.24 0.6300000000001C233.72 17.71 218.3 41.1100000000001 207.74 68.21C160.13 81.1900000000001 101.68 119.8300000000001 95.81 153.0000000000001zM193.36 290.4600000000001C192.63 294.5800000000001 191.13 298.3300000000001 189.29 301.86C181.04 292.9500000000001 168.62 286.11 153.97 283.54C139.32 280.9600000000001 125.3 283.14 114.4900000000001 288.7100000000001C113.9700000000001 284.77 113.85 280.73 114.5800000000001 276.61C118.4200000000001 254.9100000000001 139.16 240.42 160.9200000000001 244.24C182.6700000000001 248.06 197.2000000000001 268.76 193.3600000000001 290.4600000000001zM606.8 327.1C517.8199999999999 376.48 415.37 394.51 314.82 378.45C287.51 374.09 265.74 352.19 260.7799999999999 324.09L229.05 144.58C213.6599999999999 57.53 324.33 -51.6900000000001 387.3599999999999 -62.77C450.3899999999999 -73.86 591.8299999999999 -8.98 607.2199999999999 78.0700000000001L638.9499999999999 257.5800000000001C643.92 285.6900000000001 630.9699999999999 313.6900000000001 606.8 327.1zM333.56 230.3C337.3999999999999 252 358.14 266.49 379.9 262.6600000000001C401.66 258.8300000000001 416.18 238.14 412.35 216.44C411.62 212.32 410.12 208.57 408.28 205.04C400.03 213.95 387.61 220.79 372.96 223.36C358.31 225.9400000000001 344.29 223.76 333.48 218.19C332.95 222.14 332.83 226.1800000000001 333.56 230.3zM404.03 31.54C348.35 41.33 310.51 90.81 314.99 144.4400000000001C335.59 118.9 371.2 98.27 414.48 90.6600000000001C457.76 83.0500000000001 498.3 90.2900000000001 526.41 107.2600000000001C512.23 55.3200000000001 459.7 21.7500000000001 404.03 31.5400000000001zM534.3299999999999 182.88C526.0799999999999 191.79 513.65 198.63 498.9999999999999 201.2C484.35 203.78 470.3299999999999 201.6 459.5199999999999 196.03C458.9999999999999 199.97 458.8799999999999 204.01 459.6099999999999 208.13C463.4499999999999 229.83 484.1899999999999 244.32 505.9499999999999 240.5C527.6999999999999 236.67 542.2299999999999 215.98 538.4 194.28C537.67 190.15 536.17 186.4 534.3299999999999 182.88z" /> + <glyph glyph-name="thermometer-empty" + unicode="" + horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 99.346 92.654 128 128 128S192 99.346 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" /> + <glyph glyph-name="thermometer-full" + unicode="" + horiz-adv-x="256" d=" M224 352C224 405.019 181.019 448 128 448S32 405.019 32 352V148.653C12.225 126.244 0.166 96.864 0.002 64.667C-0.357 -5.636 56.789 -63.509 127.091 -63.997C127.39 -63.999 127.701 -64 128 -64C198.698 -64 256 -6.696 256 64C256 96.459 243.912 126.09 224 148.653V352zM128 -16L127.424 -15.998C83.564 -15.694 47.777 20.546 48.001 64.422C48.174 98.402 67.267 116.074 80 130.502V352C80 378.467 101.533 400 128 400S176 378.467 176 352V130.502C188.63 116.19 208 98.338 208 64C208 19.888 172.112 -16 128 -16zM192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V352C96 369.673 110.327 384 128 384S160 369.673 160 352V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64z" /> + <glyph glyph-name="thermometer-half" + unicode="" + horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V224C96 241.673 110.327 256 128 256S160 241.673 160 224V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" /> + <glyph glyph-name="thermometer-quarter" + unicode="" + horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V160C96 177.673 110.327 192 128 192S160 177.673 160 160V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" /> + <glyph glyph-name="thermometer-three-quarters" + unicode="" + horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0C92.654 0 64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V288C96 305.673 110.327 320 128 320S160 305.673 160 288V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" /> + <glyph glyph-name="thermometer" + unicode="" + horiz-adv-x="512" d=" M476.8 427.6C439.3 458.3 381.3 453.9 344.9 417.4L299.2 371.4L349.7 320.9C352.8 317.8 352.8 312.7000000000001 349.7 309.6L338.4 298.3C335.3 295.2 330.2 295.2 327.1 298.3L276.7 348.8L231.6 303.4L281.9 253C285 249.9 285 244.8 281.9 241.7L270.6 230.4C267.5 227.3 262.4 227.3 259.3 230.4L209 280.6L163.9 235.2L214 185C217.1 181.9 217.1 176.8 214 173.7L202.7 162.4C199.6 159.3 194.5 159.3 191.4 162.4L141.3 212.6L96 166.9V66L7 -23C-2.4 -32.4 -2.4 -47.6 7 -56.9C16.4 -66.2999999999999 31.6 -66.2999999999999 40.9 -56.9L129.9 32.1H229.8L484 285.4C518.9 320.3 526.2 386.9 476.8 427.6z" /> + <glyph glyph-name="thumbs-down" + unicode="" + horiz-adv-x="512" d=" M0 392V152C0 138.745 10.745 128 24 128H104C117.255 128 128 138.745 128 152V392C128 405.255 117.255 416 104 416H24C10.745 416 0 405.255 0 392zM40 192C40 205.255 50.745 216 64 216S88 205.255 88 192S77.255 168 64 168S40 178.745 40 192zM312 -64C291.817 -64 282.515 -24.707 278.069 -6.205C272.863 15.461 267.48 37.865 252.676 52.697C220.207 85.221 203.173 126.664 163.559 165.808A11.98 11.98 0 0 0 160.001 174.329V388.099C160.001 394.64 165.244 399.977 171.784 400.097C187.615 400.387 208.478 409.176 224.435 416.275C256.189 430.402 295.709 447.983 343.995 448H346.839C389.616 448 440.202 447.587 460.613 418.263C469.005 406.206 471.059 391.229 466.761 373.631C483.073 356.578 491.824 324.7680000000001 483.143 298.874C500.687 275.442 502.2860000000001 242.742 492.451 219.405L492.561 219.295C504.4540000000001 207.346 512.0840000000001 188.036 512 170.098C511.844 139.746 485.843 111.9999999999999 452.447 111.9999999999999H350.723C358.03 83.66 384 59.868 384 17.452C384 -56 336 -64 312 -64z" /> + <glyph glyph-name="thumbs-up" + unicode="" + horiz-adv-x="512" d=" M104 224H24C10.745 224 0 213.255 0 200V-40C0 -53.255 10.745 -64 24 -64H104C117.255 -64 128 -53.255 128 -40V200C128 213.255 117.255 224 104 224zM64 -24C50.745 -24 40 -13.255 40 0S50.745 24 64 24S88 13.255 88 0S77.255 -24 64 -24zM384 366.548C384 324.132 358.03 300.3400000000001 350.723 272H452.446C485.843 272 511.843 244.254 511.999 213.902C512.083 195.964 504.453 176.653 492.56 164.705L492.45 164.595C502.286 141.258 500.687 108.558 483.142 85.126C491.823 59.231 483.073 27.422 466.76 10.369C471.058 -7.229 469.004 -22.206 460.612 -34.263C440.202 -63.587 389.616 -64 346.839 -64L343.994 -63.999C295.707 -63.982 256.188 -46.401 224.434 -32.274C208.477 -25.175 187.613 -16.387 171.783 -16.096C165.243 -15.976 160 -10.639 160 -4.098V209.672C160 212.872 161.282 215.943 163.558 218.193C203.172 257.337 220.206 298.78 252.675 331.304C267.479 346.136 272.863 368.54 278.068 390.206C282.515 408.707 291.817 448 312 448C336 448 384 440 384 366.548z" /> + <glyph glyph-name="thumbtack" + unicode="" + horiz-adv-x="384" d=" M298.028 233.733L285.793 352H328C341.255 352 352 362.745 352 376V424C352 437.255 341.255 448 328 448H56C42.745 448 32 437.255 32 424V376C32 362.745 42.745 352 56 352H98.207L85.972 233.733C37.465 211.18 0 170.739 0 120C0 106.745 10.745 96 24 96H160V-8.007C160 -9.249 160.289 -10.474 160.845 -11.585L184.845 -59.585C187.786 -65.467 196.209 -65.4779999999999 199.156 -59.585L223.156 -11.585A8.008 8.008 0 0 1 224.001 -8.007V96H360.001C373.256 96 384.001 106.745 384.001 120C384 171.183 346.018 211.42 298.028 233.733z" /> + <glyph glyph-name="ticket-alt" + unicode="" + horiz-adv-x="576" d=" M128 288H448V96H128V288zM528 192C528 165.49 549.49 144 576 144V48C576 21.49 554.51 0 528 0H48C21.49 0 0 21.49 0 48V144C26.51 144 48 165.49 48 192S26.51 240 0 240V336C0 362.51 21.49 384 48 384H528C554.51 384 576 362.51 576 336V240C549.49 240 528 218.51 528 192zM480 296C480 309.255 469.255 320 456 320H120C106.745 320 96 309.255 96 296V88C96 74.745 106.745 64 120 64H456C469.255 64 480 74.745 480 88V296z" /> + <glyph glyph-name="times-circle" + unicode="" + horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM377.6 126.9C382.3 122.2 382.3 114.6 377.6 109.9L338 70.4C333.3 65.7 325.7 65.7 321 70.4L256 136L190.9 70.4C186.2 65.7 178.6 65.7 173.9 70.4L134.4 110C129.7 114.7 129.7 122.3 134.4 127L200 192L134.4 257.1C129.7 261.8 129.7 269.4 134.4 274.1L174 313.7C178.7 318.4 186.3 318.4 191 313.7L256 248L321.1 313.6C325.8 318.3 333.4000000000001 318.3 338.1 313.6L377.7000000000001 274C382.4000000000001 269.3 382.4000000000001 261.7 377.7000000000001 257L312 192L377.6 126.9z" /> + <glyph glyph-name="times" + unicode="" + horiz-adv-x="352" d=" M242.72 192L342.79 292.07C355.07 304.35 355.07 324.26 342.79 336.55L320.55 358.79C308.27 371.07 288.36 371.07 276.07 358.79L176 258.7200000000001L75.93 358.79C63.65 371.07 43.74 371.07 31.45 358.79L9.21 336.55C-3.07 324.27 -3.07 304.36 9.21 292.07L109.28 192L9.21 91.93C-3.07 79.65 -3.07 59.74 9.21 47.45L31.45 25.21C43.73 12.93 63.65 12.93 75.93 25.21L176 125.28L276.07 25.21C288.35 12.93 308.27 12.93 320.55 25.21L342.79 47.45C355.07 59.73 355.07 79.64 342.79 91.93L242.72 192z" /> + <glyph glyph-name="tint-slash" + unicode="" + horiz-adv-x="640" d=" M633.82 -10.1L494.97 97.22C495.49 102.79 496 108.3800000000001 496 114.09C496 225.85 396.21 267.4300000000001 349.2200000000001 425.9100000000001C341.2800000000001 454.6900000000001 299.7800000000001 456.03 290.7800000000001 425.9100000000001C275.2600000000001 373.5700000000001 253.9100000000001 333.9500000000001 232.29 300.23L45.47 444.63C38.49 450.05 28.43 448.8 23.01 441.82L3.37 416.55C-2.05 409.58 -0.8 399.53 6.18 394.1L594.54 -60.63C601.52 -66.0599999999999 611.5699999999999 -64.7999999999999 617 -57.82L636.64 -32.55C642.05 -25.58 640.8 -15.53 633.8199999999999 -10.1zM144 114.09C144 15.65 222.72 -64 320 -64C364.71 -64 405.37 -47.04 436.4 -19.3L162.72 192.22C151.31 168.72 144 143.87 144 114.09z" /> + <glyph glyph-name="tint" + unicode="" + horiz-adv-x="352" d=" M205.22 425.9100000000001C197.28 454.69 155.78 456.03 146.78 425.9100000000001C100.01 268.15 0 225.28 0 114.09C0 15.65 78.72 -64 176 -64S352 15.65 352 114.09C352 225.8400000000001 252.21 267.4300000000001 205.22 425.9100000000001zM176 0C114.25 0 64 50.25 64 112C64 120.84 71.16 128 80 128S96 120.84 96 112C96 67.89 131.89 32 176 32C184.84 32 192 24.84 192 16S184.84 0 176 0z" /> + <glyph glyph-name="tired" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM281.8 250.3L361.8 298.3C373.4000000000001 305.2000000000001 385.8 290.6 377.2 280.3L343.6 240L377.2000000000001 199.7C385.9000000000001 189.3 373.3000000000001 174.9 361.8000000000001 181.7L281.8000000000001 229.7C274.1000000000001 234.4 274.1000000000001 245.6 281.8000000000001 250.3zM118.8 280.3C110.2 290.6 122.6 305.2000000000001 134.2 298.3L214.2 250.3C222 245.6 222 234.4 214.2 229.7L134.2 181.7000000000001C122.7 174.9 110.2 189.3000000000001 118.8 199.7000000000001L152.4 240.0000000000001L118.8 280.3000000000001zM248 160C299.9 160 363.3 116.2 371.2 53.3C372.9 39.7 363.2 28.7 353.5 32.9C327.6 44.0000000000001 289.1 50.3 248 50.3S168.4 44 142.5 32.9C132.7 28.7 123.1 39.9 124.8 53.3C132.7 116.2 196.1 160 248 160z" /> + <glyph glyph-name="toggle-off" + unicode="" + horiz-adv-x="576" d=" M384 384H192C85.961 384 0 298.039 0 192S85.961 0 192 0H384C490.039 0 576 85.961 576 192S490.039 384 384 384zM64 192C64 262.741 121.249 320 192 320C262.741 320 320 262.751 320 192C320 121.259 262.751 64 192 64C121.259 64 64 121.249 64 192zM384 64H335.0950000000001C400.312 136.858 400.331 247.12 335.0950000000001 320H384C454.741 320 512 262.751 512 192C512 121.26 454.751 64 384 64z" /> + <glyph glyph-name="toggle-on" + unicode="" + horiz-adv-x="576" d=" M576 192C576 85.961 490.039 0 384 0H192C85.961 0 0 85.961 0 192S85.961 384 192 384H384C490.039 384 576 298.039 576 192zM384 320C313.259 320 256 262.751 256 192C256 121.259 313.249 64 384 64C454.741 64 512 121.249 512 192C512 262.741 454.751 320 384 320" /> + <glyph glyph-name="toolbox" + unicode="" + horiz-adv-x="512" d=" M502.63 233.37L457.38 278.62C451.38 284.62 443.24 287.99 434.75 287.99H384V368C384 394.51 362.51 416 336 416H176C149.49 416 128 394.51 128 368V288H77.25C68.76 288 60.63 284.63 54.62 278.63L9.37 233.37C3.37 227.37 0 219.23 0 210.74V128H128V144C128 152.84 135.16 160 144 160H176C184.84 160 192 152.84 192 144V128H320V144C320 152.84 327.1600000000001 160 336 160H368C376.84 160 384 152.84 384 144V128H512V210.75C512 219.23 508.63 227.37 502.63 233.37zM320 288H192V352H320V288zM384 80C384 71.16 376.84 64 368 64H336C327.1600000000001 64 320 71.16 320 80V96H192V80C192 71.16 184.84 64 176 64H144C135.16 64 128 71.16 128 80V96H0V0C0 -17.67 14.33 -32 32 -32H480C497.67 -32 512 -17.67 512 0V96H384V80z" /> + <glyph glyph-name="tooth" + unicode="" + horiz-adv-x="448" d=" M443.98 351.75C432.9700000000001 396.9700000000001 396.87 433.81 351.9700000000001 445.4700000000001C319.7800000000001 453.83 288.9700000000001 440.37 262.8300000000001 421.14C259.5800000000001 418.75 255.8700000000001 417.4100000000001 252.3300000000001 415.66L280.6500000000001 397.45C288.0700000000001 392.68 290.23 382.78 285.4500000000001 375.3400000000001C280.9900000000001 368.39 271.1800000000001 365.48 263.3400000000001 370.54L162.83 435.1600000000001C142.13 446.01 119.45 451.56 96.02 445.4700000000001C51.12 433.8 15.02 396.9700000000001 4.01 351.75C-6.12 310.13 3.59 270.94 25.51 241.32C48.87 209.75 58.19 172.66 61.8 133.97C66.2 86.8100000000001 72.13 39.8100000000001 82.74 -6.35L90.54 -40.3C93.73 -54.17 106.03 -63.9999999999999 120.21 -63.9999999999999C134.18 -63.9999999999999 146.36 -54.4499999999999 149.75 -40.8399999999999L184.22 97.58C188.78 115.9 205.18 128.7400000000001 223.98 128.7400000000001S259.18 115.8900000000001 263.74 97.58L298.2100000000001 -40.8399999999999C301.6 -54.4499999999999 313.7800000000001 -63.9999999999999 327.7500000000001 -63.9999999999999C341.9300000000001 -63.9999999999999 354.2300000000001 -54.17 357.4200000000001 -40.3L365.2200000000001 -6.35C375.8300000000001 39.8 381.7500000000001 86.8100000000001 386.1600000000001 133.97C389.7700000000001 172.67 399.0900000000001 209.75 422.4500000000001 241.32C444.4000000000001 270.93 454.1100000000001 310.12 443.9800000000002 351.75z" /> + <glyph glyph-name="torah" + unicode="" + horiz-adv-x="448" d=" M448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM139.11 306.79C136.34 311.2 139.51 316.93 144.71 316.93H197.79C198.69 316.93 199.52 317.39 200 318.15L234.4000000000001 372.91C237.0000000000001 377.04 243.0100000000001 377.04 245.6100000000001 372.91L280.0100000000001 318.15A2.61 2.61 0 0 1 282.2200000000001 316.93H335.3C340.5 316.93 343.67 311.2000000000001 340.9000000000001 306.79L314.01 264L340.89 221.21C343.66 216.81 340.49 211.08 335.29 211.08H282.21C281.31 211.08 280.48 210.62 280 209.86L245.6 155.1C243 150.97 236.99 150.97 234.39 155.1L200 209.85A2.61 2.61 0 0 1 197.79 211.07H144.71C139.51 211.07 136.34 216.8 139.11 221.2L165.99 264L139.11 306.79zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0z" /> + <glyph glyph-name="torii-gate" + unicode="" + horiz-adv-x="512" d=" M376.45 416H135.55A303.17 303.17 0 0 0 0 448V352C0 334.33 14.33 320 32 320H64V256H16C7.16 256 0 248.84 0 240V208C0 199.16 7.16 192 16 192H64V-48C64 -56.84 71.16 -64 80 -64H112C120.84 -64 128 -56.84 128 -48V192H384V-48C384 -56.84 391.1600000000001 -64 400 -64H432C440.84 -64 448 -56.84 448 -48V192H496C504.84 192 512 199.16 512 208V240C512 248.84 504.84 256 496 256H448V320H480C497.67 320 512 334.33 512 352V448A303.17 303.17 0 0 0 376.45 416zM128 320H224V256H128V320zM384 256H288V320H384V256z" /> + <glyph glyph-name="trademark" + unicode="" + horiz-adv-x="640" d=" M97.119 284.867H12C5.373 284.867 0 290.24 0 296.867V340C0 346.627 5.373 352 12 352H260.559C267.186 352 272.559 346.627 272.559 340V296.867C272.559 290.24 267.186 284.867 260.559 284.867H175.44V44C175.44 37.373 170.067 32 163.44 32H109.118C102.491 32 97.118 37.373 97.118 44V284.867zM329.825 352H395.25A12 12 0 0 0 406.596 343.907L450.355 216.839C457.516 196.251 466.466 164.027 466.466 164.027H467.362S476.312 196.251 483.473 216.839L527.231 343.907A12 12 0 0 0 538.577 352H603.987A12 12 0 0 0 615.948 340.9700000000001L639.96 44.97C640.527 37.983 635.009 32 627.999 32H573.898A12 12 0 0 0 561.926 43.182L552.844 176.112C551.0540000000001 200.28 552.844 229.8180000000001 552.844 229.8180000000001H551.9480000000001S541.2070000000001 196.2520000000001 534.046 176.112L503.3460000000001 91.381A12 12 0 0 0 492.0640000000001 83.4690000000001H441.7620000000001A12 12 0 0 0 430.4800000000001 91.381L399.7800000000001 176.112C392.6190000000001 196.252 381.8770000000001 229.8180000000001 381.8770000000001 229.8180000000001H380.9820000000001S382.7720000000001 200.28 380.9820000000001 176.112L371.9000000000001 43.182C371.4720000000001 36.887 366.2400000000001 32 359.9300000000001 32H305.4C298.383 32 292.864 37.994 293.441 44.987L317.866 340.987A11.999000000000002 11.999000000000002 0 0 0 329.825 352z" /> + <glyph glyph-name="traffic-light" + unicode="" + horiz-adv-x="384" d=" M384 256H320V293.88C357.2 307.1 384 342.26 384 384H320V416C320 433.67 305.67 448 288 448H96C78.33 448 64 433.67 64 416V384H0C0 342.26 26.8 307.1 64 293.88V256H0C0 214.26 26.8 179.1 64 165.88V128H0C0 85.16 28.25 49.31 66.99 36.95C79.42 -20.72 130.6 -64 192 -64S304.58 -20.72 317.01 36.95C355.75 49.31 384 85.16 384 128H320V165.88C357.2 179.1 384 214.26 384 256zM192 32C165.49 32 144 53.49 144 80S165.49 128 192 128S240 106.51 240 80S218.51 32 192 32zM192 160C165.49 160 144 181.49 144 208S165.49 256 192 256S240 234.51 240 208S218.51 160 192 160zM192 288C165.49 288 144 309.49 144 336S165.49 384 192 384S240 362.51 240 336S218.51 288 192 288z" /> + <glyph glyph-name="train" + unicode="" + horiz-adv-x="448" d=" M448 352V96C448 44.185 386.376 0 317.978 0L380.9580000000001 -49.721C386.905 -54.417 383.562 -64 376 -64H72C64.422 -64 61.108 -54.406 67.043 -49.721L130.022 0C61.82 0 0 44.046 0 96V352C0 405.019 64 448 128 448H320C385 448 448 405.019 448 352zM400 216V328C400 341.255 389.255 352 376 352H72C58.745 352 48 341.255 48 328V216C48 202.745 58.745 192 72 192H376C389.255 192 400 202.745 400 216zM224 152C193.072 152 168 126.928 168 96S193.072 40 224 40S280 65.072 280 96S254.928 152 224 152z" /> + <glyph glyph-name="transgender-alt" + unicode="" + horiz-adv-x="480" d=" M468 448H389C378.3 448 373 435.1 380.5 427.5L397.4 410.6L316.7 329.9C294.5 343.9 268.2 352 240 352C211.8 352 185.5 343.9 163.3 329.9L146.8 346.4L166.6 366.2C171.3 370.9 171.3 378.5 166.6 383.2L138.3 411.5C133.6 416.2 126 416.2 121.3 411.5L101.5 391.7L82.5 410.7L99.4 427.6C107.1 435.1 101.7 448 91 448H12C5.4 448 0 442.6 0 436V357C0 346.3 12.9 341 20.5 348.5L37.4 365.4L56.4 346.4L36.6 326.6C31.9 321.9 31.9 314.3 36.6 309.6L64.9 281.3C69.6 276.6 77.2 276.6 81.9 281.3L101.7 301.1L118.2 284.6C104.1 262.5 96 236.2 96 208C96 139.5 143.9 82.1 208 67.6V40H172C165.4 40 160 34.6 160 28V-12C160 -18.6 165.4 -24 172 -24H208V-52C208 -58.6 213.4 -64 220 -64H260C266.6 -64 272 -58.6 272 -52V-24H308C314.6 -24 320 -18.6 320 -12V28C320 34.6 314.6 40 308 40H272V67.6C336.1 82.2000000000001 384 139.5 384 208C384 236.2 375.9 262.5 361.9 284.7000000000001L442.6 365.4000000000001L459.4999999999999 348.5000000000001C467.1 340.9000000000001 479.9999999999999 346.3000000000001 479.9999999999999 357.0000000000001V436C479.9999999999999 442.6 474.6 448 467.9999999999999 448zM240 128C195.9 128 160 163.9 160 208S195.9 288 240 288S320 252.1 320 208S284.1 128 240 128z" /> + <glyph glyph-name="transgender" + unicode="" + horiz-adv-x="384" d=" M372 448H293C282.3 448 277 435.1 284.5 427.5L301.4 410.6L220.7 329.9C198.5 343.9 172.2 352 144 352C64.5 352 0 287.5 0 208C0 139.5 47.9 82.1 112 67.6V40H76C69.4 40 64 34.6 64 28V-12C64 -18.6 69.4 -24 76 -24H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-24H212C218.6 -24 224 -18.6 224 -12V28C224 34.6 218.6 40 212 40H176V67.6C240.1 82.2000000000001 288 139.5 288 208C288 236.2 279.9 262.5 265.9 284.7000000000001L346.6 365.4000000000001L363.5 348.5000000000001C371.1 340.9000000000001 384 346.3000000000001 384 357.0000000000001V436C384 442.6 378.6 448 372 448zM144 128C99.9 128 64 163.9 64 208S99.9 288 144 288S224 252.1 224 208S188.1 128 144 128z" /> + <glyph glyph-name="trash-alt" + unicode="" + horiz-adv-x="448" d=" M0 364V392C0 405.3 10.7 416 24 416H136L145.4 434.7C149.4 442.9 157.7 448 166.8 448H281.1C290.2000000000001 448 298.5 442.9 302.6 434.7L312 416H424C437.3 416 448 405.3 448 392V364C448 357.4 442.6 352 436 352H12C5.4 352 0 357.4 0 364zM416 308V-16C416 -42.5 394.5 -64 368 -64H80C53.5 -64 32 -42.5 32 -16V308C32 314.6 37.4 320 44 320H404C410.6 320 416 314.6 416 308zM144 240C144 248.8 136.8 256 128 256S112 248.8 112 240V16C112 7.2 119.2 0 128 0S144 7.2 144 16V240zM240 240C240 248.8 232.8 256 224 256S208 248.8 208 240V16C208 7.2 215.2 0 224 0S240 7.2 240 16V240zM336 240C336 248.8 328.8 256 320 256S304 248.8 304 240V16C304 7.2 311.2 0 320 0S336 7.2 336 16V240z" /> + <glyph glyph-name="trash" + unicode="" + horiz-adv-x="448" d=" M0 364V392C0 405.3 10.7 416 24 416H136L145.4 434.7C149.4 442.9 157.7 448 166.8 448H281.1C290.2000000000001 448 298.5 442.9 302.6 434.7L312 416H424C437.3 416 448 405.3 448 392V364C448 357.4 442.6 352 436 352H12C5.4 352 0 357.4 0 364zM415.2 307.3L394.8 -19C393.2 -44.3 372.2 -64 346.9000000000001 -64H101.1C75.8 -64 54.8 -44.3 53.2 -19L32.8 307.3C32.4 314.2000000000001 37.9 320 44.8 320H403.3C410.1 320 415.6 314.2000000000001 415.2 307.3z" /> + <glyph glyph-name="tree" + unicode="" + horiz-adv-x="384" d=" M377.33 72.571L293.906 160H328C349.017 160 359.872 185.207 345.448 200.479L262.79 288H296C316.878 288 327.851 312.969 313.587 328.331L209.587 440.334C200.102 450.548 183.911 450.563 174.413 440.334L70.413 328.331C56.206 313.031 67.037 288 88 288H121.21L38.551 200.479C24.121 185.199 34.993 160 56 160H90.094L6.665 72.571C-7.869 57.345 2.925 32 24.025 32H144C144 -0.781 132.812 -17.26 110.005 -35.506C98.225 -44.93 104.914 -64 120 -64H264C279.086 -64 285.776 -44.931 273.995 -35.506C254.227 -19.6919999999999 240.003 -3.841 240 31.99V32H359.9700000000001C381.0200000000001 32 391.899 57.309 377.3300000000001 72.571z" /> + <glyph glyph-name="trophy" + unicode="" + horiz-adv-x="576" d=" M552 384H448V424C448 437.3 437.3 448 424 448H152C138.7 448 128 437.3 128 424V384H24C10.7 384 0 373.3 0 360V304C0 268.3 22.5 231.6 61.9 203.3C93.4 180.6 131.7 166.2 171.9 161.6C203.3 109.5 240 88 240 88V16H192C156.7 16 128 -4.7 128 -40V-52C128 -58.6 133.4 -64 140 -64H436C442.6 -64 448 -58.6 448 -52V-40C448 -4.7 419.3 16 384 16H336V88S372.7 109.5 404.1 161.6C444.4000000000001 166.2000000000001 482.7 180.6 514.1 203.3C553.4 231.6 576 268.3 576 304V360C576 373.3 565.3 384 552 384zM99.3 255.2C74.9 272.8 64 292.4 64 304V320H128.2C129.2 287.4 134 258.8 141 233.8C125.9 239 111.8 246.2 99.3 255.2zM512 304C512 287.9 494.3 267.9 476.7 255.2C464.2 246.2 450 239 434.9 233.8C441.9 258.8 446.7 287.4 447.7 320H512V304z" /> + <glyph glyph-name="truck-loading" + unicode="" + horiz-adv-x="640" d=" M50.2 72.4C52.5 63.9 61.3 58.8 69.8 61.1L286.2000000000001 119.1C294.7000000000001 121.4 299.8000000000001 130.2 297.5000000000001 138.7L247.8000000000001 324.2C245.5000000000001 332.7 236.7000000000001 337.8 228.2000000000001 335.5L151 314.7L175.8 222L114 205.5L89.2 298.2L11.9 277.5C3.4 275.2 -1.7 266.4 0.6 257.9L50.2 72.4zM384 448C366.3 448 352 433.7 352 416V92.4L5.9 -2C1.6 -3.2 -0.9 -7.6 0.3 -11.8L12.9 -58.1C14.1 -62.4 18.5 -64.9 22.7 -63.7L416.4 43.6999999999999C418.8 -16.1 467.6 -64 528 -64C589.9 -64 640 -13.9 640 48V448H384zM528 0C501.5 0 480 21.5 480 48S501.5 96 528 96S576 74.5 576 48S554.5 0 528 0z" /> + <glyph glyph-name="truck-monster" + unicode="" + horiz-adv-x="640" d=" M624 224H608V288C608 305.67 593.67 320 576 320H502.4L419.2200000000001 423.98A64.025 64.025 0 0 1 369.24 448H256C238.33 448 224 433.67 224 416V320H48C39.16 320 32 312.8400000000001 32 304V224H16C7.16 224 0 216.84 0 208V176C0 167.16 7.16 160 16 160H32.72C61.93 198.65 107.82 224 160 224S258.07 198.65 287.28 160H352.73C381.94 198.65 427.83 224 480.01 224S578.0799999999999 198.65 607.29 160H624C632.84 160 640 167.16 640 176V208C640 216.84 632.84 224 624 224zM288 320V384H369.24L420.44 320H288zM592 96H586.8C584.5999999999999 103.33 581.7299999999999 110.28 578.15 116.89L581.8199999999999 120.56C588.0699999999999 126.81 588.0699999999999 136.94 581.8199999999999 143.19L559.1899999999999 165.82C552.9399999999999 172.07 542.81 172.07 536.56 165.82L532.89 162.15A110.84999999999998 110.84999999999998 0 0 1 512 170.8V176C512 184.84 504.84 192 496 192H464C455.16 192 448 184.84 448 176V170.8C440.67 168.6 433.7200000000001 165.73 427.11 162.15L423.44 165.8200000000001C417.19 172.0700000000001 407.06 172.0700000000001 400.81 165.8200000000001L378.18 143.1900000000001C371.93 136.9400000000001 371.93 126.8100000000001 378.18 120.5600000000001L381.85 116.8900000000001A110.84999999999998 110.84999999999998 0 0 1 373.2 96H368C359.1600000000001 96 352 88.84 352 80V48C352 39.16 359.1600000000001 32 368 32H373.2C375.4 24.67 378.27 17.72 381.85 11.11L378.18 7.44C371.93 1.19 371.93 -8.94 378.18 -15.19L400.81 -37.82C407.06 -44.07 417.19 -44.07 423.44 -37.82L427.11 -34.15C433.72 -37.72 440.68 -40.6 448.01 -42.8V-47.9999999999999C448.01 -56.8399999999999 455.17 -63.9999999999999 464.0099999999999 -63.9999999999999H496.0099999999999C504.8499999999999 -63.9999999999999 512.01 -56.8399999999999 512.01 -47.9999999999999V-42.8C519.34 -40.6 526.29 -37.73 532.91 -34.15L536.5799999999999 -37.82C542.8299999999999 -44.07 552.9599999999999 -44.07 559.2099999999999 -37.82L581.8399999999999 -15.19C588.0899999999999 -8.94 588.0899999999999 1.19 581.8399999999999 7.44L578.17 11.11A110.84999999999998 110.84999999999998 0 0 1 586.8199999999999 32H592.02C600.86 32 608.02 39.16 608.02 48V80C608 88.84 600.84 96 592 96zM480 16C453.49 16 432 37.49 432 64S453.49 112 480 112S528 90.51 528 64S506.51 16 480 16zM272 96H266.8C264.6 103.33 261.73 110.28 258.1500000000001 116.89L261.8200000000001 120.56C268.0700000000001 126.81 268.0700000000001 136.94 261.8200000000001 143.19L239.1900000000001 165.82C232.9400000000001 172.07 222.8100000000001 172.07 216.5600000000001 165.82L212.8900000000001 162.15A110.84999999999998 110.84999999999998 0 0 1 192 170.8V176C192 184.84 184.84 192 176 192H144C135.16 192 128 184.84 128 176V170.8C120.67 168.6 113.72 165.73 107.11 162.15L103.44 165.8200000000001C97.19 172.0700000000001 87.06 172.0700000000001 80.81 165.8200000000001L58.18 143.2C51.93 136.95 51.93 126.82 58.18 120.57L61.85 116.9A110.84999999999998 110.84999999999998 0 0 1 53.2 96.01H48C39.16 96.01 32 88.85 32 80.01V48.01C32 39.17 39.16 32.01 48 32.01H53.2C55.4 24.68 58.27 17.73 61.85 11.12L58.18 7.45C51.93 1.2 51.93 -8.93 58.18 -15.18L80.81 -37.81C87.06 -44.06 97.19 -44.06 103.44 -37.81L107.11 -34.14C113.72 -37.71 120.68 -40.59 128.01 -42.79V-47.9899999999999C128.01 -56.8299999999999 135.17 -63.9899999999999 144.01 -63.9899999999999H176.01C184.85 -63.9899999999999 192.01 -56.8299999999999 192.01 -47.9899999999999V-42.79C199.34 -40.59 206.29 -37.72 212.91 -34.14L216.58 -37.81C222.83 -44.06 232.96 -44.06 239.21 -37.81L261.84 -15.18C268.09 -8.93 268.09 1.2 261.84 7.45L258.17 11.12A110.84999999999998 110.84999999999998 0 0 1 266.82 32.01H272.0199999999999C280.8599999999999 32.01 288.0199999999999 39.17 288.0199999999999 48.01V80.01C288 88.84 280.84 96 272 96zM160 16C133.49 16 112 37.49 112 64S133.49 112 160 112S208 90.51 208 64S186.51 16 160 16z" /> + <glyph glyph-name="truck-moving" + unicode="" + horiz-adv-x="640" d=" M621.3 210.7L562.8 269.2C550.8 281.2 534.5 287.9 517.5 287.9H480V384C480 401.7 465.7 416 448 416H32C14.3 416 0 401.7 0 384V48C0 3.8 35.8 -32 80 -32C106.3 -32 129.4 -19.1 144 0.4C158.6 -19.2 181.7 -32 208 -32C252.2 -32 288 3.8 288 48C288 53.5 287.4 58.8 286.4 64H449.6C448.5 58.8 448 53.5 448 48C448 3.8 483.8 -32 528 -32S608 3.8 608 48C608 53.5 607.4 58.8 606.4 64H624C632.8 64 640 71.2 640 80V165.5C640 182.5 633.3 198.7 621.3 210.7zM80 16C62.4 16 48 30.4 48 48S62.4 80 80 80S112 65.6 112 48S97.6 16 80 16zM208 16C190.4 16 176 30.4 176 48S190.4 80 208 80S240 65.6 240 48S225.6 16 208 16zM480 240H517.5C521.8 240 525.8 238.3 528.8 235.3L572.0999999999999 192H480V240zM528 16C510.4 16 496 30.4 496 48S510.4 80 528 80S560 65.6 560 48S545.6 16 528 16z" /> + <glyph glyph-name="truck-pickup" + unicode="" + horiz-adv-x="640" d=" M624 160H608V224C608 241.67 593.67 256 576 256H528L419.2200000000001 391.98A64.025 64.025 0 0 1 369.24 416H256C238.33 416 224 401.67 224 384V256H64C46.33 256 32 241.67 32 224V160H16C7.16 160 0 152.84 0 144V112C0 103.16 7.16 96 16 96H65.61C64.85 90.73 64 85.48 64 80C64 18.14 114.14 -32 176 -32S288 18.14 288 80C288 85.48 287.15 90.73 286.39 96H353.62C352.86 90.73 352.01 85.48 352.01 80C352.01 18.14 402.15 -32 464.01 -32S576.01 18.14 576.01 80C576.01 85.48 575.16 90.73 574.4 96H624C632.84 96 640 103.16 640 112V144C640 152.84 632.84 160 624 160zM288 352H369.24L446.04 256H288V352zM176 32C149.53 32 128 53.53 128 80S149.53 128 176 128S224 106.47 224 80S202.47 32 176 32zM464 32C437.53 32 416 53.53 416 80S437.53 128 464 128S512 106.47 512 80S490.47 32 464 32z" /> + <glyph glyph-name="truck" + unicode="" + horiz-adv-x="640" d=" M624 96H608V204.1C608 216.8 602.9 229 593.9 238L494 337.9C485 346.9 472.8 352 460.1 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H64C64 -21 107 -64 160 -64S256 -21 256 32H384C384 -21 427 -64 480 -64S576 -21 576 32H624C632.8 32 640 39.2 640 48V80C640 88.8 632.8 96 624 96zM160 -16C133.5 -16 112 5.5 112 32S133.5 80 160 80S208 58.5 208 32S186.5 -16 160 -16zM480 -16C453.5 -16 432 5.5 432 32S453.5 80 480 80S528 58.5 528 32S506.5 -16 480 -16zM560 192H416V304H460.1L560 204.1V192z" /> + <glyph glyph-name="tshirt" + unicode="" + horiz-adv-x="640" d=" M631.2 351.5L436.5 448C416.4 420.2 371.9 400.8 320 400.8S223.6 420.2 203.5 448L8.8 351.5C0.9 347.5 -2.3 337.9 1.6 330L58.8 215.5C62.8 207.6 72.4 204.4 80.3 208.3L136.9 236C147.5 241.2 159.9 233.5 159.9 221.6V-32C159.9 -49.7 174.2 -64 191.9 -64H447.9C465.6 -64 479.9 -49.7 479.9 -32V221.7C479.9 233.5 492.3 241.3 502.9 236.1L559.5 208.4C567.4 204.4 577 207.6 581 215.6L638.3 330C642.3 337.9 639.0999999999999 347.6 631.1999999999999 351.5z" /> + <glyph glyph-name="tty" + unicode="" + horiz-adv-x="512" d=" M5.37 344.178C143.902 482.71 368.306 482.504 506.632 344.178C512.71 338.1 513.706 328.682 509.215 321.497L466.001 252.359A18.332 18.332 0 0 0 443.6450000000001 245.054L357.2230000000001 279.623A18.335 18.335 0 0 0 345.7890000000001 298.469L351.741 358C289.596 380.454 221.105 379.986 160.258 358L166.211 298.468A18.331 18.331 0 0 0 154.777 279.622L68.354 245.0540000000001A18.334 18.334 0 0 0 45.998 252.3590000000001L2.787 321.498A18.333 18.333 0 0 0 5.37 344.178zM96 140V180C96 186.627 90.627 192 84 192H44C37.373 192 32 186.627 32 180V140C32 133.373 37.373 128 44 128H84C90.627 128 96 133.373 96 140zM192 140V180C192 186.627 186.627 192 180 192H140C133.373 192 128 186.627 128 180V140C128 133.373 133.373 128 140 128H180C186.627 128 192 133.373 192 140zM288 140V180C288 186.627 282.627 192 276 192H236C229.373 192 224 186.627 224 180V140C224 133.373 229.373 128 236 128H276C282.627 128 288 133.373 288 140zM384 140V180C384 186.627 378.627 192 372 192H332C325.373 192 320 186.627 320 180V140C320 133.373 325.373 128 332 128H372C378.627 128 384 133.373 384 140zM480 140V180C480 186.627 474.627 192 468 192H428C421.373 192 416 186.627 416 180V140C416 133.373 421.373 128 428 128H468C474.627 128 480 133.373 480 140zM144 44V84C144 90.627 138.627 96 132 96H92C85.373 96 80 90.627 80 84V44C80 37.373 85.373 32 92 32H132C138.627 32 144 37.373 144 44zM240 44V84C240 90.627 234.627 96 228 96H188C181.373 96 176 90.627 176 84V44C176 37.373 181.373 32 188 32H228C234.627 32 240 37.373 240 44zM336 44V84C336 90.627 330.627 96 324 96H284C277.373 96 272 90.627 272 84V44C272 37.373 277.373 32 284 32H324C330.627 32 336 37.373 336 44zM432 44V84C432 90.627 426.627 96 420 96H380C373.373 96 368 90.627 368 84V44C368 37.373 373.373 32 380 32H420C426.627 32 432 37.373 432 44zM96 -52V-12C96 -5.373 90.627 0 84 0H44C37.373 0 32 -5.373 32 -12V-52C32 -58.627 37.373 -64 44 -64H84C90.627 -64 96 -58.627 96 -52zM384 -52V-12C384 -5.373 378.627 0 372 0H140C133.373 0 128 -5.373 128 -12V-52C128 -58.627 133.373 -64 140 -64H372C378.627 -64 384 -58.627 384 -52zM480 -52V-12C480 -5.373 474.627 0 468 0H428C421.373 0 416 -5.373 416 -12V-52C416 -58.627 421.373 -64 428 -64H468C474.627 -64 480 -58.627 480 -52z" /> + <glyph glyph-name="tv" + unicode="" + horiz-adv-x="640" d=" M592 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H293.1V0H133.1C115.4 0 101.1 -14.3 101.1 -32S115.4 -64 133.1 -64H517.1C534.8000000000001 -64 549.1 -49.7 549.1 -32S534.8000000000001 0 517.1 0H357.1V32H592C618.5 32 640 53.5 640 80V400C640 426.5 618.5 448 592 448zM576 96H64V384H576V96z" /> + <glyph glyph-name="umbrella-beach" + unicode="" + horiz-adv-x="640" d=" M115.38 311.1L217.49 273.92C252.68 355.46 303.7 418.21 356.49 447.62C260.61 452.51 167.71 410.66 107.96 335.82C101.27 327.42 105.3 314.77 115.38 311.1zM247.63 262.94L486.11 176.11C521.87 297.49 504.81 407.77 443.48 430.0900000000001C436.0800000000001 432.79 428.35 434.0900000000001 420.3900000000001 434.0900000000001C362.3700000000001 434.08 292.12 364.92 247.6300000000001 262.94zM521.48 387.5C527.7 371.2 532.3100000000001 352.9 534.6800000000001 332.31C540.4200000000001 282.42 533.2600000000001 224.08 515.73 165.3300000000001L618.35 127.97C628.44 124.3 639.66 131.4 639.9200000000001 142.1400000000001C642.2400000000001 237.8300000000001 598.0100000000001 329.5800000000001 521.48 387.5000000000001zM560 0.02H321.06L386 178.5L325.86 200.4L252.96 0.03H16C7.16 0.03 0 -7.1300000000001 0 -15.98V-47.99C0 -56.83 7.16 -64 16 -64H560C568.84 -64 576 -56.83 576 -47.99V-15.98C576 -7.14 568.84 0.02 560 0.02z" /> + <glyph glyph-name="umbrella" + unicode="" + horiz-adv-x="576" d=" M557.011 180.369C505.579 225.586 449.439 224.067 398.444 149.638C393.146 141.7770000000001 383.538 142.473 378.708 149.638C376.225 153.2620000000001 346.49 210.446 288 210.446C242.234 210.446 217.458 179.0680000000001 197.291 149.638C192.462 142.473 182.855 141.7770000000001 177.557 149.638C126.653 223.923 70.944 226.0440000000001 18.99 180.369C8.78 172.105 -1.922 181.478 0.294 189.85C32.146 313.427 158.516 383.3880000000001 288.001 383.3880000000001C416.794 383.3880000000001 544.547 313.427 575.707 189.85C577.913 181.528 567.281 172.057 557.011 180.369zM256 186.999V32C256 14.355 241.645 0 224 0S192 14.355 192 32C192 49.673 177.673 64 160 64S128 49.673 128 32C128 -20.935 171.065 -64 224 -64S320 -20.935 320 32V186.712C298.164 197.518 274.575 196.449 256 186.999zM320 398.0060000000001V416C320 433.673 305.673 448 288 448S256 433.673 256 416V398.0130000000001A372.105 372.105 0 0 0 320 398.0060000000001z" /> + <glyph glyph-name="underline" + unicode="" + horiz-adv-x="448" d=" M224.264 59.76C132.595 59.76 67.661 110.925 67.661 211.152V384H39.37C30.533 384 23.37 391.163 23.37 400V432C23.37 440.837 30.533 448 39.37 448H176.76C185.597 448 192.76 440.837 192.76 432V400C192.76 391.163 185.597 384 176.76 384H147.947V211.152C147.947 157.453 176.261 131.708 224.264 131.708C271.23 131.708 300.06 157.142 300.06 211.673V384H271.769C262.932 384 255.769 391.163 255.769 400V432C255.769 440.837 262.932 448 271.769 448H408.637C417.474 448 424.637 440.837 424.637 432V400C424.637 391.163 417.474 384 408.637 384H380.346V211.152C380.346 111.747 315.4650000000001 59.76 224.264 59.76zM16 0H432C440.837 0 448 -7.163 448 -16V-48C448 -56.837 440.837 -64 432 -64H16C7.163 -64 0 -56.837 0 -48V-16C0 -7.163 7.163 0 16 0z" /> + <glyph glyph-name="undo-alt" + unicode="" + horiz-adv-x="512" d=" M255.545 440C189.276 439.881 129.107 413.767 84.685 371.315L48.971 407.029C33.851 422.149 8 411.4410000000001 8 390.059V256C8 242.745 18.745 232 32 232H166.059C187.441 232 198.149 257.851 183.03 272.971L141.28 314.721C172.144 343.62 212.081 359.628 254.51 359.9940000000001C346.908 360.7920000000001 424.793 286.017 423.9940000000001 190.552C423.236 99.991 349.816 24 256 24C214.873 24 176.003 38.678 145.37 65.556C140.627 69.717 133.464 69.464 129.002 65.003L89.34 25.341C84.468 20.469 84.709 12.526 89.822 7.908C133.798 -31.813 192.074 -56 256 -56C392.966 -56 503.999 55.033 504 191.998C504.001 328.807 392.354 440.245 255.545 440z" /> + <glyph glyph-name="undo" + unicode="" + horiz-adv-x="512" d=" M212.333 223.667H12C5.373 223.667 0 229.04 0 235.667V436C0 442.627 5.373 448 12 448H60C66.627 448 72 442.627 72 436V357.8880000000001C117.773 408.721 184.26 440.53 258.175 439.993C395.081 438.999 504.623 328.37 504.332 191.461C504.041 54.742 393.12 -56 256.3330000000001 -56C192.244 -56 133.8370000000001 -31.687 89.823 8.215C84.724 12.837 84.489 20.769 89.356 25.635L123.323 59.602C127.7970000000001 64.076 134.9850000000001 64.319 139.7240000000001 60.127C170.76 32.664 211.58 16 256.3330000000001 16C353.601 16 432.3330000000001 94.716 432.3330000000001 192C432.3330000000001 289.267 353.617 368 256.3330000000001 368C197.837 368 146.053 339.524 114.059 295.6670000000001H212.333C218.96 295.6670000000001 224.333 290.294 224.333 283.6670000000001V235.667C224.333 229.04 218.96 223.667 212.333 223.667z" /> + <glyph glyph-name="universal-access" + unicode="" + horiz-adv-x="512" d=" M256 400C370.953 400 464 306.971 464 192C464 77.047 370.971 -16 256 -16C141.047 -16 48 77.029 48 192C48 306.953 141.029 400 256 400M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 384C149.961 384 64 298.039 64 192S149.961 0 256 0S448 85.961 448 192S362.039 384 256 384zM256 340C275.882 340 292 323.882 292 304S275.882 268 256 268S220 284.118 220 304S236.118 340 256 340zM373.741 241.977C345.029 235.198 318.23 229.229 291.601 226.17C292.452 125.1470000000001 303.907 103.118 316.638 70.549C320.255 61.289 315.681 50.851 306.421 47.234C297.16 43.617 286.722 48.191 283.105 57.451C274.4000000000001 79.759 266.019 98.087 260.844 136H251.158C245.991 98.149 237.624 79.792 228.896 57.451C225.281 48.196 214.846 43.615 205.581 47.234C196.321 50.8510000000001 191.747 61.29 195.364 70.549C208.077 103.09 219.549 125.09 220.401 226.1700000000001C193.772 229.2280000000001 166.973 235.1970000000001 138.26 241.9770000000001C129.66 244.0080000000001 124.334 252.6250000000001 126.365 261.226S137.012 275.1520000000001 145.614 273.1210000000001C242.3 250.2920000000001 269.897 250.338 366.389 273.1210000000001C374.988 275.1510000000001 383.6070000000001 269.827 385.6380000000001 261.226C387.6670000000001 252.6250000000001 382.341 244.0070000000001 373.7410000000001 241.9770000000001z" /> + <glyph glyph-name="university" + unicode="" + horiz-adv-x="512" d=" M496 320V304A8 8 0 0 0 488 296H464V284C464 277.373 458.627 272 452 272H60C53.373 272 48 277.373 48 284V296H24A8 8 0 0 0 16 304V320A8 8 0 0 0 20.941 327.392L252.941 415.392A7.996000000000001 7.996000000000001 0 0 0 259.0590000000001 415.392L491.059 327.392A8 8 0 0 0 496 320zM472 16H40C26.745 16 16 5.255 16 -8V-24A8 8 0 0 1 24 -32H488A8 8 0 0 1 496 -24V-8C496 5.255 485.255 16 472 16zM96 256V64H60C53.373 64 48 58.627 48 52V32H464V52C464 58.627 458.627 64 452 64H416V256H352V64H288V256H224V64H160V256H96z" /> + <glyph glyph-name="unlink" + unicode="" + horiz-adv-x="512" d=" M304.0830000000001 42.093C308.769 37.407 308.769 29.809 304.0830000000001 25.122L259.4090000000001 -19.552C200.1460000000001 -78.814 103.716 -78.818 44.448 -19.552C-14.816 39.713 -14.816 136.144 44.448 195.4080000000001L89.123 240.0830000000001C93.809 244.7690000000001 101.407 244.7690000000001 106.094 240.0830000000001L145.692 200.485C150.3780000000001 195.799 150.3780000000001 188.201 145.692 183.514L101.017 138.84C72.945 110.7670000000001 72.945 65.09 101.017 37.0170000000001C129.089 8.9450000000001 174.7670000000001 8.9440000000001 202.841 37.0170000000001L247.5150000000001 81.691C252.2010000000001 86.377 259.7990000000001 86.377 264.4860000000001 81.691L304.0830000000001 42.093zM247.5150000000001 302.3090000000001C252.2010000000001 297.6230000000001 259.7990000000001 297.6230000000001 264.4860000000001 302.3090000000001L309.1600000000001 346.9830000000001C337.2320000000001 375.0580000000001 382.9100000000001 375.0560000000001 410.9840000000001 346.9830000000001C439.0560000000001 318.9100000000001 439.0560000000001 273.2330000000001 410.9840000000001 245.1600000000001L366.3090000000001 200.486C361.6230000000001 195.8 361.6230000000001 188.202 366.3090000000001 183.5150000000001L405.9070000000001 143.917C410.593 139.2310000000001 418.1910000000001 139.2310000000001 422.8780000000001 143.917L467.5530000000001 188.5920000000001C526.8180000000001 247.8570000000001 526.8180000000001 344.2870000000001 467.5530000000001 403.552C408.2870000000001 462.816 311.8580000000001 462.816 252.5920000000001 403.552L207.918 358.8780000000001C203.232 354.192 203.232 346.5940000000001 207.918 341.9070000000001L247.5150000000001 302.3090000000001zM482.3430000000001 -56.9709999999999L504.9700000000001 -34.3439999999999C514.3430000000001 -24.9709999999999 514.3430000000001 -9.7749999999999 504.9700000000001 -0.4029999999999L63.598 440.971C54.225 450.344 39.029 450.344 29.657 440.971L7.029 418.343C-2.344 408.9700000000001 -2.344 393.774 7.029 384.402L448.402 -56.971C457.775 -66.343 472.971 -66.343 482.343 -56.971z" /> + <glyph glyph-name="unlock-alt" + unicode="" + horiz-adv-x="448" d=" M400 192H152V295.1C152 334.7 183.7 367.6 223.3 368C263.3 368.4 296 335.9 296 296V280C296 266.7 306.7 256 320 256H352C365.3 256 376 266.7 376 280V296C376 380 307.5 448.3 223.5 448C139.5 447.7 72 378.5 72 294.5V192H48C21.5 192 0 170.5 0 144V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V144C448 170.5 426.5 192 400 192zM264 40C264 17.9 246.1 0 224 0S184 17.9 184 40V88C184 110.1 201.9 128 224 128S264 110.1 264 88V40z" /> + <glyph glyph-name="unlock" + unicode="" + horiz-adv-x="448" d=" M400 192H152V295.1C152 334.7 183.7 367.6 223.3 368C263.3 368.4 296 335.9 296 296V280C296 266.7 306.7 256 320 256H352C365.3 256 376 266.7 376 280V296C376 380 307.5 448.3 223.5 448C139.5 447.7 72 378.5 72 294.5V192H48C21.5 192 0 170.5 0 144V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V144C448 170.5 426.5 192 400 192z" /> + <glyph glyph-name="upload" + unicode="" + horiz-adv-x="512" d=" M296 64H216C202.7 64 192 74.7 192 88V256H104.3C86.5 256 77.6 277.5 90.2 290.1L242.3 442.3C249.8 449.8 262.1 449.8 269.6 442.3L421.8 290.1C434.4000000000001 277.5 425.5 256 407.7 256H320V88C320 74.7 309.3 64 296 64zM512 72V-40C512 -53.3 501.3 -64 488 -64H24C10.7 -64 0 -53.3 0 -40V72C0 85.3 10.7 96 24 96H160V88C160 57.1 185.1 32 216 32H296C326.9 32 352 57.1 352 88V96H488C501.3 96 512 85.3 512 72zM388 -16C388 -5 379 4 368 4S348 -5 348 -16S357 -36 368 -36S388 -27 388 -16zM452 -16C452 -5 443 4 432 4S412 -5 412 -16S421 -36 432 -36S452 -27 452 -16z" /> + <glyph glyph-name="user-alt-slash" + unicode="" + horiz-adv-x="640" d=" M633.8 -10.1L389.6 178.7C433.8 203.3 464 249.9 464 304C464 383.5 399.5 448 320 448C252.9 448 197 401.9 181 339.8L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L594.6 -60.5C601.6 -65.9 611.6 -64.7 617.1 -57.7L636.7 -32.4C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1zM198.4 128C124.2 128 64 67.8 64 -6.4V-16C64 -42.5 85.5 -64 112 -64H494.2L245.8 128H198.4z" /> + <glyph glyph-name="user-alt" + unicode="" + horiz-adv-x="512" d=" M256 160C335.5 160 400 224.5 400 304S335.5 448 256 448S112 383.5 112 304S176.5 160 256 160zM384 128H328.9C306.7 117.8 282 112 256 112S205.4 117.8 183.1 128H128C57.3 128 0 70.7 0 0V-16C0 -42.5 21.5 -64 48 -64H464C490.5 -64 512 -42.5 512 -16V0C512 70.7 454.7 128 384 128z" /> + <glyph glyph-name="user-astronaut" + unicode="" + horiz-adv-x="448" d=" M64 224H77.5C102.2 167.5 158.4 128 224 128S345.8 167.5 370.5 224H384C392.8 224 400 231.2 400 240V336C400 344.8 392.8 352 384 352H370.5C345.8 408.5 289.6 448 224 448S102.2 408.5 77.5 352H64C55.2 352 48 344.8 48 336V240C48 231.2 55.2 224 64 224zM104 312C104 334.1 125.5 352 152 352H296C322.5 352 344 334.1 344 312V288C344 235 301 192 248 192H200C147 192 104 235 104 288V312zM176 240L188 276L224 288L188 300L176 336L164 300L128 288L164 276L176 240zM327.6 126.6C297.7 107.3 262.2 96 224 96S150.3 107.3 120.4 126.6C52.9 119.5 0 63 0 -6.4V-16C0 -42.5 21.5 -64 48 -64H128V0C128 17.7 142.3 32 160 32H288C305.7 32 320 17.7 320 0V-64H400C426.5 -64 448 -42.5 448 -16V-6.4C448 63 395.1 119.5 327.6 126.6zM272 0C263.2 0 256 -7.2 256 -16S263.2 -32 272 -32S288 -24.8 288 -16S280.8 0 272 0zM176 0C167.2 0 160 -7.2 160 -16V-64H192V-16C192 -7.2 184.8 0 176 0z" /> + <glyph glyph-name="user-check" + unicode="" + horiz-adv-x="640" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160zM636.6 288.4L608.8000000000001 316.5C604.2 321.2 596.7 321.2 592.0000000000001 316.6L487.2000000000001 212.6L441.7000000000001 258.4C437.1000000000001 263.1 429.6000000000001 263.1 424.9000000000001 258.5L396.8000000000001 230.6C392.1000000000001 226 392.1000000000001 218.5 396.7000000000001 213.8L478.4 131.5C483.0000000000001 126.8 490.5000000000001 126.8 495.2 131.3999999999999L636.5 271.5999999999999C641.1 276.2999999999999 641.2 283.7999999999999 636.6 288.3999999999999z" /> + <glyph glyph-name="user-circle" + unicode="" + horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 344C296.6 344 336 304.6 336 256S296.6 168 248 168S160 207.4 160 256S199.4 344 248 344zM248 0C189.3 0 136.7 26.6 101.5 68.2C120.3 103.6 157.1 128 200 128C202.4 128 204.8 127.6 207.1 126.9C220.1 122.7 233.7 120 248 120C262.3 120 276 122.7 288.9 126.9C291.2 127.6 293.6 128 296 128C338.9 128 375.7 103.6 394.5 68.2C359.3 26.6 306.7 0 248 0z" /> + <glyph glyph-name="user-clock" + unicode="" + horiz-adv-x="640" d=" M496 224C416.4 224 352 159.6 352 80S416.4 -64 496 -64S640 0.4 640 80S575.6 224 496 224zM560 73.7C560 68.4 555.6 64 550.3 64H489.6999999999999C484.3999999999999 64 479.9999999999999 68.4 479.9999999999999 73.7V150.3C479.9999999999999 155.6 484.3999999999999 160 489.6999999999999 160H502.3C507.6 160 511.9999999999999 155.6 511.9999999999999 150.3V96H550.3C555.5999999999999 96 560 91.6 560 86.3V73.7zM320 80C320 107.8 326.7 134.1 338.2 157.5C330.2 159 322 160 313.6 160H296.9C274.7 149.8 250 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H395.1C349.8 -32.1 320 20.5 320 80zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192z" /> + <glyph glyph-name="user-cog" + unicode="" + horiz-adv-x="640" d=" M610.5 74.7C613.1 88.8 613.1 103.2 610.5 117.3L636.3 132.2C639.3 133.9 640.5999999999999 137.4 639.5999999999999 140.7C632.8999999999999 162.3 621.3999999999999 181.9 606.3999999999999 198.1C604.0999999999999 200.6 600.3999999999999 201.2 597.3999999999999 199.5L571.5999999999999 184.6C560.6999999999999 193.9 548.1999999999999 201.1 534.6999999999999 205.9V235.7000000000001C534.6999999999999 239.1000000000001 532.3 242.1000000000001 528.9999999999999 242.8000000000001C506.6999999999999 247.8000000000001 483.9999999999999 247.6000000000001 462.7999999999999 242.8000000000001C459.4999999999999 242.1000000000001 457.0999999999999 239.1000000000001 457.0999999999999 235.7000000000001V205.9C443.5999999999999 201.1 431.0999999999999 193.9 420.2 184.6L394.3999999999999 199.5C391.5 201.2 387.7 200.6 385.3999999999999 198.1C370.3999999999999 181.9 358.8999999999999 162.3 352.2 140.7000000000001C351.2 137.4 352.5999999999999 133.9 355.5 132.2000000000001L381.3 117.3000000000001C378.7 103.2000000000001 378.7 88.8000000000001 381.3 74.7000000000001L355.5 59.8000000000001C352.5 58.1000000000001 351.2 54.6000000000001 352.2 51.3000000000001C358.8999999999999 29.7 370.3999999999999 10.2 385.3999999999999 -6.0999999999999C387.7 -8.5999999999999 391.3999999999999 -9.1999999999999 394.3999999999999 -7.4999999999999L420.2 7.4000000000001C431.0999999999999 -1.8999999999999 443.5999999999999 -9.0999999999999 457.0999999999999 -13.8999999999999V-43.6999999999999C457.0999999999999 -47.0999999999999 459.4999999999999 -50.0999999999999 462.7999999999999 -50.8C485.0999999999999 -55.8 507.7999999999999 -55.6 528.9999999999999 -50.8C532.2999999999998 -50.1 534.6999999999999 -47.1 534.6999999999999 -43.6999999999999V-13.8999999999999C548.1999999999999 -9.0999999999999 560.6999999999999 -1.8999999999999 571.5999999999999 7.4000000000001L597.3999999999999 -7.4999999999999C600.2999999999998 -9.1999999999999 604.0999999999999 -8.5999999999999 606.3999999999999 -6.0999999999999C621.3999999999999 10.1000000000001 632.8999999999999 29.7000000000001 639.5999999999999 51.3000000000001C640.5999999999999 54.6000000000001 639.1999999999999 58.1000000000001 636.3 59.8000000000001L610.5 74.7000000000001zM496 47.5C469.2 47.5 447.5 69.3 447.5 96S469.3 144.5 496 144.5S544.5 122.7 544.5 96S522.8 47.5 496 47.5zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM425.2 -34.5C422.9 -33.3 420.6 -31.9 418.4 -30.6L410.5 -35.2C404.5 -38.6 397.7 -40.5000000000001 390.9 -40.5000000000001C380 -40.5000000000001 369.5 -35.9 362 -27.9C343.7 -8.1 329.7 15.9999999999999 321.8 41.6999999999999C316.3 59.3999999999999 323.7 78.0999999999999 339.7 87.3999999999999L347.6 91.9999999999999C347.5 94.6 347.5 97.1999999999999 347.6 99.8L339.7 104.4C323.7 113.6 316.3 132.4 321.8 150.1C322.7 153 324 155.9 325 158.8C321.2 159.1 317.5 160 313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C410.1 -64 419.5 -60.8 427.2 -55.5C426 -51.7 425.2 -47.8 425.2 -43.7V-34.5z" /> + <glyph glyph-name="user-edit" + unicode="" + horiz-adv-x="640" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H322.9C320.5 -57.2 319.5 -50 320.3 -42.7L327.1 18.2L328.3 29.3L336.2 37.2L413.5 114.5C389 142.2 353.5 160 313.5999999999999 160zM358.9000000000001 14.7L352.1 -46.3C351 -56.5 359.6 -65.1 369.7000000000001 -63.9L430.6 -57.1L568.5 80.8L496.8 152.5L358.9 14.6999999999999zM633 179.1L595.1 217C585.8000000000001 226.3 570.6 226.3 561.3000000000001 217L523.5000000000001 179.2L519.4000000000001 175.1L591.2 103.4L633 145.2C642.3 154.6 642.3 169.7 633 179.1z" /> + <glyph glyph-name="user-friends" + unicode="" + horiz-adv-x="640" d=" M192 192C253.9 192 304 242.1 304 304S253.9 416 192 416S80 365.9 80 304S130.1 192 192 192zM268.8 160H260.5C239.7 150 216.6 144 192 144S144.4 150 123.5 160H115.2C51.6 160 0 108.4 0 44.8V16C0 -10.5 21.5 -32 48 -32H336C362.5 -32 384 -10.5 384 16V44.8C384 108.4 332.4 160 268.8 160zM480 192C533 192 576 235 576 288S533 384 480 384S384 341 384 288S427 192 480 192zM528 160H524.2C510.3000000000001 155.2 495.6 152 480.0000000000001 152S449.7000000000001 155.2 435.8000000000001 160H432C411.6 160 392.8 154.1 376.3 144.6C400.7 118.3 416 83.4 416 44.8V6.4C416 4.2 415.5 2.1 415.4 1e-13H592C618.5 1e-13 640 21.5000000000001 640 48.0000000000001C640 109.9 589.9 160.0000000000001 528 160.0000000000001z" /> + <glyph glyph-name="user-graduate" + unicode="" + horiz-adv-x="448" d=" M319.4 127.4L224 32L128.6 127.4C57.1 124.3 0 65.8 0 -6.4V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V-6.4C448 65.8 390.9 124.3 319.4 127.4zM13.6 368.2L20 366.7V308.3C13 304.1 8 296.8 8 288C8 279.6 12.6 272.6 19.1 268.3L3.5 206C1.8 199.1 5.6 192 11.1 192H52.9C58.4 192 62.2 199.1 60.5 206L44.9 268.3C51.4 272.6 56 279.6 56 288C56 296.8 51 304.1 44 308.3V360.9L110 345C101.4 327.8 96 308.6 96 288C96 217.3 153.3 160 224 160S352 217.3 352 288C352 308.6 346.7 327.8 338 345L434.3 368.2C452.5 372.6 452.5 395.3 434.3 399.7L243.9 445.7C230.9 448.8 217.2 448.8 204.2 445.7L13.6 399.8C-4.5 395.4 -4.5 372.6 13.6 368.2z" /> + <glyph glyph-name="user-lock" + unicode="" + horiz-adv-x="640" d=" M320 128C320 139.1 323.1 149.4 328.1 158.5C323.3 159 318.6 160 313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H328.9C323.4 -54.5 320 -43.7 320 -32V128zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM608 160H576V208C576 252.2 540.2 288 496 288S416 252.2 416 208V160H384C366.3 160 352 145.7 352 128V-32C352 -49.7 366.3 -64 384 -64H608C625.7 -64 640 -49.7 640 -32V128C640 145.7 625.7 160 608 160zM528 160H464V208C464 225.6 478.4 240 496 240S528 225.6 528 208V160z" /> + <glyph glyph-name="user-md" + unicode="" + horiz-adv-x="448" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM104 24C104 10.7 114.7 0 128 0S152 10.7 152 24S141.3 48 128 48S104 37.3 104 24zM320 159.4V110.4C356.5 103 384 70.6 384 32V-9.7C384 -17.3 378.6 -23.9 371.1 -25.4L338.9000000000001 -31.8C334.6 -32.6999999999999 330.4000000000001 -29.9 329.5000000000001 -25.4999999999999L326.4000000000001 -9.8C325.5000000000001 -5.4999999999999 328.3 -1.1999999999999 332.7000000000001 -0.4L352.0000000000001 3.5V32C352.0000000000001 94.8 256.0000000000001 97.1 256.0000000000001 30.1V3.4L275.3000000000001 -0.4999999999999C279.6000000000001 -1.3999999999999 282.4000000000001 -5.6 281.6000000000001 -9.8999999999999L278.5000000000001 -25.5999999999999C277.6000000000001 -29.8999999999999 273.4000000000001 -32.6999999999999 269.1000000000001 -31.8999999999999L237.9000000000001 -27.6999999999999C230.0000000000001 -26.5999999999999 224.1000000000001 -19.8999999999999 224.1000000000001 -11.8V32C224.1000000000001 70.6 251.6000000000001 102.9 288.1000000000001 110.4V155.6C285.9000000000001 154.9 283.7000000000001 154.5 281.5000000000001 153.7C263.5000000000001 147.4 244.2000000000001 143.9 224.1000000000001 143.9S184.7000000000001 147.4 166.7000000000001 153.7C159.3000000000001 156.3 151.8000000000001 157.9 144.1000000000001 158.9V77.3C167.2000000000001 70.4 184.1000000000001 49.1999999999999 184.1000000000001 23.9C184.1000000000001 -7 159.0000000000001 -32.1 128.1000000000001 -32.1S72.1000000000001 -7 72.1000000000001 23.9C72.1000000000001 49.2 89.0000000000001 70.4 112.1000000000001 77.3V157.6999999999999C48.5 147 0 92.2 0 25.6V-19.2C0 -43.9 20.1 -64 44.8 -64H403.2C427.9 -64 448 -43.9 448 -19.2V25.6C448 97.6 391.2 155.9 320 159.4z" /> + <glyph glyph-name="user-minus" + unicode="" + horiz-adv-x="640" d=" M624 240H432C423.2 240 416 232.8 416 224V192C416 183.2 423.2 176 432 176H624C632.8 176 640 183.2 640 192V224C640 232.8 632.8 240 624 240zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160z" /> + <glyph glyph-name="user-ninja" + unicode="" + horiz-adv-x="448" d=" M325.4 158.8L224 57.4L122.6 158.8C54 152.7 0 95.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 95.8 394 152.7000000000001 325.4 158.8zM32 256C59.3 256 83.8 267.5 101.2 285.7C116.3 231.8 165.2 192 224 192C294.7 192 352 249.3 352 320S294.7 448 224 448C173.6 448 130.4 418.6 109.5 376.2C92.1 400.2 64 416 32 416C32 382.6 49.1 353.2 75.1 336C49.1 318.8 32 289.4 32 256zM176 352H272C289.7 352 304 337.7 304 320H144C144 337.7 158.3 352 176 352z" /> + <glyph glyph-name="user-plus" + unicode="" + horiz-adv-x="640" d=" M624 240H560V304C560 312.8 552.8 320 544 320H512C503.2 320 496 312.8 496 304V240H432C423.2 240 416 232.8 416 224V192C416 183.2 423.2 176 432 176H496V112C496 103.2 503.2 96 512 96H544C552.8 96 560 103.2 560 112V176H624C632.8 176 640 183.2 640 192V224C640 232.8 632.8 240 624 240zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160z" /> + <glyph glyph-name="user-secret" + unicode="" + horiz-adv-x="448" d=" M383.9 139.7L407.8 202.3C411.8 212.8 404.1 224 392.8 224H334.3C345.3 242.9 352.1 264.6 352.1 288V288.3C391.3 296.1 416.1 307.4 416.1 320C416.1 333.3 388.8 345.1 346 353C336.8 385.8 319 418.8 305.4 435.8C295.9 447.7 279.5 451.4 265.9 444.6L238.3 430.8C229.3 426.3 218.7 426.3 209.7 430.8L182.1 444.6C168.5 451.4 152.1 447.7 142.6 435.8C129.1 418.8 111.2 385.8 102 353C59.3 345.1 32 333.3 32 320C32 307.4 56.8 296.1 96 288.3V288C96 264.6 102.8 242.9 113.8 224H56.3C44.8 224 37.1 212.3 41.6 201.7L67.4 141.5C27.3 118.2 0 75.3 0 25.6V-19.2C0 -43.9 20.1 -64 44.8 -64H403.2C427.9 -64 448 -43.9 448 -19.2V25.6C448 74 422.2 116 383.9 139.7000000000001zM176 -32L134.4 160L184 128L208 88L176 -32zM272 -32L240 88L264 128L313.6 160L272 -32zM313.7 266.5C309.8 254.6 306.7 241.9 297.2 233.1C287.1 223.8 249.2 210.7 233.2 258.1C230.4 266.5 217.8 266.5 214.9 258.1C197.9 207.9 158.9 225.7 150.9 233.1C141.4 241.9 138.2 254.6 134.4 266.5C133.6 269 128.1 272.2 128.1 272.3V283.1C156.4 279.5 189.1 277.3 224.1 277.3S291.8 279.4 320.1 283.1V272.3C320 272.2000000000001 314.5 269.1 313.7 266.5z" /> + <glyph glyph-name="user-shield" + unicode="" + horiz-adv-x="640" d=" M622.3 176.9L507.1 221.9C502.9999999999999 223.5 494.4999999999999 225.6 484.9 221.9L369.7 176.9C359 172.7 352 162.9 352 152C352 40.4 420.7 -36.8 484.9 -61.9C494.5 -65.6 502.9 -63.5 507.1 -61.9C558.4 -41.9 640 27.5 640 152C640 162.9 633 172.7 622.3 176.9zM496 -14.4V174.7L591.5 137.4C585.9 50.3 530.6 2 496 -14.4zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM320 152C320 154.5 320.8 156.8 321.1 159.2C318.6 159.3 316.2000000000001 160 313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C406.8 -64 413.3 -62.5 419.2 -60C365.2 -17.1 320 56.7 320 152z" /> + <glyph glyph-name="user-slash" + unicode="" + horiz-adv-x="640" d=" M633.8 -10.1L362.3 199.7C412.1 217.3 448 264.2 448 320C448 390.7 390.7 448 320 448C252.9 448 198.5 396.2 193.1 330.6L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L594.6 -60.5C601.6 -65.9 611.6 -64.7 617.1 -57.7L636.7 -32.4C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1zM96 25.6V-16C96 -42.5 117.5 -64 144 -64H494.2L207.4 157.7C144.2 146.7 96 92 96 25.6z" /> + <glyph glyph-name="user-tag" + unicode="" + horiz-adv-x="640" d=" M630.6 83.1L540.3000000000001 173.3C528.3000000000001 185.3 512.0000000000001 192 495.0000000000001 192H415.7000000000001C398.0000000000001 192 383.7000000000001 177.7 383.7000000000001 160V80.8C383.7000000000001 63.8 390.4000000000001 47.6 402.4000000000001 35.6L492.7 -54.6C505.2 -67.0999999999999 525.5 -67.0999999999999 538 -54.6L630.5 37.9C643.1 50.4 643.1 70.6 630.6 83.1zM447.8 104.1C434.5 104.1 423.8 114.8 423.8 128.1S434.5 152.1 447.8 152.1S471.8 141.4 471.8 128.1C471.8 114.9 461.1 104.1 447.8 104.1zM224 192.1C294.7 192.1 352 249.4000000000001 352 320.1C352 390.7 294.7 448 224 448S96 390.7 96 320C96 249.4 153.3 192.1 224 192.1zM351.8 80.9V154C339.6 157.6 326.9000000000001 160.2 313.6 160.2H296.9000000000001C274.7000000000001 150 250.0000000000001 144.2 224 144.2S173.4 150 151.1 160.2H134.4C60.2 160.1 0 99.9 0 25.7V-15.9C0 -42.4 21.5 -63.9 48 -63.9H400C415.5 -63.9 429.1 -56.4 437.9 -45.0000000000001L379.9 12.9999999999999C361.8 31.1 351.8 55.1999999999999 351.8 80.9z" /> + <glyph glyph-name="user-tie" + unicode="" + horiz-adv-x="448" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM319.8 159.4L272 -32L240 104L272 160H176L208 104L176 -32L128.2 159.4C56.9 156 0 97.7 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 97.7000000000001 391.1 156 319.8 159.4z" /> + <glyph glyph-name="user-times" + unicode="" + horiz-adv-x="640" d=" M589.6 208L635.2 253.6C641.5 259.9 641.5 270.1 635.2 276.4L612.4000000000001 299.2000000000001C606.1000000000001 305.5 595.9000000000001 305.5 589.6000000000001 299.2000000000001L544 253.6L498.4 299.2C492.1 305.5 481.9 305.5 475.6 299.2L452.8 276.4C446.5 270.1 446.5 259.9 452.8 253.6L498.4 208L452.8 162.4C446.5 156.1 446.5 145.9 452.8 139.6L475.6 116.8C481.9 110.4999999999999 492.1 110.4999999999999 498.4 116.8L544 162.4L589.6 116.8C595.9 110.4999999999999 606.1 110.4999999999999 612.4 116.8L635.1999999999999 139.6C641.4999999999999 145.9 641.4999999999999 156.1 635.1999999999999 162.4L589.6 208zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160z" /> + <glyph glyph-name="user" + unicode="" + horiz-adv-x="448" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160z" /> + <glyph glyph-name="users-cog" + unicode="" + horiz-adv-x="640" d=" M610.5 106.7C613.1 120.8 613.1 135.2 610.5 149.3L636.3 164.2C639.3 165.9 640.5999999999999 169.4 639.5999999999999 172.7C632.8999999999999 194.3 621.3999999999999 213.9 606.3999999999999 230.1C604.0999999999999 232.6 600.3999999999999 233.2 597.3999999999999 231.5L571.5999999999999 216.6C560.6999999999999 225.9 548.1999999999999 233.1 534.6999999999999 237.9V267.7000000000001C534.6999999999999 271.1 532.3 274.1 528.9999999999999 274.8C506.6999999999999 279.8 483.9999999999999 279.6 462.7999999999999 274.8C459.4999999999999 274.1 457.0999999999999 271.1 457.0999999999999 267.7000000000001V237.9C443.5999999999999 233.1 431.0999999999999 225.9 420.2 216.6L394.3999999999999 231.5C391.5 233.2 387.7 232.6 385.3999999999999 230.1C370.3999999999999 213.9 358.8999999999999 194.3 352.2 172.7C351.2 169.4 352.5999999999999 165.9 355.5 164.2L381.3 149.3C378.7 135.2 378.7 120.8 381.3 106.7L355.5 91.8C352.5 90.1 351.2 86.6 352.2 83.3C358.8999999999999 61.7 370.3999999999999 42.2 385.3999999999999 25.9C387.7 23.4 391.3999999999999 22.8 394.3999999999999 24.5000000000001L420.2 39.4C431.0999999999999 30.1 443.5999999999999 22.9 457.0999999999999 18.1V-11.7C457.0999999999999 -15.1 459.4999999999999 -18.1 462.7999999999999 -18.8C485.0999999999999 -23.8 507.7999999999999 -23.6 528.9999999999999 -18.8C532.2999999999998 -18.1 534.6999999999999 -15.1 534.6999999999999 -11.7V18.1C548.1999999999999 22.9 560.6999999999999 30.1 571.5999999999999 39.4L597.3999999999999 24.5000000000001C600.2999999999998 22.8000000000001 604.0999999999999 23.4 606.3999999999999 25.9C621.3999999999999 42.1 632.8999999999999 61.7000000000001 639.5999999999999 83.3C640.5999999999999 86.6 639.1999999999999 90.1 636.3 91.8L610.5 106.7zM496 79.5C469.2 79.5 447.5 101.3 447.5 128S469.3 176.5 496 176.5S544.5 154.7 544.5 128S522.8 79.5 496 79.5zM96 224C131.3 224 160 252.7 160 288S131.3 352 96 352S32 323.3 32 288S60.7 224 96 224zM320 192C321.9 192 323.7 192.5 325.6 192.6C333.9000000000001 214.3 346.1 234.7 361.9000000000001 251.8C369.3 259.8 379.8 264.4 390.8 264.4C397.7 264.4 404.5 262.6 410.4000000000001 259.1L418.3 254.5C419.1 255 419.9000000000001 255.4 420.7 255.9C427.7 270.5 431.9 286.7000000000001 431.9 303.9C431.9 365.8 381.8 415.9 319.9 415.9S208 365.9 208 304C208 242.1 258.1 192 320 192zM425.2 -2.5C422.9 -1.3 420.6 0.1 418.4 1.4C410.2 -3.4 403.1 -8.4 390.9 -8.4C380 -8.4 369.5 -3.8 362 4.2C343.7 24 329.7 48.1 321.8 73.8C311.1 108.3 346.7 123.5 347.6 124.1C347.5 126.7 347.5 129.3 347.6 131.9L339.7000000000001 136.5C335.9000000000001 138.7 332.7000000000001 141.5 329.9000000000001 144.6C326.6 144.4 323.4000000000001 144 320.1 144C295.5 144 272.5 150 251.6 160H243.3C179.6 160 128 108.4 128 44.8V16C128 -10.5 149.5 -32 176 -32H431.4C427.7 -26 425.2 -19.2 425.2 -11.7V-2.5zM173.1 173.4C161.5 184.9 145.6 192 128 192H64C28.7 192 0 163.3 0 128V96C0 78.3 14.3 64 32 64H97.9C104.2 111.4 132.8 151.3 173.1 173.4z" /> + <glyph glyph-name="users" + unicode="" + horiz-adv-x="640" d=" M96 224C131.3 224 160 252.7 160 288S131.3 352 96 352S32 323.3 32 288S60.7 224 96 224zM544 224C579.3 224 608 252.7 608 288S579.3 352 544 352S480 323.3 480 288S508.7 224 544 224zM576 192H512C494.4 192 478.5 184.9 466.9 173.4C507.2 151.3 535.8 111.4 542 64H608C625.7 64 640 78.3 640 96V128C640 163.3 611.3 192 576 192zM320 192C381.9 192 432 242.1 432 304S381.9 416 320 416S208 365.9 208 304S258.1 192 320 192zM396.8 160H388.5C367.7 150 344.6 144 320 144S272.4 150 251.5 160H243.2C179.6 160 128 108.4 128 44.8V16C128 -10.5 149.5 -32 176 -32H464C490.5 -32 512 -10.5 512 16V44.8C512 108.4 460.4 160 396.8 160zM173.1 173.4C161.5 184.9 145.6 192 128 192H64C28.7 192 0 163.3 0 128V96C0 78.3 14.3 64 32 64H97.9C104.2 111.4 132.8 151.3 173.1 173.4z" /> + <glyph glyph-name="utensil-spoon" + unicode="" + horiz-adv-x="512" d=" M480.1 416.1C425.1 471.2 315.2000000000001 450.6 252.3 387.6C203 338.3 197.2 277.6 223.5 227.2L9 34.8C-2.6 24.3 -3.1 6.3 8 -4.7L59.3 -56C70.3 -67 88.4 -66.5 98.8 -54.9L291.2 159.5C341.6 133.2 402.3 139 451.6 188.3C514.6 251.2 535.2 361.1 480.1 416.1z" /> + <glyph glyph-name="utensils" + unicode="" + horiz-adv-x="416" d=" M207.9 432.8C208.7 428.1 224 338.3 224 304C224 251.7 196.2 214.4 155.1 199.4L168 -38.7C168.7 -52.4 157.8 -64 144 -64H80C66.3 -64 55.3 -52.5 56 -38.7L68.9 199.4C27.7 214.4 0 251.8 0 304C0 338.4 15.3 428.1 16.1 432.8C19.3 453.1 61.4 453.4 64 431.7V290.5C65.3 287.1 79.1 287.3 80 290.5C81.4 315.8 87.9 429.7 88 432.3C91.3 453.1 132.7 453.1 135.9 432.3C136.1 429.6 142.5 315.8 143.9 290.5C144.8 287.3 158.7 287.1 159.9 290.5V431.7C162.5 453.3 204.7 453.1 207.9 432.8zM327.1 147.1L312.1 -38C310.9000000000001 -52 322 -64 336 -64H392C405.3 -64 416 -53.3 416 -40V424C416 437.2 405.3 448 392 448C309.5 448 170.6 269.5 327.1 147.1z" /> + <glyph glyph-name="vector-square" + unicode="" + horiz-adv-x="512" d=" M512 320V416C512 433.67 497.67 448 480 448H384C366.33 448 352 433.67 352 416H160C160 433.67 145.67 448 128 448H32C14.33 448 0 433.67 0 416V320C0 302.33 14.33 288 32 288V96C14.33 96 0 81.67 0 64V-32C0 -49.67 14.33 -64 32 -64H128C145.67 -64 160 -49.67 160 -32H352C352 -49.67 366.33 -64 384 -64H480C497.67 -64 512 -49.67 512 -32V64C512 81.67 497.67 96 480 96V288C497.67 288 512 302.3300000000001 512 320zM416 384H448V352H416V384zM64 384H96V352H64V384zM96 0H64V32H96V0zM448 0H416V32H448V0zM416 96H384C366.33 96 352 81.67 352 64V32H160V64C160 81.67 145.67 96 128 96H96V288H128C145.67 288 160 302.3300000000001 160 320V352H352V320C352 302.33 366.33 288 384 288H416V96z" /> + <glyph glyph-name="venus-double" + unicode="" + horiz-adv-x="512" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V80H76C69.4 80 64 74.6 64 68V28C64 21.4 69.4 16 76 16H112V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V16H212C218.6 16 224 21.4 224 28V68C224 74.6 218.6 80 212 80H176V131.6C240.1 146.1 288 203.5 288 272zM64 272C64 316.1 99.9 352 144 352S224 316.1 224 272S188.1 192 144 192S64 227.9 64 272zM400 131.6V80H436C442.6 80 448 74.6 448 68V28C448 21.4 442.6 16 436 16H400V-20C400 -26.6 394.6 -32 388 -32H348C341.4 -32 336 -26.6 336 -20V16H300C293.4 16 288 21.4 288 28V68C288 74.6 293.4 80 300 80H336V131.6C314.8 136.4 295.4 145.9 278.8 158.9C292.8 175.6 303.8 194.9 310.9000000000001 216C325.4000000000001 201.2 345.6 192 368.0000000000001 192C412.1000000000001 192 448.0000000000001 227.9000000000001 448.0000000000001 272S412.1000000000001 352 368.0000000000001 352C345.7000000000001 352 325.4000000000001 342.8 310.9000000000001 328C303.8 349.1 292.9000000000001 368.4000000000001 278.8 385.1C303.4 404.4 334.3 416 368 416C447.5 416 512 351.5 512 272C512 203.5 464.1 146.1 400 131.6z" /> + <glyph glyph-name="venus-mars" + unicode="" + horiz-adv-x="576" d=" M564 448H485C474.3 448 469 435.1 476.5 427.5L493.4 410.6L444.7 361.9C422.5 375.9 396.2 384 368 384C334.3 384 303.4 372.4 278.8 353.1C292.8 336.4 303.8 317.1 310.9000000000001 296C325.4000000000001 310.8 345.6 320 368.0000000000001 320C412.1000000000001 320 448.0000000000001 284.1 448.0000000000001 240S412.1000000000001 160 368.0000000000001 160C345.7000000000001 160 325.4000000000001 169.2 310.9000000000001 184C303.8 162.9 292.9000000000001 143.6 278.8 126.9C303.3 107.5 334.3 96 368 96C447.5 96 512 160.5 512 240C512 268.2 503.9 294.5 489.9 316.7L538.6 365.4L555.5 348.5C557.9 346.1 560.9 345 563.9 345C570.1 345 576 349.8 576 357V436C576 442.6 570.6 448 564 448zM144 384C64.5 384 0 319.5 0 240C0 171.5 47.9 114.1 112 99.6V48H76C69.4 48 64 42.6 64 36V-4C64 -10.6 69.4 -16 76 -16H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-16H212C218.6 -16 224 -10.6 224 -4V36C224 42.6 218.6 48 212 48H176V99.6C240.1 114.2000000000001 288 171.5 288 240.0000000000001C288 319.5 223.5 384 144 384zM144 160C99.9 160 64 195.9 64 240S99.9 320 144 320S224 284.1 224 240S188.1 160 144 160z" /> + <glyph glyph-name="venus" + unicode="" + horiz-adv-x="288" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V80H76C69.4 80 64 74.6 64 68V28C64 21.4 69.4 16 76 16H112V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V16H212C218.6 16 224 21.4 224 28V68C224 74.6 218.6 80 212 80H176V131.6C240.1 146.1 288 203.5 288 272zM64 272C64 316.1 99.9 352 144 352S224 316.1 224 272S188.1 192 144 192S64 227.9 64 272z" /> + <glyph glyph-name="vial" + unicode="" + horiz-adv-x="480" d=" M477.7 261.9L309.5 429.7C306.4 432.8 301.3 432.8 298.2 429.7L264.2 395.8C261.1 392.7 261.1 387.6 264.2 384.5L275.4 373.4L33 131.5C-5.8 92.8 -12.1 29.5 23.6 -12C44.2 -36 73.1 -48 102 -47.9C128.4 -47.9 154.8 -37.9 174.9 -17.8L421.2000000000001 227.9000000000001L432.4000000000001 216.8000000000001C435.5000000000001 213.7000000000001 440.6 213.7000000000001 443.7000000000001 216.8000000000001L477.7 250.7000000000001C480.8000000000001 253.7000000000001 480.8000000000001 258.8000000000001 477.7 261.9000000000001zM318 192H161L309 339.7L387.5 261.4L318 192z" /> + <glyph glyph-name="vials" + unicode="" + horiz-adv-x="640" d=" M72 384H96V144C96 99.9 131.9 64 176 64S256 99.9 256 144V384H280C284.4 384 288 387.6 288 392V440C288 444.4 284.4 448 280 448H72C67.6 448 64 444.4 64 440V392C64 387.6 67.6 384 72 384zM144 384H208V288H144V384zM624 0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H624C632.8 -64 640 -56.8 640 -48V-16C640 -7.2 632.8 0 624 0zM360 384H384V144C384 99.9 419.9 64 464 64S544 99.9 544 144V384H568C572.4 384 576 387.6 576 392V440C576 444.4 572.4 448 568 448H360C355.6 448 352 444.4 352 440V392C352 387.6 355.6 384 360 384zM432 384H496V288H432V384z" /> + <glyph glyph-name="video-slash" + unicode="" + horiz-adv-x="640" d=" M633.8 -10.1L578.8 32.4C594.1999999999999 33.8 608 46.1 608 63.5V320.5C608 346 578.9 360.9 557.6 346.3L448 270.7V133.5L416 158.2V336.2C416 362.6 394.6 384 368.2 384H123.9L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L42.7 366L416 77.4L594.5 -60.6C601.5 -66 611.5 -64.8000000000001 617 -57.8L636.6 -32.5C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1zM32 47.8C32 21.4 53.4 0 79.8 0H368.2C379.4 0 389.6 4 397.8 10.5L32 293.3V47.8z" /> + <glyph glyph-name="video" + unicode="" + horiz-adv-x="576" d=" M336.2 384H47.8C21.4 384 0 362.6 0 336.2V47.8C0 21.4 21.4 0 47.8 0H336.2C362.6 0 384 21.4 384 47.8V336.2C384 362.6 362.6 384 336.2 384zM525.6 346.3L416 270.7V113.3L525.6 37.8C546.8000000000001 23.1999999999999 576 38.1 576 63.6V320.5C576 345.9 546.9 360.9 525.6 346.3z" /> + <glyph glyph-name="vihara" + unicode="" + horiz-adv-x="640" d=" M632.88 47.29L544 96V160L599.16 177.69C610.9499999999999 183.59 610.9499999999999 200.41 599.16 206.31L480 256V320L507.31 336.3C515.03 344.02 512.92 357.04 503.15 361.92L320 448L136.85 361.93C127.08 357.05 124.97 344.03 132.69 336.31L160 320V256L40.84 206.31C29.05 200.41 29.05 183.59 40.84 177.69L96 160V96L7.12 47.29C1.7 43.67 -0.58 37.66 0.12 32C0.74 26.99 3.69 22.25 8.84 19.67L64 0V-48C64 -56.84 71.16 -64 80 -64H112C120.84 -64 128 -56.84 128 -48V0H288V-48C288 -56.84 295.1600000000001 -64 304 -64H336C344.84 -64 352 -56.84 352 -48V0H512V-48C512 -56.84 519.16 -64 528 -64H560C568.84 -64 576 -56.84 576 -48V0L631.15 19.67C636.31 22.25 639.25 26.99 639.87 32C640.58 37.67 638.3 43.68 632.88 47.29zM224 320H416V256H224V320zM160 96V160H480V96H160z" /> + <glyph glyph-name="volleyball-ball" + unicode="" + horiz-adv-x="495.9" d=" M223.3 204.6C222.4 241.6 214.7 277.4 200.6 310.3C109.8 267.9 43.1 187.9 20.3 93.5C33.7 62.7 53.2 35.2 77.2 12.4C99.9 91.6 151.4 160.2 223.3 204.6zM186.4 339C171.4 365.4 151.9 389.1 129 409.7C38 359.9 -15.8 256.8 4 147.5C37.4 230.6 102.4 299.5 186.4 339zM374 173.9C382.6 273.7 346.7 371.4 276.5 438.3C261.8 440 224.9 443.8 177.6 429.8C234.9 370.5 268.6 291.6 271.1 207.1C303.6 189.4 338.4000000000001 178.1 374 173.9zM249.3 164.4C217.7 145.1 190.6 120.5 169.1 91.8C251.1 34.4999999999999 353.6 16.6999999999999 446.6 43.9999999999999C466.3 70.3999999999999 480.8 100.8 488.8 133.9C462.2 127.3 435.1 123.5 407.9 123.5C353.3 123.6 299 137.6 249.3 164.4zM151 64.7C135.8 38.7 125.3 10.3 118.9 -19.5C156.5 -42.5 200.6 -56 248 -56C309 -56 364.7 -33.9 407.9 2.6C295 -13.5 204.6 27.4 151 64.7zM331.3 425.3C386.6 354.9 413.8 264.1 405.9 171.7C436.2 171.5 466.4 176.5 495.6 185.9C495.6 187.9 495.9 189.9 495.9 191.9C495.9 299.7 427.2 391 331.3 425.3z" /> + <glyph glyph-name="volume-down" + unicode="" + horiz-adv-x="384" d=" M215.03 375.96L126.06 287H24C10.74 287 0 276.26 0 263V119C0 105.75 10.74 95 24 95H126.06L215.03 6.05C230.06 -8.98 256 1.58 256 23.02V358.98C256 380.45 230.04 390.9600000000001 215.03 375.9600000000001zM338.23 267.88C326.6500000000001 274.2100000000001 312.04 270.04 305.62 258.43C299.23 246.82 303.46 232.23 315.07 225.82C327.98 218.72 336 205.38 336 191C336 176.62 327.98 163.28 315.08 156.19C303.47 149.78 299.24 135.19 305.63 123.58C312.06 111.92 326.68 107.78 338.24 114.13C366.4700000000001 129.68 384.01 159.13 384.01 191.01S366.47 252.33 338.23 267.88z" /> + <glyph glyph-name="volume-off" + unicode="" + horiz-adv-x="257.33" d=" M216.36 376.96L127.39 288H25.33C12.07 288 1.33 277.26 1.33 264V120C1.33 106.75 12.07 96 25.33 96H127.39L216.36 7.05C231.39 -7.98 257.3300000000001 2.58 257.3300000000001 24.02V359.98C257.3300000000001 381.45 231.3700000000001 391.9600000000001 216.3600000000001 376.9600000000001z" /> + <glyph glyph-name="volume-up" + unicode="" + horiz-adv-x="576" d=" M215.03 376.95L126.06 288H24C10.74 288 0 277.26 0 264V120C0 106.75 10.74 96 24 96H126.06L215.03 7.05C230.06 -7.98 256 2.58 256 24.02V359.98C256 381.44 230.04 391.9600000000001 215.03 376.95zM448.35 428.03C437.18 435.36 422.17 432.27 414.8400000000001 421.08C407.5000000000001 409.9100000000001 410.62 394.9 421.79 387.57C488.06 344.0800000000001 527.61 270.9700000000001 527.61 191.99C527.61 113.01 488.06 39.9 421.79 -3.59C410.62 -10.91 407.5 -25.93 414.8400000000001 -37.09C421.8800000000001 -47.8 436.7700000000001 -51.65 448.35 -44.04C528.27 8.42 576 96.67 576 192S528.27 375.57 448.35 428.03zM480 192C480 255.53 447.94 313.94 394.23 348.24C383.04 355.38 368.2000000000001 352.06 361.11 340.7800000000001S357.3300000000001 314.5700000000001 368.5200000000001 307.42C408.27 282.03 432 238.89 432 192S408.27 101.97 368.52 76.58C357.33 69.44 354.02 54.51 361.11 43.22C367.62 32.86 382.23 28.08 394.23 35.76C447.94 70.06 480 128.46 480 192zM338.23 268.87C326.6500000000001 275.2000000000001 312.04 271.03 305.62 259.42C299.23 247.81 303.46 233.2200000000001 315.07 226.81C327.98 219.72 336 206.37 336 192C336 177.62 327.98 164.28 315.08 157.19C303.47 150.78 299.24 136.19 305.63 124.58C312.06 112.92 326.68 108.78 338.24 115.13C366.4700000000001 130.68 384.01 160.13 384.01 192.01S366.47 253.33 338.23 268.87z" /> + <glyph glyph-name="walking" + unicode="" + horiz-adv-x="320" d=" M208 352C234.5 352 256 373.5 256 400S234.5 448 208 448S160 426.5 160 400S181.5 352 208 352zM302.5 202.9L279.2 214.7L269.5 244.1C254.8 288.7000000000001 213.8 319.9000000000001 167.3 320C131.3 320.1 111.4 309.9000000000001 74 294.8000000000001C52.4 286.1 34.7 269.6 24.3 248.6L17.6 235C9.8 219.2 16.1 200 31.8 192.1C47.4 184.2 66.4 190.6 74.3 206.4L81 220C84.5 227 90.3 232.5 97.5 235.4L124.3 246.2L109.1 185.5C103.9 164.7 109.5 142.6 124 126.7L183.9 61.3C191.1 53.4 196.2 43.9 198.8 33.6L217.1 -39.7C221.4 -56.8000000000001 238.8 -67.3000000000001 255.9000000000001 -63.0000000000001C273.0000000000001 -58.7 283.5000000000001 -41.3000000000001 279.2000000000001 -24.2L257.0000000000001 64.8C254.4000000000001 75.1 249.3000000000001 84.6999999999999 242.1000000000001 92.4999999999999L196.6000000000001 142.1999999999999L213.8000000000001 210.8999999999999L219.3000000000001 194.3999999999999C224.6000000000001 178.2999999999999 236.0000000000001 165 251.0000000000001 157.3999999999999L274.3 145.5999999999999C289.9000000000001 137.6999999999999 308.9000000000001 144.0999999999999 316.8 159.8999999999999C324.5 175.5999999999999 318.2 194.9999999999999 302.5 202.8999999999999zM73.6 62.2C70.4 54.1 65.6 46.8 59.4 40.7L9.4 -9.4C-3.1 -21.9 -3.1 -42.2 9.4 -54.7S42.1 -67.2 54.6 -54.7L114 4.6999999999999C120.1 10.8 124.9 18.0999999999999 128.2 26.1999999999999L141.7 59.9999999999999C86.4 120.3 103 101.8 94.3 113.6999999999999L73.6 62.1999999999999z" /> + <glyph glyph-name="wallet" + unicode="" + horiz-adv-x="512" d=" M461.2 320H80C71.16 320 64 327.16 64 336S71.16 352 80 352H464C472.84 352 480 359.16 480 368C480 394.51 458.51 416 432 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H461.2C489.22 -32 512 -10.47 512 16V272C512 298.4700000000001 489.22 320 461.2 320zM416 112C398.33 112 384 126.33 384 144S398.33 176 416 176S448 161.67 448 144S433.67 112 416 112z" /> + <glyph glyph-name="warehouse" + unicode="" + horiz-adv-x="640" d=" M504 96H136.4C132 96 128.4 92.4 128.4 88L128.3 40C128.3 35.6 131.9 32 136.3 32H504C508.4 32 512 35.6 512 40V88C512 92.4 508.4 96 504 96zM504 0H136.1C131.7 0 128.1 -3.6 128.1 -8L128 -56C128 -60.4 131.6 -64 136 -64H504C508.4 -64 512 -60.4 512 -56V-8C512 -3.6 508.4 0 504 0zM504 192H136.6C132.2 192 128.6 188.4 128.6 184L128.5 136C128.5 131.6 132.1 128 136.5 128H504C508.4 128 512 131.6 512 136V184C512 188.4 508.4 192 504 192zM610.5 331L338.4 444.3A48.15 48.15 0 0 1 301.5 444.3L29.5 331C11.7 323.5 0 306.1 0 286.7V-56C0 -60.4 3.6 -64 8 -64H88C92.4 -64 96 -60.4 96 -56V192C96 209.6 110.6 224 128.6 224H511.4C529.4 224 544 209.6 544 192V-56C544 -60.4 547.6 -64 552 -64H632C636.4 -64 640 -60.4 640 -56V286.7C640 306.1 628.3 323.5 610.5 331z" /> + <glyph glyph-name="weight-hanging" + unicode="" + horiz-adv-x="512" d=" M510.28 2.14L437.25 294.27C433.45 309.46 420.81 319.99 406.38 319.99H346.13C349.7 330.04 352.01 340.71 352.01 351.99C352.01 405.01 309.03 447.99 256.01 447.99S160.01 405.01 160.01 351.99C160.01 340.71 162.31 330.04 165.89 319.99H105.64C91.21 319.99 78.56 309.45 74.77 294.27L1.72 2.14C-6.61 -31.17 16.38 -64 48.03 -64H463.98C495.62 -64 518.61 -31.17 510.28 2.14zM256 320C238.36 320 224 334.36 224 352S238.36 384 256 384S288 369.64 288 352S273.64 320 256 320z" /> + <glyph glyph-name="weight" + unicode="" + horiz-adv-x="512" d=" M448 384H422.02C438.44 355.7200000000001 448 322.99 448 288C448 182.13 361.87 96 256 96S64 182.13 64 288C64 322.99 73.56 355.7200000000001 89.98 384H64C28.71 384 0 355.29 0 320V0C0 -35.29 28.71 -64 64 -64H448C483.29 -64 512 -35.29 512 0V320C512 355.29 483.29 384 448 384zM256 128C344.37 128 416 199.63 416 288S344.37 448 256 448S96 376.37 96 288S167.63 128 256 128zM255.7 279.94L289.28 358.3C292.78 366.4700000000001 302.22 370.2200000000001 310.31 366.71C318.43 363.23 322.19 353.82 318.72 345.71L285.05 267.16C291.73 260 296 250.55 296 240C296 217.91 278.09 200 256 200S216 217.91 216 240C216 261.98 233.76 279.77 255.7 279.94z" /> + <glyph glyph-name="wheelchair" + unicode="" + horiz-adv-x="512" d=" M496.101 62.331L510.328 33.668C514.257 25.753 511.025 16.152 503.11 12.223L437.645 -20.663C421.596 -28.63 402.089 -21.857 394.456 -5.608L331.679 128H192C176.075 128 162.574 139.71 160.321 155.475C126.433 392.692 128.38 377.956 128 384C128 420.358 158.318 449.635 195.052 447.929C228.3230000000001 446.384 255.1 419.024 255.9770000000001 385.728C256.8450000000001 352.795 232.8250000000001 325.305 201.369 320.689L206.039 287.999H336C344.837 287.999 352 280.836 352 271.999V239.999C352 231.162 344.837 223.999 336 223.999H215.182L219.754 191.999H352A32 32 0 0 0 380.962 173.607L438.477 51.2L474.655 69.549C482.57 73.478 492.172 70.246 496.101 62.331zM311.358 96H286.852C279.064 41.796 232.324 0 176 0C114.243 0 64 50.243 64 112C64 153.505 86.694 189.809 120.324 209.156C116.612 235.121 113.48 257.016 110.836 275.4890000000001C45.956 249.536 0 186.037 0 112C0 14.953 78.953 -64 176 -64C247.87 -64 309.8060000000001 -20.692 337.11 41.192L311.358 96z" /> + <glyph glyph-name="wifi" + unicode="" + horiz-adv-x="640" d=" M634.91 293.12C457.74 456.99 182.19 456.93 5.09 293.12C-1.57 286.9600000000001 -1.7 276.53 4.74 270.14L38.98 236.17C45.12 230.07 55 229.9400000000001 61.38 235.79C207.3 369.4700000000001 432.68 369.5 578.63 235.79C585.01 229.9400000000001 594.89 230.08 601.03 236.17L635.27 270.14C641.6999999999999 276.53 641.5699999999999 286.9600000000001 634.91 293.12zM320 96C284.65 96 256 67.35 256 32S284.65 -32 320 -32S384 -3.35 384 32S355.35 96 320 96zM522.67 179.59C407.41 281.5200000000001 232.46 281.4100000000001 117.33 179.59C110.43 173.49 110.21 162.9 116.76 156.4400000000001L151.2 122.4500000000001C157.2 116.53 166.86 116.1300000000001 173.25 121.65C257.2 194.22 382.99 194.06 466.74 121.65C473.13 116.1300000000001 482.79 116.5200000000001 488.79 122.4500000000001L523.23 156.4400000000001C529.79 162.9 529.5600000000001 173.5000000000001 522.6700000000001 179.59z" /> + <glyph glyph-name="window-close" + unicode="" + horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM380.4 125.5C385.2 120.7 385.2 112.9 380.4 108.1L339.9 67.6C335.1 62.8 327.3 62.8 322.5 67.6L256 134.7L189.5 67.6C184.7 62.8 176.9 62.8 172.1 67.6L131.6 108.1C126.8 112.9 126.8 120.7000000000001 131.6 125.5L198.7 192L131.6 258.5C126.8 263.3 126.8 271.1 131.6 275.9L172.1 316.4C176.9 321.2 184.7 321.2 189.5 316.4L256 249.3L322.5 316.4C327.3 321.2 335.1 321.2 339.9 316.4L380.4 275.9C385.2 271.1 385.2 263.3 380.4 258.5L313.3 192L380.4 125.5z" /> + <glyph glyph-name="window-maximize" + unicode="" + horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM448 256H64V340C64 346.6 69.4 352 76 352H436C442.6 352 448 346.6 448 340V256z" /> + <glyph glyph-name="window-minimize" + unicode="" + horiz-adv-x="512" d=" M464 96H48C21.5 96 0 74.5 0 48V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V48C512 74.5 490.5 96 464 96z" /> + <glyph glyph-name="window-restore" + unicode="" + horiz-adv-x="512" d=" M512 400V112C512 85.5 490.5 64 464 64H416V272C416 316.1 380.1 352 336 352H128V400C128 426.5 149.5 448 176 448H464C490.5 448 512 426.5 512 400zM384 272V-16C384 -42.5 362.5 -64 336 -64H48C21.5 -64 0 -42.5 0 -16V272C0 298.5 21.5 320 48 320H336C362.5 320 384 298.5 384 272zM316 244C316 250.6 310.6 256 304 256H76C69.4 256 64 250.6 64 244V192H316V244z" /> + <glyph glyph-name="wine-glass-alt" + unicode="" + horiz-adv-x="288" d=" M216 -16H176V101.19C244.47 117.08 294.05 181.1 287.4 255.35L271.45 433.45C270.71 441.69 263.9 448 255.74 448H32.26C24.11 448 17.29 441.69 16.56 433.45L0.6 255.34C-6.05 181.09 43.53 117.07 112 101.18V-16H72C49.91 -16 32 -33.91 32 -56C32 -60.42 35.58 -64 40 -64H248C252.42 -64 256 -60.42 256 -56C256 -33.91 238.09 -16 216 -16zM61.75 400H226.25L233.42 320H54.58L61.75 400z" /> + <glyph glyph-name="wine-glass" + unicode="" + horiz-adv-x="288" d=" M216 -16H176V101.19C244.47 117.08 294.05 181.1 287.4 255.35L271.45 433.45C270.71 441.69 263.9 448 255.74 448H32.26C24.11 448 17.29 441.69 16.56 433.45L0.6 255.34C-6.05 181.09 43.53 117.07 112 101.18V-16H72C49.91 -16 32 -33.91 32 -56C32 -60.42 35.58 -64 40 -64H248C252.42 -64 256 -60.42 256 -56C256 -33.91 238.09 -16 216 -16z" /> + <glyph glyph-name="won-sign" + unicode="" + horiz-adv-x="576" d=" M564 256C570.627 256 576 261.373 576 268V308C576 314.627 570.627 320 564 320H515.972L534.544 400.61C536.276 408.128 530.566 415.304 522.851 415.304H476.744A11.998 11.998 0 0 1 465.008 405.804L450.73 320H340.839L321.114 405.987A12 12 0 0 1 309.418 415.304H265.43A12 12 0 0 1 253.743 406.027L233.696 320H124.975L107.5 405.701A12 12 0 0 1 95.742 415.303H53.628C45.942 415.303 40.238 408.179 41.919 400.679L60 320H12C5.373 320 0 314.627 0 308V268C0 261.373 5.373 256 12 256H74.342L81.513 224H12C5.373 224 0 218.627 0 212V172C0 165.373 5.373 160 12 160H95.856L136.783 -22.624A12 12 0 0 1 148.492 -32H205.259C210.842 -32 215.687 -28.15 216.948 -22.712L259.335 160H314.421L356.807 -22.712A12 12 0 0 1 368.496 -32H425.322A12 12 0 0 1 437.016 -22.694L479.108 160H564C570.627 160 576 165.373 576 172V212C576 218.627 570.627 224 564 224H493.854L501.227 256H564zM138.024 256H218.781L211.324 224H144.548L138.024 256zM183.82 105.971C177.626 80.14 177.062 58.721 176.499 58.721H175.373S173.684 80.771 168.615 105.971L157.599 160H196.411L183.82 105.971zM274.182 224L276.178 232.602C278.034 240.564 279.635 248.57 280.981 256H292.775C294.122 248.57 295.722 240.564 297.578 232.602L299.574 224H274.182zM405.141 105.971C400.0730000000001 80.771 398.3830000000001 58.721 398.3830000000001 58.721H397.2570000000001C396.6940000000001 58.721 396.1310000000001 80.141 389.9360000000001 105.971L377.542 160H416.649L405.141 105.971zM430.281 224H362.861L355.521 256H437.098L430.281 224z" /> + <glyph glyph-name="wrench" + unicode="" + horiz-adv-x="512" d=" M507.73 338.9C505.49 347.93 494.19 350.99 487.61 344.4100000000001L413.25 270.05L345.37 281.36L334.06 349.24L408.42 423.6C415.04 430.2200000000001 411.85 441.5 402.76 443.76C355.38 455.5 303.21 442.85 266.18 405.8300000000001C226.54 366.19 215.63 308.73 232.13 258.63L18.74 45.24C-6.25 20.25 -6.25 -20.27 18.74 -45.26C43.73 -70.25 84.25 -70.25 109.24 -45.26L322.45 167.9500000000001C372.57 151.2400000000001 429.92 162.2700000000001 469.82 202.1700000000001C506.89 239.2400000000001 519.52 291.49 507.73 338.9000000000001zM64 -24C50.75 -24 40 -13.25 40 0C40 13.26 50.75 24 64 24S88 13.26 88 0C88 -13.25 77.25 -24 64 -24z" /> + <glyph glyph-name="x-ray" + unicode="" + horiz-adv-x="640" d=" M240 64C231.2 64 224 56.8 224 48S231.2 32 240 32S256 39.2 256 48S248.8 64 240 64zM400 32C408.8 32 416 39.2 416 48S408.8 64 400 64S384 56.8 384 48S391.2 32 400 32zM624 448H16C7.2 448 0 440.8 0 432V400C0 391.2 7.2 384 16 384H624C632.8 384 640 391.2 640 400V432C640 440.8 632.8 448 624 448zM624 0H576V352H64V0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H624C632.8 -64 640 -56.8 640 -48V-16C640 -7.2 632.8 0 624 0zM480 200C480 195.6 476.4 192 472 192H336V160H440C444.4 160 448 156.4 448 152V136C448 131.6 444.4 128 440 128H336V96H400C426.5 96 448 74.5 448 48S426.5 0 400 0S352 21.5 352 48V64H288V48C288 21.5 266.5 0 240 0S192 21.5 192 48S213.5 96 240 96H304V128H200C195.6 128 192 131.6 192 136V152C192 156.4 195.6 160 200 160H304V192H168C163.6 192 160 195.6 160 200V216C160 220.4 163.6 224 168 224H304V256H200C195.6 256 192 259.6 192 264V280C192 284.4 195.6 288 200 288H304V312C304 316.4 307.6 320 312 320H328C332.4 320 336 316.4 336 312V288H440C444.4 288 448 284.4 448 280V264C448 259.6 444.4 256 440 256H336V224H472C476.4 224 480 220.4 480 216V200z" /> + <glyph glyph-name="yen-sign" + unicode="" + horiz-adv-x="384" d=" M351.2080000000001 416H285.9310000000001A12 12 0 0 1 275.153 409.276L219.763 296.113C205.25 261.409 192.63 224.181 192.63 224.181H191.368S178.748 261.409 164.235 296.113L108.845 409.276A11.997 11.997 0 0 1 98.068 416H32.792C23.735 416 17.942 406.35 22.202 398.357L102.322 248H44C37.373 248 32 242.627 32 236V204C32 197.373 37.373 192 44 192H132.162L152 154.772V128H44C37.373 128 32 122.627 32 116V84C32 77.373 37.373 72 44 72H152V-20C152 -26.627 157.373 -32 164 -32H220C226.627 -32 232 -26.627 232 -20V72H340C346.627 72 352 77.373 352 84V116C352 122.627 346.627 128 340 128H232V154.772L251.838 192H340C346.627 192 352 197.373 352 204V236C352 242.627 346.627 248 340 248H281.678L361.798 398.357C366.058 406.35 360.266 416 351.2080000000001 416z" /> + <glyph glyph-name="yin-yang" + unicode="" + horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 64C230.33 64 216 78.33 216 96S230.33 128 248 128S280 113.67 280 96S265.67 64 248 64zM248 192C194.98 192 152 149.02 152 96S194.98 0 248 0C141.96 0 56 85.96 56 192S141.96 384 248 384C301.02 384 344 341.02 344 288S301.02 192 248 192zM248 320C230.33 320 216 305.67 216 288S230.33 256 248 256S280 270.3300000000001 280 288S265.67 320 248 320z" /> + </font> +</defs> +</svg> diff --git a/website/agenda/planung/webfonts/fa-solid-900.ttf b/website/agenda/planung/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2a05512698c686d42e010ac9988efa86d10cdd22 GIT binary patch literal 180500 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∋Fnr2kU|@R6!0@RM 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 GFaQANErQtq literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-solid-900.woff b/website/agenda/planung/webfonts/fa-solid-900.woff new file mode 100644 index 0000000000000000000000000000000000000000..839528cca03223e0ffa395073755a7cfb93917be GIT binary patch literal 86876 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 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/webfonts/fa-solid-900.woff2 b/website/agenda/planung/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3aae386a623d78bda21ce7a38103f03c72de5382 GIT binary patch literal 67400 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 literal 0 HcmV?d00001 From 5964186c5e238e37656272d2011c9d27ab514f91 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 5 Oct 2018 00:28:30 +0200 Subject: [PATCH 031/391] reduce use of CGI.pm --- lib/calcms/auth.pm | 26 ++++++++++++-------------- lib/calcms/params.pm | 26 +++++++------------------- website/agenda/planung/image.cgi | 15 ++++----------- website/agenda/planung/imageUpload.cgi | 6 +++--- 4 files changed, 26 insertions(+), 47 deletions(-) diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index f62b851..a0ffba5 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -27,15 +27,13 @@ sub get_user { my $params = shift; my $cgi = shift; - debug("get_user") if ($debug); + debug("get_user") if $debug; # login or logout on action if ( defined $params->{action} ) { if ( $params->{action} eq 'login' ) { my $user = login( $config, $params->{user}, $params->{password} ); - $cgi = new CGI::Simple() unless defined $cgi; - - $cgi->delete( 'user', 'password', 'uri', 'action' ); + $cgi->delete( 'user', 'password', 'uri', 'action' ) if defined $cgi; return $user; } elsif ( $params->{action} eq 'logout' ) { $cgi = new CGI::Simple() unless defined $cgi; @@ -81,7 +79,7 @@ sub login { my $config = shift; my $user = shift; my $password = shift; - debug("login") if ($debug); + debug("login") if $debug; #print STDERR "login $user $password\n"; my $result = authenticate( $config, $user, $password ); @@ -103,7 +101,7 @@ sub login { sub logout { my $cgi = shift; my $session_id = read_cookie(); - debug("logout") if ($debug); + debug("logout") if $debug; unless ( delete_session($session_id) ) { return show_login_form( 'Cant delete session', 'logged out' ); } @@ -134,14 +132,14 @@ sub create_cookie { } sub read_cookie { - debug("read_cookie") if ($debug); + debug("read_cookie") if $debug; my %cookie = CGI::Cookie->fetch; - debug( "cookies: " . Dumper( \%cookie ) ) if ($debug); + debug( "cookies: " . Dumper( \%cookie ) ) if $debug; my $cookie = $cookie{'sessionID'}; - debug( "cookie: " . $cookie ) if ($debug); + debug( "cookie: " . $cookie ) if $debug; return undef unless defined $cookie; my $session_id = $cookie->value || undef; - debug( "sid: " . $session_id ) if ($debug); + debug( "sid: " . $session_id ) if $debug; return $session_id; } @@ -149,7 +147,7 @@ sub read_cookie { sub delete_cookie { my $cgi = shift; - debug("delete_cookie") if ($debug); + debug("delete_cookie") if $debug; my $cookie = $cgi->cookie( -name => 'sessionID', -value => '', @@ -165,7 +163,7 @@ sub create_session { my $password = shift; my $expiration = shift; - debug("create_session") if ($debug); + debug("create_session") if $debug; my $session = CGI::Session->new( undef, undef, { Directory => $tmp_dir } ); $session->expire($expiration); $session->param( "user", $user ); @@ -197,7 +195,7 @@ sub read_session { sub delete_session { my $session_id = shift; - debug("delete_session") if ($debug); + debug("delete_session") if $debug; return undef unless ( defined $session_id ); my $session = CGI::Session->new( undef, $session_id, { Directory => $tmp_dir } ); $session->delete(); @@ -263,7 +261,7 @@ sub show_login_form { }; } - debug("show_login_form") if ($debug); + debug("show_login_form") if $debug; print qq{Content-type:text/html <!DOCTYPE HTML> diff --git a/lib/calcms/params.pm b/lib/calcms/params.pm index 9360ccd..83c75c5 100644 --- a/lib/calcms/params.pm +++ b/lib/calcms/params.pm @@ -17,8 +17,6 @@ sub isJson { } sub get { - - #get the Apache2::RequestRec my $r = shift; my $tmp_dir = '/var/tmp/'; @@ -31,23 +29,13 @@ sub get { $isJson = 0; if ( defined $r ) { - - #print STDERR "Apache2::Request\n"; - #get Apache2::Request my $req = Apache2::Request->new( $r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir ); for my $key ( $req->param ) { $params->{ scalar($key) } = scalar( $req->param($key) ); } - #copy params to hash - #my $body=$req->body(); - #if (defined $body){ - # for my $key (keys %$body){ - # $params->{scalar($key)}=scalar($req->param($key)); - # } - #} - $status = $req->parse; #parse + $status = $req->parse; } else { print STDERR "$0: require CGI\n"; require "CGI.pm"; @@ -62,14 +50,14 @@ sub get { $isJson = 1 if ( defined $params->{json} ) && ( $params->{json} eq '1' ); if ( defined $status ) { - $status = '' if ( $status eq 'Success' ); - $status = '' if ( $status eq 'Missing input data' ); - print $cgi->header . $status . "\n" if ( $status ne '' ); + $status = '' if $status eq 'Success' ; + $status = '' if $status eq 'Missing input data' ; + if ($status ne ''){ + $cgi=new CGI::Simple() unless defined $cgi; + print $cgi->header . $status . "\n"; + } ; } - #print STDERR Dumper($params); - #print $cgi->header.Dumper($params).$status; - return ( $cgi, $params, $status ); } diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index 7187ebb..0f37323 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -322,9 +322,6 @@ sub delete_image { return 0; } - #print $cgi->header(); - #print "Content-type:text/html; charset=UTF-8;\n\n"; - $config->{access}->{write} = 1; my $dbh = db::connect($config); my $image = { @@ -334,15 +331,11 @@ sub delete_image { }; my $result = images::delete( $dbh, $image ); - #print STDERR "delete result=" . Dumper($result); - return; - my $action_result = ''; - my $errors = ''; - $result = images::delete_files( $config, $local_media_dir, $params->{delete_image}, $action_result, $errors ); - - #use Data::Dumper;print STDERR "delete\n".Dumper($params); - print "deleted<br />$action_result<br />$errors\n"; + #my $action_result = ''; + #my $errors = ''; + #$result = images::delete_files( $config, $local_media_dir, $params->{delete_image}, $action_result, $errors ); + #print "deleted<br />$action_result<br />$errors\n"; } sub check_permission { diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi index ca51a8c..28cbac1 100755 --- a/website/agenda/planung/imageUpload.cgi +++ b/website/agenda/planung/imageUpload.cgi @@ -61,8 +61,6 @@ if ( defined $r ) { } else { $upload = $apr->upload('image') if ( defined $params->{image} ); } - - $cgi = new CGI(); } else { #CGI fallback @@ -129,7 +127,7 @@ print STDERR "upload error: $params->{error}\n" if $params->{error} ne ''; my $out = ''; template::process( $config, 'print', $params->{template}, $params ); -print $cgi->cgi_error() if (defined $cgi) && (defined $cgi->cgi_error()); +print $cgi->cgi_error() if ( defined $cgi ) && ( defined $cgi->cgi_error() ); return if $params->{action} eq ''; $params->{action_result} ||= ''; @@ -171,6 +169,7 @@ sub upload_file { my $filename = $result->{filename}; $result = check_filename($filename); + #print STDERR $result . "\n"; return $result if ( $result->{error} ne '' ); @@ -179,6 +178,7 @@ sub upload_file { #read file from handle my $data; my $content = ''; + #print STDERR $file . "\n"; binmode $file; From 26ea7a8b8355dce2116f75466335623119ab2484 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 5 Oct 2018 00:29:38 +0200 Subject: [PATCH 032/391] fix series search --- website/agenda/planung/js/list_series.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/agenda/planung/js/list_series.js b/website/agenda/planung/js/list_series.js index 6ffae7a..fa7c0d7 100644 --- a/website/agenda/planung/js/list_series.js +++ b/website/agenda/planung/js/list_series.js @@ -44,8 +44,8 @@ function searchEvents(){ }else{ $('#clearSearch').show(); }; - searchEventsAt('#newSeries div', searchValue); - searchEventsAt('#oldSeries div', searchValue); + searchEventsAt('#newSeries a', searchValue); + searchEventsAt('#oldSeries a', searchValue); } function clearSearch(){ From 7c4580a0e090f1fe18686e7a5a333d28e672bd74 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 5 Oct 2018 00:30:28 +0200 Subject: [PATCH 033/391] fix show series names --- website/agenda/series_names.cgi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/agenda/series_names.cgi b/website/agenda/series_names.cgi index 411e945..3efd159 100755 --- a/website/agenda/series_names.cgi +++ b/website/agenda/series_names.cgi @@ -101,7 +101,7 @@ sub getProjects { #mark last series_name entry of all non empty projects if ( ( defined $series_names ) && ( scalar @$series_names > 0 ) ) { $series_names->[-1]->{last} = 1; - $prev_series_names->[-1]->{last} = 0 if ( defined $prev_series_names ) && ( sclar @$prev_series_names > 0 ); + $prev_series_names->[-1]->{last} = 0 if ( defined $prev_series_names ) && ( scalar @$prev_series_names > 0 ); $prev_series_names = $series_names; } push @$results, $project; @@ -152,7 +152,7 @@ sub getSeriesNames { } my $where = ''; - if ( @conds > 0 ) { + if ( scalar @conds > 0 ) { $where = 'where ' . join( ' and ', @conds ); } From 39ac0d458178fe04e47f9d8148eb89992901497c Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 5 Oct 2018 00:30:43 +0200 Subject: [PATCH 034/391] use <nav> and <main> --- website/agenda/planung/css/work_time.css | 3 --- website/agenda/planung/templates/assign_series.html | 2 +- website/agenda/planung/templates/assignments.html | 2 +- website/agenda/planung/templates/edit_event.html | 3 +-- website/agenda/planung/templates/edit_series.html | 2 +- website/agenda/planung/templates/image.html | 4 ++-- website/agenda/planung/templates/image_edit.html | 1 + website/agenda/planung/templates/projects.html | 1 + website/agenda/planung/templates/series.html | 1 + website/agenda/planung/templates/studios.html | 3 +-- 10 files changed, 10 insertions(+), 12 deletions(-) diff --git a/website/agenda/planung/css/work_time.css b/website/agenda/planung/css/work_time.css index 5f32319..c51330b 100644 --- a/website/agenda/planung/css/work_time.css +++ b/website/agenda/planung/css/work_time.css @@ -1,6 +1,3 @@ -body{ - background:#666; -} #content{ margin-top:3em; diff --git a/website/agenda/planung/templates/assign_series.html b/website/agenda/planung/templates/assign_series.html index 4784d38..e562c31 100644 --- a/website/agenda/planung/templates/assign_series.html +++ b/website/agenda/planung/templates/assign_series.html @@ -58,7 +58,7 @@ </div> </div> - + </main> </body> </html> diff --git a/website/agenda/planung/templates/assignments.html b/website/agenda/planung/templates/assignments.html index 6282cb7..0ca0df5 100644 --- a/website/agenda/planung/templates/assignments.html +++ b/website/agenda/planung/templates/assignments.html @@ -173,7 +173,7 @@ found <TMPL_VAR sum_events> unassigned events for project <b><TMPL_VAR project_n </div> </div> -</div> +</main> </body> </html> diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit_event.html index 936e8d2..b47a1be 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit_event.html @@ -552,8 +552,7 @@ <div id="selectImage"></div> -</div> -<!--</aTMPL_IF>--> +</main> </body> </html> diff --git a/website/agenda/planung/templates/edit_series.html b/website/agenda/planung/templates/edit_series.html index 6a6264f..c9ca255 100644 --- a/website/agenda/planung/templates/edit_series.html +++ b/website/agenda/planung/templates/edit_series.html @@ -621,7 +621,7 @@ <div id="selectImage"></div> <div class="label right"><TMPL_VAR .loc.modified> <TMPL_VAR .loc.at> <TMPL_VAR modified_at> <TMPL_VAR .loc.by> <TMPL_VAR modified_by>.</div> -</div> +</main> </body> </html> diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 666a67e..268090d 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -131,8 +131,8 @@ </div> </TMPL_IF> -<!-- content --> -</div> + +</main> </body> </html> diff --git a/website/agenda/planung/templates/image_edit.html b/website/agenda/planung/templates/image_edit.html index 433b3f0..b9ee5ab 100644 --- a/website/agenda/planung/templates/image_edit.html +++ b/website/agenda/planung/templates/image_edit.html @@ -89,6 +89,7 @@ found no image </TMPL_IF> </TMPL_LOOP> +</main> </body> </html> diff --git a/website/agenda/planung/templates/projects.html b/website/agenda/planung/templates/projects.html index 4d0c3d4..f4b618c 100644 --- a/website/agenda/planung/templates/projects.html +++ b/website/agenda/planung/templates/projects.html @@ -179,5 +179,6 @@ <div id="selectImage"> </div> +</main> </body> </html> diff --git a/website/agenda/planung/templates/series.html b/website/agenda/planung/templates/series.html index 7e3f0ab..8e417c7 100644 --- a/website/agenda/planung/templates/series.html +++ b/website/agenda/planung/templates/series.html @@ -63,5 +63,6 @@ var region='<TMPL_VAR loc.region>'; </div> +</main> </body> </html> diff --git a/website/agenda/planung/templates/studios.html b/website/agenda/planung/templates/studios.html index 57c9662..332b412 100644 --- a/website/agenda/planung/templates/studios.html +++ b/website/agenda/planung/templates/studios.html @@ -99,7 +99,6 @@ </TMPL_LOOP> </div> -</div> -</center> +</main> </body> </html> From ac4d2676a3bbfd856da92deaf2152917469e389c Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 13 Oct 2018 23:54:33 +0200 Subject: [PATCH 035/391] flat restyle --- website/agenda/planung/css/admin.css | 50 ++- website/agenda/planung/css/calendar.css | 51 +-- website/agenda/planung/css/event.css | 5 +- website/agenda/planung/css/show-playout.css | 4 + website/agenda/planung/js/calendar.js | 44 ++- website/agenda/planung/templates/default.html | 3 +- .../planung/templates/show_playout.html | 6 +- .../planung/templates/user_settings.html | 332 +++++++++--------- 8 files changed, 271 insertions(+), 224 deletions(-) diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index 737a721..e1f2984 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -10,11 +10,16 @@ body{ body #content{ margin:0; - padding:1em; - max-width:1200px; color:#000; background:#fff; text-align:left; + max-width:1200px; + margin-left:auto; + margin-right:auto; +} + +div{ + transition: background-color 0.5s linead; } #selectImage #content{ @@ -30,7 +35,7 @@ body, #content option, #content li{ font-size:0.75rem; - font-family:Roboto,sans-serif; + font-family:Roboto,sans-serif; } #content textarea{ @@ -67,19 +72,12 @@ body, #calcms_admin_menu div, #calcms_admin_menu input, #calcms_admin_menu select, -#calcms_admin_menu option, -#calcms_admin_menu img -{ +#calcms_admin_menu option{ margin:0; padding:0; color:#fff; } -#calcms_admin_menu img{ - border:0; - vertical-align:middle; -} - #calcms_admin_menu, #calcms_admin_menu select{ background:#444; @@ -151,7 +149,7 @@ a{ #content div{ - padding:6px; + padding:1rem; } #content div.header{ @@ -239,10 +237,22 @@ li.ui-menu-item{ #content div.warn, #content div.error{ font-weight:bold; - margin:0.5rem; + margin:0; padding:1rem; } +#content span.ok, +#content span.warn, +#content span.error{ + font-weight:bold; + padding:1px; +} + +#content span.ok, +#content span.error{ + color:white; +} + div.ok{ color:white; background:#0c0; @@ -354,7 +364,7 @@ tr.tablesorter-filter-row input{ padding:8px; margin-top:0px; margin-bottom:0px; - margin-left:6px; + margin-left:0.5rem; text-align: center; text-decoration: none; font-size: 12px; @@ -375,7 +385,7 @@ tr.tablesorter-filter-row input{ #content input[type="file"]:hover, #content button:focus{ outline:0; - transition:all 0.5s cubic-bezier(.64,.09,.08,1) + transition:background 0.5s cubic-bezier(.64,.09,.08,1) } #content input[type="submit"]:hover, @@ -392,7 +402,7 @@ tr.tablesorter-filter-row input{ padding:8px; margin-top:0px; margin-bottom:0px; - margin-left:6px; + margin-left:0.5rem; text-decoration: none; } @@ -416,7 +426,7 @@ tr.tablesorter-filter-row input{ border:none; border-bottom:solid 1px #9e9e9e; cursor:pointer; - margin-left:6px; + margin-left:0.5rem; } #content select, @@ -425,7 +435,7 @@ input[type='checkbox']{ } #content div.buttons button{ - margin-bottom:6px; + margin-bottom:1rem; } #content div.formField div.label{ @@ -493,3 +503,7 @@ body, opacity:0.5; } +#content div.buttons{ + margin-top:-1rem; + margin-bottom:-1rem; +} diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index 36db7dd..e0beb70 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -120,11 +120,6 @@ button:hover{ background:#ccf; } -#calendar div.grid{ - overflow:hidden; - position:absolute; - background:white; -} #calendar_weekdays td.week, #calendar td.week{ @@ -139,8 +134,7 @@ button:hover{ padding:0; min-width:1px; height:100%; - background:#666; - background-image:url(../image/chess.gif); + background:repeating-linear-gradient(to right, #fff, #fff 1px, #999 1px, #999 2px); } #calendar td.week div{ @@ -154,14 +148,12 @@ button:hover{ #calendar div.schedule, #calendar div.work, #calendar div.play{ - overflow:hidden; - font-size:12px; - border-right:0; position:absolute; - margin-left:0px; + overflow:hidden; + margin-left:0; border:0; - border-bottom:1px solid #666; - border-top:1px solid #666; + border-bottom:1px solid #fff; + border-top:1px solid #fff; } #calendar div.time, @@ -171,7 +163,7 @@ button:hover{ #calendar div.time, #calendar_weekdays div.time{ - border-top:1px solid #666; + border-top:1px solid #fff; } /* calendar list*/ @@ -204,8 +196,11 @@ button:hover{ #content div.grid{ z-index:1; - margin-left:0px; background:white; + overflow:hidden; + position:absolute; + background: repeating-linear-gradient( 45deg, #fff, #fff 1rem ,#eee 1rem, #eee 2rem); + cursor:pointer; } #event_list tr th:hover{ @@ -359,12 +354,12 @@ div#toolbar{ padding:0; width:100%; background:#ddd; - display: flex; flex-wrap: wrap; align-items: center; vertical-align:middle; z-index:99; + left:0; } div#toolbar div{ @@ -422,11 +417,6 @@ div#toolbar input.search{ padding:6px; } -#calendar div { - transition: all 0.1s; - transition-delay: 0s; -} - #calendar td div.play:hover { min-height: 180px!important; min-width: 420px!important; @@ -461,18 +451,6 @@ div#toolbar input.search{ background:#fcc; } -#calendar div.event.error, -#calendar div.event.schedule{ -/* width:50%; */ -} - -#calendar div.event.error.x2, -#calendar div.event.schedule.x2{ - /* - margin-left:50%; - */ -} - div.rms_detail{ width:100% } @@ -510,4 +488,11 @@ div.play .error{ background:#f44336; } +#content div.event, +#content div.scheduled, +#content div.grid, +#content div.playout{ + padding-top:0.4rem; + padding-bottom:1rem; +} diff --git a/website/agenda/planung/css/event.css b/website/agenda/planung/css/event.css index 3fc4c5f..2e6dd34 100644 --- a/website/agenda/planung/css/event.css +++ b/website/agenda/planung/css/event.css @@ -27,7 +27,6 @@ pre{ height:24px; } - #content .edit_event input, #content .edit_event select, #content .edit_event textarea{ @@ -36,15 +35,18 @@ pre{ #content .excerpt{ width:100%; + max-width:40rem; height:3em; } #content textarea{ width:100%; + max-width:40rem; } #content .edit_event input.url{ width:100%; + max-width:40rem; } #content .panel{ @@ -64,3 +66,4 @@ pre{ width:3em; } + diff --git a/website/agenda/planung/css/show-playout.css b/website/agenda/planung/css/show-playout.css index 369e379..cf276bb 100644 --- a/website/agenda/planung/css/show-playout.css +++ b/website/agenda/planung/css/show-playout.css @@ -24,6 +24,10 @@ table{ border-top:1px solid #666; } +#content tr.past{ + background:#ccc; +} + #content td{ padding:3px; diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index c28b777..95d87a3 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -557,17 +557,6 @@ function initCalendarMenu(){ resizeCalendarMenu(); } -$(document).ready(function(){ - // $('#calendar').hide(); - initCalendarMenu(); - - if(calendarTable==1){ - loadCalendar(); - }else{ - loadCalendarList(); - } -}); - function createId(prefix) { function s4() { return Math.floor((1 + Math.random()) * 0x10000) @@ -694,6 +683,7 @@ function loadCalendar(url, mouseButton){ $('#current_date').html(current_date); updateUrls(url); initRmsPlot(); + adjustColors(); }); } @@ -1047,3 +1037,35 @@ function handleWorktime(id, event){ } } + +function hexToRgbA(hex){ + var c; + if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){ + c= hex.substring(1).split(''); + if(c.length== 3){ + c= [c[0], c[0], c[1], c[1], c[2], c[2]]; + } + c= '0x'+c.join(''); + return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',1)'; + } + throw new Error('Bad Hex'); +} + +function adjustColors(){ + var elem = $('.schedule').get(0); + var color1=window.getComputedStyle(elem).backgroundColor; + var color2=color1.replace('rgb','rgba').replace(')',', 0.4)') + $('.schedule').css('background', 'repeating-linear-gradient(to right, '+color1+', '+color1+' 1px, '+color2+' 1px, '+color2+' 2px) '); +} + +$(document).ready(function(){ + // $('#calendar').hide(); + initCalendarMenu(); + + if(calendarTable==1){ + loadCalendar(); + }else{ + loadCalendarList(); + } + }); + diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index 33a7197..bd14353 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -1,6 +1,5 @@ <TMPL_INCLUDE header.html> -<center> <nav id="calcms_admin_menu"> <div><a href="/"><i class="fas fa-rocket"></i> <TMPL_VAR .loc.preview></a></div> @@ -77,7 +76,7 @@ <i class="fas fa-caret-down"></i> </div> -<div><a id="logout" href="<TMPL_VAR .presets.logout_url>?action=logout" expires="<TMPL_VAR .expires>"><i class="fas fa-sign-out-alt"></i> <TMPL_VAR .presets.user> <TMPL_VAR .loc.logout></a></div> +<div><a id="logout" href="<TMPL_VAR .presets.logout_url>?authAction=logout" expires="<TMPL_VAR .expires>"><i class="fas fa-sign-out-alt"></i> <TMPL_VAR .presets.user> <TMPL_VAR .loc.logout></a></div> </nav> diff --git a/website/agenda/planung/templates/show_playout.html b/website/agenda/planung/templates/show_playout.html index 60cd6f4..423a027 100644 --- a/website/agenda/planung/templates/show_playout.html +++ b/website/agenda/planung/templates/show_playout.html @@ -12,6 +12,7 @@ <table id="playout-table" class="table"> + <thead> <tr> <th>start</th> @@ -22,11 +23,12 @@ <th>image</th> <th>bytes</th> <th>modified at</th> -</thead> </tr> +</thead> + <tbody> <TMPL_LOOP events> -<tr> +<tr class="<TMPL_VAR class>"> <td><TMPL_VAR start></td> <td><TMPL_VAR file></td> <td><TMPL_VAR duration escape="text"></td> diff --git a/website/agenda/planung/templates/user_settings.html b/website/agenda/planung/templates/user_settings.html index 266f8e2..dbc6fbb 100644 --- a/website/agenda/planung/templates/user_settings.html +++ b/website/agenda/planung/templates/user_settings.html @@ -1,183 +1,201 @@ <script type="text/javascript"> -var selectedId; + var selectedId; -$(document).ready( - function(){ - $('input.color').click( - function(){ - selectedId=($(this).attr('id')); - showColors(); - } - ); + $(document).ready(function() { + $('input.color').click(function() { + selectedId = ($(this).attr('id')); + showColors(); + }); //$("#content").append(getColor(8)); - } -); + }); -/* -function getColor(noOfColors) { - var html = ""; - var frequency = 5 / noOfColors; - for (var i = 0; i < noOfColors;++i) { - r = Math.sin(frequency * i + 0) * (127) + 128; - g = Math.sin(frequency * i + 1) * (127) + 128; - b = Math.sin(frequency * i + 3) * (127) + 128; - li = '<li class="color" style="background-color:rgb({r},{g},{b});"> </li>'; - li = li.replace("{r}", Math.floor(r)); - li = li.replace("{g}", Math.floor(g)); - li = li.replace("{b}", Math.floor(b)); - html = html + li; - } - return html; -} + /* + function getColor(noOfColors) { + var html = ""; + var frequency = 5 / noOfColors; + for (var i = 0; i < noOfColors;++i) { + r = Math.sin(frequency * i + 0) * (127) + 128; + g = Math.sin(frequency * i + 1) * (127) + 128; + b = Math.sin(frequency * i + 3) * (127) + 128; + li = '<li class="color" style="background-color:rgb({r},{g},{b});"> </li>'; + li = li.replace("{r}", Math.floor(r)); + li = li.replace("{g}", Math.floor(g)); + li = li.replace("{b}", Math.floor(b)); + html = html + li; + } + return html; + } -function showColors(){ - var colors=['00','22','44','66','88','aa','cc','ee','ff']; - var content=''; + function showColors(){ + var colors=['00','22','44','66','88','aa','cc','ee','ff']; + var content=''; - for (var i in colors){ - for (var j in colors){ - var r=colors[i]; - var g=colors[colors.length-j-1]; - var b =Math.round((i-j))% colors.length; - if(b<0)b=Math.round((j-i))% colors.length; - b=colors[b] - var value='#'+r+g+b; - content+='<div class="col" value="'+value+'" style="background:'+value+';"> </div>'; + for (var i in colors){ + for (var j in colors){ + var r=colors[i]; + var g=colors[colors.length-j-1]; + var b =Math.round((i-j))% colors.length; + if(b<0)b=Math.round((j-i))% colors.length; + b=colors[b] + var value='#'+r+g+b; + content+='<div class="col" value="'+value+'" style="background:'+value+';"> </div>'; + } + content+='<br style="clear:both">' + } + + for (var i in colors){ + var gray=colors[colors.length-i-1]; + var value='#'+gray+gray+gray; + content+='<div class="col" value="'+value+'" style="background:'+value+';"> </div>'; + } + content+='<br style="clear:both">' + + $("#colors").html(content); + $("#colors div.col").click( + function(){ + var color=$(this).attr("value"); + $('#'+selectedId).css('background',color); + $('#'+selectedId).attr('value',color); + } + ); + } + */ + + function showColors() { + var colors = [ '#ef9a9a', '#f48fb1', '#ce93d8', '#b39ddb', '#9fa8da', + '#90caf9', '#81d4fa', '#80deea', '#80cbc4', '#a5d6a7', + '#c5e1a5', '#e6ee9c', '#fff59d', '#ffe082', '#ffcc80', + '#ffab91', '#bcaaa4', '#b0bec5', '#bdc3c7', '#dde4e6', + '#eeeeee', ]; + + var content = ''; + for ( var c in colors) { + var value = colors[c]; + content += '<div class="col" value="'+value+'" style="background:'+value+';"> </div>'; } - content+='<br style="clear:both">' + content += '<br style="clear:both">' + + $("#colors").html(content); + $("#colors div.col").click(function() { + var color = $(this).attr("value"); + $('#' + selectedId).css('background', color); + $('#' + selectedId).attr('value', color); + }); } - - for (var i in colors){ - var gray=colors[colors.length-i-1]; - var value='#'+gray+gray+gray; - content+='<div class="col" value="'+value+'" style="background:'+value+';"> </div>'; - } - content+='<br style="clear:both">' - - $("#colors").html(content); - $("#colors div.col").click( - function(){ - var color=$(this).attr("value"); - $('#'+selectedId).css('background',color); - $('#'+selectedId).attr('value',color); - } - ); -} -*/ - -function showColors(){ - var colors=[ - '#ef9a9a', - '#f48fb1', - '#ce93d8', - '#b39ddb', - '#9fa8da', - '#90caf9', - '#81d4fa', - '#80deea', - '#80cbc4', - '#a5d6a7', - '#c5e1a5', - '#e6ee9c', - '#fff59d', - '#ffe082', - '#ffcc80', - '#ffab91', - '#bcaaa4', - '#b0bec5', - '#bdc3c7', - '#dde4e6', - '#eeeeee', - ]; - - var content=''; - for (var c in colors){ - var value=colors[c]; - content+='<div class="col" value="'+value+'" style="background:'+value+';"> </div>'; - } - content+='<br style="clear:both">' - - $("#colors").html(content); - $("#colors div.col").click( - function(){ - var color=$(this).attr("value"); - $('#'+selectedId).css('background',color); - $('#'+selectedId).attr('value',color); - } - ); -} </script> <style> div.col { - float:left; - width:10px; - height:10px; + float: left; + width: 10px; + height: 10px; } </style> -<h2><TMPL_VAR loc.title></h2> +<h2> + <TMPL_VAR loc.title> +</h2> <TMPL_INCLUDE status.html> - <form method="post"> - <input type="hidden" name="project_id" value="<TMPL_VAR project_id>"> - <input type="hidden" name="studio_id" value="<TMPL_VAR studio_id>"> +<form method="post"> + <input type="hidden" name="action" value="save"> + <button onclick="$(this).submit()"> + <TMPL_VAR loc.button_colors_save> + </button> - <table> - <tr> - <td style="max-width:10em;"><TMPL_VAR loc.label_language></td> - <td> - <select name="language"> - <option value="de" <TMPL_IF language_de>selected="selected"</TMPL_IF> >Deutsch</option> - <option value="en" <TMPL_IF language_en>selected="selected"</TMPL_IF> >English</option> - </select> - </td> - </tr> - <tr> - <td style="max-width:10em;"><TMPL_VAR loc.label_period></td> - <td> - <select name="period"> - <option value="7" <TMPL_IF period_7>selected="selected"</TMPL_IF> ><TMPL_VAR .loc.label_period_7></option> - <option value="14" <TMPL_IF period_14>selected="selected"</TMPL_IF> ><TMPL_VAR .loc.label_period_14></option> - <option value="month" <TMPL_IF period_month>selected="selected"</TMPL_IF> ><TMPL_VAR .loc.label_period_month></option> - <option value="28" <TMPL_IF period_28>selected="selected"</TMPL_IF> ><TMPL_VAR .loc.label_period_28></option> - </select> - </td> - </tr> - <TMPL_LOOP colors> - <tr> - <td><TMPL_VAR .loc.label_color>: <TMPL_VAR title></td> - <td><input id="<TMPL_VAR name>" style="background:<TMPL_VAR value>" name="<TMPL_VAR name>" class="color" value="<TMPL_VAR value>"></td> - </tr> - </TMPL_LOOP> - </table> + <input type="hidden" name="project_id" value="<TMPL_VAR project_id>"> + <input type="hidden" name="studio_id" value="<TMPL_VAR studio_id>"> + + <table> + <tr> + <td style="max-width: 10em;"><TMPL_VAR + loc.label_language></td> + <td><select name="language"> + <option value="de"<TMPL_IF language_de>selected="selected"</TMPL_IF> + >Deutsch + </option> + <option value="en"<TMPL_IF language_en>selected="selected"</TMPL_IF> + >English + </option> + </select></td> + </tr> + <tr> + <td style="max-width: 10em;"><TMPL_VAR loc.label_period></td> + <td><select name="period"> + <option value="7"<TMPL_IF period_7>selected="selected"</TMPL_IF> + > + <TMPL_VAR .loc.label_period_7></option> + <option value="14"<TMPL_IF period_14>selected="selected"</TMPL_IF> + > + <TMPL_VAR .loc.label_period_14></option> + <option value="month"<TMPL_IF period_month>selected="selected"</TMPL_IF> + > + <TMPL_VAR .loc.label_period_month></option> + <option value="28"<TMPL_IF period_28>selected="selected"</TMPL_IF> + > + <TMPL_VAR .loc.label_period_28></option> + </select></td> + </tr> + + <TMPL_LOOP colors> + <tr> + <td><TMPL_VAR .loc.label_color>: <TMPL_VAR + title></td> + <td><input id="<TMPL_VAR name>" + style="background: <TMPL_VAR value>" + name="<TMPL_VAR name>" class="color" + value="<TMPL_VAR value>"></td> + </tr> + </TMPL_LOOP> + </table> <div id="colors"></div> - <input type="hidden" name="action" value="save"> - <button onclick="$(this).submit()"><TMPL_VAR loc.button_colors_save></button> - </form> +</form> - <form method="post" style="margin-top:2px"> - <input type="hidden" name="project_id" value="<TMPL_VAR project_id>"> - <input type="hidden" name="studio_id" value="<TMPL_VAR studio_id>"> - <input type="hidden" name="action" value="save"> - <button onclick="$(this).submit()"><TMPL_VAR loc.button_colors_reset></button> - </form> +<form method="post" style="margin-top: 2px;float:left"> + <input type="hidden" name="project_id" value="<TMPL_VAR project_id>"> + <input type="hidden" name="studio_id" value="<TMPL_VAR studio_id>"> + <input type="hidden" name="action" value="updateDefaultProjectStudio"> + <button onclick="$(this).submit()"> + <TMPL_VAR loc.setDefaultProjectStudio> + </button> +</form> + +<form method="post" style="margin-top: 2px"> + <input type="hidden" name="project_id" value="<TMPL_VAR project_id>"> + <input type="hidden" name="studio_id" value="<TMPL_VAR studio_id>"> + <input type="hidden" name="action" value="save"> + <button onclick="$(this).submit()"> + <TMPL_VAR loc.button_colors_reset> + </button> +</form> - <h3 style="clear:both"><TMPL_VAR .loc.label_change_password></h3> - <TMPL_VAR .loc.password_hint> - <form action="users.cgi" method="post"> - <input type="hidden" name="project_id" value="<TMPL_VAR project_id>"> - <input type="hidden" name="studio_id" value="<TMPL_VAR studio_id>"> - <input type="hidden" name="action" value="change_password"> - <table> - <tr> <td><TMPL_VAR .loc.label_password></td> <td><input name="user_password" value="<TMPL_VAR password>"></td> </tr> - <tr> <td><TMPL_VAR .loc.label_password2></td><td><input name="user_password2" value="<TMPL_VAR password2>"></td> </tr> - </table> - <button onclick="$(this).submit()"><TMPL_VAR loc.button_change_password></button> - </form> +<h3 style="clear: both"> + <TMPL_VAR .loc.label_change_password> +</h3> +<TMPL_VAR .loc.password_hint> +<form action="users.cgi" method="post"> + <input type="hidden" name="project_id" value="<TMPL_VAR project_id>"> + <input type="hidden" name="studio_id" value="<TMPL_VAR studio_id>"> + <input type="hidden" name="action" value="change_password"> + <table> + <tr> + <td><TMPL_VAR .loc.label_password></td> + <td><input name="user_password" + value="<TMPL_VAR password>"></td> + </tr> + <tr> + <td><TMPL_VAR .loc.label_password2></td> + <td><input name="user_password2" + value="<TMPL_VAR password2>"></td> + </tr> + </table> + <button onclick="$(this).submit()"> + <TMPL_VAR loc.button_change_password> + </button> +</form> </body> -</html> +</html> \ No newline at end of file From a949cea7bd8e7d5d42d240f6de1233fea459bb35 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 14 Oct 2018 00:01:19 +0200 Subject: [PATCH 036/391] use central methods for setting default project and studio --- lib/calcms/uac.pm | 18 ++++++++++ website/agenda/planung/assign_series.cgi | 6 ++-- website/agenda/planung/assignments.cgi | 6 ++-- website/agenda/planung/audio_recordings.cgi | 6 ++-- website/agenda/planung/calendar.cgi | 38 ++++++++++----------- website/agenda/planung/comment.cgi | 6 ++-- website/agenda/planung/create_events.cgi | 6 ++-- website/agenda/planung/event.cgi | 6 ++-- website/agenda/planung/event_history.cgi | 3 +- website/agenda/planung/help.cgi | 6 ++-- website/agenda/planung/image.cgi | 6 ++-- website/agenda/planung/imageUpload.cgi | 6 ++-- website/agenda/planung/notify_events.cgi | 6 ++-- website/agenda/planung/playout.cgi | 8 ++--- website/agenda/planung/projects.cgi | 6 ++-- website/agenda/planung/roles.cgi | 3 +- website/agenda/planung/selectEvent.cgi | 6 ++-- website/agenda/planung/selectSeries.cgi | 6 ++-- website/agenda/planung/series.cgi | 28 +++++++-------- website/agenda/planung/show-playout.cgi | 35 +++++++++---------- website/agenda/planung/showImage.cgi | 7 ++-- website/agenda/planung/studio_timeslots.cgi | 6 ++-- website/agenda/planung/studios.cgi | 6 ++-- website/agenda/planung/user_settings.cgi | 6 ++-- website/agenda/planung/user_stats.cgi | 7 ++-- website/agenda/planung/users.cgi | 6 ++-- website/agenda/planung/work_time.cgi | 7 ++-- 27 files changed, 113 insertions(+), 143 deletions(-) diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index b675987..7ace2a2 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -777,6 +777,24 @@ sub get_user_presets { return $result; } +sub setDefaultProject { + my $params = shift; + my $user_presets = shift; + + $params->{project_id} = $user_presets->{project_id} + if ( !defined $params->{authAction} ) || ( $params->{authAction} eq '' ) || ( $params->{authAction} eq 'login' ); + return $params; +} + +sub setDefaultStudio { + my $params = shift; + my $user_presets = shift; + + $params->{studio_id} = $user_presets->{studio_id} + if ( !defined $params->{authAction} ) || ( $params->{authAction} eq '' ) || ( $params->{authAction} eq 'login' ); + return $params; +} + #set user preset properties to request sub prepare_request { my $request = shift; diff --git a/website/agenda/planung/assign_series.cgi b/website/agenda/planung/assign_series.cgi index 19d0dc2..ecd40ff 100755 --- a/website/agenda/planung/assign_series.cgi +++ b/website/agenda/planung/assign_series.cgi @@ -43,10 +43,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); -$params->{project_id} = $user_presets->{project_id} - if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); #print STDERR $params->{project_id}."\n"; my $request = { diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index bec6c26..a73d7da 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -44,10 +44,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); -$params->{project_id} = $user_presets->{project_id} - if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); #print STDERR $params->{project_id}."\n"; my $request = { diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index 2564904..b38b770 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -68,10 +68,8 @@ my $user_presets = uac::get_user_presets( ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index bfbd425..39abd8f 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -2,9 +2,11 @@ use warnings "all"; use strict; + use Data::Dumper; use URI::Escape(); -#use Encode(); +use DateTime(); + use utf8(); use params(); use config(); @@ -18,15 +20,13 @@ use project(); use studios(); use events(); use series(); -use markup(); use series_dates(); +use markup(); +use localization(); use studio_timeslot_dates(); use work_dates(); use playout(); -use markup(); use user_settings(); -use localization(); -use DateTime(); use audio_recordings(); binmode STDOUT, ":utf8"; @@ -48,8 +48,7 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); $params->{expires} = $expires; my $scriptName = 'calendar.cgi'; @@ -76,9 +75,7 @@ my $request = { checked => check_params( $config, $params ), }, }; - $request = uac::prepare_request( $request, $user_presets ); - $params = $request->{params}->{checked}; if ( @@ -387,9 +384,9 @@ sub showCalendar { $date->{event_id} = $id; $date->{title} = ''; $date->{title} .= '<b>errors</b>: ' . $date->{errors} . '<br>' if defined $date->{errors}; - $date->{title} .= formatDuration( $date->{duration} ) . "s<br>" if defined $date->{duration}; - $date->{title} .= formatLoudness( "L:", $date->{rms_left} ) . ' dB, ' if defined $date->{rms_left}; - $date->{title} .= formatLoudness( "R:", $date->{rms_right} ) . ' dB<br>' if defined $date->{rms_right}; + $date->{title} .= formatDuration( $date->{duration} ) . "<br>" if defined $date->{duration}; + $date->{title} .= formatLoudness( "L:", $date->{rms_left} ) . ', ' if defined $date->{rms_left}; + $date->{title} .= formatLoudness( "R:", $date->{rms_right} ) . '<br>' if defined $date->{rms_right}; $date->{title} .= formatBitrate( $date->{bitrate} ) . ' ' . $date->{bitrate_mode} . '<br>' if defined $date->{bitrate}; $date->{title} .= '<b>replay gain</b> ' . sprintf( "%.1f", $date->{replay_gain} ) . '<br>' if defined $date->{replay_gain}; $date->{title} .= ( ( $date->{sampling_rate} || '0' ) / 1000 ) . ' kHz<br>' if defined $date->{sampling_rate}; @@ -543,24 +540,24 @@ sub formatLoudness { return '' if $value eq ''; #print STDERR "'$value'\n"; - $value = sprintf( "%.1f", $value ); + $value = sprintf( "%d", $value+0.5 ); my $class = 'ok'; $class = 'warn' if $value > -18.5; $class = 'error' if $value > -16.0; $class = 'warn' if $value < -24.0; $class = 'error' if $value < -27.0; - return qq{$label<span class="$class">} . $value . qq{</span>}; + return qq{<span class="$class">$label} . $value . qq{dB</span>}; } sub formatDuration { my $duration = shift; return '' unless defined $duration; return '' if $duration eq ''; - my $result = int( ( $duration + 3600 ) * 10 + 0.5 ) % 600; + my $result = int( ( $duration +30.5 ) % 60)-30; my $class = "ok"; - $class = "warn" if $result > 1; - $class = "error" if $result > 10; - return sprintf( qq{<span class="%s">%.01f</span>}, $class, $duration ); + $class = "warn" if abs($result) > 1; + $class = "error" if abs($result) > 2; + return sprintf( qq{<span class="%s">%ds</span>}, $class, $duration ); } sub formatBitrate { @@ -1133,9 +1130,10 @@ sub printTableBody { if ( $event->{class} eq 'event' ) { $event->{content} .= '<br><span class="weak">'; - $event->{content} .= formatDuration( $event->{duration} ) . 's ' if defined $event->{duration}; + $event->{content} .= formatDuration( $event->{duration} ) . ' ' if defined $event->{duration}; $event->{content} .= formatLoudness( 'L', $event->{rms_left} ) . ' ' if defined $event->{rms_left}; $event->{content} .= formatLoudness( 'R', $event->{rms_right} ) if defined $event->{rms_right}; + #$event->{content} .= formatBitrate( $event->{bitrate} ) if defined $event->{bitrate}; $event->{content} .= '</span>'; } @@ -1402,7 +1400,7 @@ sub print_event { $ystart = int( $ystart * $yzoom ); $yend = int( $yend * $yzoom ); - my $height = $yend - $ystart + 2; + my $height = $yend - $ystart +1; if ( $ypos > 0 ) { $height = q{height:} . ($height) . 'px;'; diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index ca9dc05..56e5459 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -43,10 +43,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/create_events.cgi b/website/agenda/planung/create_events.cgi index b19e2d1..9f898ad 100755 --- a/website/agenda/planung/create_events.cgi +++ b/website/agenda/planung/create_events.cgi @@ -38,10 +38,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( !defined $params->{action} ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); -$params->{project_id} = $user_presets->{project_id} - if ( !defined $params->{action} ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); #print STDERR $params->{project_id}."\n"; my $request = { diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 37f5dd5..6b4f27e 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -51,10 +51,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/event_history.cgi b/website/agenda/planung/event_history.cgi index 53c616f..2f38016 100755 --- a/website/agenda/planung/event_history.cgi +++ b/website/agenda/planung/event_history.cgi @@ -35,8 +35,7 @@ return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( $config, { user => $user, studio_id => $params->{studio_id} } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi index 5ccf7c5..19cb4fb 100755 --- a/website/agenda/planung/help.cgi +++ b/website/agenda/planung/help.cgi @@ -36,10 +36,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index 0f37323..dd8c2fe 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -45,10 +45,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi index 28cbac1..4a12a30 100755 --- a/website/agenda/planung/imageUpload.cgi +++ b/website/agenda/planung/imageUpload.cgi @@ -84,10 +84,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); -$params->{project_id} = $user_presets->{project_id} - if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/notify_events.cgi b/website/agenda/planung/notify_events.cgi index 22bfa2e..31d1080 100755 --- a/website/agenda/planung/notify_events.cgi +++ b/website/agenda/planung/notify_events.cgi @@ -40,10 +40,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index 342a7d6..42850c9 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -49,12 +49,8 @@ my $user_presets = uac::get_user_presets( ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); - -#print STDERR $params->{project_id}."\n"; +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 0cfc923..2b92f8c 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -34,10 +34,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index f90c7e8..0fe8d45 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -45,8 +45,7 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); $params->{project_id} = $user_presets->{project_id}; my $request = { diff --git a/website/agenda/planung/selectEvent.cgi b/website/agenda/planung/selectEvent.cgi index 623b092..45bd09a 100755 --- a/website/agenda/planung/selectEvent.cgi +++ b/website/agenda/planung/selectEvent.cgi @@ -33,10 +33,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/selectSeries.cgi b/website/agenda/planung/selectSeries.cgi index c723603..332b938 100755 --- a/website/agenda/planung/selectSeries.cgi +++ b/website/agenda/planung/selectSeries.cgi @@ -32,10 +32,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index dc9d4d6..047bebc 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1,13 +1,15 @@ #! /usr/bin/perl -w +use warnings "all"; use strict; -use warnings; -no warnings 'redefine'; + +#no warnings 'redefine'; use Data::Dumper; -use URI::Escape; +use URI::Escape(); use Encode(); +use utf8(); use params(); use config(); use log(); @@ -19,12 +21,12 @@ use project(); use studios(); use events(); use series(); -use series_schedule(); -use series_events(); use series_dates(); -use user_stats(); use markup(); use localization(); +use series_schedule(); +use series_events(); +use user_stats(); binmode STDOUT, ":utf8"; @@ -34,22 +36,20 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); -return if ( ( !defined $user ) || ( $user eq '' ) ); +print STDERR Dumper($user); +return if ( !defined $user ) || ( $user eq '' ); -#print STDERR $params->{project_id}."\n"; my $user_presets = uac::get_user_presets( $config, { + user => $user, project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - user => $user + studio_id => $params->{studio_id} } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); #print STDERR $params->{project_id}."\n"; my $request = { diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index f2aa6f2..3d9f950 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -25,9 +25,8 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); -return if ( ( !defined $user ) || ( $user eq '' ) ); +return if ( !defined $user ) || ( $user eq '' ); -#print STDERR $params->{project_id}."\n"; my $user_presets = uac::get_user_presets( $config, { @@ -37,12 +36,9 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); -#print STDERR $params->{project_id}."\n"; my $request = { url => $ENV{QUERY_STRING} || '', params => { @@ -92,36 +88,39 @@ sub showPlayout { } } + my $today=time::time_to_date(time()); + my $startDate=time::add_days_to_date( $today, -14 ); my $events = playout::get( $config, - { + { project_id => $params->{project_id}, studio_id => $params->{studio_id}, - order => 'modified_at desc, start desc', - limit => 500 + order => 'modified_at asc, start asc', + from => $startDate } ); - # print '<pre>'.Dumper($events).'</pre>'; unless ( defined $events ) { uac::print_error("not found"); return; } + for my $event (@$events) { $event->{stream_size} =~ s/(\d)(\d\d\d)$/$1\.$2/g; $event->{stream_size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; - $event->{duration} =~ s/(\d\.\d)(\d+)$/$1/g; - $event->{duration} =~ s/(\d)\.0/$1/g; + $event->{duration} =~ s/(\d\.\d)(\d+)$/$1/g; + $event->{duration} =~ s/(\d)\.0/$1/g; $event->{rms_left} = formatLoudness( $event->{rms_left} ); $event->{rms_right} = formatLoudness( $event->{rms_right} ); $event->{bitrate} = formatBitrate($event); $event->{duration} = formatDuration($event); + if ($event->{start} lt $today){ + $event->{class} = "past"; + } } $params->{events} = $events; - - #print Dumper($events); } sub formatDuration { @@ -129,10 +128,10 @@ sub formatDuration { my $duration = $event->{duration}; return '' unless defined $duration; return '' if $duration eq ''; - my $result = int( ( $duration + 3600 ) * 10 ) % 600; + my $result = ( ( $duration +30 ) % 60)-30; my $class = "ok"; - $class = "warn" if $result > 1; - $class = "error" if $result > 10; + $class = "warn" if abs($result) > 1; + $class = "error" if abs($result) > 2; return sprintf( qq{<div class="%s">%.01f</div>}, $class, $duration ); } diff --git a/website/agenda/planung/showImage.cgi b/website/agenda/planung/showImage.cgi index df610ca..2995215 100755 --- a/website/agenda/planung/showImage.cgi +++ b/website/agenda/planung/showImage.cgi @@ -34,10 +34,9 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); + my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio_timeslots.cgi index 915076c..a938c6d 100755 --- a/website/agenda/planung/studio_timeslots.cgi +++ b/website/agenda/planung/studio_timeslots.cgi @@ -41,10 +41,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 9dd8724..554252f 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -34,10 +34,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/user_settings.cgi b/website/agenda/planung/user_settings.cgi index f3e2fd4..6ec3955 100755 --- a/website/agenda/planung/user_settings.cgi +++ b/website/agenda/planung/user_settings.cgi @@ -32,10 +32,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/user_stats.cgi b/website/agenda/planung/user_stats.cgi index 1457344..52a19aa 100755 --- a/website/agenda/planung/user_stats.cgi +++ b/website/agenda/planung/user_stats.cgi @@ -34,10 +34,9 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); + my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index dc90d4b..408707d 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -30,10 +30,8 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); my $request = { url => $ENV{QUERY_STRING} || '', diff --git a/website/agenda/planung/work_time.cgi b/website/agenda/planung/work_time.cgi index b2ab21e..95d15ac 100755 --- a/website/agenda/planung/work_time.cgi +++ b/website/agenda/planung/work_time.cgi @@ -41,12 +41,9 @@ my $user_presets = uac::get_user_presets( } ); $params->{default_studio_id} = $user_presets->{studio_id}; -$params->{studio_id} = $params->{default_studio_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); -$params->{project_id} = $user_presets->{project_id} - if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); +$params = uac::setDefaultStudio( $params, $user_presets ); +$params = uac::setDefaultProject( $params, $user_presets ); -#print STDERR $params->{project_id}."\n"; my $request = { url => $ENV{QUERY_STRING} || '', params => { From eaaea81ed4b8ccac3392e99d6fe2045ff42228a7 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 14 Oct 2018 00:05:04 +0200 Subject: [PATCH 037/391] set default project and studio at user settings --- install/create.sql | 2 + install/migrate.sql | 4 ++ lib/calcms/uac.pm | 10 ++-- lib/calcms/user_settings.pm | 7 +-- .../agenda/planung/pot/de/user_settings.po | 8 +++ .../agenda/planung/pot/en/user_settings.po | 9 ++++ website/agenda/planung/user_settings.cgi | 51 ++++++++++++++----- 7 files changed, 68 insertions(+), 23 deletions(-) diff --git a/install/create.sql b/install/create.sql index fbbb206..3c23393 100644 --- a/install/create.sql +++ b/install/create.sql @@ -1020,6 +1020,8 @@ CREATE TABLE `calcms_user_settings` ( `language` varchar(3) DEFAULT 'de', `period` varchar(16) DEFAULT 'month', `calendar_fontsize` smallint(5) unsigned DEFAULT '12', + `project_id` INT(10) UNSIGNED NULL, + `studio_id` INT(10) UNSIGNED NULL, PRIMARY KEY (`id`,`user`) USING BTREE, KEY `user` (`user`) ) ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; diff --git a/install/migrate.sql b/install/migrate.sql index 989ee5f..79df2a4 100644 --- a/install/migrate.sql +++ b/install/migrate.sql @@ -243,3 +243,7 @@ ALTER TABLE `calcms`.`calcms_user_stats` ADD COLUMN `upload_file` INT(10) UNSIGNED NULL DEFAULT 0 AFTER `delete_series`, ADD COLUMN `download_file` INT(10) UNSIGNED NULL DEFAULT 0 AFTER `upload_file`; +ALTER TABLE `calcms`.`calcms_user_settings` +ADD COLUMN `project_id` INT(10) UNSIGNED NULL AFTER `calendar_fontsize`, +ADD COLUMN `studio_id` INT(10) UNSIGNED NULL AFTER `project_id`; + diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 7ace2a2..297fa30 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -664,6 +664,10 @@ sub get_user_presets { my $studio_id = $options->{studio_id} || ''; $config->{access}->{write} = 0; + my $user_settings = user_settings::get( $config, { user => $user } ); + $project_id = $user_settings->{project_id} if $project_id eq ''; + $studio_id = $user_settings->{studio_id} if $studio_id eq ''; + #get my $admin_roles = get_admin_user_roles( $config, { user => $user } ); @@ -688,8 +692,6 @@ sub get_user_presets { $project_id = $projects->[0]->{project_id}; } - #print STDERR "project:$project_id\n"; - #check if studios are assigned to project my $studios = project::get_studios( $config, { project_id => $project_id } ); $error = "no studio is assigned to project" if scalar @$studios == 0; @@ -709,7 +711,7 @@ sub get_user_presets { } $error = "studio is not assigned to user" if ( $studioFound == 0 ); } else { - $studio_id = $studios->[0]->{id}; + $studio_id = $studios->[0]->{id} unless defined $studio_id; } } else { @@ -725,7 +727,7 @@ sub get_user_presets { } $error = "studio is not assigned to project" if ( $studioFound == 0 ); } else { - $studio_id = $studios->[0]->{id}; + $studio_id = $studios->[0]->{id} unless defined $studio_id; } } diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 964648f..67bdd43 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -166,9 +166,6 @@ sub get { $conditions }; - #print $query."\n"; - #print Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); return $entries->[0] || undef; } @@ -178,7 +175,6 @@ sub insert { my $entry = shift; return unless ( defined $entry->{user} ); - return unless ( defined $entry->{colors} ); my $dbh = db::connect($config); return db::insert( $dbh, 'calcms_user_settings', $entry ); } @@ -188,7 +184,6 @@ sub update { my $entry = shift; return unless ( defined $entry->{user} ); - return unless ( defined $entry->{colors} ); my $dbh = db::connect($config); my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); @@ -200,6 +195,7 @@ sub update { set $values where user=? }; + #print STDERR Dumper($query).Dumper(\@bind_values); db::put( $dbh, $query, \@bind_values ); print "done\n"; } @@ -219,7 +215,6 @@ sub delete { }; my $bind_values = [ $entry->{user} ]; - #print '<pre>$query'.$query.Dumper($bind_values).'</pre>'; db::put( $dbh, $query, $bind_values ); } diff --git a/website/agenda/planung/pot/de/user_settings.po b/website/agenda/planung/pot/de/user_settings.po index bb154fe..7915c9f 100644 --- a/website/agenda/planung/pot/de/user_settings.po +++ b/website/agenda/planung/pot/de/user_settings.po @@ -7,6 +7,12 @@ msgstr "Einstellungen" msgid "label_language" msgstr "Sprache" +msgid "label_studio" +msgstr "Studio" + +msgid "label_project" +msgstr "Projekt" + msgid "label_color" msgstr "Farbe" @@ -76,3 +82,5 @@ msgstr "Passwort (Wiederholung)" msgid "password_hint" msgstr "mindestens 8 Zeichen und (kleine und große Buchstaben, Zahlen und Sonderzeichen)" +msgid "setDefaultProjectStudio" +msgstr "Projekt und Studio als Default setzen" diff --git a/website/agenda/planung/pot/en/user_settings.po b/website/agenda/planung/pot/en/user_settings.po index 07e9e42..4c500d9 100644 --- a/website/agenda/planung/pot/en/user_settings.po +++ b/website/agenda/planung/pot/en/user_settings.po @@ -7,6 +7,12 @@ msgstr "user settings" msgid "label_language" msgstr "language" +msgid "label_studio" +msgstr "Studio" + +msgid "label_project" +msgstr "Project" + msgid "label_color" msgstr "color" @@ -75,3 +81,6 @@ msgstr "Password (repeat)" msgid "password_hint" msgstr "at least 8 characters (small and big characters, numbers and special characters)" + +msgid "setDefaultProjectStudio" +msgstr "set project and studio for default" diff --git a/website/agenda/planung/user_settings.cgi b/website/agenda/planung/user_settings.cgi index 6ec3955..27faca7 100755 --- a/website/agenda/planung/user_settings.cgi +++ b/website/agenda/planung/user_settings.cgi @@ -56,6 +56,7 @@ our $errors = []; if ( defined $params->{action} ) { update_settings( $config, $request ) if ( $params->{action} eq 'save' ); + updateDefaultProjectStudio( $config, $request ) if ( $params->{action} eq 'updateDefaultProjectStudio' ); } $config->{access}->{write} = 0; show_settings( $config, $request ); @@ -103,17 +104,39 @@ sub show_settings { $params->{loc} = localization::get( $config, { language => $language, file => 'user_settings' } ); - #print STDERR Dumper($params->{loc}); - for my $color ( @{ $params->{colors} } ) { $color->{title} = $params->{loc}->{ $color->{title} }; } + uac::set_template_permissions( $permissions, $params ); - #print Dumper($permissions); template::process( $config, 'print', $params->{template}, $params ); +} - #print '<pre>'.Dumper($user_settings); +sub updateDefaultProjectStudio { + my $config = shift; + my $request = shift; + + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + my $user = $params->{presets}->{user}; + + my $settings = { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + }; + + my $results = user_settings::get( $config, { user => $user } ); + if ( defined $results ) { + uac::print_info("update project and studio settings"); + $config->{access}->{write} = 1; + user_settings::update( $config, $settings ); + } else { + uac::print_info("insert user settings, as missing on updating default project and studio"); + update_settings($config, $request); + } + $config->{access}->{write} = 0; } sub update_settings { @@ -137,20 +160,22 @@ sub update_settings { } my $settings = { - user => $user, - colors => join( "\n", @colors ), - language => $params->{language}, - period => $params->{period} + user => $user, + colors => join( "\n", @colors ), + language => $params->{language}, + period => $params->{period}, }; my $results = user_settings::get( $config, { user => $user } ); - if ( defined $results ) { - uac::print_info("update"); + if ( defined $results ) { + uac::print_info("update user settings"); $config->{access}->{write} = 1; user_settings::update( $config, $settings ); } else { $config->{access}->{write} = 1; - uac::print_info("insert"); + uac::print_info("insert user settings"); + $settings->{project_id} = $params->{project_id}; + $settings->{studio_id} = $params->{studio_id}; user_settings::insert( $config, $settings ); } $config->{access}->{write} = 0; @@ -168,7 +193,7 @@ sub check_params { $checked->{template} = $template; #numeric values - for my $param ( 'project_id', 'default_studio_id', 'studio_id' ) { + for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'default_studio', 'default_project' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; } @@ -198,7 +223,7 @@ sub check_params { #actions if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(save)$/ ) { + if ( $params->{action} =~ /^(save|updateDefaultProjectStudio)$/ ) { $checked->{action} = $params->{action}; } } From 1ae2af09e9f3a2d0874fe07e94e0f45cfc504cc2 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 14 Oct 2018 00:09:43 +0200 Subject: [PATCH 038/391] fix login from other usecases than calendar --- lib/calcms/auth.pm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index a0ffba5..8f7bf90 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -30,15 +30,15 @@ sub get_user { debug("get_user") if $debug; # login or logout on action - if ( defined $params->{action} ) { - if ( $params->{action} eq 'login' ) { + if ( defined $params->{authAction} ) { + if ( $params->{authAction} eq 'login' ) { my $user = login( $config, $params->{user}, $params->{password} ); - $cgi->delete( 'user', 'password', 'uri', 'action' ) if defined $cgi; + $cgi->delete( 'user', 'password', 'uri', 'authAction' ) if defined $cgi; return $user; - } elsif ( $params->{action} eq 'logout' ) { + } elsif ( $params->{authAction} eq 'logout' ) { $cgi = new CGI::Simple() unless defined $cgi; logout($cgi); - $cgi->delete( 'user', 'password', 'uri', 'action' ); + $cgi->delete( 'user', 'password', 'uri', 'authAction' ); return undef; } } @@ -109,7 +109,7 @@ sub logout { return show_login_form( 'Cant remove cookie', 'logged out' ); } my $uri = $ENV{HTTP_REFERER} || ''; - $uri =~ s/action=logout//g; + $uri =~ s/authAction=logout//g; print $cgi->redirect($uri); return; } @@ -349,8 +349,8 @@ sub show_login_form { <input type="password" name="password"><br/> </div> <div class="row"> - <input class="button" type="submit" name="action" value="login"> - <input class="button" type="submit" name="action" value="logout"> + <input class="button" type="submit" name="authAction" value="login"> + <input class="button" type="submit" name="authAction" value="logout"> </div> <input type="hidden" name="uri" value="$uri"> </form> From a52f219b89ce8571f9f65b4d2fdc5e012bc771ee Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 10 Dec 2018 12:57:35 +0100 Subject: [PATCH 039/391] update jquery --- website/agenda/planung/js/jquery.min.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/website/agenda/planung/js/jquery.min.js b/website/agenda/planung/js/jquery.min.js index 5fd1339..35a1dfb 100644 --- a/website/agenda/planung/js/jquery.min.js +++ b/website/agenda/planung/js/jquery.min.js @@ -1,6 +1,3 @@ -/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; -}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return c=d.getElementsByTagName("body")[0],c&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),V=["Top","Right","Bottom","Left"],W=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function X(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&U.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var Y=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)Y(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/<tbody/i;function ia(a){Z.test(a.type)&&(a.defaultChecked=a.checked)}function ja(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ca(b),q=[],r=0;o>r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?"<table>"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ma.test(f)?this.mouseHooks:la.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ra()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ra()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&("undefined"==typeof a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?pa:qa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:qa,isPropagationStopped:qa,isImmediatePropagationStopped:qa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=pa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=pa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=pa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){return ka.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ka.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!ka.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return sa(this,a,b,c,d)},one:function(a,b,c,d){return sa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=qa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ta=/ jQuery\d+="(?:null|\d+)"/g,ua=new RegExp("<(?:"+ba+")[\\s/>]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/<script|<style|<link/i,xa=/checked\s*(?:[^=]|=\s*.checked.)/i,ya=/^true\/(.*)/,za=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");if(j.style){j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}});function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}}}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&W(d)&&(f[g]=n._data(d,"olddisplay",Ma(d.nodeName)))):(e=W(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function db(a,b,c){var d=Ya.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function eb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+V[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+V[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+V[f]+"Width",!0,e))):(g+=n.css(a,"padding"+V[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+V[f]+"Width",!0,e)));return g}function fb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Sa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Oa.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+eb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Sa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=U.exec(c))&&e[1]&&(c=X(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Sa(a,b,d)),"normal"===f&&b in $a&&(f=$a[b]),""===c||c?(e=parseFloat(f),c===!0||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Xa.test(n.css(a,"display"))&&0===a.offsetWidth?Pa(a,Za,function(){return fb(a,b,d)}):fb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return db(a,c,d?eb(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Wa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){return b?Pa(a,{display:"inline-block"},Sa,[a,"marginRight"]):void 0}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{ -marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px":void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ob(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&W(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k="none"===j?n._data(a,"olddisplay")||Ma(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==Ma(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],jb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?Ma(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=nb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function pb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function qb(a,b,c){var d,e,f=0,g=qb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=hb||lb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:hb||lb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(pb(k,j.opts.specialEasing);g>f;f++)if(d=qb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,nb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(qb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return X(c.elem,a,U.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],qb.tweeners[c]=qb.tweeners[c]||[],qb.tweeners[c].unshift(b)},prefilters:[ob],prefilter:function(a,b){b?qb.prefilters.unshift(a):qb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(W).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=qb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&kb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(mb(b,!0),a,d,e)}}),n.each({slideDown:mb("show"),slideUp:mb("hide"),slideToggle:mb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(hb=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),hb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ib||(ib=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(ib),ib=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},vb.id=vb.name=vb.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(2>u))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&300>b||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({ -padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n}); +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w}); From 75b40ff6fe409f68c1afe8d0a189fdba773c8648 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 10 Dec 2018 12:58:19 +0100 Subject: [PATCH 040/391] remove dependencies --- website/agenda/add_comment.cgi | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/website/agenda/add_comment.cgi b/website/agenda/add_comment.cgi index 61ef5c1..9f7e932 100755 --- a/website/agenda/add_comment.cgi +++ b/website/agenda/add_comment.cgi @@ -1,7 +1,6 @@ #! /usr/bin/perl -w -use warnings "all"; -use diagnostics; +use warnings; use strict; use Data::Dumper; @@ -33,7 +32,7 @@ my $request={ }; $params=$request->{params}->{checked}; -print $cgi->header('text/plain')."\n"; +print "Content-Type:text/plain\n\n"; print STDERR "add comment: ".Dumper($params); my $comment =$params->{comment}; @@ -239,7 +238,7 @@ sub escape_text{ $s=~s/<[a-z\!\?\[\/][^\>]+?\>//gi; $s=~s/<[a-z\!\?\[\/]\>//gi; - $s = markup::escapeHTML($s); + $s = markup::escapeHtml($s); $s=~s/[\n\r]+/\<br \/\>/g; $s=~s/\<br \/\>/\<br \/\>\n/g; $s=~s/\<br \/\>\s*$//g; From 6f6d264c8be1b58e5107436dd3cd9386ffba5041 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 10 Dec 2018 12:58:42 +0100 Subject: [PATCH 041/391] fix calendar table view --- website/agenda/planung/calendar.cgi | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 39abd8f..e0d3375 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -1476,8 +1476,12 @@ sub calc_positions { my ( $start_hour, $start_min ) = getTime( $event->{start_time} ); my ( $end_hour, $end_min ) = getTime( $event->{end_time} ); - $start_hour += 24 if $start_hour < $start_of_day; - $end_hour += 24 if $end_hour < $start_of_day; + $start_hour += 24 if $start_hour < $start_of_day; + $end_hour += 24 if $end_hour < $start_of_day; + $end_hour += 24 if $start_hour > $end_hour; + $end_hour += 24 if ($start_hour == $end_hour) && ($start_min == $end_min); + + $event->{ystart} = $start_hour * 60 + $start_min; $event->{yend} = $end_hour * 60 + $end_min; } From c72e56f83bcbb817fd35eaacbb6767f3db86ce5d Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 10 Dec 2018 13:01:51 +0100 Subject: [PATCH 042/391] improve image manager --- website/agenda/planung/event.cgi | 6 +- website/agenda/planung/image.cgi | 14 +- website/agenda/planung/js/image.js | 210 ++++++++++++------ website/agenda/planung/projects.cgi | 6 +- website/agenda/planung/series.cgi | 3 +- website/agenda/planung/studio_timeslots.cgi | 5 + website/agenda/planung/studios.cgi | 10 +- .../agenda/planung/templates/edit_event.html | 61 +++-- .../agenda/planung/templates/edit_series.html | 30 +-- website/agenda/planung/templates/image.html | 22 +- .../agenda/planung/templates/image_edit.html | 7 +- .../agenda/planung/templates/projects.html | 21 +- website/agenda/planung/templates/studios.html | 30 +-- 13 files changed, 241 insertions(+), 184 deletions(-) diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 6b4f27e..4c4c476 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -231,6 +231,8 @@ sub show_event { $event->{start} =~ s/(\d\d:\d\d)\:\d\d/$1/; $event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/; + $event->{image} = $params->{setImage} if defined $params->{setImage}; + # overwrite event with old one #my $series_events=get_series_events($config,{ # project_id => $params->{project_id}, @@ -814,15 +816,13 @@ sub check_params { for my $param ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync', 'get_rerun' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) { $checked->{$param} = $1; - - # print STDERR "check $param = $1\n"; } } #strings for my $param ( 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', 'category', 'image', - 'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url' + 'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url', 'setImage' ) { if ( defined $params->{$param} ) { diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index dd8c2fe..97b9132 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -61,7 +61,13 @@ $params = $request->{params}->{checked}; #show header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); + +if ($params->{search}){ +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); +}else{ template::process( $config, 'print', template::check( $config, 'ajax_header.html' ), $headerParams ); +} + return unless defined uac::check( $config, $params, $user_presets ); my $local_media_dir = $config->{locations}->{local_media_dir}; @@ -214,6 +220,10 @@ sub show_image { 'projects' => project::get_with_dates($config), 'project_id' => $params->{project_id}, 'studio_id' => $params->{studio_id}, + 'series_id' => $params->{series_id}, + 'event_id' => $params->{event_id}, + 'pid' => $params->{pid}, + 'target' => $params->{target}, 'filename' => $params->{filename} }; @@ -402,7 +412,7 @@ sub check_params { #numeric values $checked->{limit} = 100; - for my $param ( 'project_id', 'studio_id', 'series_id', 'default_studio_id', 'limit' ) { + for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id', 'pid', 'default_studio_id', 'limit' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; } @@ -432,7 +442,7 @@ sub check_params { #Words $checked->{delete_image} = ''; $checked->{save_image} = ''; - for my $attr ( 'save_image', 'delete_image', 'show', 'filename' ) { + for my $attr ( 'save_image', 'delete_image', 'show', 'filename', 'target' ) { $checked->{$attr} = ''; if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) { $checked->{$attr} = $params->{$attr}; diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index d635b47..dc37966 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -1,6 +1,6 @@ -var windowOffsetX=32; -var windowOffsetY=32; +var windowOffsetX=0; +var windowOffsetY=0; // get current selected tab by tabs-id function getSelectedTab(id){ @@ -11,16 +11,25 @@ function getSelectedTab(id){ function setActiveImage(elem){ $('div.image').removeClass("active"); + if (elem){ $(elem).addClass("active"); }else{ - $('div.image').first().addClass("active"); + $('div.images div.image').first().addClass("active"); } } // open dialog to show or edit image properties -function updateImageEditor(filename, elem){ - var url='image.cgi?show='+filename+'&template=image_edit.html&project_id='+project_id+'&studio_id='+studio_id +function updateImageEditor(elem, filename, target, project_id, studio_id, series_id, event_id, pid){ + var url='image.cgi?show='+filename; + url += '&template=image_edit.html'; + url += '&target=' + target; + url += '&project_id='+project_id; + url += '&studio_id='+studio_id; + if ( (series_id != null) && (series_id != '') ) url += '&series_id='+series_id; + if ( (event_id != null) && (event_id != '') ) url += '&event_id='+event_id; + if ( (pid != null) && (pid != '') ) url += '&pid='+pid; + console.log("updateImageEditor "+url); $("#img_editor").load( @@ -31,21 +40,9 @@ function updateImageEditor(filename, elem){ ); } -// set editor image and image url to selected image -function selectThisImage(filename){ - $('#'+selectImageId).val(filename); - - var url = 'showImage.cgi?project_id='+project_id+'&studio_id='+studio_id+'&filename=' + filename; - console.log("select image "+url); - $('#imagePreview').prop('src',url); - - showContent(); - return false; -} - -// update selectImage container by images matching to search -function searchImage(){ - var url='image.cgi?project_id='+project_id+'&studio_id='+studio_id; +// build search url and load +function searchImage(target, project_id, studio_id, series_id, event_id, pid){ + var url='image.cgi?'; var value=$('#image_manager input[name=search]').val(); value=value.replace(/[^a-zA-Z0-9]/g,'%'); @@ -55,51 +52,18 @@ function searchImage(){ var filename = filename.replace(/^.*[\\\/]/, '') if (filename!=null) url+='&filename='+encodeURIComponent(filename); - if(selectedImageTab!='upload'){ - url+='#image-tabs-select' - } + url += '&target=' + target; + url += '&project_id='+project_id; + url += '&studio_id='+studio_id; + if ( (series_id != null) && (series_id != '') ) url += '&series_id='+series_id; + if ( (event_id != null) && (event_id != '') ) url += '&event_id='+event_id; + if ( (pid != null) && (pid != '') ) url += '&pid='+pid; - console.log("searchImage(), load url="+url) - updateContainer('selectImage', url, function(){ - $( "#image-tabs" ).tabs(); - if (filename!=null) updateImageEditor(encodeURIComponent(filename)); - }); - return false; + + load(url); } -function hideContent(){ - $(window).resize(function () { - $('.ui-dialog').css({ - 'width': $(window).width() - windowOffsetX, - 'height': $(window).height() - windowOffsetY, - 'left': windowOffsetX/2+'px', - 'top': windowOffsetY/2+'px', - modal: true - }); - }).resize(); - - /* - $('.editor').each( - function(){ - $(this).hide(); - } - ); - */ - return false; -} - -function showContent(){ - /* - $('.editor').each( - function(){ - $(this).show(); - } - ); - */ - $('#selectImage').remove(); - return false; -} // save image function saveImage(id, filename) { @@ -188,9 +152,96 @@ function decreaseImageSize(){ $('#content div.image').css('background-size', value+'px'); } +function selectImage( searchValue, imageUrl, target, project_id, studio_id, series_id, event_id, pid){ + searchValue = searchValue.replace(/[^a-zA-Z0-9]/g,'%'); + + var url="image.cgi"; + url += "?target="+target; + url += '&project_id='+project_id + url += '&studio_id='+studio_id; + + if( (series_id!=null) && (series_id != '') ){ + url+='&series_id='+series_id; + } + if( (event_id!=null) && (event_id != '') ){ + url+='&event_id='+event_id; + } + if( (pid!=null) && (pid != '') ){ + url+='&pid='+pid; + } + + url += "&search="+encodeURIComponent(searchValue) + + if(imageUrl!=null){ + var filename=imageUrl.split('%2F').pop(); + url+='&filename='+filename; + } + load(url); +} + +function assignImage(filename, target, project_id, studio_id, series_id, event_id, pid){ + var url = target +".cgi"; + url += "?setImage=" + filename; + url += '&project_id=' + project_id; + url += '&studio_id=' + studio_id; + + if( (series_id != null) && (series_id != '') ){ + url += '&series_id=' + series_id; + } + + if( (event_id != null) && (event_id != '') ){ + url += '&event_id=' + event_id; + } + + if( (pid!=null) && (pid != '') ){ + url+='&pid='+pid; + } + + load(url); +} + +$(document).ready( + function(){ + if ( window.location.href.indexOf("&filename=") > 0) + setActiveImage(); + } +); + + +/* +function hideContent(){ + $('.editor').hide(); + + $(window).resize(function () { + $('.ui-dialog').css({ + 'width': $(window).width() - windowOffsetX, + 'height': $(window).height() - windowOffsetY, + 'position': 'absolute', + 'left': 0, + 'top': 0, + modal: true + }); + + var imagesPos= $('div.images').position(); + var height = ( $(window).height() - imagesPos.top ); + if(height<64) height = 64; + console.log("windowHeight="+$(window).height()+" div.images.pos.top="+imagesPos.top) + $('div.images').css("height", height +"px"); + + }).resize(); + + return false; +} + +function showContent(){ + $('.editor').show(); + $('#selectImage').remove(); + return false; +} + //select image load into selectImage box -function selectImage(project_id, studio_id, imageId, searchValue, imageUrl, series_id){ +function selectImageOld(project_id, studio_id, imageId, searchValue, imageUrl, series_id){ selectImageId = imageId; searchValue = searchValue.replace(/[^a-zA-Z0-9]/g,'%'); @@ -205,26 +256,28 @@ function selectImage(project_id, studio_id, imageId, searchValue, imageUrl, seri url+='&filename='+filename; } - var x=$(window).width() - windowOffsetX; - var y=$(window).height() - windowOffsetY; - console.log("selectImage(), load url="+url) + var x = $(window).width() - windowOffsetX; + var y = $(window).height() - windowOffsetY; + console.log("selectImage(), load url="+url); + $('#selectImage').remove(); $('body').append('<div id="selectImage"></div>'); - + $('#selectImage').load( url, function(){ hideContent(); - $('#selectImage').dialog({ appendTo: "#content", - title:"select image", - width:x, - height:y, - close: function( event, ui ) { + title: "select image", + top: 0, + left: 0, + width: x, + height: y, + close: function( event, ui ) { showContent(); - $('.ui-dialog').remove(); + $('#selectImage').remove(); } }); updateImageEditor(filename); @@ -234,4 +287,17 @@ function selectImage(project_id, studio_id, imageId, searchValue, imageUrl, seri return false; } +// set editor image and image url to selected image +function selectThisImage(filename){ + $('#'+selectImageId).val(filename); + + var url = 'showImage.cgi?project_id='+project_id+'&studio_id='+studio_id+'&filename=' + filename; + console.log("select image "+url); + $('#imagePreview').prop('src',url); + + showContent(); + return false; +} + +*/ diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 2b92f8c..b6e259e 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -254,6 +254,10 @@ sub show_projects { } $project->{assigned_studios} = $assigned_studios; $project->{unassigned_studios} = $unassigned_studios; + + if ( (defined $params->{setImage}) && ($project->{pid} eq $params->{pid}) ){ + $project->{image} = $params->{setImage}; + } } $params->{projects} = $projects; @@ -282,7 +286,7 @@ sub check_params { } } - for my $param ( 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email' ) { + for my $param ( 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email', 'setImage' ) { if ( defined $params->{$param} ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 047bebc..d00bcb3 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1198,6 +1198,7 @@ sub show_series { $serie->{series_dates} = $series_dates; $serie->{show_hint_to_add_schedule} = $params->{show_hint_to_add_schedule}; + $serie->{image} = $params->{setImage} if $params->{setImage}; #copy series to params #$params->{series}=[$serie]; @@ -1280,7 +1281,7 @@ sub check_params { } for my $param ( 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'image_label', - 'assign_event_series_name', 'assign_event_title', 'comment', 'podcast_url', 'archive_url' ) + 'assign_event_series_name', 'assign_event_title', 'comment', 'podcast_url', 'archive_url', 'setImage' ) { if ( defined $params->{$param} ) { diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio_timeslots.cgi index a938c6d..5c50ddd 100755 --- a/website/agenda/planung/studio_timeslots.cgi +++ b/website/agenda/planung/studio_timeslots.cgi @@ -74,6 +74,11 @@ if ( $action eq 'show_dates' ) { <script src="js/jquery-ui-timepicker.js" type="text/javascript"></script> <link href="css/jquery-ui-timepicker.css" type="text/css" rel="stylesheet" /> <link href="css/theme.default.css" rel="stylesheet"> + + <script src="js/jquery.tablesorter.min.js"></script> + <script src="js/jquery.tablesorter.widgets.min.js"></script> + <script src="js/jquery.tablesorter.scroller.js"></script> + <script src="js/studio_timeslots.js" type="text/javascript"></script> <script src="js/datetime.js" type="text/javascript"></script> <link rel="stylesheet" href="css/studio_timeslots.css" type="text/css" /> diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 554252f..7a117d5 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -193,6 +193,14 @@ sub show_studios { project_id => $params->{project_id} } ); + + if ($params->{setImage}){ + for my $studio (@$studios){ + next unless $studio->{id} eq $params->{studio_id}; + $studio->{image}=$params->{setImage}; + } + } + $params->{studios} = $studios; $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'studios' } ); uac::set_template_permissions( $permissions, $params ); @@ -219,7 +227,7 @@ sub check_params { } } - for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar', 'image' ) { + for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar', 'image', 'setImage' ) { if ( defined $params->{$param} ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit_event.html index b47a1be..b060456 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit_event.html @@ -152,55 +152,54 @@ </div> -<!-- header --> -<!-- -<TMPL_IF series_id> - <div class="header"> - <TMPL_VAR series_name> <TMPL_IF title>- <TMPL_VAR title></TMPL_IF> - </div> -</TMPL_IF> ---> - <div> <!-- import rerun from old event of series or any event of any project --> <TMPL_IF .allow.update_event> - <div id="selectRerun" style="display:none;" class="panel"> - <TMPL_VAR .loc.label_rerun> + <div id="selectRerun" style="display:none;" class="select panel"> - <div onclick="selectOldEventFromSeries('rerunEventId','<TMPL_VAR start_date>'); updateCheckBox($(this).find('input:radio'),true);"> + <div class="panel-header"> + + <b><TMPL_VAR weekday_short_name>, <TMPL_VAR start_date_name>, <TMPL_VAR start_time_name></b>, + <TMPL_VAR .loc.label_overwrite_event> <TMPL_VAR .loc.label_rerun> + </div> + + <div class="panel-body"> + <div onclick="selectOldEventFromSeries('rerunEventId','<TMPL_VAR start_date>'); updateCheckBox($(this).find('input:radio'),true);" + class="option" + > <input type="radio" name="group" class="default"> <TMPL_VAR .loc.label_rerun_select_old> </div> - <div onclick="selectOtherEvent('rerunEventId'); updateCheckBox($(this).find('input:radio'),true);"> + <div onclick="selectOtherEvent('rerunEventId'); updateCheckBox($(this).find('input:radio'),true);" + class="option" + > <input type="radio" name="group"> <TMPL_VAR .loc.label_rerun_select_other> </div> - <div> + <input id="rerunEventId" value="-1" style="display:none" onchange="copyFromEvent('rerunEventId')"> + + <div id="import_rerun" class="active" style="display:none;"></div> <button onclick="hideSelectRerun('rerunEventId')"><TMPL_VAR .loc.button_cancel></button> </div> - - <input id="rerunEventId" value="-1" style="display:none" onchange="copyFromEvent('rerunEventId')"> - </div> - - <div id="import_rerun_header" style="display:none;"> - <b><TMPL_VAR weekday_short_name>, <TMPL_VAR start_date_name>, <TMPL_VAR start_time_name></b>, - <TMPL_VAR .loc.label_overwrite_event> - <div id="import_rerun" class="active" style="display:none;"></div> </div> </TMPL_IF> <!-- move to other series --> <TMPL_IF .allow.assign_series_events> <div id="selectChangeSeries" class="active" style="display:none" class="panel"> + <div class="panel-header"> <TMPL_VAR .loc.button_assign_series> + </div> + <div class="panel-body"> <div id="changeSeriesContainer"> </div> <input id="changeSeriesId" value="-1" style="display:none"> <button onclick="hideChangeSeries()"><TMPL_VAR .loc.button_cancel></button> <button onclick="changeSeries()"><TMPL_VAR .loc.button_assign></button> </div> + </div> </TMPL_IF> @@ -457,14 +456,13 @@ </td> <td> <TMPL_IF .allow.update_event_field_image> - <button onclick="selectImage('<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','image_<TMPL_VAR event_id>','<TMPL_VAR series_name escape=HTML>','<TMPL_VAR image ESCAPE=url>','<TMPL_VAR series_id>');return false;" - style="padding:0;" + <button onclick="selectImage('<TMPL_VAR series_name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'event', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','<TMPL_VAR series_id>','<TMPL_VAR event_id>'); return false;" + class="selectImage" > <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studioId=<TMPL_VAR studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> - <input id="image_<TMPL_VAR event_id>" name="image" value="<TMPL_VAR image>" class="image" style="float:right" placeholder="<TMPL_VAR .loc.label_image>"> + <input id="image_<TMPL_VAR event_id>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.label_image>"> <input type="hidden" name="series_image" value="<TMPL_VAR series_image>" > - <!--(series_image:<TMPL_VAR series_image>,image=<TMPL_VAR image>)--> </TMPL_IF> </td> </tr> @@ -499,9 +497,8 @@ <!-- buttons --> <TMPL_UNLESS edit_lock> - <table> - <tr> - <td colspan="2"> + + <div class="buttons" style="text-align:center"> <TMPL_IF show_new_event_from_schedule> <TMPL_IF .allow.create_event_from_schedule> @@ -530,9 +527,7 @@ </TMPL_UNLESS> </TMPL_IF> </div> - </td> - </tr> - </table> + </TMPL_UNLESS> </form> @@ -550,8 +545,6 @@ <div class="label right"><TMPL_VAR .loc.label_modified_at> <TMPL_VAR modified_at> <TMPL_VAR .loc.label_modified_by> <TMPL_VAR modified_by>.</div> </TMPL_IF> -<div id="selectImage"></div> - </main> </body> diff --git a/website/agenda/planung/templates/edit_series.html b/website/agenda/planung/templates/edit_series.html index c9ca255..5badca6 100644 --- a/website/agenda/planung/templates/edit_series.html +++ b/website/agenda/planung/templates/edit_series.html @@ -25,7 +25,7 @@ </script> <style> - #editor div p a img { + #editor button img { float:right; } </style> @@ -57,9 +57,7 @@ </TMPL_IF> </div> - <table> - <tr><td colspan="2"> - <div class="header"> + <div class="panel-header"> <TMPL_IF has_single_events> <TMPL_VAR .loc.single_events> <TMPL_IF title><TMPL_VAR title></TMPL_IF> <TMPL_ELSE> @@ -67,8 +65,6 @@ <TMPL_IF series_name> <TMPL_VAR series_name></TMPL_IF><TMPL_IF title> - <TMPL_VAR title></TMPL_IF> </TMPL_IF> </div> - </td></tr> - </table> </div> @@ -95,22 +91,13 @@ <!-- edit template--> <TMPL_IF .allow.update_series_template> <div id="tabs-template"> - <!-- - <div class="header">Template</div> - <div class="buttons"> - <button onclick="edit_series('<TMPL_VAR .series_id>');return false;">edit</button> - </div> - --> - <div id="edit_<TMPL_VAR .series_id>" class="editor"> <!--style="display:none;"--> + <div id="edit_<TMPL_VAR .series_id>" class="editor"> <form method="post" action="series.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&series_id=<TMPL_VAR .series_id>#tabs-template"> <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> <input type="hidden" name="series_id" value="<TMPL_VAR .series_id>"> <table> - <!-- - <tr> <td class="label">program</td> <td><input name="program" value="<TMPL_VAR program>"></td></tr> - --> <TMPL_UNLESS has_single_events> <tr> <td class="label"><TMPL_VAR .loc.template_series></td> <td><input name="series_name" value="<TMPL_VAR series_name>" placeholder="<TMPL_VAR .loc.template_series>"></td></tr> @@ -133,11 +120,13 @@ <tr> <td class="label"><TMPL_VAR .loc.template_image></td> <td> <TMPL_IF .allow.read_image> - <button onclick="selectImage('<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','image_<TMPL_VAR .series_id>','<TMPL_VAR series_name escape=HTML>','<TMPL_VAR image escape=URL>','<TMPL_VAR series_id>');return false;" - style="padding:0;float:left" + <button class="selectImage" + onclick="selectImage('<TMPL_VAR series_name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'series', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','<TMPL_VAR series_id>'); return false;" > <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> + + <input type="hidden" name="series_image" value="<TMPL_VAR series_image>" > <input id="image_<TMPL_VAR .series_id>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.template_image>" readonly="readonly"> </TMPL_IF> </td></tr> @@ -453,7 +442,6 @@ <td class="time"><TMPL_VAR end_time></td> <td class="title"><TMPL_VAR full_title></td> <TMPL_IF .allow.update_event> - <td> <button onclick="edit_event('<TMPL_VAR event_id>','<TMPL_VAR .series_id>','<TMPL_VAR .studio_id>','<TMPL_VAR .project_id>','hide_series')" ><TMPL_VAR .loc.button_edit></button> @@ -475,10 +463,6 @@ <TMPL_UNLESS has_single_events> <!-- series members --> <div id="tabs-members"> - <!-- - <div class="header">Members</div> - --> - <table> <!-- add members --> diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 268090d..b1afb94 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -1,17 +1,3 @@ -<!-- -<script src="js/jquery.min.js" type="text/javascript"></script> -<script src="js/jquery-ui.min.js" type="text/javascript"></script> -<script src="js/admin.js" type="text/javascript"></script> -<script src="js/history.js" type="text/javascript"></script> -<script src="js/localization.js" type="text/javascript"></script> -<script src="js/localization-datetime.js" type="text/javascript"></script> -<script src="js/event.js" type="text/javascript"></script> -<script src="js/datetime.js" type="text/javascript"></script> - -<link rel="stylesheet" href="css/admin.css" type="text/css" /> -<link rel="stylesheet" href="css/jquery-ui.min.css" type="text/css" /> -<link rel="stylesheet" href="css/series.css" type="text/css" /> - --> <link type="text/css" href="css/image_manager.css" rel="stylesheet"/> <link type="text/css" href="css/fileUploader.css" rel="stylesheet"/> @@ -104,21 +90,19 @@ <form id="image_manager" action="image.cgi"> <input name="search" value="<TMPL_VAR search escape=0>" style="width:20em;"> <input type="hidden" name="filename" value="<TMPL_VAR filename escape=0>"> - <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> - <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> - <button onclick="searchImage();return false;"><TMPL_VAR .loc.button_search></button> + <button onclick="searchImage('<TMPL_VAR target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false;"><TMPL_VAR .loc.button_search></button> </form> <TMPL_VAR count> <TMPL_VAR .loc.label_search_hits><br /> <div style="clear:both;display: flex; flex-direction: row;"> - <div class="images" style="height:1000px;overflow-y:scroll"> + <div class="images" style="overflow-y:scroll"> <TMPL_LOOP images> <div class="image" id="img_<TMPL_VAR id>" style="background-image:url('showImage.cgi?project_id=<TMPL_VAR project_id>&studioId=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" title="<TMPL_VAR description>" - onclick="updateImageEditor('<TMPL_VAR filename>', this);return false;" + onclick="updateImageEditor(this, '<TMPL_VAR filename>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false;" > <div class="label"><TMPL_VAR name></div> </div> diff --git a/website/agenda/planung/templates/image_edit.html b/website/agenda/planung/templates/image_edit.html index b9ee5ab..90568e7 100644 --- a/website/agenda/planung/templates/image_edit.html +++ b/website/agenda/planung/templates/image_edit.html @@ -46,8 +46,9 @@ found no image <TMPL_LOOP images> <TMPL_IF filename> <div id="imageEditor"> - <button onclick="selectThisImage('<TMPL_VAR filename escape=0>'); return false"><TMPL_VAR .loc.select_image></button/> - <hr> + <button onclick="assignImage('<TMPL_VAR filename escape=0>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false"><TMPL_VAR .loc.select_image></button/> + + <div class="panel-body"> <form id="save_img_<TMPL_VAR id>" method="post" @@ -85,6 +86,8 @@ found no image <TMPL_VAR .loc.label_link>: {{<TMPL_VAR filename escape=0>|<TMPL_VAR name>}}<br> </form> + + </div> </div> </TMPL_IF> </TMPL_LOOP> diff --git a/website/agenda/planung/templates/projects.html b/website/agenda/planung/templates/projects.html index f4b618c..fe19c31 100644 --- a/website/agenda/planung/templates/projects.html +++ b/website/agenda/planung/templates/projects.html @@ -1,7 +1,6 @@ <link href="css/jquery-ui-timepicker.css" type="text/css" rel="stylesheet" /> <script src="js/jquery-ui-timepicker.js" type="text/javascript"></script> <script src="js/image.js" type="text/javascript"></script> -<link href="css/image-manager.css" type="text/css" rel="stylesheet" /> <script type="text/javascript"> var region='<TMPL_VAR loc.region>'; @@ -13,7 +12,7 @@ <div style="clear:both" class="newproject"> <button onclick="add_project('<TMPL_VAR name>')"><TMPL_VAR .loc.button_add_project></button><br/> - <div id="edit_new" class="card project editor" style="clear:both;display:none"> + <div id="edit_new" class="panel project editor" style="clear:both;display:none"> <form method="post"> <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> @@ -40,9 +39,9 @@ <div style="clear:both" class="flex"> <TMPL_LOOP projects> -<div class="card project"> +<div class="panel project"> <!-- buttons --> - <div> + <div class="panel-header"> <div class="title"><TMPL_VAR title></div> <TMPL_IF .allow.update_project> <button onclick="edit_project('<TMPL_VAR project_id>')" @@ -51,7 +50,7 @@ </div> <!-- view project --> - <div id="view_<TMPL_VAR project_id>" class="view"> + <div id="view_<TMPL_VAR project_id>" class="panel-body"> <table> <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td colspan="2"><img src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_name></td> <td colspan="2"><TMPL_VAR name>  </td></tr> @@ -79,7 +78,7 @@ <TMPL_IF .allow.update_project> <!-- update project --> - <div id="edit_<TMPL_VAR project_id>" class="editor" style="display:none"> + <div id="edit_<TMPL_VAR project_id>" class="panel-body" style="display:none"> <form method="post" action="projects.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>" id="project_<TMPL_VAR project_id>" > @@ -96,12 +95,12 @@ <tr><td class="label"> <TMPL_VAR .loc.label_image></td> <td> - <button onclick="selectImage('<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','image_<TMPL_VAR pid>','<TMPL_VAR series_name escape=HTML>','<TMPL_VAR image escape=URL>','<TMPL_VAR series_id>');return false;" - style="padding:0;float:left" + <button + class="selectImage" + onclick="selectImage('<TMPL_VAR name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'projects', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>', null, null, '<TMPL_VAR pid>'); return false;" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs"> + <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> - <!-- <input name="image">--> <input id="image_<TMPL_VAR pid>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.template_image>"> </td> </tr> @@ -177,8 +176,6 @@ </TMPL_LOOP> </div> -<div id="selectImage"> </div> - </main> </body> </html> diff --git a/website/agenda/planung/templates/studios.html b/website/agenda/planung/templates/studios.html index 332b412..a052701 100644 --- a/website/agenda/planung/templates/studios.html +++ b/website/agenda/planung/templates/studios.html @@ -1,12 +1,11 @@ <script src="js/image.js" type="text/javascript"></script> -<link href="css/image-manager.css" type="text/css" rel="stylesheet" /> <h2><TMPL_VAR .loc.title></h2> <TMPL_IF .allow.update_studio> <div style="clear:both" class="newstudio"> <button onclick="add_studio('<TMPL_VAR name>')"><TMPL_VAR .loc.button_add_studio></button><br/> - <div id="edit_new" class="studio editor" style="clear:both;display:none"> + <div id="edit_new" class="panel" style="clear:both;display:none"> <form method="post"> <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> @@ -30,22 +29,24 @@ <div style="clear:both" class="flex"> <TMPL_LOOP studios> -<div class="card studio"> - <div> - <div class="title"><TMPL_VAR name></div> - <TMPL_IF .allow.update_studio> - <button onclick="edit_studio('<TMPL_VAR id>')"><TMPL_VAR .loc.button_edit></button> - </TMPL_IF> +<div class="panel studio"> + <div class="panel-header"> + <TMPL_VAR name> + </div> + <div class="panel-body"> + <TMPL_IF .allow.update_studio> + <button onclick="edit_studio('<TMPL_VAR id>')"><TMPL_VAR .loc.button_edit></button> + </TMPL_IF> <TMPL_IF .allow.read_event> <button target="_blank" onclick="load('event_history.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR id>');" ><TMPL_VAR .loc.button_show_changes></button> </TMPL_IF> - </div> + </div> <!-- view studio --> - <div id="view_<TMPL_VAR id>" class="view"> + <div id="view_<TMPL_VAR id>" class="panel-body"> <table> <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td><img src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_name></td> <td><TMPL_VAR name>  </td></tr> @@ -57,7 +58,7 @@ <TMPL_IF .allow.update_studio> <!-- update studio --> - <div id="edit_<TMPL_VAR id>" class="editor" style="display:none"> + <div id="edit_<TMPL_VAR id>" class="editor" style="display:none"> <form method="post" id="studio_<TMPL_VAR id>"> <input type="hidden" name="id" value="<TMPL_VAR id>"> <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> @@ -70,10 +71,11 @@ <tr><td class="label"> <TMPL_VAR .loc.label_image></td> <td> - <button onclick="selectImage('<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','image_<TMPL_VAR id>','<TMPL_VAR series_name escape=HTML>','<TMPL_VAR image escape=URL>','<TMPL_VAR series_id>');return false;" - style="padding:0;float:left" + <button + class="selectImage" + onclick="selectImage('<TMPL_VAR name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'studios', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>'); return false;" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs"> + <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input id="image_<TMPL_VAR id>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.template_image>"> </td> From f27c176368f1fde51d38d00b79e0a19acd66349f Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 10 Dec 2018 13:03:37 +0100 Subject: [PATCH 043/391] add icons to menu --- .../open-sans-v15-latin_latin-ext-regular.eot | Bin 0 -> 20486 bytes .../open-sans-v15-latin_latin-ext-regular.svg | 336 ++++++++++++++++++ .../open-sans-v15-latin_latin-ext-regular.ttf | Bin 0 -> 38424 bytes ...open-sans-v15-latin_latin-ext-regular.woff | Bin 0 -> 23708 bytes ...pen-sans-v15-latin_latin-ext-regular.woff2 | Bin 0 -> 18876 bytes .../roboto-v18-latin_latin-ext-regular.eot | Bin 0 -> 25062 bytes .../roboto-v18-latin_latin-ext-regular.svg | 308 ++++++++++++++++ .../roboto-v18-latin_latin-ext-regular.ttf | Bin 0 -> 54052 bytes .../roboto-v18-latin_latin-ext-regular.woff | Bin 0 -> 28236 bytes .../roboto-v18-latin_latin-ext-regular.woff2 | Bin 0 -> 21920 bytes website/agenda/planung/templates/default.html | 12 +- 11 files changed, 650 insertions(+), 6 deletions(-) create mode 100644 website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.eot create mode 100644 website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.svg create mode 100644 website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.ttf create mode 100644 website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.woff create mode 100644 website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.woff2 create mode 100644 website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.eot create mode 100644 website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.svg create mode 100644 website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.ttf create mode 100644 website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.woff create mode 100644 website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.woff2 diff --git a/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.eot b/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..f25146fcde8d1e8f2bcf3431e4ae10ab801dce42 GIT binary patch literal 20486 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 ZQI1r!y0xd#na}wdQ{xK}#uC<74FH1IfD!-z literal 0 HcmV?d00001 diff --git a/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.svg b/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.svg new file mode 100644 index 0000000..78eb653 --- /dev/null +++ b/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.svg @@ -0,0 +1,336 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg"> +<defs > +<font id="OpenSans" horiz-adv-x="1206" ><font-face + font-family="Open Sans" + units-per-em="2048" + panose-1="2 11 6 6 3 5 4 2 2 4" + ascent="2189" + descent="-600" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="532" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="547" d="M326 403H221L170 1462H377L326 403ZM152 106Q152 242 272 242Q330 242 361 207T393 106Q393 42 361 7T272 -29Q220 -29 186 2T152 106Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="821" d="M319 1462L279 934H174L133 1462H319ZM688 1462L647 934H543L502 1462H688Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1323" d="M981 899L915 559H1198V430H891L807 0H670L754 430H451L369 0H233L313 430H51V559H338L406 899H129V1026H428L510 1462H649L567 1026H872L956 1462H1090L1006 1026H1270V899H981ZM475 559H778L844 +899H541L475 559Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1171" d="M1036 449Q1036 313 934 225T649 113V-119H520V104Q408 104 303 121T131 170V326Q214 289 322 266T520 242V682Q315 747 233 833T150 1055Q150 1186 251 1270T520 1372V1554H649V1374Q833 1369 1004 +1300L952 1169Q803 1228 649 1239V805Q806 755 884 708T999 599T1036 449ZM866 436Q866 508 822 552T649 641V252Q866 282 866 436ZM319 1057Q319 981 364 935T520 848V1235Q421 1219 370 1173T319 1057Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="1686" d="M242 1026Q242 856 279 771T399 686Q563 686 563 1026Q563 1364 399 1364Q316 1364 279 1280T242 1026ZM700 1026Q700 798 624 682T399 565Q259 565 182 684T104 1026Q104 1253 178 1368T399 1483Q544 +1483 622 1364T700 1026ZM1122 440Q1122 269 1159 185T1280 100Q1364 100 1404 183T1444 440Q1444 611 1404 693T1280 776Q1196 776 1159 694T1122 440ZM1581 440Q1581 213 1505 97T1280 -20Q1138 -20 1062 99T985 440Q985 667 1059 782T1280 897Q1422 897 1501 +780T1581 440ZM1323 1462L512 0H365L1176 1462H1323Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1495" d="M414 1171Q414 1102 450 1040T573 889Q702 964 752 1027T803 1174Q803 1251 752 1299T614 1348Q525 1348 470 1300T414 1171ZM569 129Q810 129 969 283L532 707Q421 639 375 595T307 499T285 +383Q285 266 362 198T569 129ZM113 379Q113 509 182 609T432 811Q347 906 317 955T268 1057T250 1167Q250 1317 348 1401T621 1485Q783 1485 876 1402T969 1169Q969 1062 901 972T676 788L1083 397Q1139 459 1172 542T1229 725H1397Q1329 439 1192 291L1491 0H1262L1077 +178Q959 72 837 26T565 -20Q350 -20 232 86T113 379Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="453" d="M319 1462L279 934H174L133 1462H319Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="606" d="M82 561Q82 826 159 1057T383 1462H545Q401 1269 329 1038T256 563Q256 323 330 94T543 -324H383Q236 -154 159 73T82 561Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="606" d="M524 561Q524 298 447 71T223 -324H63Q202 -136 276 93T350 563Q350 807 278 1038T61 1462H223Q370 1287 447 1056T524 561Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="1130" d="M657 1556L614 1161L1012 1272L1038 1090L657 1059L905 733L733 639L557 1001L397 639L221 733L463 1059L86 1090L115 1272L506 1161L463 1556H657Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="1171" d="M653 791H1065V653H653V227H514V653H104V791H514V1219H653V791Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="502" d="M350 238L365 215Q339 115 290 -17T188 -264H63Q90 -160 122 -7T168 238H350Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="659" d="M84 473V625H575V473H84Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="545" d="M152 106Q152 173 182 207T270 242Q328 242 360 208T393 106Q393 41 360 6T270 -29Q219 -29 186 2T152 106Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="752" d="M731 1462L186 0H20L565 1462H731Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="1171" d="M1069 733Q1069 354 950 167T584 -20Q348 -20 225 171T102 733Q102 1115 221 1300T584 1485Q822 1485 945 1292T1069 733ZM270 733Q270 414 345 269T584 123Q750 123 824 270T899 733Q899 1048 825 +1194T584 1341Q420 1341 345 1197T270 733Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="1171" d="M715 0H553V1042Q553 1172 561 1288Q540 1267 514 1244T276 1049L188 1163L575 1462H715V0Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="1171" d="M1061 0H100V143L485 530Q661 708 717 784T801 932T829 1087Q829 1204 758 1272T561 1341Q470 1341 389 1311T207 1202L119 1315Q321 1483 559 1483Q765 1483 882 1378T999 1094Q999 955 921 819T629 +475L309 162V154H1061V0Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="1171" d="M1006 1118Q1006 978 928 889T705 770V762Q881 740 966 650T1051 414Q1051 205 906 93T494 -20Q378 -20 282 -3T94 59V217Q189 170 296 146T500 121Q879 121 879 418Q879 684 461 684H317V827H463Q634 +827 734 902T834 1112Q834 1219 761 1280T561 1341Q465 1341 380 1315T186 1219L102 1331Q192 1402 309 1442T557 1483Q770 1483 888 1386T1006 1118Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="1171" d="M1130 336H913V0H754V336H43V481L737 1470H913V487H1130V336ZM754 487V973Q754 1116 764 1296H756Q708 1200 666 1137L209 487H754Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="1171" d="M557 893Q788 893 920 779T1053 465Q1053 238 909 109T510 -20Q263 -20 133 59V219Q203 174 307 149T512 123Q688 123 785 206T883 446Q883 752 508 752Q413 752 254 723L168 778L223 1462H950V1309H365L328 +870Q443 893 557 893Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="1171" d="M117 625Q117 1056 284 1269T780 1483Q893 1483 958 1464V1321Q881 1346 782 1346Q547 1346 423 1200T287 739H299Q409 911 647 911Q844 911 957 792T1071 469Q1071 241 947 111T610 -20Q383 -20 250 +150T117 625ZM608 121Q750 121 828 210T907 469Q907 614 834 697T616 780Q526 780 451 743T332 641T287 506Q287 403 327 314T440 173T608 121Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="1171" d="M285 0L891 1309H94V1462H1067V1329L469 0H285Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="1171" d="M584 1483Q784 1483 901 1390T1018 1133Q1018 1025 951 936T737 774Q915 689 990 596T1065 379Q1065 197 938 89T590 -20Q356 -20 230 82T104 373Q104 624 410 764Q272 842 212 932T152 1135Q152 +1294 269 1388T584 1483ZM268 369Q268 249 351 182T586 115Q735 115 818 185T901 377Q901 474 823 549T551 696Q402 632 335 555T268 369ZM582 1348Q457 1348 386 1288T315 1128Q315 1036 374 970T592 838Q735 898 794 967T854 1128Q854 1229 782 1288T582 1348Z" +/> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="1171" d="M1061 838Q1061 -20 397 -20Q281 -20 213 0V143Q293 117 395 117Q635 117 757 265T891 721H879Q824 638 733 595T528 551Q334 551 220 667T106 991Q106 1219 233 1351T569 1483Q718 1483 829 1407T1001 +1184T1061 838ZM569 1341Q426 1341 348 1249T270 993Q270 849 342 767T561 684Q652 684 728 721T849 822T893 956Q893 1061 852 1150T738 1290T569 1341Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="545" d="M152 106Q152 173 182 207T270 242Q328 242 360 208T393 106Q393 41 360 6T270 -29Q219 -29 186 2T152 106ZM152 989Q152 1124 270 1124Q393 1124 393 989Q393 924 360 889T270 854Q219 854 186 885T152 989Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="545" d="M350 238L365 215Q339 115 290 -17T188 -264H63Q90 -160 122 -7T168 238H350ZM147 989Q147 1124 266 1124Q389 1124 389 989Q389 924 356 889T266 854Q208 854 178 889T147 989Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="1171" d="M1065 242L104 664V762L1065 1241V1092L283 721L1065 393V242Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="1171" d="M119 858V995H1049V858H119ZM119 449V586H1049V449H119Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="1171" d="M104 393L887 719L104 1092V1241L1065 762V664L104 242V393Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="879" d="M289 403V457Q289 574 325 649T459 809Q595 924 630 982T666 1122Q666 1224 601 1279T412 1335Q333 1335 258 1317T86 1249L27 1384Q216 1483 422 1483Q613 1483 719 1389T825 1124Q825 1051 806 +996T748 891T584 731Q483 645 451 588T418 436V403H289ZM240 106Q240 242 360 242Q418 242 449 207T481 106Q481 42 449 7T360 -29Q308 -29 274 2T240 106Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="1841" d="M1720 729Q1720 587 1676 469T1552 286T1368 221Q1282 221 1223 273T1153 406H1145Q1105 319 1031 270T854 221Q704 221 620 323T535 602Q535 806 653 933T963 1061Q1031 1061 1117 1049T1272 1014L1247 +544V522Q1247 344 1380 344Q1471 344 1528 451T1585 731Q1585 912 1511 1048T1301 1257T987 1331Q764 1331 599 1239T347 975T260 578Q260 273 421 109T885 -55Q1095 -55 1321 31V-102Q1129 -186 885 -186Q522 -186 322 13T121 571Q121 831 228 1034T533 1348T987 +1460Q1202 1460 1369 1370T1628 1113T1720 729ZM686 598Q686 344 881 344Q1088 344 1106 657L1120 918Q1048 938 963 938Q833 938 760 848T686 598Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="1327" d="M201 1462H614Q905 1462 1035 1375T1165 1100Q1165 970 1093 886T881 776V766Q1214 709 1214 416Q1214 220 1082 110T711 0H201V1462ZM371 836H651Q831 836 910 892T989 1083Q989 1206 901 1260T621 1315H371V836ZM371 +692V145H676Q853 145 942 213T1032 428Q1032 564 941 628T662 692H371Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="1292" d="M827 1331Q586 1331 447 1171T307 731Q307 444 441 288T825 131Q978 131 1174 186V37Q1022 -20 799 -20Q476 -20 301 176T125 733Q125 959 209 1129T453 1391T829 1483Q1059 1483 1231 1399L1159 1253Q993 +1331 827 1331Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="1493" d="M1368 745Q1368 383 1172 192T606 0H201V1462H649Q990 1462 1179 1273T1368 745ZM1188 739Q1188 1025 1045 1170T618 1315H371V147H578Q882 147 1035 296T1188 739Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="1057" d="M371 0H201V1462H1016V1311H371V776H977V625H371V0Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="1491" d="M844 766H1341V55Q1225 18 1105 -1T827 -20Q495 -20 310 177T125 731Q125 959 216 1130T480 1392T883 1483Q1117 1483 1319 1397L1253 1247Q1055 1331 872 1331Q605 1331 455 1172T305 731Q305 435 449 +282T874 129Q1026 129 1171 164V614H844V766Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="1511" d="M1311 0H1141V688H371V0H201V1462H371V840H1141V1462H1311V0Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="571" d="M201 0V1462H371V0H201Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="547" d="M-12 -385Q-106 -385 -160 -358V-213Q-89 -233 -12 -233Q87 -233 138 -173T190 0V1462H360V14Q360 -176 264 -280T-12 -385Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="1257" d="M1257 0H1057L524 709L371 573V0H201V1462H371V737L1034 1462H1235L647 827L1257 0Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="1063" d="M201 0V1462H371V154H1016V0H201Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="1849" d="M848 0L352 1296H344Q358 1142 358 930V0H201V1462H457L920 256H928L1395 1462H1649V0H1479V942Q1479 1104 1493 1294H1485L985 0H848Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="1544" d="M1343 0H1149L350 1227H342Q358 1011 358 831V0H201V1462H393L1190 240H1198Q1196 267 1189 413T1184 623V1462H1343V0Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 733Q1290 1028 +1167 1180T801 1333Q558 1333 432 1180T305 733Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="1233" d="M1128 1036Q1128 814 977 695T543 575H371V0H201V1462H580Q1128 1462 1128 1036ZM371 721H524Q750 721 851 794T952 1028Q952 1173 857 1244T561 1315H371V721Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1595" d="M1470 733Q1470 452 1357 266T1038 14L1386 -348H1139L854 -18L799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 +129 1166 282T1290 733Q1290 1028 1167 1180T801 1333Q558 1333 432 1180T305 733Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="1266" d="M371 608V0H201V1462H602Q871 1462 999 1359T1128 1049Q1128 759 834 657L1231 0H1030L676 608H371ZM371 754H604Q784 754 868 825T952 1040Q952 1185 867 1249T592 1313H371V754Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="1124" d="M1026 389Q1026 196 886 88T506 -20Q246 -20 106 47V211Q196 173 302 151T512 129Q682 129 768 193T854 373Q854 449 824 497T722 587T504 680Q300 753 213 853T125 1114Q125 1283 252 1383T588 1483Q806 +1483 989 1403L936 1255Q755 1331 584 1331Q449 1331 373 1273T297 1112Q297 1036 325 988T419 899T623 809Q853 727 939 633T1026 389Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="1133" d="M651 0H481V1311H18V1462H1114V1311H651V0Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="1219" d="M1036 1462H1219L692 0H524L0 1462H180L516 516Q574 353 608 199Q644 361 702 522L1036 1462Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="1896" d="M1477 0H1309L1014 979Q993 1044 967 1143T940 1262Q918 1130 870 973L584 0H416L27 1462H207L438 559Q486 369 508 215Q535 398 588 573L850 1462H1030L1305 565Q1353 410 1386 215Q1405 357 1458 561L1688 +1462H1868L1477 0Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="1182" d="M1174 0H981L588 643L188 0H8L494 764L41 1462H229L592 883L958 1462H1139L686 770L1174 0Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1147" d="M573 731L963 1462H1147L659 567V0H487V559L0 1462H186L573 731Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1169" d="M1087 0H82V133L858 1309H106V1462H1065V1329L289 154H1087V0Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="674" d="M623 -324H166V1462H623V1321H334V-182H623V-324Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="752" d="M186 1462L733 0H567L23 1462H186Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="674" d="M51 -182H340V1321H51V1462H508V-324H51V-182Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1110" d="M49 551L483 1473H582L1059 551H907L535 1296L201 551H49Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="918" d="M922 -315H-4V-184H922V-315Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="1182" d="M786 1241H676Q611 1293 522 1389T393 1548V1569H596Q628 1500 685 1410T786 1266V1241Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114 878 1027T973 +748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="1255" d="M686 1114Q902 1114 1021 967T1141 549Q1141 279 1021 130T686 -20Q579 -20 491 19T342 141H330L295 0H176V1556H342V1178Q342 1051 334 950H342Q458 1114 686 1114ZM662 975Q492 975 417 878T342 549Q342 +318 419 219T666 119Q819 119 894 230T969 551Q969 765 894 870T662 975Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="975" d="M614 -20Q376 -20 246 126T115 541Q115 816 247 966T625 1116Q704 1116 783 1099T907 1059L856 918Q801 940 736 954T621 969Q287 969 287 543Q287 341 368 233T610 125Q747 125 891 184V37Q781 -20 614 -20Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="1255" d="M922 147H913Q798 -20 569 -20Q354 -20 235 127T115 545Q115 816 235 966T569 1116Q792 1116 911 954H924L917 1033L913 1110V1556H1079V0H944L922 147ZM590 119Q760 119 836 211T913 510V545Q913 778 +836 877T588 977Q442 977 365 864T287 543Q287 333 364 226T590 119Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 977 384 891T291 +653H864Q864 810 794 893T594 977Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="694" d="M670 967H391V0H225V967H29V1042L225 1102V1163Q225 1567 578 1567Q665 1567 782 1532L739 1399Q643 1430 575 1430Q481 1430 436 1368T391 1167V1096H670V967Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="1122" d="M1073 1096V991L870 967Q898 932 920 876T942 748Q942 587 832 491T530 395Q481 395 438 403Q332 347 332 262Q332 217 369 196T496 174H690Q868 174 963 99T1059 -119Q1059 -301 913 -396T487 -492Q272 +-492 156 -412T39 -186Q39 -86 103 -13T283 86Q241 105 213 145T184 238Q184 298 216 343T317 430Q232 465 179 549T125 741Q125 921 233 1018T539 1116Q625 1116 694 1096H1073ZM199 -184Q199 -273 274 -319T489 -365Q698 -365 798 -303T899 -133Q899 -44 844 +-10T637 25H438Q325 25 262 -29T199 -184ZM289 745Q289 630 354 571T535 512Q778 512 778 748Q778 995 532 995Q415 995 352 932T289 745Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="1257" d="M926 0V709Q926 843 865 909T674 975Q501 975 422 881T342 573V0H176V1556H342V1085Q342 1000 334 944H344Q393 1023 483 1068T690 1114Q891 1114 991 1019T1092 715V0H926Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM162 1393Q162 1450 190 1476T260 1503Q300 1503 329 1476T358 1393Q358 1337 329 1310T260 1282Q218 1282 190 1309T162 1393Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="518" d="M43 -492Q-52 -492 -111 -467V-332Q-42 -352 25 -352Q103 -352 139 -310T176 -180V1096H342V-168Q342 -492 43 -492ZM162 1393Q162 1450 190 1476T260 1503Q300 1503 329 1476T358 1393Q358 1337 329 1310T260 +1282Q218 1282 190 1309T162 1393Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="1075" d="M340 561Q383 622 471 721L825 1096H1022L578 629L1053 0H852L465 518L340 410V0H176V1556H340V731Q340 676 332 561H340Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="518" d="M342 0H176V1556H342V0Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="1905" d="M1573 0V713Q1573 844 1517 909T1343 975Q1188 975 1114 886T1040 612V0H874V713Q874 844 818 909T643 975Q487 975 415 882T342 575V0H176V1096H311L338 946H346Q393 1026 478 1071T670 1116Q927 1116 +1006 930H1014Q1063 1016 1156 1066T1368 1116Q1554 1116 1646 1021T1739 715V0H1573Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="1257" d="M926 0V709Q926 843 865 909T674 975Q502 975 422 882T342 575V0H176V1096H311L338 946H346Q397 1027 489 1071T694 1116Q892 1116 992 1021T1092 715V0H926Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950 758 866 +866T616 975Q453 975 370 868T287 549Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="1255" d="M686 -20Q579 -20 491 19T342 141H330Q342 45 342 -41V-492H176V1096H311L334 946H342Q406 1036 491 1076T686 1116Q904 1116 1022 967T1141 549Q1141 279 1021 130T686 -20ZM662 975Q494 975 419 882T342 +586V549Q342 318 419 219T666 119Q808 119 888 234T969 551Q969 756 889 865T662 975Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="1255" d="M590 119Q756 119 832 208T913 508V545Q913 775 835 876T588 977Q442 977 365 864T287 543Q287 336 363 228T590 119ZM565 -20Q353 -20 234 129T115 545Q115 814 235 965T569 1116Q794 1116 915 946H924L948 +1096H1079V-492H913V-23Q913 77 924 147H911Q796 -20 565 -20Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="836" d="M676 1116Q749 1116 807 1104L784 950Q716 965 664 965Q531 965 437 857T342 588V0H176V1096H313L332 893H340Q401 1000 487 1058T676 1116Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="977" d="M883 299Q883 146 769 63T449 -20Q231 -20 109 49V203Q188 163 278 140T453 117Q583 117 653 158T723 285Q723 349 668 394T451 502Q298 559 234 601T138 698T106 827Q106 961 215 1038T514 1116Q691 1116 +860 1044L801 909Q636 977 502 977Q384 977 324 940T264 838Q264 794 286 763T359 704T551 623Q746 552 814 480T883 299Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="723" d="M530 117Q574 117 615 123T680 137V10Q653 -3 601 -11T506 -20Q188 -20 188 315V967H31V1047L188 1116L258 1350H354V1096H672V967H354V322Q354 223 401 170T530 117Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="1026" d="M416 0L0 1096H178L414 446Q494 218 508 150H516Q527 203 585 369T848 1096H1026L610 0H416Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="1593" d="M1071 0L870 643Q851 702 799 911H791Q751 736 721 641L514 0H322L23 1096H197Q303 683 358 467T422 176H430Q441 233 465 323T508 467L709 1096H889L1085 467Q1141 295 1161 178H1169Q1173 214 1190 +289T1399 1096H1571L1268 0H1071Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="1073" d="M440 561L59 1096H248L537 676L825 1096H1012L631 561L1032 0H844L537 444L227 0H39L440 561Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="1032" d="M2 1096H180L420 471Q499 257 518 162H526Q539 213 580 336T852 1096H1030L559 -152Q489 -337 396 -414T166 -492Q90 -492 16 -475V-342Q71 -354 139 -354Q310 -354 383 -162L444 -6L2 1096Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="958" d="M877 0H82V113L680 967H119V1096H862V967L272 129H877V0Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="776" d="M475 12Q475 -90 533 -136T705 -184V-324Q515 -322 411 -237T307 2V305Q307 409 244 453T61 498V639Q191 641 249 687T307 829V1135Q307 1290 415 1376T705 1462V1323Q475 1317 475 1124V829Q475 +614 252 575V563Q475 524 475 309V12Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="1128" d="M494 1556H635V-496H494V1556Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="776" d="M522 575Q299 614 299 829V1124Q299 1317 72 1323V1462Q256 1462 361 1375T467 1135V829Q467 732 526 687T715 639V498Q593 498 530 454T467 305V2Q467 -151 365 -236T72 -324V-184Q183 -182 +241 -136T299 12V309Q299 423 354 483T522 563V575Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1171" d="M338 713Q285 713 222 680T104 592V743Q204 852 348 852Q416 852 472 838T618 786Q684 758 733 745T829 731Q883 731 947 763T1065 852V702Q963 592 821 592Q749 592 686 608T551 657Q476 689 +431 701T338 713Z" /> +<glyph unicode=" " glyph-name="nbspace" horiz-adv-x="532" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="547" d="M219 684H324L375 -373H168L219 684ZM393 983Q393 848 272 848Q212 848 182 883T152 983Q152 1046 183 1082T272 1118Q323 1118 358 1086T393 983Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="1171" d="M971 240Q866 186 719 180V-20H586V186Q383 218 287 354T190 741Q190 1249 586 1311V1483H721V1319Q796 1316 867 1300T987 1260L938 1120Q805 1171 696 1171Q524 1171 443 1066T362 743Q362 +531 441 430T688 328Q829 328 971 387V240Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="1171" d="M682 1481Q872 1481 1042 1397L981 1264Q827 1341 684 1341Q561 1341 499 1279T436 1077V782H858V655H436V434Q436 334 404 266T297 154H1092V0H63V141Q268 188 268 432V655H70V782H268V1098Q268 +1276 380 1378T682 1481Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="1171" d="M184 723Q184 845 258 952L123 1092L217 1184L352 1051Q456 1124 586 1124Q713 1124 815 1051L952 1184L1047 1092L913 954Q987 841 987 723Q987 592 913 489L1044 354L952 262L815 395Q713 +324 586 324Q452 324 352 397L217 264L125 356L258 492Q184 599 184 723ZM313 723Q313 611 391 531T586 451Q702 451 781 530T860 723Q860 837 780 918T586 999Q470 999 392 917T313 723Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="1171" d="M584 735L963 1462H1137L721 692H983V565H666V395H983V268H666V0H502V268H186V395H502V565H186V692H442L31 1462H209L584 735Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="1128" d="M494 1556H635V780H494V1556ZM494 281H635V-496H494V281Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="1057" d="M139 809Q139 895 182 963T303 1069Q229 1109 187 1164T145 1305Q145 1426 248 1495T549 1565Q643 1565 722 1551T899 1497L846 1366Q748 1405 681 1418T537 1432Q421 1432 363 1403T305 1309Q305 +1249 366 1207T582 1110Q768 1042 843 967T918 784Q918 694 877 624T762 512Q915 431 915 285Q915 145 798 69T469 -8Q251 -8 123 57V205Q201 168 298 146T477 123Q611 123 681 161T752 270Q752 316 728 345T650 403T481 475Q339 527 272 572T172 674T139 809ZM285 +829Q285 752 351 700T584 586L633 567Q770 647 770 758Q770 841 697 897T438 1010Q370 991 328 941T285 829Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="1182" d="M309 1393Q309 1445 335 1468T399 1491Q437 1491 464 1468T492 1393Q492 1343 465 1319T399 1294Q362 1294 336 1318T309 1393ZM690 1393Q690 1445 716 1468T780 1491Q817 1491 844 1468T872 +1393Q872 1343 845 1319T780 1294Q743 1294 717 1318T690 1393Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="1704" d="M893 1059Q768 1059 701 972T633 731Q633 563 696 482T891 401Q977 401 1102 446V322Q1054 302 1004 288T883 274Q689 274 585 394T481 731Q481 940 591 1063T893 1186Q1021 1186 1139 1126L1081 +1008Q973 1059 893 1059ZM100 731Q100 931 200 1106T475 1382T852 1483Q1052 1483 1227 1383T1503 1108T1604 731Q1604 534 1507 361T1235 84T852 -20Q645 -20 470 83T198 360T100 731ZM205 731Q205 558 292 408T529 171T852 84Q1026 84 1175 171T1411 406T1499 +731Q1499 905 1412 1054T1177 1290T852 1378Q678 1378 529 1291T293 1056T205 731Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="725" d="M532 801L508 885Q416 788 276 788Q181 788 126 837T70 989Q70 1091 147 1143T389 1202L506 1206V1245Q506 1378 358 1378Q258 1378 154 1327L111 1423Q225 1479 358 1479Q488 1479 556 +1427T625 1253V801H532ZM193 989Q193 889 305 889Q506 889 506 1069V1118L408 1114Q296 1110 245 1082T193 989Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="1018" d="M82 551L424 958L543 889L254 539L543 188L424 117L82 524V551ZM477 551L821 958L938 889L651 539L938 188L821 117L477 524V551Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="1171" d="M1065 791V264H928V653H104V791H1065Z" /> +<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="659" d="M84 473V625H575V473H84Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="1704" d="M723 762H831Q911 762 959 803T1008 909Q1008 984 965 1016T829 1049H723V762ZM1157 913Q1157 833 1115 772T995 680L1233 285H1065L858 639H723V285H575V1176H836Q1002 1176 1079 1111T1157 +913ZM100 731Q100 931 200 1106T475 1382T852 1483Q1052 1483 1227 1383T1503 1108T1604 731Q1604 534 1507 361T1235 84T852 -20Q645 -20 470 83T198 360T100 731ZM205 731Q205 558 292 408T529 171T852 84Q1026 84 1175 171T1411 406T1499 731Q1499 905 1412 +1054T1177 1290T852 1378Q678 1378 529 1291T293 1056T205 731Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="1024" d="M1030 1556H-6V1683H1030V1556Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="877" d="M127 1171Q127 1301 217 1392T438 1483Q568 1483 659 1393T750 1171Q750 1087 709 1016T595 902T438 860Q308 860 218 950T127 1171ZM242 1171Q242 1089 300 1032T440 975Q520 975 577 1031T635 +1171Q635 1255 579 1311T440 1368Q357 1368 300 1311T242 1171Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="1171" d="M653 791H1065V653H653V227H514V653H104V791H514V1219H653V791ZM104 1V139H1065V1H104Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="711" d="M653 586H49V690L285 920Q374 1006 415 1054T472 1141T489 1233Q489 1301 449 1335T346 1370Q294 1370 245 1351T127 1282L61 1370Q192 1481 344 1481Q476 1481 549 1416T623 1239Q623 +1159 579 1084T387 870L213 705H653V586Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="711" d="M627 1255Q627 1175 586 1124T477 1049Q653 1002 653 840Q653 712 561 641T301 569Q149 569 33 625V748Q180 680 303 680Q514 680 514 842Q514 987 283 987H166V1094H285Q388 1094 437 +1133T487 1241Q487 1302 447 1336T340 1370Q274 1370 218 1349T106 1292L37 1382Q100 1427 170 1454T334 1481Q470 1481 548 1422T627 1255Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="1182" d="M393 1266Q441 1328 496 1416T584 1569H786V1548Q742 1483 655 1388T504 1241H393V1266Z" /> +<glyph unicode="µ" glyph-name="mu" horiz-adv-x="1268" d="M342 381Q342 119 596 119Q767 119 846 213T926 520V1096H1092V0H956L930 147H920Q809 -20 580 -20Q430 -20 342 72H332Q342 -12 342 -172V-492H176V1096H342V381Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="1341" d="M1120 -260H1006V1452H793V-260H678V559Q616 541 532 541Q316 541 215 666T113 1042Q113 1302 222 1429T563 1556H1120V-260Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="545" d="M152 723Q152 789 183 823T270 858Q328 858 360 824T393 723Q393 658 360 623T270 588Q219 588 186 619T152 723Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="465" d="M436 -289Q436 -386 360 -439T133 -492Q82 -492 37 -483V-377Q82 -385 141 -385Q220 -385 260 -365T301 -291Q301 -248 262 -222T113 -178L201 0H311L256 -115Q436 -154 436 -289Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="711" d="M338 1462H481V586H348V1165Q348 1256 354 1346Q332 1324 305 1302T143 1184L76 1280L338 1462Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="768" d="M702 1135Q702 971 617 880T381 788Q235 788 151 881T66 1135Q66 1298 150 1388T385 1479Q537 1479 619 1388T702 1135ZM188 1135Q188 1013 233 952T383 891Q488 891 534 952T580 1135Q580 +1258 534 1317T383 1376Q280 1376 234 1317T188 1135Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="1018" d="M936 524L592 117L475 188L762 539L475 889L592 958L936 551V524ZM541 524L197 117L80 188L367 539L80 889L197 958L541 551V524Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="1597" d="M1298 1462L395 0H252L1155 1462H1298ZM593 1462H736V586H603V1165Q603 1256 609 1346Q587 1324 560 1302T398 1184L331 1280L593 1462ZM1489 203H1364V1H1219V203H817V304L1225 883H1364V320H1489V203ZM1219 +320V515Q1219 649 1225 724Q1220 712 1208 693T1181 651T1151 606T1125 566L957 320H1219Z" /> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="1597" d="M1230 1462L327 0H184L1087 1462H1230ZM564 1462H707V586H574V1165Q574 1256 580 1346Q558 1324 531 1302T369 1184L302 1280L564 1462ZM1499 1H895V105L1131 335Q1220 421 1261 469T1318 +556T1335 648Q1335 716 1295 750T1192 785Q1140 785 1091 766T973 697L907 785Q1038 896 1190 896Q1322 896 1395 831T1469 654Q1469 574 1425 499T1233 285L1059 120H1499V1Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="1597" d="M876 1255Q876 1175 835 1124T726 1049Q902 1002 902 840Q902 712 810 641T550 569Q398 569 282 625V748Q429 680 552 680Q763 680 763 842Q763 987 532 987H415V1094H534Q637 1094 +686 1133T736 1241Q736 1302 696 1336T589 1370Q523 1370 467 1349T355 1292L286 1382Q349 1427 419 1454T583 1481Q719 1481 797 1422T876 1255ZM1390 1462L487 0H344L1247 1462H1390ZM1569 203H1444V1H1299V203H897V304L1305 883H1444V320H1569V203ZM1299 320V515Q1299 +649 1305 724Q1300 712 1288 693T1261 651T1231 606T1205 566L1037 320H1299Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="879" d="M590 684V633Q590 511 553 437T418 279Q297 173 267 136T224 60T211 -35Q211 -135 277 -191T465 -248Q545 -248 620 -229T793 -162L852 -297Q655 -393 457 -393Q267 -393 159 -300T51 +-37Q51 33 68 85T118 182T194 268T293 356Q394 444 426 502T459 653V684H590ZM639 983Q639 848 518 848Q459 848 428 882T397 983Q397 1047 430 1082T518 1118Q569 1118 604 1086T639 983Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM724 1579H614Q549 1631 460 1727T331 1886V1907H534Q566 1838 +623 1748T724 1604V1579Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM526 1604Q574 1666 629 1754T717 1907H919V1886Q875 1821 788 +1726T637 1579H526V1604Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM303 1602Q430 1738 481 1802T555 1907H721Q743 1865 797 +1799T977 1602V1579H858Q770 1634 637 1765Q501 1631 418 1579H303V1602Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM792 1581Q749 1581 708 1599T628 1640T552 1681T481 1700Q431 +1700 406 1670T366 1579H268Q281 1700 338 1768T487 1837Q533 1837 576 1819T658 1778T733 1737T801 1718Q850 1718 874 1747T913 1839H1012Q999 1718 943 1650T792 1581Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM364 1731Q364 1783 390 1806T454 1829Q492 1829 519 1806T547 +1731Q547 1681 520 1657T454 1632Q417 1632 391 1656T364 1731ZM745 1731Q745 1783 771 1806T835 1829Q872 1829 899 1806T927 1731Q927 1681 900 1657T835 1632Q798 1632 772 1656T745 1731Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM870 1587Q870 1489 809 1430T645 1370Q544 1370 484 1428T424 +1585Q424 1683 484 1740T645 1798Q746 1798 808 1739T870 1587ZM762 1585Q762 1641 729 1671T645 1702Q594 1702 561 1672T528 1585Q528 1529 558 1499T645 1468Q697 1468 729 1498T762 1585Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="1788" d="M1665 0H915V465H401L174 0H-2L696 1462H1665V1311H1085V840H1626V690H1085V152H1665V0ZM469 618H915V1311H797L469 618Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="1292" d="M827 1331Q586 1331 447 1171T307 731Q307 444 441 288T825 131Q978 131 1174 186V37Q1022 -20 799 -20Q476 -20 301 176T125 733Q125 959 209 1129T453 1391T829 1483Q1059 1483 1231 1399L1159 +1253Q993 1331 827 1331ZM950 -289Q950 -386 874 -439T647 -492Q596 -492 551 -483V-377Q596 -385 655 -385Q734 -385 774 -365T815 -291Q815 -248 776 -222T627 -178L715 0H825L770 -115Q950 -154 950 -289Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0ZM713 1579H603Q538 1631 449 1727T320 1886V1907H523Q555 1838 612 1748T713 1604V1579Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0ZM456 1604Q504 1666 559 1754T647 1907H849V1886Q805 1821 718 1726T567 1579H456V1604Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0ZM263 1602Q390 1738 441 1802T515 1907H681Q703 1865 757 1799T937 1602V1579H818Q730 1634 597 1765Q461 1631 378 1579H263V1602Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0ZM327 1731Q327 1783 353 1806T417 1829Q455 1829 482 1806T510 1731Q510 1681 483 1657T417 1632Q380 1632 354 1656T327 1731ZM708 +1731Q708 1783 734 1806T798 1829Q835 1829 862 1806T890 1731Q890 1681 863 1657T798 1632Q761 1632 735 1656T708 1731Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="571" d="M201 0V1462H371V0H201ZM398 1579H288Q223 1631 134 1727T5 1886V1907H208Q240 1838 297 1748T398 1604V1579Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="571" d="M201 0V1462H371V0H201ZM179 1604Q227 1666 282 1754T370 1907H572V1886Q528 1821 441 1726T290 1579H179V1604Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="571" d="M201 0V1462H371V0H201ZM-57 1602Q70 1738 121 1802T195 1907H361Q383 1865 437 1799T617 1602V1579H498Q410 1634 277 1765Q141 1631 58 1579H-57V1602Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="571" d="M201 0V1462H371V0H201ZM5 1731Q5 1783 31 1806T95 1829Q133 1829 160 1806T188 1731Q188 1681 161 1657T95 1632Q58 1632 32 1656T5 1731ZM386 1731Q386 1783 412 1806T476 1829Q513 1829 +540 1806T568 1731Q568 1681 541 1657T476 1632Q439 1632 413 1656T386 1731Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="1479" d="M1352 745Q1352 383 1156 192T590 0H201V649H47V799H201V1462H635Q972 1462 1162 1275T1352 745ZM1171 739Q1171 1315 602 1315H371V799H750V649H371V147H561Q1171 147 1171 739Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="1544" d="M1343 0H1149L350 1227H342Q358 1011 358 831V0H201V1462H393L1190 240H1198Q1196 267 1189 413T1184 623V1462H1343V0ZM935 1581Q892 1581 851 1599T771 1640T695 1681T624 1700Q574 1700 +549 1670T509 1579H411Q424 1700 481 1768T630 1837Q676 1837 719 1819T801 1778T876 1737T944 1718Q993 1718 1017 1747T1056 1839H1155Q1142 1718 1086 1650T935 1581Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 733Q1290 +1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM907 1579H797Q732 1631 643 1727T514 1886V1907H717Q749 1838 806 1748T907 1604V1579Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 733Q1290 +1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM659 1604Q707 1666 762 1754T850 1907H1052V1886Q1008 1821 921 1726T770 1579H659V1604Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 +733Q1290 1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM448 1602Q575 1738 626 1802T700 1907H866Q888 1865 942 1799T1122 1602V1579H1003Q915 1634 782 1765Q646 1631 563 1579H448V1602Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 733Q1290 +1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM942 1581Q899 1581 858 1599T778 1640T702 1681T631 1700Q581 1700 556 1670T516 1579H418Q431 1700 488 1768T637 1837Q683 1837 726 1819T808 1778T883 1737T951 1718Q1000 1718 1024 1747T1063 1839H1162Q1149 +1718 1093 1650T942 1581Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 +733Q1290 1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM522 1731Q522 1783 548 1806T612 1829Q650 1829 677 1806T705 1731Q705 1681 678 1657T612 1632Q575 1632 549 1656T522 1731ZM903 1731Q903 1783 929 1806T993 1829Q1030 1829 1057 1806T1085 1731Q1085 +1681 1058 1657T993 1632Q956 1632 930 1656T903 1731Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="1171" d="M940 1176L1036 1077L684 723L1034 371L938 272L584 623L236 272L135 371L485 723L133 1075L233 1176L586 821L940 1176Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q564 -20 416 80L315 -61L195 18L303 172Q125 370 125 735Q125 1092 301 1288T801 1485Q1010 1485 1167 1391L1264 1526L1384 1446L1278 1298Q1470 1096 +1470 733ZM1290 733Q1290 1005 1180 1159L508 211Q623 129 799 129Q1042 129 1166 282T1290 733ZM305 733Q305 471 406 317L1075 1260Q969 1333 801 1333Q558 1333 432 1180T305 733Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305ZM856 1579H746Q681 1631 592 1727T463 1886V1907H666Q698 +1838 755 1748T856 1604V1579Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305ZM600 1604Q648 1666 703 1754T791 1907H993V1886Q949 +1821 862 1726T711 1579H600V1604Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305ZM393 1602Q520 1738 571 1802T645 +1907H811Q833 1865 887 1799T1067 1602V1579H948Q860 1634 727 1765Q591 1631 508 1579H393V1602Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305ZM461 1731Q461 1783 487 1806T551 1829Q589 +1829 616 1806T644 1731Q644 1681 617 1657T551 1632Q514 1632 488 1656T461 1731ZM842 1731Q842 1783 868 1806T932 1829Q969 1829 996 1806T1024 1731Q1024 1681 997 1657T932 1632Q895 1632 869 1656T842 1731Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="1147" d="M573 731L963 1462H1147L659 567V0H487V559L0 1462H186L573 731ZM442 1604Q490 1666 545 1754T633 1907H835V1886Q791 1821 704 1726T553 1579H442V1604Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="1251" d="M1145 784Q1145 557 994 438T555 319H371V0H201V1462H371V1206H586Q867 1206 1006 1103T1145 784ZM371 465H539Q765 465 866 536T967 772Q967 921 872 990T575 1059H371V465Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="1274" d="M1049 1266Q1049 1131 906 1016Q818 946 790 913T762 846Q762 814 775 793T824 744T938 664Q1078 569 1129 491T1180 311Q1180 151 1083 66T807 -20Q619 -20 512 49V203Q575 164 653 141T803 +117Q1018 117 1018 299Q1018 374 977 427T825 551Q698 633 650 694T602 840Q602 903 636 956T742 1062Q817 1119 849 1164T881 1262Q881 1342 813 1384T618 1427Q342 1427 342 1204V0H176V1202Q176 1380 286 1473T618 1567Q824 1567 936 1489T1049 1266Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114 +878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM928 1241H818Q753 1293 664 1389T535 1548V1569H738Q770 1500 827 1410T928 1266V1241Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114 +878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM436 1266Q484 1328 539 1416T627 1569H829V1548Q785 1483 698 1388T547 1241H436V1266Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 +1114 878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM484 1264Q611 1400 662 1464T736 1569H902Q924 1527 978 1461T1158 1264V1241H1039Q951 1296 818 1427Q682 1293 599 1241H484V1264Z" +/> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114 +878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM977 1243Q934 1243 893 1261T813 1302T737 1343T666 1362Q616 1362 591 1332T551 1241H453Q466 1362 523 1430T672 1499Q718 1499 761 +1481T843 1440T918 1399T986 1380Q1035 1380 1059 1409T1098 1501H1197Q1184 1380 1128 1312T977 1243Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114 +878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM535 1393Q535 1445 561 1468T625 1491Q663 1491 690 1468T718 1393Q718 1343 691 1319T625 1294Q588 1294 562 1318T535 1393ZM916 1393Q916 +1445 942 1468T1006 1491Q1043 1491 1070 1468T1098 1393Q1098 1343 1071 1319T1006 1294Q969 1294 943 1318T916 1393Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114 878 +1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM1060 1458Q1060 1360 999 1301T835 1241Q734 1241 674 1299T614 1456Q614 1554 674 1611T835 1669Q936 1669 998 1610T1060 1458ZM952 1456Q952 +1512 919 1542T835 1573Q784 1573 751 1543T718 1456Q718 1400 748 1370T835 1339Q887 1339 919 1369T952 1456Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="1757" d="M94 303Q94 464 218 553T596 651L780 657V725Q780 854 722 915T545 977Q401 977 238 893L186 1020Q260 1061 359 1087T557 1114Q687 1114 769 1071T893 932Q946 1020 1031 1068T1227 1116Q1419 +1116 1535 983T1651 627V520H950Q958 125 1272 125Q1363 125 1441 142T1604 199V51Q1518 13 1444 -3T1268 -20Q979 -20 854 213Q773 86 675 33T442 -20Q279 -20 187 65T94 303ZM268 301Q268 206 321 162T463 117Q608 117 692 201T776 440V539L618 532Q432 524 350 +470T268 301ZM1225 977Q1104 977 1035 894T954 653H1473Q1473 809 1409 893T1225 977Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="975" d="M614 -20Q376 -20 246 126T115 541Q115 816 247 966T625 1116Q704 1116 783 1099T907 1059L856 918Q801 940 736 954T621 969Q287 969 287 543Q287 341 368 233T610 125Q747 125 891 184V37Q781 +-20 614 -20ZM762 -289Q762 -386 686 -439T459 -492Q408 -492 363 -483V-377Q408 -385 467 -385Q546 -385 586 -365T627 -291Q627 -248 588 -222T439 -178L527 0H637L582 -115Q762 -154 762 -289Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 977 384 +891T291 653H864Q864 810 794 893T594 977ZM967 1241H857Q792 1293 703 1389T574 1548V1569H777Q809 1500 866 1410T967 1266V1241Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 977 384 +891T291 653H864Q864 810 794 893T594 977ZM471 1266Q519 1328 574 1416T662 1569H864V1548Q820 1483 733 1388T582 1241H471V1266Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 +977 384 891T291 653H864Q864 810 794 893T594 977ZM515 1264Q642 1400 693 1464T767 1569H933Q955 1527 1009 1461T1189 1264V1241H1070Q982 1296 849 1427Q713 1293 630 1241H515V1264Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 977 +384 891T291 653H864Q864 810 794 893T594 977ZM319 1393Q319 1445 345 1468T409 1491Q447 1491 474 1468T502 1393Q502 1343 475 1319T409 1294Q372 1294 346 1318T319 1393ZM700 1393Q700 1445 726 1468T790 1491Q827 1491 854 1468T882 1393Q882 1343 855 1319T790 +1294Q753 1294 727 1318T700 1393Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM355 1241H245Q180 1293 91 1389T-38 1548V1569H165Q197 1500 254 1410T355 1266V1241Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM169 1266Q217 1328 272 1416T360 1569H562V1548Q518 1483 431 1388T280 1241H169V1266Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM-77 1264Q50 1400 101 1464T175 1569H341Q363 1527 417 1461T597 1264V1241H478Q390 1296 257 1427Q121 1293 38 1241H-77V1264Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM-20 1393Q-20 1445 6 1468T70 1491Q108 1491 135 1468T163 1393Q163 1343 136 1319T70 1294Q33 1294 7 1318T-20 1393ZM361 1393Q361 1445 387 1468T451 1491Q488 +1491 515 1468T543 1393Q543 1343 516 1319T451 1294Q414 1294 388 1318T361 1393Z" /> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="1221" d="M1122 563Q1122 282 992 131T614 -20Q392 -20 253 114T113 475Q113 705 244 836T596 967Q822 967 922 846L930 850Q873 1064 668 1255L397 1100L324 1208L557 1341Q465 1403 371 1452L440 1569Q596 +1496 698 1421L936 1559L1012 1452L805 1333Q957 1190 1039 991T1122 563ZM954 512Q954 659 864 744T618 829Q281 829 281 469Q281 302 368 211T618 119Q793 119 873 219T954 512Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="1257" d="M926 0V709Q926 843 865 909T674 975Q502 975 422 882T342 575V0H176V1096H311L338 946H346Q397 1027 489 1071T694 1116Q892 1116 992 1021T1092 715V0H926ZM802 1243Q759 1243 718 1261T638 +1302T562 1343T491 1362Q441 1362 416 1332T376 1241H278Q291 1362 348 1430T497 1499Q543 1499 586 1481T668 1440T743 1399T811 1380Q860 1380 884 1409T923 1501H1022Q1009 1380 953 1312T802 1243Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950 +758 866 866T616 975Q453 975 370 868T287 549ZM998 1241H888Q823 1293 734 1389T605 1548V1569H808Q840 1500 897 1410T998 1266V1241Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950 +758 866 866T616 975Q453 975 370 868T287 549ZM479 1266Q527 1328 582 1416T670 1569H872V1548Q828 1483 741 1388T590 1241H479V1266Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 +549Q950 758 866 866T616 975Q453 975 370 868T287 549ZM282 1264Q409 1400 460 1464T534 1569H700Q722 1527 776 1461T956 1264V1241H837Q749 1296 616 1427Q480 1293 397 1241H282V1264Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950 +758 866 866T616 975Q453 975 370 868T287 549ZM1029 1243Q986 1243 945 1261T865 1302T789 1343T718 1362Q668 1362 643 1332T603 1241H505Q518 1362 575 1430T724 1499Q770 1499 813 1481T895 1440T970 1399T1038 1380Q1087 1380 1111 1409T1150 1501H1249Q1236 +1380 1180 1312T1029 1243Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950 +758 866 866T616 975Q453 975 370 868T287 549ZM336 1393Q336 1445 362 1468T426 1491Q464 1491 491 1468T519 1393Q519 1343 492 1319T426 1294Q389 1294 363 1318T336 1393ZM717 1393Q717 1445 743 1468T807 1491Q844 1491 871 1468T899 1393Q899 1343 872 1319T807 +1294Q770 1294 744 1318T717 1393Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="1171" d="M104 653V791H1065V653H104ZM471 373Q471 433 500 463T584 494Q636 494 665 463T694 373Q694 316 665 284T584 252Q532 252 502 283T471 373ZM471 1071Q471 1131 500 1161T584 1192Q636 1192 +665 1161T694 1071Q694 1014 665 982T584 950Q532 950 502 981T471 1071Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q460 -20 348 49L264 -68L150 10L244 141Q115 293 115 549Q115 817 249 966T621 1116Q775 1116 891 1040L975 1159L1092 1083L995 950Q1122 798 1122 549ZM287 +549Q287 378 340 276L805 922Q730 975 616 975Q453 975 370 868T287 549ZM950 549Q950 713 899 813L434 170Q505 119 618 119Q781 119 865 228T950 549Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332ZM982 1241H872Q807 1293 718 1389T589 +1548V1569H792Q824 1500 881 1410T982 1266V1241Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332ZM506 1266Q554 1328 609 1416T697 +1569H899V1548Q855 1483 768 1388T617 1241H506V1266Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332ZM286 1264Q413 1400 464 1464T538 +1569H704Q726 1527 780 1461T960 1264V1241H841Q753 1296 620 1427Q484 1293 401 1241H286V1264Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332ZM342 1393Q342 1445 368 1468T432 +1491Q470 1491 497 1468T525 1393Q525 1343 498 1319T432 1294Q395 1294 369 1318T342 1393ZM723 1393Q723 1445 749 1468T813 1491Q850 1491 877 1468T905 1393Q905 1343 878 1319T813 1294Q776 1294 750 1318T723 1393Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="1032" d="M2 1096H180L420 471Q499 257 518 162H526Q539 213 580 336T852 1096H1030L559 -152Q489 -337 396 -414T166 -492Q90 -492 16 -475V-342Q71 -354 139 -354Q310 -354 383 -162L444 -6L2 1096ZM411 +1266Q459 1328 514 1416T602 1569H804V1548Q760 1483 673 1388T522 1241H411V1266Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="1255" d="M344 948Q410 1037 495 1076T686 1116Q901 1116 1021 966T1141 549Q1141 281 1021 131T686 -20Q464 -20 342 141H330L334 107Q342 30 342 -33V-492H176V1556H342V1090Q342 1038 336 948H344ZM664 +975Q496 975 420 883T342 590V549Q342 318 419 219T666 119Q969 119 969 551Q969 766 895 870T664 975Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="1032" d="M2 1096H180L420 471Q499 257 518 162H526Q539 213 580 336T852 1096H1030L559 -152Q489 -337 396 -414T166 -492Q90 -492 16 -475V-342Q71 -354 139 -354Q310 -354 383 -162L444 -6L2 1096ZM490 +1393Q490 1445 516 1468T580 1491Q618 1491 645 1468T673 1393Q673 1343 646 1319T580 1294Q543 1294 517 1318T490 1393ZM871 1393Q871 1445 897 1468T961 1491Q998 1491 1025 1468T1053 1393Q1053 1343 1026 1319T961 1294Q924 1294 898 1318T871 1393Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="1024" d="M82 473V625H942V473H82Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="2048" d="M82 473V625H1966V473H82Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="348" d="M37 961L25 983Q47 1073 96 1207T201 1462H324Q258 1208 221 961H37Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="348" d="M309 1462L324 1440Q298 1340 249 1208T147 961H25Q95 1246 127 1462H309Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="502" d="M350 238L365 215Q339 115 290 -17T188 -264H63Q90 -160 122 -7T168 238H350Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="717" d="M406 961L391 983Q447 1198 569 1462H692Q662 1347 633 1203T590 961H406ZM37 961L25 983Q47 1073 96 1207T201 1462H324Q258 1208 221 961H37Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="717" d="M309 1462L324 1440Q298 1340 249 1208T147 961H25Q95 1246 127 1462H309ZM678 1462L692 1440Q668 1349 620 1216T516 961H391Q417 1061 450 1215T496 1462H678Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="829" d="M309 238L324 216Q298 116 249 -16T147 -263H25Q95 22 127 238H309ZM678 238L692 216Q668 125 620 -8T516 -263H391Q417 -163 450 -9T496 238H678Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="770" d="M164 748Q164 869 220 932T385 995Q490 995 548 933T606 748Q606 629 549 565T385 500Q278 500 221 565T164 748Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="623" d="M82 551L424 958L543 889L254 539L543 188L424 117L82 524V551Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="623" d="M541 524L197 117L80 188L367 539L80 889L197 958L541 551V524Z" /> +</font> +</defs> +</svg> diff --git a/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.ttf b/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..65a04f13496937ee74352af93a2cbe2eb623a7e1 GIT binary patch literal 38424 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 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.woff b/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..6ca02c4689a1c6dd31d8ce0ee0d477ac66b5f1cb GIT binary patch literal 23708 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 F0{~qi(w6`L literal 0 HcmV?d00001 diff --git a/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.woff2 b/website/agenda/planung/fonts/open-sans-v15-latin_latin-ext-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a337154f3a2c9c5b57d53bc0b0e79f6f7bbe335b GIT binary patch literal 18876 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 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.eot b/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..748c0e6b1fd640208c7e82eaba422576bdbc449d GIT binary patch literal 25062 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 O0sV=2k19SHHvj;Ix;zB{ literal 0 HcmV?d00001 diff --git a/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.svg b/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.svg new file mode 100644 index 0000000..627f5a3 --- /dev/null +++ b/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.svg @@ -0,0 +1,308 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg"> +<defs > +<font id="Roboto" horiz-adv-x="1158" ><font-face + font-family="Roboto" + units-per-em="2048" + panose-1="2 0 0 0 0 0 0 0 0 0" + ascent="1900" + descent="-500" + alphabetic="0" /> +<glyph unicode=" " horiz-adv-x="507" /> +<glyph unicode="!" horiz-adv-x="527" d="M347 411H180L167 1456H361L347 411ZM160 93Q160 138 187 168T269 199T351 169T379 93T351 19T269 -11T188 18T160 93Z" /> +<glyph unicode=""" horiz-adv-x="655" d="M277 1400L247 1042H136L137 1536H277V1400ZM547 1400L517 1042H406L407 1536H547V1400Z" /> +<glyph unicode="#" horiz-adv-x="1261" d="M765 410H501L421 0H278L358 410H119V547H384L453 901H195V1040H480L562 1456H705L623 1040H887L969 1456H1113L1031 1040H1235V901H1004L935 547H1160V410H909L829 0H685L765 410ZM527 547H791L860 901H596L527 547Z" /> +<glyph unicode="$" horiz-adv-x="1150" d="M856 375Q856 467 792 530T574 644Q361 709 264 813T166 1079Q166 1243 261 1348T524 1473V1692H673V1472Q841 1449 934 1331T1028 1008H844Q844 1149 777 1232T596 1315Q477 1315 414 1254T351 1082Q351 980 417 920T636 +810T874 701T1000 562T1041 377Q1041 208 940 105T655 -17V-208H507V-17Q321 0 216 115T110 429H295Q295 290 368 215T575 140Q706 140 781 203T856 375Z" /> +<glyph unicode="%" horiz-adv-x="1500" d="M105 1176Q105 1307 188 1392T403 1477Q536 1477 618 1392T701 1170V1099Q701 967 618 884T405 800Q275 800 190 883T105 1106V1176ZM243 1099Q243 1021 287 971T405 920Q476 920 519 969T563 1103V1176Q563 1254 520 +1305T403 1356T286 1305T243 1172V1099ZM814 357Q814 488 897 572T1112 657T1327 573T1411 350V279Q1411 148 1328 64T1114 -21T899 62T814 285V357ZM952 279Q952 200 996 150T1114 99Q1186 99 1229 148T1272 283V357Q1272 436 1229 486T1112 536Q1041 536 997 +487T952 353V279ZM447 110L342 176L1053 1314L1158 1248L447 110Z" /> +<glyph unicode="&" horiz-adv-x="1273" d="M101 391Q101 496 159 584T383 789Q286 907 253 979T220 1122Q220 1288 318 1382T584 1476Q734 1476 832 1389T930 1168Q930 1080 886 1006T730 849L623 770L947 383Q1015 513 1015 672H1182Q1182 417 1059 249L1267 +0H1045L948 115Q874 49 775 15T572 -20Q359 -20 230 93T101 391ZM572 131Q719 131 841 243L486 668L453 644Q286 521 286 391Q286 273 362 202T572 131ZM405 1128Q405 1032 523 888L641 971Q709 1019 734 1062T759 1168Q759 1235 709 1279T583 1324Q501 1324 453 +1269T405 1128Z" /> +<glyph unicode="'" horiz-adv-x="357" d="M253 1425L232 1057H103L104 1536H253V1425Z" /> +<glyph unicode="(" horiz-adv-x="700" d="M133 591Q133 817 193 1025T374 1403T623 1643L661 1521Q515 1409 422 1179T319 664L318 579Q318 193 459 -91Q544 -261 661 -357L623 -470Q490 -396 369 -222Q133 118 133 591Z" /> +<glyph unicode=")" horiz-adv-x="712" d="M567 581Q567 358 509 154T330 -224T77 -470L38 -357Q192 -239 285 9T381 561V593Q381 803 337 983T215 1307T38 1530L77 1643Q209 1570 328 1399T507 1022T567 581Z" /> +<glyph unicode="*" horiz-adv-x="882" d="M330 983L28 1073L74 1224L376 1112L367 1456H520L510 1107L807 1217L853 1065L546 974L744 703L620 609L434 897L254 616L129 707L330 983Z" /> +<glyph unicode="+" horiz-adv-x="1161" d="M670 781H1076V606H670V146H484V606H78V781H484V1206H670V781Z" /> +<glyph unicode="," horiz-adv-x="402" d="M134 -290L29 -218Q123 -87 127 52V219H308V74Q308 -27 259 -128T134 -290Z" /> +<glyph unicode="-" horiz-adv-x="565" d="M525 543H37V694H525V543Z" /> +<glyph unicode="." horiz-adv-x="539" d="M144 97Q144 145 172 177T258 209T344 177T374 97Q374 51 345 20T258 -11T173 20T144 97Z" /> +<glyph unicode="/" horiz-adv-x="844" d="M177 -125H18L626 1456H784L177 -125Z" /> +<glyph unicode="0" horiz-adv-x="1150" d="M1034 621Q1034 296 923 138T576 -20Q343 -20 231 134T115 596V843Q115 1164 226 1320T574 1476Q809 1476 920 1326T1034 861V621ZM849 874Q849 1109 783 1216T574 1324Q432 1324 367 1217T300 888V592Q300 356 368 244T576 +131Q713 131 779 237T849 571V874Z" /> +<glyph unicode="1" horiz-adv-x="1150" d="M729 0H543V1233L170 1096V1264L700 1463H729V0Z" /> +<glyph unicode="2" horiz-adv-x="1150" d="M1075 0H121V133L625 693Q737 820 779 899T822 1064Q822 1178 753 1251T569 1324Q431 1324 355 1246T278 1027H93Q93 1228 222 1352T569 1476Q772 1476 890 1370T1008 1086Q1008 871 734 574L344 151H1075V0Z" /> +<glyph unicode="3" horiz-adv-x="1150" d="M390 818H529Q660 820 735 887T810 1068Q810 1324 555 1324Q435 1324 364 1256T292 1074H107Q107 1247 233 1361T555 1476Q761 1476 878 1367T995 1064Q995 969 934 880T766 747Q886 709 951 621T1017 406Q1017 210 889 +95T556 -20T223 91T94 384H280Q280 269 355 200T556 131Q690 131 761 201T832 402Q832 529 754 597T529 667H390V818Z" /> +<glyph unicode="4" horiz-adv-x="1150" d="M902 489H1104V338H902V0H716V338H53V447L705 1456H902V489ZM263 489H716V1203L694 1163L263 489Z" /> +<glyph unicode="5" horiz-adv-x="1150" d="M206 730L280 1456H1026V1285H437L393 888Q500 951 636 951Q835 951 952 820T1069 464Q1069 239 948 110T608 -20Q415 -20 293 87T154 383H329Q346 258 418 195T608 131Q737 131 810 219T884 462Q884 608 805 696T593 +785Q472 785 403 732L354 692L206 730Z" /> +<glyph unicode="6" horiz-adv-x="1150" d="M847 1457V1300H813Q597 1296 469 1172T321 823Q436 955 635 955Q825 955 938 821T1052 475Q1052 250 930 115T601 -20Q392 -20 262 140T132 554V625Q132 1027 303 1239T814 1457H847ZM604 801Q509 801 429 744T318 601V533Q318 +353 399 243T601 133Q726 133 797 225T869 466Q869 616 797 708T604 801Z" /> +<glyph unicode="7" horiz-adv-x="1150" d="M1061 1352L458 0H264L865 1304H77V1456H1061V1352Z" /> +<glyph unicode="8" horiz-adv-x="1150" d="M1004 1076Q1004 967 947 882T791 749Q905 700 971 606T1038 393Q1038 204 911 92T575 -20Q365 -20 239 92T112 393Q112 511 176 606T355 750Q258 798 202 883T146 1076Q146 1260 264 1368T575 1476Q767 1476 885 1368T1004 +1076ZM853 397Q853 519 776 596T573 673T373 597T297 397T370 202T575 131Q705 131 779 202T853 397ZM575 1324Q466 1324 399 1257T331 1073Q331 962 397 894T575 825T752 893T819 1073T750 1254T575 1324Z" /> +<glyph unicode="9" horiz-adv-x="1150" d="M830 640Q772 571 692 529T515 487Q389 487 296 549T151 723T100 972Q100 1118 155 1235T313 1414T551 1476Q767 1476 891 1315T1016 874V820Q1016 395 848 200T341 -1H305V155H344Q573 159 696 274T830 640ZM545 640Q638 +640 716 697T831 838V912Q831 1094 752 1208T552 1322Q430 1322 356 1229T282 982Q282 833 353 737T545 640Z" /> +<glyph unicode=":" horiz-adv-x="496" d="M390 97Q390 145 418 177T504 209T590 177T620 97Q620 51 591 20T504 -11T419 20T390 97ZM135 980Q135 1028 163 1060T249 1092T335 1060T365 980Q365 934 336 903T249 872T164 903T135 980Z" /> +<glyph unicode=";" horiz-adv-x="433" d="M111 980Q111 1028 139 1060T225 1092T311 1060T341 980Q341 934 312 903T225 872T140 903T111 980ZM146 -290L41 -218Q135 -87 139 52V219H320V74Q320 -27 271 -128T146 -290Z" /> +<glyph unicode="<" horiz-adv-x="1041" d="M264 644L890 391V195L72 574V720L890 1098V902L264 644Z" /> +<glyph unicode="=" horiz-adv-x="1124" d="M986 814H152V975H986V814ZM986 399H152V559H986V399Z" /> +<glyph unicode=">" horiz-adv-x="1070" d="M795 650L134 909V1099L988 721V575L134 196V388L795 650Z" /> +<glyph unicode="?" horiz-adv-x="967" d="M357 410Q359 529 384 598T486 751L617 886Q701 981 701 1090Q701 1195 646 1254T486 1314Q384 1314 322 1260T260 1115H75Q77 1277 190 1376T486 1476Q675 1476 780 1375T886 1096Q886 921 724 751L615 643Q542 562 542 +410H357ZM349 93Q349 138 376 168T458 199T540 169T568 93T540 19T458 -11T377 18T349 93Z" /> +<glyph unicode="@" horiz-adv-x="1839" d="M1738 502Q1726 260 1618 120T1329 -20Q1142 -20 1089 148Q1035 63 966 22T822 -20Q680 -20 607 96T553 417Q568 582 628 711T784 915T985 989Q1066 989 1130 968T1274 883L1222 329Q1203 98 1350 98Q1463 98 1533 210T1609 +502Q1628 891 1465 1095T967 1299Q766 1299 610 1200T364 912T263 478Q251 230 323 48T542 -231T899 -328Q989 -328 1079 -306T1230 -249L1267 -364Q1205 -403 1103 -428T895 -453Q645 -453 465 -341T196 -17T118 478Q130 753 241 972T542 1311T971 1431Q1220 1431 +1398 1319T1663 996T1738 502ZM712 417Q698 275 738 199T867 123Q927 123 982 174T1074 320L1075 329L1121 832Q1065 861 1001 861Q884 861 808 742T712 417Z" /> +<glyph unicode="A" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538Z" /> +<glyph unicode="B" horiz-adv-x="1275" d="M169 0V1456H645Q882 1456 1001 1358T1121 1068Q1121 966 1063 888T905 766Q1023 733 1091 641T1160 420Q1160 224 1033 112T674 0H169ZM361 681V157H678Q812 157 889 226T967 418Q967 681 681 681H361ZM361 835H651Q777 +835 852 898T928 1069Q928 1189 858 1243T645 1298H361V835Z" /> +<glyph unicode="C" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 417 411 +277T688 137Q848 137 933 209T1047 462H1240Z" /> +<glyph unicode="D" horiz-adv-x="1343" d="M169 0V1456H580Q770 1456 916 1372T1141 1133T1222 777V684Q1222 478 1143 323T916 85T572 0H169ZM361 1298V157H563Q785 157 908 295T1032 688V773Q1032 1021 916 1158T585 1298H361Z" /> +<glyph unicode="E" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673Z" /> +<glyph unicode="F" horiz-adv-x="1132" d="M972 643H361V0H169V1456H1071V1298H361V800H972V643Z" /> +<glyph unicode="G" horiz-adv-x="1395" d="M1244 191Q1170 85 1038 33T729 -20Q551 -20 413 63T200 301T122 658V785Q122 1114 275 1295T707 1476Q935 1476 1074 1360T1244 1029H1052Q998 1318 708 1318Q515 1318 416 1183T315 790V671Q315 426 427 282T730 137Q838 +137 919 161T1053 242V569H716V725H1244V191Z" /> +<glyph unicode="H" horiz-adv-x="1460" d="M1288 0H1095V673H361V0H169V1456H361V830H1095V1456H1288V0Z" /> +<glyph unicode="I" horiz-adv-x="557" d="M375 0H183V1456H375V0Z" /> +<glyph unicode="J" horiz-adv-x="1130" d="M779 1456H972V425Q972 216 847 98T512 -20Q295 -20 174 91T53 402H245Q245 277 313 207T512 137Q631 137 704 212T779 422V1456Z" /> +<glyph unicode="K" horiz-adv-x="1284" d="M539 677L361 492V0H169V1456H361V736L1008 1456H1240L667 813L1285 0H1055L539 677Z" /> +<glyph unicode="L" horiz-adv-x="1102" d="M362 157H1052V0H169V1456H362V157Z" /> +<glyph unicode="M" horiz-adv-x="1788" d="M417 1456L893 268L1369 1456H1618V0H1426V567L1444 1179L966 0H819L342 1176L361 567V0H169V1456H417Z" /> +<glyph unicode="N" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0Z" /> +<glyph unicode="O" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 1311 +417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775Z" /> +<glyph unicode="P" horiz-adv-x="1292" d="M361 570V0H169V1456H706Q945 1456 1080 1334T1216 1011Q1216 799 1084 685T704 570H361ZM361 727H706Q860 727 942 799T1024 1009Q1024 1139 942 1217T717 1298H361V727Z" /> +<glyph unicode="Q" horiz-adv-x="1408" d="M1281 681Q1281 470 1214 318T1026 79L1286 -125L1155 -246L848 -2Q776 -20 696 -20Q524 -20 391 64T185 305T109 668V773Q109 983 182 1144T388 1390T694 1476Q870 1476 1003 1391T1209 1147T1281 774V681ZM1089 775Q1089 +1032 987 1171T694 1311Q513 1311 409 1173T301 788V681Q301 431 405 287T696 143T984 278T1089 667V775Z" /> +<glyph unicode="R" horiz-adv-x="1261" d="M703 589H361V0H168V1456H650Q896 1456 1028 1344T1161 1018Q1161 882 1088 781T883 630L1225 12V0H1019L703 589ZM361 746H656Q799 746 883 820T968 1018Q968 1153 888 1225T655 1298H361V746Z" /> +<glyph unicode="S" horiz-adv-x="1215" d="M598 649Q351 720 239 823T126 1079Q126 1251 263 1363T621 1476Q771 1476 888 1418T1070 1258T1135 1035H942Q942 1167 858 1242T621 1318Q479 1318 400 1256T320 1082Q320 993 395 932T652 819T936 707T1088 563T1138 +370Q1138 193 1000 87T631 -20Q481 -20 351 37T151 195T80 422H273Q273 290 370 214T631 137Q783 137 864 199T945 368T870 533T598 649Z" /> +<glyph unicode="T" horiz-adv-x="1222" d="M1175 1298H707V0H516V1298H49V1456H1175V1298Z" /> +<glyph unicode="U" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194Z" /> +<glyph unicode="V" horiz-adv-x="1303" d="M651 255L1067 1456H1277L737 0H567L28 1456H237L651 255Z" /> +<glyph unicode="W" horiz-adv-x="1817" d="M483 459L511 267L552 440L840 1456H1002L1283 440L1323 264L1354 460L1580 1456H1773L1420 0H1245L945 1061L922 1172L899 1061L588 0H413L61 1456H253L483 459Z" /> +<glyph unicode="X" horiz-adv-x="1284" d="M644 898L993 1456H1219L759 734L1230 0H1002L644 568L284 0H57L529 734L68 1456H293L644 898Z" /> +<glyph unicode="Y" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725Z" /> +<glyph unicode="Z" horiz-adv-x="1226" d="M313 157H1146V0H86V144L884 1298H99V1456H1114V1315L313 157Z" /> +<glyph unicode="[" horiz-adv-x="543" d="M523 1512H332V-160H523V-312H146V1664H523V1512Z" /> +<glyph unicode="\" horiz-adv-x="840" d="M40 1456H216L824 -125H648L40 1456Z" /> +<glyph unicode="]" horiz-adv-x="543" d="M9 1664H387V-312H9V-160H202V1512H9V1664Z" /> +<glyph unicode="^" horiz-adv-x="856" d="M426 1211L236 729H64L363 1456H490L788 729H617L426 1211Z" /> +<glyph unicode="_" horiz-adv-x="924" d="M920 -151H4V0H920V-151Z" /> +<glyph unicode="`" horiz-adv-x="633" d="M474 1242H315L57 1536H280L474 1242Z" /> +<glyph unicode="a" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141Z" /> +<glyph unicode="b" horiz-adv-x="1149" d="M1056 529Q1056 281 942 131T636 -20Q431 -20 319 125L310 0H140V1536H325V963Q437 1102 634 1102T943 953T1056 545V529ZM871 550Q871 739 798 842T588 945Q405 945 325 775V307Q410 137 590 137Q723 137 797 240T871 550Z" /> +<glyph unicode="c" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 849T277 +555V520Q277 333 354 232T574 131Z" /> +<glyph unicode="d" horiz-adv-x="1155" d="M95 550Q95 799 213 950T522 1102Q712 1102 823 972V1536H1008V0H838L829 116Q718 -20 520 -20Q332 -20 214 134T95 536V550ZM280 529Q280 345 356 241T566 137Q742 137 823 295V792Q740 945 568 945Q432 945 356 840T280 529Z" /> +<glyph unicode="e" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 869T284 +640H826V654Q818 795 750 872T566 950Z" /> +<glyph unicode="f" horiz-adv-x="711" d="M231 0V939H60V1082H231V1193Q231 1367 324 1462T587 1557Q651 1557 714 1540L704 1390Q657 1399 604 1399Q514 1399 465 1347T416 1196V1082H647V939H416V0H231Z" /> +<glyph unicode="g" horiz-adv-x="1149" d="M96 550Q96 803 213 952T523 1102Q721 1102 832 962L841 1082H1010V26Q1010 -184 886 -305T551 -426Q434 -426 322 -376T151 -239L247 -128Q366 -275 538 -275Q673 -275 748 -199T824 15V108Q713 -20 521 -20Q331 -20 +214 133T96 550ZM282 529Q282 346 357 242T567 137Q742 137 824 296V790Q739 945 569 945Q434 945 358 840T282 529Z" /> +<glyph unicode="h" horiz-adv-x="1128" d="M325 951Q448 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1536H325V951Z" /> +<glyph unicode="i" horiz-adv-x="497" d="M341 0H156V1082H341V0ZM141 1369Q141 1414 168 1445T250 1476T332 1445T360 1369T332 1294T250 1264T169 1294T141 1369Z" /> +<glyph unicode="j" horiz-adv-x="489" d="M331 1082V-125Q331 -437 48 -437Q-13 -437 -65 -419V-271Q-33 -279 19 -279Q81 -279 113 -246T146 -129V1082H331ZM127 1369Q127 1413 154 1444T235 1476Q289 1476 317 1445T345 1369T317 1294T235 1264T154 1294T127 1369Z" /> +<glyph unicode="k" horiz-adv-x="1038" d="M442 501L326 380V0H141V1536H326V607L425 726L762 1082H987L566 630L1036 0H819L442 501Z" /> +<glyph unicode="l" horiz-adv-x="497" d="M341 0H156V1536H341V0Z" /> +<glyph unicode="m" horiz-adv-x="1795" d="M314 1082L319 962Q438 1102 640 1102Q867 1102 949 928Q1003 1006 1089 1054T1294 1102Q1650 1102 1656 725V0H1471V714Q1471 830 1418 887T1240 945Q1137 945 1069 884T990 718V0H804V709Q804 945 573 945Q391 945 +324 790V0H139V1082H314Z" /> +<glyph unicode="n" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315Z" /> +<glyph unicode="o" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 807 +839T582 950Q445 950 361 841T277 529Z" /> +<glyph unicode="p" horiz-adv-x="1149" d="M1054 529Q1054 282 941 131T635 -20Q438 -20 325 105V-416H140V1082H309L318 962Q431 1102 632 1102Q827 1102 940 955T1054 546V529ZM869 550Q869 733 791 839T577 945Q409 945 325 796V279Q408 131 579 131Q712 131 +790 236T869 550Z" /> +<glyph unicode="q" horiz-adv-x="1164" d="M95 550Q95 805 212 953T526 1102Q718 1102 829 973L837 1082H1007V-416H822V100Q710 -20 524 -20Q328 -20 212 132T95 537V550ZM280 529Q280 343 358 237T570 131Q735 131 822 277V807Q734 950 572 950Q438 950 359 +844T280 529Z" /> +<glyph unicode="r" horiz-adv-x="693" d="M663 916Q621 923 572 923Q390 923 325 768V0H140V1082H320L323 957Q414 1102 581 1102Q635 1102 663 1088V916Z" /> +<glyph unicode="s" horiz-adv-x="1056" d="M770 287Q770 362 714 403T517 475T294 547T172 647T132 785Q132 918 244 1010T532 1102Q716 1102 830 1007T945 764H759Q759 840 695 895T532 950Q431 950 374 906T317 791Q317 724 370 690T561 625T786 551T913 448T955 +300Q955 155 839 68T538 -20Q408 -20 308 26T152 154T95 333H280Q285 240 354 186T538 131Q643 131 706 173T770 287Z" /> +<glyph unicode="t" horiz-adv-x="669" d="M391 1344V1082H593V939H391V268Q391 203 418 171T510 138Q542 138 598 150V0Q525 -20 456 -20Q332 -20 269 55T206 268V939H9V1082H206V1344H391Z" /> +<glyph unicode="u" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107Z" /> +<glyph unicode="v" horiz-adv-x="992" d="M497 251L765 1082H954L566 0H425L33 1082H222L497 251Z" /> +<glyph unicode="w" horiz-adv-x="1539" d="M1098 255L1306 1082H1491L1176 0H1026L763 820L507 0H357L43 1082H227L440 272L692 1082H841L1098 255Z" /> +<glyph unicode="x" horiz-adv-x="1015" d="M503 687L743 1082H959L605 547L970 0H756L506 405L256 0H41L406 547L52 1082H266L503 687Z" /> +<glyph unicode="y" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271Z" /> +<glyph unicode="z" horiz-adv-x="1015" d="M314 151H947V0H88V136L685 929H97V1082H917V951L314 151Z" /> +<glyph unicode="{" horiz-adv-x="693" d="M632 -366Q455 -316 366 -202T276 101V300Q276 543 64 543V688Q276 688 276 930V1138Q278 1321 365 1433T632 1597L670 1482Q461 1415 461 1133V931Q461 704 294 615Q461 525 461 296V90Q464 -185 670 -251L632 -366Z" /> +<glyph unicode="|" horiz-adv-x="499" d="M324 -270H175V1456H324V-270Z" /> +<glyph unicode="}" horiz-adv-x="693" d="M19 -251Q222 -186 229 80V300Q229 531 410 615Q229 697 229 930V1133Q229 1415 20 1482L58 1597Q235 1547 324 1435T414 1137V927Q414 688 626 688V543Q414 543 414 300V98Q414 -90 324 -203T58 -366L19 -251Z" /> +<glyph unicode="~" horiz-adv-x="1393" d="M1263 777Q1263 619 1170 511T939 402Q867 402 803 428T655 529T533 621T454 639Q376 639 334 586T292 438L131 436Q131 596 223 699T454 802Q530 802 600 770T758 658T910 567L939 565Q1015 565 1062 623T1110 776L1263 777Z" /> +<glyph unicode=" " horiz-adv-x="507" /> +<glyph unicode="¡" horiz-adv-x="499" d="M170 684H338L351 -360H157L170 684ZM358 996Q358 951 331 920T249 889T167 920T139 996T167 1071T249 1101T330 1071T358 996Z" /> +<glyph unicode="¢" horiz-adv-x="1120" d="M586 131Q686 131 760 191T842 341H1017Q1011 215 912 115T669 -12V-245H484V-11Q305 23 205 165T105 527V562Q105 774 206 916T484 1092V1318H669V1095Q819 1072 915 966T1017 710H842Q834 815 763 882T586 950Q445 +950 368 849T290 555V520Q290 333 367 232T586 131Z" /> +<glyph unicode="£" horiz-adv-x="1190" d="M449 622L457 402Q457 248 395 157H1128L1127 0H95V157H172Q212 166 237 231T264 393V401L256 622H91V779H251L242 1039Q242 1238 364 1357T687 1476Q877 1476 988 1370T1099 1087H908Q908 1194 845 1256T670 1318Q565 +1318 500 1241T435 1039L444 779H763V622H449Z" /> +<glyph unicode="¤" horiz-adv-x="1460" d="M1103 112Q944 -20 735 -20Q528 -20 369 110L235 -26L105 109L244 250Q140 406 140 608Q140 814 252 977L105 1128L235 1264L382 1114Q540 1234 735 1234Q931 1234 1090 1113L1239 1265L1371 1128L1220 974Q1330 +811 1330 608Q1330 412 1228 253L1371 109L1239 -27L1103 112ZM311 608Q311 485 368 379T524 212T735 151T946 212T1100 379T1157 608Q1157 730 1101 835T946 1001T735 1062Q622 1062 524 1002T369 836T311 608Z" /> +<glyph unicode="¥" horiz-adv-x="1075" d="M539 793L847 1456H1060L693 736H954V611H630V446H954V322H630V0H437V322H119V446H437V611H119V736H382L15 1456H231L539 793Z" /> +<glyph unicode="¦" horiz-adv-x="491" d="M147 -270V521H333V-270H147ZM333 698H147V1456H333V698Z" /> +<glyph unicode="§" horiz-adv-x="1256" d="M1145 431Q1145 242 959 157Q1028 108 1064 40T1100 -128Q1100 -296 970 -395T612 -495Q500 -495 400 -467T229 -382Q90 -269 90 -64L276 -62Q276 -192 366 -267T612 -343Q748 -343 831 -285T914 -130Q914 -41 843 +11T563 126Q381 174 285 229T143 362T96 551Q96 737 278 825Q212 874 177 942T141 1110Q141 1276 274 1376T630 1476Q862 1476 992 1363T1122 1045H937Q937 1170 853 1247T630 1325Q488 1325 408 1268T327 1112Q327 1043 355 1003T450 931T661 858T889 782T1030 +698T1116 585T1145 431ZM602 691Q512 715 437 742Q357 723 320 673T282 553Q282 483 309 443T402 370T611 296T797 238Q875 258 917 308T959 428Q959 516 890 570T602 691Z" /> +<glyph unicode="¨" horiz-adv-x="856" d="M101 1371Q101 1416 128 1446T210 1477T292 1447T320 1371T292 1296T210 1266T129 1296T101 1371ZM531 1369Q531 1414 558 1445T640 1476T722 1445T750 1369T722 1294T640 1264T559 1294T531 1369Z" /> +<glyph unicode="©" horiz-adv-x="1609" d="M1119 597Q1119 444 1033 364T788 283Q631 283 537 388T442 676V786Q442 962 537 1067T788 1173Q948 1173 1034 1091T1120 860H974Q974 959 927 1001T788 1044Q694 1044 640 975T586 783V670Q586 550 640 481T788 +412Q880 412 926 454T973 597H1119ZM206 729Q206 557 286 411T503 181T801 98T1098 181T1315 410T1395 729Q1395 899 1316 1044T1100 1272T801 1356Q641 1356 503 1274T286 1045T206 729ZM91 729Q91 931 184 1104T443 1376T801 1476T1158 1377T1416 1104T1510 729Q1510 +532 1420 360T1165 84T801 -21Q604 -21 439 82T182 358T91 729Z" /> +<glyph unicode="ª" horiz-adv-x="915" d="M618 705Q606 739 600 777Q524 691 396 691Q277 691 212 753T147 918Q147 1029 230 1089T486 1149H594V1201Q594 1336 470 1336Q401 1336 362 1309T322 1231L161 1243Q161 1346 247 1411T470 1476Q603 1476 680 1405T757 +1199V883Q757 786 783 705H618ZM435 828Q478 828 522 848T594 895V1037H482Q399 1036 355 1005T310 922Q310 828 435 828Z" /> +<glyph unicode="«" horiz-adv-x="961" d="M536 804L794 407H653L358 795V814L653 1203H794L536 804ZM610 548L868 151H727L432 539V558L727 947H868L610 548Z" /> +<glyph unicode="¬" horiz-adv-x="1134" d="M958 375H772V639H127V800H958V375Z" /> +<glyph unicode="­" horiz-adv-x="565" d="M525 543H37V694H525V543Z" /> +<glyph unicode="®" horiz-adv-x="1610" d="M90 729Q90 931 183 1104T442 1376T800 1476T1157 1377T1415 1104T1509 729Q1509 532 1419 360T1164 84T800 -21Q603 -21 438 82T181 358T90 729ZM205 729Q205 557 285 411T502 181T800 98Q961 98 1099 182T1315 +412T1394 729Q1394 900 1316 1044T1099 1272T800 1356Q640 1356 502 1274T285 1045T205 729ZM653 654V316H512V1165H788Q941 1165 1025 1100T1110 909Q1110 786 982 721Q1104 671 1105 517V456Q1105 370 1122 332V316H977Q963 352 963 444T960 554Q944 650 829 +654H653ZM653 782H809Q881 784 925 817T969 904Q969 977 930 1007T791 1038H653V782Z" /> +<glyph unicode="¯" horiz-adv-x="938" d="M814 1302H142V1445H814V1302Z" /> +<glyph unicode="°" horiz-adv-x="765" d="M130 1216Q130 1320 204 1398T385 1476Q489 1476 562 1399T636 1216Q636 1110 563 1035T385 960Q280 960 205 1035T130 1216ZM385 1088Q439 1088 476 1123T513 1216Q513 1274 476 1311T385 1349Q330 1349 293 1310T255 +1216T292 1125T385 1088Z" /> +<glyph unicode="±" horiz-adv-x="1094" d="M649 854H1013V703H649V289H482V703H97V854H482V1267H649V854ZM970 0H135V152H970V0Z" /> +<glyph unicode="²" horiz-adv-x="751" d="M683 667H84V775L384 1057Q493 1159 493 1228Q493 1277 461 1307T369 1338Q294 1338 259 1300T223 1205H66Q66 1319 149 1393T365 1467T574 1404T651 1230Q651 1126 544 1019L460 940L284 795H683V667Z" /> +<glyph unicode="³" horiz-adv-x="751" d="M265 1126H349Q423 1126 459 1156T495 1235Q495 1280 464 1309T362 1338Q305 1338 268 1313T230 1246H73Q73 1344 154 1405T360 1467Q497 1467 575 1407T653 1242Q653 1187 618 1142T517 1071Q666 1030 666 887Q666 +781 581 719T360 656Q228 656 145 719T62 889H220Q220 844 259 814T366 784Q436 784 472 814T509 895Q509 1008 353 1010H265V1126Z" /> +<glyph unicode="´" horiz-adv-x="642" d="M316 1536H540L272 1242H123L316 1536Z" /> +<glyph unicode="µ" horiz-adv-x="1160" d="M339 1082V449Q340 286 391 208T559 130Q758 130 820 282V1082H1006V0H839L830 115Q737 -20 567 -20Q420 -20 339 53V-416H154V1082H339Z" /> +<glyph unicode="¶" horiz-adv-x="1001" d="M646 0V520H562Q332 520 200 647T67 988Q67 1201 200 1328T563 1456H832V0H646Z" /> +<glyph unicode="·" horiz-adv-x="534" d="M147 729Q147 777 175 809T261 841T347 809T377 729Q377 682 348 651T261 619T176 650T147 729Z" /> +<glyph unicode="¸" horiz-adv-x="507" d="M285 0L273 -52Q426 -79 426 -225Q426 -322 346 -378T123 -435L116 -328Q195 -328 238 -302T282 -229Q282 -185 250 -164T120 -134L152 0H285Z" /> +<glyph unicode="¹" horiz-adv-x="751" d="M495 667H338V1268L122 1211V1339L477 1456H495V667Z" /> +<glyph unicode="º" horiz-adv-x="931" d="M122 1123Q122 1281 216 1378T464 1476Q619 1476 713 1380T807 1117V1043Q807 884 714 787T466 690T217 787T122 1049V1123ZM285 1043Q285 943 333 886T466 829Q549 829 596 886T644 1045V1123Q644 1222 596 1279T464 +1336Q383 1336 335 1281T285 1129V1043Z" /> +<glyph unicode="»" horiz-adv-x="960" d="M244 949L539 560V541L244 152H102L360 550L102 949H244ZM593 949L888 560V541L593 152H451L709 550L451 949H593Z" /> +<glyph unicode="¼" horiz-adv-x="1500" d="M458 664H301V1265L85 1208V1336L440 1453H458V664ZM443 118L339 184L1050 1322L1154 1256L443 118ZM1318 299H1425V169H1318V0H1161V169H786L780 271L1157 789H1318V299ZM938 299H1161V588L1144 560L938 299Z" /> +<glyph unicode="½" horiz-adv-x="1589" d="M399 118L295 184L1006 1322L1110 1256L399 118ZM453 664H296V1265L80 1208V1336L435 1453H453V664ZM1481 0H882V108L1182 390Q1291 492 1291 561Q1291 610 1259 640T1167 671Q1092 671 1057 633T1021 538H864Q864 +652 947 726T1163 800T1372 737T1449 563Q1449 459 1342 352L1258 273L1082 128H1481V0Z" /> +<glyph unicode="¾" horiz-adv-x="1593" d="M570 118L466 184L1177 1322L1281 1256L570 118ZM1410 299H1517V169H1410V0H1253V169H878L872 271L1249 789H1410V299ZM1030 299H1253V588L1236 560L1030 299ZM314 1126H398Q472 1126 508 1156T544 1235Q544 1280 +513 1309T411 1338Q354 1338 317 1313T279 1246H122Q122 1344 203 1405T409 1467Q546 1467 624 1407T702 1242Q702 1187 667 1142T566 1071Q715 1030 715 887Q715 781 630 719T409 656Q277 656 194 719T111 889H269Q269 844 308 814T415 784Q485 784 521 814T558 +895Q558 1008 402 1010H314V1126Z" /> +<glyph unicode="¿" horiz-adv-x="969" d="M588 680Q587 574 567 511T498 388T358 233T255 37L253 0Q253 -109 311 -166T478 -224Q578 -224 640 -168T703 -20H888Q886 -181 774 -283T478 -385Q282 -385 175 -285T68 -5Q68 168 228 343L337 456Q403 534 403 +680H588ZM596 997Q596 952 569 921T487 890T405 921T377 997Q377 1041 405 1071T487 1101T568 1071T596 997Z" /> +<glyph unicode="À" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM778 1552H619L361 1846H584L778 1552Z" /> +<glyph unicode="Á" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM763 1846H987L719 1552H570L763 1846Z" /> +<glyph unicode="Â" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM975 1572V1562H822L672 1732L523 1562H370V1574L616 1846H728L975 1572Z" /> +<glyph unicode="Ã" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM1027 1814Q1027 1706 966 1639T812 1572Q771 1572 741 1582T663 1623T593 1660T543 1667Q502 1667 473 1636T444 1555L320 +1562Q320 1669 380 1739T534 1809Q569 1809 597 1799T673 1760T746 1722T803 1713Q846 1713 874 1747T903 1826L1027 1814Z" /> +<glyph unicode="Ä" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM350 1681Q350 1726 377 1756T459 1787T541 1757T569 1681T541 1606T459 1576T378 1606T350 1681ZM780 1679Q780 1724 +807 1755T889 1786T971 1755T999 1679T971 1604T889 1574T808 1604T780 1679Z" /> +<glyph unicode="Å" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM887 1729Q887 1642 825 1584T672 1525Q580 1525 519 1584T457 1729T518 1876T672 1937T825 1876T887 1729ZM556 1729Q556 +1682 589 1648T672 1614Q720 1614 754 1647T788 1729T755 1812T672 1847Q622 1847 589 1812T556 1729Z" /> +<glyph unicode="Æ" horiz-adv-x="1914" d="M1879 0H996L981 353H417L212 0H-14L866 1456H1817V1304H1126L1146 833H1736V682H1152L1174 151H1879V0ZM518 527H974L943 1260L518 527Z" /> +<glyph unicode="Ç" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 +417 411 277T688 137Q848 137 933 209T1047 462H1240ZM751 -9L739 -61Q892 -88 892 -234Q892 -331 812 -387T589 -444L582 -337Q661 -337 704 -311T748 -238Q748 -194 716 -173T586 -143L618 -9H751Z" /> +<glyph unicode="È" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM725 1564H566L308 1858H531L725 1564Z" /> +<glyph unicode="É" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM710 1858H934L666 1564H517L710 1858Z" /> +<glyph unicode="Ê" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM922 1584V1574H769L619 1744L470 1574H317V1586L563 1858H675L922 1584Z" /> +<glyph unicode="Ë" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM297 1693Q297 1738 324 1768T406 1799T488 1769T516 1693T488 1618T406 1588T325 1618T297 1693ZM727 1691Q727 1736 754 1767T836 1798T918 1767T946 +1691T918 1616T836 1586T755 1616T727 1691Z" /> +<glyph unicode="Ì" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM385 1564H226L-32 1858H191L385 1564Z" /> +<glyph unicode="Í" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM369 1858H593L325 1564H176L369 1858Z" /> +<glyph unicode="Î" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM582 1584V1574H429L279 1744L130 1574H-23V1586L223 1858H335L582 1584Z" /> +<glyph unicode="Ï" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM-43 1693Q-43 1738 -16 1768T66 1799T148 1769T176 1693T148 1618T66 1588T-15 1618T-43 1693ZM387 1691Q387 1736 414 1767T496 1798T578 1767T606 1691T578 1616T496 1586T415 1616T387 1691Z" /> +<glyph unicode="Ð" horiz-adv-x="1373" d="M199 0V666H7V817H199V1456H610Q800 1456 946 1372T1171 1133T1252 777V684Q1252 478 1173 323T946 85T602 0H199ZM643 666H391V157H592Q814 157 937 294T1062 680V773Q1062 1021 946 1158T615 1298H391V817H643V666Z" /> +<glyph unicode="Ñ" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0ZM1081 1814Q1081 1706 1020 1639T866 1572Q825 1572 795 1582T717 1623T647 1660T597 1667Q556 1667 527 1636T498 1555L374 1562Q374 1669 434 1739T588 +1809Q623 1809 651 1799T727 1760T800 1722T857 1713Q900 1713 928 1747T957 1826L1081 1814Z" /> +<glyph unicode="Ò" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM812 1554H653L395 1848H618L812 1554Z" /> +<glyph unicode="Ó" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM797 1848H1021L753 1554H604L797 1848Z" /> +<glyph unicode="Ô" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1009 1574V1564H856L706 1734L557 1564H404V1576L650 1848H762L1009 1574Z" /> +<glyph unicode="Õ" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1061 1816Q1061 1708 1000 1641T846 1574Q805 1574 775 1584T697 1625T627 1662T577 1669Q536 1669 507 1638T478 1557L354 1564Q354 1671 414 1741T568 1811Q603 1811 631 1801T707 +1762T780 1724T837 1715Q880 1715 908 1749T937 1828L1061 1816Z" /> +<glyph unicode="Ö" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM384 1683Q384 1728 411 1758T493 1789T575 1759T603 1683T575 1608T493 1578T412 1608T384 1683ZM814 1681Q814 1726 841 1757T923 1788T1005 1757T1033 1681T1005 1606T923 +1576T842 1606T814 1681Z" /> +<glyph unicode="×" horiz-adv-x="1092" d="M89 329L419 665L91 1000L210 1123L539 788L868 1123L987 1000L659 665L989 329L870 206L539 543L208 206L89 329Z" /> +<glyph unicode="Ø" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q534 -20 403 62L306 -93H164L308 138Q118 330 118 690V773Q118 983 191 1144T397 1390T703 1476Q917 1476 1065 1351L1168 1516H1309L1150 1261Q1287 1074 1289 780V681ZM309 +681Q309 437 407 296L971 1200Q869 1311 703 1311Q521 1311 417 1173T309 788V681ZM1098 775Q1098 957 1042 1088L493 207Q584 143 705 143Q891 143 993 278T1098 667V775Z" /> +<glyph unicode="Ù" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM773 1552H614L356 1846H579L773 1552Z" /> +<glyph unicode="Ú" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM758 1846H982L714 1552H565L758 1846Z" /> +<glyph unicode="Û" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM970 1572V1562H817L667 1732L518 1562H365V1574L611 +1846H723L970 1572Z" /> +<glyph unicode="Ü" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM345 1681Q345 1726 372 1756T454 1787T536 1757T564 +1681T536 1606T454 1576T373 1606T345 1681ZM775 1679Q775 1724 802 1755T884 1786T966 1755T994 1679T966 1604T884 1574T803 1604T775 1679Z" /> +<glyph unicode="Ý" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725ZM708 1846H932L664 1552H515L708 1846Z" /> +<glyph unicode="Þ" horiz-adv-x="1210" d="M352 1456V1163H631Q778 1163 888 1111T1057 961T1117 738Q1117 544 985 429T626 313H352V0H166V1456H352ZM352 1011V465H629Q771 465 851 540T931 736Q931 859 851 934T635 1011H352Z" /> +<glyph unicode="ß" horiz-adv-x="1218" d="M324 0H139V1111Q139 1319 242 1436T532 1554Q712 1554 810 1465T909 1216Q909 1091 845 990T781 819Q781 768 818 721T950 601T1087 461T1130 317Q1130 158 1029 69T745 -20Q664 -20 574 2T445 52L488 207Q537 +175 604 153T725 131Q832 131 888 178T945 307Q945 359 908 407T777 528T639 671T595 821Q595 910 664 1013T734 1201Q734 1295 682 1348T542 1402Q324 1402 324 1109V0Z" /> +<glyph unicode="à" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM687 1242H528L270 1536H493L687 1242Z" /> +<glyph unicode="á" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM672 1536H896L628 1242H479L672 1536Z" /> +<glyph unicode="â" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM884 1262V1252H731L581 1422L432 1252H279V1264L525 1536H637L884 1262Z" /> +<glyph unicode="ã" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM936 1504Q936 1396 875 1329T721 1262Q680 1262 650 1272T572 1313T502 1350T452 1357Q411 1357 382 1326T353 1245L229 1252Q229 1359 289 +1429T443 1499Q478 1499 506 1489T582 1450T655 1412T712 1403Q755 1403 783 1437T812 1516L936 1504Z" /> +<glyph unicode="ä" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM259 1371Q259 1416 286 1446T368 1477T450 1447T478 1371T450 1296T368 1266T287 1296T259 1371ZM689 1369Q689 1414 716 1445T798 1476T880 +1445T908 1369T880 1294T798 1264T717 1294T689 1369Z" /> +<glyph unicode="å" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM796 1419Q796 1332 734 1274T581 1215Q489 1215 428 1274T366 1419T427 1566T581 1627T734 1566T796 1419ZM465 1419Q465 1372 498 1338T581 +1304Q629 1304 663 1337T697 1419T664 1502T581 1537Q531 1537 498 1502T465 1419Z" /> +<glyph unicode="æ" horiz-adv-x="1729" d="M1262 -20Q1001 -20 865 160Q800 74 687 27T433 -20Q266 -20 172 66T78 304Q78 461 191 548T526 635H749V720Q749 827 694 888T535 950Q430 950 360 895T290 759L106 778Q106 921 227 1011T535 1102Q650 1102 738 +1061T876 936Q939 1015 1026 1058T1218 1102Q1428 1102 1544 974T1660 612V497H932Q939 321 1026 226T1262 130Q1410 130 1531 206L1578 237L1642 101Q1484 -20 1262 -20ZM469 130Q541 130 620 167T749 258V495H521Q404 493 334 438T264 300Q264 223 317 177T469 +130ZM1218 950Q1103 950 1029 865T937 640H1475V671Q1475 803 1408 876T1218 950Z" /> +<glyph unicode="ç" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 +849T277 555V520Q277 333 354 232T574 131ZM604 -9L592 -61Q745 -88 745 -234Q745 -331 665 -387T442 -444L435 -337Q514 -337 557 -311T601 -238Q601 -194 569 -173T439 -143L471 -9H604Z" /> +<glyph unicode="è" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 +869T284 640H826V654Q818 795 750 872T566 950ZM671 1242H512L254 1536H477L671 1242Z" /> +<glyph unicode="é" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 +869T284 640H826V654Q818 795 750 872T566 950ZM656 1536H880L612 1242H463L656 1536Z" /> +<glyph unicode="ê" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 +869T284 640H826V654Q818 795 750 872T566 950ZM868 1262V1252H715L565 1422L416 1252H263V1264L509 1536H621L868 1262Z" /> +<glyph unicode="ë" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 +869T284 640H826V654Q818 795 750 872T566 950ZM243 1371Q243 1416 270 1446T352 1477T434 1447T462 1371T434 1296T352 1266T271 1296T243 1371ZM673 1369Q673 1414 700 1445T782 1476T864 1445T892 1369T864 1294T782 1264T701 1294T673 1369Z" /> +<glyph unicode="ì" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM615 1497H456L198 1791H421L615 1497Z" /> +<glyph unicode="í" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM343 1791H567L299 1497H150L343 1791Z" /> +<glyph unicode="î" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM556 1261V1251H403L253 1421L104 1251H-49V1263L197 1535H309L556 1261Z" /> +<glyph unicode="ï" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM-69 1370Q-69 1415 -42 1445T40 1476T122 1446T150 1370T122 1295T40 1265T-41 1295T-69 1370ZM361 1368Q361 1413 388 1444T470 1475T552 1444T580 1368T552 1293T470 1263T389 1293T361 1368Z" /> +<glyph unicode="ð" horiz-adv-x="1200" d="M820 1301Q1069 1037 1069 628V535Q1069 377 1011 251T844 52T602 -20Q467 -20 357 44T187 221T126 467Q126 614 182 730T341 912T574 977Q737 977 858 863Q810 1058 669 1199L451 1051L378 1150L570 1281Q438 1372 +255 1421L312 1580Q551 1526 726 1387L915 1516L988 1416L820 1301ZM884 635L882 691Q849 752 780 788T618 825Q473 825 392 730T311 467Q311 327 394 229T606 131Q731 131 807 244T884 541V635Z" /> +<glyph unicode="ñ" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315ZM927 1504Q927 1396 866 1329T712 1262Q671 1262 641 1272T563 1313T493 1350T443 +1357Q402 1357 373 1326T344 1245L220 1252Q220 1359 280 1429T434 1499Q469 1499 497 1489T573 1450T646 1412T703 1403Q746 1403 774 1437T803 1516L927 1504Z" /> +<glyph unicode="ò" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM681 1242H522L264 1536H487L681 1242Z" /> +<glyph unicode="ó" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM666 1536H890L622 1242H473L666 1536Z" /> +<glyph unicode="ô" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM878 1262V1252H725L575 1422L426 1252H273V1264L519 1536H631L878 1262Z" /> +<glyph unicode="õ" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM930 1504Q930 1396 869 1329T715 1262Q674 1262 644 1272T566 1313T496 1350T446 1357Q405 1357 376 1326T347 1245L223 1252Q223 1359 283 1429T437 1499Q472 1499 500 1489T576 1450T649 1412T706 1403Q749 1403 777 +1437T806 1516L930 1504Z" /> +<glyph unicode="ö" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM253 1371Q253 1416 280 1446T362 1477T444 1447T472 1371T444 1296T362 1266T281 1296T253 1371ZM683 1369Q683 1414 710 1445T792 1476T874 1445T902 1369T874 1294T792 1264T711 1294T683 1369Z" /> +<glyph unicode="÷" horiz-adv-x="1169" d="M1069 600H71V784H1069V600ZM461 1098Q461 1146 489 1178T575 1210T661 1178T691 1098Q691 1051 662 1020T575 989T490 1020T461 1098ZM461 281Q461 329 489 361T575 393T661 361T691 281Q691 235 662 204T575 172T490 +203T461 281Z" /> +<glyph unicode="ø" horiz-adv-x="1160" d="M91 551Q91 710 152 836T326 1032T582 1102Q692 1102 786 1060L859 1208H983L881 1003Q1076 849 1076 529Q1076 371 1014 244T840 49T584 -20Q480 -20 394 15L320 -134H196L296 69Q91 218 91 551ZM276 529Q276 335 +373 224L716 918Q654 950 582 950Q444 950 360 841T276 529ZM890 551Q890 733 803 844L463 156Q518 131 584 131Q723 131 806 240T890 535V551Z" /> +<glyph unicode="ù" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM673 1242H514L256 1536H479L673 1242Z" /> +<glyph unicode="ú" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM658 1536H882L614 1242H465L658 1536Z" /> +<glyph unicode="û" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM870 1262V1252H717L567 1422L418 1252H265V1264L511 1536H623L870 1262Z" /> +<glyph unicode="ü" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM245 1371Q245 1416 272 1446T354 1477T436 1447T464 1371T436 1296T354 1266T273 1296T245 +1371ZM675 1369Q675 1414 702 1445T784 1476T866 1445T894 1369T866 1294T784 1264T703 1294T675 1369Z" /> +<glyph unicode="ý" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM599 1536H823L555 1242H406L599 1536Z" /> +<glyph unicode="þ" horiz-adv-x="1180" d="M1063 529Q1063 282 950 131T644 -20Q447 -20 334 105V-416H149V1536H334V970Q447 1102 641 1102Q836 1102 949 955T1063 546V529ZM878 550Q878 733 800 839T586 945Q418 945 334 796V279Q417 131 588 131Q721 131 +799 236T878 550Z" /> +<glyph unicode="ÿ" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM186 1371Q186 1416 213 1446T295 1477T377 1447T405 1371T377 1296T295 +1266T214 1296T186 1371ZM616 1369Q616 1414 643 1445T725 1476T807 1445T835 1369T807 1294T725 1264T644 1294T616 1369Z" /> +<glyph unicode="–" horiz-adv-x="1344" d="M1421 651H419V802H1421V651Z" /> +<glyph unicode="—" horiz-adv-x="1599" d="M1737 651H401V802H1737V651Z" /> +<glyph unicode="‘" horiz-adv-x="409" d="M270 1555L376 1483Q283 1356 280 1209V1073H96V1189Q96 1291 144 1391T270 1555Z" /> +<glyph unicode="’" horiz-adv-x="409" d="M153 1046L48 1118Q141 1248 144 1392V1536H327V1406Q326 1306 278 1207T153 1046Z" /> +<glyph unicode="‚" horiz-adv-x="407" d="M141 -283L36 -210Q127 -83 130 63V181H315V81Q315 -20 266 -121T141 -283Z" /> +<glyph unicode="“" horiz-adv-x="724" d="M278 1555L384 1483Q291 1356 288 1209V1073H104V1189Q104 1291 152 1391T278 1555ZM593 1555L699 1483Q606 1356 603 1209V1073H419V1189Q419 1291 467 1391T593 1555Z" /> +<glyph unicode="”" horiz-adv-x="731" d="M165 1046L60 1118Q153 1248 156 1392V1536H339V1406Q338 1306 290 1207T165 1046ZM472 1046L367 1118Q460 1248 463 1392V1536H646V1406Q645 1306 597 1207T472 1046Z" /> +<glyph unicode="„" horiz-adv-x="705" d="M141 -301L36 -229Q127 -92 130 61V246H315V82Q315 -26 266 -131T141 -301ZM437 -301L332 -229Q423 -92 426 61V246H612V82Q612 -25 564 -129T437 -301Z" /> +<glyph unicode="•" horiz-adv-x="690" d="M138 772Q138 859 193 915T341 971Q432 971 489 917T546 769V732Q546 645 491 590T342 535Q249 535 194 590T138 734V772Z" /> +<glyph unicode="‹" horiz-adv-x="614" d="M286 550L544 153H403L108 541V560L403 949H544L286 550Z" /> +<glyph unicode="›" horiz-adv-x="614" d="M231 949L526 560V541L231 152H89L347 550L89 949H231Z" /> +</font> +</defs> +</svg> diff --git a/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.ttf b/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5c3b7648c75868a60e152e09ce52ad77b2077032 GIT binary patch literal 54052 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 literal 0 HcmV?d00001 diff --git a/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.woff b/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..0f128f10455ddeac2c494e65d650f0298333613c GIT binary patch literal 28236 zcmXT-cXMN4WME)m$n#+k0@0UM7#JZUARaPycX4%NU|^iWz`zi}z`#(zp~4~T9^fC$ zz`*#1fq~PJfkC9_^`aC<_ux<`1_o{e1_nlV1_mZO!6&be`3LJ8F);8{FfcF#F)%PB zlvFzJP0md$U|`@m!@$6t%fP_a^X#*jL~>b)0t1794Fdy12ncJhV4s^-ke<uHATWV} zfzgzKfpJgykA&6fiNysB41y;Z7#MiKn1ew$J*P5_fkE&J14Ga(28KnGA`6x=WTfO) zFfgPPFfcI8V_;z1@ss7-(u~x^6b6P=0R{#JGZ6lhb*U;NBQ=qMA=QI{fkA<RfkB09 z7rReJZb=0LLuv*C1M@5f2DS~%7bX_x<R>RGFl4eYFfe;DFfd2yN-?+QCRP+MFysV4 z^(rvmVdl(B%uQur$N|}VmVtq>L@Lx$pdi1vgn=Q~fq{WR7^L=pE<;K|QECALLoUd# z-x(MfJr||@I$3cmDIp~x=|OTsgNB21K|*7I2t&Y^JM0e@t41j=$msm`qrpXmLFm>3 z(?z<omX`M=ZrnO~@8mVb=Zf`;*A?d#zmxm)Wm5n8hu0lttG(I8a#~XUGN0AwwXV38 za<O?*OrQkIgLgM~r$6dRy8SID=k_+stv$KbNwbgcam}fgl~$Ks{qNVi!uUo8qlHGV z4rkullN<g-c9MWp_a0@Z!^aff-*CM6c%nETLj*U|gBghnKb~M{5LmmD;pCG%UZVwu z2IoVs_?QUCUX6Y1yQ|Z5_L-RQEs=TGX88*CE6uZVEIu<cLvLr|Ig8D{i;7RFxS5%E z-p_J>!dY(cY0{EezFvWovL?TpvFV@2({q0VXV*;=68^7WenIw6>9gvWom)QfPo4L% z`mfdAm;BcIu5Qd<x;%W{y$8{;LAA3luKV&{TS?*B!A8fllty{g0IsEhY^i~qQv-Rg z1~QulN;|qNlzX+9F>0adtwqdM3ypUzu&!EU{%e6eTY@d$Lxa9Y5_u2J-aWFDd!Q)y z&`@Y%OUe=j(M*ry-g^#Z?>QJ<vuNRL$r%%G&X_A#^>Xq2oip1jXU=DhoZ%WdM>TR* zYGmKj$VSn~&Z&{Dp^?2`Z?wI=(Kz=;>)o4^_ug!;z1jcQvVqyM!`Y%oSt7|K*>d{l zoekVOJG^)FWbf#cmUyO?_tfm&1HX5V^4>j+vsjV4-azG|Q1*HS=_U>ZF1stvel<>h z=UV$eU)7sp`fB}TUZHCh?QbU8-tzvDoA{;m__G#&uN&`H{P?MxrM-UU-c~U)R^6pj zw@lQ#<h$#(`-{}c7jLUAn!o01OoUnXyN;s1)1Eum?_vKGAa^p^bBfB(H8t7!f=-2= zEfzwV!5K$%B~=!ui1$|<Rj=c`k@9T9oJrnAw_To1+_TO4v!?p~TTEHpt8|xa>o_Me zSt!Wsl!xU?g{e!rLMBTEdB5_QvgOyGX@9TqO>h))YPcw*&AIEn$V@fklxb%svR3u^ zZu0$pZ(a5KkoxU!wssaQRNs_1?Jl2u*6nVNTkIX1R<20Te>8dT$q9Q;WOPp5X*Tt< z>GptYEB5=Dc|<&x-Q@l4MNF9L+<>52LFY7{_5}GEL?xx}JI1Z5W1TYn%|$!+=S&$a z`nzsdOR(%eCYo#Y>V$QrzWkHLzUkVX(@z?OE<5crbM4n8gAWRuYtDaO*y`)zovE6; zWVVKU_SLqh0yY*p?oTCbem#$uSmeya;K0C<6rpv&{!TadK_Q=<bI)teJ+ImKEE^L& zzqr`FU(UAZiN{1G*Devwpe4wR(s$_#*6|8-FfuSK;??8cz@~iR!KDSk53CrgAKZRe zaP;qSTTYXfODQKNDf{;`Dlc7>H^chmL~ipnTlOgN&)ZY6IymW2539D>n<vlr=C(St zYW3b%yYTbv-u%MFH&~2QPEK5Y{K5D1DRK!a+|3FM*KcmijV~!Qv%7t<E&cYk+}qo7 zlXLl|85b^F_i253!F%srpDw*TcX|IBmkn7q+o#T0F>B4NRkPOZ6}q72wUBGFfQxw3 z%)Uu44x98W<yD<>-gjP*Uiucb-wUMN7B2smwZO*9m_@lFS~%bEW-)*Fjkw~!8{48c z%sYNIZ;@r{Re_dMv$iTrgkIf$BKy_$N8UY2yOu2~bSPij)zxF1zCvsNtl}%}X1T2y zr_#=yPl>x2Yxi33c**qVyG|R&JocaBApdr%jxop5#!c>8HV(;G+!IX`4d!t+1Tr&T z;A`&u!`p1O?9c<oTNAqTrh04sIaH$el#^j<V!_;33t!pPB&Zb`GP6CO`8(=ZtwxjI zj1;RD&#qe=dS=GWJ<iea?$PX?>r>;;e0!Dhb5=rHUe#*0hj|qXdBqGmH~OS11uOD2 z#@D2M(tIqri03Kiy`{~^1DH*JwiTXn5akFCY>vJ1`$#eazj34W)Z>+NqbvCxN<*Hj z?Yp$+;OrI0w!ONVUV5O!H_F+1vX9lm-NqLW{Z^Y@Y2C8%!*Z?q1M0_=8LWyfD_L>p zwk}ZXTFv+HRnl|Ela?imrMMDxCMQ(LIo{y@@47ww`O1^=E0)Hb;FnX+R+#@>>cGoY z2MvBiJ$>N))T+)=FRuBA)y$q&PphA^FE)g<imwaX+vM-_q`D%Ji|1d`womNB711x- z{BxFZwX@1J9{Oh(!@nzuAyCBi`^x#CbZ|Rt&aG{^xBo0wTG4!KZ{*_w8{>W(G06g> zLwC;{zI;Z#jYVvNj~U;S;H+HJD}oNqoXc*uTyQjB_+^#{o3F^>9-*^!!pAd(&)3eI zaKLzS+uqZj&s$GEnJRN)(&{}DQ}#cS3}3V<Vp-DEO^#2s(l={`o)imRJ!|c%P~F>C z7O-tw?dkg_pgZcuO0%sSy=7k|Y~OX|sNC0#roFQ+i7Yo+Ea{i+S3Kupk?!*~VOgrr zw?wVBT)#EyH0#>yReD*A&5Ar{Z=HGi)~dBJ7t3;=uPVz@zrH29edju1tAosQFKNoX z>N)qp<6GPFje4)d{AV8b6O*)`(<A>*jl*BqrDvx58cv0C6$1G#O_3g}3RTWpOw6k} zX{2<!Vsd_rhC!dmEQhWh`=iI^3O)8&S-AL^&Z28N%g+6{kTC5+j#z@dn)mKAHM`Cx zRrU7nFHE>mVU#2zVY=>(dADV5%ilF09xvoPR2LCem()~|*0iD0b&rAGo=3c&E3$1W zj=PI}n)$v%{?D<A_Qz)K|8J?+{f31}qv7wByQ1H@__F%~zn>OK_xHcO=jM~tJ4S8w zHETA@J<qvuP>fyXh*bNv4OzU`H~MykteK$pc8;V`)wDJ9l$Sq0`I?oh&}ZVJ*P4Ns zPEYyDCA!xubba9E{2dqb-||@R?k|0H<!)Yc+r1?#w`aV}y;arTcW>$H?=N1~{`%G6 zxJFg<or>r?HPN_))=OMVMNhfQ&HX$x{pI|HHP3AyH1qd=ob3O%TmSFu{J-t;ce5Ug ztezUCz1Hm8#;DA#m$L5ey6OcM2#Z>~<<^c(x9;CaK4Gv;((uypp2rh7CtD<(3Yl+s z`T3cztlW1`#a=tLbn0nU@9BSkuMgGPAkx*yFio?j-2OKg-}jUakN8e{mp+;9z-F{S z-&ry#MMXJA@^nPKy3xh^D}BD&OrAOKxzY8{PGT$^R_+I<H3$2ywr%2;5ZPT`P;lLY zlQUz*iH;MNN0?J|Z_S%`>pDvZBfGptsqYVwXYckGR21!STP>EgH}>K_=hJf2oq3;2 zWN$D%^f+MSyB8O?TSeDiJ-S)4<?xP6H}8a6t-E-8snoA+&OwhhJ8fXK5MSNE5r5h< zM}utz-zCj}svQ+Ca<2<T>MlISz`#&(E4IJcZ$+X+!~E~hH@4rYsPQvRxxFoSw{~V+ z@SNQ(IiKC6Uf-Vn@9X1AU6zW&lYS&EUGj9wgWEQiSDN#G2V|S?v+Y%`{d0(E$KInX zEYs_EbcU`xSfVOERb!c`Dx2`++4F^cLgSJm4I*8C?)1{vJQWrgo5{H7MU~FygPY`a zp10;!Z#JCrb=A`K`=@W%w(wY*QkB(hY0pb%F6g{`ng4E~+vb(|Tgp55910kOy}w_c z%gD_f{9hxhvte1rs?3^)?2%s#&kCjAS)hDM-(r=U!4mhX`Fq&pH>CJIOLY_zT*~e> zp~XYvT5#+k=Vgc4uNj<Fnl769ysGGrt>tU0<qe@cu8t=@<sIz#R(rJa!%U8Nfm>U6 z`}XBU?%i-u@zG7QHuIc~EC1Ynv*EPdZ<&G@CqF#pUG8Ieh9iAW@j=z_nAf-W3o?`^ z1_q=sRNP8VNXtx~bKt<K0|%_Sug+*}43u*+j!*GOPD)5%NYaQna9{!dk~xVr<@NRD zZ0u}os)}Z9^*lV8Z#K`65Rs60-uxtDO@z6D27{t81KSC%r=YlLJ<r^u7AevC@Vm)1 ziEY6vw}OkkZQJ)=yRpqyc-`J!soU4$t1oR2yI6NJIA6<Zr$gPcL-DD1**^UWo)FG{ z=X9sYCjAYz=Rb??eR<eo*(cuO2robDRa?t0%UK0Xf5CQl;q$LeTA_>iUae2{`h4nh z--+3?zE{UNFL}}OVrxd~7P~z0=|=<i6z{37DXGc&lX1uLo#gjE_9M!V4Xw9(1|P^i z68HMS)_pzcQumFfr!L7_YIZBO`jtZLD(TYnZQrK;s?2qcJ9$6b<+!`PoA#p6!rMDk z)@4LmuS#7Te8=?N)2)IZUraMyntdr!X13px10_rwx?RK4RKrrNBUW$GxND?)X6<QR zpK8V@dAI+ZewI0V`Pn~7&%PSpKKH_Gae2`ED=Jq{{yu4aGWcZkNzVyew!NKnXvu<= z_K)_L@4cI8dhK`ov=8^A4_W>DFJ+WsJ~{GC8ej3u<K8BlCxxy_<IRpdetOTLDzgm} zeRH0L#wojNsXW!3f4$P#I>UWyQ1;fq=zC9ew+2^>u8dIK<176BgC6JmmppS<ZZ6q& z?&8ip>pz$5)4R~R%R~INP^_0~=q{h>ueoAZt}fZSZs9Dc*wwE~_U2va-PIZO>dOMT zON*;~`d@P{Gj9H=6|i(w$Xcnp>)F3-kP9?#Tcy4DCZEFo#sYE4n<uxOe-fQ@KDx1X zYUT#MYq#?@+Rb!(o&ER?qjY|7&NAP#dr~gHk&aHdpEm2Q_3xWuxAecQ-kY;Oa`D>j zYT4VubvNFew%Ky#_1ty3tfIS48|B|9ie|obFgE-38{g>s*^Y1T#5~LOcC?OKxs@xU zD4KoG<82%7=H%bDeGpsT-*DvaWxg$s-!5qQey8~@hxOq;o{Ianr~I~jexqV7xuV2> z<K{O;*0;|wuDV<NR%!P&y=~qNQQw1hAI#e({Z_5o;P?Ksa$9e|<xALAz1%k6{}wmn z*SypN?0LQi+TVp=WBhUAZTjCv|2wHO{d1iU)RZSLJ75->HFZLG($WRL?;2^d+rE(# z{4mqn^g;3W?+tu;&JOAw295g)`nL-^%-^YhD|<mydFxu1+BfSqeSIif7@f^tQtrKm z=f%sg2$nB}<$N#RzmqdKV0)^MjcwO*Hl8whUWrF#TvyJ%l`**THtSyEjN94);oHj( zWRyD`kSK5IWjVHMaW0R6Tv?v5!AJj%=EmPZ0|QzNa~T>Kx)>@Lt}vu9_%TE=v@;|y zgfW;f*)Z&3*u>DsaD;(@LF8Wog9y`X1_fqC25uHB1`(EC1_9O$3?gh245Ez77zEi4 zFz~V6WMBgsS#c}2kI|jQQKBvV*4lTgI0Tf_)~w!b{Fs45r>tKl=WXJ?fTh;E9O@Os zj!J!rzQ_8l;kV^?^`PSFHC)f;e*amqC!wk-FHQTL{mN(e<tyx0?>hK*F5~r}W!)@) z4koxa^G|hL@KnMvzb09ElHab?Gbbni{A1yKBm0v4vpzQ=o$cKJ{nk49Ec$z{Q;+vh zuUd{t-<}6c1x;=)xH$dbx_KTf&u8x4rXkd5p}260&&E?aVVwakY}Iew=I3``etWC7 zcke>S^z0M5NsMmia-)|7Sg6Oi<i`JfYnuMw@sG5^i>0Reo1O)^c;z@OQF<yKlyu?h z<U7mi7AZ9|_ts?<tT6mgxMVeVoY(Z*sb`$Ng_K8FZuP##e{H>rK;=%I*TUC~K6NGc z?pUL`d+XH()ufYb2dxx8GavrdDG3TVMg}GZ4hE+G{~7ozZuLa5mk1xfwy%7fN6|s; zlbd>W>uh+zmU45#Jx$Fov)uJ9mnC!TW#L&?p2V|oS>xP8UMn4#zH#q${qjp@&V+Yg z+%_Kjf98~1)MvTp_U!L7!dB0GUswE_Nr;D4K+02#L!p^-kpkPX--|>x-@Fvo8x->4 z^XfIRzPC(o@oU-Kj8>i588_)ufP5}f4%4*uUq4)!-b}aCw2)|O4wT*_7+C*nQB(P% zt&XZ)+vBdx*NwK6No!AVGg<t=f#0gdt&#o2znovjcY6b`cRFZJa&QRB->WCdWPI|; z?KC6R3-iCkd;DT<Tzj?tVTo^(M#j(h1FoAqRhXYoRW)6dnScD~5&Pdi0@QdMPlvq_ zx#JX8_IgKzr7iRP`*MHZD_btUwMBAj^ZJf$(eF*_KOEfm{XV}#!omziKS_raovZAj zC%#PNa1>SwHvJLm7}#64ZO(%&yHx8OqfbS|bbb91I?KuY!FleVtQ<aU0_P3(bWY$} z-Bhty;>e1qJzTRja)c%w2{QIfn9Sl=TqNRd@9cZ7=X+CuyH@Cz)hGY#_+fhKyvlc} z!~1$eu2j|4ZT%6tc+s(}{-Zxb1FlrO_2Zg;;NS&oTfWuJe|NI}d%n$btNro=?<O(q zy;$k`JpRHLm8CQ8l)8qSl*Qis`eVC)*qwKKij1Y^FEKA*mhF=kd-y<g$5g&2_1-U@ zxt3TIK1yI{F}$klx_OV_ET_DHI$_~6A=*V&vzHWWdhY5J&I!7rVZUGN&#SFT9!kp` zz8+rovTN3>=hu1azMApX9({7^R6%M=#imWgHhIx8bI#73`p{>3?#4o;*+)*X&Axni zU)k|vJEPON_dZ`^|NZ8^xBBmId@gjn_ayT3#;eh>eYIQ4zR!$Z&HahH@YDXZo$|I@ z-+sNkF?`)EZGWBW;$Jf!2Dkg%vsv_GN$GvN&)eCji=1Pcps@XyyJox<!^H^<k`q{S z6Wjvg8ap+voO+!itUh`A>wuQ{-V<MD9i8CQ^r)AAww0*q&GYBx)_ySK+&zCyMRe;j zyZ+$IzW&Sf-3vbXTh7#tj@-QI?%KyWK2hmaZO7MjzWSJwY9M8xZSDJ8P4^GC--IVl z)$hLj`I(<H-*|gU;rqU~RbOLnPrkEX_NnacOws+9_oc7rd;2TES<iBcw%F6@d$w-4 zyXWog=@Rp#&33rAKX2oIA62TgzvB3$vY$t9Pd_oYjrZlnjh8Pd-u++UbEcYyMItO# z^Pl3|c9DWcX|X@zwH`^6mqZD7q))C`C-c%X#<IrO$FoM@((Dh8nUl`37k^l0`orVz z1A+8)=Q}-u_N<gpIyEutT1n4E@m;F}rykzgDtv6~;f9+&<~(J~z0;nUPKbKGpi#SD zAp88ub9_OjZ;qO?*>0<MfB4TX+5M5Qf6n}O`tnykUf_PNag;lI*+t*Jx34d&`&KRb zdLexm-x1cGuev9PZL9t~dG6=x{dcws&$TS~{@OQNSg!ih>E*{03;%rCIe8j)Jb%p1 zwW;gd<=z{M3B(D=3S9WpFZ9JOsP}tf!p{AiH=aE>eMxJV(0+!NpIbO9Bjq^L3>u^K zgGIMK-X2l(#z>H-%k*5{iGqnggX`x`-dNSoIsI#eVe-E#UYA~a-|4zLf0kKa+Qs!% z7b3q@ojmYS_Wsd#ce0Fc%(5)Kb|k`yXI)PB)yb|M+Un<$6fO1tnVsL7$p3P0=7#Kh z`jbyij=v!OVz%rt|3mi;jNh6(OY(aDQ8t59mW#tPWx@sLpoMZvSpDNto@-~Rzh8g; zkk_89q{W)X^K!2mxF_w~wJ>&*6wAR@*_SWHZXDWT$0WUdfjZy08-M@#JaoEW`gntR zZLZJ7&tJCxo8h*<cAj!QUs!kKqjmw#&I4k>j>RfQZILsd{mkLpeEH0uc{hE{k`-k) z&h9&K=&sWjzgexv%aaV_wP#LC7K>q2KJt0%o+OPGA4(gA-(H&IvnFQ3?f5?l9J=}Q z_ow_`mFUj6P|;KM;uB|q159t;>{(G9n3FB!`}m{vq+NaQw@z~1=2_77ajr<p@dGyu zKLoff*>L~qhaahr8FNx^@A>`ye75z9r^@|Xaz0*guHp4A-M1j);zcf=*oul2`>oa& z-`;g%%bTZZ{yZ>`Y4b6TwBCz7D}OgvyKQJ!zHwOb_|aTLr;oD&-!Cm$q;X`XA4`8y z;r4A2v9oF=&df?aDX4r(d;fm5Y5%_@@7$1muj^^?$wjK&&$v@e?mB;8%zpR(gT*)6 z<}GAjT)(Ga-<-HLYb>f|1-uwesJ>L5@Nl1kQD@`CcYclzkJ=Q|s#*=K)tUC64&q%N z`N^bYviI(nLP?%t{<^mcIRt(&cI2sTm$hot<9L1T+pWXN{rA;1%JxlNRN<Q#uVEAS zGp9^-$HK$STjiQq=d#Umb}Z?5w`%!^V>{%!)pg?bbGLdQ*NWU_+#55~KkD4QOUn6Q zmo0VAoAWttfp~_z!;AP>%{wVSj1sB@;!T=GV!PMd&A#${lk=8mj}<O|w@k3VFLvPL zKA(S?3<>k3)?WXap}Um%=xo7blTDd_aD5duJ$ZiJy^y;rcg<As3YZXe{>0+tGp;E} zSniyor!J;*Qh&|7O-bPoHcz(qkvCM`FZH4zYVYoXu!Em^v!`*a^>mawwCLmen%bZD znQP7(UAg&tzvlmfLywmJ+$=7%u2qg<<K`t!ELWQQesu^G3B|;jbjs+aRe5r#pRb?r z+}>`n%*xc+w}NH%on0wuvFl=@83(I-|2w`Xla{hG6@PG$soUSTuRGSAdw=LwRd?ya z+cyuaS!j89B9C*k#)RA+9@iHfJ9HO35<RS8;-bu+dg6;(%iXCwoPYF`@4k7iE-1}* z<3O|3XX&tKjVx|!j*59lbd>FUoMlnEOqxgCdXhZTdsFG1A1?6M$LRgOyyx<sqDym3 zqo4WKZW7(;b8f$@x{XhM-0B65pXZ;Ovv%L6Tdy;Z?3{Bv#beSQ0dBq*Op2xJv{}Ph zu6Qz<2HhyJdhB~Cv*oO2cboNugO39jEIg2NH*7VZ)ABFfR|TveUbwgZpH*d7Sfc)$ zvZ@2uu7oc?7qijpQ=U+M$eG3U^VTld|9Ej@*$%1hr3ZHGndiT!{_ErE+~psGE5saf zPWU;pZNK-<+5ON*@2+zX79M*bIQP!_E?(yRKeNBATqUCC^)|m&=csri!($2auO_R@ z9WLK8-nNl7H|OhwTZO*GGjrzfiEq{s|8{xqnh6gcMTtGW#CK!KX349|DlV6{u==Xa zXlhlJWb!|3axUPsS9H4ZD=l@NbF<^$+RM(EY@QL58u`-yb==OadA|SdZ2i)Hk^9;7 z^YJ=qy?U89UrjzaKW_DpluP%*biLhbYd$7j-Igicm8TQ0sHQW+qU_?LPfHyVGD^1= zI8WZfXv4p7(~2-Z?b#7K=QK^7&Es$2aKSF}>#9}dU$RnS`43)J_ElRaoHm<j(&fW@ z+?=0%x7{ka{lkUY+id4<8P~k|*eaeMG<DzQ17E-1|MI+Uwp7kMtK7F-pDs<ln;xPQ z^Y<{%FU`Mpv%f70UfTO;`}R+}%Kv=$HSeqb^w4l;#_pcQN7WUWb?TX=BBuOypTXcY zBj4x2!(Q8)GmgHNd*dly{fs-2>C^%jMvcVE9p6+GwzQvb$xL#eps43_{>Jt*SF<a{ zyv)8V;O$je|4QX^(r2dMg}<`qY@2^OQgEGs9{2oa2DWYDo291(Z}_@*!RF%i5#|p* z*EsKp*&1Ha^Pf|98>`p$qP6-Be-DLz%;fde$S5|M6hGBMinrU{gQrKNDs1Y6qZ)6P zvaWvlCrIH#$=CQpDrNURK4{4MuexaIMo+2!jLx7LCsnj!Cc3izD-UT-2uW7dRe$am za+;5gnc2J3dFvO0OTTXZd6!(&e*T8*zF!|M8?Wzs7Z4U4l|N(8j^9m;i;LC!tNvYe zKEB7=+pSb{(frn|w}M~le(u@AXY)a#hiPl6LAIgM8Mn25pMEDrNn0M9;WIy_=i&UG zuI;*<#@739MSWCjd-vhfw$Aw6NiR#=?)C)k=@*#$%Sip%r4kGE+lQ8J;x;-Tsq?@? zywh=8M@`!GE{3G75fK*Rx*FM)zI{_SE6Vro`f*Us|J$U#)8Wy{%if)S`zh$T&g)qp zy;HUCy4JeCc=%m;aoD2QA@}*^GJag>yc50U#oiSwispPg?JM)^-P`-GOJDvyaD(l} zqO;2S>yGcQUw;4Xi;Hh}3+FG`u<hmH#?SZTs^y<2UsT-n;k|T;Z=~^amhjhHcltUr zj`r8>bo+g2>gnz_euIbhC+&;XCNnHa@nmIoaVU>>NfCLj<rL_;-|p_d-PaX1cb>6r z3RICgXchX+HKV-wEmO(j$-Rd<4?J^a_uMSI<Y(i7%|A}_&T)LcahY%WB!@1?h9ri< zh0|UichvfF%{`=+FP&Yt<(BbY!^CQ-<ceKKnWqXZn-OuGb?4c>fHWoRiN2AS9%a1X za0_xbjQjg?dZ)9x?xOn_oqr@8)c)cf)%9}oHQiXp_1>@kU3xfsmQ~r_E&ru7`Tp!o zk&-eyBW0RuqTrKu@zJ6!^9yhJJ$L*%)A0TJBR_T~Z+USyt@iGerQtDmUDBmy*ha?m zA9!~rfy*UAH1Fc2C*7S}9;JJ|oER#x@w0W$_UTve$Nl)YvU%UyeAS01^YfGC()4ZH zBJ(dCxc)wG$^LtB--Q3>UH$D~vW(wonesul@AsS2&&7sth^3qD(wn;I=sBm|83Jd{ zEZn?|p-}X(cJ;=CVt1VM-`W>%`7{6hdGA+zRbM>zPyX^^w#%kFaZMYq+U6~o%CMmA zsV1+tIEUu7*qJd)G(K<cy<+VXcu~Eq>-viC^V8bbKJ(up7UA+Q*wiILIKxkEa&F@) z-$}b>nyo%M;iSQg2OFzb>^<+|qT6)8)p6bCm7CK}KW_A0>g4#q&Zy-Hd)lYBuNV)R zEK?7kId93K761F^-C5lCX(>x`f!DL&zk}@j760Dr_w;;v_^{^O8xMT>j$aKB+ZkL` zDUz@}tz5|6N-(RWlU?#-miw>%SBs~<=GbNU&g$6GX=#@~ZE~*2y}u&dwnRPfTknax zeUZo0lG$ZG{;e#za6jYgll?Emb#Eu_?sb$?U0gOz|Hb*BaE(_XKINyhK1^yBeDnKg z%inwd?|f<P?D@Xd;G@>jBd<k;pS8;G2wPXU>+YLZ(|S@Hzg!9miaX|4-mrvi+GLx$ zUGf`Gr>s5XyU#s4D*ANqWN&ZPssB$M)>`%WO)^i)tIdxBUOexRjOmo_T*qa^e%ZWy z!#q)?(|PlEeW`xAXy@eX3zpp5SGj7_pATo2wsL1lOg1^D_Nw@LfMt9*Z>epzyuiF; zc1iCzY7<#}nvZT^^hz+7`2F+Nr$c_zIR4+8rE9PHeM<Z3$xoPe2Gj-r3o!ed9Kb78 z`NFMal8d}@{=xFb^Cvp;Pe||1&{@1e^&@*)*xZ#HC#tlCG#&fCK~VoiNZ;&6X?KD6 ztD83Yp1Ifb`b4a${(blJtKVgmWG(D|x3JDaT;B0YoC-@j2ZvaZ+M~3h$cvp}W{=GF zbcN?ni^}*V^=iwsP0Bx}|FGh=woG~PHZdtM!TSLRv&gdjY8A)Y1@CP6(k{dl6kc7j z?6tB`#)>VC+G0hs3|A~Vx5?<!QM<wqZ_o0asQSpNV6bvmkda}3LR-j=`1t*=J3GQk zu1<^CeydB>)NG#U8Jirvwda#AoVhbed1lxp=~uVEyf;lTb=$XBSULRN=l4H9Oesja z{_Zi8rk(%kGLhullXouvxN&>e%YDTxtXnS1|Cg(r9hTt3kd@@VGORj!;beWKYhjZO zU4DLDn;rY{X}8FSyzgiC&U9_R|K^Ect0~VM(}y>n9=H<}^k2MZ;r~C*-5bxhU5}4< zG@taFNvG~_<&!tpXNT#|+8xNiw0O0$%FM!y=90G4FLDIV{JQeXbjKN<uE_E>ndu2v zZtYHs{qgi<Qj}~Q@1%tb|Lou4n|vkdV2H@)m!03{zW=b=sLtE}&EE%83b@pZ>ds#{ zUoAKP*Yc-)$5pqykx^PSx45P|ZuP?o_J#_V&4SiEA3Z-tU3Po)KIvUz)vm0&%UL!X zxz3;Jn#FeLtJ=GF6OMLH=glZi(*2$yud8`j|G(SiSv7AejSSdgwY#>9UOfHe=7H)- zRd4?sTD+FIHSkIMR%5X>E_se~BXdq){uSU{`ylIx*=2U7yV+Wy&tfIyw!UsnJmYae zskUw3I-d)1cU7*eomQ!N((m!Q@1}QnvSbUw*k1nhXN_7f_RnH@&hcMQqpv+YA?%#- zbbITRolDQhX;*EXpp*5z^5Sh#;eP+Q+w-2?u)EyuUthcC`<<4<o1d?pU--|}A%j(6 z-Q`bDeD*s0Ql21MoArRdXm#uL(k(abZpFyxMdtn0i8L$THqB_8*Ns(T6&KValV{$j zn!e(7&dW!9$v)}kMiM+PA0+Lwxe;#It?IFQ{jU0j*H7Ln-@f---;%JU^OtNFX?o)Q zFe>!ev$^l{#MUu<;&R~0xI5X*&fvo;&-ntcWER{z%g8mWK6{1gkGw<op3UWp(dVqG zT^04^-Yc0eEBTpD*k>AjyJ*R=*ZAtp42|d&p|2&(Ixqg&D{#<uwT#T7t&J!1&pVp$ zj<DpL-q?I_{UoX6TdO1X2fmt~T5{U2>RR4%_p(cCmsYI#BKy#7YT#Y{nEh8Hb1cf< zyw#3M$>LU+cO~hghb^n3O;x*$+|uTn4x4MUxE2W9YvFfHdAR-AHKoeEF*@%j-PC1F z>AS1qEU;UwW@~+(5&!R6&&?kWmF{X3t8Eoux!Y-mcN9w$%O%g*2NHw){EGdOB`(?W ztQ3rTIkD}-iwSK9Sie7Zyy)BZu;;YNqA6}Ms?SeMUA3{1Ym(NQN3XxL2rSPm{Gj>c zerLzI%^e5+^1e^-NG$iA)OeRyjY;m_*$s)&4=>&hZ=JF#zNOwQH%jx|-90_;cg&Jg zoA}8)p@Hpy!Rof%MLCYkKj_T)#53FF-EDXA2O%$a&kpY5k^ekZD)c#bZr1(u31<qb zlkA^JUGh+64)xr7a<i1MZO_kJ`}E#so(bvnV-bD5<a^k?iHR>;IhS8-+GO-|sr1|K zC#^Nl-A|}0hHX}ver}Qz*Zc1a8)x&}cYCyN;W9J5o4?J>=JxvD6Z(EZq)73Cguszk zF$*~uSUk9*pRE(|e)M+XqE&&1Zk4{?!Ph<g<EAt9Pg%Bg>$7dVKQ}ye1&ej)`{NTr zoGN}D-@boO>m~gg=Zze?7fn6H|EPEZQ*T1s`FlG$!_u^~qI{ohG#2>QVzq1O`m>#} zr;jTAJfLj%d*?c@?Jl>nlLA)l3w&`!^_!&LJm=!~@AiEza(S(M^X$g5+1K<-mVHc1 zR8~zoR~_xIQ1}1ek&n(?W&Rchndc)7o87+MdJ*G#f8LC1TOTy59<8q8nPspgc6#aF z?|b}S@4XWpd2M^`&xLW#j2+KfFQ+tA1<1Gk*5T}wndchFYH#pg<dnH^$-nh^(k@0^ zQCw0-*-c-q`*d%ezea`p$pgjj-<WjYTw40!?49E7%<JC%J;qbtNVRusm#vNa68K#1 z{rPzBGv+U5h8m}G)NE^+x190i<;kjBB2Ric{1CU^=v9_<^1~K?PtVlZ?OQ(!y?SD8 zwb-agu=2j%wD_+KmiymT@u<wOHQi!uyd^kc%H;O8HKy;TsL4uvmanRQv~;WdzqC7< zF%x&cnacY!_}91Fh9a>XD`)?YtN3~M4(oBRxz&9|)7TB>>_5d|IN?A<pTEx|lcVgB z(~L{+hQ)TRKYv|C(JOf-ztrh#)q7I5q-|Vt{hUQvQLNIz|2rlmKTG0Sac6t^n{`5$ zZ#2*Uvt{)PhqssBzHN0?d90RpPBn6S!Xu|MyAprg*e_WhT|aB_`{Nh>AB@;$IM4lO zkJR~9fu~P6F$lk!<<unjqnLAzjsFju#xJXH`ve|}U&A`z^qS|{B_$v3yqsqJ=uy*K zSD)#;eEx21mEW}1&iOarGQEz&;^=p=|MJ=Q8O4uY-CO%^?#x)L-8sS{n%!%37lkyl zzS+C?n+Dgm8=|IxO}fW!1Z-?(b?Lq9BC%1YEcvL)BEx+fm+fEnozJ@F`@Ne}_jW(~ zZT{ELdh^$5#pi9GTb{Qx&WenAX7u#kmp=+I_p@gTy8e;bd3fULnza^HqOq@T*PZZP zSabbXLufRkz!tUxPo;!kUW~B3;4^(mwEv;IuC_;NtG~TbmMu9l``o`d-*n7E1Q-`b z2r~YP)H%E;l(p0Cww%08M45u=QFXP4t%3dW-0a26_m;ZtKUsZfh2+jqW=7{-Mjk(A z_Ea0V92BzL<Y*$h*dxoVh+*&TD4xRa6MEkqTDdLc=f({YJ*^MbY<4KkzR?{L-})&? zG%|YCq&a^3bUjrM2QYfCnz;VU`t$Mgp6&g=K3c!_j#llrg-a_hpPT!0S<dB4hyP1e zBxnknuxD*5@_TxGd!3wd#jRg|L^HVq-{>FD&vU<@zt{Dx6T?Gg-Uhi{r|lfs%*=O5 z@I8IL#<5J$L60d*fpJ&=&jKrTL%lh>4(CW3@0Tw<wXcPZyUZl<7We5zZ_6H5%riPa zvEhDYW>wXDEiW}jo|0-g{n(T@J4GTN%RB6wE%oli+~?umS{u4oEty!c<yfze`Gvgw ztC;>J8F5vw%e^fg6})hb-Rdt6&L{PMHO_ox;w}5^M8G;l8)wPMnPu$%I^q^E?AKi8 zqFxxbNl)q0v<0`0Gfj2bDr-AM|JITA<J)u7J-j?r&U%VW*50id-fUJ;`a*x6OQLV^ zm1&ArVvFXpd7O?bDn4=}>0!x%%@?Kg+m6kcbWnJ`CcAu+u2uXx-fJ<}eq1?V>bdG< zgxTpl`QBf(i+G&N-z~boY06Ql6;hVcy@65IVGK>V3>gd9Yzo$YSpF!k#OOth@(IQZ zXA*y(l!;8K>Wj}jA5ea0Q}Nf^9(q0Nx_3QUq__Fu-iRx)N&H9SY@*`ZXSs^4QWcu} zX;qQ)i%!!?b_-H6%YLT+_p14vYT}kW-{Sqz)P1S_{iPeaPZo#myJ{U9`6{F7bo$vd za_>8iPTzMo>g(1SJnKwde=Tii+>}3|@xAzc(YoyQPa6Y1&&^_u&nu0znJ%8SbY}I{ z+{(_Ar?>6Y*T1C0bGYNJpnsGoN9n@JZ^HGjoLp_Xqx#pp=%mg@^WJ95uSd+d7sS{u zntb5swdBPXIrrRm@=vsTJ-L*Biu|c>>teR1|3CHg_lDfvo17~BKkBcE=}cO^$NRnQ z9wqxd?z+mVv1`spi8EbJZQhkGEpaWlTGhyYs<idu<%czXel)vuxjg@z+af0aqmAa1 zUe#Cq3tCpYzx>(O?e?4VqqpTd{BK?_p72-x)Y{5E`z6)IVOrm(>_7T=ySbH?`JVG@ z_*G+n9K1PMbI#X~Yie7BOO?%;=arqPKgi*^s3ApH`N?bV=gTSugV(=#6#lL0dO5$` zreaUUzIATBadSVFn}|JMAQl>zy8ZgY1$X#EIFD5>;s1BRRg5_!<g#wf0n_c*{yjK- z)H5YNUj2Jx?~39UU5oXF-N|p?EIqVgZ|Bz*-dk(=1SUUU%gf+!rpj9LTiTAk?Om@6 zCZ7{DOkFsyd&X=33pI6(+%_$d{^2r#j-Jy4<x=iwh<`pfx%2c7X06Yz2WFmne7Dxl zvgT3urf~P(xrTx>`M&<YwC_dMve;8I4HFr;USHh*wIQ-L-o7x+`TR=fT_rDWlm%RS zu(iGYy`TSVqY2+m@BS5S<Ke|BoN|IOjk~|DWyfTBr>xCYA$Ia#1z6`XJwEz%x=>Zq zim1!M-R-{nJAay8QM$Bv>C>m3Zx2P6y*4TTx70gm)u-}x%8O&I_xm36)&B4;W(gz9 z=@T#P6@EFnCvW+sAQ$>r>R7)0yOzSK|61p#Nt!HJn|MPoQ_6IDYun`feU&0N*WY`W zqd#xUgIlUK=Pthd?sPDqQc}Q$fg?5P(`7+rzb{T%if%&f5`xE;-_J~ar<Ho{rI+H; zPn%Y)oXz0zesZwA$8^>I4CmiJe>x|g@qF3&1K|m?`+hxm{5pr-xhEr-r_Ewxb!+U- zEuKGDOPOg-_pb@qx-lvvv@)_|eU-b<x?Rd9Y%IMDEk&2i;$NIMJ;kfc^)tQagnJ5u zSoMllR>>E~^f*Mgo$CMmSQyl??9R{M@9P(9dOeh_k$7scugJzldaCD*F5QL$YrY6{ zd1f<p&gHQBd)d9~X6v0T5}DRaE4Us=$T&=2eTyS!>rEk@DVrUnKGj}LU3&cn`!&Cf z%4#lVLC>Zyc39|{I^)yk2m3wWSeC82(R1#W0K-F$OzwWk)<5$T+)i4o&N7#Kp&|O{ z^QUQ?2WQ78S9EXU6VJNkAlosO_n_jM@Ba)_T(1>eeqx}jn4HOCZti_}-(1DxoFA{X z+-PZWc@_AQ)3#OMPP0yh-^q!$w|{)7e9`>-JJEZ=*N)Z|zB;9!UBAxapXZ%3e5dM9 z*-QUAB>rCW{#JIDc23Q;kBxV3?zj~yYn~TUcWutXx26-moh#TD9(3FL;Y2ILP4}kX z+);HY&NefDLUi>~1>5ZPsuKfNO!k;vdgQUe<O$VtG$+0L7<IVx?Zw6Bi@j4yet)}o zc<S2;=bMi+|NDBiROC`(+8gz6(e`WpF8y<5`NoC^rd#~}ICijbmrVJpvy8!XnXhb{ zzbLzr$pMMOnOhD-Nu8a3iZk@+S%c8CQOj1G6;m?ge8jIly*zfu{_4l~n9Jszc)4?v zh3S^(9tU@S$UD@w!c)26V)aVvnh$FxHYmEEbbov#?#$+n;?FuO=JqG=Xg$09S;DRi zjcMr{q*k!{+jcSko|p3Mf%DY+UbeCSSd=2g_O(b$^9s6DJ1v>|ZTB%N-j6M_w~ESm zJUZ+kq#XF@O+>q#_p577UM5*h9BM|QM}#~q_AL1=(KJ0nZ~aF3ol$W~_e=a1A5x8u zKP_eTKk7tyy!)am{x#bJGmb2mkIc(2YE<KBW9+!{y{mz>$oBlS>Nb`q2Fjm*A4+;M zF)^cUj&z&R)6Iz*y|4L?H!az#n(6uKls;c_OY`z_p~#+F9Jwq@U#Y6zII&N)pxRh* z*`m*JxgVWFex|Q)+jt|peB$@~@bflSyAy7;xZcxX^{?HK8sXUZJ^N)GKlg-+r@wEj zPJWg*b9sm;gWBiMttLKyIA1v>XQ)3`^Sx@j>P8sjpSWeK7sMGnYjEz0xoKl=Jp0-- z5#MRux}B0{o?^PG^CP#M$S^x@w8=C%sk3(5{XH9NPcEAC@$z;3sQ4e>j=q%^f9@+g zefJKn+Gj`o_0!VgX3eWCeD>vN_cYzut!w}6jjcRwcJ}0{_<gC@zjoigu5<Y2&F%3g z>+F9|{l59xow9|W0$rqMC<e26&%HHK<eumkR~@&W72+Yz>{ATf*}s(SRta8`8mwZN zDI&3@X~pW*i+;Jp&x+CHdSl;pxHRw&`>7}u&E)~^Pp?!yWy<pYx8>9={?>#!&ok`u zzsEe~$+9p1ZWF`UkZ5}`WA6;N%TBVZF7HT~uA{h+GqU1{+k&vizcy_$+Qc2PYM;=$ zNB0>Ib9cp^QTimsFPpeA=k1l5CB11Xs#g?N>dfq{n|ibRsqD;BRn2!MHN{=Rk=zQC zP98QsySC@@^_cKUPrl`31QmbN4vCAnB>dia#h>D=`!4D#whI@SA9k^tv(b6uu>&UE zUkjO;Y*s%PQ`1Zei(J0W>+18%>r2mRYTw<KbN<!r<L8#jX5VN1Y4=O0^INUu>hdiy zU5CD<t6AGsE_A;y*SUUim2Wlw3CDJS{+x|DXZC69&Ocuxu79dpv-U;HwzJD~=Z2ZJ z*zA4&YWe$fx2=jpmhXG}tL$vW*Mzyd+BVL$`kwn=e{W&Va>d{mF+HO7NA7!1Z(wK+ zkk9a7@y=_ooXoaO<wVa8hpBAqCU5l9dK&#|u}RMc^-jB-M<LxzJjy%M|4-E06#CsJ zXIk#bwGxdpUs@OWl&ssAmU3v;&L!p(V^oZ|?KjT!V%FmoIm9wY?YD_{ic7<cpbr;+ zPEcox_?Fx$_jz65*`+blUEg;Jdv3U^8@N_7^1PCH>zS};wT$Z3dm0TpmWZ(kUW%MD z^^(44irpNRXLEHp3ZKkwWnF$gPuFTo-jfZ2lhykr<~?(8J<$*p7!bJd)7?I$r?=l4 z`!ABqP<&OlDa5ks=cJ-95^_5#kN-ZtOl<%EW5+Hsho_{Ui!@Al^T_$sU)$<{W@q+* zC-?52YG!`=qE$P5itW?sQ)<og7bxaDeW2{5Abp<Az?ZLM+r@pX0gvqbrKcawm^`cA z>9J#k$;JfEYK2pcpAItL*;c<-zq(P#mPIc@=v?na?TASp&8j60Ij;&P26RekE>!AO z|CL##H)n6g`-LZqt-szZ%=q~_+G&dUES{C-d;bU2*cnw_xFf#&Y-ju|iRa%RExMz6 z>S#~hP2Sh*+%yZ78$K*K?l{lD&4THo!vD1mVkuWPMlrH*U&wjbBfuy0((<i{l9gtg z`ZL4mj*m0WPqEz8Dq<pC`IbT8A*)hz`~*X8g-^2lxet6TH|BCp=FCdEu((ln?Yuie zdb!sRq&r_*yK~CnnRESboGDszYD%}tC&`uFDxYQw$h|z%U^ClcN7{r1-U<x0GiKMA z@pvc5UlTnZB69r5g`SIMGd{nuEc7-C`jp>m;uRuje9PGMx{g|Q$sXNXY2Cq-YuD&k zaNYA!n&oOeVdDaapVK<kthRGWn!k_#!F6dpuRw`$_x4iROVww%YOXu~S{Ly0PQMbr ztczfXRekV1p<jE=^moU;nP%3!s5G#wcGnJp?f!4Bu`wLXI;mqaxvZJtppnqZqX&e} zIy^sUEk4WgQsKmubF4hwEyWdjGu7h_oVn|?GG48X=h^Nb7{+h!=OcF0YTJ$l8jCA0 z9_xI3eZ9PWVsL5F_jjG1wpAU^kLBOCN_@1;_nF>#_3tl?cUmW$U=XMiu4jzrXj!LY z-v9aF-ctXwSGB)A*HjH+*ec;&yL6Y3-(%sQ5q@`zOd@Y?2#;)tyW4#$bgq~cNAssC zfh!F7MMHi)zZ{s|zx`43CC^L$9XCzCeec{H?LM9~HKEL7HBu1`k)dp=ae4YI8$?tV z&z!Y4=fp+feKy|POxYfB)LhsoZ#s9<tzGWZoA#c_KD~tTsD^m{+#aW6rCAr3J^yTM zrZdB;E@=MNh6TED&D$r4xgGYhymM_rzT$L_v}M=a3mRr|l;ue2G{gv8dLrU5^Ei_t zPm)7`@S%+Etv7lv%L=@C67Ifxt)cR1j>*n9%`Z*aP|#<%{@somzZt<2^PaTaTyvt@ z;rlwxx%1x#ZpeQ3DR=Jee47n9ALkvileH?pZRR3#ec8|AlZCx*sp-A`Qet;B${+3d zIeA|8T`N6d=BAvFa_gRVRU`|2Jf`8xn&y?6ULa+v$|}St9x+Md>-XsTHGg&mGM}=Y zcGz{o!S_c~IGXA<*`Gg{7*LQKKkcBV8^1-z=?|Z-{#reGmAUbTepiK11L3dk`sa3C z+Lp7v{8r=FzZ@EGB6ej*?-PittbBGU&r7&->q_Q^38yT|d{fR?{QQvfYGKa-@1>Hj zI;9q=`L@XEOMZ}l%KzlE{FDB@Q>^7f{@<Nm_rA)8GnMo10co902Y&RPx%_F7?*9$% zn74(+u3Yr`YDi$s^k-eimMpn&{(Ml?LS_f$r*Bg=1CIBHPGJ8Mopm9?)a9a5@2j5O zbxR~xS~$08v6)>}@^)HSH@mxNYc1RIKCb@tyY-ZdgKB&(A8YY;mb_e{{j1SX`_{=0 zMZfc2A51=T&bwiJaPnK1s7Vhx>ok4{^ztd4u6psAJD$m>&RHx+=aq<4mHG;fjSjjx zaSu=0m9k#Fq<N9ErX~JENR|KD8Q1p}Wu3kjtUk5;+?!Jp7wS{o{@1;Xkcs{A?WgVC z?eRM{L>s3aJF{`G`}rBO7QWl{^N`F#4VS}$^$fZ)j>3(0_5u!3+Iu<8c7)Z+Kc9R& zD1?2_1hIPu%NZPw^9!6VQBqQfO`fmWnt!mn_8Z?h_oy9OSJLM{{E_y?_%g$i_e&<f z`ThAu`aQuU#tCBUoVoX0{W_E5(@c(Uk_RpXMk<_9tgDsnU}1W`!pA3n)<uWKGfdy} zFRbzqKUlEgf4)~>A<NC1J2T=M7F=ERSZaCTTKQRpM;IDew2tmj&ze$qNc{XPqqKRl z^+kUk&0VDVcCMsb#r-3!`t#-QCY(BRCeixd&ax+G56|3teWBSAi@J518~X~so@cmq zu;;HV%T1fd?{9u7ja<(tdVJ;7sRs%T=Fa4?k#4xZvB~7Y89p%&Cf>Unc;4{4a@;x? zx|&J${hr?|4Pq_cy+}Q>S62PZk3aX@FJ3j6vM^_Q*XOBjm3{9o$ovry;A#Ed(*7vp zL+i9PdJX2>`vUs*_M0Deay>ZPPC@>n=EtDcHKMgQW``^}-Vh+<B-XNpgV*)$RN>8m z=2vpJ6)~00Un>*ZH)-|075>|T4)J*vn!Q>s!zRG7zEb?8-Y+p70lwaZJvwH2hr-mh zcD*#*)#Pvc*xlIWxIvJ1Z316h?6F|Zr;!T-zs&YpWSe=RCvLLH*`oA_Kd#wk9&X&d z6$xua@|~YaIej^J-6(9mrL*Mja<e@<vVIrETrCmlli%Jhu$VR2`}p6)NdFrb|KIxc zLq_WU{G#&bZ`awayd(YhwN~Oy6Q}!M?Y~8Z=4q*ZNV>tSuuSmfM|R^_#xrpN+*3aM z@sksDc(A(YaEh#L@{`#7d7Z~L+pVlTxhFd7ti%_;YkFSp)4uYjY1h{+tBDV5^I6^9 z<q<ZusQysvPjNZz@DrKr#~1Ihyjj`dR_*zxaFH5^)L|9NMV`TNo7<{Y>ObA?>vvpq zSy(~x$_j<)pQYCA%ShD^y0CJg`?a>yVg{10lP7n3E{tNnVi}&xX8S5*e_&WuW@3ME z^E&z0<tDp4yO(lKHrhR3ZjN!?3ERSgqvr10&hNgbnfGK?s_pjEzOQq6^Q|7me|-5m z{EKu|@_`P|Q?&vM%D--(wKFOI(qWbi=BGw!a%`qtvqCRC{_LN;t#wj&z`QFDI=4Lx zNc;A~Q%vl%iirGv>AEAgHdI`w`XljB#ih2~s9M8M?Y-Z=i9UaNIpSDN9P-|^|GK9p zY7!uIc=b`2O<GF}W*<BIx_e#WZ=D{!l%SVRo-B9PePle_W9gFE`+n-F)VFrATfbjP z=eM6_Rd?u=u>JfwkutMCU2BPsx01@be`|-Lw%XPWr*>y2zIm>{c8<oExjO^<ou^57 zv-egQuYa(%aq_0+-;AHgy}iHxe8SRSt7jffuWr*led~(tM{Ap{_3KR(|0Vd{c=VM) z;@M@HO5b3PR<$E#*UW1DTK{xQhdK0mO1+a*<K($!_1XOEn>8wv{3ky>!YP<F<)ZDz z8$xFV9FziCehcUDye)QObNUmnU%MmaW%HVs=5cqYUah&hH}AQaeEq-n!^?N~9v8Gc zeEr>>-39m3PA>Vga?gyg7ZIOd9rwOgzcu67?bT*Ib-5AUZ#ym5_pSW3G<9}f`uBBv ze!S#d^?26-#gCR7d*=LXX8m<KYU<kcsq;FgDV5G^wOMiHr|rfzlXqnk-<@o|S-Pw$ z`9){!vic%5yKqsZKgR=?NM*ee<hN{`H1p`SZMjnqovK-~#9+&F(L=@-2Y+N=Gzb%$ z*&d){wA8CFY+n9>V!1mrXBM@Drrb7c?sVl-o7ViA%}BoClWVLG%d)DkIaM><%vN|s zIF}mCo|t%Z{u4jhi@EQ1Y=2(2C+*LIcg4r|WS@6vzFii(k-uMhjf_{;{LRw?L}V;` z&G+nfwG3aOvpsLmK0(#k8EyTo_pPgPW-ZSDP-~rV!{Y|mw&eyqf3rSY{C{uB^(#t- zRr;~U4P$+q)<p|+i>BzWI~u5<{d5A`0j7x?IJ$cC_Pw(|ZpPfJ;oG;6y*VM}lttV5 zhP4x1d+i_Z{h2*SgwOc&?iHtxuRUCO;@HvIJ_#ahZCb}?J__J%bhIh)S{e{!w)B(w zr%m%$&3cm*+-0tvEYWY&ut{s;l<D*1x88SMdBla!ana3vY?tn9<~6Q}(zJ3jZM^NV z%~jbp*=&h=^45q1)>A5CJ1^|A%};bOk>xI6xpXScG}Z2eJnw<yFXtLGv`p7o_%iZI zhy1+tQmyhrK~G;@4RyH8=^D|iG}T?>(#Bs*3OBrVh9+%d->&sU^3JMFMy8wgvO4%A zPJGLGr|9?kPsh6qweKzKoVY!kBds*7xY;Vg@JY-%HTHFO?fjQ4{>rM&E7VGV^JdAW zO^F#--MzBEJPm<Lo<yCKR~yu{e9`VRxpE(wTQB9lJjF@l)QPhMG<}asu<4v<-F& z{VZ4*&bnIVu!F6<6*I4okoUx^YAO?_`8q^B)t{y8;THG8FyS7<@m{7q+dl3&R-wLP z?IAlUhWHl`!wNO_gsm07_*_2PbxUEZ@xdvfkGzcnUv=MVI@#Kqntg2wXY%co?S(Tw zu3Pd(<&Wmyw{yMtKdP%OJ)F{eF~r*W`O9akFE&q()G3<R`$qnNmL?0U#p8cH-ltY9 z;p99Q<M?rT^X*$IY$h3-&j`AIGP<wI$=z3*>KM(WwW~u|+kE1kgEfUV3K8BG4E935 z)mYq4|MPkN_kTrh&X1mXUoQp7US0e2#4nrZ_M?n58y{YaJ9a*~X1mJ&$m{)c4peWS zloowkf4<rK0(+(J(f3yEi2M3lTD^(ukNyMuBC&mOrLzt19}BNv{54I~ea!|>w?N(- zPhNI8YgJsVW;-MHWThap%^N+Af-EQH{G^%lW7iz%FV<V}*)^9d=kjs(i@k3=wRRr4 zGCyjA*X!6&o%1(Vu5qzEb#5nn%Q=(XbJAvouR9}Sp89FF_=nred^J8Ocv-Z3sdSrE z5cgokDrtpve19Ib6+Qi%@6gcmDu1g(nt{wLC!5YA8A1^nuFijzt8&i0Ju7pyWwH70 z+v`f)w%VQfl5<e5EBeTeYW|~QdXA1}tKRb_@}F7$NGbE^`IWydXV;XKL{1k=+jV`J zlv%;8nUay;!}a%HTXy&8OY?nYN3!lm6lM8+f4X0{)_m#PsjB=_?BBXtp6)JN6R|6} zChv=yF<(SquIs5!(~tGcURh)O`oPkYpT+&<jje=D!}s*p|9Jns@9y5>^y^&{DrYk| z3NpkkF*JPFa9{_sjp}r9(Yn8ZW>t&2JM%7yFMKq2En9@tF<J5Zx9X2=x%E9Ub=Rq% z)0<|rv>oJ-Jfu9s_TkG-MRpUHJdz0NQJ=!NXNjlW!_v;M$_|eOoJ*sUcB&nlm@O5) zK~Ubb$%y04sq|Bo53k3|zdM&HoUHdp$kaJ`n`Zp`yZ<#dygK&V%|xWM%Cp;G)pVIj zukBqTS54vBv1E>ISjUpz6TjQBJ6xTwZTmsfDDG?Gv>YC8^|K}2-mSZ{jqY(i>U3T+ zLFI$($A`Z>nYTBJn)HbtiWWAtQl4mdUufQ$hHE12m)F0)eM!x1L0x-UET7zw_VO)K z34M9B0ekdh)`WbM<Bxi8U$;Z!*}0q5r?%XC{x&?LWXc)8Mm0{I3k+<N7R)-EdEPDT zk2900VS~%FaD%2D_W2B*HW%+3&z{xR{J3P&%|)f>S6=I`H{x*oS*yH=<4}L}<;&l+ z>QfgOoBM4(@@n(-&?gD<S=GsBbg#U-5cW2^d#Z9S-(NkYo-^y7yb@?RaFSh5ShM|r zS5<1j)<un(u72zvTxXgrYRu%xdi`mh#p_U)+`0|7B-h@YthPokE^E^Lh-<2)mwWS$ zsMRm|lX8EzR{HyYb3}j7P~3MY`;61m#5-Mo(~^1?@9;V#u`mC+?B4S8GcT{=yqdt# z7`JKu?K%+`Dd{7r4Ao&0lPA`96bpYyntb@V#_WvAy)G}a3f9J4pDB6UTW>-9{rAtN zz5mtt{?pg(dA}^5#RslBqcs29sv@nW4u!ld&TVT_E#p7%Y*J63fAtWfPh8F$Uy~CG z**91pZ>bjhy6BjR`(~4^M>&HY{92T>u`TE3#^e<{mX+*{D7`ed^rzIevbjFj3szoY z?iHPUP+qFgk?Y>42d1)*uE|POE9?)oiA{_3oOXB$^QK*!u5EtB{^)s=8}kF!k6C<b z8)tY3xJoZmbz7zqWNxz~Vo_y_%B-dni&rFH)cwY#{nbro4~z4h1vmF(K7Mw8dH4O_ zG8PZoOLU5z{_y-)3~d%~x$e^G%^WD9be~r#X>pii+YG6+LbZchDn}N6p4~O&%qgbK z2aNJht3{qLbHs_Rf6TwMzFGc8O8&C1k}D)N1YTdit;=_2P0A*z8#mhRJ53()muv5T zck=bkwZ-x;??=8iKlAd=@^bO5wf7f)yu^BGUxH+Hu=AzK1rOaeMLc~H!c#YCGgD-e z=C;gVP395{H|orYIN%?!I+6R_!YRR9G<t1MHZ&@TxA%R#u5!&`+pi6|?>0QVc~gDU z)Wxz<Chu=7bj_*GeE48`oZXjG+RaH;+vKmVG|nwtbBTRz^RxwvbDY%GBg79&R;UK~ zx+q<>4iI0~eR1iFBPLSSiWMEj-_uf`UHJ3l%)PUZ|61=i_;OVB=6PP}E2b)|U;c1( z-oAxJEP1!~mZ|$#xR-2tw_&Ch?-#Dmht@c+nPM{amxG;BQps)=t?P$2vq?sT${U9) z%l-DjZLRUFE7?<Q%(c(nGP2cMbMo`0=9At%xqpMBGSt_asIiyU@EP<7Xtyj2GJUMR zb<u%So1JP))RS5-%=_W9Wnt8(Mb|{xMINze`|V!%XH)&DrPZ^SWIa{u3d}P)<2AFz zZiU^cM|VGNIlgkA!i$!Ig*zu`d1Pkw&I)<|?B2?IwR<n`byYfaPowu;O;exh?#Me% z_gYGy7<E1Ce|ax8q-y)T#capR^X}cbrSR?fImwr?R?B-|q^M30-1xCUM)}C@Q*38- zI2zI%cCKk`xHRL>1o<V|hHkSLiC*@Yp0Z?8``?2*|K)Us)J>Yh+9|s^p#R+AstohI zmv^~4%gw#NR^L|JXR*OI{=Qy=jPBIAT?>Dueki&&^Xe|{T~CBc+`U6D)d#cAJ<?qE zP^NII0O#C?hhks+%+u<1U3=8>lIho-M-B2~w5HA|*~mI;v0;O_%Za#qc6;uN`01+V zFJJ0X%jGt&$KQof_;QP|q?Ge@*4NX|N|lQWn24WU(am;eU;Fk?DG6Jx@1A~@WinfR z3Fq;^wv2bXGS1F&P0sjxP2(x|6|TM}@fOSd&;LiyDZkp1*i^galk0ZY*Ku;j+va>L z*>i(wzRKRNHs&}Jsd9$Wgo`__Et1r~$WZxjfqd;h1+T=N#et`OSMdBfClRANXJ*Zm zKrO+w0$--YhqJDZSfX`kt*Y2QPyUk|b(|~rzy5Ugo4MNl`KRR6@3OFHZ(w!jx~?gt z`FjJ8;I^3BJCAn9biNn8+{QoKu+-(2iKC27tyfg@!Qkb*3;*5>_&fWD+?^#?g<Tg+ z6`UxWvA?NBQO7;UDCgM2LxC3>_)dtNiqPJf<r_Sq@tXhI{tsGD^){_Nbn%qWmKzOm z=^Izn$SkPqJGpHE>oWD18<d4pAKAN^J$;weBI;_fDn)uq&K9YsOiJ0cs|*6WSQz)b zRKMx3dUHbR^@^I*KOtdSbGBFu<{w?6*W|Eh0Yinh#E%X&>Cl45SIwGqi&(lncP3uk z`k>G4AkVuD7Z0PnFT8S33mj$6{K-91QQ14kv*S3EZ{jkE$rGNP>(b;~W@vD1+Jmmf zpzGQlR&^rZzCO9L$-a->y*9|ZB_YVGMe5Vqf`tAZn;ky4)US3tJoT^AtNwQ-B@+v* z&qkZQ-_hM#U31T9f&!1j<QIEhH;67ec|)d<yXQlj^mN{*k({B=(+d}s^mxWeW$+k3 zGP$*Jg+!O+_0B@B-4l<89oFLDI%{+(GWTJXA&ZOJ8QrS$OcQ?wH+Cf3n=NYSlgUl& zj4*pYL0z@Rm*>8-UyXiaVogV4joE6E=>iuO&b0}xx%8m_#D4Bmm8n;D?tXIL@(Tac zd23HOtTlR<_}KbX?$YOPZvJ@u@zBCQyg#=*GyAK&Jfb8dapS6_!)?4jkFS!;U;esA ze`6)9QCZ>zfo~_mwq`X=P5hseb0#I{%pHMUIop0cS+q}`eeU_WYu0~OSTfzizi`JB z4&}|3N=Z8oF@KHS&TLS9VaY^e;ggTfxG1rdt@eu8e8h0ah0ryTK^|3;Oyx>n+mzR> z`}lEccG;BBe{&7Duh~;{W#^nZOS?O}pH16P^2eksW_s6oS!b!I`KfnT?fG+c#+oy= zSMOI{)Ovhz!U>a;355#PJj@gBB`T-0N}Du3o4{~#!HM(RvwW*R+w6VLV(YePaj)#` z4Udc8NIX9$_<f4E-OrQUzYVo7s|Gss*%Y4X{+#-9$FCiCxt$L?6i+;AYw+>JjY`|H zxcPh4=j>IVG}nFO=Zvy@6Xu#PyYCjIYo7jgf%rzzqNXavOB3e(vDus8wB}xjv-dxi zultL?az7Deo;h1(^^t!$VTvcSHkvG87fIio*}6BL-_pM9<vus_da3fH3*ydxdw#sN z?k&@ms?NLN-`uAWyFA+e!I_hR?o-(FUHkSoPoBWq@5;GjU6G#H)s@P3-1w)g_{06v ztM-fLU*+XrB)=?J^@r*2@|@2X@9bK7G48nd*8FK3Zb>o(DSq~Nb;!az@&EBV34Bsd zHSSHi*E*lUT)apjSzDC-l5AUthBx=Ni=urRb^eEDKWXeR(6ip-zomcfvN_upKP|gr z_SrS%`0o26lh4l&En7H```Ln36OX*#>9gSPWc{<p+hzCa#~jhwKQZ*+K8~;x6MfIT zeip8`{?VFyIcp<-${w73U$CL_aoDjN+c&)mO-#|};O6e;6uxxFv#4Y<M{-E`=Jac> zyvNv@f~T`Ku5N0YcJXg(-6^MyCEwQ+9<wa|7h-q$#FP2_Tz^v^1wEd!GGE|l+yWgJ z?!p(hw<~qOTFiDL|J|obkLE*%%A(fKpS4}aWgDCSL{kZ#ub%&<4{7exQjK@LJ-vJH zsX$&qW}f6HF9TcbI0ARA_@JS9cCU_Xu)~wD0l%tN=$Y6|DZBr+bkcuG$GConnMD;X z?z_A!7B6n!<@2M;DvQf~;|xC$>6=wKt!=9^y+f?Bw$w2Nr>U)OU8n5JvT5SQMag2_ zN**)AxBR}7`iY-?dd=h?Z*Md0`*2hxRrQsI)v^b@ntjX}FBIKX-`On)xar<~mh<dq zw<mvhRaC|0T;6m4;>RC?mChH%n^!zBVH5bLvRIr+xI(!p-1VRhL&pib7dggn750l> zIwv(Fj=$sKVYYjIn^sIM@$oL%HZ?4Jb0D*#QfJ5+MfQb%ZioEcn)cIi|9$uSwa<RY z{WZ;>eX?+uq?yV8*h(2?5f8_|aavQnWySw~XsOJ&^x=?k+#0dSim%_3I9|HfMjRGD z^Y|fOb6iki>7%oPmmS!+y&hMI#XQ{7s^b&CsiQxAVnHx#tkl0X(;Z8`FRGnd!RA@( zxqh12(i2T>f>jwC)EZfHzNl0rFJhc?M4`4xqUpLuz05o7pW&b0$Ef}+e>O{@XXnzG zo5C&eGt~TV`~15Qu(WEKO|kLMVw*!A?R(lAKJVkZFYq_D(M0kU%jehkj3-aNzvSnc zDEVcA4YT!cc@{i-KEv_6(2<M{5zQ<23$q+qar|ok#FXQ$uix&xy)o9|R{tBPw3ba? zJInvPa`)gWKl1n!$J6cn`teQ+GrXRdGMu@#`oO22LkU*$IuD(1N^SM(YfBORxM+D{ z*mDiuFPzFdrDA4ZoqO&`nKt)K_5N2U=R_{OmbD~%)v}a?sX;~G*nYM*?{{-N6>l%R z_qMyHqkhiao%-R5BIQr5Q#4}Y8s68{|7|{=Vc8Y8y~vSqQSnCp=N$Jrt{hwceA~*& zM~>VocNE;WP$zfJWcD>ompn`)>K5FXG&_I!yH873CdCUb-#KTu`n)SkIb#bw=gY<} z*O9nad_(a03a<B?sw@tE*!5;<SmUQf$sg{o>OTA^(?6BZaN@7~;b#^KKK<0po<C<^ zok33Avp1al@{jUTQ<oH-`>^<F?zW?TvrLq>ceyQ#Y?XhgeM#B4r=U6E@J}W7Kj)5_ zo2&>cP1VhB%3d)k=rqTQ-pzK5-#ouHU#Q7Dzq()kHou(9bFX8I)XFlqe7vS|$?DRL z>Gy3eK6~HBFk@Sg@M=TD*ZI3|KYF}sRm<+_OUq4Xm9|GOUe|r>$)b&~7YXjn5IJ(+ z+k5YZiQLkAIi4GQdc-DLGO^-}_ub{^JXp$~s)%i{ELxw_a&5(B)8ub0?)`60l@!js z`!4Ra$J||=lifEQOuWqg;^YaFmXmupibSHyE>4IsSz_CHq0nb##<j^D%TkX<#ePbX z+O@E+%%Vl<-O+{q@0Vn|WnS65Y<dm<+~PCK=9FCATm34<I(>fWgtQQb2hC1DE*opT zs<;<%{78C;gfC-{nM^`WSQ6_&i~p}BMg31NuV7{Pt1!cXxifFd39EUnxvrd7)n<z) z|N3onan8jvjL!F8-7jbqICmo{Hg%z&!Fl8G@6)aPcg~%}_c^gLM%(k;v;~*`=WGe$ zJ6vAq_;1ym+>GpVt7>94JSsIz-`HXGw&r!f#aFTUvRW7BY1<Y()Ho}vn0w3VmI&|W zAD$21%PmpsJ+pKxOTTW5X#k5;)LI$A3%iP345ljwSzEgB^)5?1@qe<6V9DQ`mP#{z z&H1q;VO8n=1y=tH_AC6^@|*Q%md$%{7qd?s(n@+W<GO$Q%?eqdbA7=Y*;9}DzpOa9 z=<o02iM>f~f?p+Gxwuv8XS&9|%X2K9SGHZ@{qnoI8WOwj>uSu{9X+AZTRQDj*IiwY z=w|2JkFxT_Ol-w$gUV*!E{&fNy+tK^ecI~ttKaVW_U_(VQ6*O<F?o*Id8XxW|7=`b zU6ONqHD`i^OH^IJ3Vt?@$L|C~mQOqEyUlESSk|8dnGF(#?weP1|Ey-|%zNvz;3G#_ zw?g>Wdu>%u!@aLd>g(U#XOaGXaryJ(UoU<4&%C_5JK(=*&Hn4RZf@T8=4AKkA2C78 z%y|1{3^ts<Gp|8GlHq;YYxBPN{Wg2Olor3emNdcT`);O(cTcUe)$q-1Rew0S&#&UI zlE4Cf$=<gqTO}f<o~g{cRwV2H!oX{B_}#_H@~(dcLVax(CpQKr1{ywbS*OMqthx7) zv6s%fPOU&OH=S)R8#gM?5!t@+vT$)v{EwW4Et?hm&aQ1*bFP|&^UXxwq;qfPC_O#C z=-tZApP!vQAAN6ku2=uO&(-UEygX;lo782!XU>&ZTRS5og>R={@vZuKbb5T)q{ovd zKNg-e`C>ok+1XojENwUqN>=~l&R4PJSF-glzCHO>h1khMjd5BEH9ga$dJnqzvwV`` z37+}1XF<ZccpssV(zHvSw_0wvMCY89ZMyJ&?y-G)vaYW_y`A&anI*p6o83*`UEURX z{+-6wyInscU3Z&r2|Olou_>@MHtPF(>jloc@0I+0D)jqOct_2*y<b`4k0;qokDSUR z(zUW;RT>+|8nf#<|IRtCYw+pX)?c=yOp5o!1Fl<lMeeZoA8ES$z~}1fpCy_X*xi`U zZu$HuDWv3KmStS=hH0ngUXI#Yqw=zInTzUj`7;qF%d(GOl$^V}Pf|iWHI-5IY>)8& zcXJFEMNfaIvP|T*lGdzaQxbOXkjlNZg-QQ|^5244$KEwgSDPHg`HgW_*k5=5=xr;m z&vw|{`avs3VXnXyhtuWHnh!qCtG8N|6mrJ)|NqkRsewgzJa$~UecAZ5$vxBlnUd4a z$jBKVZkxO@KB*!xEv;?o45#0D>4)e1=yCtnI&<d1AJ=Zz26?W_?6vyv``?-9)AwtF zS53PT<hiQ<_#J7(XMGmN&-!+_&dFDP^sjdZldUDwJ+oP-4f|W>J(=-eVEX?Ju_1+_ zAMeNX$5;!Bm)zDoxAWD7f3Y2z%hzWey|rwDd#cFehu3tk$#(qH|GVk`p;+tI;9ot{ zm|J%o7G~REf4tgh?t?4)mss7{b6IS8=~4H&XTvhR8=a=y*8X+3*-4@>B-mvCH?P8S z#eG3~N5X%^-;S%hx%|MT?+^O;zi-UH_vgog()Y2~Ts0NNUdNd?i^@hQwM5*x@jo<n z#&=DJHjjjxerM)-v(NTsiP<UrGL?P$r&Uk7`^|!OZS0lvOaF7MuCaIO^{IuoIyM-% zUA=sn;nS_o;LF!8iRs>a_U-NYEjQNhiqDWVe;fXO*K57_Z9i))j$MDvV>|1Q4tMjS z%$=J)F4(Lr_Ms}sCo{hM<@<>mXD5FA5U#)X=du%C@A-acE&lVMujkY58&7UUeXmTo zm-oIpJ2k_mq{+CpHZ=O{vgeMQ|LzNt{%}?x$=k%6tMtCB!5x7haV{5zPR*Z-o$j19 zoV={pW{Snz+4+1+{i?smPPKV^bN8LJt<nekcD|0B=y3M)l5?Ru&b(r^{rK%sidoB4 z$B^m49?x8M+^Asq#q&*Q;Yxp%;(GR2W^1M$pJnZLNiV#9NGvS1;Q39vEtj2Mu*f{P zvo!Ng>$ki)pBO*hce<aEaQP<7W9iCsdGGT6o99ix-(axknAoPgJ%4n{H(l8L=;_{# ze`LO`+TK5XaZ+%FlKy+`T29>@C6}$ylb*;j*Rt(4W0;%1XsUibzk|3%UCE3KoHx!~ zT$=e}(UkH%{g&^9p2%zDem4`c&s9=&J~c~?A-j#gmaRv{B$mU^O6YCv;fukwFQoEo z7|M@Kd|_@;m1*JgqGh{K?)8h2-}0(nFSO#_HYah_(=8jcF27&(bip#89ZiedSBu$C z4%IM`?ei(?Wm$YaVLr=(-GBLZvF+n_vaT!PcUs@N{zeA#-MjhQFMGXUd3|7~_vH(F zcgDAA>|fBu_HDmc=;eP`{%1V#al2S1T+3EH?Lvu%;mu<%t7ql$J<uzy$ynZcf%8W1 z-ca}LkGGYFZ(BTx`BQ)3wHV(&Cgxsg+Svxy`<Z2IUBBAg>k^rzXQ1{wRVw3XtrNqp zdWBn!vo14jIMdEs>wjY_=j{W07dAwn=wi9T<d7*<#c}&?h-Qt`G@V8HCI{qBnC&xc zsNU%F`<T%mw!VZtAK2se-I%LW^!W3q%q$k^c4djQ;^VvI*8SPhYU6ypV3OgNo=&^w zvwRNaoDPfSr?Vx@<d?qXbcS<>VC~|?)kXJtf*xNF>$A3e@-hET!<)(ZAGQd(J#aoX z$(nIZk^HwFzIkS4oNJUf&YR)Rudqg9cU7fYaf|1dVi{Y@Ei*50=IgmnU$$_wWN)m| zZ=-E9W^OtvlP$e%%fvTE>PA%s)2giQSiP;)x-i$M`C|HprHn7mF=o_QEoVviTeje= z(C%+6w+|dMc_X$-iLw0g<SQ5N?sR9<=uhwq-;&a}>Z#eL*`In<x-aAj*Rsv_&WM_- z*3En&;&fK?%ssskTWT6N{Yl#r<G%grwDQnt$=3o?;uqz-WLVG}S$A5n_mB65X-8y| zju$i@m{#;n@88Xi&yr{3!w#95iFI9WSzmPT``14K%Dpby;VuHN_g}c{pE%KSj{BL? z4YQ|8pV=w(`SuB&i{BZHcl<6kd9`9!;gvw$#<GH}0~Z;s&N|y&TJq*d;@yHavvR#V zs-GG^CI9q#vE@en`E4py8eU7~pXeUX5&U!b*G;J#+NDdrFI>Ik%d4n$yR<~YUpBly zt9?UC@lcgPqHW7B{XChk@oY|(cmAbM(yypkd1C)rp`)L@ifk|B++14k%CSuU{NFhX z?}ke(d3}iI`X%ds8})o<*;g%3Nve9%-kg%OYuTKVtwKGV-)9Lek(m7H=6NscW1p8i z%dU_+H!(H-#;IqHA@+_Fdscoo&)S-Be&(_Zhf~il6xH18$+ROoAzWa4a#8YpdEo<R z{+xN+v2&j3tTQIc&d)BWrA&MAjWO(d!ojfXhs1OC9lZOse9gMKCwZRbbxDS17uMZ% zH@v>d^H|Kv=A^h|&nNzs<*quI*zvFW*z1K!|H?m~SF+5~QA-m0<NRmqtB-Rx_9w+; zeo_7yKf}iKocHYVPyg#}<f6qkPcsSUesg@$lzJV{wRUsnXMEi#l$Yx6urc4x?=k1z z*V37B8;T5jLrOlHFWYcJCeQy&=?9_NDF)B8&*Up_c8O;`^Wfd8!rMn;&xf(D+0d2y zpC?tg$oq>%&9`GbtfH6Xiyp6ddYkc_=`n}W%RZNbJESz@pB(M{_V0mC)|2Qet4BKb z8v+k4Ue@*^|JRNcoec8xUVZ+)RqrDwQ?U5{Zy`&0a}El97YX_Il9TzNlYxK1qtoWE z?oT@QyKRTI@W<4mH{mVQXaD+mMgDKux6RX3tbeZxS(1C(?E91(-!dz6tE?VA%>4Q) zbrrMhCAL#Pl5R;&TlKQ={jO@0r3&SfFL72q++wuqM^~%a>tDg)`?DroRWNO43VXiw zgTU;REpwgJE7W3kw=LZ+^Xm4B&Ys0?^`_Ty&D~X^0vBls7|ClM-({I_My)#gOmpW> zzPjYk3nS9=UM;I)H%gAT3R<YYY@f>=-@UA}cH9;$w~dxhD9yi}Zu)JhvS^jWj52<U zl=9bc3x#xdHulHAiT$p(>UZvuPgbw_KbLZ6o?D#6_Tvbf#{PeY)Ut{l>up%mUq0lN zsh#3fo+PXw{KIF7rk3R1<qT_z4>xP%ZM-IZcA1pn#0_gUhabLpbz%NfFUE^^4;a0Y zNfXj769}`g7yRy(uhX~Um*D*go0iO6oZcok@lMA(#=f?^_s;d_FHS!6wsZHn=yPh4 zcM@CcrY`>7c5l+1j(Lm;1==QCN}q4u?Cd*9TBhQ`X`gc!A04}?`Gci@+EVK)!im${ zb2lxPvto1U+!Q*yvTOfQz7K+-M(v3cOa)j@^VWpbvb<U&*ZcJNhWHIND)|$qx49R6 zbNs})>GMsGqkg|NPOfNv^T=*tXy@9$b)DbZs`I5+cPXWwc7FFKfFs*7V(W?9cbPLz zi&(Q)C&x?`-xdGq6Wc-wS-DfE+gH4Z)Hl1*QQ~&xj)w}jl;FO}i<fJcM3*hU7PRX^ zRp^aLnpak+n*V#o^*u4p?)+JiS?(vAp2l%c^Zxp3$tKqa_cxe3Hp<O(Onb+<`r<|g zNdZgqkTd`D`dp7pX{@)A>*neEaP!c8rJ8337DjqWYxDkT9164FsZ&(-WRb_QSI5iU z?1UOBTzr&{m_M4BDrnd#AYxyvaaR6M>5BC8+w%g&u2?JR9{ALCO?{>Q^uRywdA7Ar z%~W1x-?rA|$dfMVi``6avolW3clsGswAj9U;r(^x#;sYCQVxE4xaZE6rPEv^cYahm zQQnkOxZqn%T13#IV-3#*v$fY$G+kY27QpamL*||k8>W8`yG808Cmx#mfmfRUXw;Gk z&up_=?|H2LIaU4QpKh}@D@`4vcJ7XyeN#7hHSe5#?2nm|@~rKtX$8kk-W5HHJ3fv5 zh<UYZ+2`3Tb#?tet{=S4xUn^F=I+^6tMeDsnb^%W`uawn@5aQ8`B|FRR{tn@=4E2j zsp}e^pb?<^)X_XRBiK7HNAP%Z_l&1$T%}4W2aEFM_04lvKE0=7p7U}^)Txhmrqydl zZ&<qLB#(F3j3bM#nYb-H9jcq3AnGRlW_4C4m)i*&|Apx*q9*lBbVz3_zJ4Iq@lM~# z-p><V8PE6_?sn&H%{kd)c+!gD;6pz_F7HXqr>9r^X5DvHdC!;cl6iX%Y=8Il@y7If zq6w9{Hm9_BPyhbk_jIdv<gTY8Uu93}?&O|d)B5Y^<O`F|g!yM^eEjrtlgze+p8;{f zhmw2q*aRxRXS|kcJzn&K^K{{L;b^bcO?wm*d`?cCwz%l>_j8sFIu?HS1$T*cEwJ3b zS3>28`<(h8i+<eI(AzH-mlo=FX8)0I?nm}5e{u8H(QP07dW`Ci{5MXD<D9J#<$A{V z=%V++#ma{3W4w|DQYG|+A~sp}&v^YnJuGj|A&rYO?oT_@v5#-YLD{Q2@)h5)m8r~5 zcoRIu!br>g&pD+>`3>t8Zg&W|<w`YQ$?sWmKjOIB<G7BE=PzB+`zl@LcVhAV2zL3$ z7U@SUJ}Oy0n^kb$`R^A!1NNZh>#f<>p3!JejV=saeN#`&o&WN+j7PJaj+?}ms^=a| zU9l#<`etqWw1|&F`|ng;ziltObyt+$>b|*0FO^<j|7_wm{kK{j2Vd4tYcM+YUr^gC zKIz{*-}<GG4+X1>i7cFx5E!L3ZCz&QtGR0br+&=Jy1L`w^f^spo#v{3S4<At_^;ZN zd|!6yv$@d`k-t_od^;KNklTH(E7#rTV@anjPCt|0VfO7r)`M#cY>l2=TYT9<?7K=@ zm%01jGk)BL>IuTz0&Cqu6N06uo_djSI^wI?&aRw=Uq#Ly3=rndja+phmO1H<<xHX8 zJLl>itxI3dS|EPQE-%JcFZ6{6L%HI$D_eGpnQbU)w!Y7~>2~9-k7p9X{N2;Mj)^`~ z-PCuD&v>58@0BxpuO`aWE_IsEed2BYmy;h)DbKLCs4;YpU-sua@9v0hey(?nUDCxd zi>_YRDA~DD*d@PW@ln5RY%E)DWT@;o>X&w%^~}UiK6#<1pEEs+&-KY`&6B?({pXG! zccFTLXuzzr^6Fd3VSg6t9+`jO@9ChkWp9Li=hmf%R~gB0L}aG8_Q);2aJ~8Fb1viH z>~n?tOw-qv&-mWAbMn-#pH{{fCoMc>{(XZ{^46FYI*xCnwxqN<na|3W>snu4GQHbY z+UonJd9f@zK0nqIuU6PHdym{U#;T*W2kQ7fCU2-&{8xtIn!QTMj}8AK<X*jy^^dEW zwr9t|x-MVSJu_BTek?lK^g?;Tfe%TIW@=^1@3s~wuQob%MCSH!*<bUH9oZV2%lrEK z52Nq*XS9kues)1RE|vG1iCCLw!1K8bf*EpmBG0bs+QHj=QU33Sd+V#F?-XAc|9Dos ze8O|>{l`wOkKmiV@sDD8qpj%2TG4%6n_T`(cwF!N=i#b5j6dY}9-6xdbVhIJDMvpS zLjmTC3A^tkzN;7LJJFw@RB=_>d+)Vh74Keup1M_Kr%x)o=fg=2Z|oL`rheaB<`|g7 z*W6;(FyF{iCp_TF=9v<=U5bp1Z;F_?vue$cF3p_k682`R)ucZwWQ{-1N?hQ&Vf*@s ze~Mcl{A0SXSiJt_!KqW~r>-{N>l@(cf9&bYe?M8K`#(J<$7K1o_F3l(o<p5X*|p4@ zA9H|iHUZs*!lW#u_FQ&OJipCX21yRk>6#2jJ_zc87*`pCzWkE@dzI6GqnLq#fs=s= zBnt9ZazaW%!ug-a4<9)2@~8K&`QpnN16WuM)-f^^=&*`b-0Gded`2Zwq;-GQin!a` z_F99F=D)oy9ehObym`fw_fI~zW0L;zF9jd_=6kwxt$Px0aA)C~(&8CX`_ermeBb|& zyL;$<iI>&Iqj!(1d>48C<KG;SWr5Z+&!1c;kiJ`Z=IiXDmVfdJ>jc-jWCwcahzq;w zUJNhssY@y<GJf8Ec%_upCX<*$DgRYWjiz6+6}x)pe^IH<kqHrPs}K8J3_i~+A(#I+ ztK6`>?VU)M<NNI5(qHo7w|`qqJNQu{xGM8~^x@_!y#581dwOPmjPN@p<G)fuLoDvW zg%3QvcUPYI9%|{oYk$61<o-zy+Fn){_sSnVQy{5(nB`VW(3T?qprH4++SZ-%sY?s{ zRQl~;LC2T$urwQEr}Dq{)5XmEe&;^Un?6r1_UONb(!qb-=gh0p`%+)DuYOkY65p@> zH=l&(O_7uQZRq&j*eUvHm9g%l+)LV)CO@aKKGdF-T|f6y)|L<45f9{-6~8z;W6Q34 z@rQH1+dp<ry|q(bQ{QX%#~zO0$anjfHCeZ@u6pUPSN@%ONBfI4Rc2n?f#$ky@^6<W zrB!^J9xyR&+WrFm*@u<Sc*rj++tGP3Q7-gQ$kDBnTpxPgI`VYRoIi)V3>-|?9+rGp zbFRZUVtxIy)N2<_gC~}qtY6a`JZ1Cl&GV05EaCbrdOqgq<M3rx^Y@;$KX$cFY;#Td zu}HnUUwMkf3tH=&1mD?5?S9tN_CLCN(MFxumyOQ&PP-TuGfn5A&UdNUySt~9@W1{i zw(R&boszjPHD_ra6YAQ!;i*CHk(DoFw!JZ*vG!y1-S`!@Jz+fW3$iSlxeqz`b%$n( zzJ5_@7d<z8Z}sasHr315TQp9*EC{?_lwI5{wrHb<-m8wRI>X|S<5y4qU$e2k{QLZ@ z#<|mPboB_TrQ2_mD_y;5f8_o5Vslxo*?;cn-Ymbfd#C5GtrfQAY-LA&*~`DKfBo_9 zqJ7)vomc;<{=4PXzKCCoc9>s(Z=JMvUjNr!iH0}sSg$&o`uc6yX^mx%Gm}5wvir8| znP8b;`RY>>=O#XV?RRve*RMHW#9o$P3ZHWR@uc~i|9h?Xn_jTIzCH4p>9y_8%*&oR z=U!WxFYd8^nweo~aD=4K{Pd-36Mx<ebpHOPHjMxD<-V-C)Ompmc)7MTSI+o(BJOI{ zi9KrZ^6B-fw_i<+ziM--=2X>@SJOUweO@hlwdQcmp(KO;6TN3&_7z9+on3uazxeC< z+S{JjHJ8nknfO~j{QldA#VcJwc{eE`!K3A{CJzI{T*jn-I~lDQ*D*OTU1567EXr)p zT*N$sc{}qt<_|3FETJsTESFimSo>H%um!T!v3+KbW-nlGWnaR6hW#~%7sq=}Q_iWJ zuec1jinvyCi*YA%*Kn`rVd2r>DdXA1%fTDMyNgepubFQh-v@pL{!;!^{J#W@1tJ9U z1*Qt@5x6e!U9eE_f{=<(v(Ou1d*NLo3?h~yZ6bF?eu$=st{43$mMnHuoLM|y{E!5v zgr!8g#5qY3Nngo6$)%D{rF5kdrS?f1N>7#kE+ZzhSLTiE6gd_-0XaRn7xGN<_VUg0 zR}=yi3KVuJJX2&-bW$u)+^=|A@u}i}B}t`fr3cD#%CnT;t0br@s7_FQtQM-aRb5BD zTYZ`OHw{OPdW{R3I+`1`e6(t{o@o1MZ`YB~$<aBc^Ho<_*Il<*ce3soJtjSOy(+yO zdaw1_^#%2%_3ibO_1p9(>Ce-@rvJ-;%RtS**&xgy%ixRQBqL=bePe#(V&jh{6HLCC z=9`{0Gc^k|D>1ukZeYIGLdT-UVui&g%OuOCR!mkgR-M*t)~VJt){m_J@E&BIaKnLt z;lQnJxwAd_PX3kLntS`(f^F=Ov)+Hi>i32pSp9@^{l@F3rNyf!eLtH2<o%cbENhz@ z4^By_+@QZhu7=}Z!x9Dl6+Ao{>}^ew38ofIdCmR?l4rPAACTH$E5nw4sPu!z9%lQ+ zDH{B%y0R86TcIq~n6`N93yEFLb`Mi5?ALY4=C!v!$gD86Ysr7~J@Jx(e}w9m#MuP} z7P^1Le7mN(RWCYy(OYPGisDjE#om)Fn`XRG5kFD<Nnb7aOu?*<XG@;0TyQqi-fE)W z!rd<mtNQCwJtOkMIy0}$;!O&^$+T_G+vMdpOutQ2f09}07uV<=*T4PI-=9+Zn&lsE z|Ed1ZUq$?<i|9hvY{LK_!P7?>3xjJWc&4z;bPt;rwQXASlaQS;dDDJB&8&>w7t9$N zH8of?RCH>P?o|d;Pu<YnS5?0T9lvf_;+p#<Yw|r2;}ciRW6xS_zK~<M{H*fl%gZ*l z<|e$pajtC2+-&n3kH0nkeR*k@65ozp>$;^M9NVFp*LeGl-_G`T)xA?pH(k?+Se(PV zpY1>Yx>stC7#Kh|hcT{U=w}dP2w`9a@fa8w_!t<N7?@NT*ccc==X*03F*As`#J`PO zAX6G5-E3vnwlOzWjs4`yO@_~A?>=DWc`YLHK4X)?x$qn67U#k(RjkilfA;Hj@lQ7K zEysVV9WOclQ!%dUPrxFdb}h-EB`b^1*>1n%dCo9k(vlOC15y`x^kk>TKT&<YV|n=2 z#HkC^R$rRZU%b|@bHy6H%Tq*nKe?=UB>(Q}iGW2GNA^7HV~_hW!>A&1$Ns2a3L%~| z%kxy$E{w?zns(I0cZF7<>e9@4Jyo1tS3FMSZAg05ZvUp@$@;b*+iUe|jN8EXK_n-n zF*N^=<k94bU|`UaXS~QzaqHHB#d{kaXD13TW|(aDSk2K*VQ1`xQx2g~4UNvT6Rj7w zZ=JV@W5Uk4nuiWMF`r4|D>4fdW!@O^s3v!ds-sSrv8<|Roj~_mgKK9!q>d!bkC01V z%9B)hWhr}vS7XE+#dT>}3Bfx~3GF$X;;8fPnTUOd)x6oWcTLK5(1{adl=Cwa=sthU zBi2pe$fI(Di&I!%i*gjS?C46IEMRVZfthRF)|o<j4P8%Xa5+e@HN05O^o>uGPfJl~ zf&iyv!%iWs*6&FynjRWEpZb?C+&U-GV8QjGql|pQauFA@b~+zSIH0!YgX82kJZgJ3 TIH)GK?@NDvl0R4`bP@vq%WiTt literal 0 HcmV?d00001 diff --git a/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.woff2 b/website/agenda/planung/fonts/roboto-v18-latin_latin-ext-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ab076be603c250ab027c264e49760735c2a43290 GIT binary patch literal 21920 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 Z)p^Or_#@HII-YeR-@HCG8!#|1006yo6p;V` literal 0 HcmV?d00001 diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index bd14353..6a93291 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -2,6 +2,8 @@ <nav id="calcms_admin_menu"> +<div id="bars" class="mobile" onclick="handleBars();return false;"> <a><i class="fas fa-bars"></i> Menu</div> + <div><a href="/"><i class="fas fa-rocket"></i> <TMPL_VAR .loc.preview></a></div> <TMPL_IF .allow.read_event> @@ -40,11 +42,9 @@ <div><a href="work_time.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-clock"></i> <TMPL_VAR .loc.schedule></a></div> </TMPL_IF> -<!-- <TMPL_IF .allow.update_image_others> -<div><a href="image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-images"></i> <TMPL_VAR .loc.images></a></div> +<div><a href="image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>&search=<TMPL_VAR .presets.user>"><i class="fas fa-images"></i> <TMPL_VAR .loc.images></a></div> </TMPL_IF> ---> <TMPL_IF .allow.scan_series_events> <!-- @@ -56,7 +56,7 @@ <div title="<TMPL_VAR .loc.help>"><a href="help.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-info"></i> <TMPL_VAR .loc.help></a></div> -<div> +<div class="mobile"> <i class="fas fa-home"></i> <select id="studio_id" name="studio_id" onchange="set_studio($(this).val())"> <TMPL_LOOP .presets.studios> @@ -66,7 +66,7 @@ <i class="fas fa-caret-down"></i> </div> -<div> +<div class="mobile"> <i class="fas fa-broadcast-tower"></i> <select id="project_id" name="project_id" onchange="set_project($(this).val())"> <TMPL_LOOP .presets.projects> @@ -76,7 +76,7 @@ <i class="fas fa-caret-down"></i> </div> -<div><a id="logout" href="<TMPL_VAR .presets.logout_url>?authAction=logout" expires="<TMPL_VAR .expires>"><i class="fas fa-sign-out-alt"></i> <TMPL_VAR .presets.user> <TMPL_VAR .loc.logout></a></div> +<div class="mobile"><a id="logout" href="<TMPL_VAR .presets.logout_url>?authAction=logout" expires="<TMPL_VAR .expires>"><i class="fas fa-sign-out-alt"></i> <TMPL_VAR .presets.user> <TMPL_VAR .loc.logout></a></div> </nav> From 7449b536679a5ab6e0e37700fe981b6827d49942 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 10 Dec 2018 13:06:41 +0100 Subject: [PATCH 044/391] fix upload estimation --- website/agenda/planung/js/audio_recordings.js | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/website/agenda/planung/js/audio_recordings.js b/website/agenda/planung/js/audio_recordings.js index fec9f7b..f7b42d5 100644 --- a/website/agenda/planung/js/audio_recordings.js +++ b/website/agenda/planung/js/audio_recordings.js @@ -56,7 +56,7 @@ function uploadFile(uploadButton){ hideFinished(); hideError(); showProgress(); - $.ajax({ + var request=$.ajax({ url: 'audio_recordings.cgi', type: 'POST', data: new FormData($('#audio_recordings_upload')[0]), @@ -65,11 +65,12 @@ function uploadFile(uploadButton){ processData: false, xhr: function() { var start = new Date(); - var myXhr = $.ajaxSettings.xhr(); - if (myXhr.upload) { + //var myXhr = $.ajaxSettings.xhr(); + var xhr = new window.XMLHttpRequest(); + if (xhr.upload) { var c=0; var oldRemaining=0; - myXhr.upload.addEventListener( + xhr.upload.addEventListener( 'progress', function(data) { if (!data.lengthComputable) return; @@ -102,15 +103,19 @@ function uploadFile(uploadButton){ false ); } - return myXhr; - }, - }).error( + return xhr; + } + }); + + request.fail( function(jqXHR, textStatus, errorThrown ){ showError("error: "+errorThrown); hideProgress(); hideFinished(); } - ).done( + ); + + request.done( function(data){ showFinished(); hideProgress(); From e9b17e5c9123a45ce4cf42fe62925ccd83731755 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 10 Dec 2018 13:09:42 +0100 Subject: [PATCH 045/391] refresh layout --- website/agenda/planung/css/admin.css | 201 ++++++++++++------ website/agenda/planung/css/calendar.css | 18 +- website/agenda/planung/css/comment.css | 14 +- website/agenda/planung/css/event.css | 9 - website/agenda/planung/css/list_series.css | 10 +- website/agenda/planung/css/show-playout.css | 2 + .../agenda/planung/css/studio_timeslots.css | 1 + website/agenda/planung/js/admin.js | 67 ++++-- website/agenda/planung/js/calendar.js | 1 + website/agenda/planung/js/event.js | 9 - website/agenda/planung/js/studio_timeslots.js | 6 +- website/agenda/planung/templates/header.html | 1 + .../agenda/planung/templates/selectEvent.html | 2 +- .../templates/studio_timeslot_dates.html | 16 +- 14 files changed, 223 insertions(+), 134 deletions(-) diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index e1f2984..123c152 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -1,4 +1,32 @@ +/* roboto-regular - latin_latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url('../fonts/roboto-v18-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ + src: local('Roboto'), local('Roboto-Regular'), + url('../fonts/roboto-v18-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/roboto-v18-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/roboto-v18-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/roboto-v18-latin_latin-ext-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/roboto-v18-latin_latin-ext-regular.svg#Roboto') format('svg'); /* Legacy iOS */ +} + +/* open-sans-regular - latin_latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('../fonts/open-sans-v15-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ + src: local('Open Sans Regular'), local('OpenSans-Regular'), + url('../fonts/open-sans-v15-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ +} + body{ margin:0; padding:0; @@ -13,6 +41,7 @@ body #content{ color:#000; background:#fff; text-align:left; + min-width:500px; max-width:1200px; margin-left:auto; margin-right:auto; @@ -33,11 +62,23 @@ body, #content div, #content select, #content option, -#content li{ - font-size:0.75rem; +#content li, +#content input[type="submit"], +#content input[type="file"], +#content .label{ font-family:Roboto,sans-serif; + font-size:0.937rem; } + +#content div.panel-header, +#content button{ + font-size:1rem; + font-family:Roboto,sans-serif; + font-weight:600; +} + + #content textarea{ padding:6px; border:1px solid #ccc; @@ -85,7 +126,6 @@ body, #calcms_admin_menu div a, #calcms_admin_menu select{ - font-size:14px; padding:6px; padding-top:1rem; padding-bottom:1rem; @@ -103,7 +143,6 @@ body, #calcms_admin_menu select, #calcms_admin_menu option{ - font-size:0.8rem; max-width:8em; border:0; padding-left:0; @@ -121,11 +160,14 @@ a{ } #content table{ - margin:1; border-collapse:collapse; width:100% } +#content table.data tr{ + border-bottom:1px solid rgba(0,0,0,0.12); +} + #content table td{ padding:6px; border-collapse:collapse; @@ -148,25 +190,37 @@ a{ } -#content div{ - padding:1rem; +div.editor{ + padding-left:1rem; + padding-right:1rem; } -#content div.header{ - font-size:16px; +#content .panel{ + border: 1px solid rgba(0,0,0,.03); + box-shadow: 0 2px 2px rgba(0,0,0,.24),0 0 2px rgba(0,0,0,.12); + margin: 4px; +} + +#content div.panel-header{ text-align:left; padding-left:0; + align-content: center; + align-items: center; + display: flex; + justify-content: center; + padding: 8px 20px; + color: rgba(0,0,0,.54); + background: rgba(0,0,0,.03); +} + +#content div.panel-body{ + padding:1rem; } #content .field{ width:30em; } -#content .button{ - width:10em; - cursor:pointer; -} - *:focus {outline: none;} #content a{ @@ -287,13 +341,6 @@ div.error{ border-radius:3px; } -#content div.card div.title{ - font-size:16px; -} - -#content table.table tr{ - border-bottom:solid 1px #ebebeb; -} #content table.table tr:hover{ background:#ebebeb } @@ -337,6 +384,18 @@ tr.tablesorter-filter-row input{ color:#000; } +table.table tr, +table.tablesorter tr{ + border-bottom:solid 1px #ebebeb; +} + +#content table.tablesorter td, +#content table.table td{ + padding:0.8rem 0.4rem; + text-align:left; + vertical-align:middle; +} + /*colors*/ #content input[type="submit"], #content input[type="file"], @@ -355,30 +414,29 @@ tr.tablesorter-filter-row input{ background-color:#39a1f4; } +#content .button{ + cursor:pointer; +} + /*colors end */ #content input[type="submit"], #content input[type="file"], #content button{ - border:none; - color:#fff; - padding:8px; - margin-top:0px; - margin-bottom:0px; - margin-left:0.5rem; + display:inline-block; + border:0; + padding-left:16px; + padding-right:16px; + margin:0.5rem; text-align: center; text-decoration: none; - font-size: 12px; -} - -#content input[type="submit"], -#content input[type="file"], -#content button{ - box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12); + min-width:64px; + font-weight:500; + border-radius:4px; + color:#fff; + height:36px; position:relative; + box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12); transition:background-color .3s cubic-bezier(.64,.09,.08,1),box-shadow .3s cubic-bezier(.64,.09,.08,1); - padding:10px 20px; - display:inline-block; - border:0 } #content input[type="submit"]:hover, @@ -434,10 +492,6 @@ input[type='checkbox']{ margin-top:0px; } -#content div.buttons button{ - margin-bottom:1rem; -} - #content div.formField div.label{ display:hide; padding-left:1em; @@ -455,7 +509,6 @@ input[type='checkbox']{ /* new */ #calcms_admin_menu{ - font-size:0.9375rem; position:fixed; top:0; left:0; @@ -479,31 +532,51 @@ input[type='checkbox']{ border: none; } -body #content{ - margin-top:0; -} - -body, -#content input, -#content textarea, -#content td, -#content div, -#content select, -#content option, -#content li, -#content input[type="submit"], -#content input[type="file"], -#content button{ - font-size:0.85rem; -} - #calcms_admin_menu .fa, #calcms_admin_menu .far, #calcms_admin_menu .fas{ - opacity:0.5; + color:#777; } -#content div.buttons{ - margin-top:-1rem; - margin-bottom:-1rem; +#content button.selectImage{ + padding:0!important; + float:left; + min-width:32px; } + +#content button.selectImage, +#content button.selectImage img{ + width:32px; + height:32px; +} +input.image{ + width:16rem; +} + +#content .ui-widget.ui-widget-content{ + border:0; +} + +#content .select .option{ + font-size:1rem; + line-height:2rem; +} + +#content #imageList div.images{ + max-height:650px; + overflow-y:scroll +} + +#calcms_admin_menu #bars{ + cursor:pointer; +} + +#calcms_admin_menu.mobile{ + flex-direction:column; + position:absolute; +} + +#calcms_admin_menu.mobile div{ + text-align:left; +} + diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index e0beb70..8577ed6 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -334,6 +334,10 @@ input.tablesorter-filter{ font-weight:300; } +#content .weak span{ + border-radius:4px; +} + #content .schedule, #content .event{ cursor:pointer; @@ -459,9 +463,6 @@ div.rms_detail div.image{ width:100%; float:right; } -div.rms_detail div.image img{ - -} div.rms_detail div.text{ width:100%; @@ -489,10 +490,13 @@ div.play .error{ } #content div.event, -#content div.scheduled, +#content div.schedule, #content div.grid, -#content div.playout{ - padding-top:0.4rem; - padding-bottom:1rem; +#content div.play, +#content div.error{ + padding-left:0px; + padding-top:0px; + padding-bottom:12px; + padding-right:32px; } diff --git a/website/agenda/planung/css/comment.css b/website/agenda/planung/css/comment.css index d1c91f8..5323f4f 100644 --- a/website/agenda/planung/css/comment.css +++ b/website/agenda/planung/css/comment.css @@ -1,3 +1,7 @@ +#comments table{ + border-collapse: collapse; +} + #comments td,th,input { line-height:100%; ffont-size:10px; @@ -5,7 +9,7 @@ #comments td,th{ display:table-cell; font-weight:normal; - padding:6px; + padding:1rem; } #comments td.level0, td.level1, td.level2, td.level3, td.level4, td.level5{ @@ -86,10 +90,6 @@ } -#comments table.event_comments{ - /*width:800px;*/ -} - #comments table.event_comments td{ padding:3px; background-color:#ccc; @@ -98,10 +98,6 @@ #comments .event th{ text-align:left; } -#comments .event td{ - padding:3px; - border-right:1px solid #fff; -} #comments .event button{ text-align:right; diff --git a/website/agenda/planung/css/event.css b/website/agenda/planung/css/event.css index 2e6dd34..9126a75 100644 --- a/website/agenda/planung/css/event.css +++ b/website/agenda/planung/css/event.css @@ -15,10 +15,6 @@ pre{ width:11em; } -#content div.editor input.image{ - width:90%; -} - #content .editor img{ padding:0; margin:0; @@ -49,11 +45,6 @@ pre{ max-width:40rem; } -#content .panel{ - margin:1em; - border:1px solid #ccc; -} - .date{ width:10em; } diff --git a/website/agenda/planung/css/list_series.css b/website/agenda/planung/css/list_series.css index c828035..81427c5 100644 --- a/website/agenda/planung/css/list_series.css +++ b/website/agenda/planung/css/list_series.css @@ -22,18 +22,14 @@ div#newSeries a, div#oldSeries a{ color:#fff; background:#1abc9c; - padding:6px; - padding-top:6px; - margin:6px; - margin-left:6px; - margin-right:6px; - /*float:left;*/ + padding:8px; + margin:8px; cursor:pointer; text-align:center; display:table-cell; vertical-align:middle; width:10rem; - height:3rem; + height:4rem; line-height:2em; } diff --git a/website/agenda/planung/css/show-playout.css b/website/agenda/planung/css/show-playout.css index cf276bb..d8d40d6 100644 --- a/website/agenda/planung/css/show-playout.css +++ b/website/agenda/planung/css/show-playout.css @@ -46,6 +46,8 @@ table{ padding-top:3px; padding-bottom:3px; margin:1px; + border-radius:4px; + text-align:center; } #content div.ok{ diff --git a/website/agenda/planung/css/studio_timeslots.css b/website/agenda/planung/css/studio_timeslots.css index d058000..9a20240 100644 --- a/website/agenda/planung/css/studio_timeslots.css +++ b/website/agenda/planung/css/studio_timeslots.css @@ -66,6 +66,7 @@ #content div.show_schedule{ clear:both; + padding:0; } #content div.show_schedule table{ diff --git a/website/agenda/planung/js/admin.js b/website/agenda/planung/js/admin.js index ab3c71e..fd8131d 100644 --- a/website/agenda/planung/js/admin.js +++ b/website/agenda/planung/js/admin.js @@ -205,23 +205,63 @@ function getUrlParameter(name){ return results[1]; } +function handleBars(){ + var menu=$('#calcms_admin_menu'); + menu.toggleClass('mobile'); + if (menu.hasClass('mobile')){ + $('#calcms_admin_menu div').show(); + $('#content').hide(); + }else{ + $('#content').show(); + setupMenu(1); + } +} + +var oldWidth=0; +function setupMenu(update){ + var xmax=960; + + var menu = $('#calcms_admin_menu'); + var width = menu.width(); + + if ( (width < xmax) && (oldWidth >= xmax) ) update=1; + if ( (width >= xmax) && (oldWidth < xmax) ) update=1; + if (oldWidth==0) update=1; + + if (update == 1){ + if (menu.width() < 960){ + $('#calcms_admin_menu div').hide(); + $('#calcms_admin_menu div.mobile').show(); + }else{ + $('#calcms_admin_menu div').show(); + $('#calcms_admin_menu #bars').hide(); + menu.removeClass('mobile'); + } + } + + oldWidth = width; +} + // will be overridden by calendar.js function setupMenuHeight(){ + + var content=$('#content'); + content.css("position", "relative"); + var menu=$('#calcms_admin_menu'); - - $('#content').css("position", "absolute"); var top = menu.height(); - $('#content').css("top", top); + content.css("top", top); - + /* + console.log($(window).width()+" "+$(document).width()+" "+$('#content').width()); var left=0; if( $(window).width() >= $(document).width() ){ - left=$(document).width()-$('#content').width(); + left=$(document).width() - $('#content').width(); left/=2; if (left<40)left=0; } $('#content').css("left", left); - + */ return top; } @@ -311,10 +351,19 @@ function initLabels(){ $(document).ready( function(){ + setupMenu(); checkSession(); setMissingUrlParameters(); + // will be done implicitely on adding back button + //setupMenuHeight(); + + $(window).resize(function() { + setupMenuHeight(); + setupMenu(); + }); + if(getController()=='calendar'){ //use build-in localization console.log("add back") @@ -327,12 +376,6 @@ $(document).ready( }); } initLabels(); - - setupMenuHeight(); - $(window).resize(function() { - setupMenuHeight(); - }); - } ); diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index 95d87a3..ab7f1eb 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -720,6 +720,7 @@ function updateTable(){ $(window).resize(function() { resizeCalendarMenu(); + setupMenu() }); } diff --git a/website/agenda/planung/js/event.js b/website/agenda/planung/js/event.js index bafdc86..5833c5b 100644 --- a/website/agenda/planung/js/event.js +++ b/website/agenda/planung/js/event.js @@ -13,15 +13,6 @@ function edit_event(event_id, series_id, studio_id, project_id, hide_series){ var url="event.cgi?project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&event_id="+event_id+"&action=edit"; if ((hide_series!=null) && (hide_series!=''))url+='&hide_series=1'; load(url); - /* - updateContainer( - 'event_details_'+event_id, - url, - function(){ - $('#event_container_'+event_id).slideToggle(); - } - ); - */ } } diff --git a/website/agenda/planung/js/studio_timeslots.js b/website/agenda/planung/js/studio_timeslots.js index 0a321ef..01e97b2 100644 --- a/website/agenda/planung/js/studio_timeslots.js +++ b/website/agenda/planung/js/studio_timeslots.js @@ -81,9 +81,9 @@ $(document).ready( initTextWidth(); - setTextWidth('.datetimepicker.start', 120); - setTextWidth('.datetimepicker.end', 120); - setTextWidth('.datetimepicker.end_date', 80); + setTextWidth('.datetimepicker.start', 130); + setTextWidth('.datetimepicker.end', 130); + setTextWidth('.datetimepicker.end_date', 90); setTextWidth('.datetimepicker.weekday', 20); setTextWidth('.datetimepicker.frequency', 20); diff --git a/website/agenda/planung/templates/header.html b/website/agenda/planung/templates/header.html index 8ad7c8c..dd99d60 100644 --- a/website/agenda/planung/templates/header.html +++ b/website/agenda/planung/templates/header.html @@ -11,6 +11,7 @@ Content-Type: text/html; charset=UTF-8; <TMPL_INCLUDE header_head.html> </head> <body> +<center> <TMPL_IF action_result> <br/> <br/> <br/> <div class="ok head"><TMPL_VAR action_result></div> diff --git a/website/agenda/planung/templates/selectEvent.html b/website/agenda/planung/templates/selectEvent.html index 8c13a2f..f2e062d 100644 --- a/website/agenda/planung/templates/selectEvent.html +++ b/website/agenda/planung/templates/selectEvent.html @@ -7,7 +7,7 @@ </head> <body> -<div id="selectEvent" class="panel"> +<div id="selectEvent"> <table> <TMPL_IF selectProjectStudio> diff --git a/website/agenda/planung/templates/studio_timeslot_dates.html b/website/agenda/planung/templates/studio_timeslot_dates.html index 5cbdf17..528798a 100644 --- a/website/agenda/planung/templates/studio_timeslot_dates.html +++ b/website/agenda/planung/templates/studio_timeslot_dates.html @@ -1,14 +1,5 @@ -<!doctype html> +<html5> <html> -<head> - <script src="js/jquery.tablesorter.min.js"></script> - <script src="js/jquery.tablesorter.widgets.min.js"></script> - <script src="js/jquery.tablesorter.scroller.js"></script> - - <script> - var region='<TMPL_VAR loc.region>'; - </script> -</head> <body> <TMPL_VAR .loc.label_show_schedule> @@ -22,7 +13,7 @@ <th><TMPL_VAR .loc.label_studio></th> </tr> </thead> - <body> + <tbody> <TMPL_LOOP dates> <tr class="<TMPL_IF exclude>exclude</TMPL_IF>"> <td><TMPL_VAR start_weekday></td> @@ -32,9 +23,8 @@ <td><TMPL_VAR studio_name></td> </tr> </TMPL_LOOP> - </body> + </tbody> </table> </body> </html> - From 2506dfe4a2dcd38cf1b1801dab8d3ba26c8c3864 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 14 Dec 2018 21:04:52 +0100 Subject: [PATCH 046/391] fix get user settings on error --- lib/calcms/uac.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 297fa30..476f761 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -10,6 +10,7 @@ use db(); use template(); use project(); use studios(); +use user_settings(); use base 'Exporter'; our @EXPORT_OK = qw( From a0705d6f694bfd97223d7bd9f7159102bf900252 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 14 Dec 2018 21:10:14 +0100 Subject: [PATCH 047/391] update jquery --- website/agenda/js/jquery.min.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/website/agenda/js/jquery.min.js b/website/agenda/js/jquery.min.js index 5fd1339..35a1dfb 100644 --- a/website/agenda/js/jquery.min.js +++ b/website/agenda/js/jquery.min.js @@ -1,6 +1,3 @@ -/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; -}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return c=d.getElementsByTagName("body")[0],c&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),V=["Top","Right","Bottom","Left"],W=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function X(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&U.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var Y=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)Y(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/<tbody/i;function ia(a){Z.test(a.type)&&(a.defaultChecked=a.checked)}function ja(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ca(b),q=[],r=0;o>r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?"<table>"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ma.test(f)?this.mouseHooks:la.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ra()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ra()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&("undefined"==typeof a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?pa:qa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:qa,isPropagationStopped:qa,isImmediatePropagationStopped:qa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=pa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=pa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=pa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){return ka.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ka.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!ka.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return sa(this,a,b,c,d)},one:function(a,b,c,d){return sa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=qa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ta=/ jQuery\d+="(?:null|\d+)"/g,ua=new RegExp("<(?:"+ba+")[\\s/>]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/<script|<style|<link/i,xa=/checked\s*(?:[^=]|=\s*.checked.)/i,ya=/^true\/(.*)/,za=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");if(j.style){j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}});function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}}}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&W(d)&&(f[g]=n._data(d,"olddisplay",Ma(d.nodeName)))):(e=W(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function db(a,b,c){var d=Ya.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function eb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+V[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+V[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+V[f]+"Width",!0,e))):(g+=n.css(a,"padding"+V[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+V[f]+"Width",!0,e)));return g}function fb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Sa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Oa.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+eb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Sa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=U.exec(c))&&e[1]&&(c=X(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Sa(a,b,d)),"normal"===f&&b in $a&&(f=$a[b]),""===c||c?(e=parseFloat(f),c===!0||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Xa.test(n.css(a,"display"))&&0===a.offsetWidth?Pa(a,Za,function(){return fb(a,b,d)}):fb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return db(a,c,d?eb(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Wa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){return b?Pa(a,{display:"inline-block"},Sa,[a,"marginRight"]):void 0}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{ -marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px":void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ob(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&W(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k="none"===j?n._data(a,"olddisplay")||Ma(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==Ma(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],jb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?Ma(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=nb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function pb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function qb(a,b,c){var d,e,f=0,g=qb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=hb||lb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:hb||lb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(pb(k,j.opts.specialEasing);g>f;f++)if(d=qb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,nb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(qb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return X(c.elem,a,U.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],qb.tweeners[c]=qb.tweeners[c]||[],qb.tweeners[c].unshift(b)},prefilters:[ob],prefilter:function(a,b){b?qb.prefilters.unshift(a):qb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(W).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=qb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&kb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(mb(b,!0),a,d,e)}}),n.each({slideDown:mb("show"),slideUp:mb("hide"),slideToggle:mb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(hb=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),hb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ib||(ib=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(ib),ib=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},vb.id=vb.name=vb.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(2>u))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&300>b||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({ -padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n}); +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w}); From add6c2ab1f282157c6a276a5cf14f7580ad782b4 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 14 Dec 2018 21:11:00 +0100 Subject: [PATCH 048/391] simplify detailed playout view in calendar --- website/agenda/planung/css/calendar.css | 7 +-- website/agenda/planung/js/calendar.js | 68 +++++++++++-------------- 2 files changed, 33 insertions(+), 42 deletions(-) diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index 8577ed6..eef7b7a 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -422,11 +422,12 @@ div#toolbar input.search{ } #calendar td div.play:hover { - min-height: 180px!important; + min-height: 250px!important; min-width: 420px!important; z-index:99; box-shadow:0 2px 5px 0 rgba(0,0,0,.12),0 2px 10px 0 rgba(0,0,0,.09); border-radius:3px; + cursor:pointer; } #calendar td div.play:hover img{ @@ -442,10 +443,6 @@ div#toolbar input.search{ display:none; } -#calendar td div.play img:hover{ - cursor:pointer; -} - #calendar div.ui-draggable-dragging{ z-index:99; cursor:move; diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index ab7f1eb..b4dee3b 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -566,10 +566,11 @@ function createId(prefix) { return prefix+'_'+s4() + s4(); } -function showRmsPlot(id){ +function showRmsPlot(id, project_id, studio_id, start){ + console.log(id+" "+project_id+" "+studio_id+" "+start) $('#'+id).dialog({ width:940, - height:400, + height:560, open: function () { $(this).scrollTop(0); } @@ -584,14 +585,8 @@ function deleteFromPlayout(id, projectId, studioId, start){ url+='&studio_id='+escape(studioId); url+='&start_date='+escape(start); //console.log(url); - $('#'+id).dialog({ - width:940, - height:440, - open: function () { - $(this).scrollTop(0); - $(this).load(url); - } - }); + //console.log(id) + $('#'+id).load(url); return false; } @@ -602,44 +597,43 @@ function quoteAttr(attr){ function initRmsPlot(){ $( "#calendar div.play" ).hover( function() { - var plot=$(this).attr("rms"); - - var id=$(this).attr("id"); - var field=id.split('_'); - var classname =field.shift(); - var project_id =field.shift(); - var studio_id =field.shift(); - var start=$(this).attr("start") - var html=''; + var plot = $(this).attr("rms"); + var id = $(this).attr("id"); + var field = id.split('_'); + var classname = field.shift(); + var project_id = field.shift(); + var studio_id = field.shift(); + var start = $(this).attr("start") if (project_id==null) return; if (studio_id==null) return; if (start==null) return; + if ( !$(this).hasClass("clickHandler") ){ + $(this).addClass("clickHandler"); + $(this).click( function(event){ + event.stopImmediatePropagation(); + showRmsPlot( id , project_id , studio_id , start ); + }); + } + if ( (!$(this).hasClass("rms_image")) && (plot!=null)){ $(this).addClass("rms_image"); - var id=createId("rms_img"); + var content = $(this).html(); + var id = createId("rms_img"); var url = '/agenda_files/playout/'+plot; - var handler = 'onclick="showRmsPlot('+quoteAttr(id)+')"'; - var img = '<img src="'+url+'" '+handler+'></img>'; - - html += '<button '+handler+'>details</button>'; - html += img; - html += '<div id="'+id+'" class="rms_detail" style="display:none">'; - html += '<div class="image">'+img+'</div>'; - html += '<div class="text">'+$(this).html()+'</div>'; - html += "</div>"; - } - - if (!$(this).hasClass("deleteHandler")){ - $(this).addClass("deleteHandler"); + var img = '<img src="'+url+'" ></img>'; var deleteHandler = 'onclick="deleteFromPlayout(' + quoteAttr(id) + ", " + quoteAttr(project_id) + ", " + quoteAttr(studio_id) + ", "+ quoteAttr(start) + ')"'; - if (start!=null) html += '<button '+deleteHandler+'>delete</button>'; - } - $(this).append(html); - + var details=''; + details += '<div id="'+id+'" class="rms_detail" style="display:none">'; + details += '<div class="image">'+img+'</div>'; + details += '<div class="text">'+content+'</div>'; + if (start!=null) details += '<button '+deleteHandler+'>delete</button>'; + details += "</div>"; + $(this).append(img + details); + } $(this).find('img').each(function(){ $(this).show(); From 101c192bd3afe44db156f28dcc505d35c2c56765 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 14 Dec 2018 21:12:49 +0100 Subject: [PATCH 049/391] replace fileUploader with own implementation --- website/agenda/planung/imageUpload.cgi | 32 +-- website/agenda/planung/js/fileUploader.js | 237 ------------------ website/agenda/planung/js/image.js | 111 ++------ website/agenda/planung/js/image_upload.js | 104 ++++---- website/agenda/planung/templates/image.html | 29 +-- .../agenda/planung/templates/imageUpload.html | 65 +++-- .../agenda/planung/templates/image_edit.html | 2 + 7 files changed, 121 insertions(+), 459 deletions(-) delete mode 100644 website/agenda/planung/js/fileUploader.js diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi index 4a12a30..402fb95 100755 --- a/website/agenda/planung/imageUpload.cgi +++ b/website/agenda/planung/imageUpload.cgi @@ -21,6 +21,7 @@ use uac(); use studios(); use template(); use images(); +use localization(); binmode STDOUT, ":utf8"; @@ -121,8 +122,9 @@ if ( $error ne '' ) { $params = update_database( $config, $params, $file_info, $user ) if $params->{error} eq ''; } -print STDERR "upload error: $params->{error}\n" if $params->{error} ne ''; +print STDERR "upload error: $params->{error}\n" if $params->{error} ; my $out = ''; +$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'image' } ); template::process( $config, 'print', $params->{template}, $params ); print $cgi->cgi_error() if ( defined $cgi ) && ( defined $cgi->cgi_error() ); @@ -133,26 +135,6 @@ $params->{filename} ||= ''; $params->{image_id} ||= ''; $params->{name} ||= ''; -if ( $params->{error} eq '' ) { - print qq{ - <div id="output">success</div> - <div id="message"> - $params->{action_result} - {{thumbs//$params->{filename}}} - <button onclick="selectThisImage('$params->{filename}')">assign to event</button> - </div> - <div id="upload_image_id">$params->{image_id}</div> - <div id="upload_image_filename">$params->{filename}</div> - <div id="upload_image_title">$params->{name}</div> - <div id="upload_image_link">{{thumbs//$params->{filename}}}</div> - - }; -} else { - print qq{ - <div id="output">failed</div> - <div id="message">$params->{error}</div> - }; -} sub upload_file { my $config = shift; @@ -388,6 +370,14 @@ sub check_params { $checked->{$attr} = $params->{$attr}; } } + + #checkboxes + for my $param ('public') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) { + $checked->{$param} = $1; + } + } return $checked; } + diff --git a/website/agenda/planung/js/fileUploader.js b/website/agenda/planung/js/fileUploader.js deleted file mode 100644 index c905f9c..0000000 --- a/website/agenda/planung/js/fileUploader.js +++ /dev/null @@ -1,237 +0,0 @@ -/* -* Class: fileUploader -* Use: Upload multiple files the jQuery way -* Author: John Lanz (http://pixelcone.com) -* Version: 1.0 -*/ - -(function($) { - $.fileUploader = {version: '1.1'}; - $.fn.fileUploader = function(config){ - - config = $.extend({}, { - limit: '1', - imageLoader: '', - buttonUpload: '#pxUpload', - buttonClear: '#pxClear', - successOutput: 'File Uploaded', - errorOutput: 'Failed', - inputName: 'image', - inputSize: 30, - allowedExtension: 'jpg|jpeg|gif|png', - callback: function() {}, - url: window.location.href - }, config); - - var itr = 0; //number of files to uploaded - var $limit = 1; - - //public function - $.fileUploader.change = function(e){ - var fname = px.validateFile( $(e).val() ); - if (fname == -1){ - alert ("Invalid file!"); - $(e).val(""); - return false; - } - $('#px_button input').removeAttr("disabled"); - var imageLoader = ''; - if ($.trim(config.imageLoader) != ''){ - imageLoader = '<img src="'+ config.imageLoader +'" alt="uploader" />'; - } - var display = '<div class="uploadData" id="pxupload'+ itr +'_text" title="pxupload'+ itr +'">' + - '<div class="close"> </div>' + - '<span class="fname">'+ fname +'</span>' + - '<span class="loader" style="display:none">'+ imageLoader +'</span>' + - '<div class="status"></div>'+ - '</div>'; - - $("#px_display").append(display); - if (config.limit == '' || $limit < config.limit) { - px.appendForm(); - } - $limit++; - $(e).hide(); - //px.upload(); - - } - - // To exactly match $("a.foo").live("click", fn), for example, you can write $(document).on("click", "a.foo", fn). - // $(".close").live("click", function(){ - $(document).on("click", ".close", function(){ - $limit--; - if ($limit == config.limit) { - px.appendForm(); - } - var id = "#" + $(this).parent().attr("title"); - $(id+"_frame").remove(); - $(id).remove(); - $(id+"_text").fadeOut("slow",function(){ - $(this).remove(); - }); - return false; - }); - - //$(config.buttonClear).click(function(){ - $(document).on("click", "config.buttonClear", function(){ - $("#px_display").fadeOut("slow",function(){ - $("#px_display").html(""); - $("#pxupload_form").html(""); - itr = 0; - $limit = 1; - px.appendForm(); - $('#px_button input').attr("disabled","disabled"); - $(this).show(); - }); - }); - - //private function - var px = { - init: function(e){ - var form = $(e).parents('form'); - px.formAction = $(form).attr('action'); - - $(form).before(' \ - <div id="pxupload_form"></div> \ - <div id="px_display"></div> \ - <div id="px_button"></div> \ - '); - $(config.buttonUpload+','+config.buttonClear).appendTo('#px_button'); - if ( $(e).attr('name') != '' ){ - config.inputName = $(e).attr('name'); - } - if ( $(e).attr('size') != '' ){ - config.inputSize = $(e).attr('size'); - } - $(form).hide(); - $(config.buttonUpload).click(function(){ - px.upload() - }) - - this.appendForm(); - }, - appendForm: function(){ - itr++; - var formId = "pxupload" + itr; - var iframeId = "pxupload" + itr + "_frame"; - var inputId = "pxupload" + itr + "_input"; - var contents = '' - contents += '<form method="post" id="'+ formId +'" action="'+ px.formAction +'" enctype="multipart/form-data" target="'+ iframeId +'">' - - if (studio_id != null) contents+='<input type="hidden" name="studio_id" value="'+studio_id+'">'; - if (project_id != null) contents+='<input type="hidden" name="project_id" value="'+project_id+'">'; - - contents += '<label>'+loc['label_name']+'</label><br>' - contents += '<input name="name" /><br />' - - contents += '<label>'+loc['label_description']+'</label><br>' - contents += '<textarea name="description" rows="3" cols="40"></textarea><br />' - - contents += '<label>'+loc['label_author']+'/'+loc['label_licence']+'</label><br>' - contents += '<input name="licence" /><br />' - - contents += '<label>'+loc['label_public']+'</label><br>' - contents += '<input type="checkbox" name="public"><br />' - - contents += '<label>'+loc['label_file']+'</label><br>' - contents += '<input type="file" name="'+ config.inputName +'" id="'+ inputId +'" class="pxupload" size="'+ config.inputSize +'" onchange="$.fileUploader.change(this);" />' - contents += '<input name="action" value="upload" type="hidden"/>' - contents += '</form>' - - contents += '<iframe id="'+ iframeId +'" name="'+ iframeId +'" src="about:blank" style="display:none"></iframe>'; - - $("#pxupload_form").append( contents ); - }, - validateFile: function(file) { - if (file.indexOf('/') > -1){ - file = file.substring(file.lastIndexOf('/') + 1); - }else if (file.indexOf('\\') > -1){ - file = file.substring(file.lastIndexOf('\\') + 1); - } - //var extensions = /(.jpg|.jpeg|.gif|.png)$/i; - var extensions = new RegExp(config.allowedExtension + '$', 'i'); - if (extensions.test(file)){ - return file; - } else { - return -1; - } - }, - - upload: function(){ - if (itr > 0){ - $('#px_button input').attr("disabled","disabled"); - $("#pxupload_form form").each(function(){ - e = $(this); - var id = "#" + $(e).attr("id"); - var input_id = id + "_input"; - var input_val = $(input_id).val(); - if (input_val != ""){ - $(id + "_text .status").text("Uploading..."); - $(id + "_text").css("background-color", "#FFF0E1"); - $(id + "_text .loader").show(); - $(id + "_text .close").hide(); - - $(id).submit(); - $(id +"_frame").load(function(){ - $(id + "_text .loader").hide(); - up_output = $(this).contents().find("#output").html(); - var success=0; - if (up_output == "success"){ - success=1; - $(id + "_text").css("background-color", "#F0F8FF"); - up_output = config.successOutput; - px.redirect(); - }else{ - $(id + "_text").css("background-color", "#FF0000"); - up_output = config.errorOutput; - } - - //custom code - up_output += '<br />' + $(this).contents().find("#message").html(); - //alert($(this).contents()) - //console.log(JSON.stringify($(this).contents())); - $(id + "_text .status").html(up_output); - - if(success==1){ - var image_id=$(this).contents().find("#upload_image_id").html(); - var filename=$(this).contents().find("#upload_image_filename").html(); - var title =$(this).contents().find("#upload_image_title").html(); - var quote="'"; - - //remove existing image from list - $('#imageList div.images #img_'+image_id).remove(); - //add image to list - $('#imageList div.images').prepend( - '<div id="img_'+image_id+'" class="image" ' - +' onclick="imageAction('+quote+filename+quote+');return false;" ' - +' title="'+title+'" ' - +' style="background-image:url('+quote+'/agenda_files/media/thumbs/'+filename+quote+')"' - +'>' - +' <div class="label">'+title+'</div>' - +'</div>' - ); - } - //end of custom code - $(e).remove(); - $(config.buttonClear).removeAttr("disabled"); - config.callback($(this)); - }); - } - }); - } - }, - - redirect: function(){ - //window.location.replace(config.url) - //$('#pxupload_form').append('<form id="redirect" method="GET" action="'+config.url+'" />'); - //$('#redirect').submit(); - } - - - } - - px.init(this); - - return this; - } -})(jQuery); diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index dc37966..7502b3e 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -202,102 +202,27 @@ function assignImage(filename, target, project_id, studio_id, series_id, event_i $(document).ready( function(){ + + $('div.images').on( 'click', 'div.image', function(){ + var elem = $(this); + console.log(elem) + var filename = elem.attr("filename"); + elem = elem.parent(); + console.log(elem) + var target = elem.attr("target"); + var projectId = elem.attr("projectId"); + var studioId = elem.attr("studioId"); + var seriesId = elem.attr("seriesId"); + var eventId = elem.attr("eventId"); + var pid = elem.attr("pid"); + + updateImageEditor($(this), filename, target, projectId, studioId, seriesId, eventId, pid); + return false; + }); + if ( window.location.href.indexOf("&filename=") > 0) setActiveImage(); } ); -/* -function hideContent(){ - $('.editor').hide(); - - $(window).resize(function () { - $('.ui-dialog').css({ - 'width': $(window).width() - windowOffsetX, - 'height': $(window).height() - windowOffsetY, - 'position': 'absolute', - 'left': 0, - 'top': 0, - modal: true - }); - - var imagesPos= $('div.images').position(); - var height = ( $(window).height() - imagesPos.top ); - if(height<64) height = 64; - console.log("windowHeight="+$(window).height()+" div.images.pos.top="+imagesPos.top) - $('div.images').css("height", height +"px"); - - }).resize(); - - return false; -} - -function showContent(){ - $('.editor').show(); - $('#selectImage').remove(); - return false; -} - - -//select image load into selectImage box -function selectImageOld(project_id, studio_id, imageId, searchValue, imageUrl, series_id){ - selectImageId = imageId; - searchValue = searchValue.replace(/[^a-zA-Z0-9]/g,'%'); - - var url="image.cgi?search="+encodeURIComponent(searchValue)+'&project_id='+project_id+'&studio_id='+studio_id; - - if( (series_id!=null) && (series_id != '') ){ - url+='&series_id='+series_id; - } - - if(imageUrl!=null){ - var filename=imageUrl.split('%2F').pop(); - url+='&filename='+filename; - } - - var x = $(window).width() - windowOffsetX; - var y = $(window).height() - windowOffsetY; - console.log("selectImage(), load url="+url); - - - $('#selectImage').remove(); - $('body').append('<div id="selectImage"></div>'); - - $('#selectImage').load( - url, - function(){ - hideContent(); - $('#selectImage').dialog({ - appendTo: "#content", - title: "select image", - top: 0, - left: 0, - width: x, - height: y, - close: function( event, ui ) { - showContent(); - $('#selectImage').remove(); - } - }); - updateImageEditor(filename); - } - ); - - return false; -} - -// set editor image and image url to selected image -function selectThisImage(filename){ - $('#'+selectImageId).val(filename); - - var url = 'showImage.cgi?project_id='+project_id+'&studio_id='+studio_id+'&filename=' + filename; - console.log("select image "+url); - $('#imagePreview').prop('src',url); - - showContent(); - return false; -} - -*/ - diff --git a/website/agenda/planung/js/image_upload.js b/website/agenda/planung/js/image_upload.js index 203c8f8..4ecdbe7 100644 --- a/website/agenda/planung/js/image_upload.js +++ b/website/agenda/planung/js/image_upload.js @@ -1,67 +1,55 @@ -// init upload function initUploadDialog(){ - //console.log("init upload dialog") - if(!$('#uploader').hasClass("init")){ - $('#uploader').fileUploader(); - $('#uploader').addClass("init"); - //remove multiple buttons - var c=0; - $('#img_upload #px_button').each( - function(){ - if (c>0){ - $(this).remove(); - } - c++; - } - ); - } - return false; + var url='imageUpload.cgi?project_id='+ getProjectId()+"&studio_id="+getStudioId(); + updateContainer("image-tabs-upload", url); } -// prepare for new init -function closeImageUpload(){ - $('#uploader').removeClass("init"); - $('#pxupload_form').remove(); - $('#pxupload1_frame').remove(); - $('#px_display').remove(); -} +function uploadImage(){ + console.log("upload") + var form=$("#img_upload"); + var fd = new FormData(form[0]); + var rq = $.ajax({ + url: 'imageUpload.cgi', + type: 'POST', + data: fd, + cache: false, + contentType: false, + processData: false + }); + rq.done( function(data){ + $("#image-tabs-upload").html(data); -function insertPicture(name, description, filename) { - try { - markup='{{ thumbs//'+filename; - if (description !=''){ - markup+=' | '+description; - }else{ - if (name !='') markup+=' | '+name - } - markup+=' }}' - markup+="\n" - parent.$.markItUp( { replaceWith:markup } ); - parent.$('#images').dialog("close"); - } catch(e) { - alert("No markItUp! Editor found"); - } -} + var image_id = $("#upload_image_id").html(); + var filename = $("#upload_image_filename").html(); + var title = $("#upload_image_title").html(); + var quote = "'"; + + //remove existing image from list + $('#imageList div.images #img_'+image_id).remove(); -function image_upload_dialog(){ - $('#img_upload').dialog({ - title:"image upload", - width:600, - height:320 - }); - return false; -} + var url='showImage.cgi?project_id='+getProjectId()+'&studioId='+getStudioId()+'&type=icon&filename='+filename; -function image_upload_callback(result){ - result.contents().find("#message").html(); - var output = '<br />' + $(this).contents().find("#message").html(); - $(id + "_text .status").html(output); -} + var html = '<div'; + html += ' id="img_' + image_id + '"'; + html += ' class="image" '; + html += ' title="' + title + '" '; + html += ' style="background-image:url(' + url + ')"'; + html += ' filename="' + filename + '"'; + html += '>'; + html += ' <div class="label">'+title+'</div>'; + html += '</div>'; -$(document).ready( - function() { - //$('#uploader').fileUploader(); - } -) + //add image to list + $('#imageList div.images').prepend(html); + + console.log("done") + return false; + }); + + rq.fail( function(){ + console.log("Fail") + }); + + return false; +}; diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index b1afb94..1c12f3a 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -1,8 +1,5 @@ <link type="text/css" href="css/image_manager.css" rel="stylesheet"/> -<link type="text/css" href="css/fileUploader.css" rel="stylesheet"/> - -<script src="js/fileUploader.js" type="text/javascript"></script> <script src="js/image.js" type="text/javascript"></script> <TMPL_IF .allow.create_image> <script src="js/image_upload.js" type="text/javascript"></script> @@ -31,8 +28,6 @@ } </TMPL_IF> - // show images by default - closeImageUpload(); $('#imageList').show(); } }); @@ -68,15 +63,6 @@ <!-- upload images --> <TMPL_IF .allow.create_image> <div id="image-tabs-upload"> - <div id="img_upload"> - <div id="img_upload_result"></div> - <form id="image_upload" method="post" action="imageUpload.cgi" enctype="multipart/form-data"> - <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> - <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> - <input id="uploader" type="file" name="image" value="<TMPL_VAR image escape=0>" accept="text/*" maxlength="1000000" size="10"/> </td> - <button type="submit" name="action" value="upload" id="pxUpload" ><TMPL_VAR .loc.button_upload></button> - </form> - </div> </div> </TMPL_IF> </div> @@ -96,13 +82,21 @@ <div style="clear:both;display: flex; flex-direction: row;"> - <div class="images" style="overflow-y:scroll"> + <div class="images" + style="overflow-y:scroll" + target="<TMPL_VAR .target>" + projectId="<TMPL_VAR .project_id>" + studioId="<TMPL_VAR .studio_id>" + seriesId="<TMPL_VAR .series_id>" + eventId="<TMPL_VAR .event_id>" + pid="<TMPL_VAR .pid>" + > <TMPL_LOOP images> <div class="image" id="img_<TMPL_VAR id>" style="background-image:url('showImage.cgi?project_id=<TMPL_VAR project_id>&studioId=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" title="<TMPL_VAR description>" - onclick="updateImageEditor(this, '<TMPL_VAR filename>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false;" + filename="<TMPL_VAR filename>" > <div class="label"><TMPL_VAR name></div> </div> @@ -117,7 +111,8 @@ </TMPL_IF> </main> +</center> </body> + </html> - diff --git a/website/agenda/planung/templates/imageUpload.html b/website/agenda/planung/templates/imageUpload.html index 5ae2acf..5e7af07 100644 --- a/website/agenda/planung/templates/imageUpload.html +++ b/website/agenda/planung/templates/imageUpload.html @@ -1,30 +1,42 @@ <div> - <form name="img_upload" id="img_upload" method="post" action="imageUpload.cgi" enctype="multipart/form-data"> + <TMPL_IF action> + <TMPL_IF error> + <div class="error">failed</div> + <div id="message"><TMPL_VAR error></div> + <TMPL_ELSE> + <div class="ok">success</div> + <div style="display:none"> + <div id="upload_image_id"><TMPL_VAR image_id></div> + <div id="upload_image_filename"><TMPL_VAR filename></div> + <div id="upload_image_title"><TMPL_VAR title></div> + <div id="upload_image_link">{{thumbs//<TMPL_VAR filename>}}</div> + </div> + </TMPL_IF> + </TMPL_IF> + + <form name="img_upload" id="img_upload" method="POST" action="imageUpload.cgi" enctype="multipart/form-data"> + <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> + <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> + <input type="hidden" name="action" value="upload"> <table> <tr> <td> <TMPL_IF filename> - <a href="<TMPL_VAR local_media_url>images/<TMPL_VAR filename escape=0>" > - <img src="<TMPL_VAR local_media_url>thumbs/<TMPL_VAR filename escape=0>" /> - <img src="<TMPL_VAR local_media_url>icons/<TMPL_VAR filename escape=0>" /> - </a> + <div class="image" style="background-image:url('showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" > + </div> </TMPL_IF> </td> <td> <TMPL_IF filename> - <input value="{{thumbs/<TMPL_VAR filename escape=0>|<TMPL_VAR name escape=0>}}" size="40" /> + <input value="{{thumbs/<TMPL_VAR filename escape=0>|<TMPL_VAR name escape=0>}}" size="50" /> </TMPL_IF> </td> </tr> - <tr> - <td>Datei</td> - <td><input type="file" name="image" accept="image/*" maxlength="2000000" size="10"/> </td> - </tr> <tr> <td>Name: </td> - <td><input value="<TMPL_VAR name escape=0>" name="name" size="40" maxlength="100"> </td> + <td><input value="<TMPL_VAR name escape=0>" name="name" size="40" maxlength="100" required> </td> </tr> <tr> <td>Beschreibung: </td> @@ -32,15 +44,20 @@ </tr> <tr> <td><label><TMPL_VAR .loc.label_author>/<TMPL_VAR .loc.label_licence></label></td> - <td><input name="licence" value="<TMPL_VAR licence>" placeholder="<TMPL_VAR .loc.label_licence_missing>"/></td> + <td><input name="licence" value="<TMPL_VAR licence>" placeholder="<TMPL_VAR .loc.label_licence_missing>" required /></td> </tr> <tr> <td><label><TMPL_VAR .loc.label_public></label></td> - <td><input type="checkbox" name="public"/></td> + <td><input type="checkbox" name="public" <TMPL_IF public>checked="checked" value="1"<TMPL_ELSE>value="0"</TMPL_IF> /></td> + </tr> + <tr> + <td>Datei</td> + <td><input type="file" name="image" accept="image/*" maxlength="2000000" size="10" required/> </td> </tr> <tr> - <td colspan="2" style="text-align:right"> - <input type="submit" name="action" value="Hochladen!" /> + <td></td> + <td> + <button onclick="uploadImage();return false">Hochladen</button> </td> </tr> </table> @@ -49,21 +66,3 @@ </body> </html> -<TMPL_IF action> - <TMPL_IF error> - <div id="output">failed</div> - <div id="message"><TMPL_VAR error></div> - <TMPL_ELSE> - <div id="output">success</div> - <div id="message"> - <TMPL_VAR action_result> - {{thumbs//<TMPL_VAR filename>}} - <button onclick="selectThisImage('<TMPL_VAR filename>')">assign to event</button> - </div> - <div id="upload_image_id"><TMPL_VAR image_id></div> - <div id="upload_image_filename"><TMPL_VAR filename></div> - <div id="upload_image_title"><TMPL_VAR title></div> - <div id="upload_image_link">{{thumbs//<TMPL_VAR filename>}}</div> - </TMPL_IF> -</TMPL_IF> - diff --git a/website/agenda/planung/templates/image_edit.html b/website/agenda/planung/templates/image_edit.html index 90568e7..7f7de82 100644 --- a/website/agenda/planung/templates/image_edit.html +++ b/website/agenda/planung/templates/image_edit.html @@ -1,5 +1,7 @@ +<!-- <link type="text/css" href="css/admin.css" rel="stylesheet"/> <link type="text/css" href="css/image_manager.css" rel="stylesheet"/> +--> <script> function updateCheckBox(selector, value){ From 9152289728751c86f4038d3f3f392bccbffb2a10 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 14 Dec 2018 21:15:41 +0100 Subject: [PATCH 050/391] minor fixes and typos --- website/agenda/planung/css/admin.css | 2 +- website/agenda/planung/pot/de/event.po | 2 +- website/agenda/planung/templates/default.html | 4 ++-- .../agenda/planung/templates/edit_series.html | 20 +++++++++---------- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index 123c152..ea9ffff 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -48,7 +48,7 @@ body #content{ } div{ - transition: background-color 0.5s linead; + transition: background-color 0.5s linear; } #selectImage #content{ diff --git a/website/agenda/planung/pot/de/event.po b/website/agenda/planung/pot/de/event.po index 413c65a..c0bfedc 100644 --- a/website/agenda/planung/pot/de/event.po +++ b/website/agenda/planung/pot/de/event.po @@ -143,7 +143,7 @@ msgid "label_select_event" msgstr "aktuelle Sendung mit" msgid "label_overwrite_event" -msgstr "Sendung überschreiben mit folgender Sendung" +msgstr "Sendung überschreiben mit " msgid "button_copy_event" msgstr "überschreiben" diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index 6a93291..1e1fe7f 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -2,9 +2,9 @@ <nav id="calcms_admin_menu"> -<div id="bars" class="mobile" onclick="handleBars();return false;"> <a><i class="fas fa-bars"></i> Menu</div> +<div id="bars" class="mobile" onclick="handleBars();return false;"> <a><i class="fas fa-bars"></i> Menu</a></div> -<div><a href="/"><i class="fas fa-rocket"></i> <TMPL_VAR .loc.preview></a></div> +<div><a href="/" ><i class="fas fa-rocket"></i> <TMPL_VAR .loc.preview></a></div> <TMPL_IF .allow.read_event> <div><a id="menu_calendar" href="calendar.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR studio_id>"><i class="fas fa-calendar-alt"></i> <TMPL_VAR .loc.calendar></a></div> diff --git a/website/agenda/planung/templates/edit_series.html b/website/agenda/planung/templates/edit_series.html index 5badca6..41ca759 100644 --- a/website/agenda/planung/templates/edit_series.html +++ b/website/agenda/planung/templates/edit_series.html @@ -58,13 +58,13 @@ </div> <div class="panel-header"> - <TMPL_IF has_single_events> - <TMPL_VAR .loc.single_events> <TMPL_IF title><TMPL_VAR title></TMPL_IF> - <TMPL_ELSE> - <TMPL_VAR .loc.title> - <TMPL_IF series_name> <TMPL_VAR series_name></TMPL_IF><TMPL_IF title> - <TMPL_VAR title></TMPL_IF> - </TMPL_IF> - </div> + <TMPL_IF has_single_events> + <TMPL_VAR .loc.single_events> <TMPL_IF title><TMPL_VAR title></TMPL_IF> + <TMPL_ELSE> + <TMPL_VAR .loc.title> + <TMPL_IF series_name> <TMPL_VAR series_name></TMPL_IF><TMPL_IF title> - <TMPL_VAR title></TMPL_IF> + </TMPL_IF> + </div> </div> @@ -450,8 +450,8 @@ </tr> <tr id="event_container_<TMPL_VAR event_id>" style="display:none"> <td colspan="5"> - <div id="event_details_<TMPL_VAR event_id>"> - </div> + <div id="event_details_<TMPL_VAR event_id>"> + </div> </td> </tr> @@ -601,8 +601,6 @@ </TMPL_IF> </TMPL_UNLESS> <!-- has single events--> - - <div id="selectImage"></div> <div class="label right"><TMPL_VAR .loc.modified> <TMPL_VAR .loc.at> <TMPL_VAR modified_at> <TMPL_VAR .loc.by> <TMPL_VAR modified_by>.</div> </main> From c38a1c33c03ea322c0518702e3c89a4a85a45e75 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Wed, 26 Dec 2018 21:36:25 +0100 Subject: [PATCH 051/391] show only published events at calendar view --- lib/calcms/calendar.pm | 3 ++- lib/calcms/events.pm | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/calcms/calendar.pm b/lib/calcms/calendar.pm index d5fcdb5..e6a4212 100644 --- a/lib/calcms/calendar.pm +++ b/lib/calcms/calendar.pm @@ -8,6 +8,7 @@ use Date::Calc(); use template(); use cache(); +use events(); use base 'Exporter'; our @EXPORT_OK = qw(init get_cached_or_render get render get_calendar_weeks configure_cache); @@ -203,7 +204,7 @@ sub get { my $woy_year = undef; for my $date (@$week) { - my ( $year, $month, $day ) = split( /\-/, $date ); + my ( $year, $month, $day ) = split( /\-/, $date, 3 ); my $weekday = 0; my $day_result = undef; diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 39b1d5d..6e0390f 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -1414,6 +1414,7 @@ sub get_by_date_range { $end = time::add_hours_to_datetime( $end, $day_starting_hour ); my $conditions = []; + push @$conditions, 'published = 1'; push @$conditions, 'start between ? and ?'; my $bind_values = [ $start, $end ]; @@ -1430,7 +1431,7 @@ sub get_by_date_range { where $conditions }; - #print STDERR Dumper($query); + #print STDERR Dumper($query) . Dumper($bind_values); my $events = db::get( $dbh, $query, $bind_values ); From 4e9db1cf4ff897236bc146298d28aa611da5bbef Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 13 Jan 2019 21:55:22 +0100 Subject: [PATCH 052/391] fix image upload parse project_id and studio_id --- website/agenda/planung/imageUpload.cgi | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi index 402fb95..2fa6a9e 100755 --- a/website/agenda/planung/imageUpload.cgi +++ b/website/agenda/planung/imageUpload.cgi @@ -43,10 +43,16 @@ my $error = ''; #get image from multiform before anything else if ( defined $r ) { - + #$cgi = new CGI(); + #Apache2::Request my $apr = Apache2::Request->new( $r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir ); + $params = { + studio_id => $apr->param('studio_id'), + project_id => $apr->param('project_id'), + }; + #copy params to hash my $body = $apr->body(); if ( defined $body ) { @@ -62,6 +68,7 @@ if ( defined $r ) { } else { $upload = $apr->upload('image') if ( defined $params->{image} ); } + print STDERR "apr\n"; } else { #CGI fallback @@ -71,7 +78,10 @@ if ( defined $r ) { $error = $cgi->cgi_error() || $error; my %params = $cgi->Vars(); $params = \%params; + print STDERR "fallback\n"; } + +print STDERR Dumper($params); print "Content-type:text/html; charset=UTF-8;\n\n"; my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); @@ -199,17 +209,24 @@ sub update_database { studio_id => $params->{studio_id}, licence => $params->{licence} }; + print STDERR Dumper($image); #connect $config->{access}->{write} = 1; my $dbh = db::connect($config); - my $entries = images::get( $config, { filename => $image->{filename} } ); + my $entries = images::get( $config, { + filename => $image->{filename}, + project_id => $image->{project_id} , + studio_id => $image->{studio_id} + } ); if ( ( defined $entries ) && ( scalar(@$entries) > 0 ) ) { + print STDERR "update image\n"; images::update( $dbh, $image ); my $entry = $entries->[0]; $params->{image_id} = $entry->{id}; } else { + print STDERR "insert image\n"; $image->{created_by} = $user; $params->{image_id} = images::insert( $dbh, $image ); } From 5a66cde01cf7027f312a95be41b46c5afc123a47 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 13 Jan 2019 21:56:04 +0100 Subject: [PATCH 053/391] reuse edit_image.js remove outdated code and insert code to update form field value for checkbox --- website/agenda/planung/js/edit_image.js | 69 ++++++------ website/agenda/planung/js/image.js | 2 +- .../agenda/planung/templates/imageUpload.html | 4 +- .../agenda/planung/templates/image_edit.html | 100 ------------------ 4 files changed, 34 insertions(+), 141 deletions(-) delete mode 100644 website/agenda/planung/templates/image_edit.html diff --git a/website/agenda/planung/js/edit_image.js b/website/agenda/planung/js/edit_image.js index f23ea97..525487c 100644 --- a/website/agenda/planung/js/edit_image.js +++ b/website/agenda/planung/js/edit_image.js @@ -1,45 +1,36 @@ -/* -function hideImageDetails(id,filename){ - try{$('#img_editor').dialog('close');}catch(e){} - - $("#"+id).load('image.cgi?show='+filename+'&template=image_single.html'); - return false; +function updateCheckBox(selector, value){ + $(selector).attr('value', value) + if (value==1){ + $(selector).prop( "checked", true ); + } else { + $(selector).prop( "checked", false ); + } } -function saveImage(id, filename) { - var url='image.cgi?save_image='+filename; - if (url!='') $.post( - url, - $("#save_img_"+id).serialize(), - function(data){ - hideImageDetails('img_'+id, filename); - - } - ); - return false; +function updatePublicCheckbox(elem){ + console.log(elem.prop('checked')) + if (elem.prop('checked')){ + console.log( 'set public' ); + updateCheckBox(elem, 1); + }else{ + console.log( 'unset public' ); + updateCheckBox(elem, 0); + } } -function deleteImage(id, filename) { - $("#"+id).load('image.cgi?delete_image='+filename); - hideImageDetails('img_'+id, filename); - $("#"+id).hide('drop'); - return false; -} -function showImageUrl(id){ - var el=document.getElementById(id); - var input_id=id+'_input'; - var text='<input id="'+input_id+'" value="{{thumbs/'+id+'|title}}" title="3fach-Klick zum Markieren!">'; - if (el.innerHTML==text){ - el.innerHTML=''; - }else{ - el.innerHTML=text; - var input=document.getElementById(input_id); - input.focus(); - input.select(); - input.createTextRange().execCommand("Copy"); - } - return false; -} +$(document).ready( + function(){ + var publicCheckbox=$("#img_editor input[name='public']"); + + updatePublicCheckbox( publicCheckbox ); + publicCheckbox.change( + function(){ + updatePublicCheckbox($(this)); + } + ) + console.log("image handler initialized"); + pageLeaveHandler(); + } +); -*/ diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index 7502b3e..d99d191 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -22,7 +22,7 @@ function setActiveImage(elem){ // open dialog to show or edit image properties function updateImageEditor(elem, filename, target, project_id, studio_id, series_id, event_id, pid){ var url='image.cgi?show='+filename; - url += '&template=image_edit.html'; + url += '&template=edit_image.html'; url += '&target=' + target; url += '&project_id='+project_id; url += '&studio_id='+studio_id; diff --git a/website/agenda/planung/templates/imageUpload.html b/website/agenda/planung/templates/imageUpload.html index 5e7af07..79d6c9b 100644 --- a/website/agenda/planung/templates/imageUpload.html +++ b/website/agenda/planung/templates/imageUpload.html @@ -1,4 +1,6 @@ - <div> +<script src="js/edit_image.js" type="text/javascript"></script> + + <div class="editor"> <TMPL_IF action> <TMPL_IF error> <div class="error">failed</div> diff --git a/website/agenda/planung/templates/image_edit.html b/website/agenda/planung/templates/image_edit.html deleted file mode 100644 index 7f7de82..0000000 --- a/website/agenda/planung/templates/image_edit.html +++ /dev/null @@ -1,100 +0,0 @@ -<!-- - <link type="text/css" href="css/admin.css" rel="stylesheet"/> - <link type="text/css" href="css/image_manager.css" rel="stylesheet"/> ---> - -<script> -function updateCheckBox(selector, value){ - $(selector).attr('value', value) - if (value==1){ - $(selector).prop( "checked", true ); - } else { - $(selector).prop( "checked", false ); - } -} - -function updatePublicCheckbox(elem){ - console.log(elem.prop('checked')) - if (elem.prop('checked')){ - console.log( 'set public' ); - updateCheckBox(elem, 1); - }else{ - console.log( 'unset public' ); - updateCheckBox(elem, 0); - } -} - - -$(document).ready( - function(){ - var publicCheckbox=$("#img_editor input[name='public']"); - - updatePublicCheckbox( publicCheckbox ); - publicCheckbox.change( - function(){ - updatePublicCheckbox($(this)); - } - ) - console.log("image handler initialized"); - } -); - -</script> - -<TMPL_IF no_results> -found no image -</TMPL_IF> - -<TMPL_LOOP images> -<TMPL_IF filename> -<div id="imageEditor"> - <button onclick="assignImage('<TMPL_VAR filename escape=0>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false"><TMPL_VAR .loc.select_image></button/> - - <div class="panel-body"> - - <form id="save_img_<TMPL_VAR id>" - method="post" - action="image.cgi" - onsubmit="saveImage('<TMPL_VAR id>','<TMPL_VAR filename>');return false;" - > - - <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> - <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> - - <label><TMPL_VAR .loc.label_name></label><br> - <input value="<TMPL_VAR name escape=0>" name="update_name" class="field" placeholder="<TMPL_VAR .loc.label_name>"><br> - - <label><TMPL_VAR .loc.label_description></label><br> - <textarea class="field" name="update_description" cols="50" rows=5 placeholder="<TMPL_VAR .loc.label_description>"><TMPL_VAR description escape=0></textarea><br> - - <label><TMPL_VAR .loc.label_author>/<TMPL_VAR .loc.label_licence></label><br> - <input name="licence" value="<TMPL_VAR licence>" class="field<TMPL_IF missing_licence> error</TMPL_IF>" placeholder="<TMPL_VAR .loc.label_licence_missing>"/><br> - - <label><TMPL_VAR .loc.label_public></label> - <input type="checkbox" name="public" <TMPL_IF public>checked="checked" value="1"<TMPL_ELSE>value="0"</TMPL_IF> /><br> - - <TMPL_IF name="update_image"> - <input type="hidden" name="save_image" value="<TMPL_VAR filename escape=0>" /> - <button onclick="this.submit"><TMPL_VAR .loc.button_save></button/> - </TMPL_IF> - - <TMPL_IF name="delete_image"> - <button onclick="askDeleteImage('img_<TMPL_VAR id escape=0>','<TMPL_VAR filename escape=0>');return false;"><TMPL_VAR .loc.button_delete></button> - </TMPL_IF> - - <div id="status" ></div> - <TMPL_VAR .loc.label_created_at> <TMPL_VAR created_at> <TMPL_VAR .loc.label_created_by> <TMPL_VAR created_by><br> - <TMPL_VAR .loc.label_modified_at> <TMPL_VAR modified_at> <TMPL_VAR .loc.label_modified_by> <TMPL_VAR modified_by><br> - <TMPL_VAR .loc.label_link>: {{<TMPL_VAR filename escape=0>|<TMPL_VAR name>}}<br> - - </form> - - </div> -</div> -</TMPL_IF> -</TMPL_LOOP> - -</main> -</body> -</html> - From 8776fc16522d0fc863984b387542e58b6d03c38a Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 13 Jan 2019 21:58:13 +0100 Subject: [PATCH 054/391] add page leave handler on image editor --- website/agenda/planung/js/image_upload.js | 2 +- .../agenda/planung/js/page_leave_handler.js | 14 ++++- .../agenda/planung/templates/edit_image.html | 61 +++++++++++++++++++ website/agenda/planung/templates/image.html | 6 +- 4 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 website/agenda/planung/templates/edit_image.html diff --git a/website/agenda/planung/js/image_upload.js b/website/agenda/planung/js/image_upload.js index 4ecdbe7..86e2dca 100644 --- a/website/agenda/planung/js/image_upload.js +++ b/website/agenda/planung/js/image_upload.js @@ -1,6 +1,6 @@ function initUploadDialog(){ var url='imageUpload.cgi?project_id='+ getProjectId()+"&studio_id="+getStudioId(); - updateContainer("image-tabs-upload", url); + updateContainer("image-tabs-upload", url, pageLeaveHandler); } function uploadImage(){ diff --git a/website/agenda/planung/js/page_leave_handler.js b/website/agenda/planung/js/page_leave_handler.js index 75b3c07..a426c14 100644 --- a/website/agenda/planung/js/page_leave_handler.js +++ b/website/agenda/planung/js/page_leave_handler.js @@ -2,8 +2,15 @@ var pageHasChangedCounter=0; var pageIsLoaded=0; function pageHasChanged(){ + console.log("pageHasChanged="+pageHasChangedCounter) if (pageIsLoaded==0) return; pageHasChangedCounter++; + console.log("pageHasChanged="+pageHasChangedCounter) +} + +function confirmPageLeave(){ + if(pageHasChangedCounter==0) return null; + return "Unsaved changed! Continue?"; } function pageLeaveHandler(){ @@ -12,14 +19,17 @@ function pageLeaveHandler(){ $('div.editor select' ).change(function(){pageHasChanged()}); window.onbeforeunload = function() { - if(pageHasChangedCounter==0)return null; - return "Unsaved changed! Continue?"; + return confirmPageLeave(); }; + //$(window).unload(function(){}); pageIsLoaded=1; + console.log("pageLeaveHandler=initialized") + } function leavePage(){ pageHasChangedCounter=0; + console.log("leavePage") return 1; } diff --git a/website/agenda/planung/templates/edit_image.html b/website/agenda/planung/templates/edit_image.html new file mode 100644 index 0000000..38f42ac --- /dev/null +++ b/website/agenda/planung/templates/edit_image.html @@ -0,0 +1,61 @@ + +<script src="js/edit_image.js" type="text/javascript"></script> +<script src="js/page_leave_handler.js" type="text/javascript"></script> + +<TMPL_IF no_results> +found no image +</TMPL_IF> + +<TMPL_LOOP images> +<TMPL_IF filename> +<div id="imageEditor" class="editor"> + <button onclick="assignImage('<TMPL_VAR filename escape=0>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false"><TMPL_VAR .loc.select_image></button/> + + <div class="panel-body"> + + <form id="save_img_<TMPL_VAR id>" + method="post" + action="image.cgi" + onsubmit="saveImage('<TMPL_VAR id>','<TMPL_VAR filename>');return false;" + > + + <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> + <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> + + <label><TMPL_VAR .loc.label_name></label><br> + <input value="<TMPL_VAR name escape=0>" name="update_name" class="field" placeholder="<TMPL_VAR .loc.label_name>"><br> + + <label><TMPL_VAR .loc.label_description></label><br> + <textarea class="field" name="update_description" cols="50" rows=5 placeholder="<TMPL_VAR .loc.label_description>"><TMPL_VAR description escape=0></textarea><br> + + <label><TMPL_VAR .loc.label_author>/<TMPL_VAR .loc.label_licence></label><br> + <input name="licence" value="<TMPL_VAR licence>" class="field<TMPL_IF missing_licence> error</TMPL_IF>" placeholder="<TMPL_VAR .loc.label_licence_missing>"/><br> + + <label><TMPL_VAR .loc.label_public></label> + <input type="checkbox" name="public" <TMPL_IF public>checked="checked" value="1"<TMPL_ELSE>value="0"</TMPL_IF> /><br> + + <TMPL_IF name="update_image"> + <input type="hidden" name="save_image" value="<TMPL_VAR filename escape=0>" /> + <button onclick="this.submit"><TMPL_VAR .loc.button_save></button/> + </TMPL_IF> + + <TMPL_IF name="delete_image"> + <button onclick="askDeleteImage('img_<TMPL_VAR id escape=0>','<TMPL_VAR filename escape=0>');return false;"><TMPL_VAR .loc.button_delete></button> + </TMPL_IF> + + <div id="status" ></div> + <TMPL_VAR .loc.label_created_at> <TMPL_VAR created_at> <TMPL_VAR .loc.label_created_by> <TMPL_VAR created_by><br> + <TMPL_VAR .loc.label_modified_at> <TMPL_VAR modified_at> <TMPL_VAR .loc.label_modified_by> <TMPL_VAR modified_by><br> + <TMPL_VAR .loc.label_link>: {{<TMPL_VAR filename escape=0>|<TMPL_VAR name>}}<br> + + </form> + + </div> +</div> +</TMPL_IF> +</TMPL_LOOP> + +</main> +</body> +</html> + diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 1c12f3a..070af86 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -1,6 +1,8 @@ <link type="text/css" href="css/image_manager.css" rel="stylesheet"/> <script src="js/image.js" type="text/javascript"></script> +<script src="js/page_leave_handler.js" type="text/javascript"></script> + <TMPL_IF .allow.create_image> <script src="js/image_upload.js" type="text/javascript"></script> </TMPL_IF> @@ -28,11 +30,13 @@ } </TMPL_IF> + //TODO: add confirm handler $('#imageList').show(); } }); // get initially selected tab - selectedImageTab=getSelectedTab('image-tabs'); + selectedImageTab = getSelectedTab('image-tabs'); + pageLeaveHandler(); } ); </script> From 88a52dd674dc6559912aed395b2aea57abea9536 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 2 Mar 2019 16:03:24 +0100 Subject: [PATCH 055/391] limit session timeout and write sessions to sub temp dir --- lib/calcms/auth.pm | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index 8f7bf90..cb9c889 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -16,7 +16,7 @@ use time(); use base 'Exporter'; our @EXPORT_OK = qw(get_user login logout crypt_password); my $defaultExpiration = 60; -my $tmp_dir = '/var/tmp/'; +my $tmp_dir = '/var/tmp/calcms-session'; my $debug = 0; sub debug; @@ -158,12 +158,14 @@ sub delete_cookie { } #read and write server-side session data +# expiration is in seconds sub create_session { my $user = shift; my $password = shift; my $expiration = shift; debug("create_session") if $debug; + mkdir $tmp_dir unless -e $tmp_dir; my $session = CGI::Session->new( undef, undef, { Directory => $tmp_dir } ); $session->expire($expiration); $session->param( "user", $user ); @@ -176,7 +178,7 @@ sub read_session { my $session_id = shift; debug("read_session") if $debug; - return undef unless ( defined $session_id ); + return undef unless defined $session_id; debug("read_session2") if $debug; my $session = CGI::Session->new( undef, $session_id, { Directory => $tmp_dir } ); @@ -217,19 +219,13 @@ sub authenticate { }; my $bind_values = [$user]; - #print STDERR "query:".Dumper($query).Dumper($bind_values); - my $users = db::get( $dbh, $query, $bind_values ); - #print STDERR "result:".Dumper($users); - if ( scalar(@$users) != 1 ) { print STDERR "auth: did not find user '$user'\n"; return undef; } - #print STDERR Dumper($users); - my $salt = $users->[0]->{salt}; my $ppr = Authen::Passphrase::BlowfishCrypt->from_crypt( $users->[0]->{pass}, $users->[0]->{salt} ); @@ -239,9 +235,9 @@ sub authenticate { return undef; } + # timeout in seconds my $timeout = $users->[0]->{session_timeout} || 120; - $timeout = 10 if $timeout < 10; - $timeout = 12 * 60 if $timeout > 12 * 60; + $timeout = 60 if $timeout < 60; return { timeout => $timeout, From 95ff06592d12c08c87f986600cc33baa7346c8f6 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 2 Mar 2019 16:04:08 +0100 Subject: [PATCH 056/391] update template defaults and escaping --- lib/calcms/template.pm | 78 +++++++-------- .../planung/templates/edit_comment.html | 4 +- .../agenda/planung/templates/edit_event.html | 94 +++++++++---------- .../agenda/planung/templates/edit_image.html | 12 +-- website/agenda/planung/templates/image.html | 4 +- .../agenda/planung/templates/imageUpload.html | 6 +- .../templates/upload_audio_recordings.html | 2 +- website/agenda/templates/categories.html | 6 +- website/agenda/templates/comments.html | 4 +- website/agenda/templates/comments_newest.html | 4 +- website/agenda/templates/event_details.html | 2 +- website/agenda/templates/series_names.html | 6 +- 12 files changed, 113 insertions(+), 109 deletions(-) diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index af3a68b..6e9cd5e 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -6,6 +6,7 @@ use strict; use Data::Dumper; use HTML::Template::Compiled(); use HTML::Template::Compiled::Plugin::XMLEscape(); +#use HTML::Template::JIT(); use JSON(); use Cwd(); @@ -64,47 +65,14 @@ sub process { return; } - #print STDERR $filename."\n"; - log::error( $config, "cannot find template $filename " ) unless -e $filename; - log::error( $config, "cannot read template $filename " ) unless -r $filename; - - my $default_escape = '0'; - $default_escape = 'JS' if ( $filename =~ /\.js$/ ); - $default_escape = 'JS' if ( $filename =~ /\.json$/ ); - $default_escape = 'HTML_ALL' if ( $filename =~ /\.html$/ ); - - my $html_template = undef; - - unless ( $filename =~ /\.xml$/ ) { - $html_template = HTML::Template::Compiled->new( - filename => $filename, - die_on_bad_params => 0, - case_sensitive => 0, - loop_context_vars => 0, - global_vars => 0, - tagstyle => '-asp -comment', - default_escape => $default_escape, - cache => 0, - utf8 => 1, - ); - } else { - $html_template = HTML::Template::Compiled->new( - filename => $filename, - die_on_bad_params => 0, - case_sensitive => 1, - loop_context_vars => 0, - global_vars => 0, - tagstyle => '-asp -comment', - default_escape => 'XML', - plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], - utf8 => 1 - ); + unless (-r $filename){ + log::error($config, qq{template "$filename" does not exist}) unless -e $filename; + log::error($config, qq{missing permissions to read "$filename"}); } + my $html_template = initTemplate($filename); - #$params= setRelativeUrls( $params, 0 ) unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); - # HTML::Template::Compiled->preload($cache_dir); $html_template->param($params); if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) { print $html_template->output; @@ -113,6 +81,42 @@ sub process { } } +sub initTemplate{ + my $filename=shift; + + my $default_escape = 'none'; + $default_escape = 'js' if ( $filename =~ /\.js$/ ); + $default_escape = 'js' if ( $filename =~ /\.json$/ ); + $default_escape = 'html_all' if ( $filename =~ /\.html$/ ); + + if ( $filename =~ /\.xml$/ ) { + return HTML::Template::Compiled->new( + filename => $filename, + die_on_bad_params => 1, + case_sensitive => 1, + loop_context_vars => 0, + global_vars => 0, + tagstyle => '-asp -comment --comment --tt', + default_escape => 'XML', + cache => 1, + utf8 => 1, + plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], + ); + } + + return HTML::Template::Compiled->new( + filename => $filename, + die_on_bad_params => 1, + case_sensitive => 1, + loop_context_vars => 0, + global_vars => 0, + tagstyle => '-asp -comment --comment --tt', + default_escape => $default_escape, + cache => 1, + utf8 => 1, + ); +} + # set relative urls in nested params structure sub setRelativeUrls { my $params = shift; diff --git a/website/agenda/planung/templates/edit_comment.html b/website/agenda/planung/templates/edit_comment.html index f55ee52..5e567ad 100644 --- a/website/agenda/planung/templates/edit_comment.html +++ b/website/agenda/planung/templates/edit_comment.html @@ -19,8 +19,8 @@ <td class="level<TMPL_VAR level>"><img src="image/comment.png" class="level<TMPL_VAR level>"><a name="event_comments_<TMPL_VAR id>" /></td> <td class="date"><TMPL_VAR start_date_name></td> <td class="time"><TMPL_VAR start_time_name></td> - <td class="author"><TMPL_VAR author escape=0></td> - <td class="content <TMPL_VAR news_status>"><textarea><TMPL_VAR content escape=0></textarea></td> + <td class="author"><TMPL_VAR author escape=none></td> + <td class="content <TMPL_VAR news_status>"><textarea><TMPL_VAR content escape=none></textarea></td> </tr> <tr style="border-bottom:1px gray solid;"> <td /> diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit_event.html index b060456..03f58b9 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit_event.html @@ -157,7 +157,7 @@ <!-- import rerun from old event of series or any event of any project --> <TMPL_IF .allow.update_event> <div id="selectRerun" style="display:none;" class="select panel"> - + <div class="panel-header"> <b><TMPL_VAR weekday_short_name>, <TMPL_VAR start_date_name>, <TMPL_VAR start_time_name></b>, @@ -168,20 +168,20 @@ <div onclick="selectOldEventFromSeries('rerunEventId','<TMPL_VAR start_date>'); updateCheckBox($(this).find('input:radio'),true);" class="option" > - <input type="radio" name="group" class="default"> - <TMPL_VAR .loc.label_rerun_select_old> - </div> + <input type="radio" name="group" class="default"> + <TMPL_VAR .loc.label_rerun_select_old> + </div> <div onclick="selectOtherEvent('rerunEventId'); updateCheckBox($(this).find('input:radio'),true);" class="option" > - <input type="radio" name="group"> - <TMPL_VAR .loc.label_rerun_select_other> - </div> - - <input id="rerunEventId" value="-1" style="display:none" onchange="copyFromEvent('rerunEventId')"> + <input type="radio" name="group"> + <TMPL_VAR .loc.label_rerun_select_other> + </div> + + <input id="rerunEventId" value="-1" style="display:none" onchange="copyFromEvent('rerunEventId')"> - <div id="import_rerun" class="active" style="display:none;"></div> + <div id="import_rerun" class="active" style="display:none;"></div> <button onclick="hideSelectRerun('rerunEventId')"><TMPL_VAR .loc.button_cancel></button> </div> </div> @@ -191,14 +191,14 @@ <TMPL_IF .allow.assign_series_events> <div id="selectChangeSeries" class="active" style="display:none" class="panel"> <div class="panel-header"> - <TMPL_VAR .loc.button_assign_series> + <TMPL_VAR .loc.button_assign_series> </div> <div class="panel-body"> - <div id="changeSeriesContainer"> </div> - <input id="changeSeriesId" value="-1" style="display:none"> - <button onclick="hideChangeSeries()"><TMPL_VAR .loc.button_cancel></button> - <button onclick="changeSeries()"><TMPL_VAR .loc.button_assign></button> - </div> + <div id="changeSeriesContainer"> </div> + <input id="changeSeriesId" value="-1" style="display:none"> + <button onclick="hideChangeSeries()"><TMPL_VAR .loc.button_cancel></button> + <button onclick="changeSeries()"><TMPL_VAR .loc.button_assign></button> + </div> </div> </TMPL_IF> @@ -393,7 +393,7 @@ <td> <img style="float:right;padding-left:1em" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studioId=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"> <div><TMPL_VAR topic</div> - <div><TMPL_VAR html_content escape=0></div> + <div><TMPL_VAR html_content escape=none></div> </td> </tr> </table> @@ -433,7 +433,7 @@ <TMPL_IF .allow.update_event_field_topic> <textarea name="topic" placeholder="<TMPL_VAR .loc.label_topics>"><TMPL_VAR topic></textarea> <TMPL_ELSE> - <TMPL_VAR html_topic escape=0> + <TMPL_VAR html_topic escape=none> </TMPL_IF> </td> </tr> @@ -444,7 +444,7 @@ <TMPL_IF .allow.update_event_field_description> <textarea name="content" placeholder="<TMPL_VAR .loc.label_description>"><TMPL_VAR content></textarea> <TMPL_ELSE> - <TMPL_VAR html_content escape=0> + <TMPL_VAR html_content escape=none> </TMPL_IF> </td> </tr> @@ -499,34 +499,34 @@ <TMPL_UNLESS edit_lock> - <div class="buttons" style="text-align:center"> - <TMPL_IF show_new_event_from_schedule> - <TMPL_IF .allow.create_event_from_schedule> - <button type="submit" name="action" value="create_event_from_schedule" - onclick="leavePage();return true" - ><TMPL_VAR .loc.button_create></button> - </TMPL_IF> - <TMPL_ELSIF show_new_event> - <TMPL_IF .allow.create_event> - <button type="submit" name="action" value="create_event" - onclick="leavePage();return true" - ><TMPL_VAR .loc.button_create></button> - </TMPL_IF> - <TMPL_ELSE> - <TMPL_IF .allow.update_event> - <button type="submit" name="action" value="save" - onclick="leavePage();return true" - ><TMPL_VAR .loc.button_save></button> - </TMPL_IF> - </TMPL_IF> - <TMPL_IF .allow.delete_event> - <TMPL_UNLESS new_event> - <button type="submit" name="action" value="delete" - onclick="leavePage();commitForm('event_<TMPL_VAR event_id>','delete','delete event');return false;" - ><TMPL_VAR .loc.button_delete></button> - </TMPL_UNLESS> - </TMPL_IF> - </div> + <div class="buttons" style="text-align:center"> + <TMPL_IF show_new_event_from_schedule> + <TMPL_IF .allow.create_event_from_schedule> + <button type="submit" name="action" value="create_event_from_schedule" + onclick="leavePage();return true" + ><TMPL_VAR .loc.button_create></button> + </TMPL_IF> + <TMPL_ELSIF show_new_event> + <TMPL_IF .allow.create_event> + <button type="submit" name="action" value="create_event" + onclick="leavePage();return true" + ><TMPL_VAR .loc.button_create></button> + </TMPL_IF> + <TMPL_ELSE> + <TMPL_IF .allow.update_event> + <button type="submit" name="action" value="save" + onclick="leavePage();return true" + ><TMPL_VAR .loc.button_save></button> + </TMPL_IF> + </TMPL_IF> + <TMPL_IF .allow.delete_event> + <TMPL_UNLESS new_event> + <button type="submit" name="action" value="delete" + onclick="leavePage();commitForm('event_<TMPL_VAR event_id>','delete','delete event');return false;" + ><TMPL_VAR .loc.button_delete></button> + </TMPL_UNLESS> + </TMPL_IF> + </div> </TMPL_UNLESS> diff --git a/website/agenda/planung/templates/edit_image.html b/website/agenda/planung/templates/edit_image.html index 38f42ac..aeb8591 100644 --- a/website/agenda/planung/templates/edit_image.html +++ b/website/agenda/planung/templates/edit_image.html @@ -9,7 +9,7 @@ found no image <TMPL_LOOP images> <TMPL_IF filename> <div id="imageEditor" class="editor"> - <button onclick="assignImage('<TMPL_VAR filename escape=0>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false"><TMPL_VAR .loc.select_image></button/> + <button onclick="assignImage('<TMPL_VAR filename escape=none>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false"><TMPL_VAR .loc.select_image></button/> <div class="panel-body"> @@ -23,10 +23,10 @@ found no image <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> <label><TMPL_VAR .loc.label_name></label><br> - <input value="<TMPL_VAR name escape=0>" name="update_name" class="field" placeholder="<TMPL_VAR .loc.label_name>"><br> + <input value="<TMPL_VAR name escape=none>" name="update_name" class="field" placeholder="<TMPL_VAR .loc.label_name>"><br> <label><TMPL_VAR .loc.label_description></label><br> - <textarea class="field" name="update_description" cols="50" rows=5 placeholder="<TMPL_VAR .loc.label_description>"><TMPL_VAR description escape=0></textarea><br> + <textarea class="field" name="update_description" cols="50" rows=5 placeholder="<TMPL_VAR .loc.label_description>"><TMPL_VAR description escape=none></textarea><br> <label><TMPL_VAR .loc.label_author>/<TMPL_VAR .loc.label_licence></label><br> <input name="licence" value="<TMPL_VAR licence>" class="field<TMPL_IF missing_licence> error</TMPL_IF>" placeholder="<TMPL_VAR .loc.label_licence_missing>"/><br> @@ -35,18 +35,18 @@ found no image <input type="checkbox" name="public" <TMPL_IF public>checked="checked" value="1"<TMPL_ELSE>value="0"</TMPL_IF> /><br> <TMPL_IF name="update_image"> - <input type="hidden" name="save_image" value="<TMPL_VAR filename escape=0>" /> + <input type="hidden" name="save_image" value="<TMPL_VAR filename escape=none>" /> <button onclick="this.submit"><TMPL_VAR .loc.button_save></button/> </TMPL_IF> <TMPL_IF name="delete_image"> - <button onclick="askDeleteImage('img_<TMPL_VAR id escape=0>','<TMPL_VAR filename escape=0>');return false;"><TMPL_VAR .loc.button_delete></button> + <button onclick="askDeleteImage('img_<TMPL_VAR id escape=none>','<TMPL_VAR filename escape=none>');return false;"><TMPL_VAR .loc.button_delete></button> </TMPL_IF> <div id="status" ></div> <TMPL_VAR .loc.label_created_at> <TMPL_VAR created_at> <TMPL_VAR .loc.label_created_by> <TMPL_VAR created_by><br> <TMPL_VAR .loc.label_modified_at> <TMPL_VAR modified_at> <TMPL_VAR .loc.label_modified_by> <TMPL_VAR modified_by><br> - <TMPL_VAR .loc.label_link>: {{<TMPL_VAR filename escape=0>|<TMPL_VAR name>}}<br> + <TMPL_VAR .loc.label_link>: {{<TMPL_VAR filename escape=none>|<TMPL_VAR name>}}<br> </form> diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 070af86..3cde819 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -78,8 +78,8 @@ </div> <form id="image_manager" action="image.cgi"> - <input name="search" value="<TMPL_VAR search escape=0>" style="width:20em;"> - <input type="hidden" name="filename" value="<TMPL_VAR filename escape=0>"> + <input name="search" value="<TMPL_VAR search escape=none>" style="width:20em;"> + <input type="hidden" name="filename" value="<TMPL_VAR filename escape=none>"> <button onclick="searchImage('<TMPL_VAR target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false;"><TMPL_VAR .loc.button_search></button> </form> <TMPL_VAR count> <TMPL_VAR .loc.label_search_hits><br /> diff --git a/website/agenda/planung/templates/imageUpload.html b/website/agenda/planung/templates/imageUpload.html index 79d6c9b..9a2ecbf 100644 --- a/website/agenda/planung/templates/imageUpload.html +++ b/website/agenda/planung/templates/imageUpload.html @@ -31,18 +31,18 @@ <td> <TMPL_IF filename> - <input value="{{thumbs/<TMPL_VAR filename escape=0>|<TMPL_VAR name escape=0>}}" size="50" /> + <input value="{{thumbs/<TMPL_VAR filename escape=none>|<TMPL_VAR name escape=none>}}" size="50" /> </TMPL_IF> </td> </tr> <tr> <td>Name: </td> - <td><input value="<TMPL_VAR name escape=0>" name="name" size="40" maxlength="100" required> </td> + <td><input value="<TMPL_VAR name escape=none>" name="name" size="40" maxlength="100" required> </td> </tr> <tr> <td>Beschreibung: </td> - <td><textarea name="description" cols="50" rows=5><TMPL_VAR description escape=0></textarea></td> + <td><textarea name="description" cols="50" rows=5><TMPL_VAR description escape=none></textarea></td> </tr> <tr> <td><label><TMPL_VAR .loc.label_author>/<TMPL_VAR .loc.label_licence></label></td> diff --git a/website/agenda/planung/templates/upload_audio_recordings.html b/website/agenda/planung/templates/upload_audio_recordings.html index 8c285fb..e290e2c 100644 --- a/website/agenda/planung/templates/upload_audio_recordings.html +++ b/website/agenda/planung/templates/upload_audio_recordings.html @@ -44,7 +44,7 @@ <td> <TMPL_IF filename> - <TMPL_VAR filename escape=0>" + <TMPL_VAR filename escape=none>" </TMPL_IF> </td> diff --git a/website/agenda/templates/categories.html b/website/agenda/templates/categories.html index 6f002dc..a4fa4c9 100644 --- a/website/agenda/templates/categories.html +++ b/website/agenda/templates/categories.html @@ -8,7 +8,7 @@ <select id="calcms_project" name="project" onchange="calcms.selectProject()" > - <TMPL_LOOP projects><option value="<TMPL_VAR name escape=0>"><TMPL_VAR title></option> + <TMPL_LOOP projects><option value="<TMPL_VAR name escape=none>"><TMPL_VAR title></option> </TMPL_LOOP> </select> </form> @@ -17,13 +17,13 @@ <form id="calcmsCategoryForm" name="calcms_category"> <TMPL_LOOP projects> <TMPL_UNLESS isEmpty> - <select id="calcms_category_<TMPL_VAR js_name escape=0>" name="category_<TMPL_VAR js_name escape=0>" + <select id="calcms_category_<TMPL_VAR js_name escape=none>" name="category_<TMPL_VAR js_name escape=none>" title="Kategorien durchsuchen" onchange="calcms.selectCategory('<TMPL_VAR name>', jQuery(this).val())" style="display:none;" > <option value="">- Kategorie -</option> -<TMPL_LOOP categories><option value="<TMPL_VAR name escape=0>"<TMPL_VAR selected>><TMPL_VAR name> (<TMPL_VAR sum>)</option> +<TMPL_LOOP categories><option value="<TMPL_VAR name escape=none>"<TMPL_VAR selected>><TMPL_VAR name> (<TMPL_VAR sum>)</option> </TMPL_LOOP> </select> </TMPL_UNLESS> diff --git a/website/agenda/templates/comments.html b/website/agenda/templates/comments.html index 7c8996c..01acd5c 100644 --- a/website/agenda/templates/comments.html +++ b/website/agenda/templates/comments.html @@ -34,9 +34,9 @@ <div class="comment level<TMPL_VAR level>" style="float:clear;" > <a name="comment_<TMPL_VAR id>" /> <div class="w1"><div class="w2"><div class="w3"><div class="w4"> - <span class="author"><TMPL_VAR author escape=0></span>, + <span class="author"><TMPL_VAR author escape=none></span>, <span class="date"><TMPL_VAR start_date_name> - <TMPL_VAR start_time_name></span> - <div class="content"><TMPL_VAR content escape=0></div> + <div class="content"><TMPL_VAR content escape=none></div> <TMPL_IF allow.new_comments> <span > <a href="#calcms_add_comment_<TMPL_VAR id>_anchor" diff --git a/website/agenda/templates/comments_newest.html b/website/agenda/templates/comments_newest.html index ab2ee3d..f924104 100644 --- a/website/agenda/templates/comments_newest.html +++ b/website/agenda/templates/comments_newest.html @@ -12,8 +12,8 @@ <TMPL_LOOP comments> <a href="<TMPL_VAR cache_base_url>/<TMPL_VAR .controllers.event>/<TMPL_VAR event_id>.html#comments"> <div class="comments level<TMPL_VAR level>"> - <span class="author"><TMPL_VAR author escape=0></span>: - <span class="content"><TMPL_VAR short_content escape=0></span> + <span class="author"><TMPL_VAR author escape=none></span>: + <span class="content"><TMPL_VAR short_content escape=none></span> </a> </div> </TMPL_LOOP> diff --git a/website/agenda/templates/event_details.html b/website/agenda/templates/event_details.html index df493ad..16f8564 100644 --- a/website/agenda/templates/event_details.html +++ b/website/agenda/templates/event_details.html @@ -59,7 +59,7 @@ </TMPL_IF> </TMPL_IF> - <TMPL_VAR topic ESCAPE=0><TMPL_VAR content ESCAPE=0> + <TMPL_VAR topic escape=none><TMPL_VAR content escape=none> <TMPL_IF recurrence_date><a href="<TMPL_VAR recurrence>.html">Wiederholung vom <TMPL_VAR recurrence_date></a></TMPL_IF> </div> diff --git a/website/agenda/templates/series_names.html b/website/agenda/templates/series_names.html index 8d6dc46..b8cf198 100644 --- a/website/agenda/templates/series_names.html +++ b/website/agenda/templates/series_names.html @@ -11,15 +11,15 @@ <TMPL_LOOP projects> <TMPL_UNLESS isEmpty> <select - id="calcms_series_name_<TMPL_VAR js_name escape=0>" - name="series_name_<TMPL_VAR js_name escape=0>" + id="calcms_series_name_<TMPL_VAR js_name escape=none>" + name="series_name_<TMPL_VAR js_name escape=none>" title="Sendereihen durchsuchen" onchange="calcms.selectSeries('<TMPL_VAR name>', jQuery(this).val())" style="display:none;" > <option value="">- Sendereihe -</option> -<TMPL_LOOP series_names><option value="<TMPL_VAR series_name escape=0>"<TMPL_VAR selected escape=0>><TMPL_VAR series_name> (<TMPL_VAR sum>)</option> +<TMPL_LOOP series_names><option value="<TMPL_VAR series_name escape=none>"<TMPL_VAR selected escape=none>><TMPL_VAR series_name> (<TMPL_VAR sum>)</option> </TMPL_LOOP> </select> From cb2e1bc30d028dec98043a5edbac9d8faf3e2cf1 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 18 Mar 2019 15:20:44 +0100 Subject: [PATCH 057/391] compress html output --- lib/calcms/template.pm | 27 +++++++++++++++----- website/agenda/templates/calendar.html | 8 +++--- website/agenda/templates/calendar_js.html | 1 - website/agenda/templates/event_menu.html | 3 ++- website/agenda/templates/event_playlist.html | 2 ++ website/agenda/templates/event_running.html | 2 ++ 6 files changed, 30 insertions(+), 13 deletions(-) diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index 6e9cd5e..a84cea5 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -74,10 +74,21 @@ sub process { setRelativeUrls( $params, 0 ) unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); $html_template->param($params); + my $output = $html_template->output(); + if ($filename=~/html/){ + my ($header, $content) = split(/\n\n/, $output, 2); + if ($content){ + #$content =~s/\s+/ /g; + $output = $header."\n\n".$content; + }else{ + #$output =~s/[ \t]+/ /g; + } + } + if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) { - print $html_template->output; + print $output; } else { - $_[1] = $html_template->output; + $_[1] = $output; } } @@ -105,16 +116,18 @@ sub initTemplate{ } return HTML::Template::Compiled->new( - filename => $filename, + filename => $filename, die_on_bad_params => 1, - case_sensitive => 1, - loop_context_vars => 0, - global_vars => 0, + case_sensitive => 1, + loop_context_vars => 0, + global_vars => 0, tagstyle => '-asp -comment --comment --tt', default_escape => $default_escape, cache => 1, utf8 => 1, - ); +#pre_chomp => 1, +#post_chomp => 1, + ); } # set relative urls in nested params structure diff --git a/website/agenda/templates/calendar.html b/website/agenda/templates/calendar.html index b63576a..d25504a 100644 --- a/website/agenda/templates/calendar.html +++ b/website/agenda/templates/calendar.html @@ -34,8 +34,8 @@ </tr> <tr> -<!--<th>Wo</th> ---> +<TMPL_COMMENT><th>Wo</th> +</TMPL_COMMENT> <TMPL_LOOP weekdays><th><a href="<TMPL_VAR .local_base_url>/<TMPL_VAR .controllers.events>/<TMPL_VAR start_date>/<TMPL_VAR end_date>/<TMPL_VAR weekday>/" onclick="calcms.selectWeekdayEventListener('<TMPL_VAR start_date>','<TMPL_VAR end_date>','<TMPL_VAR weekday>');return false;"><TMPL_VAR "weekday_short_name"></a></th></TMPL_LOOP> </tr> @@ -44,9 +44,9 @@ <TMPL_LOOP week_and_days> <tr> -<!-- +<TMPL_COMMENT> <TMPL_LOOP week><th class="<TMPL_VAR class>"><a href="<TMPL_VAR .local_base_url>/<TMPL_VAR .controllers.events>/<TMPL_VAR from_date>/<TMPL_VAR till_date>/" title="Woche anzeigen" onclick="calcms.selectDateRangeEventListener('<TMPL_VAR from_date>','<TMPL_VAR till_date>');return false;" ><TMPL_VAR week_of_year></a></th></TMPL_LOOP> ---> +</TMPL_COMMENT> <TMPL_LOOP days><td class="<TMPL_VAR class>"><a href="<TMPL_VAR .cache_base_url>/<TMPL_VAR .controllers.events>/<TMPL_VAR date>.html" title="<TMPL_VAR day>.<TMPL_VAR month>. zeigen"><TMPL_VAR day></a></td> </TMPL_LOOP></tr></TMPL_LOOP> </tbody> diff --git a/website/agenda/templates/calendar_js.html b/website/agenda/templates/calendar_js.html index 5d971aa..0377d25 100644 --- a/website/agenda/templates/calendar_js.html +++ b/website/agenda/templates/calendar_js.html @@ -71,7 +71,6 @@ > <TMPL_VAR day> </a> -<!--onclick="calcms.selectDateEventListener('<TMPL_VAR date>');return false;"--> </TMPL_IF> </td> </TMPL_LOOP> diff --git a/website/agenda/templates/event_menu.html b/website/agenda/templates/event_menu.html index e6e878a..ea6bc9c 100644 --- a/website/agenda/templates/event_menu.html +++ b/website/agenda/templates/event_menu.html @@ -31,12 +31,13 @@ <div id="event_menu_<TMPL_VAR event_id>" class="vevent event<TMPL_IF is_running> running</TMPL_IF>" title="<TMPL_IF program><TMPL_VAR program> - </TMPL_IF><TMPL_IF series_name><TMPL_VAR series_name> - </TMPL_IF><TMPL_VAR title>" > + <TMPL_COMMENT> <div class="icon"> <TMPL_IF icon><img src="<TMPL_VAR icon>" alt="<TMPL_VAR series_name>" /> <TMPL_ELSE><img src="<TMPL_VAR static_files_url>image/event.icon.png" /> </TMPL_IF> </div> - + </TMPL_COMMENT> <div class="title"> <TMPL_VAR start_time_name><br /> <TMPL_VAR series_name><TMPL_UNLESS series_name>!<TMPL_VAR title></TMPL_UNLESS>  diff --git a/website/agenda/templates/event_playlist.html b/website/agenda/templates/event_playlist.html index 53b99fa..6d92652 100644 --- a/website/agenda/templates/event_playlist.html +++ b/website/agenda/templates/event_playlist.html @@ -13,9 +13,11 @@ <a href="<TMPL_VAR cache_base_url>/<TMPL_VAR .controllers.event>/<TMPL_VAR event_id>.html#<TMPL_VAR event_uri escape=url>" > <div id="event_playlist_<TMPL_VAR event_id>" class="event" title="<TMPL_VAR full_title><TMPL_IF excerpt>. <TMPL_VAR excerpt></TMPL_IF>"> + <TMPL_COMMENT> <div class="icon"> <img src="<TMPL_VAR icon>"></img> </div> + </TMPL_COMMENT> <div class="title"> <TMPL_VAR weekday_short_name> <TMPL_VAR start_time_name><br /> <TMPL_IF series_name><TMPL_VAR series_name><TMPL_ELSE><TMPL_VAR title></TMPL_IF> diff --git a/website/agenda/templates/event_running.html b/website/agenda/templates/event_running.html index c64e104..cd6d4ac 100644 --- a/website/agenda/templates/event_running.html +++ b/website/agenda/templates/event_running.html @@ -54,11 +54,13 @@ <TMPL_VAR start_time_name> bis <TMPL_VAR end_time_name> Uhr <TMPL_IF program>(<TMPL_VAR program>)</TMPL_IF></span><br /> </div> <div class="content" > + <TMPL_COMMENT> <div class="image-attach-teaser" style="width: 150px;"> <a href="<TMPL_VAR cache_base_url>/<TMPL_VAR .controllers.event>/<TMPL_VAR event_id>.html#<TMPL_VAR event_uri escape=url>"> <img class="image image-thumbnail" src="<TMPL_VAR image>" width="150" height="150" /> </a> </div> + </TMPL_COMMENT> <TMPL_VAR excerpt > </div> <a href="<TMPL_VAR cache_base_url>/<TMPL_VAR .controllers.event>/<TMPL_VAR event_id>.html#comments"> From a4550170846bda915b2e5df76d0b72fe56af6f0e Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 18 Mar 2019 15:22:15 +0100 Subject: [PATCH 058/391] use download text from template --- website/agenda/planung/event.cgi | 15 +++++++-------- website/agenda/planung/templates/edit_event.html | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 4c4c476..e753519 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -755,16 +755,15 @@ sub download { #print $cmd."\n"; print `$cmd`; - $request->{params}->{checked}->{download} = - "Hallo,\n\n" - . "anbei der Mitschnitt fuer\n" + $request->{params}->{checked}->{download} = '' + . qq{<a href="$url" style="padding:8px;background:#39a1f4;color:white;border-radius:4px;" download="$event->{series_name}#$event->{episode}.mp3">} + . q{Download: } . $event->{start_date_name} . ", " . $event->{start_time_name} . " - " - . $event->{series_name} . ' - ' - . $event->{title} . ":\n" - . $url . "\n" - . "\nDer Link wird nach 7 Tagen geloescht. (bitte nicht weitergeben)\n" - . "Gruss, Peter\n"; + . $event->{full_title} + . qq{</a>\n} + . qq{<pre>$url</pre>\n} + . qq{\nDer Link wird nach 7 Tagen geloescht.}; } } diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit_event.html index 03f58b9..0fc5db2 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit_event.html @@ -246,7 +246,7 @@ </TMPL_UNLESS> <!-- download output --> <TMPL_IF download> - <textarea type="hidden" name="event_id" ><TMPL_VAR download></textarea> + <div type="hidden" name="event_id" ><TMPL_VAR download escape=none></div> </TMPL_IF> From 6c2a6ac0cc75ede8047d365dfc7a8d4c5d40c468 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 18 Mar 2019 15:25:14 +0100 Subject: [PATCH 059/391] remove program entry from title --- website/agenda/aggregate.cgi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 891c370..5ab017f 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -2,6 +2,7 @@ use warnings "all"; use strict; +use utf8; #use CGI qw(header param Vars); @@ -129,7 +130,7 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { $content =~ s/(<(div|span)\s+id="calcms_title".*?>).*?(<\/(div|span)>)/$list->{project_title}/g; my $values = []; - for my $value ( $list->{'program'}, $list->{'series_name'}, $list->{'title'}, $list->{'location'}, $list->{'project_title'} ) { + for my $value ( $list->{'series_name'}, $list->{'title'}, $list->{'location'}, 'Programm '. $list->{project_title} ) { next unless defined $value; next if $value eq ''; push @$values, $value; From e90ea3929d0abed5ebf71fb3fe7dd05a4f44c458 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 18 Mar 2019 15:25:40 +0100 Subject: [PATCH 060/391] remove some fix colors from theme to allow dark mode --- website/agenda/css/calcms.css | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index 29359e2..609bffb 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -178,15 +178,13 @@ a{ border-bottom:1px solid rgba(100,100,100,0.24); hyphens: none; cursor:pointer; - background:rgba(200, 200, 200, 0.2); - color:#666; overflow:hidden; text-overflow: ellipsis; transition: all .1s ease-in-out; } #calcms_list .event:hover{ - background:rgba(200, 200, 200, 0.3); + background:rgba(200, 200, 200, 0.2); } #calcms_list .date{ @@ -223,7 +221,6 @@ a{ padding:1rem; font-weight:100; text-align:center; - color:rgba(0, 0, 0, 0.7); } @media all and (max-width: 959px) { @@ -247,13 +244,6 @@ a{ } } -#calcms_list .excerpt{ - max-height:3.9rem; - overflow: hidden; - text-overflow: ellipsis; - color:rgba(0, 0, 0, 0.7); -} - #calcms_list .event.running:hover{ opacity:0.9; } @@ -293,29 +283,6 @@ a{ max-width:12em; } - -#calcms_list .piradio, -#calcms_list .dt64, -#calcms_list .galerie, -#calcms_list .studiolottumstrasse, -#calcms_list .ansage, -#calcms_list .potsdam, -#calcms_list .colabo{ - color:#333; -} - -#calcms_list .blnfm, -#calcms_list .multicultfm, -#calcms_list .ohrfunk, -#calcms_list .twenfm, -#calcms_list .offenerkanalberlin, -#calcms_list .studioansage, -#calcms_list .studiorebootfm, -#calcms_list .frrapo, -#calcms_list .klubradio{ - color:#666; -} - #calcms_list hr{ margin:1em 0; background: #ccc; From d3fc5f998a0f62ca8abe2ea7bec5db75cafdedc8 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 13 Apr 2019 20:31:25 +0200 Subject: [PATCH 061/391] remove cache * remove cache, cache setup is not easy, todays servers do not really * need it anymore * add prototypes and fix parameter issues * suppress redefinition --- lib/calcms/aggregator.pm | 74 +- lib/calcms/audio_recordings.pm | 20 +- lib/calcms/auth.pm | 36 +- lib/calcms/cache.pm | 183 - lib/calcms/calendar.pm | 59 +- lib/calcms/comments.pm | 142 +- lib/calcms/config.pm | 7 +- lib/calcms/creole_wiki.pm | 11 +- lib/calcms/db.pm | 27 +- lib/calcms/eventOps.pm | 18 +- lib/calcms/event_history.pm | 17 +- lib/calcms/events.pm | 140 +- lib/calcms/images.pm | 760 +- lib/calcms/localization.pm | 155 +- lib/calcms/log.pm | 19 +- lib/calcms/mail.pm | 28 +- lib/calcms/markup.pm | 758 +- lib/calcms/params.pm | 19 +- lib/calcms/password_requests.pm | 333 +- lib/calcms/playout.pm | 531 +- lib/calcms/project.pm | 54 +- lib/calcms/roles.pm | 11 +- lib/calcms/series.pm | 65 +- lib/calcms/series_dates.pm | 37 +- lib/calcms/series_events.pm | 34 +- lib/calcms/series_schedule.pm | 218 +- lib/calcms/startup.pl | 3 - lib/calcms/studio_timeslot_dates.pm | 7 +- lib/calcms/studio_timeslot_schedule.pm | 15 +- lib/calcms/studios.pm | 22 +- lib/calcms/tags.pm | 5 +- lib/calcms/template.pm | 86 +- lib/calcms/time.pm | 92 +- lib/calcms/uac.pm | 108 +- lib/calcms/user_settings.pm | 27 +- lib/calcms/user_stats.pm | 23 +- lib/calcms/work_dates.pm | 28 +- lib/calcms/work_schedule.pm | 17 +- website/agenda/add_comment.cgi | 3 +- website/agenda/aggregate.cgi | 31 +- website/agenda/cal.cgi | 34 +- website/agenda/category.cgi | 26 +- website/agenda/comments.cgi | 30 +- website/agenda/events.cgi | 2 +- website/agenda/planung/assign_series.cgi | 16 +- website/agenda/planung/assignments.cgi | 19 +- website/agenda/planung/audio_recordings.cgi | 749 +- website/agenda/planung/calendar.cgi | 143 +- website/agenda/planung/comment.cgi | 11 +- website/agenda/planung/create_events.cgi | 6 +- .../agenda/planung/css/comment_manager.css | 125 - website/agenda/planung/event.cgi | 20 +- website/agenda/planung/event_history.cgi | 69 +- website/agenda/planung/help.cgi | 3 +- website/agenda/planung/image.cgi | 29 +- website/agenda/planung/imageUpload.cgi | 44 +- website/agenda/planung/js/jquery-ui.js | 16617 ---------------- website/agenda/planung/js/jquery.js | 5 - website/agenda/planung/js/jquery.min.js | 5 +- website/agenda/planung/js/jquery.rte.js | 211 - website/agenda/planung/localization.cgi | 2 +- website/agenda/planung/notify_events.cgi | 11 +- website/agenda/planung/playout.cgi | 9 +- website/agenda/planung/projects.cgi | 13 +- website/agenda/planung/requestPassword.cgi | 5 +- website/agenda/planung/roles.cgi | 13 +- website/agenda/planung/selectEvent.cgi | 6 +- website/agenda/planung/selectSeries.cgi | 168 +- website/agenda/planung/series.cgi | 28 +- website/agenda/planung/show-playout.cgi | 29 +- website/agenda/planung/showImage.cgi | 4 +- website/agenda/planung/studio_timeslots.cgi | 13 +- website/agenda/planung/studios.cgi | 12 +- .../planung/templates/create_events.html | 1 + website/agenda/planung/user_settings.cgi | 20 +- website/agenda/planung/user_stats.cgi | 6 +- website/agenda/planung/users.cgi | 671 +- website/agenda/planung/work_time.cgi | 14 +- website/agenda/series.cgi | 4 +- website/agenda/series_names.cgi | 36 +- website/agenda/upload_playout.cgi | 5 +- 81 files changed, 3190 insertions(+), 20267 deletions(-) delete mode 100644 lib/calcms/cache.pm delete mode 100644 website/agenda/planung/css/comment_manager.css delete mode 100644 website/agenda/planung/js/jquery-ui.js delete mode 100644 website/agenda/planung/js/jquery.js delete mode 100644 website/agenda/planung/js/jquery.rte.js diff --git a/lib/calcms/aggregator.pm b/lib/calcms/aggregator.pm index c45d2e5..e61b421 100644 --- a/lib/calcms/aggregator.pm +++ b/lib/calcms/aggregator.pm @@ -1,18 +1,18 @@ package aggregator; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use events(); use comments(); use calendar(); use project(); -use cache(); use base 'Exporter'; -our @EXPORT_OK = qw(get_cache configure_cache put_cache get_list check_params); +our @EXPORT_OK = qw(get_cache configure_cache put_cache get_list check_params); -sub get_list { +sub get_list($$) { my $config = shift; my $request = shift; @@ -54,8 +54,6 @@ sub get_list { my @used_projects = reverse sort { $used_projects->{$a} <=> $used_projects->{$b} } ( keys %$used_projects ); my $most_used_project = $used_projects[0]; - #use Data::Dumper;print STDERR Dumper(\@used_projects); - return { day => $results->[0]->{day}, start_datetime => $results->[0]->{start_datetime}, @@ -70,7 +68,7 @@ sub get_list { }; } -sub get_menu { +sub get_menu($$$$) { my $config = shift; my $request = shift; my $date = shift; @@ -86,7 +84,7 @@ sub get_menu { $request->{params}->{checked} = events::check_params( $config, $request->{params}->{original} ); $results = events::get( $config, $request ); } else { - $request->{params}->{checked}->{template} = template::check($config, 'event_menu.html'); + $request->{params}->{checked}->{template} = template::check( $config, 'event_menu.html' ); } #events menu @@ -96,7 +94,7 @@ sub get_menu { return { content => $output }; } -sub get_calendar { +sub get_calendar($$$) { my $config = shift; my $request = shift; my $date = shift; @@ -122,7 +120,7 @@ sub get_calendar { return { content => $content }; } -sub get_newest_comments { +sub get_newest_comments($$) { my $config = shift; my $request = shift; @@ -146,49 +144,7 @@ sub get_newest_comments { return { content => $content }; } -sub get_cache { - my $config = shift; - my $request = shift; - - my $params = $request->{params}->{checked}; - my $debug = $config->{system}->{debug}; - - if ( $config->{cache}->{use_cache} == 1 ) { - configure_cache($config); - my $cache = cache::load( $config, $params ); - return $cache; - } - return {}; -} - -sub configure_cache { - my $config = shift; - - cache::init(); - my $controllers = $config->{controllers}; - - my $date_pattern = cache::get_date_pattern(); - - # cache::add_map('' ,'programm/index.html'); - cache::add_map( 'date=today', 'programm/' . $controllers->{events} . '/today.html' ); - cache::add_map( 'date=' . $date_pattern, 'programm/' . $controllers->{events} . '/$1-$2-$3.html' ); - cache::add_map( 'from_date=' . $date_pattern . '&till_date=' . $date_pattern, - 'programm/' . $controllers->{events} . '/$1-$2-$3_$4-$5-$6.html' ); - cache::add_map( 'event_id=(\d+)', 'programm/' . $controllers->{event} . '/$1.html' ); -} - -sub put_cache { - my $config = shift; - my $request = shift; - my $cache = shift; - - #write to cache - if ( $config->{cache}->{use_cache} == 1 ) { - cache::save($cache); - } -} - -sub check_params { +sub check_params($$) { my $config = shift; my $params = shift; @@ -200,14 +156,8 @@ sub check_params { #filter for date my $date = time::check_date( $params->{date} ); - #print STDERR $date."\n"; - if ( $date eq '' ) { - $date = time::time_to_date( time() ); - } - # - if ( $date eq 'today' ) { - $date = time::get_event_date($config); - } + $date = time::time_to_date( time() ) if $date eq ''; + $date = time::get_event_date($config) if $date eq 'today'; # $date =$config->{date}->{start_date} if ($date lt $config->{date}->{start_date}); # $date =$config->{date}->{end_date} if ($date gt $config->{date}->{end_date}); @@ -279,8 +229,6 @@ sub check_params { from_date => $from_date, till_date => $till_date, event_id => $event_id, - - # project => $project, debug => $debug, }; } diff --git a/lib/calcms/audio_recordings.pm b/lib/calcms/audio_recordings.pm index dc341e9..67b3f5e 100644 --- a/lib/calcms/audio_recordings.pm +++ b/lib/calcms/audio_recordings.pm @@ -1,13 +1,14 @@ package audio_recordings; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use db(); use base 'Exporter'; -our @EXPORT_OK = qw(get_columns get); +our @EXPORT_OK = qw(get_columns get); # columns: # id, project_id, studio_id, event_id @@ -17,7 +18,7 @@ our @EXPORT_OK = qw(get_columns get); sub debug; -sub get_columns { +sub get_columns($) { my $config = shift; my $dbh = db::connect($config); @@ -30,7 +31,7 @@ sub get_columns { } # get playout entries -sub get { +sub get($$) { my $config = shift; my $condition = shift; @@ -38,7 +39,8 @@ sub get { return undef unless defined $condition->{studio_id}; my $date_range_include = 0; - $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); + $date_range_include = 1 + if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); my $dbh = db::connect($config); @@ -105,7 +107,7 @@ sub get { } # update playout entry if differs to old values -sub update { +sub update($$$) { my $config = shift; my $dbh = shift; my $entry = shift; @@ -144,7 +146,7 @@ sub update { } # insert playout entry -sub insert { +sub insert ($$$) { my $config = shift; my $dbh = shift; my $entry = shift; @@ -177,7 +179,7 @@ sub insert { } # delete playout entry -sub delete { +sub delete ($$$) { my $config = shift; my $dbh = shift; my $entry = shift; @@ -196,7 +198,7 @@ sub delete { return db::put( $dbh, $query, $bind_values ); } -sub error { +sub error($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index cb9c889..a2cc7bc 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -1,7 +1,8 @@ package auth; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use CGI::Simple(); use CGI::Session qw(-ip-match); @@ -22,7 +23,7 @@ my $debug = 0; sub debug; #TODO: remove CGI -sub get_user { +sub get_user($$$) { my $config = shift; my $params = shift; my $cgi = shift; @@ -61,7 +62,7 @@ sub get_user { return $session->{user}, $session->{expires}; } -sub crypt_password { +sub crypt_password($) { my $password = shift; my $ppr = Authen::Passphrase::BlowfishCrypt->new( @@ -75,7 +76,7 @@ sub crypt_password { }; } -sub login { +sub login($$$) { my $config = shift; my $user = shift; my $password = shift; @@ -98,8 +99,9 @@ sub login { } #TODO: remove cgi -sub logout { - my $cgi = shift; +sub logout($) { + my $cgi = shift; + my $session_id = read_cookie(); debug("logout") if $debug; unless ( delete_session($session_id) ) { @@ -115,7 +117,7 @@ sub logout { } #read and write data from browser, http://perldoc.perl.org/CGI/Cookie.html -sub create_cookie { +sub create_cookie($$) { my $session_id = shift; my $timeout = shift; @@ -131,7 +133,7 @@ sub create_cookie { return 1; } -sub read_cookie { +sub read_cookie() { debug("read_cookie") if $debug; my %cookie = CGI::Cookie->fetch; debug( "cookies: " . Dumper( \%cookie ) ) if $debug; @@ -144,7 +146,7 @@ sub read_cookie { } #TODO: remove CGI -sub delete_cookie { +sub delete_cookie($) { my $cgi = shift; debug("delete_cookie") if $debug; @@ -157,9 +159,9 @@ sub delete_cookie { return 1; } -#read and write server-side session data +# read and write server-side session data # expiration is in seconds -sub create_session { +sub create_session ($$$) { my $user = shift; my $password = shift; my $expiration = shift; @@ -174,7 +176,7 @@ sub create_session { return $session->id(); } -sub read_session { +sub read_session($) { my $session_id = shift; debug("read_session") if $debug; @@ -194,7 +196,7 @@ sub read_session { }; } -sub delete_session { +sub delete_session($) { my $session_id = shift; debug("delete_session") if $debug; @@ -205,7 +207,7 @@ sub delete_session { } #check user authentication -sub authenticate { +sub authenticate($$$) { my $config = shift; my $user = shift; my $password = shift; @@ -237,7 +239,7 @@ sub authenticate { # timeout in seconds my $timeout = $users->[0]->{session_timeout} || 120; - $timeout = 60 if $timeout < 60; + $timeout = 60 if $timeout < 60; return { timeout => $timeout, @@ -245,7 +247,7 @@ sub authenticate { }; } -sub show_login_form { +sub show_login_form ($$) { my $user = shift || ''; my $uri = $ENV{HTTP_REFERER} || ''; my $message = shift || ''; @@ -359,7 +361,7 @@ sub show_login_form { return undef; } -sub debug { +sub debug ($) { my $message = shift; print STDERR "$message\n" if $debug > 0; return; diff --git a/lib/calcms/cache.pm b/lib/calcms/cache.pm deleted file mode 100644 index ffa0a73..0000000 --- a/lib/calcms/cache.pm +++ /dev/null @@ -1,183 +0,0 @@ -package cache; - -use warnings "all"; -use strict; - -use config(); -use time(); -use log(); -use markup(); - -use base 'Exporter'; -our @EXPORT_OK = qw(init add_map get_map get_map_keys load save get_filename escape_regexp escape_regexp_line); - -my $cache_map = {}; -my $cache_map_keys = []; -my $header_printed = 0; - -my $date_pattern = '(\d{4})\-(\d{2})\-(\d{2})'; -my $datetime_pattern = '(\d{4})\-(\d{2})\-(\d{2})[T\+](\d{2})\:(\d{2})(\:\d{2})?'; - -sub init { - $cache_map = {}; - $cache_map_keys = []; - $header_printed = 0; -} - -sub get_date_pattern(){ - return $date_pattern; -} - -sub get_datetime_pattern(){ - return $datetime_pattern; -} - -sub add_map { - my $key = $_[0]; - my $value = $_[1]; - - $key = '^' . $key . '$'; - push @$cache_map_keys, $key; - $cache_map->{$key} = $value; -} - -sub get_map { - return $cache_map; -} - -sub get_map_keys { - return $cache_map_keys; -} - -#get cache from params -sub load { - my $params = shift; - - my $filename = get_filename($params); - - my $result = { filename => $filename }; - - if ( defined $filename ) { - my @file_info = stat($filename); - my $modified = $file_info[9] || ''; - if ( $modified ne '' ) { - - #file exists - my @now = localtime( time() ); - my @modified = localtime($modified); - if ( $now[2] == $modified[2] ) { - - #file is elder than a hour - my $content = log::load_file($filename); - if ( defined $content ) { - $result->{content} = $content; - $result->{action} = 'read'; - return $result; - } - } - } - } - - $result->{action} = 'save'; - return $result; -} - -#get filename from params -sub get_filename { - my $config = shift; - my $params = shift; - - # my $url=$ENV{REQUEST_URI}; - my $url = $ENV{QUERY_STRING} || ''; - if ( $url ne '' ) { - $url =~ s/(^|\&)update\=\d//gi; - $url =~ s/(^|\&)debug\=.*//gi; - $url =~ s/\?\&/\?/g; - $url =~ s/\&{2,99}/\&/g; - $url =~ s/\&$//g; - $url =~ s/^\/\//\//g; - } - foreach my $pattern (@$cache_map_keys) { - - my $filename = $url; - if ( $filename =~ /$pattern/ ) { - my $m1 = $1; - my $m2 = $2; - my $m3 = $3; - my $m4 = $4; - my $m5 = $5; - my $m6 = $6; - my $m7 = $7; - my $m8 = $8; - - # my $m9=$9; - - my $result = $cache_map->{$pattern}; - - $filename =~ s/$pattern/$result/; - $filename =~ s/\$1/$m1/ if ( defined $m1 ); - $filename =~ s/\$2/$m2/ if ( defined $m2 ); - $filename =~ s/\$3/$m3/ if ( defined $m3 ); - $filename =~ s/\$4/$m4/ if ( defined $m4 ); - $filename =~ s/\$5/$m5/ if ( defined $m5 ); - $filename =~ s/\$6/$m6/ if ( defined $m6 ); - $filename =~ s/\$7/$m7/ if ( defined $m7 ); - $filename =~ s/\$8/$m8/ if ( defined $m8 ); - - # $filename=~s/\$9/$m9/ if (defined $m9); - $filename = $config->{cache}->{cache_dir} . $filename; - return $filename; - } - } - return undef; -} - -#deprecated: set file from params -sub set { - my $params = shift; - my $content = shift; - - my $filename = get_filename($params); - my $cache = { - filename => $filename, - content => $content - }; - - # print $filename.":file\n"; - - if ( defined $filename ) { - cache::save($cache); - } -} - -sub save { - my $cache = shift; - - return if $cache->{action} ne 'save'; - return if ( !defined $cache->{filename} ) || ( $cache->{filename} eq '' ); - - log::save_file( $cache->{filename}, $cache->{content} ); - chmod 0664, $cache->{filename}; -} - -sub escape_regexp { - my $reg_exp = shift; - $reg_exp =~ s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi; - return $reg_exp; -} - -sub escape_regexp_line { - my $reg_exp = shift; - $reg_exp =~ s/([\^\$\\(\)\[\]\{\}\|\/\*\+\.\-\&\:])/\\$1/gi; - return '^' . $reg_exp . '$'; -} - -sub configure { - my $file_name = shift; - - cache::init(); - cache::add_map( '', $file_name ); -} - -#do not delete last line! -1; diff --git a/lib/calcms/calendar.pm b/lib/calcms/calendar.pm index e6a4212..9a89b85 100644 --- a/lib/calcms/calendar.pm +++ b/lib/calcms/calendar.pm @@ -1,22 +1,22 @@ package calendar; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Date::Calc(); use template(); -use cache(); use events(); use base 'Exporter'; our @EXPORT_OK = qw(init get_cached_or_render get render get_calendar_weeks configure_cache); -sub init { +sub init() { } -sub get_cached_or_render { +sub get_cached_or_render($$$) { # my $output = $_[0] my $config = $_[1]; @@ -25,30 +25,12 @@ sub get_cached_or_render { my $parms = $request->{params}->{checked}; my $debug = $config->{system}->{debug}; - my $cache = {}; - if ( $config->{cache}->{use_cache} == 1 ) { - calendar::configure_cache($config); - $cache = cache::load( $config, $parms ); - if ( defined $cache->{content} ) { - $_[0] = $cache->{content}; - return; - } - } - my $calendar = calendar::get( $config, $request ); calendar::render( $_[0], $config, $request, $calendar ); - - #write to cache - if ( $config->{cache}->{use_cache} == 1 ) { - - #todo:put out reference only - $cache->{content} = $_[0]; - cache::save($cache); - } } -sub get { +sub get($$) { my $config = shift; my $request = shift; @@ -156,7 +138,7 @@ sub get { $start_year = $1; $start_month = $2; } - my $monthNames=time::getMonthNamesShort($language); + my $monthNames = time::getMonthNamesShort($language); my $start_month_name = $monthNames->[ $start_month - 1 ]; if ( $params->{month_only} eq '1' ) { @@ -208,7 +190,8 @@ sub get { my $weekday = 0; my $day_result = undef; - ( $week_of_year, $woy_year ) = Date::Calc::Week_of_Year( $year, $month, $day ) unless defined $week_of_year; + ( $week_of_year, $woy_year ) = Date::Calc::Week_of_Year( $year, $month, $day ) + unless defined $week_of_year; $day_result = { date => $date, @@ -299,7 +282,7 @@ sub get { } -sub render { +sub render($$$$) { # my $out = $_[0]; my $config = $_[1]; @@ -314,12 +297,13 @@ sub render { $template_parameters->{base_url} = $config->{locations}->{base_url}; $template_parameters->{cache_base_url} = $config->{cache}->{base_url}; $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} ); - $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} ); + $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} + if ( $config->{cache}->{use_client_cache} ); template::process( $config, $_[0], $parms->{template}, $template_parameters ); } -sub get_calendar_weeks { +sub get_calendar_weeks($$$) { my $config = shift; my $start = shift; my $end = shift; @@ -349,7 +333,7 @@ sub get_calendar_weeks { return $years; } -sub getWeeksOfMonth { +sub getWeeksOfMonth($$) { my $thisYear = shift; my $thisMonth = shift; my $thisDay = 1; @@ -439,22 +423,7 @@ sub getWeeksOfMonth { return \@weeks; } -sub configure_cache { - my $config = shift; - my $debug = $config->{system}->{debug}; - - cache::init(); - - my $date_pattern = cache::get_date_pattern(); - my $controllers = $config->{controllers}; - - cache::add_map( '', $controllers->{calendar} . '/cal.html' ); - cache::add_map( 'date=' . $date_pattern, $controllers->{calendar} . '/$1-$2.html' ); - cache::add_map( 'from_date=' . $date_pattern . '&till_date=' . $date_pattern, $controllers->{calendar} . '/$1-$2_$5-$6.html' ); - -} - -sub check_params { +sub check_params($$) { my $config = shift; my $params = shift; diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 11f3153..2396abf 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -1,7 +1,8 @@ package comments; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use db(); @@ -12,13 +13,12 @@ use time(); use base 'Exporter'; our @EXPORT_OK = - qw(init get_cached_or_render get modify_results render configure_cache get_query get_by_event get_level get_events check insert set_lock_status set_news_status lock update_comment_count sort) - ; + qw(init get_cached_or_render get modify_results render configure_cache get_query get_by_event get_level get_events check insert set_lock_status set_news_status lock update_comment_count sort); -sub init { +sub init() { } -sub get_cached_or_render { +sub get_cached_or_render($$$;$) { # my $response=$_[0]; my $config = $_[1]; @@ -33,7 +33,6 @@ sub get_cached_or_render { my $comment = $request->{params}->{checked}; my $filename = ''; - my $cache = {}; my $results = comments::get( $config, $request ); @@ -54,15 +53,8 @@ sub get_cached_or_render { comments::modify_results( $results, $config, $request ); - #print STDERR Dumper($results); $results = comments::sort( $config, $results ) if ( $comment->{type} eq 'tree' ); - #print STDERR Dumper($results); - # if ($comment->{sort_order}eq'desc'){ - # my @results= reverse(@$results); - # $results=\@results; - # } - if ( ( $params->{show_max} ne '' ) && ( $params->{limit} ne '' ) && ( $params->{show_max} < $params->{limit} ) ) @@ -81,7 +73,7 @@ sub get_cached_or_render { } -sub get { +sub get($$) { my $config = shift; my $request = shift; @@ -99,7 +91,7 @@ sub get { return $results; } -sub get_query { +sub get_query($$$) { my $dbh = shift; my $config = shift; my $request = shift; @@ -150,8 +142,9 @@ sub get_query { } my $dbcols = [ - 'id', 'event_start', 'event_id', 'content', 'ip', 'author', 'email', 'lock_status', - 'created_at', 'title', 'parent_id', 'level', 'news_status', 'project' + 'id', 'event_start', 'event_id', 'content', 'ip', 'author', + 'email', 'lock_status', 'created_at', 'title', 'parent_id', 'level', + 'news_status', 'project' ]; my $cols = join( ', ', map { 'c.' . $_ } @$dbcols ); my $query = qq{ @@ -168,7 +161,7 @@ sub get_query { return ( \$query, $bind_values ); } -sub modify_results { +sub modify_results($$$) { my $results = $_[0]; my $config = $_[1]; my $request = $_[2]; @@ -204,11 +197,12 @@ sub modify_results { $result->{content} = markup::html_to_plain( $result->{html_content} ); $result->{short_content} = markup::html_to_plain( $result->{short_content} ); - $result->{excerpt} = "lass dich ueberraschen" if ( defined $result->{excerpt} ) && ( $result->{excerpt} eq '' ); - $result->{excerpt} = markup::html_to_plain( $result->{excerpt} ); - $result->{title} = markup::html_to_plain( $result->{title} ); - $result->{series_name} = markup::html_to_plain( $result->{series_name} ); - $result->{program} = markup::html_to_plain( $result->{program} ); + $result->{excerpt} = "lass dich ueberraschen" + if ( defined $result->{excerpt} ) && ( $result->{excerpt} eq '' ); + $result->{excerpt} = markup::html_to_plain( $result->{excerpt} ); + $result->{title} = markup::html_to_plain( $result->{title} ); + $result->{series_name} = markup::html_to_plain( $result->{series_name} ); + $result->{program} = markup::html_to_plain( $result->{program} ); if ( defined $result->{created_at} ) { $result->{created_at} =~ s/ /T/gi; @@ -224,7 +218,7 @@ sub modify_results { return $results; } -sub render { +sub render($$$$) { # my $response =$_[0]; my $config = $_[1]; @@ -244,14 +238,15 @@ sub render { $template_parameters->{event_id} = $params->{event_id}; $template_parameters->{event_start} = $params->{event_start}; - $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} ); - $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} ); - $template_parameters->{controllers} = $config->{controllers}; + $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} ); + $template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} + if ( $config->{cache}->{use_client_cache} ); + $template_parameters->{controllers} = $config->{controllers}; template::process( $config, $_[0], $params->{template}, $template_parameters ); } #check if comment exists already -sub check { +sub check ($$$) { my $dbh = shift; my $config = shift; my $comment = shift; @@ -268,8 +263,10 @@ sub check { and ip=? and content=? }; - my $bind_values = - [ $comment->{event_start}, $comment->{event_id}, $comment->{parent_id}, $comment->{author}, $comment->{ip}, $comment->{content} ]; + my $bind_values = [ + $comment->{event_start}, $comment->{event_id}, $comment->{parent_id}, + $comment->{author}, $comment->{ip}, $comment->{content} + ]; my $comments = db::get( $dbh, $query, $bind_values ); @@ -279,7 +276,7 @@ sub check { } #used for insert -sub get_level { +sub get_level($$$) { my $dbh = shift; my $config = shift; my $comment = shift; @@ -314,7 +311,7 @@ sub get_level { return 0; } -sub get_by_event { +sub get_by_event($$$) { my $dbh = shift; my $config = shift; my $request = $_[0]; @@ -359,7 +356,7 @@ sub get_by_event { return $comments; } -sub get_by_time { +sub get_by_time($$$) { my $dbh = shift; my $config = shift; my $comment = shift; @@ -398,7 +395,7 @@ sub get_by_time { return $comments; } -sub get_events { +sub get_events($$$$) { my $dbh = shift; my $config = shift; my $request = shift; @@ -465,7 +462,7 @@ sub get_events { return \@sorted_events; } -sub insert { +sub insert ($$$) { my $dbh = shift; my $config = shift; my $comment = shift; @@ -488,7 +485,7 @@ sub insert { return $comment_id; } -sub set_lock_status { +sub set_lock_status ($$$) { my $dbh = shift; my $config = shift; my $comment = shift; @@ -516,7 +513,7 @@ sub set_lock_status { } } -sub set_news_status { +sub set_news_status($$$) { my $dbh = shift; my $config = shift; my $comment = shift; @@ -532,7 +529,7 @@ sub set_news_status { db::put( $dbh, $query, $bind_values ); } -sub update_comment_count { +sub update_comment_count ($$$) { my $dbh = shift; my $config = shift; my $comment = shift; @@ -557,8 +554,26 @@ sub update_comment_count { db::put( $dbh, $query, $bind_values ); } +sub sort_childs { + my $node = shift; + my $nodes = shift; + my $sorted_nodes = shift; + + #push node into list of sorted nodes + push @{$sorted_nodes}, $node; + + #return if node is leaf + return $sorted_nodes unless ( defined $node->{childs} ); + + #process child nodes + for my $child ( @{ $node->{childs} } ) { + $sorted_nodes = sort_childs( $child, $nodes, $sorted_nodes ); + } + return $sorted_nodes; +} + #precondition: results are presorted by creation date (by sql) -sub sort { +sub sort($$) { my $config = shift; my $results = shift; @@ -589,44 +604,15 @@ sub sort { return $sorted_nodes; } -sub sort_childs { - my $node = shift; - my $nodes = shift; - my $sorted_nodes = shift; - - #push node into list of sorted nodes - push @{$sorted_nodes}, $node; - - #return if node is leaf - return $sorted_nodes unless ( defined $node->{childs} ); - - #process child nodes - for my $child ( @{ $node->{childs} } ) { - $sorted_nodes = sort_childs( $child, $nodes, $sorted_nodes ); - } - return $sorted_nodes; -} - -sub configure_cache { - my $config = shift; - - cache::init(); - my $controllers = $config->{controllers}; - - cache::add_map( 'template=comments_newest&limit=3&type=list', $controllers->{comments} . '/neueste.html' ); - cache::add_map( 'template=comments_atom.xml&limit=20', $controllers->{comments} . '/feed.xml' ); - cache::add_map( 'template=comments.html&event_id=(\d+)&event_start=' . cache::get_datetime_pattern(), - $controllers->{comments} . '/$1_$2-$3-$4_$5-$6.html' ); -} - -sub check_params { - my $config = shift; - my $params = shift; - +sub check_params ($$) { + my $config = shift; + my $params = shift; my $comment = {}; $comment->{event_start} = ''; - if ( ( defined $params->{event_start} ) && ( $params->{event_start} =~ /(\d\d\d\d\-\d\d\-\d\d[T ]\d\d\:\d\d)(\:\d\d)?/ ) ) { + if ( ( defined $params->{event_start} ) + && ( $params->{event_start} =~ /(\d\d\d\d\-\d\d\-\d\d[T ]\d\d\:\d\d)(\:\d\d)?/ ) ) + { $comment->{event_start} = $1; } @@ -665,9 +651,10 @@ sub check_params { $comment->{debug} = $1; } - log::error( $config, 'missing parameter a' ) if ( defined $params->{limit} ) && ( $comment->{limit} eq '' ); - log::error( $config, 'missing parameter b' ) if ( defined $params->{event_id} ) && ( $comment->{event_id} eq '' ); - log::error( $config, 'missing parameter c' ) if ( defined $params->{event_start} ) && ( $comment->{event_start} eq '' ); + log::error( $config, 'missing parameter a' ) if ( defined $params->{limit} ) && ( $comment->{limit} eq '' ); + log::error( $config, 'missing parameter b' ) if ( defined $params->{event_id} ) && ( $comment->{event_id} eq '' ); + log::error( $config, 'missing parameter c' ) + if ( defined $params->{event_start} ) && ( $comment->{event_start} eq '' ); my $delta_days = 1; if ( $comment->{event_start} ne '' ) { @@ -690,3 +677,4 @@ sub check_params { #do not delete last line! 1; + diff --git a/lib/calcms/config.pm b/lib/calcms/config.pm index 56bdcfb..5a8b942 100644 --- a/lib/calcms/config.pm +++ b/lib/calcms/config.pm @@ -1,7 +1,8 @@ package config; -use warnings; use strict; +use warnings; +no warnings 'redefine'; use FindBin(); use Config::General(); @@ -11,13 +12,13 @@ our @EXPORT_OK = qw(get set); my $config = undef; -sub set { +sub set($) { my $value = shift; $config = $value; return; } -sub get { +sub get($) { my $filename = shift; return $config if ( defined $config ) && ( $config->{cache}->{cache_config} == 1 ); diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index f17fa89..72d590c 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -1,7 +1,8 @@ package creole_wiki; -use warnings; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use markup(); @@ -10,7 +11,7 @@ use base 'Exporter'; our @EXPORT_OK = qw(extractEventFromWikiText removeMeta eventToWikiText extractMeta removeMeta metaToWiki); #convert creole wiki text to event -sub extractEventFromWikiText { +sub extractEventFromWikiText($;$) { my $params = shift; my $event = shift; $event = {} unless ( defined $event ); @@ -134,7 +135,7 @@ sub extractEventFromWikiText { return $event; } -sub eventToWikiText { +sub eventToWikiText($$) { my $event = shift; my $local_media_url = $event->{local_media_url} || ''; @@ -195,7 +196,7 @@ sub eventToWikiText { } #extrace meta tags from comment text -sub extractMeta { +sub extractMeta ($$){ my $comments = shift; my $meta = shift; @@ -236,7 +237,7 @@ sub extractMeta { } #remove meta tags from comment text -sub removeMeta { +sub removeMeta($) { my $comments = shift || ''; my $result = ''; diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index c8a2713..81184e3 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -1,7 +1,8 @@ package db; -use warnings 'all'; use strict; +use warnings; +no warnings 'redefine'; use DBD::mysql(); use Data::Dumper; @@ -26,7 +27,7 @@ our $read = 1; our $write = 1; # connect to database -sub connect { +sub connect($;$) { my $options = shift; my $request = shift; @@ -62,7 +63,7 @@ sub connect { return $dbh; } -sub disconnect { +sub disconnect ($){ my $request = shift; my $dbh = $request->{connection}; $dbh->disconnect; @@ -71,7 +72,7 @@ sub disconnect { } # get all database entries of an sql query (as list of hashs) -sub get { +sub get($$;$) { my $dbh = shift; my $sql = shift; my $bind_values = shift; @@ -105,7 +106,7 @@ sub get { } # get list of table columns -sub get_columns { +sub get_columns($$) { my $dbh = shift; my $table = shift; @@ -115,7 +116,7 @@ sub get_columns { } # get hash with table columns as keys -sub get_columns_hash { +sub get_columns_hash($$) { my $dbh = shift; my $table = shift; @@ -128,7 +129,7 @@ sub get_columns_hash { } #returns last inserted id -sub insert { +sub insert ($$$){ my $dbh = shift; my $tablename = shift; my $entry = shift; @@ -151,7 +152,7 @@ sub insert { } # execute a modifying database command (update,insert,...) -sub put { +sub put($$$) { my $dbh = shift; my $sql = shift; my $bind_values = shift; @@ -177,7 +178,7 @@ sub put { return undef; } -sub quote { +sub quote($$) { my $dbh = shift; my $sql = shift; @@ -186,7 +187,7 @@ sub quote { } #subtract hours, deprecated(!) -sub shift_date_by_hours { +sub shift_date_by_hours($$$) { my $dbh = shift; my $date = shift; my $offset = shift; @@ -198,7 +199,7 @@ sub shift_date_by_hours { } #add minutes, deprecated(!) -sub shift_datetime_by_minutes { +sub shift_datetime_by_minutes($$$) { my $dbh = shift; my $datetime = shift; my $offset = shift; @@ -210,7 +211,7 @@ sub shift_datetime_by_minutes { } # get next free id of a database table -sub next_id { +sub next_id ($$){ my $dbh = shift; my $table = shift; @@ -224,7 +225,7 @@ sub next_id { } # get max id from table -sub get_max_id { +sub get_max_id($$) { my $dbh = shift; my $table = shift; diff --git a/lib/calcms/eventOps.pm b/lib/calcms/eventOps.pm index 122b2b0..c260167 100644 --- a/lib/calcms/eventOps.pm +++ b/lib/calcms/eventOps.pm @@ -1,6 +1,8 @@ package eventOps; -use warnings "all"; + use strict; +use warnings; +no warnings 'redefine'; use uac(); use events(); @@ -21,7 +23,7 @@ our @EXPORT_OK = qw( ); # functions: to be separated -sub setAttributesFromSeriesTemplate { +sub setAttributesFromSeriesTemplate($$$) { my $config = shift; my $params = shift; my $event = shift; @@ -54,7 +56,7 @@ sub setAttributesFromSeriesTemplate { return $serie; } -sub setAttributesFromSchedule { +sub setAttributesFromSchedule ($$$){ my $config = shift; my $params = shift; my $event = shift; @@ -87,7 +89,7 @@ sub setAttributesFromSchedule { return $event; } -sub setAttributesFromOtherEvent { +sub setAttributesFromOtherEvent ($$$){ my $config = shift; my $params = shift; my $event = shift; @@ -119,7 +121,7 @@ sub setAttributesFromOtherEvent { return $event; } -sub setAttributesForCurrentTime { +sub setAttributesForCurrentTime ($$){ my $serie = shift; my $event = shift; @@ -138,14 +140,14 @@ sub setAttributesForCurrentTime { } # get recurrence base id -sub getRecurrenceBaseId { +sub getRecurrenceBaseId ($){ my $event = shift; return $event->{recurrence} if ( defined $event->{recurrence} ) && ( $event->{recurrence} ne '' ) && ( $event->{recurrence} ne '0' ); return $event->{event_id}; } # get a new event for given series -sub getNewEvent { +sub getNewEvent($$$) { my $config = shift; my $params = shift; my $action = shift; @@ -205,7 +207,7 @@ sub getNewEvent { } # add user, action -sub createEvent { +sub createEvent($$$) { my $request = shift; my $event = shift; my $action = shift; diff --git a/lib/calcms/event_history.pm b/lib/calcms/event_history.pm index 309b571..6d1a100 100644 --- a/lib/calcms/event_history.pm +++ b/lib/calcms/event_history.pm @@ -1,7 +1,8 @@ package event_history; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; @@ -10,7 +11,7 @@ our @EXPORT_OK = qw(get_columns get get_by_id insert insert_by_event_id delete sub debug; -sub get_columns { +sub get_columns ($){ my $config = shift; my $dbh = db::connect($config); @@ -22,7 +23,7 @@ sub get_columns { return $columns; } -sub get { +sub get ($$){ my $config = shift; my $condition = shift; @@ -85,7 +86,7 @@ sub get { return $changes; } -sub get_by_id { +sub get_by_id($$) { my $config = shift; my $id = shift; @@ -102,7 +103,7 @@ sub get_by_id { return $studios->[0]; } -sub insert { +sub insert($$) { my $config = shift; my $entry = shift; @@ -124,7 +125,7 @@ sub insert { } # insert event -sub insert_by_event_id { +sub insert_by_event_id ($$){ my $config = shift; my $options = shift; @@ -157,7 +158,7 @@ sub insert_by_event_id { event_history::insert( $config, $event ); } -sub delete { +sub delete ($$){ my $config = shift; my $entry = shift; @@ -165,7 +166,7 @@ sub delete { db::put( $dbh, 'delete from calcms_event_history where event_id=?', [ $entry->{id} ] ); } -sub error { +sub error ($){ my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 6e0390f..ece6d42 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -1,7 +1,8 @@ package events; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use DBI(); @@ -10,7 +11,7 @@ use template(); use config(); use time(); use db(); -use cache(); + use markup(); use log(); use project(); @@ -37,7 +38,7 @@ our @EXPORT_OK = qw( sub init { } -sub get_cached_or_render { +sub get_cached_or_render($$$) { # my $response=$_[0]; my $config = $_[1]; @@ -46,31 +47,13 @@ sub get_cached_or_render { my $params = $request->{params}->{checked}; my $debug = $config->{system}->{debug}; - my $cache = {}; - if ( $config->{cache}->{use_cache} == 1 ) { - events::configure_cache($config); - $cache = cache::load( $config, $params ); - if ( defined $cache->{content} ) { - $_[0] = $cache->{content}; - return; - } - } - my $results = events::get( $config, $request ); events::render( $_[0], $config, $request, $results ); - #write to cache - if ( $config->{cache}->{use_cache} == 1 ) { - - #todo:put out reference only - $cache->{content} = $_[0]; - cache::save($cache); - } - return $_[0]; } -sub get { +sub get($$) { my $config = shift; my $request = shift; @@ -92,7 +75,7 @@ sub get { return $results; } -sub modify_results { +sub modify_results ($$$$) { my $dbh = shift; my $config = shift; my $request = shift; @@ -242,14 +225,14 @@ sub modify_results { $result->{one_comment} = 1 if ( $result->{comment_count} == 1 ); $result->{no_comment} = 1 if ( $result->{comment_count} == 0 ); - #fix image url - #$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; - #if ($params->{exclude_event_images}==1){ - # if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ - # $result->{image} = $result->{series_image}; - # $result->{image_label} = $result->{series_image_label}; - # } - #} +#fix image url +#$params->{exclude_event_images}=0 unless defined $params->{exclude_event_images}; +#if ($params->{exclude_event_images}==1){ +# if ( (defined $config->{permissions}->{hide_event_images}) && ($config->{permissions}->{hide_event_images} eq '1') ){ +# $result->{image} = $result->{series_image}; +# $result->{image_label} = $result->{series_image_label}; +# } +#} if ( defined $result->{image} ) { my $url = $config->{locations}->{local_media_url} || ''; @@ -504,7 +487,8 @@ sub calc_dates { if ( ( defined $params->{template} ) && ( $params->{template} =~ /(\.xml)/ ) ) { - $result->{start_datetime_utc} = time::datetime_to_utc_datetime( $result->{start_datetime}, $config->{date}->{time_zone} ); + $result->{start_datetime_utc} = + time::datetime_to_utc_datetime( $result->{start_datetime}, $config->{date}->{time_zone} ); } $result->{end_datetime} = $result->{end}; @@ -521,7 +505,8 @@ sub calc_dates { if ( ( defined $params->{template} ) && ( $params->{template} =~ /(\.xml)/ ) ) { - $result->{end_datetime_utc} = time::datetime_to_utc_datetime( $result->{end_datetime}, $config->{date}->{time_zone} ); + $result->{end_datetime_utc} = + time::datetime_to_utc_datetime( $result->{end_datetime}, $config->{date}->{time_zone} ); } if ( ( defined $previous_result ) @@ -550,15 +535,15 @@ sub calc_dates { if ( defined $result->{weekday} ) { my $language = $config->{date}->{language} || 'en'; - my $weekdayIndex = time::getWeekdayIndex($result->{weekday}) || 0; - - $result->{weekday_name} = time::getWeekdayNames($language)->[$weekdayIndex]; + my $weekdayIndex = time::getWeekdayIndex( $result->{weekday} ) || 0; + + $result->{weekday_name} = time::getWeekdayNames($language)->[$weekdayIndex]; $result->{weekday_short_name} = time::getWeekdayNamesShort($language)->[$weekdayIndex]; } return $result; } -sub add_recordings { +sub add_recordings($$$$) { my $dbh = shift; my $config = shift; my $request = shift; @@ -606,7 +591,7 @@ sub add_recordings { return $events; } -sub getDateQueryConditions { +sub getDateQueryConditions ($$$) { my $config = shift; my $params = shift; my $bind_values = shift; @@ -770,7 +755,7 @@ sub getDateQueryConditions { } # if recordings is set in params, recordings date and path will be included -sub get_query { +sub get_query($$$) { my $dbh = shift; my $config = shift; my $request = shift; @@ -1130,7 +1115,7 @@ sub get_query { return ( \$query, $bind_values ); } -sub render { +sub render($$$$;$) { # my $response = $_[0]; my $config = $_[1]; @@ -1220,7 +1205,8 @@ sub render { $template_parameters->{controllers} = $config->{controllers}; $template_parameters->{hide_event_images} = 1 - if ( defined $config->{permissions}->{hide_event_images} ) && ( $config->{permissions}->{hide_event_images} == 1 ); + if ( defined $config->{permissions}->{hide_event_images} ) + && ( $config->{permissions}->{hide_event_images} == 1 ); # use Data::Dumper;print STDERR Dumper($template_parameters)."\n"; template::process( $config, $_[0], $params->{template}, $template_parameters ); @@ -1228,7 +1214,7 @@ sub render { return $_[0]; } -sub get_running_event_id { +sub get_running_event_id($) { my $dbh = shift; my $query = qq{ @@ -1255,7 +1241,7 @@ sub get_running_event_id { } # add filters to query -sub setDefaultEventConditions { +sub setDefaultEventConditions ($$$$) { my $config = shift; my $conditions = $_[0]; my $bind_values = $_[1]; @@ -1293,7 +1279,7 @@ sub setDefaultEventConditions { } # for local use only or add support for exclude_projects and exclude_locations -sub getEventById { +sub getEventById ($$$$) { my $dbh = shift; my $config = shift; my $event_id = shift; @@ -1320,7 +1306,7 @@ sub getEventById { return $events; } -sub get_next_event_of_series { +sub get_next_event_of_series ($$$) { my $dbh = shift; my $config = shift; my $options = shift; @@ -1360,7 +1346,7 @@ sub get_next_event_of_series { return $events->[0]->{id}; } -sub get_previous_event_of_series { +sub get_previous_event_of_series($$$) { my $dbh = shift; my $config = shift; my $options = shift; @@ -1398,7 +1384,7 @@ sub get_previous_event_of_series { } # used by calendar -sub get_by_date_range { +sub get_by_date_range ($$$$$) { my $dbh = shift; my $config = shift; my $start_date = shift; @@ -1423,7 +1409,8 @@ sub get_by_date_range { $conditions = join( ' and ', @$conditions ); my $select = qq{distinct date(start) 'start_date'}; - $select = qq{distinct date(DATE_SUB(start, INTERVAL $day_starting_hour HOUR)) 'start_date'} if defined $day_starting_hour; + $select = qq{distinct date(DATE_SUB(start, INTERVAL $day_starting_hour HOUR)) 'start_date'} + if defined $day_starting_hour; my $query = qq{ select $select @@ -1438,7 +1425,7 @@ sub get_by_date_range { return $events; } -sub get_by_image { +sub get_by_image ($$$) { my $dbh = shift; my $config = shift; my $filename = shift; @@ -1462,7 +1449,7 @@ sub get_by_image { } # deleting an event is currently disabled -sub delete { +sub delete ($$$) { return; my $request = shift; my $config = shift; @@ -1487,51 +1474,7 @@ sub delete { } -#TODO: add location to cache map -sub configure_cache { - my $config = shift; - my $debug = $config->{system}->{debug}; - - my $date_pattern = cache::get_date_pattern(); - my $controllers = $config->{controllers}; - - cache::init(); - cache::add_map( '', 'index.html' ); - - my $name = ''; - my $extension = ''; - my $templates = $config->{templates}->{events}; - - for my $template (@$templates) { - if ( $template =~ /^(.+)\.([^\.]+)$/ ) { - $name = $1; - $extension = $2; - } - cache::add_map( 'template=' . $template, $controllers->{events} . '/' . $name . '.' . $extension ); - cache::add_map( 'template=' . $template . '&date=today', $controllers->{events} . '/' . $template . '_today.' . $extension ); - cache::add_map( 'template=' . $template . '&date=' . $date_pattern, - $controllers->{events} . '/' . $name . '_date_$1-$2-$3.' . $extension ); - cache::add_map( 'template=' . $template . '&time=now', $controllers->{events} . '/' . $template . '_now.html' ); - cache::add_map( 'template=' . $template . '&time=now&limit=(\d+)', - $controllers->{events} . '/' . $name . '_now_limit_$1.' . $extension ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern, - $controllers->{events} . '/' . $name . '_from_$1-$2-$3_till_$4_$5_$6.' . $extension - ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&weekday=(\d)', - $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_weekday_$7.' . $extension - ); - cache::add_map( - 'template=' . $template . '&from_date=' . $date_pattern . '&till_date=' . $date_pattern . '&limit=(\d)', - $controllers->{events} . '/' . $template . '_from_$1-$2-$3_till_$4_$5_$6_limit_$7.' . $extension - ); - cache::add_map( 'template=' . $template . '&weekday=(\d)', $controllers->{events} . '/' . $name . '_weekday_$1.' . $extension ); - cache::add_map( 'template=' . $template . '&event_id=(\d+)', $controllers->{event} . '/' . $name . '_page_$1.' . $extension ); - } -} - -sub get_duration { +sub get_duration ($$) { my $config = shift; my $event = shift; my $timezone = $config->{date}->{time_zone}; @@ -1548,7 +1491,7 @@ sub get_duration { return $duration / 60; } -sub check_params { +sub check_params ($$) { my $config = shift; my $params = shift; @@ -1679,7 +1622,8 @@ sub check_params { $exclude_projects = 1 if ( defined $params->{exclude_projects} ) && ( $params->{exclude_projects} eq '1' ); my $exclude_event_images = 0; - $exclude_event_images = 1 if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ); + $exclude_event_images = 1 + if ( defined $params->{exclude_event_images} ) && ( $params->{exclude_event_images} eq '1' ); #show future events by default my $archive = 'future'; @@ -1826,7 +1770,7 @@ sub check_params { return $checked; } -sub get_keys { +sub get_keys($) { my $event = shift; my $program = $event->{program} || ''; diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 18b9f2a..4c97ea5 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -1,7 +1,8 @@ package images; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use config(); use template(); @@ -12,74 +13,77 @@ our @EXPORT_OK = qw(get insert update insert_or_update delete delete_files); #column 'created_at' will be set at insert #column 'modified_at' will be set by default (do not update) -my $sql_columns = - [ 'filename', 'name', 'description', 'created_by', 'modified_by', 'modified_at', 'studio_id', 'project_id', 'public', 'licence' ]; +my $sql_columns = [ + 'filename', 'name', 'description', 'created_by', 'modified_by', 'modified_at', + 'studio_id', 'project_id', 'public', 'licence' +]; -sub get { - my $config = shift; - my $options = shift; +sub get($$) { + my $config = shift; + my $options = shift; - my @cond = (); - my $bind_values = []; - if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { - push @cond, 'project_id = ?'; - push @$bind_values, $options->{project_id}; - } - if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { - push @cond, 'studio_id = ?'; - push @$bind_values, $options->{studio_id}; - } - if ( ( defined $options->{filename} ) && ( $options->{filename} ne '' ) ) { - push @cond, 'filename = ?'; - push @$bind_values, $options->{filename}; - } - if ( ( defined $options->{from} ) && ( $options->{from} ne '' ) ) { - push @cond, 'date(created_at) >= ?'; - push @$bind_values, $options->{from}; - } - if ( ( defined $options->{till} ) && ( $options->{till} ne '' ) ) { - push @cond, 'date(created_at) <= ?'; - push @$bind_values, $options->{till}; - } - if ( ( defined $options->{created_by} ) && ( $options->{created_by} ne '' ) ) { - push @cond, 'created_by = ?'; - push @$bind_values, $options->{created_by}; - } - if ( ( defined $options->{modified_by} ) && ( $options->{modified_by} ne '' ) ) { - push @cond, 'modified_by = ?'; - push @$bind_values, $options->{modified_by}; - } - if ( ( defined $options->{licence} ) && ( $options->{licence} ne '' ) ) { - push @cond, 'licence = ?'; - push @$bind_values, $options->{licence}; - } - if ( ( defined $options->{public} ) && ( $options->{public} ne '' ) ) { - push @cond, 'public = ?'; - push @$bind_values, $options->{public}; - } + my @cond = (); + my $bind_values = []; + if ( ( defined $options->{project_id} ) && ( $options->{project_id} ne '' ) ) { + push @cond, 'project_id = ?'; + push @$bind_values, $options->{project_id}; + } + if ( ( defined $options->{studio_id} ) && ( $options->{studio_id} ne '' ) ) { + push @cond, 'studio_id = ?'; + push @$bind_values, $options->{studio_id}; + } + if ( ( defined $options->{filename} ) && ( $options->{filename} ne '' ) ) { + push @cond, 'filename = ?'; + push @$bind_values, $options->{filename}; + } + if ( ( defined $options->{from} ) && ( $options->{from} ne '' ) ) { + push @cond, 'date(created_at) >= ?'; + push @$bind_values, $options->{from}; + } + if ( ( defined $options->{till} ) && ( $options->{till} ne '' ) ) { + push @cond, 'date(created_at) <= ?'; + push @$bind_values, $options->{till}; + } + if ( ( defined $options->{created_by} ) && ( $options->{created_by} ne '' ) ) { + push @cond, 'created_by = ?'; + push @$bind_values, $options->{created_by}; + } + if ( ( defined $options->{modified_by} ) && ( $options->{modified_by} ne '' ) ) { + push @cond, 'modified_by = ?'; + push @$bind_values, $options->{modified_by}; + } + if ( ( defined $options->{licence} ) && ( $options->{licence} ne '' ) ) { + push @cond, 'licence = ?'; + push @$bind_values, $options->{licence}; + } + if ( ( defined $options->{public} ) && ( $options->{public} ne '' ) ) { + push @cond, 'public = ?'; + push @$bind_values, $options->{public}; + } - if ( ( defined $options->{search} ) && ( $options->{search} ne '' ) ) { - push @cond, '(filename like ?' . ' or name like ?' . ' or description like ?' . ' or created_by like ?' . ')'; - my $search = '%' . $options->{search} . '%'; - push @$bind_values, $search; - push @$bind_values, $search; - push @$bind_values, $search; - push @$bind_values, $search; + if ( ( defined $options->{search} ) && ( $options->{search} ne '' ) ) { + push @cond, + '(filename like ?' . ' or name like ?' . ' or description like ?' . ' or created_by like ?' . ')'; + my $search = '%' . $options->{search} . '%'; + push @$bind_values, $search; + push @$bind_values, $search; + push @$bind_values, $search; + push @$bind_values, $search; - # push @$bind_values,$search; - } + # push @$bind_values,$search; + } - my $where = ''; - if ( @cond > 0 ) { - $where = 'where ' . join( ' and ', @cond ); - } + my $where = ''; + if ( @cond > 0 ) { + $where = 'where ' . join( ' and ', @cond ); + } - my $limit = ''; - if ( ( defined $options->{limit} ) && ( $options->{limit} =~ /(\d+)/ ) ) { - $limit = ' limit ' . $1; - } + my $limit = ''; + if ( ( defined $options->{limit} ) && ( $options->{limit} =~ /(\d+)/ ) ) { + $limit = ' limit ' . $1; + } - my $query = qq{ + my $query = qq{ select * from calcms_images $where @@ -87,445 +91,453 @@ sub get { $limit }; - #print STDERR Dumper($query).Dumper($bind_values); + #print STDERR Dumper($query).Dumper($bind_values); - my $dbh = db::connect($config); - my $results = db::get( $dbh, $query, $bind_values ); + my $dbh = db::connect($config); + my $results = db::get( $dbh, $query, $bind_values ); - #print STDERR @$results."\n"; - return $results; + #print STDERR @$results."\n"; + return $results; } -sub insert_or_update { - my $dbh = shift; - my $image = shift; +sub insert_or_update($$) { + my $dbh = shift; + my $image = shift; - $image->{name} = 'new' if $image->{name} eq ''; - my $entry = get_by_filename( $dbh, $image->{filename} ); - if ( defined $entry ) { - update( $dbh, $image ); - } else { - insert( $dbh, $image ); - } + $image->{name} = 'new' if $image->{name} eq ''; + my $entry = get_by_filename( $dbh, $image->{filename} ); + if ( defined $entry ) { + update( $dbh, $image ); + } else { + insert( $dbh, $image ); + } } -sub insert { - my $dbh = shift; - my $image = shift; +sub insert ($$) { + my $dbh = shift; + my $image = shift; - my @sql_columns = @$sql_columns; + my @sql_columns = @$sql_columns; - #set created at timestamp - push @sql_columns, 'created_at'; - $image->{created_at} = time::time_to_datetime(); + #set created at timestamp + push @sql_columns, 'created_at'; + $image->{created_at} = time::time_to_datetime(); - unless ( defined $image->{created_by} ) { - print STDERR "missing created_by at image::insert\n"; - return undef; - } - unless ( defined $image->{studio_id} ) { - print STDERR "missing studio_id at image::insert\n"; - return undef; - } - unless ( defined $image->{project_id} ) { - print STDERR "missing project_id at image::insert\n"; - return undef; - } + unless ( defined $image->{created_by} ) { + print STDERR "missing created_by at image::insert\n"; + return undef; + } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at image::insert\n"; + return undef; + } + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at image::insert\n"; + return undef; + } - for my $attr ('public') { - $image->{$attr} = 0 unless ( defined $image->{$attr} ) && ( $image->{$attr} eq '1' ); - } + for my $attr ('public') { + $image->{$attr} = 0 unless ( defined $image->{$attr} ) && ( $image->{$attr} eq '1' ); + } - my $query = q{ + my $query = q{ insert into calcms_images( } . join( ',', @sql_columns ) . qq{ ) values( } . join( ', ', ( map { '?' } @sql_columns ) ) . q{ ) }; - my @bind_values = map { $image->{$_} } @sql_columns; + my @bind_values = map { $image->{$_} } @sql_columns; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $result = db::put( $dbh, $query, \@bind_values ); + #print STDERR Dumper($query).Dumper(\@bind_values); + my $result = db::put( $dbh, $query, \@bind_values ); - images::setSeriesLabels( $dbh, $image ); - images::setEventLabels( $dbh, $image ); + images::setSeriesLabels( $dbh, $image ); + images::setEventLabels( $dbh, $image ); - return $result; + return $result; } -sub update { - my $dbh = shift; - my $image = shift; +sub update($$) { + my $dbh = shift; + my $image = shift; - unless ( defined $image->{studio_id} ) { - print STDERR "missing studio_id at images::update\n"; - return undef; - } - unless ( defined $image->{project_id} ) { - print STDERR "missing project_id at image::update\n"; - return undef; - } - unless ( defined $image->{filename} ) { - print STDERR "missing filename at image::update\n"; - return undef; - } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at images::update\n"; + return undef; + } + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at image::update\n"; + return undef; + } + unless ( defined $image->{filename} ) { + print STDERR "missing filename at image::update\n"; + return undef; + } - $image->{modified_at} = time::time_to_datetime(); + $image->{modified_at} = time::time_to_datetime(); - for my $attr ('public') { - $image->{$attr} = 0 unless ( defined $image->{$attr} ) && ( $image->{$attr} eq '1' ); - } + for my $attr ('public') { + $image->{$attr} = 0 unless ( defined $image->{$attr} ) && ( $image->{$attr} eq '1' ); + } - my @set = (); - my $bind_values = []; - for my $column (@$sql_columns) { - if ( defined $image->{$column} ) { - push @set, $column . ' = ?'; - push @$bind_values, $image->{$column}; - } - } + my @set = (); + my $bind_values = []; + for my $column (@$sql_columns) { + if ( defined $image->{$column} ) { + push @set, $column . ' = ?'; + push @$bind_values, $image->{$column}; + } + } - #conditions - my $conditions = ['filename=?']; - push @$bind_values, $image->{filename}; + #conditions + my $conditions = ['filename=?']; + push @$bind_values, $image->{filename}; - push @$conditions, 'project_id=?'; - push @$bind_values, $image->{project_id} || 0; + push @$conditions, 'project_id=?'; + push @$bind_values, $image->{project_id} || 0; - push @$conditions, 'studio_id=?'; - push @$bind_values, $image->{studio_id} || 0; + push @$conditions, 'studio_id=?'; + push @$bind_values, $image->{studio_id} || 0; - return if ( @set == 0 ); + return if ( @set == 0 ); - my $set = join( ",", @set ); - $conditions = join( ' and ', @$conditions ); - my $query = qq{ + my $set = join( ",", @set ); + $conditions = join( ' and ', @$conditions ); + my $query = qq{ update calcms_images set $set where $conditions }; - #print STDERR Dumper($query) . Dumper($bind_values); - my $result = db::put( $dbh, $query, $bind_values ); - images::setSeriesLabels( $dbh, $image ); - images::setEventLabels( $dbh, $image ); + #print STDERR Dumper($query) . Dumper($bind_values); + my $result = db::put( $dbh, $query, $bind_values ); - return $result; + images::setSeriesLabels( $dbh, $image ); + images::setEventLabels( $dbh, $image ); + + return $result; } -sub delete { - my $dbh = shift; - my $image = shift; +sub delete($$) { + my $dbh = shift; + my $image = shift; - unless ( defined $image->{project_id} ) { - print STDERR "missing project_id at images::delete\n"; - return undef; - } - unless ( defined $image->{studio_id} ) { - print STDERR "missing studio_id at images::delete\n"; - return undef; - } - unless ( defined $image->{filename} ) { - print STDERR "missing filename at images::delete\n"; - return undef; - } + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at images::delete\n"; + return undef; + } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at images::delete\n"; + return undef; + } + unless ( defined $image->{filename} ) { + print STDERR "missing filename at images::delete\n"; + return undef; + } - my $project_id = $image->{project_id}; - my $studio_id = $image->{studio_id}; - my $filename = $image->{filename}; + my $project_id = $image->{project_id}; + my $studio_id = $image->{studio_id}; + my $filename = $image->{filename}; - my $conditions = ['filename=?']; - my $bind_values = [$filename]; + my $conditions = ['filename=?']; + my $bind_values = [$filename]; - push @$conditions, 'project_id=?'; - push @$bind_values, $studio_id; + push @$conditions, 'project_id=?'; + push @$bind_values, $studio_id; - push @$conditions, 'studio_id=?'; - push @$bind_values, $project_id; + push @$conditions, 'studio_id=?'; + push @$bind_values, $project_id; - $conditions = join( ' and ', @$conditions ); - my $query = qq{ + $conditions = join( ' and ', @$conditions ); + my $query = qq{ delete from calcms_images where $conditions }; - #print STDERR Dumper($query).Dumper($bind_values); - return db::put( $dbh, $query, $bind_values ); + #print STDERR Dumper($query).Dumper($bind_values); + return db::put( $dbh, $query, $bind_values ); } # deactivated -sub delete_files { - my $config = $_[0]; - my $local_media_dir = $_[1]; - my $filename = $_[2]; - my $action_result = $_[3]; - my $errors = $_[4]; +sub delete_files($$$$$) { + my $config = $_[0]; + my $local_media_dir = $_[1]; + my $filename = $_[2]; + my $action_result = $_[3]; + my $errors = $_[4]; - return undef; + return undef; - print log::error( $config, 'missing permissions on writing into local media dir' ) unless ( -w $local_media_dir ); + print log::error( $config, 'missing permissions on writing into local media dir' ) unless ( -w $local_media_dir ); - if ( $filename =~ /[^a-zA-Z0-9\.\_\-]/ ) { - log::error( $config, "invalid filename: '$filename'" ); - return; - } - if ( $filename =~ /\.\./ || $filename =~ /^\// || $filename =~ /\// ) { - log::error( $config, "invalid filename: '$filename'" ); - return; - } + if ( $filename =~ /[^a-zA-Z0-9\.\_\-]/ ) { + log::error( $config, "invalid filename: '$filename'" ); + return; + } + if ( $filename =~ /\.\./ || $filename =~ /^\// || $filename =~ /\// ) { + log::error( $config, "invalid filename: '$filename'" ); + return; + } - log::error( $config, 'missing permissions on writing into local_media_dir/images/' ) unless ( -w $local_media_dir . 'images/' ); - log::error( $config, 'missing permissions on writing into local_media_dir/thumbs/' ) unless ( -w $local_media_dir . 'thumbs/' ); - log::error( $config, 'missing permissions on writing into local_media_dir/icons/' ) unless ( -w $local_media_dir . 'icons/' ); + log::error( $config, 'missing permissions on writing into local_media_dir/images/' ) + unless ( -w $local_media_dir . 'images/' ); + log::error( $config, 'missing permissions on writing into local_media_dir/thumbs/' ) + unless ( -w $local_media_dir . 'thumbs/' ); + log::error( $config, 'missing permissions on writing into local_media_dir/icons/' ) + unless ( -w $local_media_dir . 'icons/' ); - my $path = $local_media_dir . '/upload/' . $filename; + my $path = $local_media_dir . '/upload/' . $filename; - #delete_file($path,"Upload $filename",$action_result,$errors); + #delete_file($path,"Upload $filename",$action_result,$errors); - $path = $local_media_dir . '/images/' . $filename; - delete_file( $path, "Image $filename", $action_result, $errors ); + $path = $local_media_dir . '/images/' . $filename; + delete_file( $path, "Image $filename", $action_result, $errors ); - $path = $local_media_dir . '/thumbs/' . $filename; - delete_file( $path, "Thumb $filename", $action_result, $errors ); + $path = $local_media_dir . '/thumbs/' . $filename; + delete_file( $path, "Thumb $filename", $action_result, $errors ); - $path = $local_media_dir . '/icons/' . $filename; - delete_file( $path, "Icon $filename", $action_result, $errors ); + $path = $local_media_dir . '/icons/' . $filename; + delete_file( $path, "Icon $filename", $action_result, $errors ); } # deactivated -sub delete_file { - my $path = $_[0]; - my $type = $_[1]; - my $action_result = $_[2]; - my $errors = $_[3]; +sub delete_file ($$$$) { + my $path = $_[0]; + my $type = $_[1]; + my $action_result = $_[2]; + my $errors = $_[3]; - return undef; + return undef; - unless ( -e $path ) { - $errors .= qq{Error: File does not exist!<br>}; - return; - } + unless ( -e $path ) { + $errors .= qq{Error: File does not exist!<br>}; + return; + } - unless ( -w $path ) { - $errors .= qq{Error: Cannot write $type<br>}; - return; - } + unless ( -w $path ) { + $errors .= qq{Error: Cannot write $type<br>}; + return; + } - unlink($path); - if ( $? == 0 ) { - $action_result .= qq{$type deleted<br>}; - } else { - $errors .= qq{Error on deleting $type<br>}; - } + unlink($path); + if ( $? == 0 ) { + $action_result .= qq{$type deleted<br>}; + } else { + $errors .= qq{Error on deleting $type<br>}; + } } sub getPath { - my $config = shift; - my $options = shift; + my $config = shift; + my $options = shift; - my $dir = $config->{locations}->{local_media_dir}; - return undef unless defined $dir; - return undef unless -e $dir; + my $dir = $config->{locations}->{local_media_dir}; + return undef unless defined $dir; + return undef unless -e $dir; - my $filename = $options->{filename}; - return undef unless defined $filename; - $filename =~ s/^.*\///g; + my $filename = $options->{filename}; + return undef unless defined $filename; + $filename =~ s/^.*\///g; - my $type = 'thumbs'; - $type = $options->{type} if ( defined $options->{type} ) && ( $options->{type} =~ /^(images|thumbs|icons)$/ ); + my $type = 'thumbs'; + $type = $options->{type} if ( defined $options->{type} ) && ( $options->{type} =~ /^(images|thumbs|icons)$/ ); - my $path = $dir . '/' . $type . '/' . $filename; - $path =~ s/\/+/\//g; - return $path; + my $path = $dir . '/' . $type . '/' . $filename; + $path =~ s/\/+/\//g; + return $path; } -sub getInternalPath { - my $config = shift; - my $options = shift; +sub getInternalPath ($$) { + my $config = shift; + my $options = shift; - my $dir = $config->{locations}->{local_media_dir}; - return undef unless defined $dir; - return undef unless -e $dir; + my $dir = $config->{locations}->{local_media_dir}; + return undef unless defined $dir; + return undef unless -e $dir; - my $filename = $options->{filename}; - return undef unless defined $filename; - $filename =~ s/^.*\///g; + my $filename = $options->{filename}; + return undef unless defined $filename; + $filename =~ s/^.*\///g; - my $type = 'thumbs'; - $type = $options->{type} if ( defined $options->{type} ) && ( $options->{type} =~ /^(images|thumbs|icons)$/ ); + my $type = 'thumbs'; + $type = $options->{type} if ( defined $options->{type} ) && ( $options->{type} =~ /^(images|thumbs|icons)$/ ); - my $path = $dir . '/internal/' . $type . '/' . $filename; - $path =~ s/\/+/\//g; - return $path; + my $path = $dir . '/internal/' . $type . '/' . $filename; + $path =~ s/\/+/\//g; + return $path; } -sub normalizeName { - my $name = shift; - return undef unless defined $name; - $name =~ s/.*\///g; - return $name; +sub normalizeName (;$) { + my $name = shift; + return undef unless defined $name; + $name =~ s/.*\///g; + return $name; } -sub readFile { - my $path = shift; - my $content = ''; +sub readFile($) { + my $path = shift; + my $content = ''; - print STDERR "read '$path'\n"; - return { error => "source '$path' does not exist" } unless -e $path; - return { error => "cannot read source '$path'" } unless -r $path; + print STDERR "read '$path'\n"; + return { error => "source '$path' does not exist" } unless -e $path; + return { error => "cannot read source '$path'" } unless -r $path; - open my $file, '< :raw', $path or return { error => 'could not open image file. ' . $! . " $path" }; - binmode $file; - $content = join( "", <$file> ); - close $file; - return { content => $content }; + open my $file, '< :raw', $path or return { error => 'could not open image file. ' . $! . " $path" }; + binmode $file; + $content = join( "", <$file> ); + close $file; + return { content => $content }; } -sub writeFile { - my $path = shift; - my $content = shift; +sub writeFile ($$) { + my $path = shift; + my $content = shift; - print STDERR "save '$path'\n"; - open my $fh, '> :raw', $path or return { error => 'could not save image. ' . $! . " $path" }; - binmode $fh; - print $fh $content; - close $fh; - return {}; + print STDERR "save '$path'\n"; + open my $fh, '> :raw', $path or return { error => 'could not save image. ' . $! . " $path" }; + binmode $fh; + print $fh $content; + close $fh; + return {}; } -sub deleteFile { - my $path = shift; - return { error => "source '$path' does not exist" } unless -e $path; +sub deleteFile($) { + my $path = shift; + return { error => "source '$path' does not exist" } unless -e $path; - #unlink $path; - return {}; + #unlink $path; + return {}; } -sub copyFile { - my $source = shift; - my $target = shift; - my $errors = shift; +sub copyFile ($$$) { + my $source = shift; + my $target = shift; + my $errors = shift; - my $read = images::readFile($source); - return $read if defined $read->{error}; + my $read = images::readFile($source); + return $read if defined $read->{error}; - my $write = images::writeFile( $target, $read->{content} ); - return $write; + my $write = images::writeFile( $target, $read->{content} ); + return $write; } -sub publish { - my $config = shift; - my $filename = shift; +sub publish($$) { + my $config = shift; + my $filename = shift; - print STDERR "publish\n"; - return undef unless defined $config; - return undef unless defined $filename; - my $errors = []; - for my $type ( 'images', 'thumbs', 'icons' ) { - my $source = getInternalPath( $config, { filename => $filename, type => $type } ); - my $target = getPath( $config, { filename => $filename, type => $type } ); - my $result = copyFile( $source, $target, $errors ); - if ( defined $result->{error} ) { - push @$errors, $result->{error}; - print STDERR "error on copy '$source' to '$target': $result->{error}\n"; - } - } - return $errors; + print STDERR "publish\n"; + return undef unless defined $config; + return undef unless defined $filename; + my $errors = []; + for my $type ( 'images', 'thumbs', 'icons' ) { + my $source = getInternalPath( $config, { filename => $filename, type => $type } ); + my $target = getPath( $config, { filename => $filename, type => $type } ); + my $result = copyFile( $source, $target, $errors ); + if ( defined $result->{error} ) { + push @$errors, $result->{error}; + print STDERR "error on copy '$source' to '$target': $result->{error}\n"; + } + } + return $errors; } -sub depublish { - my $config = shift; - my $filename = shift; +sub depublish ($$) { + my $config = shift; + my $filename = shift; - print STDERR "depublish\n"; - return undef unless defined $config; - return undef unless defined $filename; - my $errors = []; - for my $type ( 'images', 'thumbs', 'icons' ) { - my $path = getPath( $config, { filename => $filename, type => $type } ); - next unless defined $path; - print STDERR "remove '$path'\n"; - unlink $path; + print STDERR "depublish\n"; + return undef unless defined $config; + return undef unless defined $filename; + my $errors = []; + for my $type ( 'images', 'thumbs', 'icons' ) { + my $path = getPath( $config, { filename => $filename, type => $type } ); + next unless defined $path; + print STDERR "remove '$path'\n"; + unlink $path; - #push @$errors, $result->{error} if defined $result->{error}; - } - return $errors; + #push @$errors, $result->{error} if defined $result->{error}; + } + return $errors; } -sub checkLicence { - my $config = shift; - my $result = shift; +sub checkLicence ($$) { + my $config = shift; + my $result = shift; - print STDERR "depublish\n"; - return undef unless defined $config; - return undef unless defined $result; + print STDERR "depublish\n"; + return undef unless defined $config; + return undef unless defined $result; - return if $result->{licence} =~ /\S/; - if ( ( defined $result->{public} ) && ( $result->{public} eq '1' ) ) { - depublish( $config, $result->{filename} ); - $result->{public} = 0; - } + return if $result->{licence} =~ /\S/; + if ( ( defined $result->{public} ) && ( $result->{public} eq '1' ) ) { + depublish( $config, $result->{filename} ); + $result->{public} = 0; + } } -sub setEventLabels { - my $dbh = shift; - my $image = shift; +sub setEventLabels($$) { + my $dbh = shift; + my $image = shift; - unless ( defined $image->{project_id} ) { - print STDERR "missing project_id at images::setEventLabels\n"; - return undef; - } - unless ( defined $image->{studio_id} ) { - print STDERR "missing studio_id at images::setEventLabels\n"; - return undef; - } - unless ( defined $image->{filename} ) { - print STDERR "missing filename at images::setEventLabels\n"; - return undef; - } + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at images::setEventLabels\n"; + return undef; + } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at images::setEventLabels\n"; + return undef; + } + unless ( defined $image->{filename} ) { + print STDERR "missing filename at images::setEventLabels\n"; + return undef; + } - my $query = qq{ + my $query = qq{ update calcms_events set image_label=? where image=? }; - my $bind_values = [ $image->{licence}, $image->{filename} ]; - #print STDERR Dumper($query) . Dumper($bind_values); + my $bind_values = [ $image->{licence}, $image->{filename} ]; - my $results = db::put( $dbh, $query, $bind_values ); - #print STDERR Dumper($results) . " changes\n"; - return $results; + #print STDERR Dumper($query) . Dumper($bind_values); + + my $results = db::put( $dbh, $query, $bind_values ); + + #print STDERR Dumper($results) . " changes\n"; + return $results; } -sub setSeriesLabels { - my $dbh = shift; - my $image = shift; +sub setSeriesLabels($$) { + my $dbh = shift; + my $image = shift; - unless ( defined $image->{project_id} ) { - print STDERR "missing project_id at images::setSeriesLabels\n"; - return undef; - } - unless ( defined $image->{studio_id} ) { - print STDERR "missing studio_id at images::setSeriesLabels\n"; - return undef; - } - unless ( defined $image->{filename} ) { - print STDERR "missing filename at images::setSeriesLabels\n"; - return undef; - } + unless ( defined $image->{project_id} ) { + print STDERR "missing project_id at images::setSeriesLabels\n"; + return undef; + } + unless ( defined $image->{studio_id} ) { + print STDERR "missing studio_id at images::setSeriesLabels\n"; + return undef; + } + unless ( defined $image->{filename} ) { + print STDERR "missing filename at images::setSeriesLabels\n"; + return undef; + } - my $query = qq{ + my $query = qq{ update calcms_events set series_image_label=? where series_image=? }; - my $bind_values = [ $image->{licence}, $image->{filename} ]; - #print STDERR Dumper($query) . Dumper($bind_values); + my $bind_values = [ $image->{licence}, $image->{filename} ]; - my $results = db::put( $dbh, $query, $bind_values ); - #print STDERR Dumper($results) . " changes\n"; - return $results; + #print STDERR Dumper($query) . Dumper($bind_values); + + my $results = db::put( $dbh, $query, $bind_values ); + + #print STDERR Dumper($results) . " changes\n"; + return $results; } #do not delete last line! diff --git a/lib/calcms/localization.pm b/lib/calcms/localization.pm index e2d1dff..6481b12 100644 --- a/lib/calcms/localization.pm +++ b/lib/calcms/localization.pm @@ -1,14 +1,15 @@ package localization; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use uac(); use user_settings(); use base 'Exporter'; -our @EXPORT_OK = qw(get getJavascript); +our @EXPORT_OK = qw(get getJavascript); sub debug; @@ -17,100 +18,100 @@ sub debug; # language : get for selected language # user : get from user settings # loc : add to existing localization, optional -sub get { - my $config = shift; - my $options = shift; +sub get($$) { + my $config = shift; + my $options = shift; - #print STDERR Dumper($options); + #print STDERR Dumper($options); - #get pot file - unless ( defined $options->{file} ) { - print STDERR "missing po file\n"; - return $options->{loc} || {}; - } + #get pot file + unless ( defined $options->{file} ) { + print STDERR "missing po file\n"; + return $options->{loc} || {}; + } - my $language = undef; + my $language = undef; - #get language from options - $language = $options->{language} if ( defined $options->{language} ); + #get language from options + $language = $options->{language} if ( defined $options->{language} ); - #get language from user - if ( ( !( defined $language ) ) && ( defined $options->{user} ) ) { - my $user_settings = user_settings::get( $config, { user => $options->{user} } ); - $language = $user_settings->{language}; - } - $language = 'en' unless defined $language; - $language = 'en' unless $language eq 'de'; + #get language from user + if ( ( !( defined $language ) ) && ( defined $options->{user} ) ) { + my $user_settings = user_settings::get( $config, { user => $options->{user} } ); + $language = $user_settings->{language}; + } + $language = 'en' unless defined $language; + $language = 'en' unless $language eq 'de'; - my $loc = {}; - $loc = $options->{loc} if defined $options->{loc}; + my $loc = {}; + $loc = $options->{loc} if defined $options->{loc}; - my $files = $options->{file}; - $files =~ s/[^a-zA-Z\,\_\-]//g; + my $files = $options->{file}; + $files =~ s/[^a-zA-Z\,\_\-]//g; - #get all comma separated po files - for my $file ( split /\,/, $files ) { + #get all comma separated po files + for my $file ( split /\,/, $files ) { - #read default language - #my $po_file=$config->{locations}->{admin_pot_dir}.'/en/'.$file.'.po'; - #$loc=read_po_file($po_file, $loc); + #read default language + #my $po_file=$config->{locations}->{admin_pot_dir}.'/en/'.$file.'.po'; + #$loc=read_po_file($po_file, $loc); - #read selected language - #if($language ne 'en'){ - my $po_file = $config->{locations}->{admin_pot_dir} . '/' . $language . '/' . $file . '.po'; - $loc = read_po_file( $po_file, $loc ); + #read selected language + #if($language ne 'en'){ + my $po_file = $config->{locations}->{admin_pot_dir} . '/' . $language . '/' . $file . '.po'; + $loc = read_po_file( $po_file, $loc ); - #} - } - return $loc; + #} + } + return $loc; } -sub read_po_file { - my $po_file = shift; - my $loc = shift; +sub read_po_file($$) { + my $po_file = shift; + my $loc = shift; - unless ( -e $po_file ) { - print STDERR "po file $po_file does not exist\n"; - return $loc; - } - unless ( -r $po_file ) { - print STDERR "cannot read po file $po_file\n"; - return $loc; - } + unless ( -e $po_file ) { + print STDERR "po file $po_file does not exist\n"; + return $loc; + } + unless ( -r $po_file ) { + print STDERR "cannot read po file $po_file\n"; + return $loc; + } - my $key = ''; - open my $file, '<:encoding(UTF-8)', $po_file; - return $loc unless defined $file; - while (<$file>) { - my $line = $_; + my $key = ''; + open my $file, '<:encoding(UTF-8)', $po_file; + return $loc unless defined $file; + while (<$file>) { + my $line = $_; - #print STDERR $line; - if ( $line =~ /^msgid\s*\"(.*)\"\s*$/ ) { - $key = $1; - $key =~ s/\'//g; - $key =~ s/\"//g; - } - if ( $line =~ /^msgstr\s*\"(.*)\"\s*$/ ) { - my $val = $1; - $val =~ s/\'//g; - $val =~ s/\"//g; - $loc->{$key} = $val; - } - } - close $file; - return $loc; + #print STDERR $line; + if ( $line =~ /^msgid\s*\"(.*)\"\s*$/ ) { + $key = $1; + $key =~ s/\'//g; + $key =~ s/\"//g; + } + if ( $line =~ /^msgstr\s*\"(.*)\"\s*$/ ) { + my $val = $1; + $val =~ s/\'//g; + $val =~ s/\"//g; + $loc->{$key} = $val; + } + } + close $file; + return $loc; } -sub getJavascript { - my $loc = shift; +sub getJavascript ($){ + my $loc = shift; - my $out = '<script>'; - $out .= "var loc={};\n"; - for my $key ( sort keys %$loc ) { - $out .= qq{loc['$key']='$loc->{$key}';} . "\n"; - } - $out .= "</script>\n"; - return $out; + my $out = '<script>'; + $out .= "var loc={};\n"; + for my $key ( sort keys %$loc ) { + $out .= qq{loc['$key']='$loc->{$key}';} . "\n"; + } + $out .= "</script>\n"; + return $out; } 1; diff --git a/lib/calcms/log.pm b/lib/calcms/log.pm index fa3cf81..84d35ed 100644 --- a/lib/calcms/log.pm +++ b/lib/calcms/log.pm @@ -1,7 +1,8 @@ package log; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use base 'Exporter'; our @EXPORT_OK = qw(error load_file save_file append_file); @@ -9,7 +10,7 @@ our @EXPORT_OK = qw(error load_file save_file append_file); use config(); #TODO: check if config is given -sub error { +sub error($$) { my $config = $_[0]; my $message = "Error: $_[1]\n"; @@ -22,8 +23,8 @@ sub error { #do not call template::check to avoid deep recursion! if ( $config->{system}->{debug} ) { - template::process($config, - 'print', + template::process( + $config, 'print', 'templates/default.html', { static_files_url => $config->{locations}->{static_files_url}, @@ -35,20 +36,20 @@ sub error { die(); } -sub load_file { +sub load_file($) { my $filename = shift; my $content = ''; if ( -e $filename ) { my $FILE = undef; - open ($FILE, "<:utf8", $filename) || warn "cant read file '$filename'"; + open( $FILE, "<:utf8", $filename ) || warn "cant read file '$filename'"; $content = join "", (<$FILE>); close $FILE; return $content; } } -sub save_file { +sub save_file($$) { my $filename = shift; my $content = shift; @@ -69,7 +70,7 @@ sub save_file { } -sub append_file { +sub append_file($$) { my $filename = shift; my $content = shift; @@ -86,4 +87,4 @@ sub append_file { } #do not delete last line! -1; \ No newline at end of file +1; diff --git a/lib/calcms/mail.pm b/lib/calcms/mail.pm index b5c72f4..8fb4309 100644 --- a/lib/calcms/mail.pm +++ b/lib/calcms/mail.pm @@ -1,23 +1,25 @@ package mail; -use warnings; + use strict; +use warnings; +no warnings 'redefine'; use MIME::Lite(); -sub send { - my $mail = shift; +sub send($) { + my $mail = shift; - my $msg = MIME::Lite->new( - 'From' => $mail->{'From'}, - 'To' => $mail->{'To'}, - 'Cc' => $mail->{'Cc'}, - 'Reply-To' => $mail->{'Reply-To'}, - 'Subject' => $mail->{'Subject'}, - 'Data' => $mail->{'Data'}, - ); + my $msg = MIME::Lite->new( + 'From' => $mail->{'From'}, + 'To' => $mail->{'To'}, + 'Cc' => $mail->{'Cc'}, + 'Reply-To' => $mail->{'Reply-To'}, + 'Subject' => $mail->{'Subject'}, + 'Data' => $mail->{'Data'}, + ); - $msg->print( \*STDERR ); - $msg->send; + $msg->print( \*STDERR ); + $msg->send; } # do not delete next line diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index e912d9e..1d98c15 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -1,7 +1,9 @@ package markup; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use Text::WikiCreole(); use HTML::Parse(); @@ -15,493 +17,493 @@ use base 'Exporter'; our @EXPORT_OK = qw(fix_line_ends html_to_creole creole_to_html creole_to_plain plain_to_ical ical_to_plain ical_to_xml html_to_plain fix_utf8 uri_encode compress base26); -sub fix_line_ends { - my $s = shift; - $s =~ s/\r?\n|\r/\n/g; - return $s; +sub fix_line_ends ($) { + my $s = shift; + $s =~ s/\r?\n|\r/\n/g; + return $s; } # convert 1..26 to a..z, 27 to aa, inspired by ConvertAA -sub base26 { - my $num = shift; - return '' if $num <= 0; +sub base26($) { + my $num = shift; + return '' if $num <= 0; - my $s = ""; - while ($num) { - $s = chr( --$num % 26 + ord "a" ) . $s; - $num = int $num / 26; - } + my $s = ""; + while ($num) { + $s = chr( --$num % 26 + ord "a" ) . $s; + $num = int $num / 26; + } - return $s; + return $s; } -sub html_to_creole { - my $s = shift; +sub html_to_creole($) { + my $s = shift; - #remove elements - # $s=~s/[\r\f\n]+/\n/gi; - # $s=~s/<\/p.*?>//gi; - # $s=~s/<\/br.*?>//gi; - $s =~ s/\<\!\-\-[\s\S]*?\-\-\>//gi; - $s =~ s/<script.*?>.*?<\/script.*?>//gi; + #remove elements + # $s=~s/[\r\f\n]+/\n/gi; + # $s=~s/<\/p.*?>//gi; + # $s=~s/<\/br.*?>//gi; + $s =~ s/\<\!\-\-[\s\S]*?\-\-\>//gi; + $s =~ s/<script.*?>.*?<\/script.*?>//gi; - # $s=~s/<\/?span.*?>//gi; - # $s=~s/<\/?font.*?>//gi; - # $s=~s/<\/?meta.*?>//gi; - # $s=~s/<\/?title.*?>//gi; - # $s=~s/<\/?style.*?>//gi; - # $s=~s/<\/?col.*?>//gi; - # $s=~s/<\/?thead.*?>//gi; - # $s=~s/<\/?tbody.*?>//gi; - $s =~ s/<\/?form.*?>//gi; - $s =~ s/<\/?select.*?>//gi; - $s =~ s/<\/?option.*?//gi; - $s =~ s/<\/?input.*?>//gi; + # $s=~s/<\/?span.*?>//gi; + # $s=~s/<\/?font.*?>//gi; + # $s=~s/<\/?meta.*?>//gi; + # $s=~s/<\/?title.*?>//gi; + # $s=~s/<\/?style.*?>//gi; + # $s=~s/<\/?col.*?>//gi; + # $s=~s/<\/?thead.*?>//gi; + # $s=~s/<\/?tbody.*?>//gi; + $s =~ s/<\/?form.*?>//gi; + $s =~ s/<\/?select.*?>//gi; + $s =~ s/<\/?option.*?//gi; + $s =~ s/<\/?input.*?>//gi; - # $s=~s/<\/?button.*?>//gi; - # $s=~s/<\/?textarea.*?>//gi; - $s =~ s/<\/?script.*?>//gi; + # $s=~s/<\/?button.*?>//gi; + # $s=~s/<\/?textarea.*?>//gi; + $s =~ s/<\/?script.*?>//gi; - #table elements - # $s=~s/\s*<\/?td.*?>//gi; - # $s=~s/\s*<\/?th.*?>//gi; + #table elements + # $s=~s/\s*<\/?td.*?>//gi; + # $s=~s/\s*<\/?th.*?>//gi; - #remove line breaks - $s =~ s/[\r\n]+/ /gi; + #remove line breaks + $s =~ s/[\r\n]+/ /gi; - #formats - $s =~ s/<img.*?src="(.*?)".*?>/{{$1\|}}/gi; - $s =~ s/<img.*?title="(.*?)".*?>/{{$2\|$1}}/gi; - $s =~ s/<img.*?src="(.*?)"[^>]*?title="(.*?)".*?>/{{$1\|$2}}/gi; - $s =~ s/<img.*?title="(.*?)"[^>]*?src="(.*?)".*?>/{{$2\|$1}}/gi; - $s =~ s/<\/?img.*?>//gi; + #formats + $s =~ s/<img.*?src="(.*?)".*?>/{{$1\|}}/gi; + $s =~ s/<img.*?title="(.*?)".*?>/{{$2\|$1}}/gi; + $s =~ s/<img.*?src="(.*?)"[^>]*?title="(.*?)".*?>/{{$1\|$2}}/gi; + $s =~ s/<img.*?title="(.*?)"[^>]*?src="(.*?)".*?>/{{$2\|$1}}/gi; + $s =~ s/<\/?img.*?>//gi; - #replace line breaks from images - $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + #replace line breaks from images + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s =~ s/<i.*?>(.*?)<\/i>/\/\/$1\/\//gi; - $s =~ s/<\/?i.*?>//gi; - $s =~ s/<b.*?>(.*?)<\/b>/\*\*$1\*\*/gi; + $s =~ s/<i.*?>(.*?)<\/i>/\/\/$1\/\//gi; + $s =~ s/<\/?i.*?>//gi; + $s =~ s/<b.*?>(.*?)<\/b>/\*\*$1\*\*/gi; - # $s=~s/<\/?b.*?>//gi; + # $s=~s/<\/?b.*?>//gi; - $s =~ s/<strong.*?>(.*?)<\/strong>/\*\*$1\*\*/gi; - $s =~ s/<em.*?>(.*?)<\/em>/\/\/$1\/\//gi; - $s =~ s/<blockquote.*?>((\W+|\w+)*?)<\/blockquote>/{{{$1}}}/gi; + $s =~ s/<strong.*?>(.*?)<\/strong>/\*\*$1\*\*/gi; + $s =~ s/<em.*?>(.*?)<\/em>/\/\/$1\/\//gi; + $s =~ s/<blockquote.*?>((\W+|\w+)*?)<\/blockquote>/{{{$1}}}/gi; - # $s=~s/<a\s+.*?href="(.*?)".*?>((\W+|\w+)*?)<\/a>/\[\[$1\|$2\]\]$3/gi; - $s =~ s/<a\s+.*?href="(.*?)".*?>(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; - $s =~ s/<a.*?>//gi; + # $s=~s/<a\s+.*?href="(.*?)".*?>((\W+|\w+)*?)<\/a>/\[\[$1\|$2\]\]$3/gi; + $s =~ s/<a\s+.*?href="(.*?)".*?>(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; + $s =~ s/<a.*?>//gi; - #replace line breaks from links - $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + #replace line breaks from links + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - # print STDERR Dumper($s) if ($s=~/</); + # print STDERR Dumper($s) if ($s=~/</); - $s =~ s/[\s]+/ /gi; + $s =~ s/[\s]+/ /gi; - # $s=~s/\n[ \t\r\n]+\n/\n\n/gi; - # $s=~s/\n[ ]+/\n /gi; - # $s=~s/\n+/\n/gi; - # $s=~s/\n+/\\\n/gi; + # $s=~s/\n[ \t\r\n]+\n/\n\n/gi; + # $s=~s/\n[ ]+/\n /gi; + # $s=~s/\n+/\n/gi; + # $s=~s/\n+/\\\n/gi; - #line elements, increase head line level to avoid breaking single = chars - $s =~ s/\s*<h1.*?>/== /gi; - $s =~ s/\s*<h2.*?>/=== /gi; - $s =~ s/\s*<h3.*?>/==== /gi; - $s =~ s/\s*<h\d.*?>/===== /gi; + #line elements, increase head line level to avoid breaking single = chars + $s =~ s/\s*<h1.*?>/== /gi; + $s =~ s/\s*<h2.*?>/=== /gi; + $s =~ s/\s*<h3.*?>/==== /gi; + $s =~ s/\s*<h\d.*?>/===== /gi; - # $s=~s/\s*<\/h\d.*?>/\n/gi; + # $s=~s/\s*<\/h\d.*?>/\n/gi; - # $s=~s/<br.*?>/\\\\<br>/gi; - # $s=~s/\s*<div.*?>//gi; - # $s=~s/\s*<\/div>/\n/gi; + # $s=~s/<br.*?>/\\\\<br>/gi; + # $s=~s/\s*<div.*?>//gi; + # $s=~s/\s*<\/div>/\n/gi; - # $s=~s/<table.*?>/\n/gi; - # $s=~s/<\/table>/\n/gi; - # $s=~s/\s*<tr.*?>//gi; - # $s=~s/\s*<\/tr>//gi; + # $s=~s/<table.*?>/\n/gi; + # $s=~s/<\/table>/\n/gi; + # $s=~s/\s*<tr.*?>//gi; + # $s=~s/\s*<\/tr>//gi; - # $s=~s/\s*<ol.*?>/\n/gi; - # $s=~s/\s*<\/ol>/\n/gi; - # $s=~s/\s*<ul.*?>/\n/gi; - # $s=~s/\s*<\/ul>/\n/gi; - # $s=~s/\s*<li.*?>/\n\* /gi; - # $s=~s/\s*<\/li>//gi; + # $s=~s/\s*<ol.*?>/\n/gi; + # $s=~s/\s*<\/ol>/\n/gi; + # $s=~s/\s*<ul.*?>/\n/gi; + # $s=~s/\s*<\/ul>/\n/gi; + # $s=~s/\s*<li.*?>/\n\* /gi; + # $s=~s/\s*<\/li>//gi; - # $s=~s/\s*<p.*?>\s*/\n\n/gi; - # $s=~s/\s*<br.*?>\s*/\n /gi; + # $s=~s/\s*<p.*?>\s*/\n\n/gi; + # $s=~s/\s*<br.*?>\s*/\n /gi; - my $tree = HTML::Parse::parse_html( '<body>' . $s . '</body>' ); - my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 2000 ); - $s = $formatter->format($tree); + my $tree = HTML::Parse::parse_html( '<body>' . $s . '</body>' ); + my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 2000 ); + $s = $formatter->format($tree); - #use Data::Dumper; print "asd:<textarea cols=100 rows=5>".Dumper($s);print "</textarea>"; - $s =~ s/\</\</g; + #use Data::Dumper; print "asd:<textarea cols=100 rows=5>".Dumper($s);print "</textarea>"; + $s =~ s/\</\</g; - #fix line endings - $s =~ s/\n[ \t]+/\n/gi; + #fix line endings + $s =~ s/\n[ \t]+/\n/gi; - #$s=~s/\n[\t\r ]+\n/\n\n/g; - $s =~ s/\n{3,99}/\n\n/g; - $s =~ s/\n*\*[\s]+/\n\* /g; + #$s=~s/\n[\t\r ]+\n/\n\n/g; + $s =~ s/\n{3,99}/\n\n/g; + $s =~ s/\n*\*[\s]+/\n\* /g; - #$s=~s/(\n\*.*?\n)([^\*])/$1\n\n$2/g; + #$s=~s/(\n\*.*?\n)([^\*])/$1\n\n$2/g; - #enter line break before headlines - $s =~ s/(={2,99})/\n$1/g; + #enter line break before headlines + $s =~ s/(={2,99})/\n$1/g; - #reduce head line level - $s =~ s/=(=+)/$1/g; + #reduce head line level + $s =~ s/=(=+)/$1/g; - $s =~ s/^\s+//gi; - $s =~ s/\s+$//gi; - $s =~ s/\n{3,99}/\n\n/g; + $s =~ s/^\s+//gi; + $s =~ s/\s+$//gi; + $s =~ s/\n{3,99}/\n\n/g; - # $s=~s/\n\n+/ \\\\\n/g; - $s =~ s/\n/\\\\\n/g; - $s =~ s/\\\\\n\=/\n\=/g; + # $s=~s/\n\n+/ \\\\\n/g; + $s =~ s/\n/\\\\\n/g; + $s =~ s/\\\\\n\=/\n\=/g; - #$s=~s/\n\n/ \\\\\n/g; - # $s=~s/(\\\\\n){3,99}/\\\\\n\\\\\n/g; - #$s=~s/\\\\[ \t]+/\\\\\n/g; + #$s=~s/\n\n/ \\\\\n/g; + # $s=~s/(\\\\\n){3,99}/\\\\\n\\\\\n/g; + #$s=~s/\\\\[ \t]+/\\\\\n/g; - # $s=~s/<\/a>//gi; + # $s=~s/<\/a>//gi; - return $s; + return $s; } -sub creole_to_html { - my $s = $_[0] || ''; +sub creole_to_html ($) { + my $s = $_[0] || ''; - #$s=~s/\n\#\n/\n/g; - #fix_line_ends($s); - $s =~ s/<a\s+.*?href="(.*?)".*?>(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; - $s =~ s/<a.*?>//gi; + #$s=~s/\n\#\n/\n/g; + #fix_line_ends($s); + $s =~ s/<a\s+.*?href="(.*?)".*?>(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; + $s =~ s/<a.*?>//gi; - $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - $s =~ s/^\s+//g; - $s =~ s/\s+$//g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; + $s =~ s/^\s+//g; + $s =~ s/\s+$//g; - $s = Text::WikiCreole::creole_parse($s) || ''; + $s = Text::WikiCreole::creole_parse($s) || ''; - # $s=~s/<p>/\n/gi; - # $s=~s/\{\{\{((\W+|\w+)+?)\}\}\}/<blockquote>$1<\/blockquote>/g; - # $s=~s/\{\{(.+?)\|(.*?)\}\}/<img src="$1" title="$2" \/>/g; - # $s=~s/\[\[(.+?)\|(.*?)\]\]/<a href="$1">$2<\/a>/g; - # $s=~s/([^\:])\/\/(.*?[^\:])\/\//$1<em>$2<\/em> /g; - # $s=~s/\n=== (.*?)\n/<h3>$1<\/h3>\n/g; - # $s=~s/\n== (.*?)\n/<h2>$1<\/h2>\n/g; - #replace line breaks from images - $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + # $s=~s/<p>/\n/gi; + # $s=~s/\{\{\{((\W+|\w+)+?)\}\}\}/<blockquote>$1<\/blockquote>/g; + # $s=~s/\{\{(.+?)\|(.*?)\}\}/<img src="$1" title="$2" \/>/g; + # $s=~s/\[\[(.+?)\|(.*?)\]\]/<a href="$1">$2<\/a>/g; + # $s=~s/([^\:])\/\/(.*?[^\:])\/\//$1<em>$2<\/em> /g; + # $s=~s/\n=== (.*?)\n/<h3>$1<\/h3>\n/g; + # $s=~s/\n== (.*?)\n/<h2>$1<\/h2>\n/g; + #replace line breaks from images + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; + $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - #replace line breaks from links - # $s=~s/\n= (.*?)\n/<h1>$1<\/h1>\n/g; - # $s=~s/\*\*(.*?)\*\*/<strong>$1<\/strong> /g; - # $s=~s/^== (.*?)\n/<h2>$1<\/h2>\n/g; - # $s=~s/\n\* (.*?)([\r\n]+)/<li>$1<\/li>\n/g; - # $s=~s/\n\- (.*?)\n/<lo>$1<\/lo>\n/g; - # $s=~s/\n\n/<p>/gi; - # $s=~s/\n+/<br \/>/gi; - # $s=~s/\</\</g; + #replace line breaks from links + # $s=~s/\n= (.*?)\n/<h1>$1<\/h1>\n/g; + # $s=~s/\*\*(.*?)\*\*/<strong>$1<\/strong> /g; + # $s=~s/^== (.*?)\n/<h2>$1<\/h2>\n/g; + # $s=~s/\n\* (.*?)([\r\n]+)/<li>$1<\/li>\n/g; + # $s=~s/\n\- (.*?)\n/<lo>$1<\/lo>\n/g; + # $s=~s/\n\n/<p>/gi; + # $s=~s/\n+/<br \/>/gi; + # $s=~s/\</\</g; - #remove whitespaces and break lines at start or end of elements - for my $elem ( 'p', 'li' ) { - $s =~ s|<$elem>\s*<br/><br/>|<$elem>|g; - $s =~ s|<br/><br/>\s*</$elem>|</$elem>|g; - } + #remove whitespaces and break lines at start or end of elements + for my $elem ( 'p', 'li' ) { + $s =~ s|<$elem>\s*<br/><br/>|<$elem>|g; + $s =~ s|<br/><br/>\s*</$elem>|</$elem>|g; + } - return $s; + return $s; } -sub creole_to_plain { - my $s = shift; +sub creole_to_plain($) { + my $s = shift; - $s =~ s/\<p\>/\n/gi; - $s =~ s/\{\{\{((\W+|\w+)+?)\}\}\}/<blockquote>$1<\/blockquote>/g; - $s =~ s/\{\{(.+?)\|(.*?)\}\}//g; - $s =~ s/\[\[(.+?)\|(.*?)\]\]/$2/g; - $s =~ s/\/\/([^\/\/]*?)\/\//<em>$1<\/em> /g; - $s =~ s/\n=== (.*?)\n/\n<h3>$1<\/h3>\n/g; - $s =~ s/\n== (.*?)\n/\n<h2>$1<\/h2>\n/g; - $s =~ s/\*\*(.*?)\*\*/<strong>$1<\/strong> /g; - $s =~ s/^== (.*?)\n/<h2>$1<\/h2>\n/g; - $s =~ s/\n\* (.*?)\n/\n<li>$1<\/li>\n/g; - $s =~ s/\n\* (.*?)\n/\n<li>$1<\/li>\n/g; - $s =~ s/\n\- (.*?)\n/\n<lo>$1<\/lo>\n/g; - $s =~ s/\n\- (.*?)\n/\n<lo>$1<\/lo>\n/g; - $s =~ s/\n\n/\n<p>/gi; - $s =~ s/\n/\n<br\/>/gi; - return $s; + $s =~ s/\<p\>/\n/gi; + $s =~ s/\{\{\{((\W+|\w+)+?)\}\}\}/<blockquote>$1<\/blockquote>/g; + $s =~ s/\{\{(.+?)\|(.*?)\}\}//g; + $s =~ s/\[\[(.+?)\|(.*?)\]\]/$2/g; + $s =~ s/\/\/([^\/\/]*?)\/\//<em>$1<\/em> /g; + $s =~ s/\n=== (.*?)\n/\n<h3>$1<\/h3>\n/g; + $s =~ s/\n== (.*?)\n/\n<h2>$1<\/h2>\n/g; + $s =~ s/\*\*(.*?)\*\*/<strong>$1<\/strong> /g; + $s =~ s/^== (.*?)\n/<h2>$1<\/h2>\n/g; + $s =~ s/\n\* (.*?)\n/\n<li>$1<\/li>\n/g; + $s =~ s/\n\* (.*?)\n/\n<li>$1<\/li>\n/g; + $s =~ s/\n\- (.*?)\n/\n<lo>$1<\/lo>\n/g; + $s =~ s/\n\- (.*?)\n/\n<lo>$1<\/lo>\n/g; + $s =~ s/\n\n/\n<p>/gi; + $s =~ s/\n/\n<br\/>/gi; + return $s; } -sub html_to_plain { - my $s = shift; - return '' unless ( defined $s ); - my $tree = HTML::Parse::parse_html( '<body>' . $s . '</body>' ); - my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 2000 ); - $s = $formatter->format($tree); - return $s; +sub html_to_plain ($) { + my $s = shift; + return '' unless ( defined $s ); + my $tree = HTML::Parse::parse_html( '<body>' . $s . '</body>' ); + my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 2000 ); + $s = $formatter->format($tree); + return $s; } -sub ical_to_plain { - return '' unless defined( $_[0] ); - $_[0] =~ s/\\n/\n/gi; - $_[0] =~ s/ /\t/gi; - $_[0] =~ s/\\\./\./gi; - $_[0] =~ s/\\\,/\,/gi; - $_[0] =~ s/\\\\/\\/gi; - return $_[0]; +sub ical_to_plain ($) { + return '' unless defined( $_[0] ); + $_[0] =~ s/\\n/\n/gi; + $_[0] =~ s/ /\t/gi; + $_[0] =~ s/\\\./\./gi; + $_[0] =~ s/\\\,/\,/gi; + $_[0] =~ s/\\\\/\\/gi; + return $_[0]; } -sub plain_to_ical { - return '' unless defined( $_[0] ); +sub plain_to_ical ($) { + return '' unless defined( $_[0] ); - #remove images + links - $_[0] =~ s/\[\[.+?\|(.+?)\]\]/$1/g; - $_[0] =~ s/\{\{.+?\}\}//g; - $_[0] =~ s/^\s+//g; - $_[0] =~ s/\\/\\\\/gi; - $_[0] =~ s/\,/\\\,/gi; + #remove images + links + $_[0] =~ s/\[\[.+?\|(.+?)\]\]/$1/g; + $_[0] =~ s/\{\{.+?\}\}//g; + $_[0] =~ s/^\s+//g; + $_[0] =~ s/\\/\\\\/gi; + $_[0] =~ s/\,/\\\,/gi; - # $_[0]=~s/\./\\\./gi; - $_[0] =~ s/[\r\n]/\\n/gi; - $_[0] =~ s/\t/ /gi; - return $_[0]; + # $_[0]=~s/\./\\\./gi; + $_[0] =~ s/[\r\n]/\\n/gi; + $_[0] =~ s/\t/ /gi; + return $_[0]; } -sub plain_to_xml { - return '' unless defined( $_[0] ); - $_[0] =~ s/\n\={1,6} (.*?)\s+/\n\[\[$1\]\]\n/gi; +sub plain_to_xml($) { + return '' unless defined( $_[0] ); + $_[0] =~ s/\n\={1,6} (.*?)\s+/\n\[\[$1\]\]\n/gi; - #remove images + links - $_[0] =~ s/\[\[.+?\|(.+?)\]\]/$1/g; - $_[0] =~ s/\{\{.+?\}\}//g; - return encode_xml_element( $_[0] ); + #remove images + links + $_[0] =~ s/\[\[.+?\|(.+?)\]\]/$1/g; + $_[0] =~ s/\{\{.+?\}\}//g; + return encode_xml_element( $_[0] ); - # $_[0]=~s/\ä/ä/gi; - # $_[0]=~s/\ö/ö/gi; - # $_[0]=~s/\ü/ü/gi; - # $_[0]=~s/\Ä/Ä/gi; - # $_[0]=~s/\Ö/Ö/gi; - # $_[0]=~s/\Ü/Ü/gi; - # $_[0]=~s/\ß/ß/gi; - # $_[0]=~s/\&/\&/gi; - # $_[0]=~s/\</\</gi; - # $_[0]=~s/\>/\>/gi; - # $_[0]=~s/\"/\"/gi; + # $_[0]=~s/\ä/ä/gi; + # $_[0]=~s/\ö/ö/gi; + # $_[0]=~s/\ü/ü/gi; + # $_[0]=~s/\Ä/Ä/gi; + # $_[0]=~s/\Ö/Ö/gi; + # $_[0]=~s/\Ü/Ü/gi; + # $_[0]=~s/\ß/ß/gi; + # $_[0]=~s/\&/\&/gi; + # $_[0]=~s/\</\</gi; + # $_[0]=~s/\>/\>/gi; + # $_[0]=~s/\"/\"/gi; ## $_[0]=~s/\n/<br\/>/gi; ## $_[0]=~s/\&amp;/\&/gi; ## $_[0]=~s/\&amp;/+/gi; ## $_[0]=~s/\&/+/gi; ## $_[0]=~s/\&/+/gi; - # return $_[0]; + # return $_[0]; } -sub fix_utf8 { - $_[0] = Encode::decode( 'cp1252', $_[0] ); - return $_[0]; +sub fix_utf8($) { + $_[0] = Encode::decode( 'cp1252', $_[0] ); + return $_[0]; } -sub uri_encode { - $_[0] =~ s/([^a-zA-Z0-9_\.\-])/sprintf("%%%02lx",ord($1))/esg; - return $_[0]; +sub uri_encode ($) { + $_[0] =~ s/([^a-zA-Z0-9_\.\-])/sprintf("%%%02lx",ord($1))/esg; + return $_[0]; } -sub compress { - my $header = ''; +sub compress ($) { + my $header = ''; - if ( $_[0] =~ /(Content\-type\:[^\n]+[\n]+)/ ) { - $header = $1; - } else { + if ( $_[0] =~ /(Content\-type\:[^\n]+[\n]+)/ ) { + $header = $1; + } else { - #return; - } + #return; + } - my $start = index( $_[0], $header ); - return if ( $start < 0 ); + my $start = index( $_[0], $header ); + return if ( $start < 0 ); - my $header_length = length($header); - $header = substr( $_[0], 0, $start + $header_length ); + my $header_length = length($header); + $header = substr( $_[0], 0, $start + $header_length ); - # print $header."\n"; + # print $header."\n"; - my $content = substr( $_[0], $start + $header_length ); + my $content = substr( $_[0], $start + $header_length ); - # #remove multiple line breaks - $content =~ s/[\r\n]+[\s]*[\r\n]+/\n/g; + # #remove multiple line breaks + $content =~ s/[\r\n]+[\s]*[\r\n]+/\n/g; - #remove leading whitespaces - $content =~ s/[\r\n]+[\s]+/\n/g; + #remove leading whitespaces + $content =~ s/[\r\n]+[\s]+/\n/g; - #remove tailing whitespaces - $content =~ s/[\t ]*[\r\n]+/\n/g; + #remove tailing whitespaces + $content =~ s/[\t ]*[\r\n]+/\n/g; - #remove whitespaces inside tags - $content =~ s/([\n]\<[^\n]+)[\r\n]+/$1 /g; - $content =~ s/\"\s+\>/\"\>/g; + #remove whitespaces inside tags + $content =~ s/([\n]\<[^\n]+)[\r\n]+/$1 /g; + $content =~ s/\"\s+\>/\"\>/g; - #get closing tags closer - $content =~ s/[\r\n]+(\<[\/\!])/$1/g; - $content =~ s/(\>)[\r\n]+([^\<])/$1$2/g; + #get closing tags closer + $content =~ s/[\r\n]+(\<[\/\!])/$1/g; + $content =~ s/(\>)[\r\n]+([^\<])/$1$2/g; - #remove leading whitespaces - #$content=~s/[\r\n]+([\d\S])/$1/g; + #remove leading whitespaces + #$content=~s/[\r\n]+([\d\S])/$1/g; - #remove empty lines - $content =~ s/[\n\r]+/\n/g; + #remove empty lines + $content =~ s/[\n\r]+/\n/g; - #remove whitespaces between tags - $content =~ s/\>[\t ]+\<(^\/T)/\>\<$1/g; + #remove whitespaces between tags + $content =~ s/\>[\t ]+\<(^\/T)/\>\<$1/g; - #multiple whitespaces - $content =~ s/[\t ]+/ /g; + #multiple whitespaces + $content =~ s/[\t ]+/ /g; - #restore content-type line break - $_[0] = $header . $content; + #restore content-type line break + $_[0] = $header . $content; - #$_[0]=~s/HTTP_CONTENT_TYPE/\n\n/; - # return $_[0]; + #$_[0]=~s/HTTP_CONTENT_TYPE/\n\n/; + # return $_[0]; } #from XML::RSS.pm my %entity = ( - nbsp => " ", - iexcl => "¡", - cent => "¢", - pound => "£", - curren => "¤", - yen => "¥", - brvbar => "¦", - sect => "§", - uml => "¨", - copy => "©", - ordf => "ª", - laquo => "«", - not => "¬", - shy => "­", - reg => "®", - macr => "¯", - deg => "°", - plusmn => "±", - sup2 => "²", - sup3 => "³", - acute => "´", - micro => "µ", - para => "¶", - middot => "·", - cedil => "¸", - sup1 => "¹", - ordm => "º", - raquo => "»", - frac14 => "¼", - frac12 => "½", - frac34 => "¾", - iquest => "¿", - Agrave => "À", - Aacute => "Á", - Acirc => "Â", - Atilde => "Ã", - Auml => "Ä", - Aring => "Å", - AElig => "Æ", - Ccedil => "Ç", - Egrave => "È", - Eacute => "É", - Ecirc => "Ê", - Euml => "Ë", - Igrave => "Ì", - Iacute => "Í", - Icirc => "Î", - Iuml => "Ï", - ETH => "Ð", - Ntilde => "Ñ", - Ograve => "Ò", - Oacute => "Ó", - Ocirc => "Ô", - Otilde => "Õ", - Ouml => "Ö", - times => "×", - Oslash => "Ø", - Ugrave => "Ù", - Uacute => "Ú", - Ucirc => "Û", - Uuml => "Ü", - Yacute => "Ý", - THORN => "Þ", - szlig => "ß", - agrave => "à", - aacute => "á", - acirc => "â", - atilde => "ã", - auml => "ä", - aring => "å", - aelig => "æ", - ccedil => "ç", - egrave => "è", - eacute => "é", - ecirc => "ê", - euml => "ë", - igrave => "ì", - iacute => "í", - icirc => "î", - iuml => "ï", - eth => "ð", - ntilde => "ñ", - ograve => "ò", - oacute => "ó", - ocirc => "ô", - otilde => "õ", - ouml => "ö", - divide => "÷", - oslash => "ø", - ugrave => "ù", - uacute => "ú", - ucirc => "û", - uuml => "ü", - yacute => "ý", - thorn => "þ", - yuml => "ÿ", + nbsp => " ", + iexcl => "¡", + cent => "¢", + pound => "£", + curren => "¤", + yen => "¥", + brvbar => "¦", + sect => "§", + uml => "¨", + copy => "©", + ordf => "ª", + laquo => "«", + not => "¬", + shy => "­", + reg => "®", + macr => "¯", + deg => "°", + plusmn => "±", + sup2 => "²", + sup3 => "³", + acute => "´", + micro => "µ", + para => "¶", + middot => "·", + cedil => "¸", + sup1 => "¹", + ordm => "º", + raquo => "»", + frac14 => "¼", + frac12 => "½", + frac34 => "¾", + iquest => "¿", + Agrave => "À", + Aacute => "Á", + Acirc => "Â", + Atilde => "Ã", + Auml => "Ä", + Aring => "Å", + AElig => "Æ", + Ccedil => "Ç", + Egrave => "È", + Eacute => "É", + Ecirc => "Ê", + Euml => "Ë", + Igrave => "Ì", + Iacute => "Í", + Icirc => "Î", + Iuml => "Ï", + ETH => "Ð", + Ntilde => "Ñ", + Ograve => "Ò", + Oacute => "Ó", + Ocirc => "Ô", + Otilde => "Õ", + Ouml => "Ö", + times => "×", + Oslash => "Ø", + Ugrave => "Ù", + Uacute => "Ú", + Ucirc => "Û", + Uuml => "Ü", + Yacute => "Ý", + THORN => "Þ", + szlig => "ß", + agrave => "à", + aacute => "á", + acirc => "â", + atilde => "ã", + auml => "ä", + aring => "å", + aelig => "æ", + ccedil => "ç", + egrave => "è", + eacute => "é", + ecirc => "ê", + euml => "ë", + igrave => "ì", + iacute => "í", + icirc => "î", + iuml => "ï", + eth => "ð", + ntilde => "ñ", + ograve => "ò", + oacute => "ó", + ocirc => "ô", + otilde => "õ", + ouml => "ö", + divide => "÷", + oslash => "ø", + ugrave => "ù", + uacute => "ú", + ucirc => "û", + uuml => "ü", + yacute => "ý", + thorn => "þ", + yuml => "ÿ", ); my $entities = join( '|', keys %entity ); -sub encode_xml_element { - my $text = shift; +sub encode_xml_element($) { + my $text = shift; - my $encoded_text = ''; + my $encoded_text = ''; - while ( $text =~ s/(.*?)(\<\!\[CDATA\[.*?\]\]\>)//s ) { - $encoded_text .= encode_xml_element_text($1) . $2; - } - $encoded_text .= encode_xml_element_text($text); + while ( $text =~ s/(.*?)(\<\!\[CDATA\[.*?\]\]\>)//s ) { + $encoded_text .= encode_xml_element_text($1) . $2; + } + $encoded_text .= encode_xml_element_text($text); - return $encoded_text; + return $encoded_text; } -sub encode_xml_element_text { - my $text = shift; +sub encode_xml_element_text ($) { + my $text = shift; - $text =~ s/&(?!(#[0-9]+|#x[0-9a-fA-F]+|\w+);)/&/g; - $text =~ s/&($entities);/$entity{$1}/g; - $text =~ s/\</\<\;/g; - $text =~ s/\>/\>\;/g; + $text =~ s/&(?!(#[0-9]+|#x[0-9a-fA-F]+|\w+);)/&/g; + $text =~ s/&($entities);/$entity{$1}/g; + $text =~ s/\</\<\;/g; + $text =~ s/\>/\>\;/g; - return $text; + return $text; } -sub escapeHtml{ - my $s=shift; - return HTML::Entities::encode_entities($s,q{&<>"'}); +sub escapeHtml($) { + my $s = shift; + return HTML::Entities::encode_entities( $s, q{&<>"'} ); } #do not delete last line! diff --git a/lib/calcms/params.pm b/lib/calcms/params.pm index 83c75c5..6c1b12a 100644 --- a/lib/calcms/params.pm +++ b/lib/calcms/params.pm @@ -1,7 +1,8 @@ package params; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Apache2::Request(); @@ -12,11 +13,11 @@ our @EXPORT_OK = qw(get isJson); sub debug; my $isJson = 0; -sub isJson { +sub isJson () { return $isJson; } -sub get { +sub get ($) { my $r = shift; my $tmp_dir = '/var/tmp/'; @@ -50,18 +51,18 @@ sub get { $isJson = 1 if ( defined $params->{json} ) && ( $params->{json} eq '1' ); if ( defined $status ) { - $status = '' if $status eq 'Success' ; - $status = '' if $status eq 'Missing input data' ; - if ($status ne ''){ - $cgi=new CGI::Simple() unless defined $cgi; + $status = '' if $status eq 'Success'; + $status = '' if $status eq 'Missing input data'; + if ( $status ne '' ) { + $cgi = new CGI::Simple() unless defined $cgi; print $cgi->header . $status . "\n"; - } ; + } } return ( $cgi, $params, $status ); } -sub debug { +sub debug ($) { my $message = shift; } diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm index 1a70a23..1060069 100644 --- a/lib/calcms/password_requests.pm +++ b/lib/calcms/password_requests.pm @@ -1,14 +1,15 @@ package password_requests; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Session::Token(); # table: calcms_password_requests use base 'Exporter'; -our @EXPORT_OK = qw(get insert delete get_columns); +our @EXPORT_OK = qw(get insert delete get_columns); use mail; use uac; @@ -17,235 +18,235 @@ use auth; sub debug; -sub get_columns { - my $config = shift; +sub get_columns ($) { + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_password_requests' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_password_requests' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } -sub get { - my $config = shift; - my $condition = shift; +sub get ($$) { + my $config = shift; + my $condition = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( defined $condition->{user} ) { - push @conditions, 'user=?'; - push @bind_values, $condition->{user}; - } + if ( defined $condition->{user} ) { + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } - if ( defined $condition->{token} ) { - push @conditions, 'token=?'; - push @bind_values, $condition->{token}; - } + if ( defined $condition->{token} ) { + push @conditions, 'token=?'; + push @bind_values, $condition->{token}; + } - return undef if ( scalar @conditions ) == 0; + return undef if ( scalar @conditions ) == 0; - my $conditions = " where " . join( " and ", @conditions ); - my $query = qq{ + my $conditions = " where " . join( " and ", @conditions ); + my $query = qq{ select * from calcms_password_requests $conditions }; - #print $query."\n".Dumper(\@bind_values); + #print $query."\n".Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); - return $entries->[0] || undef; + my $entries = db::get( $dbh, $query, \@bind_values ); + return $entries->[0] || undef; } -sub update { - my $config = shift; - my $entry = shift; +sub update($$) { + my $config = shift; + my $entry = shift; - return unless defined $entry->{user}; + return unless defined $entry->{user}; - my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values, $entry->{token}; + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + push @bind_values, $entry->{token}; - my $query = qq{ + my $query = qq{ update calcms_password_requests set $values where token=? }; - print STDERR $query . Dumper( \@bind_values ); - db::put( $dbh, $query, \@bind_values ); + print STDERR $query . Dumper( \@bind_values ); + db::put( $dbh, $query, \@bind_values ); } -sub insert { - my $config = shift; - my $entry = shift; +sub insert ($$) { + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{user}; + return undef unless defined $entry->{user}; - my $dbh = db::connect($config); - print STDERR 'insert ' . Dumper($entry); - return db::insert( $dbh, 'calcms_password_requests', $entry ); + my $dbh = db::connect($config); + print STDERR 'insert ' . Dumper($entry); + return db::insert( $dbh, 'calcms_password_requests', $entry ); } -sub delete { - my $config = shift; - my $condition = shift; +sub delete ($$) { + my $config = shift; + my $condition = shift; - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { - push @conditions, 'user=?'; - push @bind_values, $condition->{user}; - } + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } - if ( ( defined $condition->{token} ) && ( $condition->{token} ne '' ) ) { - push @conditions, 'token=?'; - push @bind_values, $condition->{token}; - } + if ( ( defined $condition->{token} ) && ( $condition->{token} ne '' ) ) { + push @conditions, 'token=?'; + push @bind_values, $condition->{token}; + } - return if ( scalar @conditions ) == 0; - my $conditions = " where " . join( " and ", @conditions ); + return if ( scalar @conditions ) == 0; + my $conditions = " where " . join( " and ", @conditions ); - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = qq{ + my $query = qq{ delete from calcms_password_requests $conditions }; - print STDERR "$query " . Dumper( \@bind_values ); - db::put( $dbh, $query, \@bind_values ); + print STDERR "$query " . Dumper( \@bind_values ); + db::put( $dbh, $query, \@bind_values ); } -sub sendToken { - my $config = shift; - my $entry = shift; +sub sendToken ($$) { + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{user}; + return undef unless defined $entry->{user}; - my $user = uac::get_user( $config, $entry->{user} ); - return undef unless defined $user; + my $user = uac::get_user( $config, $entry->{user} ); + return undef unless defined $user; - # check age of existing entry - my $oldEntry = password_requests::get( $config, { user => $entry->{user} } ); - if ( defined $oldEntry ) { - my $createdAt = $oldEntry->{created_at}; - print STDERR Dumper($oldEntry); - print STDERR "createdAt=$createdAt\n"; - my $age = time() - time::datetime_to_time($createdAt); - if ( $age < 60 ) { - print STDERR "too many requests"; - return undef; - } - print STDERR "age=$age\n"; - } - password_requests::delete( $config, $entry ); + # check age of existing entry + my $oldEntry = password_requests::get( $config, { user => $entry->{user} } ); + if ( defined $oldEntry ) { + my $createdAt = $oldEntry->{created_at}; + print STDERR Dumper($oldEntry); + print STDERR "createdAt=$createdAt\n"; + my $age = time() - time::datetime_to_time($createdAt); + if ( $age < 60 ) { + print STDERR "too many requests"; + return undef; + } + print STDERR "age=$age\n"; + } + password_requests::delete( $config, $entry ); - $entry->{max_attempts} = 0; - $entry->{token} = Session::Token->new->get; + $entry->{max_attempts} = 0; + $entry->{token} = Session::Token->new->get; - my $baseUrl = $config->{locations}->{source_base_url} . $config->{locations}->{editor_base_url}; - my $url = $baseUrl . "/requestPassword.cgi?token=" . $entry->{token}; - my $content = "Hi,$user->{full_name}\n\n"; - $content .= "Someone just tried to reset your password for $baseUrl.\n\n"; - $content .= "If you like to set a new password, please follow the link below\n"; - $content .= $url . "\n\n"; - $content .= "If you do not like to set a new password, please ignore this mail.\n"; + my $baseUrl = $config->{locations}->{source_base_url} . $config->{locations}->{editor_base_url}; + my $url = $baseUrl . "/requestPassword.cgi?token=" . $entry->{token}; + my $content = "Hi,$user->{full_name}\n\n"; + $content .= "Someone just tried to reset your password for $baseUrl.\n\n"; + $content .= "If you like to set a new password, please follow the link below\n"; + $content .= $url . "\n\n"; + $content .= "If you do not like to set a new password, please ignore this mail.\n"; - mail::send( - { - "To" => $user->{email}, - "Subject" => "request to change password for $baseUrl", - "Data" => $content - } - ); + mail::send( + { + "To" => $user->{email}, + "Subject" => "request to change password for $baseUrl", + "Data" => $content + } + ); - password_requests::insert( $config, $entry ); + password_requests::insert( $config, $entry ); } -sub changePassword { - my $config = shift; - my $request = shift; - my $userName = shift; +sub changePassword ($$$) { + my $config = shift; + my $request = shift; + my $userName = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - unless ( ( defined $userName ) || ( $userName eq '' ) ) { - return { error => 'user not found' }; - } + unless ( ( defined $userName ) || ( $userName eq '' ) ) { + return { error => 'user not found' }; + } - my $user = uac::get_user( $config, $userName ); + my $user = uac::get_user( $config, $userName ); - unless ( ( defined $user ) && ( defined $user->{id} ) && ( $user->{id} ne '' ) ) { - return { error => 'user id not found' }; - } + unless ( ( defined $user ) && ( defined $user->{id} ) && ( $user->{id} ne '' ) ) { + return { error => 'user id not found' }; + } - unless ( password_requests::checkPassword( $params->{user_password} ) ) { - return { error => 'password does not meet requirements' }; - } + unless ( password_requests::checkPassword( $params->{user_password} ) ) { + return { error => 'password does not meet requirements' }; + } - if ( $params->{user_password} ne $params->{user_password2} ) { - return { error => 'entered passwords do not match' }; - } + if ( $params->{user_password} ne $params->{user_password2} ) { + return { error => 'entered passwords do not match' }; + } - #print STDERR "error at changing password:" . Dumper($errors); + #print STDERR "error at changing password:" . Dumper($errors); - my $crypt = auth::crypt_password( $params->{user_password} ); - $user = { id => $user->{id} }; - $user->{salt} = $crypt->{salt}; - $user->{pass} = $crypt->{crypt}; + my $crypt = auth::crypt_password( $params->{user_password} ); + $user = { id => $user->{id} }; + $user->{salt} = $crypt->{salt}; + $user->{pass} = $crypt->{crypt}; - #print '<pre>'.Dumper($user).'</pre>'; - $config->{access}->{write} = 1; - print STDERR "update user" . Dumper($user); - my $result = uac::update_user( $config, $user ); - print STDERR "result:" . Dumper($result); - $config->{access}->{write} = 0; - return { success => "password changed for $userName" }; + #print '<pre>'.Dumper($user).'</pre>'; + $config->{access}->{write} = 1; + print STDERR "update user" . Dumper($user); + my $result = uac::update_user( $config, $user ); + print STDERR "result:" . Dumper($result); + $config->{access}->{write} = 0; + return { success => "password changed for $userName" }; } -sub checkPassword { - my $password = shift; - unless ( defined $password || $password eq '' ) { - error("password is empty"); - return; - } - if ( length($password) < 8 ) { - error("password to short"); - return 0; - } - unless ( $password =~ /[a-z]/ ) { - error("password should contains at least one small character"); - return 0; - } - unless ( $password =~ /[A-Z]/ ) { - error("password should contains at least one big character"); - return 0; - } - unless ( $password =~ /[0-9]/ ) { - error("password should contains at least one number"); - return 0; - } - unless ( $password =~ /[^a-zA-Z0-9]/ ) { - error("password should contains at least one special character"); - return 0; - } - return 1; +sub checkPassword($) { + my $password = shift; + unless ( defined $password || $password eq '' ) { + error("password is empty"); + return; + } + if ( length($password) < 8 ) { + error("password to short"); + return 0; + } + unless ( $password =~ /[a-z]/ ) { + error("password should contains at least one small character"); + return 0; + } + unless ( $password =~ /[A-Z]/ ) { + error("password should contains at least one big character"); + return 0; + } + unless ( $password =~ /[0-9]/ ) { + error("password should contains at least one number"); + return 0; + } + unless ( $password =~ /[^a-zA-Z0-9]/ ) { + error("password should contains at least one special character"); + return 0; + } + return 1; } -sub error { - my $msg = shift; - print "ERROR: $msg<br/>\n"; +sub error($) { + my $msg = shift; + print "ERROR: $msg<br/>\n"; } #do not delete last line! diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index 71023af..8164b1b 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -1,7 +1,8 @@ package playout; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Date::Calc(); @@ -10,84 +11,85 @@ use time(); use series_events(); use base 'Exporter'; -our @EXPORT_OK = qw(get_columns get sync); +our @EXPORT_OK = qw(get_columns get sync); sub debug; -sub get_columns { - my $config = shift; +sub get_columns ($) { + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_playout' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_playout' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } # get playout entries -sub get { - my $config = shift; - my $condition = shift; +sub get($$) { + my $config = shift; + my $condition = shift; - return undef unless defined $condition->{studio_id}; + return undef unless defined $condition->{studio_id}; - my $date_range_include = 0; - $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); + my $date_range_include = 0; + $date_range_include = 1 + if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { - push @conditions, 'start=?'; - push @bind_values, $condition->{start_at}; - } + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'start=?'; + push @bind_values, $condition->{start_at}; + } - if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { - if ( $date_range_include == 1 ) { - push @conditions, 'end_date>=?'; - push @bind_values, $condition->{from}; - } else { - push @conditions, 'start_date>=?'; - push @bind_values, $condition->{from}; - } - } + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'end_date>=?'; + push @bind_values, $condition->{from}; + } else { + push @conditions, 'start_date>=?'; + push @bind_values, $condition->{from}; + } + } - if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { - if ( $date_range_include == 1 ) { - push @conditions, 'start_date<=?'; - push @bind_values, $condition->{till}; - } else { - push @conditions, 'end_date<=?'; - push @bind_values, $condition->{till}; - } - } + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'start_date<=?'; + push @bind_values, $condition->{till}; + } else { + push @conditions, 'end_date<=?'; + push @bind_values, $condition->{till}; + } + } - my $limit = ''; - if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { - $limit = 'limit ' . $condition->{limit}; - } + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $order = 'start'; - $order = $condition->{order} if ( defined $condition->{order} ) && ( $condition->{order} ne '' ); + my $order = 'start'; + $order = $condition->{order} if ( defined $condition->{order} ) && ( $condition->{order} ne '' ); - my $query = qq{ + my $query = qq{ select date(start) start_date ,date(end) end_date ,dayname(start) weekday @@ -120,39 +122,39 @@ sub get { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); - return $entries; + #print STDERR Dumper($query).Dumper(\@bind_values); + my $entries = db::get( $dbh, $query, \@bind_values ); + return $entries; } # update playout entries for a given date span # insert, update and delete entries -sub sync { - my $config = shift; - my $options = shift; +sub sync ($$) { + my $config = shift; + my $options = shift; - #print STDERR Dumper($config); - print STDERR "upload " . Dumper($options); - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{from}; - return undef unless defined $options->{till}; - return undef unless defined $options->{events}; + #print STDERR Dumper($config); + print STDERR "upload " . Dumper($options); + return undef unless defined $options->{project_id}; + return undef unless defined $options->{studio_id}; + return undef unless defined $options->{from}; + return undef unless defined $options->{till}; + return undef unless defined $options->{events}; - my $project_id = $options->{project_id}; - my $studio_id = $options->{studio_id}; - my $updates = $options->{events}; + my $project_id = $options->{project_id}; + my $studio_id = $options->{studio_id}; + my $updates = $options->{events}; - # get new entries by date - my $update_by_date = {}; - for my $entry (@$updates) { - $update_by_date->{ $entry->{start} } = $entry; - } + # get new entries by date + my $update_by_date = {}; + for my $entry (@$updates) { + $update_by_date->{ $entry->{start} } = $entry; + } - # get database entries - my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{from}, $options->{till} ]; + # get database entries + my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{from}, $options->{till} ]; - my $query = qq{ + my $query = qq{ select * from calcms_playout where project_id=? @@ -161,132 +163,135 @@ sub sync { and end <= ? order by start }; - print STDERR "from:$options->{from} till:$options->{till}\n"; - my $dbh = db::connect($config); - my $entries = db::get( $dbh, $query, $bind_values ); + print STDERR "from:$options->{from} till:$options->{till}\n"; + my $dbh = db::connect($config); + my $entries = db::get( $dbh, $query, $bind_values ); - #print STDERR "entries:".Dumper($entries); + #print STDERR "entries:".Dumper($entries); - # get database entries by date - my $entries_by_date = {}; - for my $entry (@$entries) { + # get database entries by date + my $entries_by_date = {}; + for my $entry (@$entries) { - # store entry by date - my $start = $entry->{start}; - $entries_by_date->{$start} = $entry; + # store entry by date + my $start = $entry->{start}; + $entries_by_date->{$start} = $entry; - # remove outdated entries - unless ( defined $update_by_date->{$start} ) { - print STDERR "delete:" . Dumper($entry); - playout::delete( $config, $dbh, $entry ); - my $result = series_events::set_playout_status( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - start => $entry->{start}, - playout => 0, - } - ); - print STDERR "delete playout_status result=" . $result . "\n"; - next; - } + # remove outdated entries + unless ( defined $update_by_date->{$start} ) { + print STDERR "delete:" . Dumper($entry); + playout::delete( $config, $dbh, $entry ); + my $result = series_events::set_playout_status( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + start => $entry->{start}, + playout => 0, + } + ); + print STDERR "delete playout_status result=" . $result . "\n"; + next; + } - # update existing entries - if ( defined $update_by_date->{$start} ) { - next if has_changed( $entry, $update_by_date->{$start} ) == 0; - print STDERR "update:" . Dumper($entry); - playout::update( $config, $dbh, $entry, $update_by_date->{$start} ); - my $result = series_events::set_playout_status( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - start => $entry->{start}, - playout => 1, - } - ); - print STDERR "update playout_status result=" . $result . "\n"; - next; - } - } + # update existing entries + if ( defined $update_by_date->{$start} ) { + next if has_changed( $entry, $update_by_date->{$start} ) == 0; + print STDERR "update:" . Dumper($entry); + playout::update( $config, $dbh, $entry, $update_by_date->{$start} ); + my $result = series_events::set_playout_status( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + start => $entry->{start}, + playout => 1, + } + ); + print STDERR "update playout_status result=" . $result . "\n"; + next; + } + } - # insert new entries - for my $entry (@$updates) { - my $start = $entry->{start}; - unless ( defined $entries_by_date->{$start} ) { - $entry->{project_id} = $project_id; - $entry->{studio_id} = $studio_id; - print STDERR "insert:" . Dumper($entry); - playout::insert( $config, $dbh, $entry ); - my $result = series_events::set_playout_status( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - start => $entry->{start}, - playout => 1, - } - ); - print STDERR "insert playout_status result=" . $result . "\n"; - } - } - return 1; + # insert new entries + for my $entry (@$updates) { + my $start = $entry->{start}; + unless ( defined $entries_by_date->{$start} ) { + $entry->{project_id} = $project_id; + $entry->{studio_id} = $studio_id; + print STDERR "insert:" . Dumper($entry); + playout::insert( $config, $dbh, $entry ); + my $result = series_events::set_playout_status( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + start => $entry->{start}, + playout => 1, + } + ); + print STDERR "insert playout_status result=" . $result . "\n"; + } + } + return 1; } -sub has_changed { - my $oldEntry = shift; - my $newEntry = shift; +sub has_changed ($$) { + my $oldEntry = shift; + my $newEntry = shift; - my $update = 0; - for my $key ( - 'duration', 'errors', 'file', 'channels', 'format', 'format_version', - 'format_profile', 'format_settings', 'stream_size', 'bitrate', 'bitrate_mode', 'sampling_rate', - 'writing_library', 'modified_at' - ) - { - return 1 if ( $oldEntry->{$key} || '' ) ne ( $newEntry->{$key} || '' ); - } - return 0; + my $update = 0; + for my $key ( + 'duration', 'errors', 'file', 'channels', + 'format', 'format_version', 'format_profile', 'format_settings', + 'stream_size', 'bitrate', 'bitrate_mode', 'sampling_rate', + 'writing_library', 'modified_at' + ) + { + return 1 if ( $oldEntry->{$key} || '' ) ne ( $newEntry->{$key} || '' ); + } + return 0; } # update playout entry if differs to old values -sub update { - my $config = shift; - my $dbh = shift; - my $oldEntry = shift; - my $newEntry = shift; +sub update ($$$$) { + my $config = shift; + my $dbh = shift; + my $oldEntry = shift; + my $newEntry = shift; - return if has_changed( $oldEntry, $newEntry ) == 0; + return if has_changed( $oldEntry, $newEntry ) == 0; - for my $key ( - 'duration', 'errors', 'file', 'channels', 'format', 'format_version', - 'format_profile', 'format_settings', 'stream_size', 'bitrate', 'bitrate_mode', 'sampling_rate', - 'writing_library', 'rms_left', 'rms_right', 'rms_image', 'replay_gain', 'modified_at' - ) - { - if ( ( $oldEntry->{$key} || '' ) ne ( $newEntry->{$key} || '' ) ) { - $oldEntry->{$key} = $newEntry->{$key}; - } - } + for my $key ( + 'duration', 'errors', 'file', 'channels', + 'format', 'format_version', 'format_profile', 'format_settings', + 'stream_size', 'bitrate', 'bitrate_mode', 'sampling_rate', + 'writing_library', 'rms_left', 'rms_right', 'rms_image', + 'replay_gain', 'modified_at' + ) + { + if ( ( $oldEntry->{$key} || '' ) ne ( $newEntry->{$key} || '' ) ) { + $oldEntry->{$key} = $newEntry->{$key}; + } + } - my $entry = $oldEntry; - print STDERR "update:" . Dumper($entry); + my $entry = $oldEntry; + print STDERR "update:" . Dumper($entry); - my $day_start = $config->{date}->{day_starting_hour}; - $entry->{end} = playout::getEnd( $entry->{start}, $entry->{duration} ); - $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); - $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + my $day_start = $config->{date}->{day_starting_hour}; + $entry->{end} = playout::getEnd( $entry->{start}, $entry->{duration} ); + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); - my $bind_values = [ - $entry->{end}, $entry->{duration}, $entry->{file}, $entry->{errors}, - $entry->{start_date}, $entry->{end_date}, $entry->{channels}, $entry->{'format'}, - $entry->{format_version}, $entry->{format_profile}, $entry->{format_settings}, $entry->{stream_size}, - $entry->{bitrate}, $entry->{bitrate_mode}, $entry->{sampling_rate}, $entry->{writing_library}, - $entry->{rms_left}, $entry->{rms_right}, $entry->{rms_image}, $entry->{replay_gain}, - $entry->{modified_at}, $entry->{project_id}, $entry->{studio_id}, $entry->{start} - ]; - my $query = qq{ + my $bind_values = [ + $entry->{end}, $entry->{duration}, $entry->{file}, $entry->{errors}, + $entry->{start_date}, $entry->{end_date}, $entry->{channels}, $entry->{'format'}, + $entry->{format_version}, $entry->{format_profile}, $entry->{format_settings}, $entry->{stream_size}, + $entry->{bitrate}, $entry->{bitrate_mode}, $entry->{sampling_rate}, $entry->{writing_library}, + $entry->{rms_left}, $entry->{rms_right}, $entry->{rms_image}, $entry->{replay_gain}, + $entry->{modified_at}, $entry->{project_id}, $entry->{studio_id}, $entry->{start} + ]; + my $query = qq{ update calcms_playout set end=?, duration=?, file=?, errors=?, start_date=?, end_date=?, @@ -296,100 +301,100 @@ sub update { replay_gain=?, modified_at=? where project_id=? and studio_id=? and start=? }; - return db::put( $dbh, $query, $bind_values ); + return db::put( $dbh, $query, $bind_values ); } # insert playout entry -sub insert { - my $config = shift; - my $dbh = shift; - my $entry = shift; +sub insert ($$$) { + my $config = shift; + my $dbh = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{start}; - return undef unless defined $entry->{duration}; - return undef unless defined $entry->{file}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{start}; + return undef unless defined $entry->{duration}; + return undef unless defined $entry->{file}; - my $day_start = $config->{date}->{day_starting_hour}; - $entry->{end} = playout::getEnd( $entry->{start}, $entry->{duration} ); - $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); - $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); + my $day_start = $config->{date}->{day_starting_hour}; + $entry->{end} = playout::getEnd( $entry->{start}, $entry->{duration} ); + $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); + $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); - return db::insert( - $dbh, - 'calcms_playout', - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - start => $entry->{start}, - end => $entry->{end}, - start_date => $entry->{start_date}, - end_date => $entry->{end_date}, - duration => $entry->{duration}, - rms_left => $entry->{rms_left}, - rms_right => $entry->{rms_right}, - rms_image => $entry->{rms_image}, - replay_gain => $entry->{replay_gain}, - file => $entry->{file}, - errors => $entry->{errors}, - channels => $entry->{channels}, - "format" => $entry->{"format"}, - format_version => $entry->{format_version}, - format_profile => $entry->{format_profile}, - format_settings => $entry->{format_settings}, - stream_size => $entry->{stream_size}, - bitrate => $entry->{bitrate}, - bitrate_mode => $entry->{bitrate_mode}, - sampling_rate => $entry->{sampling_rate}, - writing_library => $entry->{writing_library}, - modified_at => $entry->{modified_at} - } - ); + return db::insert( + $dbh, + 'calcms_playout', + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + start => $entry->{start}, + end => $entry->{end}, + start_date => $entry->{start_date}, + end_date => $entry->{end_date}, + duration => $entry->{duration}, + rms_left => $entry->{rms_left}, + rms_right => $entry->{rms_right}, + rms_image => $entry->{rms_image}, + replay_gain => $entry->{replay_gain}, + file => $entry->{file}, + errors => $entry->{errors}, + channels => $entry->{channels}, + "format" => $entry->{"format"}, + format_version => $entry->{format_version}, + format_profile => $entry->{format_profile}, + format_settings => $entry->{format_settings}, + stream_size => $entry->{stream_size}, + bitrate => $entry->{bitrate}, + bitrate_mode => $entry->{bitrate_mode}, + sampling_rate => $entry->{sampling_rate}, + writing_library => $entry->{writing_library}, + modified_at => $entry->{modified_at} + } + ); } # delete playout entry -sub delete { - my $config = shift; - my $dbh = shift; - my $entry = shift; +sub delete($$$) { + my $config = shift; + my $dbh = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{start}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{start}; - my $query = qq{ + my $query = qq{ delete from calcms_playout where project_id=? and studio_id=? and start=? }; - my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{start} ]; - return db::put( $dbh, $query, $bind_values ); + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{start} ]; + return db::put( $dbh, $query, $bind_values ); } -sub getEnd { - my $start = shift; - my $duration = shift; +sub getEnd ($$) { + my $start = shift; + my $duration = shift; - # calculate end from start + duration - my @start = @{ time::datetime_to_array($start) }; - next unless @start >= 6; + # calculate end from start + duration + my @start = @{ time::datetime_to_array($start) }; + next unless @start >= 6; - #print STDERR Dumper(\@start); - my @end_datetime = Date::Calc::Add_Delta_DHMS( - $start[0], $start[1], $start[2], # start date - $start[3], $start[4], $start[5], # start time - 0, 0, 0, int($duration) # delta days, hours, minutes, seconds - ); + #print STDERR Dumper(\@start); + my @end_datetime = Date::Calc::Add_Delta_DHMS( + $start[0], $start[1], $start[2], # start date + $start[3], $start[4], $start[5], # start time + 0, 0, 0, int($duration) # delta days, hours, minutes, seconds + ); - #print STDERR Dumper(\@end_datetime); - return time::array_to_datetime( \@end_datetime ); + #print STDERR Dumper(\@end_datetime); + return time::array_to_datetime( \@end_datetime ); } -sub error { - my $msg = shift; - print "ERROR: $msg<br/>\n"; +sub error($) { + my $msg = shift; + print "ERROR: $msg<br/>\n"; } #do not delete last line! diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index 4d58c3a..1592368 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -1,7 +1,8 @@ package project; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Date::Calc; @@ -24,7 +25,7 @@ our @EXPORT_OK = qw( sub debug; # get project columns -sub get_columns { +sub get_columns ($) { my $config = shift; my $dbh = db::connect($config); @@ -37,7 +38,7 @@ sub get_columns { } # get projects -sub get { +sub get ($;$) { my $config = shift; my $condition = shift; @@ -79,7 +80,7 @@ sub get { } # requires at least project_id -sub getImageById { +sub getImageById($$) { my $config = shift; my $conditions = shift; @@ -89,9 +90,10 @@ sub getImageById { return $projects->[0]->{image}; } -sub get_date_range { +sub get_date_range($) { my $config = shift; - my $query = qq{ + + my $query = qq{ select min(start_date) start_date, max(end_date) end_date from calcms_projects }; @@ -102,7 +104,7 @@ sub get_date_range { } # insert project -sub insert { +sub insert($$) { my $config = shift; my $entry = shift; @@ -120,7 +122,7 @@ sub insert { } # update project -sub update { +sub update($$) { my $config = shift; my $project = shift; @@ -148,7 +150,7 @@ sub update { } # delete project -sub delete { +sub delete ($$) { my $config = shift; my $entry = shift; @@ -157,7 +159,7 @@ sub delete { } # get studios of a project -sub get_studios { +sub get_studios($$) { my $config = shift; my $options = shift; @@ -175,7 +177,7 @@ sub get_studios { return $project_studios; } -sub get_studio_assignments { +sub get_studio_assignments($$) { my $config = shift; my $options = shift; @@ -208,7 +210,7 @@ sub get_studio_assignments { } # is studio assigned to project -sub is_studio_assigned { +sub is_studio_assigned ($$) { my $config = shift; my $entry = shift; @@ -232,7 +234,7 @@ sub is_studio_assigned { } # assign studio to project -sub assign_studio { +sub assign_studio($$) { my $config = shift; my $entry = shift; @@ -241,7 +243,7 @@ sub assign_studio { my $project_id = $entry->{project_id}; my $studio_id = $entry->{studio_id}; - if ( is_studio_assigned($entry) ) { + if ( is_studio_assigned( $config, $entry ) ) { print STDERR "studio $entry->{studio_id} already assigned to project $entry->{project_id}\n"; return 1; } @@ -251,7 +253,7 @@ sub assign_studio { } # unassign studio from project -sub unassign_studio { +sub unassign_studio($$) { my $config = shift; my $entry = shift; @@ -267,7 +269,7 @@ sub unassign_studio { } # get series by project and studio -sub get_series { +sub get_series ($$) { my $config = shift; my $options = shift; @@ -288,7 +290,7 @@ sub get_series { return $project_series; } -sub get_series_assignments { +sub get_series_assignments ($$) { my $config = shift; my $options = shift; @@ -326,7 +328,7 @@ sub get_series_assignments { } # is series assigned to project and studio -sub is_series_assigned { +sub is_series_assigned ($$) { my $config = shift; my $entry = shift; @@ -352,7 +354,7 @@ sub is_series_assigned { } # assign series to project and studio -sub assign_series { +sub assign_series($$) { my $config = shift; my $entry = shift; @@ -364,7 +366,7 @@ sub assign_series { my $studio_id = $entry->{studio_id}; my $series_id = $entry->{series_id}; - if ( is_series_assigned($entry) ) { + if ( is_series_assigned( $config, $entry ) ) { print STDERR "series $series_id already assigned to project $project_id and studio $studio_id\n"; return return undef; } @@ -376,7 +378,7 @@ sub assign_series { # unassign series from project # TODO: remove series _single_ if no event is assigned to -sub unassign_series { +sub unassign_series ($$) { my $config = shift; my $entry = shift; @@ -394,7 +396,7 @@ sub unassign_series { return db::put( $dbh, $sql, $bind_values ); } -sub get_with_dates { +sub get_with_dates($;$) { my $config = shift; my $options = shift; @@ -411,7 +413,7 @@ sub get_with_dates { } #TODO: add config -sub get_sorted { +sub get_sorted($) { my $config = shift; my $projects = project::get( $config, {} ); my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects); @@ -428,7 +430,7 @@ sub get_sorted { } # internal -sub get_months { +sub get_months ($$;$) { my $config = shift; my $project = shift; my $language = shift || $config->{date}->{language} || 'en'; @@ -476,7 +478,7 @@ sub get_months { } # check project_id -sub check { +sub check ($$) { my $config = shift; my $options = shift; return "missing project_id at checking project" unless defined $options->{project_id}; @@ -487,7 +489,7 @@ sub check { return 1; } -sub error { +sub error($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/roles.pm b/lib/calcms/roles.pm index 78ce2a5..aaf4f96 100644 --- a/lib/calcms/roles.pm +++ b/lib/calcms/roles.pm @@ -1,6 +1,8 @@ package roles; -use warnings; + use strict; +use warnings; +no warnings 'redefine'; use Apache2::Reload(); @@ -102,6 +104,7 @@ my $ROLES = { sub get_user($) { my $config = shift; + my $user = $ENV{REMOTE_USER}; my $users = $config->{users}; return $user if ( defined $users->{$user} ); @@ -110,6 +113,7 @@ sub get_user($) { sub get_user_permissions($) { my $config = shift; + my $user = $ENV{REMOTE_USER} || ''; my $roles = $roles::ROLES; return $roles->{nobody} unless $user =~ /\S/; @@ -121,8 +125,9 @@ sub get_user_permissions($) { return $roles->{nobody}; } -sub get_user_jobs { +sub get_user_jobs ($;$) { my $config = shift; + my $user = $ENV{REMOTE_USER} || ''; return [] unless ( $user =~ /\S/ ); my $result = []; @@ -138,12 +143,14 @@ sub get_user_jobs { sub get_jobs($) { my $config = shift; + return $config->{jobs}->{job}; } sub get_template_parameters($$) { my $config = shift; my $user_permissions = shift; + $user_permissions = roles::get_user_permissions($config) unless defined $user_permissions; my @user_permissions = (); for my $usecase ( keys %$user_permissions ) { diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 6377cd5..f118960 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -1,7 +1,8 @@ package series; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; @@ -28,7 +29,7 @@ our @EXPORT_OK = qw( sub debug; # get series columns -sub get_columns { +sub get_columns ($) { my $config = shift; my $dbh = db::connect($config); @@ -41,7 +42,7 @@ sub get_columns { } # get series content -sub get { +sub get ($$) { my $config = shift; my $condition = shift; @@ -132,7 +133,7 @@ sub get { } # insert series -sub insert { +sub insert ($$) { my $config = shift; my $series = shift; @@ -174,7 +175,7 @@ sub insert { } # update series -sub update { +sub update ($$) { my $config = shift; my $series = shift; @@ -210,7 +211,7 @@ sub update { # delete series, its schedules and series dates # unassign its users and events -sub delete { +sub delete($$) { my $config = shift; my $series = shift; @@ -300,7 +301,7 @@ sub delete { } # get users directly assigned to project, studio, series (editors) -sub get_users { +sub get_users ($$) { my $config = shift; my $condition = shift; @@ -346,7 +347,7 @@ sub get_users { } # assign user to series -sub add_user { +sub add_user ($$) { my $config = shift; my $entry = shift; @@ -371,12 +372,13 @@ sub add_user { insert calcms_user_series set project_id=?, studio_id=?, series_id=?, user_id=?, modified_by=?, modified_at=now() }; - $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id}, $entry->{user} ]; + $bind_values = + [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{user_id}, $entry->{user} ]; db::put( $dbh, $query, $bind_values ); } # remove user(s) from series. -sub remove_user { +sub remove_user ($$) { my $config = shift; my $condition = shift; @@ -420,7 +422,7 @@ sub remove_user { #search events by series_name and title (for events not assigned yet) #TODO: add location -sub search_events { +sub search_events ($$$) { my $config = shift; my $request = shift; my $options = shift; @@ -469,7 +471,7 @@ sub search_events { } #get events (only assigned ones) by project_id,studio_id,series_id, -sub get_events { +sub get_events ($$) { my $config = shift; my $options = shift; @@ -580,7 +582,7 @@ sub get_events { # load event given by studio_id, series_id and event_id # helper for gui - errors are written to gui output # return undef on error -sub get_event { +sub get_event ($$) { my $config = shift; my $options = shift; @@ -645,7 +647,7 @@ sub get_event { } # get name and title of series and age in days ('days_over') -sub get_event_age { +sub get_event_age($$) { my $config = shift; my $options = shift; @@ -702,7 +704,7 @@ sub get_event_age { } # is event older than max_age days -sub is_event_older_than_days { +sub is_event_older_than_days ($$) { my $config = shift; my $options = shift; @@ -736,7 +738,7 @@ sub is_event_older_than_days { return 0; } -sub get_next_episode { +sub get_next_episode($$) { my $config = shift; my $options = shift; @@ -778,7 +780,7 @@ sub get_next_episode { return $max + 1; } -sub get_images { +sub get_images ($$) { my $config = shift; my $options = shift; @@ -842,7 +844,7 @@ sub get_images { #assign event to series #TODO: manual assign needs to update automatic one -sub assign_event { +sub assign_event($$) { my $config = shift; my $entry = shift; @@ -879,14 +881,15 @@ sub assign_event { insert into calcms_series_events (project_id, studio_id, series_id, event_id, manual) values (?,?,?,?,?) }; - $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}, $entry->{manual} ]; + $bind_values = + [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}, $entry->{manual} ]; #print STDERR '<pre>'.$query.Dumper($bind_values).'</pre>'; return db::put( $dbh, $query, $bind_values ); } #unassign event from series -sub unassign_event { +sub unassign_event($$) { my $config = shift; my $entry = shift; @@ -913,7 +916,7 @@ sub unassign_event { # put series id to given events (for legacy handling) # used by calendar # TODO: optionally add project_id and studio_id to conditions -sub add_series_ids_to_events { +sub add_series_ids_to_events ($$) { my $config = shift; my $events = shift; @@ -961,7 +964,7 @@ sub add_series_ids_to_events { # add event_ids to series and remove all event ids from series, not given event_ids # for scan only, used at series -sub set_event_ids { +sub set_event_ids ($$$$$) { my $config = shift; my $project_id = shift; my $studio_id = shift; @@ -1037,7 +1040,7 @@ sub set_event_ids { # check if user allowed to update series events # evaluate permissions and consider editors directly assigned to series -sub can_user_update_events { +sub can_user_update_events ($$) { my $request = shift; my $options = shift; @@ -1058,7 +1061,7 @@ sub can_user_update_events { # check if user allowed to create series events # evaluate permissions and consider editors directly assigned to series -sub can_user_create_events { +sub can_user_create_events ($$) { my $request = shift; my $options = shift; @@ -1077,7 +1080,7 @@ sub can_user_create_events { return is_series_assigned_to_user( $request, $options ); } -sub is_series_assigned_to_user { +sub is_series_assigned_to_user ($$) { my $request = shift; my $options = shift; @@ -1104,7 +1107,7 @@ sub is_series_assigned_to_user { # check if user is assigned to studio where location matchs to event # return 1 on success or error text -sub is_event_assigned_to_user { +sub is_event_assigned_to_user ($$) { my $request = shift; my $options = shift; @@ -1157,7 +1160,7 @@ sub is_event_assigned_to_user { # to find multiple recurrences this does not include the recurrence_count # use events::get_key to add the recurrence -sub get_event_key { +sub get_event_key ($) { my $event = shift; my $program = $event->{program} || ''; @@ -1176,7 +1179,7 @@ sub get_event_key { return $key; } -sub update_recurring_events { +sub update_recurring_events ($$) { my $config = shift; my $options = shift; @@ -1217,7 +1220,7 @@ sub update_recurring_events { next if $event->{recurrence} == 0; next if $event->{recurrence_count} == 0; print STDERR - "remove recurrence\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; +"remove recurrence\t'$event->{event_id}'\t'$event->{start}'\t'$event->{rerun}'\t'$event->{recurrence}'\t'$event->{key}'\n"; $event->{recurrence} = 0; $event->{recurrence_count} = 0; $event->{rerun} = 0; @@ -1253,7 +1256,7 @@ sub update_recurring_events { } } -sub update_recurring_event { +sub update_recurring_event($$) { my $config = shift; my $event = shift; @@ -1284,7 +1287,7 @@ sub update_recurring_event { db::put( $dbh, $update_sql, $bind_values ); } -sub error { +sub error($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index 0370708..c69b650 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -1,7 +1,8 @@ package series_dates; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Date::Calc(); @@ -16,11 +17,11 @@ use series_schedule(); # columns: id, studio_id, series_id, start(datetime), end(datetime) # TODO: delete column schedule_id use base 'Exporter'; -our @EXPORT_OK = qw(get_columns get insert update delete get_dates get_series); +our @EXPORT_OK = qw(get_columns get insert update delete get_dates get_series); sub debug; -sub get_columns { +sub get_columns ($) { my $config = shift; my $dbh = db::connect($config); @@ -34,7 +35,7 @@ sub get_columns { # get all series_dates for studio_id and series_id within given time range # calculate start_date, end_date, weeday, day from start and end(datetime) -sub get { +sub get ($;$) { my $config = shift; my $condition = shift; @@ -47,7 +48,6 @@ sub get { push @conditions, 'project_id=?'; push @bind_values, $condition->{project_id}; } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { push @conditions, 'studio_id=?'; push @bind_values, $condition->{studio_id}; @@ -116,7 +116,7 @@ sub get { } #check if event is scheduled (on permission check) -sub is_event_scheduled { +sub is_event_scheduled($$) { my $request = shift; my $options = shift; @@ -140,12 +140,13 @@ sub is_event_scheduled { } #get all series for given studio_id, time range and search -sub get_series { +sub get_series($;$) { my $config = shift; my $condition = shift; my $date_range_include = 0; - $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); + $date_range_include = 1 + if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); my $dbh = db::connect($config); @@ -259,7 +260,7 @@ sub get_series { return $entries; } -sub addSeriesScheduleAttributes { +sub addSeriesScheduleAttributes ($$) { my $config = shift; my $entries = shift; @@ -295,7 +296,7 @@ sub addSeriesScheduleAttributes { } #update series dates for all schedules of a series and studio_id -sub update { +sub update($$) { my $config = shift; my $entry = shift; @@ -383,7 +384,7 @@ sub update { return $j . " dates out of studio times, " . $i; } -sub get_schedule_dates { +sub get_schedule_dates($$) { my $schedule = shift; my $options = shift; @@ -412,7 +413,7 @@ sub get_schedule_dates { return $dates; } -sub get_week_of_month_dates { +sub get_week_of_month_dates ($$$$$$$) { my $start = shift; # datetime string my $end = shift; # datetime string my $duration = shift; # in minutes @@ -463,7 +464,7 @@ sub get_week_of_month_dates { } #add duration to a single date -sub get_single_date { +sub get_single_date ($$) { my $start_datetime = shift; my $duration = shift; @@ -483,12 +484,12 @@ sub get_single_date { } #calculate all dates between start_datetime and end_date with duration(minutes) and frequency(days) -sub get_dates { +sub get_dates($$$$) { my $start_datetime = shift; my $end_date = shift; my $duration = shift; # in minutes my $frequency = shift; # in days - #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; + #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; my @start = @{ time::datetime_to_array($start_datetime) }; return unless @start >= 6; @@ -540,7 +541,7 @@ sub get_dates { } #remove all series_dates for studio_id and series_id -sub delete { +sub delete ($$) { my $config = shift; my $entry = shift; @@ -562,7 +563,7 @@ sub delete { } # get all series dates where no event has been created for -sub getDatesWithoutEvent { +sub getDatesWithoutEvent ($$) { my $config = shift; my $options = shift; @@ -592,7 +593,7 @@ sub getDatesWithoutEvent { } -sub error { +sub error($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index ddf5270..e912d60 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -1,7 +1,8 @@ package series_events; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Date::Calc; @@ -36,7 +37,7 @@ sub debug; # update main fields of the event by id # do not check for project,studio,series # all changed columns are returned for history handling -sub save_content { +sub save_content($$) { my $config = shift; my $entry = shift; @@ -114,7 +115,7 @@ sub save_content { # save event time by id # do not check project, studio, series # for history handling all changed columns are returned -sub save_event_time { +sub save_event_time($$) { my $config = shift; my $entry = shift; @@ -165,7 +166,7 @@ sub save_event_time { return $event; } -sub set_playout_status { +sub set_playout_status ($$) { my $config = shift; my $entry = shift; @@ -208,7 +209,7 @@ sub set_playout_status { } # is event assigned to project, studio and series? -sub is_event_assigned { +sub is_event_assigned($$) { my $config = shift; my $entry = shift; @@ -230,7 +231,7 @@ sub is_event_assigned { return 0; } -sub delete_event { +sub delete_event ($$) { my $config = shift; my $entry = shift; @@ -269,7 +270,7 @@ sub delete_event { # key permission: permissions to be checked (one of) # key check_for: user, studio, series, events, schedule # return error text or 1 if okay -sub check_permission { +sub check_permission($$) { my $request = shift; my $options = shift; @@ -294,7 +295,7 @@ sub check_permission { #check if permissions are set (like create_event) my $found = 0; for my $permission ( split /\,/, $options->{permission} ) { - $found = 1 if ( defined $permissions->{$permission} ) && ( $permissions->{$permission} ) eq '1' ; + $found = 1 if ( defined $permissions->{$permission} ) && ( $permissions->{$permission} ) eq '1'; } return 'missing permission to ' . $options->{permission} if $found == 0; delete $options->{permission}; @@ -343,7 +344,8 @@ sub check_permission { } if ( ( defined $check->{studio} ) && ( project::is_series_assigned( $config, $options ) == 0 ) ) { - return "Series '$series_name' ($options->{series_id}) is not assigned to studio '$studio_name' ($options->{studio_id})"; + return +"Series '$series_name' ($options->{series_id}) is not assigned to studio '$studio_name' ($options->{studio_id})"; } # check series and can user update events @@ -412,7 +414,7 @@ sub check_permission { # category, time_of_day, #insert event -sub insert_event { +sub insert_event ($$) { my $config = shift; my $options = shift; @@ -443,7 +445,11 @@ sub insert_event { $event = series_events::add_event_dates( $config, $event, $params ); #get event content from series - for my $attr ( 'program', 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'episode', 'podcast_url', 'archive_url' ) { + for my $attr ( + 'program', 'series_name', 'title', 'excerpt', 'content', 'topic', + 'image', 'episode', 'podcast_url', 'archive_url' + ) + { $event->{$attr} = $serie->{$attr} if defined $serie->{$attr}; } $event->{series_image} = $serie->{image} if defined $serie->{image}; @@ -488,7 +494,7 @@ sub insert_event { } #set start, end, start-date, end_date to an event -sub add_event_dates { +sub add_event_dates($$$) { my $config = shift; my $event = shift; my $params = shift; @@ -504,7 +510,7 @@ sub add_event_dates { return $event; } -sub update_series_images { +sub update_series_images ($$) { my $config = shift; my $options = shift; @@ -530,7 +536,7 @@ sub update_series_images { } } -sub error { +sub error ($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/series_schedule.pm b/lib/calcms/series_schedule.pm index 2738570..7e83176 100644 --- a/lib/calcms/series_schedule.pm +++ b/lib/calcms/series_schedule.pm @@ -1,7 +1,9 @@ package series_schedule; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use series_dates(); @@ -17,168 +19,168 @@ use series_dates(); # nextDay (add 24 hours to start) use base 'Exporter'; -our @EXPORT_OK = qw(get_columns get insert update delete); +our @EXPORT_OK = qw(get_columns get insert update delete); sub debug; -sub get_columns { - my $config = shift; +sub get_columns ($) { + my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_series_schedule' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_series_schedule' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; } #map schedule id to id -sub get { - my $config = shift; - my $condition = shift; +sub get($$) { + my $config = shift; + my $condition = shift; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my @conditions = (); - my @bind_values = (); + my @conditions = (); + my @bind_values = (); - if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { - push @conditions, 'project_id=?'; - push @bind_values, $condition->{project_id}; - } - if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { - push @conditions, 'studio_id=?'; - push @bind_values, $condition->{studio_id}; - } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } - if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { - push @conditions, 'series_id=?'; - push @bind_values, $condition->{series_id}; - } + if ( ( defined $condition->{series_id} ) && ( $condition->{series_id} ne '' ) ) { + push @conditions, 'series_id=?'; + push @bind_values, $condition->{series_id}; + } - if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { - push @conditions, 'id=?'; - push @bind_values, $condition->{schedule_id}; - } + if ( ( defined $condition->{schedule_id} ) && ( $condition->{schedule_id} ne '' ) ) { + push @conditions, 'id=?'; + push @bind_values, $condition->{schedule_id}; + } - if ( ( defined $condition->{schedule_ids} ) && ( ref( $condition->{schedule_ids} ) eq 'ARRAY' ) ) { - my @scheduleIds = @{ $condition->{schedule_ids} }; - push @conditions, 'id in (' . ( join( ',', ( map { '?' } @scheduleIds ) ) ) . ')'; - for my $id (@scheduleIds) { - push @bind_values, $id; - } - } + if ( ( defined $condition->{schedule_ids} ) && ( ref( $condition->{schedule_ids} ) eq 'ARRAY' ) ) { + my @scheduleIds = @{ $condition->{schedule_ids} }; + push @conditions, 'id in (' . ( join( ',', ( map { '?' } @scheduleIds ) ) ) . ')'; + for my $id (@scheduleIds) { + push @bind_values, $id; + } + } - if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) { - push @conditions, 'start=?'; - push @bind_values, $condition->{start}; - } + if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) { + push @conditions, 'start=?'; + push @bind_values, $condition->{start}; + } - if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { - push @conditions, 'exclude=?'; - push @bind_values, $condition->{exclude}; - } + if ( ( defined $condition->{exclude} ) && ( $condition->{exclude} ne '' ) ) { + push @conditions, 'exclude=?'; + push @bind_values, $condition->{exclude}; + } - if ( ( defined $condition->{period_type} ) && ( $condition->{period_type} ne '' ) ) { - push @conditions, 'period_type=?'; - push @bind_values, $condition->{period_type}; - } + if ( ( defined $condition->{period_type} ) && ( $condition->{period_type} ne '' ) ) { + push @conditions, 'period_type=?'; + push @bind_values, $condition->{period_type}; + } - my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); - my $query = qq{ + my $query = qq{ select * from calcms_series_schedule $conditions order by exclude, start }; - #print STDERR $query."\n".Dumper(\@bind_values); + #print STDERR $query."\n".Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); - for my $entry (@$entries) { - $entry->{schedule_id} = $entry->{id}; - delete $entry->{id}; - } + my $entries = db::get( $dbh, $query, \@bind_values ); + for my $entry (@$entries) { + $entry->{schedule_id} = $entry->{id}; + delete $entry->{id}; + } - #print STDERR Dumper($entries); - return $entries; + #print STDERR Dumper($entries); + return $entries; } -sub insert { - my $config = shift; - my $entry = shift; +sub insert($$) { + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{series_id}; - return undef unless defined $entry->{start}; - my $dbh = db::connect($config); - return db::insert( $dbh, 'calcms_series_schedule', $entry ); + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; + return undef unless defined $entry->{start}; + my $dbh = db::connect($config); + return db::insert( $dbh, 'calcms_series_schedule', $entry ); } #schedule id to id -sub update { - my $config = shift; - my $entry = shift; +sub update($$) { + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{series_id}; - return undef unless defined $entry->{schedule_id}; - return undef unless defined $entry->{start}; - $entry->{nextDay} = 0 unless defined $entry->{nextDay}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; + return undef unless defined $entry->{schedule_id}; + return undef unless defined $entry->{start}; + $entry->{nextDay} = 0 unless defined $entry->{nextDay}; - $entry->{id} = $entry->{schedule_id}; - delete $entry->{schedule_id}; + $entry->{id} = $entry->{schedule_id}; + delete $entry->{schedule_id}; - my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); - push @bind_values, $entry->{project_id}; - push @bind_values, $entry->{studio_id}; - push @bind_values, $entry->{id}; + push @bind_values, $entry->{project_id}; + push @bind_values, $entry->{studio_id}; + push @bind_values, $entry->{id}; - my $query = qq{ + my $query = qq{ update calcms_series_schedule set $values where project_id=? and studio_id=? and id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); - db::put( $dbh, $query, \@bind_values ); - print "done\n"; + #print STDERR Dumper($query).Dumper(\@bind_values); + db::put( $dbh, $query, \@bind_values ); + print "done\n"; } #map schedule id to id -sub delete { - my $config = shift; - my $entry = shift; +sub delete($$) { + my $config = shift; + my $entry = shift; - return undef unless defined $entry->{project_id}; - return undef unless defined $entry->{studio_id}; - return undef unless defined $entry->{series_id}; - return undef unless defined $entry->{schedule_id}; + return undef unless defined $entry->{project_id}; + return undef unless defined $entry->{studio_id}; + return undef unless defined $entry->{series_id}; + return undef unless defined $entry->{schedule_id}; - my $dbh = db::connect($config); + my $dbh = db::connect($config); - my $query = qq{ + my $query = qq{ delete from calcms_series_schedule where project_id=? and studio_id=? and series_id=? and id=? }; - my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{schedule_id} ]; + my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{schedule_id} ]; - #print '<pre>$query'.$query.Dumper($bind_values).'</pre>'; - db::put( $dbh, $query, $bind_values ); + #print '<pre>$query'.$query.Dumper($bind_values).'</pre>'; + db::put( $dbh, $query, $bind_values ); } -sub error { - my $msg = shift; - print "ERROR: $msg<br/>\n"; +sub error($) { + my $msg = shift; + print "ERROR: $msg<br/>\n"; } #do not delete last line! diff --git a/lib/calcms/startup.pl b/lib/calcms/startup.pl index 55a6121..85080c5 100644 --- a/lib/calcms/startup.pl +++ b/lib/calcms/startup.pl @@ -2,8 +2,6 @@ use lib qw(/home/radio/calcms/calcms/); use Data::Dumper; use Apache::DBI(); -#$Apache::DBI::DEBUG = 2; - use Time::Local(); use Date::Calc(); use Calendar::Simple qw(date_span); @@ -12,7 +10,6 @@ use config(); use log(); use time(); use db(); -use cache(); use template(); #do not delete last line! diff --git a/lib/calcms/studio_timeslot_dates.pm b/lib/calcms/studio_timeslot_dates.pm index 82b542d..bc60517 100644 --- a/lib/calcms/studio_timeslot_dates.pm +++ b/lib/calcms/studio_timeslot_dates.pm @@ -1,7 +1,8 @@ package studio_timeslot_dates; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Date::Calc(); @@ -16,7 +17,7 @@ our @EXPORT_OK = qw(get_columns get insert update delete get_dates); sub debug; -sub get_columns { +sub get_columns ($){ my $config = shift; my $dbh = db::connect($config); @@ -30,7 +31,7 @@ sub get_columns { # get all studio_timeslot_dates for studio_id within given time range # calculate start_date, end_date, weeday, day from start and end(datetime) -sub get { +sub get ($$){ my $config = shift; my $condition = shift; diff --git a/lib/calcms/studio_timeslot_schedule.pm b/lib/calcms/studio_timeslot_schedule.pm index 9f45da7..26459ba 100644 --- a/lib/calcms/studio_timeslot_schedule.pm +++ b/lib/calcms/studio_timeslot_schedule.pm @@ -1,7 +1,8 @@ package studio_timeslot_schedule; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use studio_timeslot_dates(); @@ -14,7 +15,7 @@ our @EXPORT_OK = qw(get_columns get insert update delete); sub debug; -sub get_columns { +sub get_columns($) { my $config = shift; my $dbh = db::connect($config); @@ -27,7 +28,7 @@ sub get_columns { } #map schedule id to id -sub get { +sub get($$) { my $config = shift; my $condition = shift; @@ -70,7 +71,7 @@ sub get { return $entries; } -sub insert { +sub insert($$) { my $config = shift; my $entry = shift; @@ -85,7 +86,7 @@ sub insert { } #schedule id to id -sub update { +sub update($$) { my $config = shift; my $entry = shift; @@ -119,7 +120,7 @@ sub update { } #map schedule id to id -sub delete { +sub delete ($$){ my $config = shift; my $entry = shift; @@ -138,7 +139,7 @@ sub delete { db::put( $dbh, $query, $bind_values ); } -sub error { +sub error($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 8cbe95d..0288da5 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -1,7 +1,8 @@ package studios; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use images(); @@ -11,7 +12,7 @@ our @EXPORT_OK = qw(get_columns get get_by_id insert update delete check check_s sub debug; -sub get_columns { +sub get_columns($) { my $config = shift; my $dbh = db::connect($config); @@ -22,8 +23,7 @@ sub get_columns { } return $columns; } - -sub get { +sub get($;$) { my $config = shift; my $condition = shift || {}; @@ -61,7 +61,7 @@ sub get { $limit }; } else { - push @conditions, 's.id=ps.studio_id'; + push @conditions, 's.id=ps.studio_id'; push @conditions, 'ps.project_id=?'; push @bind_values, $condition->{project_id}; @@ -80,7 +80,7 @@ sub get { return $studios; } -sub getImageById { +sub getImageById($$) { my $config = shift; my $conditions = shift; @@ -91,7 +91,7 @@ sub getImageById { return $studios->[0]->{image}; } -sub insert { +sub insert ($$) { my $config = shift; my $entry = shift; @@ -104,7 +104,7 @@ sub insert { return $id; } -sub update { +sub update ($$) { my $config = shift; my $studio = shift; @@ -133,7 +133,7 @@ sub update { db::put( $dbh, $query, \@bind_values ); } -sub delete { +sub delete ($$) { my $config = shift; my $studio = shift; @@ -142,13 +142,13 @@ sub delete { } #TODO rename to check -sub check_studio { +sub check_studio($$) { my $config = shift; my $options = shift; return check( $config, $options ); } -sub check { +sub check ($$) { my $config = shift; my $options = shift; return "missing studio_id" unless defined $options->{studio_id}; diff --git a/lib/calcms/tags.pm b/lib/calcms/tags.pm index 65aafb3..3252531 100644 --- a/lib/calcms/tags.pm +++ b/lib/calcms/tags.pm @@ -1,13 +1,14 @@ package tags; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use base 'Exporter'; our @EXPORT_OK = qw(get_tags); -sub get_tags { +sub get_tags($) { my $dbh = shift; my $query = qq{ select name, count(name) sum from calcms_tags diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index a84cea5..03eabe9 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -1,11 +1,13 @@ package template; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use HTML::Template::Compiled(); use HTML::Template::Compiled::Plugin::XMLEscape(); + #use HTML::Template::JIT(); use JSON(); use Cwd(); @@ -20,7 +22,7 @@ use base 'Exporter'; our @EXPORT_OK = qw(check process exit_on_missing_permission clear_cache); # TODO:config -sub process { +sub process($$$$) { my $config = $_[0]; # my $output=$_[1]; @@ -47,7 +49,8 @@ sub process { my $user_permissions = roles::get_user_permissions($config); for my $permission ( keys %$user_permissions ) { - $params->{$permission} = $user_permissions->{$permission} if ( $user_permissions->{$permission} eq '1' ); + $params->{$permission} = $user_permissions->{$permission} + if ( $user_permissions->{$permission} eq '1' ); } $params->{jobs} = roles::get_user_jobs($config); @@ -65,25 +68,28 @@ sub process { return; } - unless (-r $filename){ - log::error($config, qq{template "$filename" does not exist}) unless -e $filename; - log::error($config, qq{missing permissions to read "$filename"}); + unless ( -r $filename ) { + log::error( $config, qq{template "$filename" does not exist} ) unless -e $filename; + log::error( $config, qq{missing permissions to read "$filename"} ); } my $html_template = initTemplate($filename); - setRelativeUrls( $params, 0 ) unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); + setRelativeUrls( $params, 0 ) + unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); $html_template->param($params); my $output = $html_template->output(); - if ($filename=~/html/){ - my ($header, $content) = split(/\n\n/, $output, 2); - if ($content){ - #$content =~s/\s+/ /g; - $output = $header."\n\n".$content; - }else{ - #$output =~s/[ \t]+/ /g; - } - } + if ( $filename =~ /html/ ) { + my ( $header, $content ) = split( /\n\n/, $output, 2 ); + if ($content) { + + #$content =~s/\s+/ /g; + $output = $header . "\n\n" . $content; + } else { + + #$output =~s/[ \t]+/ /g; + } + } if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) { print $output; @@ -92,8 +98,8 @@ sub process { } } -sub initTemplate{ - my $filename=shift; +sub initTemplate($) { + my $filename = shift; my $default_escape = 'none'; $default_escape = 'js' if ( $filename =~ /\.js$/ ); @@ -113,7 +119,7 @@ sub initTemplate{ utf8 => 1, plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], ); - } + } return HTML::Template::Compiled->new( filename => $filename, @@ -125,12 +131,15 @@ sub initTemplate{ default_escape => $default_escape, cache => 1, utf8 => 1, -#pre_chomp => 1, -#post_chomp => 1, + + #pre_chomp => 1, + #post_chomp => 1, ); } # set relative urls in nested params structure +sub setRelativeUrls; + sub setRelativeUrls { my $params = shift; my $depth = shift || 0; @@ -179,7 +188,7 @@ sub setRelativeUrls { #requires read config #TODO:add config -sub check { +sub check($;$$) { my $config = shift; my $template = shift || ''; my $default = shift; @@ -207,7 +216,9 @@ sub check { my $cwd = Cwd::getcwd(); $template .= '.html' unless ( $template =~ /\./ ); - if ( ( $config->{cache}->{compress} eq '1' ) && ( -e $cwd . '/templates/compressed/' . $template ) ) { + if ( ( $config->{cache}->{compress} eq '1' ) + && ( -e $cwd . '/templates/compressed/' . $template ) ) + { $template = $cwd . '/templates/compressed/' . $template; } elsif ( -e $cwd . '/templates/' . $template ) { $template = $cwd . '/templates/' . $template; @@ -216,29 +227,36 @@ sub check { } - log::error( $config, "missing permission to read template '$template'" ) unless ( -r $template ); + log::error( $config, "missing permission to read template '$template'" ) + unless ( -r $template ); return $template; } #deprecated (for old admin only) -sub exit_on_missing_permission { - my $config = shift; - my $permission = shift; +sub exit_on_missing_permission($$) { + my $config = shift; + my $permission = shift; + my $user_permissions = roles::get_user_permissions($config); if ( $user_permissions->{$permission} ne '1' ) { print STDERR "missing permission to $permission\n"; - template::process( $config, 'print', template::check( $config, 'default.html' ), { error => 'sorry, missing permission!' } ); + template::process( + $config, 'print', + template::check( $config, 'default.html' ), + { error => 'sorry, missing permission!' } + ); die(); } } +#do not delete last line! +1; + +__END__ sub clear_cache { HTML::Template::Compiled->clear_cache(); - # return; - # my $html_template = HTML::Template::Compiled->new(); - # $html_template->clear_cache(); + # return; + # my $html_template = HTML::Template::Compiled->new(); + # $html_template->clear_cache(); } - -#do not delete last line! -1; diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index 512928d..1688f0a 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -1,7 +1,8 @@ package time; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use utf8; use Time::Local(); @@ -73,32 +74,32 @@ my $DURATIONS = [ 120, 135, 150, 165, 180, 195, 210, 225, 240, 300, 360, 420, 480, 540, 600, 660, 720, 1440 ]; -sub getDurations { +sub getDurations() { return $DURATIONS; } -sub getWeekdayNames { +sub getWeekdayNames(;$) { my $language = shift || 'en'; return $NAMES->{$language}->{weekdays}; } -sub getWeekdayNamesShort { +sub getWeekdayNamesShort(;$) { my $language = shift || 'en'; return $NAMES->{$language}->{weekdays_abbr}; } -sub getMonthNames { +sub getMonthNames(;$) { my $language = shift || 'en'; return $NAMES->{$language}->{months}; } -sub getMonthNamesShort { +sub getMonthNamesShort(;$) { my $language = shift || 'en'; return $NAMES->{$language}->{months_abbr}; } -sub getWeekdayIndex($) { +sub getWeekdayIndex(;$) { my $weekday = shift || ''; return $WEEKDAY_INDEX->{$weekday}; } @@ -128,14 +129,14 @@ sub getWeekdays { } #deprecated, for wordpress sync -sub format_datetime { +sub format_datetime(;$) { my $datetime = shift; return $datetime if ( $datetime eq '' ); return add_hours_to_datetime( $datetime, 0 ); } #deprecated -sub format_time { +sub format_time($) { my $t = $_[0]; my $year = $t->[5] + 1900; @@ -155,7 +156,7 @@ sub format_time { } # convert datetime to unix time -sub datetime_to_time { +sub datetime_to_time ($){ my $datetime = $_[0]; # print $datetime."\n"; @@ -167,7 +168,6 @@ sub datetime_to_time { my $minute = $5; my $second = $8 || 0; return Time::Local::timelocal( $second, $minute, $hour, $day, $month, $year ) || print STDERR "datetime_to_time: no valid date time found! ($datetime)\n"; - ; } else { print STDERR "datetime_to_time: no valid date time found! ($datetime)\n"; @@ -176,14 +176,14 @@ sub datetime_to_time { } #get rfc822 datetime string from datetime string -sub datetime_to_rfc822 { +sub datetime_to_rfc822($) { my $datetime = $_[0]; my $time = datetime_to_time($datetime); return POSIX::strftime( "%a, %d %b %Y %H:%M:%S %z", localtime($time) ); } #get seconds from epoch -sub datetime_to_utc { +sub datetime_to_utc($$) { my $datetime = shift; my $time_zone = shift; $datetime = get_datetime( $datetime, $time_zone ); @@ -191,7 +191,7 @@ sub datetime_to_utc { } # get full utc datetime including timezone offset -sub datetime_to_utc_datetime { +sub datetime_to_utc_datetime($$) { my $datetime = shift; my $time_zone = shift; $datetime = get_datetime( $datetime, $time_zone ); @@ -199,7 +199,7 @@ sub datetime_to_utc_datetime { } #add hours to datetime string -sub add_hours_to_datetime { +sub add_hours_to_datetime($;$) { my $datetime = shift; my $hours = shift; $hours = 0 unless defined $hours; @@ -207,7 +207,7 @@ sub add_hours_to_datetime { } #add minutes to datetime string -sub add_minutes_to_datetime { +sub add_minutes_to_datetime($;$) { my $datetime = shift; my $minutes = shift; $minutes = 0 unless defined $minutes; @@ -215,7 +215,7 @@ sub add_minutes_to_datetime { } #add days to datetime string -sub add_days_to_datetime { +sub add_days_to_datetime($;$) { my $datetime = shift; my $days = shift; $days = 0 unless defined $days; @@ -226,7 +226,7 @@ sub add_days_to_datetime { return array_to_datetime($time); } -sub add_days_to_date { +sub add_days_to_date($;$) { my $datetime = shift; my $days = shift; $days = 0 unless defined $days; @@ -236,7 +236,7 @@ sub add_days_to_date { } # convert unix time to datetime format -sub time_to_datetime { +sub time_to_datetime(;$) { my $time = shift; $time = time() unless ( defined $time ) && ( $time ne '' ); my @t = localtime($time); @@ -244,7 +244,7 @@ sub time_to_datetime { } # convert unix time to date format -sub time_to_date { +sub time_to_date(;$) { my $time = shift; $time = time() unless ( defined $time ) && ( $time ne '' ); my @t = localtime($time); @@ -252,7 +252,7 @@ sub time_to_date { } # convert datetime to a array of date/time values -sub datetime_to_array { +sub datetime_to_array(;$) { my $datetime = $_[0] || ''; if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)([T\s]+(\d+)\:(\d+)(\:(\d+))?)?/ ) { my $year = $1; @@ -267,7 +267,7 @@ sub datetime_to_array { } # convert datetime to date -sub datetime_to_date { +sub datetime_to_date(;$) { my $datetime = $_[0] || ''; if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { my $year = $1; @@ -279,7 +279,7 @@ sub datetime_to_date { } #convert datetime array or single value to datetime string -sub array_to_datetime { +sub array_to_datetime(;$) { my $date = shift; if ( ref($date) eq 'ARRAY' ) { return sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $date->[0], $date->[1], $date->[2], $date->[3], $date->[4], $date->[5] ); @@ -293,7 +293,7 @@ sub array_to_datetime { } #convert date array or single values to date string -sub array_to_date { +sub array_to_date($;$$) { my $date = shift; if ( ref($date) eq 'ARRAY' ) { return sprintf( "%04d-%02d-%02d", $date->[0], $date->[1], $date->[2] ); @@ -303,7 +303,7 @@ sub array_to_date { return sprintf( "%04d-%02d-%02d", $date, $month, $day ); } -sub array_to_time { +sub array_to_time(;$) { my $date = shift; if ( ref($date) eq 'ARRAY' ) { return sprintf( "%02d:%02d:%02d", $date->[3], $date->[4], $date->[5] ); @@ -313,7 +313,7 @@ sub array_to_time { return sprintf( "%02d:%02d:%02d", $date, $minute, $second ); } -sub array_to_time_hm { +sub array_to_time_hm(;$) { my $date = shift; if ( ref($date) eq 'ARRAY' ) { return sprintf( "%02d:%02d", $date->[3], $date->[4] ); @@ -323,14 +323,14 @@ sub array_to_time_hm { } # get number of days between two days -sub days_between { +sub days_between($$) { my $today = $_[0]; my $date = $_[1]; my $delta_days = eval { Date::Calc::Delta_Days( $today->[0], $today->[1], $today->[2], $date->[0], $date->[1], $date->[2] ) }; return $delta_days; } -sub dayOfYear { +sub dayOfYear($) { my $datetime = $_[0]; if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { my $year = $1; @@ -342,7 +342,7 @@ sub dayOfYear { } # get duration in minutes -sub get_duration { +sub get_duration($$$) { my $start = shift; my $end = shift; my $timezone = shift; @@ -353,7 +353,7 @@ sub get_duration { } # get duration in seconds -sub get_duration_seconds { +sub get_duration_seconds($$;$) { my $start = shift; my $end = shift; my $timezone = shift || 'UTC'; @@ -382,7 +382,7 @@ sub get_duration_seconds { } # convert date string to a array of date values -sub date_to_array { +sub date_to_array($) { my $datetime = $_[0]; if ( $datetime =~ /(\d\d\d\d)\-(\d+)\-(\d+)/ ) { my $year = $1; @@ -395,7 +395,7 @@ sub date_to_array { # parse date string and return date string # pass 'today', return '' on parse error -sub date_cond { +sub date_cond($) { my $date = shift; return '' if ( $date eq '' ); @@ -411,7 +411,7 @@ sub date_cond { #parse time and return time string hh:mm:ss #return hh:00 if time is 'now' -sub time_cond { +sub time_cond($) { my $time = shift; return '' if ( $time eq '' ); @@ -432,7 +432,7 @@ sub time_cond { } #parse date and time string and return yyyy-mm-ddThh:mm:ss -sub datetime_cond { +sub datetime_cond($) { my $datetime = shift; return '' if ( $datetime eq '' ); @@ -445,7 +445,7 @@ sub datetime_cond { return $date . 'T' . $time; } -sub check_date { +sub check_date($) { my $date = shift; return "" if ( !defined $date ) || ( $date eq '' ); @@ -460,7 +460,7 @@ sub check_date { #error("no valid date format given!"); } -sub check_time { +sub check_time($) { my $time = shift; return "" if ( !defined $time ) || ( $time eq '' ); return $time if ( $time eq 'now' ) || ( $time eq 'future' ); @@ -470,7 +470,7 @@ sub check_time { return -1; } -sub check_datetime { +sub check_datetime($) { my $date = shift; return "" if ( !defined $date ) || ( $date eq '' ); @@ -480,7 +480,7 @@ sub check_datetime { return -1; } -sub check_year_month { +sub check_year_month($) { my $date = shift; return -1 unless ( defined $date ); return $date if ( $date eq '' ); @@ -491,7 +491,7 @@ sub check_year_month { } #TODO: remove config dependency -sub date_time_format { +sub date_time_format($$;$) { my $config = shift; my $datetime = shift; my $language = shift || $config->{date}->{language} || 'en'; @@ -509,7 +509,7 @@ sub date_time_format { #format datetime to date string #TODO: remove config dependency -sub date_format { +sub date_format($$;$) { my $config = shift; my $datetime = shift; my $language = shift || $config->{date}->{language} || 'en'; @@ -525,7 +525,7 @@ sub date_format { } #format datetime to time string -sub time_format { +sub time_format($) { my $datetime = shift; if ( defined $datetime && $datetime =~ /(\d\d?\:\d\d?)/ ) { return $1; @@ -534,7 +534,7 @@ sub time_format { } #get offset from given time_zone -sub utc_offset { +sub utc_offset($) { my $time_zone = shift; my $datetime = DateTime->now(); @@ -543,7 +543,7 @@ sub utc_offset { } #get weekday from (yyyy,mm,dd) -sub weekday { +sub weekday($$$) { my ( $year, $month, $day ) = @_; my $time = Time::Local::timelocal( 0, 0, 0, $day, $month - 1, $year ); return ( localtime($time) )[6]; @@ -551,7 +551,7 @@ sub weekday { #get current date, related to starting day_starting_hour #TODO: remove config dependency -sub get_event_date { +sub get_event_date($) { my $config = shift; my $datetime = time::time_to_datetime( time() ); @@ -571,7 +571,7 @@ sub get_event_date { } #get datetime object from datetime string -sub get_datetime { +sub get_datetime(;$$) { my $datetime = shift; my $timezone = shift; @@ -599,7 +599,7 @@ sub get_datetime { } #get list of nth weekday in month from start to end -sub get_nth_weekday_in_month { +sub get_nth_weekday_in_month(;$$$$) { my $start = shift; # datetime string my $end = shift; # datetime string my $nth = shift; # every nth week of month diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 476f761..0c99153 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -1,6 +1,8 @@ package uac; -use warnings "all"; + use strict; +use warnings; +no warnings 'redefine'; use CGI::Session qw(-ip-match); use CGI::Cookie(); @@ -28,7 +30,7 @@ our @EXPORT_OK = qw( sub debug; # get user by name -sub get_user { +sub get_user($$) { my $config = shift; my $user = shift; @@ -49,7 +51,7 @@ sub get_user { } # get all users -sub get_users { +sub get_users($;$) { my $config = shift; my $condition = shift; @@ -82,7 +84,7 @@ sub get_users { # get all users of a given studio id # used at series (previously named get_studio_users) -sub get_users_by_studio { +sub get_users_by_studio ($$) { my $config = shift; my $condition = shift; @@ -117,7 +119,7 @@ sub get_users_by_studio { } # get projects a user is assigned by name -sub get_projects_by_user { +sub get_projects_by_user ($$) { my $config = shift; my $condition = shift; @@ -156,7 +158,7 @@ sub get_projects_by_user { # get all studios a user is assigned to by role # used at series (previously named get_user_studios) -sub get_studios_by_user { +sub get_studios_by_user ($$) { my $config = shift; my $condition = shift; @@ -192,7 +194,7 @@ sub get_studios_by_user { return $users; } -sub insert_user { +sub insert_user($$) { my $config = shift; my $entry = shift; @@ -203,7 +205,7 @@ sub insert_user { db::insert( $dbh, 'calcms_users', $entry ); } -sub update_user { +sub update_user($$) { my $config = shift; my $entry = shift; @@ -223,7 +225,7 @@ sub update_user { db::put( $dbh, $query, \@bind_values ); } -sub delete_user { +sub delete_user($$) { my $config = shift; my $id = shift; return unless ( defined $id && ( $id =~ /^\d+$/ ) ); @@ -238,7 +240,7 @@ sub delete_user { # get all roles used by all users of a studio # available conditions: project_id, studio_id -sub get_studio_roles { +sub get_studio_roles($$) { my $config = shift; my $condition = shift; @@ -273,7 +275,7 @@ sub get_studio_roles { } # get role columns (for external use only) -sub get_role_columns { +sub get_role_columns($) { my $config = shift; my $dbh = db::connect($config); my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); @@ -282,7 +284,7 @@ sub get_role_columns { # get roles # filter: studio_id project_id -sub get_roles { +sub get_roles($$) { my $config = shift; my $condition = shift; @@ -313,7 +315,7 @@ sub get_roles { } #insert role to database, set created_at and modified_at -sub insert_role { +sub insert_role ($$) { my $config = shift; my $entry = shift; @@ -330,7 +332,7 @@ sub insert_role { } #update role, set modified_at -sub update_role { +sub update_role($$) { my $config = shift; my $entry = shift; @@ -354,7 +356,7 @@ sub update_role { } # delete role from database -sub delete_role { +sub delete_role($$) { my $config = shift; my $id = shift; @@ -370,7 +372,7 @@ sub delete_role { # get all roles for given conditions: project_id, studio_id, user_id, name # includes global admin user role -sub get_user_roles { +sub get_user_roles($$) { my $config = shift; my $condition = shift; @@ -425,7 +427,7 @@ sub get_user_roles { } #return admin user roles for given conditions: project_id, studio_id, user, user_id -sub get_admin_user_roles { +sub get_admin_user_roles ($$) { my $config = shift; my $condition = shift; @@ -468,7 +470,7 @@ sub get_admin_user_roles { # read permissions for given conditions and add to user_permissions # return user_permissions # studio_id, user_id, name -sub get_user_permissions { +sub get_user_permissions ($$;$) { my $config = shift; my $conditions = shift; my $user_permissions = shift; @@ -478,8 +480,8 @@ sub get_user_permissions { my @user_roles = ( @$admin_roles, @$user_roles ); #set default permissions - $user_permissions = {} unless ( defined $user_permissions ); - $user_permissions->{is_admin} = 1 if ( scalar @$admin_roles > 0 ); + $user_permissions = {} unless defined $user_permissions; + $user_permissions->{is_admin} = 1 if scalar @$admin_roles > 0; my $max_level = 0; @@ -501,7 +503,8 @@ sub get_user_permissions { && ( $permission ne 'studio_id' ) && ( $permission ne 'project_id' ) ) { - $user_permissions->{$permission} = 1 if ( defined $user_role->{$permission} ) && ( $user_role->{$permission} ne '0' ); + $user_permissions->{$permission} = 1 + if ( defined $user_role->{$permission} ) && ( $user_role->{$permission} ne '0' ); } } } @@ -509,7 +512,7 @@ sub get_user_permissions { } #get user id by user name -sub get_user_id { +sub get_user_id ($$) { my $config = shift; my $user = shift; @@ -527,7 +530,7 @@ sub get_user_id { } #get role id by role name -sub get_role_id { +sub get_role_id ($$) { my $config = shift; my $role = shift; @@ -545,7 +548,7 @@ sub get_role_id { } # assign a role to an user (for a studio) -sub assign_user_role { +sub assign_user_role($$) { my $config = shift; my $options = shift; @@ -561,8 +564,9 @@ sub assign_user_role { from calcms_user_roles where project_id=? and studio_id=? and user_id=? and role_id=? }; - my $dbh = db::connect($config); - my $user_roles = db::get( $dbh, $query, [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ] ); + my $dbh = db::connect($config); + my $user_roles = db::get( $dbh, $query, + [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ] ); return undef if scalar @$user_roles > 0; #insert entry @@ -578,7 +582,7 @@ sub assign_user_role { } # unassign a user from a role of (for a studio) -sub remove_user_role { +sub remove_user_role($$) { my $config = shift; my $options = shift; @@ -603,7 +607,7 @@ sub remove_user_role { } #checks -sub is_user_assigned_to_studio { +sub is_user_assigned_to_studio ($$) { my $request = shift; my $options = shift; @@ -626,26 +630,26 @@ sub is_user_assigned_to_studio { # print errors at get_user_presets and check for project id and studio id # call after header is printed -sub check { +sub check($$$) { my $config = shift; my $params = shift; my $user_presets = shift; if ( defined $user_presets->{error} ) { uac::print_error( $user_presets->{error} ); - return undef; + return 0; } my $project_check = project::check( $config, { project_id => $params->{project_id} } ); if ( $project_check ne '1' ) { uac::print_error($project_check); - return undef; + return 0; } my $studio_check = studios::check( $config, { studio_id => $params->{studio_id} } ); if ( $studio_check ne '1' ) { uac::print_error($studio_check); - return undef; + return 0; } return 1; } @@ -653,7 +657,7 @@ sub check { # get user, projects and studios user is assigned to for selected values from params # set permissions for selected project and studio # return request -sub get_user_presets { +sub get_user_presets($$) { my $config = shift; my $options = shift; @@ -666,8 +670,8 @@ sub get_user_presets { $config->{access}->{write} = 0; my $user_settings = user_settings::get( $config, { user => $user } ); - $project_id = $user_settings->{project_id} if $project_id eq ''; - $studio_id = $user_settings->{studio_id} if $studio_id eq ''; + $project_id = $user_settings->{project_id} || '' if $project_id eq ''; + $studio_id = $user_settings->{studio_id} || '' if $studio_id eq ''; #get my $admin_roles = get_admin_user_roles( $config, { user => $user } ); @@ -732,7 +736,8 @@ sub get_user_presets { } } - my $permissions = uac::get_user_permissions( $config, { user => $user, project_id => $project_id, studio_id => $studio_id } ); + my $permissions = + uac::get_user_permissions( $config, { user => $user, project_id => $project_id, studio_id => $studio_id } ); #only admin is allowed to select all projects # if($permissions->{is_admin}==1){ @@ -780,7 +785,7 @@ sub get_user_presets { return $result; } -sub setDefaultProject { +sub setDefaultProject ($$) { my $params = shift; my $user_presets = shift; @@ -789,7 +794,7 @@ sub setDefaultProject { return $params; } -sub setDefaultStudio { +sub setDefaultStudio($$) { my $params = shift; my $user_presets = shift; @@ -799,7 +804,7 @@ sub setDefaultStudio { } #set user preset properties to request -sub prepare_request { +sub prepare_request ($$) { my $request = shift; my $user_presets = shift; @@ -815,7 +820,7 @@ sub prepare_request { } #TODO: shift to permissions sub entry -sub set_template_permissions { +sub set_template_permissions ($$) { my $permissions = shift; my $params = shift; @@ -826,25 +831,34 @@ sub set_template_permissions { } #print error message -sub permissions_denied { +sub permissions_denied($) { my $message = shift; $message =~ s/_/ /g; print '<div class="error">Sorry! Missing permissions to ' . $message . '</div>' . "\n"; print STDERR 'Sorry! Missing permissions to ' . $message . "\n"; } -sub print_info { - print '<div class="ok head">' . '<span class="ui-icon ui-icon-check" style="float:left"></span> ' . $_[0] . '</div>' . "\n"; +sub print_info($) { + print '<div class="ok head">' + . '<span class="ui-icon ui-icon-check" style="float:left"></span> ' + . $_[0] + . '</div>' . "\n"; } -sub print_warn { - print '<div class="warn head">' . '<span class="ui-icon ui-icon-info" style="float:left"></span> ' . $_[0] . '</div>' . "\n"; +sub print_warn($) { + print '<div class="warn head">' + . '<span class="ui-icon ui-icon-info" style="float:left"></span> ' + . $_[0] + . '</div>' . "\n"; } -sub print_error { +sub print_error ($) { my $message = shift; print STDERR "ERROR:" . $message . "\n"; - print '<div class="error" head>' . '<span class="ui-icon ui-icon-alert" style="float:left"></span> ' . $message . '</div>' . "\n"; + print '<div class="error" head>' + . '<span class="ui-icon ui-icon-alert" style="float:left"></span> ' + . $message + . '</div>' . "\n"; } #do not delete last line! diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 67bdd43..5e71dca 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -1,7 +1,8 @@ package user_settings; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use series_dates(); @@ -9,7 +10,7 @@ use series_dates(); # table: calcms_user_settings # columns: user, colors use base 'Exporter'; -our @EXPORT_OK = qw(getColors getColorCss get insert update delete get_columns defaultColors); +our @EXPORT_OK = qw(getColors getColorCss get insert update delete get_columns defaultColors); sub debug; @@ -66,9 +67,10 @@ our $defaultColors = [ } ]; -sub getColors { +sub getColors($$) { my $config = shift; my $conditions = shift; + return unless defined $conditions->{user}; my $user = $conditions->{user}; @@ -95,12 +97,12 @@ sub getColors { $key =~ s/\s+$//; $value =~ s/^\s+//; $value =~ s/\s+$//; - $colorMap->{$key}->{color} = $value if ( $key ne '' ) && ( $value ne '' ) && ( defined $colorMap->{$key} ) ; + $colorMap->{$key}->{color} = $value if ( $key ne '' ) && ( $value ne '' ) && ( defined $colorMap->{$key} ); } return $colors; } -sub getColorCss { +sub getColorCss ($$) { my $config = shift; my $conditions = shift; return unless defined $conditions->{user}; @@ -131,7 +133,7 @@ sub getColorCss { return $style; } -sub get_columns { +sub get_columns($) { my $config = shift; my $dbh = db::connect($config); @@ -143,7 +145,7 @@ sub get_columns { return $columns; } -sub get { +sub get ($$) { my $config = shift; my $condition = shift; @@ -170,7 +172,7 @@ sub get { return $entries->[0] || undef; } -sub insert { +sub insert ($$) { my $config = shift; my $entry = shift; @@ -179,7 +181,7 @@ sub insert { return db::insert( $dbh, 'calcms_user_settings', $entry ); } -sub update { +sub update($$) { my $config = shift; my $entry = shift; @@ -195,12 +197,13 @@ sub update { set $values where user=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); + + #print STDERR Dumper($query).Dumper(\@bind_values); db::put( $dbh, $query, \@bind_values ); print "done\n"; } -sub delete { +sub delete ($$) { my $config = shift; my $entry = shift; @@ -218,7 +221,7 @@ sub delete { db::put( $dbh, $query, $bind_values ); } -sub error { +sub error ($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/user_stats.pm b/lib/calcms/user_stats.pm index 6469417..0af00dd 100644 --- a/lib/calcms/user_stats.pm +++ b/lib/calcms/user_stats.pm @@ -1,15 +1,16 @@ package user_stats; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use base 'Exporter'; -our @EXPORT_OK = qw(get_columns get update insert get_stats increase); +our @EXPORT_OK = qw(get_columns get update insert get_stats increase); sub debug; -sub get_columns { +sub get_columns($) { my $config = shift; my $dbh = db::connect($config); @@ -21,7 +22,7 @@ sub get_columns { return $columns; } -sub get { +sub get ($$) { my $config = shift; my $condition = shift; @@ -72,7 +73,7 @@ sub get { return $results; } -sub get_stats { +sub get_stats($$) { my $config = shift; my $condition = shift; @@ -129,7 +130,9 @@ sub get_stats { my $results = db::get( $dbh, $query, \@bind_values ); for my $result (@$results) { $result->{score} = 0; - for my $column ( 'create_events', 'update_events', 'delete_events', 'create_series', 'update_series', 'delete_series' ) { + for my $column ( 'create_events', 'update_events', 'delete_events', 'create_series', 'update_series', + 'delete_series' ) + { $result->{score} += $result->{$column}; } } @@ -137,7 +140,7 @@ sub get_stats { return \@results; } -sub insert { +sub insert($$) { my $config = shift; my $stats = shift; @@ -160,7 +163,7 @@ sub insert { } # update project -sub update { +sub update ($$) { my $config = shift; my $stats = shift; @@ -194,7 +197,7 @@ sub update { return db::put( $dbh, $query, \@bind_values ); } -sub increase { +sub increase ($$$) { my $config = shift; my $usecase = shift; my $options = shift; @@ -241,7 +244,7 @@ sub increase { } -sub error { +sub error ($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index 42b7471..966ea45 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -1,7 +1,8 @@ package work_dates; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use Date::Calc(); @@ -16,11 +17,11 @@ use work_schedule(); # columns: id, studio_id, schedule_id, start(datetime), end(datetime) # TODO: delete column schedule_id use base 'Exporter'; -our @EXPORT_OK = qw(get_columns get insert update delete get_dates); +our @EXPORT_OK = qw(get_columns get insert update delete get_dates); sub debug; -sub get_columns { +sub get_columns($) { my $config = shift; my $dbh = db::connect($config); @@ -34,12 +35,13 @@ sub get_columns { # get all work_dates for studio_id and schedule_id within given time range # calculate start_date, end_date, weeday, day from start and end(datetime) -sub get { +sub get ($$) { my $config = shift; my $condition = shift; my $date_range_include = 0; - $date_range_include = 1 if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); + $date_range_include = 1 + if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); my $dbh = db::connect($config); @@ -125,7 +127,7 @@ sub get { } #update work dates for all schedules of a work and studio_id -sub update { +sub update($$) { my $config = shift; my $entry = shift; @@ -215,7 +217,7 @@ sub update { return $j . " dates out of studio times, " . $i; } -sub get_schedule_dates { +sub get_schedule_dates($$) { my $schedule = shift; my $options = shift; @@ -239,7 +241,7 @@ sub get_schedule_dates { return $dates; } -sub get_week_of_month_dates { +sub get_week_of_month_dates($$$$$$) { my $start = shift; # datetime string my $end = shift; # datetime string my $duration = shift; # in minutes @@ -283,7 +285,7 @@ sub get_week_of_month_dates { } #add duration to a single date -sub get_single_date { +sub get_single_date($$) { my $start_datetime = shift; my $duration = shift; @@ -303,12 +305,12 @@ sub get_single_date { } #calculate all dates between start_datetime and end_date with duration(minutes) and frequency(days) -sub get_dates { +sub get_dates($$$$) { my $start_datetime = shift; my $end_date = shift; my $duration = shift; # in minutes my $frequency = shift; # in days - #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; + #print "start_datetime:$start_datetime end_date:$end_date duration:$duration frequency:$frequency\n"; my @start = @{ time::datetime_to_array($start_datetime) }; return unless @start >= 6; @@ -364,7 +366,7 @@ sub get_dates { } #remove all work_dates for studio_id and schedule_id -sub delete { +sub delete($$) { my $config = shift; my $entry = shift; @@ -385,7 +387,7 @@ sub delete { return db::put( $dbh, $query, $bind_values ); } -sub error { +sub error($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/lib/calcms/work_schedule.pm b/lib/calcms/work_schedule.pm index 562bc8b..00508b7 100644 --- a/lib/calcms/work_schedule.pm +++ b/lib/calcms/work_schedule.pm @@ -1,7 +1,8 @@ package work_schedule; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use series_dates(); @@ -17,11 +18,11 @@ use series_dates(); # month use base 'Exporter'; -our @EXPORT_OK = qw(get_columns get insert update delete); +our @EXPORT_OK = qw(get_columns get insert update delete); sub debug; -sub get_columns { +sub get_columns($) { my $config = shift; my $dbh = db::connect($config); @@ -34,7 +35,7 @@ sub get_columns { } #map schedule id to id -sub get { +sub get($$) { my $config = shift; my $condition = shift; @@ -89,7 +90,7 @@ sub get { return $entries; } -sub insert { +sub insert ($$) { my $config = shift; my $entry = shift; @@ -101,7 +102,7 @@ sub insert { } #schedule id to id -sub update { +sub update ($$) { my $config = shift; my $entry = shift; @@ -128,7 +129,7 @@ sub update { } #map schedule id to id -sub delete { +sub delete($$) { my $config = shift; my $entry = shift; @@ -149,7 +150,7 @@ sub delete { return db::put( $dbh, $query, $bind_values ); } -sub error { +sub error($) { my $msg = shift; print "ERROR: $msg<br/>\n"; } diff --git a/website/agenda/add_comment.cgi b/website/agenda/add_comment.cgi index 9f7e932..15dba18 100755 --- a/website/agenda/add_comment.cgi +++ b/website/agenda/add_comment.cgi @@ -1,4 +1,4 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl use warnings; use strict; @@ -8,7 +8,6 @@ use params(); use config(); use db(); use markup(); -use cache(); use comments(); use template(); use log(); diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 5ab017f..2c6642b 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -1,11 +1,8 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl use warnings "all"; use strict; use utf8; - -#use CGI qw(header param Vars); - use config(); use params(); use db(); @@ -20,7 +17,7 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { my $params = {}; my $r = shift; - #print STDERR ref($r)."\n"; + if ( ref($r) eq '' ) { for my $arg (@ARGV) { my ( $key, $value ) = split( /\=/, $arg, 2 ); @@ -56,22 +53,12 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { $params = $request->{params}->{checked}; my $mem = 0; - - #get result from cache - my $cache = aggregator::get_cache( $config, $request ); - - if ( ( defined $cache->{content} ) && ( $cache->{content} ne '' ) ) { - my $content = $cache->{content}; - print $output_header; - print $content; - return; - } - my $content = load_file( $base_dir . './index.html' ); $content = $$content || ''; #replace HTML escaped calcms_title span by unescaped one - $content =~ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span id=\"calcms_title\" \>\<\/span\>/g; + $content =~ +s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span id=\"calcms_title\" \>\<\/span\>/g; # print $content; @@ -130,7 +117,9 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { $content =~ s/(<(div|span)\s+id="calcms_title".*?>).*?(<\/(div|span)>)/$list->{project_title}/g; my $values = []; - for my $value ( $list->{'series_name'}, $list->{'title'}, $list->{'location'}, 'Programm '. $list->{project_title} ) { + for my $value ( $list->{'series_name'}, + $list->{'title'}, $list->{'location'}, 'Programm ' . $list->{project_title} . ' | In Gedenken an AB✝' ) + { next unless defined $value; next if $value eq ''; push @$values, $value; @@ -156,14 +145,8 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { print $output_header; print $content; - if ( $config->{cache}->{use_cache} eq '1' ) { - $cache->{content} = $content; - cache::save($cache); - } - # $config=undef; $content = undef; - $cache = undef; } sub load_file { diff --git a/website/agenda/cal.cgi b/website/agenda/cal.cgi index 7bbd657..37c83a4 100755 --- a/website/agenda/cal.cgi +++ b/website/agenda/cal.cgi @@ -1,8 +1,8 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -#use utf8; -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use params(); @@ -16,23 +16,23 @@ my $r = shift; binmode STDOUT, ":encoding(UTF-8)"; if ( $0 =~ /cal.*?\.cgi$/ ) { - ( my $cgi, my $params, my $error ) = params::get($r); + ( my $cgi, my $params, my $error ) = params::get($r); - my $config = config::getFromScriptLocation(); - my $debug = $config->{system}->{debug}; + my $config = config::getFromScriptLocation(); + my $debug = $config->{system}->{debug}; - my $request = { - url => $ENV{QUERY_STRING}, - params => { - original => $params, - checked => calendar::check_params( $config, $params ), - }, - }; - $params = $request->{params}->{checked}; + my $request = { + url => $ENV{QUERY_STRING}, + params => { + original => $params, + checked => calendar::check_params( $config, $params ), + }, + }; + $params = $request->{params}->{checked}; - my $out = ''; - calendar::get_cached_or_render( $out, $config, $request ); - print $out. "\n"; + my $out = ''; + calendar::get_cached_or_render( $out, $config, $request ); + print $out. "\n"; } 1; diff --git a/website/agenda/category.cgi b/website/agenda/category.cgi index d97d7f5..47b6bea 100755 --- a/website/agenda/category.cgi +++ b/website/agenda/category.cgi @@ -1,13 +1,14 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl use strict; use warnings; +no warnings 'redefine'; + use Data::Dumper; use params(); use db(); use markup(); -use cache(); use log(); use config(); use template(); @@ -19,7 +20,7 @@ my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); my $config = config::getFromScriptLocation(); -my $debug = $config->{system}->{debug}; +my $debug = $config->{system}->{debug}; my $request = { url => $ENV{QUERY_STRING}, @@ -30,16 +31,6 @@ my $request = { }; $params = $request->{params}->{checked}; -my $cache = {}; -if ( $config->{cache}->{use_cache} eq '1' ) { - cache::configure('categories.html'); - $cache = cache::load( $config, $params ); - if ( defined $cache->{content} ) { - print $cache->{content}; - return; - } -} - my $dbh = db::connect($config); my $template_parameters = {}; @@ -48,19 +39,14 @@ $template_parameters->{projects} = getProjects( $dbh, $config ); #$template_parameters->{categories} = get_categories($dbh,$params->{project}); $template_parameters->{debug} = $config->{system}->{debug}; $template_parameters->{server_cache} = $config->{cache}->{server_cache} if ( $config->{cache}->{server_cache} ); -$template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} if ( $config->{cache}->{use_client_cache} ); +$template_parameters->{use_client_cache} = $config->{cache}->{use_client_cache} + if ( $config->{cache}->{use_client_cache} ); my $template = $params->{template}; my $out = ''; template::process( $config, $out, $params->{template}, $template_parameters ); print $out; -#write to cache -if ( $config->{cache}->{use_cache} eq '1' ) { - $cache->{content} = $out; - cache::save($cache); -} - sub getProjects { my $dbh = shift; my $config = shift; diff --git a/website/agenda/comments.cgi b/website/agenda/comments.cgi index 9de872b..ff19394 100755 --- a/website/agenda/comments.cgi +++ b/website/agenda/comments.cgi @@ -1,7 +1,8 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; @@ -11,7 +12,6 @@ use comments(); use db(); use markup(); use time(); -use cache(); use log(); my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); @@ -19,20 +19,20 @@ my $r = shift; binmode STDOUT, ":encoding(UTF-8)"; if ( $0 =~ /comments.*?\.cgi$/ ) { - my $config = config::get('config/config.cgi'); - my $debug = $config->{system}->{debug}; + my $config = config::get('config/config.cgi'); + my $debug = $config->{system}->{debug}; - my $request = { - url => $ENV{QUERY_STRING}, - params => { - original => $params, - checked => comments::check_params( $config, $params ), - }, - }; + my $request = { + url => $ENV{QUERY_STRING}, + params => { + original => $params, + checked => comments::check_params( $config, $params ), + }, + }; - my $output = ''; - comments::get_cached_or_render( $output, $config, $request, 'filter_locked' ); - print $output; + my $output = ''; + comments::get_cached_or_render( $output, $config, $request, 'filter_locked' ); + print $output; } #do not delete last line diff --git a/website/agenda/events.cgi b/website/agenda/events.cgi index 989cd00..cd0220f 100755 --- a/website/agenda/events.cgi +++ b/website/agenda/events.cgi @@ -1,4 +1,4 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl use strict; use warnings; diff --git a/website/agenda/planung/assign_series.cgi b/website/agenda/planung/assign_series.cgi index ecd40ff..1422619 100755 --- a/website/agenda/planung/assign_series.cgi +++ b/website/agenda/planung/assign_series.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use URI::Escape(); use Encode(); @@ -61,7 +63,7 @@ $params = $request->{params}->{checked}; #process header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); -template::process( $config, 'print', template::check($config, 'default.html'), $headerParams ); +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); return unless uac::check( $config, $params, $user_presets ) == 1; print q{ @@ -95,11 +97,11 @@ sub show_events { my $projects = project::get( $config, { project_id => $params->{project_id} } ); my $project = $projects->[0]; - return unless scalar @$projects == 1 ; + return unless scalar @$projects == 1; my $studios = studios::get( $config, { project_id => $params->{project_id}, studio_id => $params->{studio_id} } ); my $studio = $studios->[0]; - return unless scalar @$studios == 1 ; + return unless scalar @$studios == 1; my $project_name = $project->{name}; my $studio_name = $studio->{location}; @@ -140,7 +142,7 @@ sub show_events { $params->{project_name} = $project_name; $params->{studio_name} = $studio_name; - template::process($config, 'print', $params->{template}, $params ); + template::process( $config, 'print', $params->{template}, $params ); } sub assign_series { @@ -235,7 +237,7 @@ sub check_params { $checked->{studio_id} = -1; } - $checked->{template} = template::check($config, $params->{template}, 'assign_series' ); + $checked->{template} = template::check( $config, $params->{template}, 'assign_series' ); return $checked; } diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index a73d7da..1598fd0 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -1,8 +1,8 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; -use Data::Dumper; +use warnings; +no warnings 'redefine'; use URI::Escape(); use Encode(); @@ -240,7 +240,11 @@ sub assign_events { "event not found for project $entry->{project_id}, studio $entry->{studio_id}, series $entry->{series_id}, event $entry->{event_id}\n"; next; } - print STDERR "'" . $event->{event_id} . "' '" . $event->{series_name} . "' '" . $event->{title} . "' '" . $event->{episode} . "'\n"; + print STDERR "'" + . $event->{event_id} . "' '" + . $event->{series_name} . "' '" + . $event->{title} . "' '" + . $event->{episode} . "'\n"; #next; @@ -318,7 +322,8 @@ sub assign_events { # print STDERR "ok\n"; } } else { - print STDERR "no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; + print STDERR +"no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; next; } @@ -392,7 +397,9 @@ sub check_params { $checked->{create_events} = 0; $checked->{publish_events} = 0; } - for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', 'count_episodes' ) { + for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', + 'count_episodes' ) + { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { $checked->{$param} = $1; } diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index b38b770..0288306 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -1,9 +1,8 @@ #!/usr/bin/perl -local $| = 0; - -use warnings; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use CGI::Simple (); @@ -59,12 +58,12 @@ my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); exit if ( !defined $user ) || ( $user eq '' ); my $user_presets = uac::get_user_presets( - $config, - { - user => $user, - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } + $config, + { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } ); $params->{default_studio_id} = $user_presets->{studio_id}; @@ -72,11 +71,11 @@ $params = uac::setDefaultStudio( $params, $user_presets ); $params = uac::setDefaultProject( $params, $user_presets ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($config, $params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -85,9 +84,9 @@ $params = $request->{params}->{checked}; my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); -template::process( $config, 'print', template::check($config, 'default.html'), $headerParams ); +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); -exit unless defined uac::check( $config, $params, $user_presets ); +exit unless uac::check( $config, $params, $user_presets ) == 1; print q{ <script src="js/audio_recordings.js" type="text/javascript"></script> @@ -101,479 +100,481 @@ $params->{error} = $error || ''; #print STDERR Dumper($params); if ( $params->{action} eq 'upload' ) { - uploadRecording( $config, $request ); + uploadRecording( $config, $request ); } elsif ( $params->{action} eq 'delete' ) { - deleteRecording( $config, $request ); + deleteRecording( $config, $request ); } showAudioRecordings( $config, $request ); print STDERR "$0 ERROR: " . $params->{error} . "\n" if $params->{error} ne ''; $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); -template::process($config, 'print', $params->{template}, $params ); +template::process( $config, 'print', $params->{template}, $params ); exit; sub uploadRecording { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - unless ( $permissions->{upload_audio_recordings} == 1 ) { - uac::permissions_denied('upload_audio_recordings'); - return; - } + unless ( $permissions->{upload_audio_recordings} == 1 ) { + uac::permissions_denied('upload_audio_recordings'); + return; + } - for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { - unless ( defined $params->{$attr} ) { - uac::print_error( "missing " . $attr . " to upload productions" ); - return; - } - } + for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { + unless ( defined $params->{$attr} ) { + uac::print_error( "missing " . $attr . " to upload productions" ); + return; + } + } - if ( defined $fh ) { - print STDERR "upload\n"; + if ( defined $fh ) { + print STDERR "upload\n"; - #print STDERR Dumper($fh)."<br>"; - my $fileInfo = uploadFile( $config, $fh, $params->{event_id}, $user, $params->{upload} ); - $params->{error} .= $fileInfo->{error} if defined $fileInfo->{error}; - $params->{path} = $fileInfo->{path}; - $params->{size} = $fileInfo->{size}; + #print STDERR Dumper($fh)."<br>"; + my $fileInfo = uploadFile( $config, $fh, $params->{event_id}, $user, $params->{upload} ); + $params->{error} .= $fileInfo->{error} if defined $fileInfo->{error}; + $params->{path} = $fileInfo->{path}; + $params->{size} = $fileInfo->{size}; - #$params->{duration} = $fileInfo->{duration}; - $params = updateDatabase( $config, $params, $user ) if $params->{error} eq ''; - } else { - $params->{error} .= 'Could not get file handle'; - } + #$params->{duration} = $fileInfo->{duration}; + $params = updateDatabase( $config, $params, $user ) if $params->{error} eq ''; + } else { + $params->{error} .= 'Could not get file handle'; + } - if ( $params->{error} ne '' ) { - if ( $params->{error} =~ /limit/ ) { - $params->{error} .= - "audio file size is limited to " . int( $uploadLimit / 1000000 ) . " MB!" . "Please make it smaller and try again!"; - } else { - $params->{error} .= "Error:'$error'"; - } - } + if ( $params->{error} ne '' ) { + if ( $params->{error} =~ /limit/ ) { + $params->{error} .= + "audio file size is limited to " + . int( $uploadLimit / 1000000 ) . " MB!" + . "Please make it smaller and try again!"; + } else { + $params->{error} .= "Error:'$error'"; + } + } } # return 1 if file has been deleted sub deleteFile { - my $file = shift; - return 0 unless defined $file; + my $file = shift; + return 0 unless defined $file; - if ( -e $file ) { - if ( -w $file ) { - unlink $file; + if ( -e $file ) { + if ( -w $file ) { + unlink $file; - # check if file has been deleted - if ( -e $file ) { - uac::print_error("could not delete audio file '$file', $!\n"); - return 0; - } - } else { - uac::print_error("cannot delete audio file '$file', missing permissions\n"); - return 0; - } - } - return 1; + # check if file has been deleted + if ( -e $file ) { + uac::print_error("could not delete audio file '$file', $!\n"); + return 0; + } + } else { + uac::print_error("cannot delete audio file '$file', missing permissions\n"); + return 0; + } + } + return 1; } sub deleteRecording { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - unless ( $permissions->{delete_audio_recordings} == 1 ) { - uac::permissions_denied('delete_audio_recordings'); - return; - } + unless ( $permissions->{delete_audio_recordings} == 1 ) { + uac::permissions_denied('delete_audio_recordings'); + return; + } - for my $attr ( - 'project_id', 'studio_id', + for my $attr ( + 'project_id', 'studio_id', - #'series_id', - 'event_id', 'path' - ) - { - unless ( defined $params->{$attr} ) { - uac::print_error( "missing " . $attr . " to delete production" ); - return; - } - } + #'series_id', + 'event_id', 'path' + ) + { + unless ( defined $params->{$attr} ) { + uac::print_error( "missing " . $attr . " to delete production" ); + return; + } + } - my $dbh = db::connect($config); - $config->{access}->{write} = 0; + my $dbh = db::connect($config); + $config->{access}->{write} = 0; - my $audioRecordings = audio_recordings::get( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - event_id => $params->{event_id}, - path => $params->{path} - } - ); + my $audioRecordings = audio_recordings::get( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + event_id => $params->{event_id}, + path => $params->{path} + } + ); - unless ( ( defined $audioRecordings ) && ( scalar @$audioRecordings > 0 ) ) { - uac::print_error("could not find audio file $params->{path} in database"); - return; - } + unless ( ( defined $audioRecordings ) && ( scalar @$audioRecordings > 0 ) ) { + uac::print_error("could not find audio file $params->{path} in database"); + return; + } - my $targetDir = $config->{locations}->{local_audio_recordings_dir}; - unless ( defined $targetDir ) { - uac::print_error("'local_audio_recordings_dir' is not configured."); - return; - } - unless ( -d $targetDir ) { - uac::print_error("audio dir '$targetDir' does not exist"); - return; - } + my $targetDir = $config->{locations}->{local_audio_recordings_dir}; + unless ( defined $targetDir ) { + uac::print_error("'local_audio_recordings_dir' is not configured."); + return; + } + unless ( -d $targetDir ) { + uac::print_error("audio dir '$targetDir' does not exist"); + return; + } - my $file = $targetDir . '/' . $params->{path}; - print STDERR "ERROR: cannot delete audio file '$file', file does not exist\n" unless -e $file; + my $file = $targetDir . '/' . $params->{path}; + print STDERR "ERROR: cannot delete audio file '$file', file does not exist\n" unless -e $file; - my $isDeleted = deleteFile($file); - return unless $isDeleted; + my $isDeleted = deleteFile($file); + return unless $isDeleted; - $config->{access}->{write} = 1; - $audioRecordings = audio_recordings::delete( - $config, $dbh, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - event_id => $params->{event_id}, - path => $params->{path}, - } - ); - $config->{access}->{write} = 0; + $config->{access}->{write} = 1; + $audioRecordings = audio_recordings::delete( + $config, $dbh, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + event_id => $params->{event_id}, + path => $params->{path}, + } + ); + $config->{access}->{write} = 0; } sub showAudioRecordings { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { - unless ( defined $params->{$attr} ) { - uac::print_error( "missing " . $attr . " to show productions" ); - return; - } - } + for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { + unless ( defined $params->{$attr} ) { + uac::print_error( "missing " . $attr . " to show productions" ); + return; + } + } - my $event = series::get_event( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - series_id => $params->{series_id}, - event_id => $params->{event_id} - } - ); - unless ( defined $event ) { - uac::print_error("event not found"); - return; - } + my $event = series::get_event( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + series_id => $params->{series_id}, + event_id => $params->{event_id} + } + ); + unless ( defined $event ) { + uac::print_error("event not found"); + return; + } - #print '<pre>'.Dumper($event).'</pre>'; + #print '<pre>'.Dumper($event).'</pre>'; - my $audioRecordings = audio_recordings::get( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - event_id => $params->{event_id}, - } - ); + my $audioRecordings = audio_recordings::get( + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + event_id => $params->{event_id}, + } + ); - #print Dumper($audioRecordings); - for my $recording (@$audioRecordings) { - $recording->{size} =~ s/(\d)(\d\d\d)$/$1\.$2/g; - $recording->{size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; + #print Dumper($audioRecordings); + for my $recording (@$audioRecordings) { + $recording->{size} =~ s/(\d)(\d\d\d)$/$1\.$2/g; + $recording->{size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; - $recording->{processed} = $recording->{processed} ? 'yes' : 'no'; - $recording->{mastered} = $recording->{mastered} ? 'yes' : 'no'; + $recording->{processed} = $recording->{processed} ? 'yes' : 'no'; + $recording->{mastered} = $recording->{mastered} ? 'yes' : 'no'; - $recording->{eventDuration} = getDuration( $recording->{eventDuration} ); - $recording->{audioDuration} = getDuration( $recording->{audioDuration} ); + $recording->{eventDuration} = getDuration( $recording->{eventDuration} ); + $recording->{audioDuration} = getDuration( $recording->{audioDuration} ); - $recording->{rmsLeft} ||= '-'; - $recording->{rmsRight} ||= '-'; - } + $recording->{rmsLeft} ||= '-'; + $recording->{rmsRight} ||= '-'; + } - my $now = time(); - my $timeZone = $config->{date}->{time_zone}; - my $start = time::datetime_to_utc( $event->{start}, $timeZone ); - my $end = time::datetime_to_utc( $event->{end}, $timeZone ); - if ( $now > $end ) { - uac::print_error("upload is expired due to the show is over"); - $params->{isOver} = 1; - } - my $days = 24 * 60 * 60; - uac::print_warn("show is more than a week ahead") if ( $now + 7 * $days ) < $start; + my $now = time(); + my $timeZone = $config->{date}->{time_zone}; + my $start = time::datetime_to_utc( $event->{start}, $timeZone ); + my $end = time::datetime_to_utc( $event->{end}, $timeZone ); + if ( $now > $end ) { + uac::print_error("upload is expired due to the show is over"); + $params->{isOver} = 1; + } + my $days = 24 * 60 * 60; + uac::print_warn("show is more than a week ahead") if ( $now + 7 * $days ) < $start; - $params->{event} = $event; - $params->{audio_recordings} = $audioRecordings; + $params->{event} = $event; + $params->{audio_recordings} = $audioRecordings; } sub getDuration { - my $duration = shift; - my $hour = int( $duration / 3600 ); - $duration -= $hour * 3600; + my $duration = shift; + my $hour = int( $duration / 3600 ); + $duration -= $hour * 3600; - my $minutes = int( $duration / 60 ); - $duration -= $minutes * 60; + my $minutes = int( $duration / 60 ); + $duration -= $minutes * 60; - my $seconds = int($duration); - $duration -= $seconds; + my $seconds = int($duration); + $duration -= $seconds; - my $milli = int( 100 * $duration ); - return sprintf( "%02d:%02d:%02d.%02d", $hour, $minutes, $seconds, $milli ); + my $milli = int( 100 * $duration ); + return sprintf( "%02d:%02d:%02d.%02d", $hour, $minutes, $seconds, $milli ); } sub uploadFile { - my $config = $_[0]; - my $fh = $_[1]; - my $eventId = $_[2]; - my $user = $_[3] || ''; - my $filename = $_[4] || ''; + my $config = $_[0]; + my $fh = $_[1]; + my $eventId = $_[2]; + my $user = $_[3] || ''; + my $filename = $_[4] || ''; - # check target directory - my $targetDir = $config->{locations}->{local_audio_recordings_dir}; - return { error => "could not find local_audio_recordings_dir" } unless defined $targetDir; - return { error => "local_audio_recordings_dir does not exist" } unless -e $targetDir; + # check target directory + my $targetDir = $config->{locations}->{local_audio_recordings_dir}; + return { error => "could not find local_audio_recordings_dir" } unless defined $targetDir; + return { error => "local_audio_recordings_dir does not exist" } unless -e $targetDir; - # save file to disk - my $userName = $user; - $userName =~ s/[^a-zA-Z0-9\.\-\_]//g; + # save file to disk + my $userName = $user; + $userName =~ s/[^a-zA-Z0-9\.\-\_]//g; - my $time = time::time_to_datetime(); - $time =~ s/\:/\-/g; - $time =~ s/\s/\_/g; - $time =~ s/[^a-zA-Z0-9\.\-\_]//g; + my $time = time::time_to_datetime(); + $time =~ s/\:/\-/g; + $time =~ s/\s/\_/g; + $time =~ s/[^a-zA-Z0-9\.\-\_]//g; - $filename =~ s/\.(mp3)$//g; - $filename = join( '-', ( $time, 'id' . $eventId, $userName, $filename ) ) . '.mp3'; - $filename =~ s/[^a-zA-Z0-9\.\-\_]//g; + $filename =~ s/\.(mp3)$//g; + $filename = join( '-', ( $time, 'id' . $eventId, $userName, $filename ) ) . '.mp3'; + $filename =~ s/[^a-zA-Z0-9\.\-\_]//g; - my $tempFile = $targetDir . '/' . $filename; - print STDERR "tempFile=$tempFile\n"; + my $tempFile = $targetDir . '/' . $filename; + print STDERR "tempFile=$tempFile\n"; - my $start = time(); - open DAT, '>', $tempFile or return { error => 'could not save upload. ' . $! . " " . $tempFile }; - binmode DAT; - my $size = 0; - my $data = ''; - while ( my $bytesRead = $fh->read( $data, 65000 ) ) { - print DAT $data; - $size += $bytesRead; - $data = ''; - } - close DAT; + my $start = time(); + open DAT, '>', $tempFile or return { error => 'could not save upload. ' . $! . " " . $tempFile }; + binmode DAT; + my $size = 0; + my $data = ''; + while ( my $bytesRead = $fh->read( $data, 65000 ) ) { + print DAT $data; + $size += $bytesRead; + $data = ''; + } + close DAT; - return { - dir => $targetDir, - path => $filename, - size => $size, - }; + return { + dir => $targetDir, + path => $filename, + size => $size, + }; } sub updateDatabase { - my $config = shift; - my $params = shift; - my $user = shift; + my $config = shift; + my $params = shift; + my $user = shift; - my $eventDuration = getEventDuration( $config, $params->{event_id} ); + my $eventDuration = getEventDuration( $config, $params->{event_id} ); - my $entry = { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - event_id => $params->{event_id}, - path => $params->{path}, - size => $params->{size}, - created_by => $user, - eventDuration => $eventDuration - }; + my $entry = { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + event_id => $params->{event_id}, + path => $params->{path}, + size => $params->{size}, + created_by => $user, + eventDuration => $eventDuration + }; - #print STDERR "updateDatabase:" . Dumper($entry); + #print STDERR "updateDatabase:" . Dumper($entry); - #connect - $config->{access}->{write} = 1; - my $dbh = db::connect($config); + #connect + $config->{access}->{write} = 1; + my $dbh = db::connect($config); - my $entries = audio_recordings::get( - $config, - { - project_id => $entry->{project_id}, - studio_id => $entry->{studio_id}, - event_id => $entry->{event_id}, - path => $entry->{path} - } - ); + my $entries = audio_recordings::get( + $config, + { + project_id => $entry->{project_id}, + studio_id => $entry->{studio_id}, + event_id => $entry->{event_id}, + path => $entry->{path} + } + ); - if ( ( defined $entries ) && ( scalar @$entries > 0 ) ) { - print STDERR "update\n"; - audio_recordings::update( $config, $dbh, $entry ); - my $entry = $entries->[0]; - $params->{id} = $entry->{id}; - } else { - print STDERR "insert\n"; - $entry->{created_by} = $user; - $entry->{processed} = 0; - $entry->{mastered} = 0; - $entry->{rmsLeft} = 0.0; - $entry->{rmsRight} = 0.0; - $entry->{audioDuration} = 0.0; - $entry->{modified_at} = time(); - $params->{id} = audio_recordings::insert( $config, $dbh, $entry ); - } - $config->{access}->{write} = 0; - $params->{action_result} = 'done!'; + if ( ( defined $entries ) && ( scalar @$entries > 0 ) ) { + print STDERR "update\n"; + audio_recordings::update( $config, $dbh, $entry ); + my $entry = $entries->[0]; + $params->{id} = $entry->{id}; + } else { + print STDERR "insert\n"; + $entry->{created_by} = $user; + $entry->{processed} = 0; + $entry->{mastered} = 0; + $entry->{rmsLeft} = 0.0; + $entry->{rmsRight} = 0.0; + $entry->{audioDuration} = 0.0; + $entry->{modified_at} = time(); + $params->{id} = audio_recordings::insert( $config, $dbh, $entry ); + } + $config->{access}->{write} = 0; + $params->{action_result} = 'done!'; - return $params; + return $params; } # return filename, filehandle and optionally error from upload sub getFilename { - my $cgi = shift; - my $upload = shift; + my $cgi = shift; + my $upload = shift; - if ( defined $upload ) { + if ( defined $upload ) { - # try apache2 module - my $filename = $upload->filename(); - return { - filename => $filename, - fh => $upload->fh(), - error => '' - }; + # try apache2 module + my $filename = $upload->filename(); + return { + filename => $filename, + fh => $upload->fh(), + error => '' + }; - } + } - #print STDERR "cgi:".Dumper($cgi); + #print STDERR "cgi:".Dumper($cgi); - # fallback to CGI module - my $file = $cgi->param("upload"); - return { error => "is no file" } if ( defined $file ) && ( $file =~ /\|/ ); + # fallback to CGI module + my $file = $cgi->param("upload"); + return { error => "is no file" } if ( defined $file ) && ( $file =~ /\|/ ); - #print STDERR "file:".Dumper($file); - my $fileInfo = $cgi->uploadInfo($file); + #print STDERR "file:".Dumper($file); + my $fileInfo = $cgi->uploadInfo($file); - #print STDERR "fileInfo:".Dumper($fileInfo); + #print STDERR "fileInfo:".Dumper($fileInfo); - if ( defined $fileInfo ) { - my $filename = $fileInfo->{'Content-Disposition'} || ''; - if ( $filename =~ /filename=\"(.*?)\"/ ) { - $filename = $1; - return { - filename => $filename, - fh => $file, - error => '' - }; + if ( defined $fileInfo ) { + my $filename = $fileInfo->{'Content-Disposition'} || ''; + if ( $filename =~ /filename=\"(.*?)\"/ ) { + $filename = $1; + return { + filename => $filename, + fh => $file, + error => '' + }; - } - } + } + } - #error - return { error => 'Could not detect file name!' }; + #error + return { error => 'Could not detect file name!' }; } # get extension and optionally error sub checkFilename { - my $filename = shift; + my $filename = shift; - my @validExtensions = ('mp3'); - if ( $filename =~ /\.([a-zA-Z]{3,5})$/ ) { - my $extension = lc $1; - unless ( grep( /$extension/, @validExtensions ) ) { - return { error => 'Following file formats are supported: ' . join( ",", @validExtensions ) . '!' }; - } - return { - extension => $extension, - error => '' - }; - } - return { error => 'Not matching file extension found! Supported are: ' . join( ",", @validExtensions ) . '!' }; + my @validExtensions = ('mp3'); + if ( $filename =~ /\.([a-zA-Z]{3,5})$/ ) { + my $extension = lc $1; + unless ( grep( /$extension/, @validExtensions ) ) { + return { error => 'Following file formats are supported: ' . join( ",", @validExtensions ) . '!' }; + } + return { + extension => $extension, + error => '' + }; + } + return { error => 'Not matching file extension found! Supported are: ' . join( ",", @validExtensions ) . '!' }; } # return event duration in seconds sub getEventDuration { - my $config = shift; - my $eventId = shift; + my $config = shift; + my $eventId = shift; - if ( $eventId < 1 ) { - print STDERR "invalid eventId $eventId\n"; - return 0; - } + if ( $eventId < 1 ) { + print STDERR "invalid eventId $eventId\n"; + return 0; + } - my $request = { - params => { - checked => events::check_params( - $config, - { - event_id => $eventId, - template => 'no', - limit => 1, - } - ) - }, - config => $config - }; - $request->{params}->{checked}->{published} = 'all'; - my $events = events::get( $config, $request ); - if ( scalar @$events == 0 ) { - print STDERR "getEventDuration: no event found with event_id=$eventId\n"; - } - my $event = $events->[0]; - my $duration = time::get_duration_seconds( $event->{start}, $event->{end}, $config->{date}->{time_zone} ); - return $duration; + my $request = { + params => { + checked => events::check_params( + $config, + { + event_id => $eventId, + template => 'no', + limit => 1, + } + ) + }, + config => $config + }; + $request->{params}->{checked}->{published} = 'all'; + my $events = events::get( $config, $request ); + if ( scalar @$events == 0 ) { + print STDERR "getEventDuration: no event found with event_id=$eventId\n"; + } + my $event = $events->[0]; + my $duration = time::get_duration_seconds( $event->{start}, $event->{end}, $config->{date}->{time_zone} ); + return $duration; } sub check_params { my $config = shift; - my $params = shift; + my $params = shift; - my $checked = {}; - $checked->{error} = ''; - $checked->{template} = template::check($config, $params->{template}, 'upload_audio_recordings' ); + my $checked = {}; + $checked->{error} = ''; + $checked->{template} = template::check( $config, $params->{template}, 'upload_audio_recordings' ); - #print Dumper($params); - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + #print Dumper($params); + #numeric values + for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - #word - for my $param ( 'debug', 'name', 'description' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) { - $checked->{$param} = $1; - } - } + #word + for my $param ( 'debug', 'name', 'description' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) { + $checked->{$param} = $1; + } + } - # words - for my $attr ( 'action', 'path' ) { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) { - $checked->{$attr} = $params->{$attr}; - } - } + # words + for my $attr ( 'action', 'path' ) { + if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) { + $checked->{$attr} = $params->{$attr}; + } + } - $checked->{upload} = $params->{upload}; - return $checked; + $checked->{upload} = $params->{upload}; + return $checked; } diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index e0d3375..199770c 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -1,7 +1,8 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use URI::Escape(); @@ -92,7 +93,7 @@ if ( #process header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process( $config, 'print', template::check($config, 'default.html'), $headerParams ); + template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); print q{ <link href="css/jquery-ui-timepicker.css" type="text/css" rel="stylesheet" /> <link rel="stylesheet" href="css/calendar.css" type="text/css" /> @@ -167,7 +168,7 @@ sub showCalendar { my $end_of_day = $cal_options->{end_of_day}; my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $permissions = $request->{permissions} || {}; unless ( $permissions->{read_series} == 1 ) { uac::permissions_denied('read_series'); return; @@ -233,7 +234,7 @@ sub showCalendar { if ( $params->{search} =~ /\S/ ) { if ( $params->{list} == 1 ) { - $options->{search} = $params->{search}; + $options->{search} = $params->{search}; delete $options->{from_date}; delete $options->{till_date}; delete $options->{date_range_include}; @@ -372,7 +373,9 @@ sub showCalendar { my $format = undef; if ( defined $date->{'format'} ) { $format = - ( $date->{'format'} || '' ) . " " . ( $date->{'format_version'} || '' ) . " " . ( $date->{'format_profile'} || '' ); + ( $date->{'format'} || '' ) . " " + . ( $date->{'format_version'} || '' ) . " " + . ( $date->{'format_profile'} || '' ); $format =~ s/MPEG Audio Version 1 Layer 3/MP3/g; $format .= ' ' . ( $date->{'format_settings'} || '' ) if defined $date->{'format_settings'}; $format .= '<br>'; @@ -383,20 +386,27 @@ sub showCalendar { $date->{series_id} = -1; $date->{event_id} = $id; $date->{title} = ''; - $date->{title} .= '<b>errors</b>: ' . $date->{errors} . '<br>' if defined $date->{errors}; + $date->{title} .= '<b>errors</b>: ' . $date->{errors} . '<br>' if defined $date->{errors}; $date->{title} .= formatDuration( $date->{duration} ) . "<br>" if defined $date->{duration}; $date->{title} .= formatLoudness( "L:", $date->{rms_left} ) . ', ' if defined $date->{rms_left}; $date->{title} .= formatLoudness( "R:", $date->{rms_right} ) . '<br>' if defined $date->{rms_right}; - $date->{title} .= formatBitrate( $date->{bitrate} ) . ' ' . $date->{bitrate_mode} . '<br>' if defined $date->{bitrate}; - $date->{title} .= '<b>replay gain</b> ' . sprintf( "%.1f", $date->{replay_gain} ) . '<br>' if defined $date->{replay_gain}; - $date->{title} .= ( ( $date->{sampling_rate} || '0' ) / 1000 ) . ' kHz<br>' if defined $date->{sampling_rate}; + $date->{title} .= formatBitrate( $date->{bitrate} ) . ' ' . $date->{bitrate_mode} . '<br>' + if defined $date->{bitrate}; + $date->{title} .= '<b>replay gain</b> ' . sprintf( "%.1f", $date->{replay_gain} ) . '<br>' + if defined $date->{replay_gain}; + $date->{title} .= ( ( $date->{sampling_rate} || '0' ) / 1000 ) . ' kHz<br>' + if defined $date->{sampling_rate}; $date->{title} .= ( $date->{channels} || '' ) . ' channels<br>' if defined $date->{channels}; - $date->{title} .= int( ( $date->{'stream_size'} || '0' ) / ( 1024 * 1024 ) ) . 'MB<br>' if defined $date->{'stream_size'}; + $date->{title} .= int( ( $date->{'stream_size'} || '0' ) / ( 1024 * 1024 ) ) . 'MB<br>' + if defined $date->{'stream_size'}; $date->{title} .= $format if defined $format; - $date->{title} .= '<b>library</b>: ' . ( $date->{writing_library} || '' ) . '<br>' if defined $date->{'writing_library'}; - $date->{title} .= '<b>path</b>: ' . ( $date->{file} || '' ) . '<br>' if defined $date->{file}; - $date->{title} .= '<b>updated_at</b>: ' . ( $date->{updated_at} || '' ) . '<br>' if defined $date->{updated_at}; - $date->{title} .= '<b>modified_at</b>: ' . ( $date->{modified_at} || '' ) . '<br>' if defined $date->{modified_at}; + $date->{title} .= '<b>library</b>: ' . ( $date->{writing_library} || '' ) . '<br>' + if defined $date->{'writing_library'}; + $date->{title} .= '<b>path</b>: ' . ( $date->{file} || '' ) . '<br>' if defined $date->{file}; + $date->{title} .= '<b>updated_at</b>: ' . ( $date->{updated_at} || '' ) . '<br>' + if defined $date->{updated_at}; + $date->{title} .= '<b>modified_at</b>: ' . ( $date->{modified_at} || '' ) . '<br>' + if defined $date->{modified_at}; #print STDERR Dumper($date) if $date->{file}=~/180503/; #$date->{title}.= '<b>rms_image</b>: ' .($date->{rms_image}||'').'<br>' if defined $date->{rms_image}; @@ -540,7 +550,7 @@ sub formatLoudness { return '' if $value eq ''; #print STDERR "'$value'\n"; - $value = sprintf( "%d", $value+0.5 ); + $value = sprintf( "%d", $value + 0.5 ); my $class = 'ok'; $class = 'warn' if $value > -18.5; $class = 'error' if $value > -16.0; @@ -553,7 +563,7 @@ sub formatDuration { my $duration = shift; return '' unless defined $duration; return '' if $duration eq ''; - my $result = int( ( $duration +30.5 ) % 60)-30; + my $result = int( ( $duration + 30.5 ) % 60 ) - 30; my $class = "ok"; $class = "warn" if abs($result) > 1; $class = "error" if abs($result) > 2; @@ -720,10 +730,10 @@ sub showEventList { my $events_by_day = shift; my $language = $params->{language}; - my $rerunIcon='<i class="fas fa-redo" title="$params->{loc}->{label_rerun}"></i>'; - my $liveIcon='<i class="fas fa-microphone-alt" title="$params->{loc}->{label_live}"></i>'; - my $draftIcon='<i class="fas fa-drafting-compass" title="$params->{loc}->{label_draft}"></i>'; - my $archiveIcon='<i class="fas fa-archive" title="$params->{loc}->{label_archived}"></i>'; + my $rerunIcon = '<i class="fas fa-redo" title="$params->{loc}->{label_rerun}"></i>'; + my $liveIcon = '<i class="fas fa-microphone-alt" title="$params->{loc}->{label_live}"></i>'; + my $draftIcon = '<i class="fas fa-drafting-compass" title="$params->{loc}->{label_draft}"></i>'; + my $archiveIcon = '<i class="fas fa-archive" title="$params->{loc}->{label_archived}"></i>'; my $out = ''; $out = qq{ @@ -762,7 +772,12 @@ sub showEventList { $event->{studio_id} = $params->{studio_id}; $event->{series_id} = '-1' unless defined $event->{series_id}; $event->{event_id} = '-1' unless defined $event->{event_id}; - my $id = 'event_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} . '_' . $event->{event_id}; + my $id = + 'event_' + . $event->{project_id} . '_' + . $event->{studio_id} . '_' + . $event->{series_id} . '_' + . $event->{event_id}; my $class = 'event'; $class = $event->{class} if defined $event->{class}; @@ -795,20 +810,22 @@ sub showEventList { $class ||= ''; my $archived = $event->{archived} || '-'; - $archived = '-' if $archived eq '0'; + $archived = '-' if $archived eq '0'; $archived = $archiveIcon if $archived eq '1'; my $live = $event->{live} || '-'; - $live = '-' if $live eq '0'; + $live = '-' if $live eq '0'; $live = $liveIcon if $live eq '1'; my $rerun = $event->{rerun} || '-'; $rerun = " [" . markup::base26( $event->{recurrence_count} + 1 ) . "]" - if ( defined $event->{recurrence_count} ) && ( $event->{recurrence_count} ne '' ) && ( $event->{recurrence_count} > 0 ); + if ( defined $event->{recurrence_count} ) + && ( $event->{recurrence_count} ne '' ) + && ( $event->{recurrence_count} > 0 ); my $draft = $event->{draft} || '0'; - $draft = '-' if $draft eq '0'; + $draft = '-' if $draft eq '0'; $draft = $draftIcon if $draft eq '1'; my $title = $event->{title}; @@ -858,7 +875,8 @@ sub showEventList { $out .= q{<div id="event_no_series" style="display:none">}; $out .= addEventsToSeries( $series, $params ) if ( defined $permissions->{assign_series_events} ) && ( $permissions->{assign_series_events} eq '1' ); - $out .= createSeries($params) if ( defined $permissions->{create_series} ) && ( $permissions->{create_series} eq '1' ); + $out .= createSeries($params) + if ( defined $permissions->{create_series} ) && ( $permissions->{create_series} eq '1' ); $out .= q{</div>}; } @@ -1115,13 +1133,14 @@ sub printTableBody { if ( ( defined $event->{title} ) && ( defined $event->{title} ne '' ) ) { $content .= $event->{title}; unless ( $event->{title} =~ /\#\d+/ ) { - $content .= ' #' . $event->{episode} if ( ( defined $event->{episode} ) && ( $event->{episode} ne '' ) ); + $content .= ' #' . $event->{episode} + if ( ( defined $event->{episode} ) && ( $event->{episode} ne '' ) ); } } $content = $event->{start} if $day eq '0'; $event->{project_id} = $project_id unless defined $event->{project_id}; $event->{studio_id} = $studio_id unless defined $event->{studio_id}; - $event->{content} = $content unless ( ( defined $event->{class} ) && ( $event->{class} eq 'time now' ) ); + $event->{content} = $content unless ( ( defined $event->{class} ) && ( $event->{class} eq 'time now' ) ); $event->{class} = 'event' if $day ne '0'; $event->{class} = 'grid' if ( ( defined $event->{grid} ) && ( $event->{grid} == 1 ) ); $event->{class} = 'schedule' if ( ( defined $event->{schedule} ) && ( $event->{schedule} == 1 ) ); @@ -1133,6 +1152,7 @@ sub printTableBody { $event->{content} .= formatDuration( $event->{duration} ) . ' ' if defined $event->{duration}; $event->{content} .= formatLoudness( 'L', $event->{rms_left} ) . ' ' if defined $event->{rms_left}; $event->{content} .= formatLoudness( 'R', $event->{rms_right} ) if defined $event->{rms_right}; + #$event->{content} .= formatBitrate( $event->{bitrate} ) if defined $event->{bitrate}; $event->{content} .= '</span>'; } @@ -1173,7 +1193,10 @@ sub printSeries { my $out = ''; #add schedule entry for series - if ( ( defined $permissions->{update_schedule} ) && ( $permissions->{update_schedule} eq '1' ) && ( scalar(@$series) > 0 ) ) { + if ( ( defined $permissions->{update_schedule} ) + && ( $permissions->{update_schedule} eq '1' ) + && ( scalar(@$series) > 0 ) ) + { $out .= q{<div id="series" style="display:none">}; $out .= addSeries( $series, $params ); $out .= q{</div>}; @@ -1183,7 +1206,8 @@ sub printSeries { $out .= q{<div id="event_no_series" style="display:none">}; $out .= addEventsToSeries( $series, $params ) if ( ( defined $permissions->{assign_series_events} ) && ( $permissions->{assign_series_events} eq '1' ) ); - $out .= createSeries($params) if ( ( defined $permissions->{create_series} ) && ( $permissions->{create_series} eq '1' ) ); + $out .= createSeries($params) + if ( ( defined $permissions->{create_series} ) && ( $permissions->{create_series} eq '1' ) ); $out .= q{</div>}; } @@ -1349,11 +1373,14 @@ sub createSeries { <input type="hidden" name="project_id" value="$project_id"> <input type="hidden" name="studio_id" value="$studio_id"> <table> - <tr><td class="label">} . $params->{loc}->{label_name} . qq{</td> <td><input name="series_name"></td></tr> - <tr><td class="label">} . $params->{loc}->{label_title} . qq{</td> <td><input name="title"></td></tr> + <tr><td class="label">} + . $params->{loc}->{label_name} . qq{</td> <td><input name="series_name"></td></tr> + <tr><td class="label">} + . $params->{loc}->{label_title} . qq{</td> <td><input name="title"></td></tr> <tr><td></td> <td> - <button type="submit" name="action" value="create">} . $params->{loc}->{button_create_series} . qq{</button> + <button type="submit" name="action" value="create">} + . $params->{loc}->{button_create_series} . qq{</button> </td> </tr> </table> @@ -1374,10 +1401,17 @@ sub print_event { $event->{series_id} = '-1' unless defined $event->{series_id}; $event->{event_id} = '-1' unless defined $event->{event_id}; - my $id = 'event_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} . '_' . $event->{event_id}; - $id = 'grid_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} if defined $event->{grid}; - $id = 'work_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{schedule_id} if defined $event->{work}; - $id = 'play_' . $event->{project_id} . '_' . $event->{studio_id} if defined $event->{play}; + my $id = + 'event_' + . $event->{project_id} . '_' + . $event->{studio_id} . '_' + . $event->{series_id} . '_' + . $event->{event_id}; + $id = 'grid_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{series_id} + if defined $event->{grid}; + $id = 'work_' . $event->{project_id} . '_' . $event->{studio_id} . '_' . $event->{schedule_id} + if defined $event->{work}; + $id = 'play_' . $event->{project_id} . '_' . $event->{studio_id} if defined $event->{play}; my $class = $event->{class} || ''; my $showIcons = 0; @@ -1400,7 +1434,7 @@ sub print_event { $ystart = int( $ystart * $yzoom ); $yend = int( $yend * $yzoom ); - my $height = $yend - $ystart +1; + my $height = $yend - $ystart + 1; if ( $ypos > 0 ) { $height = q{height:} . ($height) . 'px;'; @@ -1418,6 +1452,7 @@ sub print_event { my $attr = ''; if ( $class =~ /play/ ) { + #$event->{rms_image}=~s/\.png/.svg/; $attr .= ' rms="' . $event->{rms_image} . '"' if defined $event->{rms_image}; $attr .= ' start="' . $event->{start} . '"' if defined $event->{start}; @@ -1476,11 +1511,10 @@ sub calc_positions { my ( $start_hour, $start_min ) = getTime( $event->{start_time} ); my ( $end_hour, $end_min ) = getTime( $event->{end_time} ); - $start_hour += 24 if $start_hour < $start_of_day; - $end_hour += 24 if $end_hour < $start_of_day; - $end_hour += 24 if $start_hour > $end_hour; - $end_hour += 24 if ($start_hour == $end_hour) && ($start_min == $end_min); - + $start_hour += 24 if $start_hour < $start_of_day; + $end_hour += 24 if $end_hour < $start_of_day; + $end_hour += 24 if $start_hour > $end_hour; + $end_hour += 24 if ( $start_hour == $end_hour ) && ( $start_min == $end_min ); $event->{ystart} = $start_hour * 60 + $start_min; $event->{yend} = $end_hour * 60 + $end_min; @@ -1623,7 +1657,10 @@ sub printToolbar { <select id="filter" name="filter" onchange="reloadCalendar()"> }; - for my $filter ( 'no markup', 'conflicts', 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) { + for + my $filter ( 'no markup', 'conflicts', 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', + 'draft' ) + { my $key = $filter; $key =~ s/ /_/g; @@ -1641,7 +1678,8 @@ sub printToolbar { <input type="hidden" name="studio_id" value="$params->{studio_id}"> <input type="hidden" name="date" value="$params->{date}"> <input type="hidden" name="list" value="1"> - <input class="search" name="search" value="$params->{search}" placeholder="} . $params->{loc}->{button_search} . qq{"> + <input class="search" name="search" value="$params->{search}" placeholder="} + . $params->{loc}->{button_search} . qq{"> <button type="submit" name="action" value="search">} . $params->{loc}->{button_search} . qq{</button> </form> }; @@ -1678,7 +1716,8 @@ sub getCalendar { my $previous = ''; my $next = ''; if ( $range eq 'month' ) { - $previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( months => 1 )->set_day(1)->date(); + $previous = + time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( months => 1 )->set_day(1)->date(); $next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( months => 1 )->set_day(1)->date(); } else { $previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( days => $range )->date(); @@ -1741,7 +1780,8 @@ sub getTillDate { if ( $params->{range} eq 'month' ) { #get last day of month - return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)->add( months => 1 )->subtract( days => 1 )->date(); + return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)->add( months => 1 ) + ->subtract( days => 1 )->date(); } #add range to date @@ -1810,7 +1850,7 @@ sub check_params { my $checked = {}; my $template = ''; - $checked->{template} = template::check($config, $params->{template}, 'series' ); + $checked->{template} = template::check( $config, $params->{template}, 'series' ); my $debug = $params->{debug} || ''; if ( $debug =~ /([a-z\_\,]+)/ ) { @@ -1821,7 +1861,10 @@ sub check_params { #numeric values $checked->{part} = 0; $checked->{list} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'part', 'list', 'day_start' ) + for my $param ( + 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', + 'event_id', 'part', 'list', 'day_start' + ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 56e5459..0ec88a9 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -1,7 +1,8 @@ #! /usr/bin/perl -w -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use URI::Escape(); use Encode(); @@ -71,7 +72,7 @@ if ( ( params::isJson() ) || ( defined $params->{action} ) ) { <script src="js/datetime.js" type="text/javascript"></script> } unless (params::isJson); } -return unless defined uac::check( $config, $params, $user_presets ); +return unless uac::check( $config, $params, $user_presets ) == 1; if ( defined $params->{action} ) { if ( $params->{action} eq 'get_json' ) { @@ -155,7 +156,8 @@ sub showComments { $template_parameters->{projects} = project::get_with_dates($config); $template_parameters->{controllers} = $config->{controllers}; $template_parameters->{allow} = $permissions; - $template_parameters->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'comment' } ); + $template_parameters->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'comment' } ); #fill and output template template::process( $config, 'print', $params->{template}, $template_parameters ); @@ -252,7 +254,8 @@ sub check_params { #template my $template = ''; if ( defined $checked->{action} ) { - $template = template::check( $config, $params->{template}, 'edit_comment' ) if $checked->{action} eq 'showComment'; + $template = template::check( $config, $params->{template}, 'edit_comment' ) + if $checked->{action} eq 'showComment'; } else { $template = template::check( $config, $params->{template}, 'comments' ); } diff --git a/website/agenda/planung/create_events.cgi b/website/agenda/planung/create_events.cgi index 9f898ad..6150ce9 100755 --- a/website/agenda/planung/create_events.cgi +++ b/website/agenda/planung/create_events.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use params(); diff --git a/website/agenda/planung/css/comment_manager.css b/website/agenda/planung/css/comment_manager.css deleted file mode 100644 index c630bf3..0000000 --- a/website/agenda/planung/css/comment_manager.css +++ /dev/null @@ -1,125 +0,0 @@ - td,th,input { - line-height:100%; - ffont-size:10px; - } - td,th{ - display:table-cell; - font-weight:normal; - } - - td.level0, td.level1, td.level2, td.level3, td.level4, td.level5{ - opacity:0.8; - border:0; - } - - td.host{ - color:gray; - } - - td.level0{ - padding-left:0px; - } - td.level1{ - padding-left:20px; - } - td.level2{ - padding-left:40px; - } - td.level3{ - padding-left:60px; - } - td.level4{ - padding-left:80px; - } - td.level5{ - padding-left:100px; - } - - img.level0{ - margin-left:0px; - } - img.level1{ - margin-left:20px; - } - img.level2{ - margin-left:40px; - } - img.level3{ - margin-left:60px; - } - img.level4{ - margin-left:80px; - } - img.level5{ - margin-left:100px; - } - - tr{ - vertical-align:middle; - } - - tr.show{ - color:#030; - text-decoration:none; - } - - #content tr.show td{ - padding-top:0px; - padding-bottom:0px; - } - - tr.blocked{ - color:#a33; - text-decoration:break-through; - } - - td.content.unread{ - font-weight:bold; - } - - td.content.received{ - font-weight:normal; - } - - - table.event_comments{ - width:800px; - } - - table.event_comments td{ - padding:3px; - background-color:#ccc; - } - - .event th{ - text-align:left; - opacity:0.8; - } - .event td{ - padding:3px; - border-right:1px solid #fff; - } - - .event button{ - text-align:right; - opacity:0.8; - } - - .event_start{ - width:200px; - text-align:center; - } - - .event_title{ - width:400px; - } - - .event_show_comments{ - height:2em; - } - - .event_excerpt{ - opacity:0.8; - } - - diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index e753519..69a2e28 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -1,4 +1,4 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl use strict; use warnings; @@ -75,7 +75,7 @@ unless ( params::isJson() ) { $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); } -return unless defined uac::check( $config, $params, $user_presets ); +return unless uac::check( $config, $params, $user_presets ) == 1; print q{ <script src="js/datetime.js" type="text/javascript"></script> @@ -296,7 +296,8 @@ sub show_event { $params->{event_edited} = 1 if ( ( $params->{action} eq 'save' ) && ( !( defined $params->{error} ) ) ); $params->{event_edited} = 1 if ( $params->{action} eq 'delete' ); $params->{event_edited} = 1 if ( ( $params->{action} eq 'create_event' ) && ( !( defined $params->{error} ) ) ); - $params->{event_edited} = 1 if ( ( $params->{action} eq 'create_event_from_schedule' ) && ( !( defined $params->{error} ) ) ); + $params->{event_edited} = 1 + if ( ( $params->{action} eq 'create_event_from_schedule' ) && ( !( defined $params->{error} ) ) ); $params->{user} = $params->{presets}->{user}; # remove all edit permissions if event is over for more than 2 weeks @@ -782,7 +783,10 @@ sub check_params { $checked->{debug} = $debug; #numeric values - for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'source_event_id', 'episode' ) + for my $param ( + 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', + 'event_id', 'source_event_id', 'episode' + ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; @@ -820,8 +824,9 @@ sub check_params { #strings for my $param ( - 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', 'category', 'image', - 'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url', 'setImage' + 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', + 'category', 'image', 'series_image', 'user_content', 'user_title', 'user_excerpt', + 'podcast_url', 'archive_url', 'setImage' ) { if ( defined $params->{$param} ) { @@ -844,7 +849,8 @@ sub check_params { $checked->{action} = ''; if ( defined $params->{action} ) { if ( $params->{action} =~ - /^(save|delete|download|show_new_event|show_new_event_from_schedule|create_event|create_event_from_schedule|get_json)$/ ) +/^(save|delete|download|show_new_event|show_new_event_from_schedule|create_event|create_event_from_schedule|get_json)$/ + ) { $checked->{action} = $params->{action}; } diff --git a/website/agenda/planung/event_history.cgi b/website/agenda/planung/event_history.cgi index 2f38016..8906514 100755 --- a/website/agenda/planung/event_history.cgi +++ b/website/agenda/planung/event_history.cgi @@ -1,12 +1,15 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use URI::Escape(); use Data::Dumper; use MIME::Base64(); -use Text::Diff::FormattedHTML(); + +#use Text::Diff::FormattedHTML(); +use Text::Diff::Unified::XS; use params(); use config(); @@ -23,7 +26,7 @@ use events(); use series_events(); use localization(); -binmode STDOUT, ":utf8"; +#binmode STDOUT, ":utf8"; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); @@ -61,7 +64,10 @@ return unless uac::check( $config, $params, $user_presets ) == 1; print q{ <script src="js/datetime.js" type="text/javascript"></script> <script src="js/event.js" type="text/javascript"></script> - <link rel="stylesheet" href="css/event.css" type="text/css" /> + <link rel="stylesheet" href="css/event.css" type="text/css" /> + + <script src="js/diff2html.min.js" type="text/javascript"></script> + <link rel="stylesheet" href="css/diff2html.min.css" type="text/css" /> }; $config->{access}->{write} = 0; @@ -167,14 +173,59 @@ sub compare { return; } + print '<textarea>' . $t1 . '</textarea>'; + print '<textarea>' . $t2 . '</textarea>'; + + #log::save_file('/tmp/diff-a.txt', $t1); + #log::save_file('/tmp/diff-b.txt', $t2); + #my $diff=`/usr/bin/diff /tmp/diff-a.txt /tmp/diff-b.txt`; + + my $diff = diff( \$t1, \$t2 ); + + #$diff=~s/\&/\&/g; + #$diff=~s/\</\</g; + #$diff=~s/\>/\>/g; + #$diff=~s/\"/\"/g; + #$diff=~s/\'/\'/g; + $diff =~ s/\'/\\\'/g; + + #$diff=~s/\n/\'+\'/g; + $diff = join( qq{\\n' + '}, split( /\r?\n/, $diff ) ); + + #<pre id="diff">$diff</pre> + print qq! + <div id="result"></div> + <script> + var diff='$diff'; + \$(document).ready(function(){ + //var diff=\$('#diff').html(); + console.log(diff) + var diffHtml = Diff2Html.getPrettyHtml( + diff, + { + inputFormat: 'diff', + showFiles: true, + matching: 'words', + outputFormat: 'side-by-side' + } + ); + document.getElementById("result").innerHTML = diffHtml; + }); + </script> + </div> + </body> + !; + + #print '<script>var a="'.$diff.'";</script>'; + #print "<style>".diff_css."</style>"; #print '<pre>'; #my $diff=diff_strings( { vertical => 1 }, $t1, $t2); - my $diff = diff_strings( {}, $t1, $t2 ); + #my $diff = Text::Diff::FormattedHTML::diff_strings( {}, $t1, $t2 ); #print Text::Diff::diff(\$t1, \$t2, { STYLE => "Table" }); #print Text::Diff::diff($v1, $v2, { STYLE => "Table" }); - print $diff; + #print $diff; #print '</pre>'; } @@ -208,7 +259,9 @@ sub check_params { $checked->{debug} = $debug; #numeric values - for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) { + for + my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) + { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi index 19cb4fb..cd819d7 100755 --- a/website/agenda/planung/help.cgi +++ b/website/agenda/planung/help.cgi @@ -1,7 +1,8 @@ # !/usr/bin/perl -w -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use URI::Escape(); diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index 97b9132..aa51a88 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -1,4 +1,4 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl use strict; use warnings; @@ -62,13 +62,13 @@ $params = $request->{params}->{checked}; my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); -if ($params->{search}){ -template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); -}else{ -template::process( $config, 'print', template::check( $config, 'ajax_header.html' ), $headerParams ); +if ( $params->{search} ) { + template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); +} else { + template::process( $config, 'print', template::check( $config, 'ajax_header.html' ), $headerParams ); } -return unless defined uac::check( $config, $params, $user_presets ); +return unless uac::check( $config, $params, $user_presets ) == 1; my $local_media_dir = $config->{locations}->{local_media_dir}; my $local_media_url = $config->{locations}->{local_media_url}; @@ -220,10 +220,10 @@ sub show_image { 'projects' => project::get_with_dates($config), 'project_id' => $params->{project_id}, 'studio_id' => $params->{studio_id}, - 'series_id' => $params->{series_id}, - 'event_id' => $params->{event_id}, - 'pid' => $params->{pid}, - 'target' => $params->{target}, + 'series_id' => $params->{series_id}, + 'event_id' => $params->{event_id}, + 'pid' => $params->{pid}, + 'target' => $params->{target}, 'filename' => $params->{filename} }; @@ -340,6 +340,7 @@ sub delete_image { my $result = images::delete( $dbh, $image ); return; + #my $action_result = ''; #my $errors = ''; #$result = images::delete_files( $config, $local_media_dir, $params->{delete_image}, $action_result, $errors ); @@ -393,9 +394,13 @@ sub modify_results { #reduce for my $permission ( 'update_image', 'delete_image' ) { - if ( ( defined $permissions->{ $permission . '_others' } ) && ( $permissions->{ $permission . '_others' } eq '1' ) ) { + if ( ( defined $permissions->{ $permission . '_others' } ) + && ( $permissions->{ $permission . '_others' } eq '1' ) ) + { $result->{$permission} = 1; - } elsif ( ( defined $permissions->{ $permission . '_own' } ) && ( $permissions->{ $permission . '_own' } eq '1' ) ) { + } elsif ( ( defined $permissions->{ $permission . '_own' } ) + && ( $permissions->{ $permission . '_own' } eq '1' ) ) + { next if ( $user eq '' ); $result->{$permission} = 1 if ( $user eq $result->{created_by} ); } diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi index 2fa6a9e..61d51d7 100755 --- a/website/agenda/planung/imageUpload.cgi +++ b/website/agenda/planung/imageUpload.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use Apache2::Request; @@ -43,14 +45,15 @@ my $error = ''; #get image from multiform before anything else if ( defined $r ) { + #$cgi = new CGI(); - + #Apache2::Request my $apr = Apache2::Request->new( $r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir ); $params = { studio_id => $apr->param('studio_id'), - project_id => $apr->param('project_id'), + project_id => $apr->param('project_id'), }; #copy params to hash @@ -108,7 +111,7 @@ my $request = { $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; -return unless defined uac::check( $config, $params, $user_presets ); +return unless uac::check( $config, $params, $user_presets ) == 1; my $permissions = $request->{permissions}; @@ -122,7 +125,10 @@ if ( $permissions->{create_image} ne '1' ) { my $file_info = undef; if ( $error ne '' ) { if ( $error =~ /limit/ ) { - $params->{error} .= "Image size is limited to " . int( $upload_limit / 1000000 ) . " MB!" . "Please make it smaller and try again!"; + $params->{error} .= + "Image size is limited to " + . int( $upload_limit / 1000000 ) . " MB!" + . "Please make it smaller and try again!"; } else { $params->{error} .= "Error:'$error'"; } @@ -132,7 +138,7 @@ if ( $error ne '' ) { $params = update_database( $config, $params, $file_info, $user ) if $params->{error} eq ''; } -print STDERR "upload error: $params->{error}\n" if $params->{error} ; +print STDERR "upload error: $params->{error}\n" if $params->{error}; my $out = ''; $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'image' } ); template::process( $config, 'print', $params->{template}, $params ); @@ -145,7 +151,6 @@ $params->{filename} ||= ''; $params->{image_id} ||= ''; $params->{name} ||= ''; - sub upload_file { my $config = shift; my $cgi = shift; @@ -215,11 +220,14 @@ sub update_database { $config->{access}->{write} = 1; my $dbh = db::connect($config); - my $entries = images::get( $config, { - filename => $image->{filename}, - project_id => $image->{project_id} , - studio_id => $image->{studio_id} - } ); + my $entries = images::get( + $config, + { + filename => $image->{filename}, + project_id => $image->{project_id}, + studio_id => $image->{studio_id} + } + ); if ( ( defined $entries ) && ( scalar(@$entries) > 0 ) ) { print STDERR "update image\n"; images::update( $dbh, $image ); @@ -300,10 +308,11 @@ sub process_image { my $md5_filename = shift; my $content = shift; - my $upload_path = images::getInternalPath( $config, { type => 'upload', filename => $md5_filename . '.' . $extension } ); - my $thumb_path = images::getInternalPath( $config, { type => 'thumbs', filename => $md5_filename . '.jpg' } ); - my $icon_path = images::getInternalPath( $config, { type => 'icons', filename => $md5_filename . '.jpg' } ); - my $image_path = images::getInternalPath( $config, { type => 'images', filename => $md5_filename . '.jpg' } ); + my $upload_path = + images::getInternalPath( $config, { type => 'upload', filename => $md5_filename . '.' . $extension } ); + my $thumb_path = images::getInternalPath( $config, { type => 'thumbs', filename => $md5_filename . '.jpg' } ); + my $icon_path = images::getInternalPath( $config, { type => 'icons', filename => $md5_filename . '.jpg' } ); + my $image_path = images::getInternalPath( $config, { type => 'images', filename => $md5_filename . '.jpg' } ); #copy file to upload space my $result = images::writeFile( $upload_path, $content ); @@ -397,4 +406,3 @@ sub check_params { return $checked; } - diff --git a/website/agenda/planung/js/jquery-ui.js b/website/agenda/planung/js/jquery-ui.js deleted file mode 100644 index 487c214..0000000 --- a/website/agenda/planung/js/jquery-ui.js +++ /dev/null @@ -1,16617 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2016-01-24 -* http://jqueryui.com -* Includes: core.js, widget.js, mouse.js, position.js, draggable.js, droppable.js, resizable.js, selectable.js, sortable.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, menu.js, progressbar.js, selectmenu.js, slider.js, spinner.js, tabs.js, tooltip.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js -* Copyright jQuery Foundation and other contributors; Licensed MIT */ - -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ "jquery" ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { -/*! - * jQuery UI Core 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/category/ui-core/ - */ - - -// $.ui might exist from components with no dependencies, e.g., $.ui.position -$.ui = $.ui || {}; - -$.extend( $.ui, { - version: "1.11.4", - - keyCode: { - BACKSPACE: 8, - COMMA: 188, - DELETE: 46, - DOWN: 40, - END: 35, - ENTER: 13, - ESCAPE: 27, - HOME: 36, - LEFT: 37, - PAGE_DOWN: 34, - PAGE_UP: 33, - PERIOD: 190, - RIGHT: 39, - SPACE: 32, - TAB: 9, - UP: 38 - } -}); - -// plugins -$.fn.extend({ - scrollParent: function( includeHidden ) { - var position = this.css( "position" ), - excludeStaticParent = position === "absolute", - overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, - scrollParent = this.parents().filter( function() { - var parent = $( this ); - if ( excludeStaticParent && parent.css( "position" ) === "static" ) { - return false; - } - return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); - }).eq( 0 ); - - return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent; - }, - - uniqueId: (function() { - var uuid = 0; - - return function() { - return this.each(function() { - if ( !this.id ) { - this.id = "ui-id-" + ( ++uuid ); - } - }); - }; - })(), - - removeUniqueId: function() { - return this.each(function() { - if ( /^ui-id-\d+$/.test( this.id ) ) { - $( this ).removeAttr( "id" ); - } - }); - } -}); - -// selectors -function focusable( element, isTabIndexNotNaN ) { - var map, mapName, img, - nodeName = element.nodeName.toLowerCase(); - if ( "area" === nodeName ) { - map = element.parentNode; - mapName = map.name; - if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { - return false; - } - img = $( "img[usemap='#" + mapName + "']" )[ 0 ]; - return !!img && visible( img ); - } - return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ? - !element.disabled : - "a" === nodeName ? - element.href || isTabIndexNotNaN : - isTabIndexNotNaN) && - // the element and all of its ancestors must be visible - visible( element ); -} - -function visible( element ) { - return $.expr.filters.visible( element ) && - !$( element ).parents().addBack().filter(function() { - return $.css( this, "visibility" ) === "hidden"; - }).length; -} - -$.extend( $.expr[ ":" ], { - data: $.expr.createPseudo ? - $.expr.createPseudo(function( dataName ) { - return function( elem ) { - return !!$.data( elem, dataName ); - }; - }) : - // support: jQuery <1.8 - function( elem, i, match ) { - return !!$.data( elem, match[ 3 ] ); - }, - - focusable: function( element ) { - return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); - }, - - tabbable: function( element ) { - var tabIndex = $.attr( element, "tabindex" ), - isTabIndexNaN = isNaN( tabIndex ); - return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); - } -}); - -// support: jQuery <1.8 -if ( !$( "<a>" ).outerWidth( 1 ).jquery ) { - $.each( [ "Width", "Height" ], function( i, name ) { - var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], - type = name.toLowerCase(), - orig = { - innerWidth: $.fn.innerWidth, - innerHeight: $.fn.innerHeight, - outerWidth: $.fn.outerWidth, - outerHeight: $.fn.outerHeight - }; - - function reduce( elem, size, border, margin ) { - $.each( side, function() { - size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; - if ( border ) { - size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; - } - if ( margin ) { - size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; - } - }); - return size; - } - - $.fn[ "inner" + name ] = function( size ) { - if ( size === undefined ) { - return orig[ "inner" + name ].call( this ); - } - - return this.each(function() { - $( this ).css( type, reduce( this, size ) + "px" ); - }); - }; - - $.fn[ "outer" + name] = function( size, margin ) { - if ( typeof size !== "number" ) { - return orig[ "outer" + name ].call( this, size ); - } - - return this.each(function() { - $( this).css( type, reduce( this, size, true, margin ) + "px" ); - }); - }; - }); -} - -// support: jQuery <1.8 -if ( !$.fn.addBack ) { - $.fn.addBack = function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - }; -} - -// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413) -if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) { - $.fn.removeData = (function( removeData ) { - return function( key ) { - if ( arguments.length ) { - return removeData.call( this, $.camelCase( key ) ); - } else { - return removeData.call( this ); - } - }; - })( $.fn.removeData ); -} - -// deprecated -$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); - -$.fn.extend({ - focus: (function( orig ) { - return function( delay, fn ) { - return typeof delay === "number" ? - this.each(function() { - var elem = this; - setTimeout(function() { - $( elem ).focus(); - if ( fn ) { - fn.call( elem ); - } - }, delay ); - }) : - orig.apply( this, arguments ); - }; - })( $.fn.focus ), - - disableSelection: (function() { - var eventType = "onselectstart" in document.createElement( "div" ) ? - "selectstart" : - "mousedown"; - - return function() { - return this.bind( eventType + ".ui-disableSelection", function( event ) { - event.preventDefault(); - }); - }; - })(), - - enableSelection: function() { - return this.unbind( ".ui-disableSelection" ); - }, - - zIndex: function( zIndex ) { - if ( zIndex !== undefined ) { - return this.css( "zIndex", zIndex ); - } - - if ( this.length ) { - var elem = $( this[ 0 ] ), position, value; - while ( elem.length && elem[ 0 ] !== document ) { - // Ignore z-index if position is set to a value where z-index is ignored by the browser - // This makes behavior of this function consistent across browsers - // WebKit always returns auto if the element is positioned - position = elem.css( "position" ); - if ( position === "absolute" || position === "relative" || position === "fixed" ) { - // IE returns 0 when zIndex is not specified - // other browsers return a string - // we ignore the case of nested elements with an explicit value of 0 - // <div style="z-index: -10;"><div style="z-index: 0;"></div></div> - value = parseInt( elem.css( "zIndex" ), 10 ); - if ( !isNaN( value ) && value !== 0 ) { - return value; - } - } - elem = elem.parent(); - } - } - - return 0; - } -}); - -// $.ui.plugin is deprecated. Use $.widget() extensions instead. -$.ui.plugin = { - add: function( module, option, set ) { - var i, - proto = $.ui[ module ].prototype; - for ( i in set ) { - proto.plugins[ i ] = proto.plugins[ i ] || []; - proto.plugins[ i ].push( [ option, set[ i ] ] ); - } - }, - call: function( instance, name, args, allowDisconnected ) { - var i, - set = instance.plugins[ name ]; - - if ( !set ) { - return; - } - - if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) { - return; - } - - for ( i = 0; i < set.length; i++ ) { - if ( instance.options[ set[ i ][ 0 ] ] ) { - set[ i ][ 1 ].apply( instance.element, args ); - } - } - } -}; - - -/*! - * jQuery UI Widget 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/jQuery.widget/ - */ - - -var widget_uuid = 0, - widget_slice = Array.prototype.slice; - -$.cleanData = (function( orig ) { - return function( elems ) { - var events, elem, i; - for ( i = 0; (elem = elems[i]) != null; i++ ) { - try { - - // Only trigger remove when necessary to save time - events = $._data( elem, "events" ); - if ( events && events.remove ) { - $( elem ).triggerHandler( "remove" ); - } - - // http://bugs.jquery.com/ticket/8235 - } catch ( e ) {} - } - orig( elems ); - }; -})( $.cleanData ); - -$.widget = function( name, base, prototype ) { - var fullName, existingConstructor, constructor, basePrototype, - // proxiedPrototype allows the provided prototype to remain unmodified - // so that it can be used as a mixin for multiple widgets (#8876) - proxiedPrototype = {}, - namespace = name.split( "." )[ 0 ]; - - name = name.split( "." )[ 1 ]; - fullName = namespace + "-" + name; - - if ( !prototype ) { - prototype = base; - base = $.Widget; - } - - // create selector for plugin - $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { - return !!$.data( elem, fullName ); - }; - - $[ namespace ] = $[ namespace ] || {}; - existingConstructor = $[ namespace ][ name ]; - constructor = $[ namespace ][ name ] = function( options, element ) { - // allow instantiation without "new" keyword - if ( !this._createWidget ) { - return new constructor( options, element ); - } - - // allow instantiation without initializing for simple inheritance - // must use "new" keyword (the code above always passes args) - if ( arguments.length ) { - this._createWidget( options, element ); - } - }; - // extend with the existing constructor to carry over any static properties - $.extend( constructor, existingConstructor, { - version: prototype.version, - // copy the object used to create the prototype in case we need to - // redefine the widget later - _proto: $.extend( {}, prototype ), - // track widgets that inherit from this widget in case this widget is - // redefined after a widget inherits from it - _childConstructors: [] - }); - - basePrototype = new base(); - // we need to make the options hash a property directly on the new instance - // otherwise we'll modify the options hash on the prototype that we're - // inheriting from - basePrototype.options = $.widget.extend( {}, basePrototype.options ); - $.each( prototype, function( prop, value ) { - if ( !$.isFunction( value ) ) { - proxiedPrototype[ prop ] = value; - return; - } - proxiedPrototype[ prop ] = (function() { - var _super = function() { - return base.prototype[ prop ].apply( this, arguments ); - }, - _superApply = function( args ) { - return base.prototype[ prop ].apply( this, args ); - }; - return function() { - var __super = this._super, - __superApply = this._superApply, - returnValue; - - this._super = _super; - this._superApply = _superApply; - - returnValue = value.apply( this, arguments ); - - this._super = __super; - this._superApply = __superApply; - - return returnValue; - }; - })(); - }); - constructor.prototype = $.widget.extend( basePrototype, { - // TODO: remove support for widgetEventPrefix - // always use the name + a colon as the prefix, e.g., draggable:start - // don't prefix for widgets that aren't DOM-based - widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name - }, proxiedPrototype, { - constructor: constructor, - namespace: namespace, - widgetName: name, - widgetFullName: fullName - }); - - // If this widget is being redefined then we need to find all widgets that - // are inheriting from it and redefine all of them so that they inherit from - // the new version of this widget. We're essentially trying to replace one - // level in the prototype chain. - if ( existingConstructor ) { - $.each( existingConstructor._childConstructors, function( i, child ) { - var childPrototype = child.prototype; - - // redefine the child widget using the same prototype that was - // originally used, but inherit from the new version of the base - $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); - }); - // remove the list of existing child constructors from the old constructor - // so the old child constructors can be garbage collected - delete existingConstructor._childConstructors; - } else { - base._childConstructors.push( constructor ); - } - - $.widget.bridge( name, constructor ); - - return constructor; -}; - -$.widget.extend = function( target ) { - var input = widget_slice.call( arguments, 1 ), - inputIndex = 0, - inputLength = input.length, - key, - value; - for ( ; inputIndex < inputLength; inputIndex++ ) { - for ( key in input[ inputIndex ] ) { - value = input[ inputIndex ][ key ]; - if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { - // Clone objects - if ( $.isPlainObject( value ) ) { - target[ key ] = $.isPlainObject( target[ key ] ) ? - $.widget.extend( {}, target[ key ], value ) : - // Don't extend strings, arrays, etc. with objects - $.widget.extend( {}, value ); - // Copy everything else by reference - } else { - target[ key ] = value; - } - } - } - } - return target; -}; - -$.widget.bridge = function( name, object ) { - var fullName = object.prototype.widgetFullName || name; - $.fn[ name ] = function( options ) { - var isMethodCall = typeof options === "string", - args = widget_slice.call( arguments, 1 ), - returnValue = this; - - if ( isMethodCall ) { - this.each(function() { - var methodValue, - instance = $.data( this, fullName ); - if ( options === "instance" ) { - returnValue = instance; - return false; - } - if ( !instance ) { - return $.error( "cannot call methods on " + name + " prior to initialization; " + - "attempted to call method '" + options + "'" ); - } - if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { - return $.error( "no such method '" + options + "' for " + name + " widget instance" ); - } - methodValue = instance[ options ].apply( instance, args ); - if ( methodValue !== instance && methodValue !== undefined ) { - returnValue = methodValue && methodValue.jquery ? - returnValue.pushStack( methodValue.get() ) : - methodValue; - return false; - } - }); - } else { - - // Allow multiple hashes to be passed on init - if ( args.length ) { - options = $.widget.extend.apply( null, [ options ].concat(args) ); - } - - this.each(function() { - var instance = $.data( this, fullName ); - if ( instance ) { - instance.option( options || {} ); - if ( instance._init ) { - instance._init(); - } - } else { - $.data( this, fullName, new object( options, this ) ); - } - }); - } - - return returnValue; - }; -}; - -$.Widget = function( /* options, element */ ) {}; -$.Widget._childConstructors = []; - -$.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - defaultElement: "<div>", - options: { - disabled: false, - - // callbacks - create: null - }, - _createWidget: function( options, element ) { - element = $( element || this.defaultElement || this )[ 0 ]; - this.element = $( element ); - this.uuid = widget_uuid++; - this.eventNamespace = "." + this.widgetName + this.uuid; - - this.bindings = $(); - this.hoverable = $(); - this.focusable = $(); - - if ( element !== this ) { - $.data( element, this.widgetFullName, this ); - this._on( true, this.element, { - remove: function( event ) { - if ( event.target === element ) { - this.destroy(); - } - } - }); - this.document = $( element.style ? - // element within the document - element.ownerDocument : - // element is window or document - element.document || element ); - this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); - } - - this.options = $.widget.extend( {}, - this.options, - this._getCreateOptions(), - options ); - - this._create(); - this._trigger( "create", null, this._getCreateEventData() ); - this._init(); - }, - _getCreateOptions: $.noop, - _getCreateEventData: $.noop, - _create: $.noop, - _init: $.noop, - - destroy: function() { - this._destroy(); - // we can probably remove the unbind calls in 2.0 - // all event bindings should go through this._on() - this.element - .unbind( this.eventNamespace ) - .removeData( this.widgetFullName ) - // support: jquery <1.6.3 - // http://bugs.jquery.com/ticket/9413 - .removeData( $.camelCase( this.widgetFullName ) ); - this.widget() - .unbind( this.eventNamespace ) - .removeAttr( "aria-disabled" ) - .removeClass( - this.widgetFullName + "-disabled " + - "ui-state-disabled" ); - - // clean up events and states - this.bindings.unbind( this.eventNamespace ); - this.hoverable.removeClass( "ui-state-hover" ); - this.focusable.removeClass( "ui-state-focus" ); - }, - _destroy: $.noop, - - widget: function() { - return this.element; - }, - - option: function( key, value ) { - var options = key, - parts, - curOption, - i; - - if ( arguments.length === 0 ) { - // don't return a reference to the internal hash - return $.widget.extend( {}, this.options ); - } - - if ( typeof key === "string" ) { - // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } - options = {}; - parts = key.split( "." ); - key = parts.shift(); - if ( parts.length ) { - curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); - for ( i = 0; i < parts.length - 1; i++ ) { - curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; - curOption = curOption[ parts[ i ] ]; - } - key = parts.pop(); - if ( arguments.length === 1 ) { - return curOption[ key ] === undefined ? null : curOption[ key ]; - } - curOption[ key ] = value; - } else { - if ( arguments.length === 1 ) { - return this.options[ key ] === undefined ? null : this.options[ key ]; - } - options[ key ] = value; - } - } - - this._setOptions( options ); - - return this; - }, - _setOptions: function( options ) { - var key; - - for ( key in options ) { - this._setOption( key, options[ key ] ); - } - - return this; - }, - _setOption: function( key, value ) { - this.options[ key ] = value; - - if ( key === "disabled" ) { - this.widget() - .toggleClass( this.widgetFullName + "-disabled", !!value ); - - // If the widget is becoming disabled, then nothing is interactive - if ( value ) { - this.hoverable.removeClass( "ui-state-hover" ); - this.focusable.removeClass( "ui-state-focus" ); - } - } - - return this; - }, - - enable: function() { - return this._setOptions({ disabled: false }); - }, - disable: function() { - return this._setOptions({ disabled: true }); - }, - - _on: function( suppressDisabledCheck, element, handlers ) { - var delegateElement, - instance = this; - - // no suppressDisabledCheck flag, shuffle arguments - if ( typeof suppressDisabledCheck !== "boolean" ) { - handlers = element; - element = suppressDisabledCheck; - suppressDisabledCheck = false; - } - - // no element argument, shuffle and use this.element - if ( !handlers ) { - handlers = element; - element = this.element; - delegateElement = this.widget(); - } else { - element = delegateElement = $( element ); - this.bindings = this.bindings.add( element ); - } - - $.each( handlers, function( event, handler ) { - function handlerProxy() { - // allow widgets to customize the disabled handling - // - disabled as an array instead of boolean - // - disabled class as method for disabling individual parts - if ( !suppressDisabledCheck && - ( instance.options.disabled === true || - $( this ).hasClass( "ui-state-disabled" ) ) ) { - return; - } - return ( typeof handler === "string" ? instance[ handler ] : handler ) - .apply( instance, arguments ); - } - - // copy the guid so direct unbinding works - if ( typeof handler !== "string" ) { - handlerProxy.guid = handler.guid = - handler.guid || handlerProxy.guid || $.guid++; - } - - var match = event.match( /^([\w:-]*)\s*(.*)$/ ), - eventName = match[1] + instance.eventNamespace, - selector = match[2]; - if ( selector ) { - delegateElement.delegate( selector, eventName, handlerProxy ); - } else { - element.bind( eventName, handlerProxy ); - } - }); - }, - - _off: function( element, eventName ) { - eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + - this.eventNamespace; - element.unbind( eventName ).undelegate( eventName ); - - // Clear the stack to avoid memory leaks (#10056) - this.bindings = $( this.bindings.not( element ).get() ); - this.focusable = $( this.focusable.not( element ).get() ); - this.hoverable = $( this.hoverable.not( element ).get() ); - }, - - _delay: function( handler, delay ) { - function handlerProxy() { - return ( typeof handler === "string" ? instance[ handler ] : handler ) - .apply( instance, arguments ); - } - var instance = this; - return setTimeout( handlerProxy, delay || 0 ); - }, - - _hoverable: function( element ) { - this.hoverable = this.hoverable.add( element ); - this._on( element, { - mouseenter: function( event ) { - $( event.currentTarget ).addClass( "ui-state-hover" ); - }, - mouseleave: function( event ) { - $( event.currentTarget ).removeClass( "ui-state-hover" ); - } - }); - }, - - _focusable: function( element ) { - this.focusable = this.focusable.add( element ); - this._on( element, { - focusin: function( event ) { - $( event.currentTarget ).addClass( "ui-state-focus" ); - }, - focusout: function( event ) { - $( event.currentTarget ).removeClass( "ui-state-focus" ); - } - }); - }, - - _trigger: function( type, event, data ) { - var prop, orig, - callback = this.options[ type ]; - - data = data || {}; - event = $.Event( event ); - event.type = ( type === this.widgetEventPrefix ? - type : - this.widgetEventPrefix + type ).toLowerCase(); - // the original event may come from any element - // so we need to reset the target on the new event - event.target = this.element[ 0 ]; - - // copy original event properties over to the new event - orig = event.originalEvent; - if ( orig ) { - for ( prop in orig ) { - if ( !( prop in event ) ) { - event[ prop ] = orig[ prop ]; - } - } - } - - this.element.trigger( event, data ); - return !( $.isFunction( callback ) && - callback.apply( this.element[0], [ event ].concat( data ) ) === false || - event.isDefaultPrevented() ); - } -}; - -$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { - $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { - if ( typeof options === "string" ) { - options = { effect: options }; - } - var hasOptions, - effectName = !options ? - method : - options === true || typeof options === "number" ? - defaultEffect : - options.effect || defaultEffect; - options = options || {}; - if ( typeof options === "number" ) { - options = { duration: options }; - } - hasOptions = !$.isEmptyObject( options ); - options.complete = callback; - if ( options.delay ) { - element.delay( options.delay ); - } - if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { - element[ method ]( options ); - } else if ( effectName !== method && element[ effectName ] ) { - element[ effectName ]( options.duration, options.easing, callback ); - } else { - element.queue(function( next ) { - $( this )[ method ](); - if ( callback ) { - callback.call( element[ 0 ] ); - } - next(); - }); - } - }; -}); - -var widget = $.widget; - - -/*! - * jQuery UI Mouse 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/mouse/ - */ - - -var mouseHandled = false; -$( document ).mouseup( function() { - mouseHandled = false; -}); - -var mouse = $.widget("ui.mouse", { - version: "1.11.4", - options: { - cancel: "input,textarea,button,select,option", - distance: 1, - delay: 0 - }, - _mouseInit: function() { - var that = this; - - this.element - .bind("mousedown." + this.widgetName, function(event) { - return that._mouseDown(event); - }) - .bind("click." + this.widgetName, function(event) { - if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) { - $.removeData(event.target, that.widgetName + ".preventClickEvent"); - event.stopImmediatePropagation(); - return false; - } - }); - - this.started = false; - }, - - // TODO: make sure destroying one instance of mouse doesn't mess with - // other instances of mouse - _mouseDestroy: function() { - this.element.unbind("." + this.widgetName); - if ( this._mouseMoveDelegate ) { - this.document - .unbind("mousemove." + this.widgetName, this._mouseMoveDelegate) - .unbind("mouseup." + this.widgetName, this._mouseUpDelegate); - } - }, - - _mouseDown: function(event) { - // don't let more than one widget handle mouseStart - if ( mouseHandled ) { - return; - } - - this._mouseMoved = false; - - // we may have missed mouseup (out of window) - (this._mouseStarted && this._mouseUp(event)); - - this._mouseDownEvent = event; - - var that = this, - btnIsLeft = (event.which === 1), - // event.target.nodeName works around a bug in IE 8 with - // disabled inputs (#7620) - elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); - if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { - return true; - } - - this.mouseDelayMet = !this.options.delay; - if (!this.mouseDelayMet) { - this._mouseDelayTimer = setTimeout(function() { - that.mouseDelayMet = true; - }, this.options.delay); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = (this._mouseStart(event) !== false); - if (!this._mouseStarted) { - event.preventDefault(); - return true; - } - } - - // Click event may never have fired (Gecko & Opera) - if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) { - $.removeData(event.target, this.widgetName + ".preventClickEvent"); - } - - // these delegates are required to keep context - this._mouseMoveDelegate = function(event) { - return that._mouseMove(event); - }; - this._mouseUpDelegate = function(event) { - return that._mouseUp(event); - }; - - this.document - .bind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) - .bind( "mouseup." + this.widgetName, this._mouseUpDelegate ); - - event.preventDefault(); - - mouseHandled = true; - return true; - }, - - _mouseMove: function(event) { - // Only check for mouseups outside the document if you've moved inside the document - // at least once. This prevents the firing of mouseup in the case of IE<9, which will - // fire a mousemove event if content is placed under the cursor. See #7778 - // Support: IE <9 - if ( this._mouseMoved ) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { - return this._mouseUp(event); - - // Iframe mouseup check - mouseup occurred in another document - } else if ( !event.which ) { - return this._mouseUp( event ); - } - } - - if ( event.which || event.button ) { - this._mouseMoved = true; - } - - if (this._mouseStarted) { - this._mouseDrag(event); - return event.preventDefault(); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = - (this._mouseStart(this._mouseDownEvent, event) !== false); - (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); - } - - return !this._mouseStarted; - }, - - _mouseUp: function(event) { - this.document - .unbind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) - .unbind( "mouseup." + this.widgetName, this._mouseUpDelegate ); - - if (this._mouseStarted) { - this._mouseStarted = false; - - if (event.target === this._mouseDownEvent.target) { - $.data(event.target, this.widgetName + ".preventClickEvent", true); - } - - this._mouseStop(event); - } - - mouseHandled = false; - return false; - }, - - _mouseDistanceMet: function(event) { - return (Math.max( - Math.abs(this._mouseDownEvent.pageX - event.pageX), - Math.abs(this._mouseDownEvent.pageY - event.pageY) - ) >= this.options.distance - ); - }, - - _mouseDelayMet: function(/* event */) { - return this.mouseDelayMet; - }, - - // These are placeholder methods, to be overriden by extending plugin - _mouseStart: function(/* event */) {}, - _mouseDrag: function(/* event */) {}, - _mouseStop: function(/* event */) {}, - _mouseCapture: function(/* event */) { return true; } -}); - - -/*! - * jQuery UI Position 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/position/ - */ - -(function() { - -$.ui = $.ui || {}; - -var cachedScrollbarWidth, supportsOffsetFractions, - max = Math.max, - abs = Math.abs, - round = Math.round, - rhorizontal = /left|center|right/, - rvertical = /top|center|bottom/, - roffset = /[\+\-]\d+(\.[\d]+)?%?/, - rposition = /^\w+/, - rpercent = /%$/, - _position = $.fn.position; - -function getOffsets( offsets, width, height ) { - return [ - parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), - parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) - ]; -} - -function parseCss( element, property ) { - return parseInt( $.css( element, property ), 10 ) || 0; -} - -function getDimensions( elem ) { - var raw = elem[0]; - if ( raw.nodeType === 9 ) { - return { - width: elem.width(), - height: elem.height(), - offset: { top: 0, left: 0 } - }; - } - if ( $.isWindow( raw ) ) { - return { - width: elem.width(), - height: elem.height(), - offset: { top: elem.scrollTop(), left: elem.scrollLeft() } - }; - } - if ( raw.preventDefault ) { - return { - width: 0, - height: 0, - offset: { top: raw.pageY, left: raw.pageX } - }; - } - return { - width: elem.outerWidth(), - height: elem.outerHeight(), - offset: elem.offset() - }; -} - -$.position = { - scrollbarWidth: function() { - if ( cachedScrollbarWidth !== undefined ) { - return cachedScrollbarWidth; - } - var w1, w2, - div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ), - innerDiv = div.children()[0]; - - $( "body" ).append( div ); - w1 = innerDiv.offsetWidth; - div.css( "overflow", "scroll" ); - - w2 = innerDiv.offsetWidth; - - if ( w1 === w2 ) { - w2 = div[0].clientWidth; - } - - div.remove(); - - return (cachedScrollbarWidth = w1 - w2); - }, - getScrollInfo: function( within ) { - var overflowX = within.isWindow || within.isDocument ? "" : - within.element.css( "overflow-x" ), - overflowY = within.isWindow || within.isDocument ? "" : - within.element.css( "overflow-y" ), - hasOverflowX = overflowX === "scroll" || - ( overflowX === "auto" && within.width < within.element[0].scrollWidth ), - hasOverflowY = overflowY === "scroll" || - ( overflowY === "auto" && within.height < within.element[0].scrollHeight ); - return { - width: hasOverflowY ? $.position.scrollbarWidth() : 0, - height: hasOverflowX ? $.position.scrollbarWidth() : 0 - }; - }, - getWithinInfo: function( element ) { - var withinElement = $( element || window ), - isWindow = $.isWindow( withinElement[0] ), - isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9; - return { - element: withinElement, - isWindow: isWindow, - isDocument: isDocument, - offset: withinElement.offset() || { left: 0, top: 0 }, - scrollLeft: withinElement.scrollLeft(), - scrollTop: withinElement.scrollTop(), - - // support: jQuery 1.6.x - // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows - width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(), - height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight() - }; - } -}; - -$.fn.position = function( options ) { - if ( !options || !options.of ) { - return _position.apply( this, arguments ); - } - - // make a copy, we don't want to modify arguments - options = $.extend( {}, options ); - - var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, - target = $( options.of ), - within = $.position.getWithinInfo( options.within ), - scrollInfo = $.position.getScrollInfo( within ), - collision = ( options.collision || "flip" ).split( " " ), - offsets = {}; - - dimensions = getDimensions( target ); - if ( target[0].preventDefault ) { - // force left top to allow flipping - options.at = "left top"; - } - targetWidth = dimensions.width; - targetHeight = dimensions.height; - targetOffset = dimensions.offset; - // clone to reuse original targetOffset later - basePosition = $.extend( {}, targetOffset ); - - // force my and at to have valid horizontal and vertical positions - // if a value is missing or invalid, it will be converted to center - $.each( [ "my", "at" ], function() { - var pos = ( options[ this ] || "" ).split( " " ), - horizontalOffset, - verticalOffset; - - if ( pos.length === 1) { - pos = rhorizontal.test( pos[ 0 ] ) ? - pos.concat( [ "center" ] ) : - rvertical.test( pos[ 0 ] ) ? - [ "center" ].concat( pos ) : - [ "center", "center" ]; - } - pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; - pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; - - // calculate offsets - horizontalOffset = roffset.exec( pos[ 0 ] ); - verticalOffset = roffset.exec( pos[ 1 ] ); - offsets[ this ] = [ - horizontalOffset ? horizontalOffset[ 0 ] : 0, - verticalOffset ? verticalOffset[ 0 ] : 0 - ]; - - // reduce to just the positions without the offsets - options[ this ] = [ - rposition.exec( pos[ 0 ] )[ 0 ], - rposition.exec( pos[ 1 ] )[ 0 ] - ]; - }); - - // normalize collision option - if ( collision.length === 1 ) { - collision[ 1 ] = collision[ 0 ]; - } - - if ( options.at[ 0 ] === "right" ) { - basePosition.left += targetWidth; - } else if ( options.at[ 0 ] === "center" ) { - basePosition.left += targetWidth / 2; - } - - if ( options.at[ 1 ] === "bottom" ) { - basePosition.top += targetHeight; - } else if ( options.at[ 1 ] === "center" ) { - basePosition.top += targetHeight / 2; - } - - atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); - basePosition.left += atOffset[ 0 ]; - basePosition.top += atOffset[ 1 ]; - - return this.each(function() { - var collisionPosition, using, - elem = $( this ), - elemWidth = elem.outerWidth(), - elemHeight = elem.outerHeight(), - marginLeft = parseCss( this, "marginLeft" ), - marginTop = parseCss( this, "marginTop" ), - collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width, - collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height, - position = $.extend( {}, basePosition ), - myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); - - if ( options.my[ 0 ] === "right" ) { - position.left -= elemWidth; - } else if ( options.my[ 0 ] === "center" ) { - position.left -= elemWidth / 2; - } - - if ( options.my[ 1 ] === "bottom" ) { - position.top -= elemHeight; - } else if ( options.my[ 1 ] === "center" ) { - position.top -= elemHeight / 2; - } - - position.left += myOffset[ 0 ]; - position.top += myOffset[ 1 ]; - - // if the browser doesn't support fractions, then round for consistent results - if ( !supportsOffsetFractions ) { - position.left = round( position.left ); - position.top = round( position.top ); - } - - collisionPosition = { - marginLeft: marginLeft, - marginTop: marginTop - }; - - $.each( [ "left", "top" ], function( i, dir ) { - if ( $.ui.position[ collision[ i ] ] ) { - $.ui.position[ collision[ i ] ][ dir ]( position, { - targetWidth: targetWidth, - targetHeight: targetHeight, - elemWidth: elemWidth, - elemHeight: elemHeight, - collisionPosition: collisionPosition, - collisionWidth: collisionWidth, - collisionHeight: collisionHeight, - offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], - my: options.my, - at: options.at, - within: within, - elem: elem - }); - } - }); - - if ( options.using ) { - // adds feedback as second argument to using callback, if present - using = function( props ) { - var left = targetOffset.left - position.left, - right = left + targetWidth - elemWidth, - top = targetOffset.top - position.top, - bottom = top + targetHeight - elemHeight, - feedback = { - target: { - element: target, - left: targetOffset.left, - top: targetOffset.top, - width: targetWidth, - height: targetHeight - }, - element: { - element: elem, - left: position.left, - top: position.top, - width: elemWidth, - height: elemHeight - }, - horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", - vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" - }; - if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { - feedback.horizontal = "center"; - } - if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { - feedback.vertical = "middle"; - } - if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { - feedback.important = "horizontal"; - } else { - feedback.important = "vertical"; - } - options.using.call( this, props, feedback ); - }; - } - - elem.offset( $.extend( position, { using: using } ) ); - }); -}; - -$.ui.position = { - fit: { - left: function( position, data ) { - var within = data.within, - withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, - outerWidth = within.width, - collisionPosLeft = position.left - data.collisionPosition.marginLeft, - overLeft = withinOffset - collisionPosLeft, - overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, - newOverRight; - - // element is wider than within - if ( data.collisionWidth > outerWidth ) { - // element is initially over the left side of within - if ( overLeft > 0 && overRight <= 0 ) { - newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; - position.left += overLeft - newOverRight; - // element is initially over right side of within - } else if ( overRight > 0 && overLeft <= 0 ) { - position.left = withinOffset; - // element is initially over both left and right sides of within - } else { - if ( overLeft > overRight ) { - position.left = withinOffset + outerWidth - data.collisionWidth; - } else { - position.left = withinOffset; - } - } - // too far left -> align with left edge - } else if ( overLeft > 0 ) { - position.left += overLeft; - // too far right -> align with right edge - } else if ( overRight > 0 ) { - position.left -= overRight; - // adjust based on position and margin - } else { - position.left = max( position.left - collisionPosLeft, position.left ); - } - }, - top: function( position, data ) { - var within = data.within, - withinOffset = within.isWindow ? within.scrollTop : within.offset.top, - outerHeight = data.within.height, - collisionPosTop = position.top - data.collisionPosition.marginTop, - overTop = withinOffset - collisionPosTop, - overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, - newOverBottom; - - // element is taller than within - if ( data.collisionHeight > outerHeight ) { - // element is initially over the top of within - if ( overTop > 0 && overBottom <= 0 ) { - newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; - position.top += overTop - newOverBottom; - // element is initially over bottom of within - } else if ( overBottom > 0 && overTop <= 0 ) { - position.top = withinOffset; - // element is initially over both top and bottom of within - } else { - if ( overTop > overBottom ) { - position.top = withinOffset + outerHeight - data.collisionHeight; - } else { - position.top = withinOffset; - } - } - // too far up -> align with top - } else if ( overTop > 0 ) { - position.top += overTop; - // too far down -> align with bottom edge - } else if ( overBottom > 0 ) { - position.top -= overBottom; - // adjust based on position and margin - } else { - position.top = max( position.top - collisionPosTop, position.top ); - } - } - }, - flip: { - left: function( position, data ) { - var within = data.within, - withinOffset = within.offset.left + within.scrollLeft, - outerWidth = within.width, - offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, - collisionPosLeft = position.left - data.collisionPosition.marginLeft, - overLeft = collisionPosLeft - offsetLeft, - overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, - myOffset = data.my[ 0 ] === "left" ? - -data.elemWidth : - data.my[ 0 ] === "right" ? - data.elemWidth : - 0, - atOffset = data.at[ 0 ] === "left" ? - data.targetWidth : - data.at[ 0 ] === "right" ? - -data.targetWidth : - 0, - offset = -2 * data.offset[ 0 ], - newOverRight, - newOverLeft; - - if ( overLeft < 0 ) { - newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; - if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { - position.left += myOffset + atOffset + offset; - } - } else if ( overRight > 0 ) { - newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; - if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { - position.left += myOffset + atOffset + offset; - } - } - }, - top: function( position, data ) { - var within = data.within, - withinOffset = within.offset.top + within.scrollTop, - outerHeight = within.height, - offsetTop = within.isWindow ? within.scrollTop : within.offset.top, - collisionPosTop = position.top - data.collisionPosition.marginTop, - overTop = collisionPosTop - offsetTop, - overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, - top = data.my[ 1 ] === "top", - myOffset = top ? - -data.elemHeight : - data.my[ 1 ] === "bottom" ? - data.elemHeight : - 0, - atOffset = data.at[ 1 ] === "top" ? - data.targetHeight : - data.at[ 1 ] === "bottom" ? - -data.targetHeight : - 0, - offset = -2 * data.offset[ 1 ], - newOverTop, - newOverBottom; - if ( overTop < 0 ) { - newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; - if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { - position.top += myOffset + atOffset + offset; - } - } else if ( overBottom > 0 ) { - newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; - if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { - position.top += myOffset + atOffset + offset; - } - } - } - }, - flipfit: { - left: function() { - $.ui.position.flip.left.apply( this, arguments ); - $.ui.position.fit.left.apply( this, arguments ); - }, - top: function() { - $.ui.position.flip.top.apply( this, arguments ); - $.ui.position.fit.top.apply( this, arguments ); - } - } -}; - -// fraction support test -(function() { - var testElement, testElementParent, testElementStyle, offsetLeft, i, - body = document.getElementsByTagName( "body" )[ 0 ], - div = document.createElement( "div" ); - - //Create a "fake body" for testing based on method used in jQuery.support - testElement = document.createElement( body ? "div" : "body" ); - testElementStyle = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0, - background: "none" - }; - if ( body ) { - $.extend( testElementStyle, { - position: "absolute", - left: "-1000px", - top: "-1000px" - }); - } - for ( i in testElementStyle ) { - testElement.style[ i ] = testElementStyle[ i ]; - } - testElement.appendChild( div ); - testElementParent = body || document.documentElement; - testElementParent.insertBefore( testElement, testElementParent.firstChild ); - - div.style.cssText = "position: absolute; left: 10.7432222px;"; - - offsetLeft = $( div ).offset().left; - supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11; - - testElement.innerHTML = ""; - testElementParent.removeChild( testElement ); -})(); - -})(); - -var position = $.ui.position; - - -/*! - * jQuery UI Draggable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/draggable/ - */ - - -$.widget("ui.draggable", $.ui.mouse, { - version: "1.11.4", - widgetEventPrefix: "drag", - options: { - addClasses: true, - appendTo: "parent", - axis: false, - connectToSortable: false, - containment: false, - cursor: "auto", - cursorAt: false, - grid: false, - handle: false, - helper: "original", - iframeFix: false, - opacity: false, - refreshPositions: false, - revert: false, - revertDuration: 500, - scope: "default", - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - snap: false, - snapMode: "both", - snapTolerance: 20, - stack: false, - zIndex: false, - - // callbacks - drag: null, - start: null, - stop: null - }, - _create: function() { - - if ( this.options.helper === "original" ) { - this._setPositionRelative(); - } - if (this.options.addClasses){ - this.element.addClass("ui-draggable"); - } - if (this.options.disabled){ - this.element.addClass("ui-draggable-disabled"); - } - this._setHandleClassName(); - - this._mouseInit(); - }, - - _setOption: function( key, value ) { - this._super( key, value ); - if ( key === "handle" ) { - this._removeHandleClassName(); - this._setHandleClassName(); - } - }, - - _destroy: function() { - if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) { - this.destroyOnClear = true; - return; - } - this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" ); - this._removeHandleClassName(); - this._mouseDestroy(); - }, - - _mouseCapture: function(event) { - var o = this.options; - - this._blurActiveElement( event ); - - // among others, prevent a drag on a resizable-handle - if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { - return false; - } - - //Quit if we're not on a valid handle - this.handle = this._getHandle(event); - if (!this.handle) { - return false; - } - - this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix ); - - return true; - - }, - - _blockFrames: function( selector ) { - this.iframeBlocks = this.document.find( selector ).map(function() { - var iframe = $( this ); - - return $( "<div>" ) - .css( "position", "absolute" ) - .appendTo( iframe.parent() ) - .outerWidth( iframe.outerWidth() ) - .outerHeight( iframe.outerHeight() ) - .offset( iframe.offset() )[ 0 ]; - }); - }, - - _unblockFrames: function() { - if ( this.iframeBlocks ) { - this.iframeBlocks.remove(); - delete this.iframeBlocks; - } - }, - - _blurActiveElement: function( event ) { - var document = this.document[ 0 ]; - - // Only need to blur if the event occurred on the draggable itself, see #10527 - if ( !this.handleElement.is( event.target ) ) { - return; - } - - // support: IE9 - // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> - try { - - // Support: IE9, IE10 - // If the <body> is blurred, IE will switch windows, see #9520 - if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) { - - // Blur any element that currently has focus, see #4261 - $( document.activeElement ).blur(); - } - } catch ( error ) {} - }, - - _mouseStart: function(event) { - - var o = this.options; - - //Create and append the visible helper - this.helper = this._createHelper(event); - - this.helper.addClass("ui-draggable-dragging"); - - //Cache the helper size - this._cacheHelperProportions(); - - //If ddmanager is used for droppables, set the global draggable - if ($.ui.ddmanager) { - $.ui.ddmanager.current = this; - } - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Store the helper's css position - this.cssPosition = this.helper.css( "position" ); - this.scrollParent = this.helper.scrollParent( true ); - this.offsetParent = this.helper.offsetParent(); - this.hasFixedAncestor = this.helper.parents().filter(function() { - return $( this ).css( "position" ) === "fixed"; - }).length > 0; - - //The element's absolute position on the page minus margins - this.positionAbs = this.element.offset(); - this._refreshOffsets( event ); - - //Generate the original position - this.originalPosition = this.position = this._generatePosition( event, false ); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if "cursorAt" is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Set a containment if given in the options - this._setContainment(); - - //Trigger event + callbacks - if (this._trigger("start", event) === false) { - this._clear(); - return false; - } - - //Recache the helper size - this._cacheHelperProportions(); - - //Prepare the droppable offsets - if ($.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(this, event); - } - - // Reset helper's right/bottom css if they're set and set explicit width/height instead - // as this prevents resizing of elements with right/bottom set (see #7772) - this._normalizeRightBottom(); - - this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position - - //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) - if ( $.ui.ddmanager ) { - $.ui.ddmanager.dragStart(this, event); - } - - return true; - }, - - _refreshOffsets: function( event ) { - this.offset = { - top: this.positionAbs.top - this.margins.top, - left: this.positionAbs.left - this.margins.left, - scroll: false, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() - }; - - this.offset.click = { - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }; - }, - - _mouseDrag: function(event, noPropagation) { - // reset any necessary cached properties (see #5009) - if ( this.hasFixedAncestor ) { - this.offset.parent = this._getParentOffset(); - } - - //Compute the helpers position - this.position = this._generatePosition( event, true ); - this.positionAbs = this._convertPositionTo("absolute"); - - //Call plugins and callbacks and use the resulting position if something is returned - if (!noPropagation) { - var ui = this._uiHash(); - if (this._trigger("drag", event, ui) === false) { - this._mouseUp({}); - return false; - } - this.position = ui.position; - } - - this.helper[ 0 ].style.left = this.position.left + "px"; - this.helper[ 0 ].style.top = this.position.top + "px"; - - if ($.ui.ddmanager) { - $.ui.ddmanager.drag(this, event); - } - - return false; - }, - - _mouseStop: function(event) { - - //If we are using droppables, inform the manager about the drop - var that = this, - dropped = false; - if ($.ui.ddmanager && !this.options.dropBehaviour) { - dropped = $.ui.ddmanager.drop(this, event); - } - - //if a drop comes from outside (a sortable) - if (this.dropped) { - dropped = this.dropped; - this.dropped = false; - } - - if ((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { - $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { - if (that._trigger("stop", event) !== false) { - that._clear(); - } - }); - } else { - if (this._trigger("stop", event) !== false) { - this._clear(); - } - } - - return false; - }, - - _mouseUp: function( event ) { - this._unblockFrames(); - - //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) - if ( $.ui.ddmanager ) { - $.ui.ddmanager.dragStop(this, event); - } - - // Only need to focus if the event occurred on the draggable itself, see #10527 - if ( this.handleElement.is( event.target ) ) { - // The interaction is over; whether or not the click resulted in a drag, focus the element - this.element.focus(); - } - - return $.ui.mouse.prototype._mouseUp.call(this, event); - }, - - cancel: function() { - - if (this.helper.is(".ui-draggable-dragging")) { - this._mouseUp({}); - } else { - this._clear(); - } - - return this; - - }, - - _getHandle: function(event) { - return this.options.handle ? - !!$( event.target ).closest( this.element.find( this.options.handle ) ).length : - true; - }, - - _setHandleClassName: function() { - this.handleElement = this.options.handle ? - this.element.find( this.options.handle ) : this.element; - this.handleElement.addClass( "ui-draggable-handle" ); - }, - - _removeHandleClassName: function() { - this.handleElement.removeClass( "ui-draggable-handle" ); - }, - - _createHelper: function(event) { - - var o = this.options, - helperIsFunction = $.isFunction( o.helper ), - helper = helperIsFunction ? - $( o.helper.apply( this.element[ 0 ], [ event ] ) ) : - ( o.helper === "clone" ? - this.element.clone().removeAttr( "id" ) : - this.element ); - - if (!helper.parents("body").length) { - helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo)); - } - - // http://bugs.jqueryui.com/ticket/9446 - // a helper function can return the original element - // which wouldn't have been set to relative in _create - if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) { - this._setPositionRelative(); - } - - if (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) { - helper.css("position", "absolute"); - } - - return helper; - - }, - - _setPositionRelative: function() { - if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) { - this.element[ 0 ].style.position = "relative"; - } - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj === "string") { - obj = obj.split(" "); - } - if ($.isArray(obj)) { - obj = { left: +obj[0], top: +obj[1] || 0 }; - } - if ("left" in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ("right" in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ("top" in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ("bottom" in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _isRootNode: function( element ) { - return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ]; - }, - - _getParentOffset: function() { - - //Get the offsetParent and cache its position - var po = this.offsetParent.offset(), - document = this.document[ 0 ]; - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if (this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - if ( this._isRootNode( this.offsetParent[ 0 ] ) ) { - po = { top: 0, left: 0 }; - } - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) - }; - - }, - - _getRelativeOffset: function() { - if ( this.cssPosition !== "relative" ) { - return { top: 0, left: 0 }; - } - - var p = this.element.position(), - scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ); - - return { - top: p.top - ( parseInt(this.helper.css( "top" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ), - left: p.left - ( parseInt(this.helper.css( "left" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 ) - }; - - }, - - _cacheMargins: function() { - this.margins = { - left: (parseInt(this.element.css("marginLeft"), 10) || 0), - top: (parseInt(this.element.css("marginTop"), 10) || 0), - right: (parseInt(this.element.css("marginRight"), 10) || 0), - bottom: (parseInt(this.element.css("marginBottom"), 10) || 0) - }; - }, - - _cacheHelperProportions: function() { - this.helperProportions = { - width: this.helper.outerWidth(), - height: this.helper.outerHeight() - }; - }, - - _setContainment: function() { - - var isUserScrollable, c, ce, - o = this.options, - document = this.document[ 0 ]; - - this.relativeContainer = null; - - if ( !o.containment ) { - this.containment = null; - return; - } - - if ( o.containment === "window" ) { - this.containment = [ - $( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left, - $( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top, - $( window ).scrollLeft() + $( window ).width() - this.helperProportions.width - this.margins.left, - $( window ).scrollTop() + ( $( window ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top - ]; - return; - } - - if ( o.containment === "document") { - this.containment = [ - 0, - 0, - $( document ).width() - this.helperProportions.width - this.margins.left, - ( $( document ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top - ]; - return; - } - - if ( o.containment.constructor === Array ) { - this.containment = o.containment; - return; - } - - if ( o.containment === "parent" ) { - o.containment = this.helper[ 0 ].parentNode; - } - - c = $( o.containment ); - ce = c[ 0 ]; - - if ( !ce ) { - return; - } - - isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) ); - - this.containment = [ - ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ), - ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ), - ( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - - ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - - ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - - this.helperProportions.width - - this.margins.left - - this.margins.right, - ( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - - ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - - ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - - this.helperProportions.height - - this.margins.top - - this.margins.bottom - ]; - this.relativeContainer = c; - }, - - _convertPositionTo: function(d, pos) { - - if (!pos) { - pos = this.position; - } - - var mod = d === "absolute" ? 1 : -1, - scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ); - - return { - top: ( - pos.top + // The absolute mouse position - this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod) - ), - left: ( - pos.left + // The absolute mouse position - this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod) - ) - }; - - }, - - _generatePosition: function( event, constrainPosition ) { - - var containment, co, top, left, - o = this.options, - scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ), - pageX = event.pageX, - pageY = event.pageY; - - // Cache the scroll - if ( !scrollIsRootNode || !this.offset.scroll ) { - this.offset.scroll = { - top: this.scrollParent.scrollTop(), - left: this.scrollParent.scrollLeft() - }; - } - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - // If we are not dragging yet, we won't check for options - if ( constrainPosition ) { - if ( this.containment ) { - if ( this.relativeContainer ){ - co = this.relativeContainer.offset(); - containment = [ - this.containment[ 0 ] + co.left, - this.containment[ 1 ] + co.top, - this.containment[ 2 ] + co.left, - this.containment[ 3 ] + co.top - ]; - } else { - containment = this.containment; - } - - if (event.pageX - this.offset.click.left < containment[0]) { - pageX = containment[0] + this.offset.click.left; - } - if (event.pageY - this.offset.click.top < containment[1]) { - pageY = containment[1] + this.offset.click.top; - } - if (event.pageX - this.offset.click.left > containment[2]) { - pageX = containment[2] + this.offset.click.left; - } - if (event.pageY - this.offset.click.top > containment[3]) { - pageY = containment[3] + this.offset.click.top; - } - } - - if (o.grid) { - //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950) - top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY; - pageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX; - pageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - if ( o.axis === "y" ) { - pageX = this.originalPageX; - } - - if ( o.axis === "x" ) { - pageY = this.originalPageY; - } - } - - return { - top: ( - pageY - // The absolute mouse position - this.offset.click.top - // Click offset (relative to the element) - this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top + // The offsetParent's offset without borders (offset + border) - ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) - ), - left: ( - pageX - // The absolute mouse position - this.offset.click.left - // Click offset (relative to the element) - this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left + // The offsetParent's offset without borders (offset + border) - ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) - ) - }; - - }, - - _clear: function() { - this.helper.removeClass("ui-draggable-dragging"); - if (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) { - this.helper.remove(); - } - this.helper = null; - this.cancelHelperRemoval = false; - if ( this.destroyOnClear ) { - this.destroy(); - } - }, - - _normalizeRightBottom: function() { - if ( this.options.axis !== "y" && this.helper.css( "right" ) !== "auto" ) { - this.helper.width( this.helper.width() ); - this.helper.css( "right", "auto" ); - } - if ( this.options.axis !== "x" && this.helper.css( "bottom" ) !== "auto" ) { - this.helper.height( this.helper.height() ); - this.helper.css( "bottom", "auto" ); - } - }, - - // From now on bulk stuff - mainly helpers - - _trigger: function( type, event, ui ) { - ui = ui || this._uiHash(); - $.ui.plugin.call( this, type, [ event, ui, this ], true ); - - // Absolute position and offset (see #6884 ) have to be recalculated after plugins - if ( /^(drag|start|stop)/.test( type ) ) { - this.positionAbs = this._convertPositionTo( "absolute" ); - ui.offset = this.positionAbs; - } - return $.Widget.prototype._trigger.call( this, type, event, ui ); - }, - - plugins: {}, - - _uiHash: function() { - return { - helper: this.helper, - position: this.position, - originalPosition: this.originalPosition, - offset: this.positionAbs - }; - } - -}); - -$.ui.plugin.add( "draggable", "connectToSortable", { - start: function( event, ui, draggable ) { - var uiSortable = $.extend( {}, ui, { - item: draggable.element - }); - - draggable.sortables = []; - $( draggable.options.connectToSortable ).each(function() { - var sortable = $( this ).sortable( "instance" ); - - if ( sortable && !sortable.options.disabled ) { - draggable.sortables.push( sortable ); - - // refreshPositions is called at drag start to refresh the containerCache - // which is used in drag. This ensures it's initialized and synchronized - // with any changes that might have happened on the page since initialization. - sortable.refreshPositions(); - sortable._trigger("activate", event, uiSortable); - } - }); - }, - stop: function( event, ui, draggable ) { - var uiSortable = $.extend( {}, ui, { - item: draggable.element - }); - - draggable.cancelHelperRemoval = false; - - $.each( draggable.sortables, function() { - var sortable = this; - - if ( sortable.isOver ) { - sortable.isOver = 0; - - // Allow this sortable to handle removing the helper - draggable.cancelHelperRemoval = true; - sortable.cancelHelperRemoval = false; - - // Use _storedCSS To restore properties in the sortable, - // as this also handles revert (#9675) since the draggable - // may have modified them in unexpected ways (#8809) - sortable._storedCSS = { - position: sortable.placeholder.css( "position" ), - top: sortable.placeholder.css( "top" ), - left: sortable.placeholder.css( "left" ) - }; - - sortable._mouseStop(event); - - // Once drag has ended, the sortable should return to using - // its original helper, not the shared helper from draggable - sortable.options.helper = sortable.options._helper; - } else { - // Prevent this Sortable from removing the helper. - // However, don't set the draggable to remove the helper - // either as another connected Sortable may yet handle the removal. - sortable.cancelHelperRemoval = true; - - sortable._trigger( "deactivate", event, uiSortable ); - } - }); - }, - drag: function( event, ui, draggable ) { - $.each( draggable.sortables, function() { - var innermostIntersecting = false, - sortable = this; - - // Copy over variables that sortable's _intersectsWith uses - sortable.positionAbs = draggable.positionAbs; - sortable.helperProportions = draggable.helperProportions; - sortable.offset.click = draggable.offset.click; - - if ( sortable._intersectsWith( sortable.containerCache ) ) { - innermostIntersecting = true; - - $.each( draggable.sortables, function() { - // Copy over variables that sortable's _intersectsWith uses - this.positionAbs = draggable.positionAbs; - this.helperProportions = draggable.helperProportions; - this.offset.click = draggable.offset.click; - - if ( this !== sortable && - this._intersectsWith( this.containerCache ) && - $.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) { - innermostIntersecting = false; - } - - return innermostIntersecting; - }); - } - - if ( innermostIntersecting ) { - // If it intersects, we use a little isOver variable and set it once, - // so that the move-in stuff gets fired only once. - if ( !sortable.isOver ) { - sortable.isOver = 1; - - // Store draggable's parent in case we need to reappend to it later. - draggable._parent = ui.helper.parent(); - - sortable.currentItem = ui.helper - .appendTo( sortable.element ) - .data( "ui-sortable-item", true ); - - // Store helper option to later restore it - sortable.options._helper = sortable.options.helper; - - sortable.options.helper = function() { - return ui.helper[ 0 ]; - }; - - // Fire the start events of the sortable with our passed browser event, - // and our own helper (so it doesn't create a new one) - event.target = sortable.currentItem[ 0 ]; - sortable._mouseCapture( event, true ); - sortable._mouseStart( event, true, true ); - - // Because the browser event is way off the new appended portlet, - // modify necessary variables to reflect the changes - sortable.offset.click.top = draggable.offset.click.top; - sortable.offset.click.left = draggable.offset.click.left; - sortable.offset.parent.left -= draggable.offset.parent.left - - sortable.offset.parent.left; - sortable.offset.parent.top -= draggable.offset.parent.top - - sortable.offset.parent.top; - - draggable._trigger( "toSortable", event ); - - // Inform draggable that the helper is in a valid drop zone, - // used solely in the revert option to handle "valid/invalid". - draggable.dropped = sortable.element; - - // Need to refreshPositions of all sortables in the case that - // adding to one sortable changes the location of the other sortables (#9675) - $.each( draggable.sortables, function() { - this.refreshPositions(); - }); - - // hack so receive/update callbacks work (mostly) - draggable.currentItem = draggable.element; - sortable.fromOutside = draggable; - } - - if ( sortable.currentItem ) { - sortable._mouseDrag( event ); - // Copy the sortable's position because the draggable's can potentially reflect - // a relative position, while sortable is always absolute, which the dragged - // element has now become. (#8809) - ui.position = sortable.position; - } - } else { - // If it doesn't intersect with the sortable, and it intersected before, - // we fake the drag stop of the sortable, but make sure it doesn't remove - // the helper by using cancelHelperRemoval. - if ( sortable.isOver ) { - - sortable.isOver = 0; - sortable.cancelHelperRemoval = true; - - // Calling sortable's mouseStop would trigger a revert, - // so revert must be temporarily false until after mouseStop is called. - sortable.options._revert = sortable.options.revert; - sortable.options.revert = false; - - sortable._trigger( "out", event, sortable._uiHash( sortable ) ); - sortable._mouseStop( event, true ); - - // restore sortable behaviors that were modfied - // when the draggable entered the sortable area (#9481) - sortable.options.revert = sortable.options._revert; - sortable.options.helper = sortable.options._helper; - - if ( sortable.placeholder ) { - sortable.placeholder.remove(); - } - - // Restore and recalculate the draggable's offset considering the sortable - // may have modified them in unexpected ways. (#8809, #10669) - ui.helper.appendTo( draggable._parent ); - draggable._refreshOffsets( event ); - ui.position = draggable._generatePosition( event, true ); - - draggable._trigger( "fromSortable", event ); - - // Inform draggable that the helper is no longer in a valid drop zone - draggable.dropped = false; - - // Need to refreshPositions of all sortables just in case removing - // from one sortable changes the location of other sortables (#9675) - $.each( draggable.sortables, function() { - this.refreshPositions(); - }); - } - } - }); - } -}); - -$.ui.plugin.add("draggable", "cursor", { - start: function( event, ui, instance ) { - var t = $( "body" ), - o = instance.options; - - if (t.css("cursor")) { - o._cursor = t.css("cursor"); - } - t.css("cursor", o.cursor); - }, - stop: function( event, ui, instance ) { - var o = instance.options; - if (o._cursor) { - $("body").css("cursor", o._cursor); - } - } -}); - -$.ui.plugin.add("draggable", "opacity", { - start: function( event, ui, instance ) { - var t = $( ui.helper ), - o = instance.options; - if (t.css("opacity")) { - o._opacity = t.css("opacity"); - } - t.css("opacity", o.opacity); - }, - stop: function( event, ui, instance ) { - var o = instance.options; - if (o._opacity) { - $(ui.helper).css("opacity", o._opacity); - } - } -}); - -$.ui.plugin.add("draggable", "scroll", { - start: function( event, ui, i ) { - if ( !i.scrollParentNotHidden ) { - i.scrollParentNotHidden = i.helper.scrollParent( false ); - } - - if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) { - i.overflowOffset = i.scrollParentNotHidden.offset(); - } - }, - drag: function( event, ui, i ) { - - var o = i.options, - scrolled = false, - scrollParent = i.scrollParentNotHidden[ 0 ], - document = i.document[ 0 ]; - - if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) { - if ( !o.axis || o.axis !== "x" ) { - if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < o.scrollSensitivity ) { - scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed; - } else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) { - scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed; - } - } - - if ( !o.axis || o.axis !== "y" ) { - if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < o.scrollSensitivity ) { - scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed; - } else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) { - scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed; - } - } - - } else { - - if (!o.axis || o.axis !== "x") { - if (event.pageY - $(document).scrollTop() < o.scrollSensitivity) { - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - } else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) { - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); - } - } - - if (!o.axis || o.axis !== "y") { - if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) { - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - } else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) { - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); - } - } - - } - - if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(i, event); - } - - } -}); - -$.ui.plugin.add("draggable", "snap", { - start: function( event, ui, i ) { - - var o = i.options; - - i.snapElements = []; - - $(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() { - var $t = $(this), - $o = $t.offset(); - if (this !== i.element[0]) { - i.snapElements.push({ - item: this, - width: $t.outerWidth(), height: $t.outerHeight(), - top: $o.top, left: $o.left - }); - } - }); - - }, - drag: function( event, ui, inst ) { - - var ts, bs, ls, rs, l, r, t, b, i, first, - o = inst.options, - d = o.snapTolerance, - x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, - y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; - - for (i = inst.snapElements.length - 1; i >= 0; i--){ - - l = inst.snapElements[i].left - inst.margins.left; - r = l + inst.snapElements[i].width; - t = inst.snapElements[i].top - inst.margins.top; - b = t + inst.snapElements[i].height; - - if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) { - if (inst.snapElements[i].snapping) { - (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); - } - inst.snapElements[i].snapping = false; - continue; - } - - if (o.snapMode !== "inner") { - ts = Math.abs(t - y2) <= d; - bs = Math.abs(b - y1) <= d; - ls = Math.abs(l - x2) <= d; - rs = Math.abs(r - x1) <= d; - if (ts) { - ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top; - } - if (bs) { - ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top; - } - if (ls) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left; - } - if (rs) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left; - } - } - - first = (ts || bs || ls || rs); - - if (o.snapMode !== "outer") { - ts = Math.abs(t - y1) <= d; - bs = Math.abs(b - y2) <= d; - ls = Math.abs(l - x1) <= d; - rs = Math.abs(r - x2) <= d; - if (ts) { - ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top; - } - if (bs) { - ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top; - } - if (ls) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left; - } - if (rs) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left; - } - } - - if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) { - (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); - } - inst.snapElements[i].snapping = (ts || bs || ls || rs || first); - - } - - } -}); - -$.ui.plugin.add("draggable", "stack", { - start: function( event, ui, instance ) { - var min, - o = instance.options, - group = $.makeArray($(o.stack)).sort(function(a, b) { - return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0); - }); - - if (!group.length) { return; } - - min = parseInt($(group[0]).css("zIndex"), 10) || 0; - $(group).each(function(i) { - $(this).css("zIndex", min + i); - }); - this.css("zIndex", (min + group.length)); - } -}); - -$.ui.plugin.add("draggable", "zIndex", { - start: function( event, ui, instance ) { - var t = $( ui.helper ), - o = instance.options; - - if (t.css("zIndex")) { - o._zIndex = t.css("zIndex"); - } - t.css("zIndex", o.zIndex); - }, - stop: function( event, ui, instance ) { - var o = instance.options; - - if (o._zIndex) { - $(ui.helper).css("zIndex", o._zIndex); - } - } -}); - -var draggable = $.ui.draggable; - - -/*! - * jQuery UI Droppable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/droppable/ - */ - - -$.widget( "ui.droppable", { - version: "1.11.4", - widgetEventPrefix: "drop", - options: { - accept: "*", - activeClass: false, - addClasses: true, - greedy: false, - hoverClass: false, - scope: "default", - tolerance: "intersect", - - // callbacks - activate: null, - deactivate: null, - drop: null, - out: null, - over: null - }, - _create: function() { - - var proportions, - o = this.options, - accept = o.accept; - - this.isover = false; - this.isout = true; - - this.accept = $.isFunction( accept ) ? accept : function( d ) { - return d.is( accept ); - }; - - this.proportions = function( /* valueToWrite */ ) { - if ( arguments.length ) { - // Store the droppable's proportions - proportions = arguments[ 0 ]; - } else { - // Retrieve or derive the droppable's proportions - return proportions ? - proportions : - proportions = { - width: this.element[ 0 ].offsetWidth, - height: this.element[ 0 ].offsetHeight - }; - } - }; - - this._addToManager( o.scope ); - - o.addClasses && this.element.addClass( "ui-droppable" ); - - }, - - _addToManager: function( scope ) { - // Add the reference and positions to the manager - $.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || []; - $.ui.ddmanager.droppables[ scope ].push( this ); - }, - - _splice: function( drop ) { - var i = 0; - for ( ; i < drop.length; i++ ) { - if ( drop[ i ] === this ) { - drop.splice( i, 1 ); - } - } - }, - - _destroy: function() { - var drop = $.ui.ddmanager.droppables[ this.options.scope ]; - - this._splice( drop ); - - this.element.removeClass( "ui-droppable ui-droppable-disabled" ); - }, - - _setOption: function( key, value ) { - - if ( key === "accept" ) { - this.accept = $.isFunction( value ) ? value : function( d ) { - return d.is( value ); - }; - } else if ( key === "scope" ) { - var drop = $.ui.ddmanager.droppables[ this.options.scope ]; - - this._splice( drop ); - this._addToManager( value ); - } - - this._super( key, value ); - }, - - _activate: function( event ) { - var draggable = $.ui.ddmanager.current; - if ( this.options.activeClass ) { - this.element.addClass( this.options.activeClass ); - } - if ( draggable ){ - this._trigger( "activate", event, this.ui( draggable ) ); - } - }, - - _deactivate: function( event ) { - var draggable = $.ui.ddmanager.current; - if ( this.options.activeClass ) { - this.element.removeClass( this.options.activeClass ); - } - if ( draggable ){ - this._trigger( "deactivate", event, this.ui( draggable ) ); - } - }, - - _over: function( event ) { - - var draggable = $.ui.ddmanager.current; - - // Bail if draggable and droppable are same element - if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { - return; - } - - if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { - if ( this.options.hoverClass ) { - this.element.addClass( this.options.hoverClass ); - } - this._trigger( "over", event, this.ui( draggable ) ); - } - - }, - - _out: function( event ) { - - var draggable = $.ui.ddmanager.current; - - // Bail if draggable and droppable are same element - if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { - return; - } - - if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { - if ( this.options.hoverClass ) { - this.element.removeClass( this.options.hoverClass ); - } - this._trigger( "out", event, this.ui( draggable ) ); - } - - }, - - _drop: function( event, custom ) { - - var draggable = custom || $.ui.ddmanager.current, - childrenIntersection = false; - - // Bail if draggable and droppable are same element - if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { - return false; - } - - this.element.find( ":data(ui-droppable)" ).not( ".ui-draggable-dragging" ).each(function() { - var inst = $( this ).droppable( "instance" ); - if ( - inst.options.greedy && - !inst.options.disabled && - inst.options.scope === draggable.options.scope && - inst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) && - $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance, event ) - ) { childrenIntersection = true; return false; } - }); - if ( childrenIntersection ) { - return false; - } - - if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { - if ( this.options.activeClass ) { - this.element.removeClass( this.options.activeClass ); - } - if ( this.options.hoverClass ) { - this.element.removeClass( this.options.hoverClass ); - } - this._trigger( "drop", event, this.ui( draggable ) ); - return this.element; - } - - return false; - - }, - - ui: function( c ) { - return { - draggable: ( c.currentItem || c.element ), - helper: c.helper, - position: c.position, - offset: c.positionAbs - }; - } - -}); - -$.ui.intersect = (function() { - function isOverAxis( x, reference, size ) { - return ( x >= reference ) && ( x < ( reference + size ) ); - } - - return function( draggable, droppable, toleranceMode, event ) { - - if ( !droppable.offset ) { - return false; - } - - var x1 = ( draggable.positionAbs || draggable.position.absolute ).left + draggable.margins.left, - y1 = ( draggable.positionAbs || draggable.position.absolute ).top + draggable.margins.top, - x2 = x1 + draggable.helperProportions.width, - y2 = y1 + draggable.helperProportions.height, - l = droppable.offset.left, - t = droppable.offset.top, - r = l + droppable.proportions().width, - b = t + droppable.proportions().height; - - switch ( toleranceMode ) { - case "fit": - return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b ); - case "intersect": - return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half - x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half - t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half - y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half - case "pointer": - return isOverAxis( event.pageY, t, droppable.proportions().height ) && isOverAxis( event.pageX, l, droppable.proportions().width ); - case "touch": - return ( - ( y1 >= t && y1 <= b ) || // Top edge touching - ( y2 >= t && y2 <= b ) || // Bottom edge touching - ( y1 < t && y2 > b ) // Surrounded vertically - ) && ( - ( x1 >= l && x1 <= r ) || // Left edge touching - ( x2 >= l && x2 <= r ) || // Right edge touching - ( x1 < l && x2 > r ) // Surrounded horizontally - ); - default: - return false; - } - }; -})(); - -/* - This manager tracks offsets of draggables and droppables -*/ -$.ui.ddmanager = { - current: null, - droppables: { "default": [] }, - prepareOffsets: function( t, event ) { - - var i, j, - m = $.ui.ddmanager.droppables[ t.options.scope ] || [], - type = event ? event.type : null, // workaround for #2317 - list = ( t.currentItem || t.element ).find( ":data(ui-droppable)" ).addBack(); - - droppablesLoop: for ( i = 0; i < m.length; i++ ) { - - // No disabled and non-accepted - if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ], ( t.currentItem || t.element ) ) ) ) { - continue; - } - - // Filter out elements in the current dragged item - for ( j = 0; j < list.length; j++ ) { - if ( list[ j ] === m[ i ].element[ 0 ] ) { - m[ i ].proportions().height = 0; - continue droppablesLoop; - } - } - - m[ i ].visible = m[ i ].element.css( "display" ) !== "none"; - if ( !m[ i ].visible ) { - continue; - } - - // Activate the droppable if used directly from draggables - if ( type === "mousedown" ) { - m[ i ]._activate.call( m[ i ], event ); - } - - m[ i ].offset = m[ i ].element.offset(); - m[ i ].proportions({ width: m[ i ].element[ 0 ].offsetWidth, height: m[ i ].element[ 0 ].offsetHeight }); - - } - - }, - drop: function( draggable, event ) { - - var dropped = false; - // Create a copy of the droppables in case the list changes during the drop (#9116) - $.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() { - - if ( !this.options ) { - return; - } - if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance, event ) ) { - dropped = this._drop.call( this, event ) || dropped; - } - - if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { - this.isout = true; - this.isover = false; - this._deactivate.call( this, event ); - } - - }); - return dropped; - - }, - dragStart: function( draggable, event ) { - // Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003) - draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() { - if ( !draggable.options.refreshPositions ) { - $.ui.ddmanager.prepareOffsets( draggable, event ); - } - }); - }, - drag: function( draggable, event ) { - - // If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. - if ( draggable.options.refreshPositions ) { - $.ui.ddmanager.prepareOffsets( draggable, event ); - } - - // Run through all droppables and check their positions based on specific tolerance options - $.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() { - - if ( this.options.disabled || this.greedyChild || !this.visible ) { - return; - } - - var parentInstance, scope, parent, - intersects = $.ui.intersect( draggable, this, this.options.tolerance, event ), - c = !intersects && this.isover ? "isout" : ( intersects && !this.isover ? "isover" : null ); - if ( !c ) { - return; - } - - if ( this.options.greedy ) { - // find droppable parents with same scope - scope = this.options.scope; - parent = this.element.parents( ":data(ui-droppable)" ).filter(function() { - return $( this ).droppable( "instance" ).options.scope === scope; - }); - - if ( parent.length ) { - parentInstance = $( parent[ 0 ] ).droppable( "instance" ); - parentInstance.greedyChild = ( c === "isover" ); - } - } - - // we just moved into a greedy child - if ( parentInstance && c === "isover" ) { - parentInstance.isover = false; - parentInstance.isout = true; - parentInstance._out.call( parentInstance, event ); - } - - this[ c ] = true; - this[c === "isout" ? "isover" : "isout"] = false; - this[c === "isover" ? "_over" : "_out"].call( this, event ); - - // we just moved out of a greedy child - if ( parentInstance && c === "isout" ) { - parentInstance.isout = false; - parentInstance.isover = true; - parentInstance._over.call( parentInstance, event ); - } - }); - - }, - dragStop: function( draggable, event ) { - draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" ); - // Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003) - if ( !draggable.options.refreshPositions ) { - $.ui.ddmanager.prepareOffsets( draggable, event ); - } - } -}; - -var droppable = $.ui.droppable; - - -/*! - * jQuery UI Resizable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/resizable/ - */ - - -$.widget("ui.resizable", $.ui.mouse, { - version: "1.11.4", - widgetEventPrefix: "resize", - options: { - alsoResize: false, - animate: false, - animateDuration: "slow", - animateEasing: "swing", - aspectRatio: false, - autoHide: false, - containment: false, - ghost: false, - grid: false, - handles: "e,s,se", - helper: false, - maxHeight: null, - maxWidth: null, - minHeight: 10, - minWidth: 10, - // See #7960 - zIndex: 90, - - // callbacks - resize: null, - start: null, - stop: null - }, - - _num: function( value ) { - return parseInt( value, 10 ) || 0; - }, - - _isNumber: function( value ) { - return !isNaN( parseInt( value, 10 ) ); - }, - - _hasScroll: function( el, a ) { - - if ( $( el ).css( "overflow" ) === "hidden") { - return false; - } - - var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", - has = false; - - if ( el[ scroll ] > 0 ) { - return true; - } - - // TODO: determine which cases actually cause this to happen - // if the element doesn't have the scroll set, see if it's possible to - // set the scroll - el[ scroll ] = 1; - has = ( el[ scroll ] > 0 ); - el[ scroll ] = 0; - return has; - }, - - _create: function() { - - var n, i, handle, axis, hname, - that = this, - o = this.options; - this.element.addClass("ui-resizable"); - - $.extend(this, { - _aspectRatio: !!(o.aspectRatio), - aspectRatio: o.aspectRatio, - originalElement: this.element, - _proportionallyResizeElements: [], - _helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null - }); - - // Wrap the element if it cannot hold child nodes - if (this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)) { - - this.element.wrap( - $("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({ - position: this.element.css("position"), - width: this.element.outerWidth(), - height: this.element.outerHeight(), - top: this.element.css("top"), - left: this.element.css("left") - }) - ); - - this.element = this.element.parent().data( - "ui-resizable", this.element.resizable( "instance" ) - ); - - this.elementIsWrapper = true; - - this.element.css({ - marginLeft: this.originalElement.css("marginLeft"), - marginTop: this.originalElement.css("marginTop"), - marginRight: this.originalElement.css("marginRight"), - marginBottom: this.originalElement.css("marginBottom") - }); - this.originalElement.css({ - marginLeft: 0, - marginTop: 0, - marginRight: 0, - marginBottom: 0 - }); - // support: Safari - // Prevent Safari textarea resize - this.originalResizeStyle = this.originalElement.css("resize"); - this.originalElement.css("resize", "none"); - - this._proportionallyResizeElements.push( this.originalElement.css({ - position: "static", - zoom: 1, - display: "block" - }) ); - - // support: IE9 - // avoid IE jump (hard set the margin) - this.originalElement.css({ margin: this.originalElement.css("margin") }); - - this._proportionallyResize(); - } - - this.handles = o.handles || - ( !$(".ui-resizable-handle", this.element).length ? - "e,s,se" : { - n: ".ui-resizable-n", - e: ".ui-resizable-e", - s: ".ui-resizable-s", - w: ".ui-resizable-w", - se: ".ui-resizable-se", - sw: ".ui-resizable-sw", - ne: ".ui-resizable-ne", - nw: ".ui-resizable-nw" - } ); - - this._handles = $(); - if ( this.handles.constructor === String ) { - - if ( this.handles === "all") { - this.handles = "n,e,s,w,se,sw,ne,nw"; - } - - n = this.handles.split(","); - this.handles = {}; - - for (i = 0; i < n.length; i++) { - - handle = $.trim(n[i]); - hname = "ui-resizable-" + handle; - axis = $("<div class='ui-resizable-handle " + hname + "'></div>"); - - axis.css({ zIndex: o.zIndex }); - - // TODO : What's going on here? - if ("se" === handle) { - axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); - } - - this.handles[handle] = ".ui-resizable-" + handle; - this.element.append(axis); - } - - } - - this._renderAxis = function(target) { - - var i, axis, padPos, padWrapper; - - target = target || this.element; - - for (i in this.handles) { - - if (this.handles[i].constructor === String) { - this.handles[i] = this.element.children( this.handles[ i ] ).first().show(); - } else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) { - this.handles[ i ] = $( this.handles[ i ] ); - this._on( this.handles[ i ], { "mousedown": that._mouseDown }); - } - - if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) { - - axis = $(this.handles[i], this.element); - - padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth(); - - padPos = [ "padding", - /ne|nw|n/.test(i) ? "Top" : - /se|sw|s/.test(i) ? "Bottom" : - /^e$/.test(i) ? "Right" : "Left" ].join(""); - - target.css(padPos, padWrapper); - - this._proportionallyResize(); - } - - this._handles = this._handles.add( this.handles[ i ] ); - } - }; - - // TODO: make renderAxis a prototype function - this._renderAxis(this.element); - - this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) ); - this._handles.disableSelection(); - - this._handles.mouseover(function() { - if (!that.resizing) { - if (this.className) { - axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); - } - that.axis = axis && axis[1] ? axis[1] : "se"; - } - }); - - if (o.autoHide) { - this._handles.hide(); - $(this.element) - .addClass("ui-resizable-autohide") - .mouseenter(function() { - if (o.disabled) { - return; - } - $(this).removeClass("ui-resizable-autohide"); - that._handles.show(); - }) - .mouseleave(function() { - if (o.disabled) { - return; - } - if (!that.resizing) { - $(this).addClass("ui-resizable-autohide"); - that._handles.hide(); - } - }); - } - - this._mouseInit(); - }, - - _destroy: function() { - - this._mouseDestroy(); - - var wrapper, - _destroy = function(exp) { - $(exp) - .removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") - .removeData("resizable") - .removeData("ui-resizable") - .unbind(".resizable") - .find(".ui-resizable-handle") - .remove(); - }; - - // TODO: Unwrap at same DOM position - if (this.elementIsWrapper) { - _destroy(this.element); - wrapper = this.element; - this.originalElement.css({ - position: wrapper.css("position"), - width: wrapper.outerWidth(), - height: wrapper.outerHeight(), - top: wrapper.css("top"), - left: wrapper.css("left") - }).insertAfter( wrapper ); - wrapper.remove(); - } - - this.originalElement.css("resize", this.originalResizeStyle); - _destroy(this.originalElement); - - return this; - }, - - _mouseCapture: function(event) { - var i, handle, - capture = false; - - for (i in this.handles) { - handle = $(this.handles[i])[0]; - if (handle === event.target || $.contains(handle, event.target)) { - capture = true; - } - } - - return !this.options.disabled && capture; - }, - - _mouseStart: function(event) { - - var curleft, curtop, cursor, - o = this.options, - el = this.element; - - this.resizing = true; - - this._renderProxy(); - - curleft = this._num(this.helper.css("left")); - curtop = this._num(this.helper.css("top")); - - if (o.containment) { - curleft += $(o.containment).scrollLeft() || 0; - curtop += $(o.containment).scrollTop() || 0; - } - - this.offset = this.helper.offset(); - this.position = { left: curleft, top: curtop }; - - this.size = this._helper ? { - width: this.helper.width(), - height: this.helper.height() - } : { - width: el.width(), - height: el.height() - }; - - this.originalSize = this._helper ? { - width: el.outerWidth(), - height: el.outerHeight() - } : { - width: el.width(), - height: el.height() - }; - - this.sizeDiff = { - width: el.outerWidth() - el.width(), - height: el.outerHeight() - el.height() - }; - - this.originalPosition = { left: curleft, top: curtop }; - this.originalMousePosition = { left: event.pageX, top: event.pageY }; - - this.aspectRatio = (typeof o.aspectRatio === "number") ? - o.aspectRatio : - ((this.originalSize.width / this.originalSize.height) || 1); - - cursor = $(".ui-resizable-" + this.axis).css("cursor"); - $("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor); - - el.addClass("ui-resizable-resizing"); - this._propagate("start", event); - return true; - }, - - _mouseDrag: function(event) { - - var data, props, - smp = this.originalMousePosition, - a = this.axis, - dx = (event.pageX - smp.left) || 0, - dy = (event.pageY - smp.top) || 0, - trigger = this._change[a]; - - this._updatePrevProperties(); - - if (!trigger) { - return false; - } - - data = trigger.apply(this, [ event, dx, dy ]); - - this._updateVirtualBoundaries(event.shiftKey); - if (this._aspectRatio || event.shiftKey) { - data = this._updateRatio(data, event); - } - - data = this._respectSize(data, event); - - this._updateCache(data); - - this._propagate("resize", event); - - props = this._applyChanges(); - - if ( !this._helper && this._proportionallyResizeElements.length ) { - this._proportionallyResize(); - } - - if ( !$.isEmptyObject( props ) ) { - this._updatePrevProperties(); - this._trigger( "resize", event, this.ui() ); - this._applyChanges(); - } - - return false; - }, - - _mouseStop: function(event) { - - this.resizing = false; - var pr, ista, soffseth, soffsetw, s, left, top, - o = this.options, that = this; - - if (this._helper) { - - pr = this._proportionallyResizeElements; - ista = pr.length && (/textarea/i).test(pr[0].nodeName); - soffseth = ista && this._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height; - soffsetw = ista ? 0 : that.sizeDiff.width; - - s = { - width: (that.helper.width() - soffsetw), - height: (that.helper.height() - soffseth) - }; - left = (parseInt(that.element.css("left"), 10) + - (that.position.left - that.originalPosition.left)) || null; - top = (parseInt(that.element.css("top"), 10) + - (that.position.top - that.originalPosition.top)) || null; - - if (!o.animate) { - this.element.css($.extend(s, { top: top, left: left })); - } - - that.helper.height(that.size.height); - that.helper.width(that.size.width); - - if (this._helper && !o.animate) { - this._proportionallyResize(); - } - } - - $("body").css("cursor", "auto"); - - this.element.removeClass("ui-resizable-resizing"); - - this._propagate("stop", event); - - if (this._helper) { - this.helper.remove(); - } - - return false; - - }, - - _updatePrevProperties: function() { - this.prevPosition = { - top: this.position.top, - left: this.position.left - }; - this.prevSize = { - width: this.size.width, - height: this.size.height - }; - }, - - _applyChanges: function() { - var props = {}; - - if ( this.position.top !== this.prevPosition.top ) { - props.top = this.position.top + "px"; - } - if ( this.position.left !== this.prevPosition.left ) { - props.left = this.position.left + "px"; - } - if ( this.size.width !== this.prevSize.width ) { - props.width = this.size.width + "px"; - } - if ( this.size.height !== this.prevSize.height ) { - props.height = this.size.height + "px"; - } - - this.helper.css( props ); - - return props; - }, - - _updateVirtualBoundaries: function(forceAspectRatio) { - var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b, - o = this.options; - - b = { - minWidth: this._isNumber(o.minWidth) ? o.minWidth : 0, - maxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : Infinity, - minHeight: this._isNumber(o.minHeight) ? o.minHeight : 0, - maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : Infinity - }; - - if (this._aspectRatio || forceAspectRatio) { - pMinWidth = b.minHeight * this.aspectRatio; - pMinHeight = b.minWidth / this.aspectRatio; - pMaxWidth = b.maxHeight * this.aspectRatio; - pMaxHeight = b.maxWidth / this.aspectRatio; - - if (pMinWidth > b.minWidth) { - b.minWidth = pMinWidth; - } - if (pMinHeight > b.minHeight) { - b.minHeight = pMinHeight; - } - if (pMaxWidth < b.maxWidth) { - b.maxWidth = pMaxWidth; - } - if (pMaxHeight < b.maxHeight) { - b.maxHeight = pMaxHeight; - } - } - this._vBoundaries = b; - }, - - _updateCache: function(data) { - this.offset = this.helper.offset(); - if (this._isNumber(data.left)) { - this.position.left = data.left; - } - if (this._isNumber(data.top)) { - this.position.top = data.top; - } - if (this._isNumber(data.height)) { - this.size.height = data.height; - } - if (this._isNumber(data.width)) { - this.size.width = data.width; - } - }, - - _updateRatio: function( data ) { - - var cpos = this.position, - csize = this.size, - a = this.axis; - - if (this._isNumber(data.height)) { - data.width = (data.height * this.aspectRatio); - } else if (this._isNumber(data.width)) { - data.height = (data.width / this.aspectRatio); - } - - if (a === "sw") { - data.left = cpos.left + (csize.width - data.width); - data.top = null; - } - if (a === "nw") { - data.top = cpos.top + (csize.height - data.height); - data.left = cpos.left + (csize.width - data.width); - } - - return data; - }, - - _respectSize: function( data ) { - - var o = this._vBoundaries, - a = this.axis, - ismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), - ismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), - isminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width), - isminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height), - dw = this.originalPosition.left + this.originalSize.width, - dh = this.position.top + this.size.height, - cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); - if (isminw) { - data.width = o.minWidth; - } - if (isminh) { - data.height = o.minHeight; - } - if (ismaxw) { - data.width = o.maxWidth; - } - if (ismaxh) { - data.height = o.maxHeight; - } - - if (isminw && cw) { - data.left = dw - o.minWidth; - } - if (ismaxw && cw) { - data.left = dw - o.maxWidth; - } - if (isminh && ch) { - data.top = dh - o.minHeight; - } - if (ismaxh && ch) { - data.top = dh - o.maxHeight; - } - - // Fixing jump error on top/left - bug #2330 - if (!data.width && !data.height && !data.left && data.top) { - data.top = null; - } else if (!data.width && !data.height && !data.top && data.left) { - data.left = null; - } - - return data; - }, - - _getPaddingPlusBorderDimensions: function( element ) { - var i = 0, - widths = [], - borders = [ - element.css( "borderTopWidth" ), - element.css( "borderRightWidth" ), - element.css( "borderBottomWidth" ), - element.css( "borderLeftWidth" ) - ], - paddings = [ - element.css( "paddingTop" ), - element.css( "paddingRight" ), - element.css( "paddingBottom" ), - element.css( "paddingLeft" ) - ]; - - for ( ; i < 4; i++ ) { - widths[ i ] = ( parseInt( borders[ i ], 10 ) || 0 ); - widths[ i ] += ( parseInt( paddings[ i ], 10 ) || 0 ); - } - - return { - height: widths[ 0 ] + widths[ 2 ], - width: widths[ 1 ] + widths[ 3 ] - }; - }, - - _proportionallyResize: function() { - - if (!this._proportionallyResizeElements.length) { - return; - } - - var prel, - i = 0, - element = this.helper || this.element; - - for ( ; i < this._proportionallyResizeElements.length; i++) { - - prel = this._proportionallyResizeElements[i]; - - // TODO: Seems like a bug to cache this.outerDimensions - // considering that we are in a loop. - if (!this.outerDimensions) { - this.outerDimensions = this._getPaddingPlusBorderDimensions( prel ); - } - - prel.css({ - height: (element.height() - this.outerDimensions.height) || 0, - width: (element.width() - this.outerDimensions.width) || 0 - }); - - } - - }, - - _renderProxy: function() { - - var el = this.element, o = this.options; - this.elementOffset = el.offset(); - - if (this._helper) { - - this.helper = this.helper || $("<div style='overflow:hidden;'></div>"); - - this.helper.addClass(this._helper).css({ - width: this.element.outerWidth() - 1, - height: this.element.outerHeight() - 1, - position: "absolute", - left: this.elementOffset.left + "px", - top: this.elementOffset.top + "px", - zIndex: ++o.zIndex //TODO: Don't modify option - }); - - this.helper - .appendTo("body") - .disableSelection(); - - } else { - this.helper = this.element; - } - - }, - - _change: { - e: function(event, dx) { - return { width: this.originalSize.width + dx }; - }, - w: function(event, dx) { - var cs = this.originalSize, sp = this.originalPosition; - return { left: sp.left + dx, width: cs.width - dx }; - }, - n: function(event, dx, dy) { - var cs = this.originalSize, sp = this.originalPosition; - return { top: sp.top + dy, height: cs.height - dy }; - }, - s: function(event, dx, dy) { - return { height: this.originalSize.height + dy }; - }, - se: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), - this._change.e.apply(this, [ event, dx, dy ])); - }, - sw: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), - this._change.w.apply(this, [ event, dx, dy ])); - }, - ne: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), - this._change.e.apply(this, [ event, dx, dy ])); - }, - nw: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), - this._change.w.apply(this, [ event, dx, dy ])); - } - }, - - _propagate: function(n, event) { - $.ui.plugin.call(this, n, [ event, this.ui() ]); - (n !== "resize" && this._trigger(n, event, this.ui())); - }, - - plugins: {}, - - ui: function() { - return { - originalElement: this.originalElement, - element: this.element, - helper: this.helper, - position: this.position, - size: this.size, - originalSize: this.originalSize, - originalPosition: this.originalPosition - }; - } - -}); - -/* - * Resizable Extensions - */ - -$.ui.plugin.add("resizable", "animate", { - - stop: function( event ) { - var that = $(this).resizable( "instance" ), - o = that.options, - pr = that._proportionallyResizeElements, - ista = pr.length && (/textarea/i).test(pr[0].nodeName), - soffseth = ista && that._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height, - soffsetw = ista ? 0 : that.sizeDiff.width, - style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, - left = (parseInt(that.element.css("left"), 10) + - (that.position.left - that.originalPosition.left)) || null, - top = (parseInt(that.element.css("top"), 10) + - (that.position.top - that.originalPosition.top)) || null; - - that.element.animate( - $.extend(style, top && left ? { top: top, left: left } : {}), { - duration: o.animateDuration, - easing: o.animateEasing, - step: function() { - - var data = { - width: parseInt(that.element.css("width"), 10), - height: parseInt(that.element.css("height"), 10), - top: parseInt(that.element.css("top"), 10), - left: parseInt(that.element.css("left"), 10) - }; - - if (pr && pr.length) { - $(pr[0]).css({ width: data.width, height: data.height }); - } - - // propagating resize, and updating values for each animation step - that._updateCache(data); - that._propagate("resize", event); - - } - } - ); - } - -}); - -$.ui.plugin.add( "resizable", "containment", { - - start: function() { - var element, p, co, ch, cw, width, height, - that = $( this ).resizable( "instance" ), - o = that.options, - el = that.element, - oc = o.containment, - ce = ( oc instanceof $ ) ? oc.get( 0 ) : ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc; - - if ( !ce ) { - return; - } - - that.containerElement = $( ce ); - - if ( /document/.test( oc ) || oc === document ) { - that.containerOffset = { - left: 0, - top: 0 - }; - that.containerPosition = { - left: 0, - top: 0 - }; - - that.parentData = { - element: $( document ), - left: 0, - top: 0, - width: $( document ).width(), - height: $( document ).height() || document.body.parentNode.scrollHeight - }; - } else { - element = $( ce ); - p = []; - $([ "Top", "Right", "Left", "Bottom" ]).each(function( i, name ) { - p[ i ] = that._num( element.css( "padding" + name ) ); - }); - - that.containerOffset = element.offset(); - that.containerPosition = element.position(); - that.containerSize = { - height: ( element.innerHeight() - p[ 3 ] ), - width: ( element.innerWidth() - p[ 1 ] ) - }; - - co = that.containerOffset; - ch = that.containerSize.height; - cw = that.containerSize.width; - width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw ); - height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ; - - that.parentData = { - element: ce, - left: co.left, - top: co.top, - width: width, - height: height - }; - } - }, - - resize: function( event ) { - var woset, hoset, isParent, isOffsetRelative, - that = $( this ).resizable( "instance" ), - o = that.options, - co = that.containerOffset, - cp = that.position, - pRatio = that._aspectRatio || event.shiftKey, - cop = { - top: 0, - left: 0 - }, - ce = that.containerElement, - continueResize = true; - - if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) { - cop = co; - } - - if ( cp.left < ( that._helper ? co.left : 0 ) ) { - that.size.width = that.size.width + - ( that._helper ? - ( that.position.left - co.left ) : - ( that.position.left - cop.left ) ); - - if ( pRatio ) { - that.size.height = that.size.width / that.aspectRatio; - continueResize = false; - } - that.position.left = o.helper ? co.left : 0; - } - - if ( cp.top < ( that._helper ? co.top : 0 ) ) { - that.size.height = that.size.height + - ( that._helper ? - ( that.position.top - co.top ) : - that.position.top ); - - if ( pRatio ) { - that.size.width = that.size.height * that.aspectRatio; - continueResize = false; - } - that.position.top = that._helper ? co.top : 0; - } - - isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 ); - isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) ); - - if ( isParent && isOffsetRelative ) { - that.offset.left = that.parentData.left + that.position.left; - that.offset.top = that.parentData.top + that.position.top; - } else { - that.offset.left = that.element.offset().left; - that.offset.top = that.element.offset().top; - } - - woset = Math.abs( that.sizeDiff.width + - (that._helper ? - that.offset.left - cop.left : - (that.offset.left - co.left)) ); - - hoset = Math.abs( that.sizeDiff.height + - (that._helper ? - that.offset.top - cop.top : - (that.offset.top - co.top)) ); - - if ( woset + that.size.width >= that.parentData.width ) { - that.size.width = that.parentData.width - woset; - if ( pRatio ) { - that.size.height = that.size.width / that.aspectRatio; - continueResize = false; - } - } - - if ( hoset + that.size.height >= that.parentData.height ) { - that.size.height = that.parentData.height - hoset; - if ( pRatio ) { - that.size.width = that.size.height * that.aspectRatio; - continueResize = false; - } - } - - if ( !continueResize ) { - that.position.left = that.prevPosition.left; - that.position.top = that.prevPosition.top; - that.size.width = that.prevSize.width; - that.size.height = that.prevSize.height; - } - }, - - stop: function() { - var that = $( this ).resizable( "instance" ), - o = that.options, - co = that.containerOffset, - cop = that.containerPosition, - ce = that.containerElement, - helper = $( that.helper ), - ho = helper.offset(), - w = helper.outerWidth() - that.sizeDiff.width, - h = helper.outerHeight() - that.sizeDiff.height; - - if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) { - $( this ).css({ - left: ho.left - cop.left - co.left, - width: w, - height: h - }); - } - - if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) { - $( this ).css({ - left: ho.left - cop.left - co.left, - width: w, - height: h - }); - } - } -}); - -$.ui.plugin.add("resizable", "alsoResize", { - - start: function() { - var that = $(this).resizable( "instance" ), - o = that.options; - - $(o.alsoResize).each(function() { - var el = $(this); - el.data("ui-resizable-alsoresize", { - width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), - left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) - }); - }); - }, - - resize: function(event, ui) { - var that = $(this).resizable( "instance" ), - o = that.options, - os = that.originalSize, - op = that.originalPosition, - delta = { - height: (that.size.height - os.height) || 0, - width: (that.size.width - os.width) || 0, - top: (that.position.top - op.top) || 0, - left: (that.position.left - op.left) || 0 - }; - - $(o.alsoResize).each(function() { - var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {}, - css = el.parents(ui.originalElement[0]).length ? - [ "width", "height" ] : - [ "width", "height", "top", "left" ]; - - $.each(css, function(i, prop) { - var sum = (start[prop] || 0) + (delta[prop] || 0); - if (sum && sum >= 0) { - style[prop] = sum || null; - } - }); - - el.css(style); - }); - }, - - stop: function() { - $(this).removeData("resizable-alsoresize"); - } -}); - -$.ui.plugin.add("resizable", "ghost", { - - start: function() { - - var that = $(this).resizable( "instance" ), o = that.options, cs = that.size; - - that.ghost = that.originalElement.clone(); - that.ghost - .css({ - opacity: 0.25, - display: "block", - position: "relative", - height: cs.height, - width: cs.width, - margin: 0, - left: 0, - top: 0 - }) - .addClass("ui-resizable-ghost") - .addClass(typeof o.ghost === "string" ? o.ghost : ""); - - that.ghost.appendTo(that.helper); - - }, - - resize: function() { - var that = $(this).resizable( "instance" ); - if (that.ghost) { - that.ghost.css({ - position: "relative", - height: that.size.height, - width: that.size.width - }); - } - }, - - stop: function() { - var that = $(this).resizable( "instance" ); - if (that.ghost && that.helper) { - that.helper.get(0).removeChild(that.ghost.get(0)); - } - } - -}); - -$.ui.plugin.add("resizable", "grid", { - - resize: function() { - var outerDimensions, - that = $(this).resizable( "instance" ), - o = that.options, - cs = that.size, - os = that.originalSize, - op = that.originalPosition, - a = that.axis, - grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid, - gridX = (grid[0] || 1), - gridY = (grid[1] || 1), - ox = Math.round((cs.width - os.width) / gridX) * gridX, - oy = Math.round((cs.height - os.height) / gridY) * gridY, - newWidth = os.width + ox, - newHeight = os.height + oy, - isMaxWidth = o.maxWidth && (o.maxWidth < newWidth), - isMaxHeight = o.maxHeight && (o.maxHeight < newHeight), - isMinWidth = o.minWidth && (o.minWidth > newWidth), - isMinHeight = o.minHeight && (o.minHeight > newHeight); - - o.grid = grid; - - if (isMinWidth) { - newWidth += gridX; - } - if (isMinHeight) { - newHeight += gridY; - } - if (isMaxWidth) { - newWidth -= gridX; - } - if (isMaxHeight) { - newHeight -= gridY; - } - - if (/^(se|s|e)$/.test(a)) { - that.size.width = newWidth; - that.size.height = newHeight; - } else if (/^(ne)$/.test(a)) { - that.size.width = newWidth; - that.size.height = newHeight; - that.position.top = op.top - oy; - } else if (/^(sw)$/.test(a)) { - that.size.width = newWidth; - that.size.height = newHeight; - that.position.left = op.left - ox; - } else { - if ( newHeight - gridY <= 0 || newWidth - gridX <= 0) { - outerDimensions = that._getPaddingPlusBorderDimensions( this ); - } - - if ( newHeight - gridY > 0 ) { - that.size.height = newHeight; - that.position.top = op.top - oy; - } else { - newHeight = gridY - outerDimensions.height; - that.size.height = newHeight; - that.position.top = op.top + os.height - newHeight; - } - if ( newWidth - gridX > 0 ) { - that.size.width = newWidth; - that.position.left = op.left - ox; - } else { - newWidth = gridX - outerDimensions.width; - that.size.width = newWidth; - that.position.left = op.left + os.width - newWidth; - } - } - } - -}); - -var resizable = $.ui.resizable; - - -/*! - * jQuery UI Selectable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/selectable/ - */ - - -var selectable = $.widget("ui.selectable", $.ui.mouse, { - version: "1.11.4", - options: { - appendTo: "body", - autoRefresh: true, - distance: 0, - filter: "*", - tolerance: "touch", - - // callbacks - selected: null, - selecting: null, - start: null, - stop: null, - unselected: null, - unselecting: null - }, - _create: function() { - var selectees, - that = this; - - this.element.addClass("ui-selectable"); - - this.dragged = false; - - // cache selectee children based on filter - this.refresh = function() { - selectees = $(that.options.filter, that.element[0]); - selectees.addClass("ui-selectee"); - selectees.each(function() { - var $this = $(this), - pos = $this.offset(); - $.data(this, "selectable-item", { - element: this, - $element: $this, - left: pos.left, - top: pos.top, - right: pos.left + $this.outerWidth(), - bottom: pos.top + $this.outerHeight(), - startselected: false, - selected: $this.hasClass("ui-selected"), - selecting: $this.hasClass("ui-selecting"), - unselecting: $this.hasClass("ui-unselecting") - }); - }); - }; - this.refresh(); - - this.selectees = selectees.addClass("ui-selectee"); - - this._mouseInit(); - - this.helper = $("<div class='ui-selectable-helper'></div>"); - }, - - _destroy: function() { - this.selectees - .removeClass("ui-selectee") - .removeData("selectable-item"); - this.element - .removeClass("ui-selectable ui-selectable-disabled"); - this._mouseDestroy(); - }, - - _mouseStart: function(event) { - var that = this, - options = this.options; - - this.opos = [ event.pageX, event.pageY ]; - - if (this.options.disabled) { - return; - } - - this.selectees = $(options.filter, this.element[0]); - - this._trigger("start", event); - - $(options.appendTo).append(this.helper); - // position helper (lasso) - this.helper.css({ - "left": event.pageX, - "top": event.pageY, - "width": 0, - "height": 0 - }); - - if (options.autoRefresh) { - this.refresh(); - } - - this.selectees.filter(".ui-selected").each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.startselected = true; - if (!event.metaKey && !event.ctrlKey) { - selectee.$element.removeClass("ui-selected"); - selectee.selected = false; - selectee.$element.addClass("ui-unselecting"); - selectee.unselecting = true; - // selectable UNSELECTING callback - that._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - }); - - $(event.target).parents().addBack().each(function() { - var doSelect, - selectee = $.data(this, "selectable-item"); - if (selectee) { - doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected"); - selectee.$element - .removeClass(doSelect ? "ui-unselecting" : "ui-selected") - .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); - selectee.unselecting = !doSelect; - selectee.selecting = doSelect; - selectee.selected = doSelect; - // selectable (UN)SELECTING callback - if (doSelect) { - that._trigger("selecting", event, { - selecting: selectee.element - }); - } else { - that._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - return false; - } - }); - - }, - - _mouseDrag: function(event) { - - this.dragged = true; - - if (this.options.disabled) { - return; - } - - var tmp, - that = this, - options = this.options, - x1 = this.opos[0], - y1 = this.opos[1], - x2 = event.pageX, - y2 = event.pageY; - - if (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; } - if (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; } - this.helper.css({ left: x1, top: y1, width: x2 - x1, height: y2 - y1 }); - - this.selectees.each(function() { - var selectee = $.data(this, "selectable-item"), - hit = false; - - //prevent helper from being selected if appendTo: selectable - if (!selectee || selectee.element === that.element[0]) { - return; - } - - if (options.tolerance === "touch") { - hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); - } else if (options.tolerance === "fit") { - hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); - } - - if (hit) { - // SELECT - if (selectee.selected) { - selectee.$element.removeClass("ui-selected"); - selectee.selected = false; - } - if (selectee.unselecting) { - selectee.$element.removeClass("ui-unselecting"); - selectee.unselecting = false; - } - if (!selectee.selecting) { - selectee.$element.addClass("ui-selecting"); - selectee.selecting = true; - // selectable SELECTING callback - that._trigger("selecting", event, { - selecting: selectee.element - }); - } - } else { - // UNSELECT - if (selectee.selecting) { - if ((event.metaKey || event.ctrlKey) && selectee.startselected) { - selectee.$element.removeClass("ui-selecting"); - selectee.selecting = false; - selectee.$element.addClass("ui-selected"); - selectee.selected = true; - } else { - selectee.$element.removeClass("ui-selecting"); - selectee.selecting = false; - if (selectee.startselected) { - selectee.$element.addClass("ui-unselecting"); - selectee.unselecting = true; - } - // selectable UNSELECTING callback - that._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - } - if (selectee.selected) { - if (!event.metaKey && !event.ctrlKey && !selectee.startselected) { - selectee.$element.removeClass("ui-selected"); - selectee.selected = false; - - selectee.$element.addClass("ui-unselecting"); - selectee.unselecting = true; - // selectable UNSELECTING callback - that._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - } - } - }); - - return false; - }, - - _mouseStop: function(event) { - var that = this; - - this.dragged = false; - - $(".ui-unselecting", this.element[0]).each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.$element.removeClass("ui-unselecting"); - selectee.unselecting = false; - selectee.startselected = false; - that._trigger("unselected", event, { - unselected: selectee.element - }); - }); - $(".ui-selecting", this.element[0]).each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.$element.removeClass("ui-selecting").addClass("ui-selected"); - selectee.selecting = false; - selectee.selected = true; - selectee.startselected = true; - that._trigger("selected", event, { - selected: selectee.element - }); - }); - this._trigger("stop", event); - - this.helper.remove(); - - return false; - } - -}); - - -/*! - * jQuery UI Sortable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/sortable/ - */ - - -var sortable = $.widget("ui.sortable", $.ui.mouse, { - version: "1.11.4", - widgetEventPrefix: "sort", - ready: false, - options: { - appendTo: "parent", - axis: false, - connectWith: false, - containment: false, - cursor: "auto", - cursorAt: false, - dropOnEmpty: true, - forcePlaceholderSize: false, - forceHelperSize: false, - grid: false, - handle: false, - helper: "original", - items: "> *", - opacity: false, - placeholder: false, - revert: false, - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - scope: "default", - tolerance: "intersect", - zIndex: 1000, - - // callbacks - activate: null, - beforeStop: null, - change: null, - deactivate: null, - out: null, - over: null, - receive: null, - remove: null, - sort: null, - start: null, - stop: null, - update: null - }, - - _isOverAxis: function( x, reference, size ) { - return ( x >= reference ) && ( x < ( reference + size ) ); - }, - - _isFloating: function( item ) { - return (/left|right/).test(item.css("float")) || (/inline|table-cell/).test(item.css("display")); - }, - - _create: function() { - this.containerCache = {}; - this.element.addClass("ui-sortable"); - - //Get the items - this.refresh(); - - //Let's determine the parent's offset - this.offset = this.element.offset(); - - //Initialize mouse events for interaction - this._mouseInit(); - - this._setHandleClassName(); - - //We're ready to go - this.ready = true; - - }, - - _setOption: function( key, value ) { - this._super( key, value ); - - if ( key === "handle" ) { - this._setHandleClassName(); - } - }, - - _setHandleClassName: function() { - this.element.find( ".ui-sortable-handle" ).removeClass( "ui-sortable-handle" ); - $.each( this.items, function() { - ( this.instance.options.handle ? - this.item.find( this.instance.options.handle ) : this.item ) - .addClass( "ui-sortable-handle" ); - }); - }, - - _destroy: function() { - this.element - .removeClass( "ui-sortable ui-sortable-disabled" ) - .find( ".ui-sortable-handle" ) - .removeClass( "ui-sortable-handle" ); - this._mouseDestroy(); - - for ( var i = this.items.length - 1; i >= 0; i-- ) { - this.items[i].item.removeData(this.widgetName + "-item"); - } - - return this; - }, - - _mouseCapture: function(event, overrideHandle) { - var currentItem = null, - validHandle = false, - that = this; - - if (this.reverting) { - return false; - } - - if(this.options.disabled || this.options.type === "static") { - return false; - } - - //We have to refresh the items data once first - this._refreshItems(event); - - //Find out if the clicked node (or one of its parents) is a actual item in this.items - $(event.target).parents().each(function() { - if($.data(this, that.widgetName + "-item") === that) { - currentItem = $(this); - return false; - } - }); - if($.data(event.target, that.widgetName + "-item") === that) { - currentItem = $(event.target); - } - - if(!currentItem) { - return false; - } - if(this.options.handle && !overrideHandle) { - $(this.options.handle, currentItem).find("*").addBack().each(function() { - if(this === event.target) { - validHandle = true; - } - }); - if(!validHandle) { - return false; - } - } - - this.currentItem = currentItem; - this._removeCurrentsFromItems(); - return true; - - }, - - _mouseStart: function(event, overrideHandle, noActivation) { - - var i, body, - o = this.options; - - this.currentContainer = this; - - //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture - this.refreshPositions(); - - //Create and append the visible helper - this.helper = this._createHelper(event); - - //Cache the helper size - this._cacheHelperProportions(); - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Get the next scrolling parent - this.scrollParent = this.helper.scrollParent(); - - //The element's absolute position on the page minus margins - this.offset = this.currentItem.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); - - // Only after we got the offset, we can change the helper's position to absolute - // TODO: Still need to figure out a way to make relative sorting possible - this.helper.css("position", "absolute"); - this.cssPosition = this.helper.css("position"); - - //Generate the original position - this.originalPosition = this._generatePosition(event); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if "cursorAt" is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Cache the former DOM position - this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; - - //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way - if(this.helper[0] !== this.currentItem[0]) { - this.currentItem.hide(); - } - - //Create the placeholder - this._createPlaceholder(); - - //Set a containment if given in the options - if(o.containment) { - this._setContainment(); - } - - if( o.cursor && o.cursor !== "auto" ) { // cursor option - body = this.document.find( "body" ); - - // support: IE - this.storedCursor = body.css( "cursor" ); - body.css( "cursor", o.cursor ); - - this.storedStylesheet = $( "<style>*{ cursor: "+o.cursor+" !important; }</style>" ).appendTo( body ); - } - - if(o.opacity) { // opacity option - if (this.helper.css("opacity")) { - this._storedOpacity = this.helper.css("opacity"); - } - this.helper.css("opacity", o.opacity); - } - - if(o.zIndex) { // zIndex option - if (this.helper.css("zIndex")) { - this._storedZIndex = this.helper.css("zIndex"); - } - this.helper.css("zIndex", o.zIndex); - } - - //Prepare scrolling - if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { - this.overflowOffset = this.scrollParent.offset(); - } - - //Call callbacks - this._trigger("start", event, this._uiHash()); - - //Recache the helper size - if(!this._preserveHelperProportions) { - this._cacheHelperProportions(); - } - - - //Post "activate" events to possible containers - if( !noActivation ) { - for ( i = this.containers.length - 1; i >= 0; i-- ) { - this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) ); - } - } - - //Prepare possible droppables - if($.ui.ddmanager) { - $.ui.ddmanager.current = this; - } - - if ($.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(this, event); - } - - this.dragging = true; - - this.helper.addClass("ui-sortable-helper"); - this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position - return true; - - }, - - _mouseDrag: function(event) { - var i, item, itemElement, intersection, - o = this.options, - scrolled = false; - - //Compute the helpers position - this.position = this._generatePosition(event); - this.positionAbs = this._convertPositionTo("absolute"); - - if (!this.lastPositionAbs) { - this.lastPositionAbs = this.positionAbs; - } - - //Do scrolling - if(this.options.scroll) { - if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { - - if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; - } else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) { - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; - } - - if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; - } else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) { - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; - } - - } else { - - if(event.pageY - this.document.scrollTop() < o.scrollSensitivity) { - scrolled = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed); - } else if(this.window.height() - (event.pageY - this.document.scrollTop()) < o.scrollSensitivity) { - scrolled = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed); - } - - if(event.pageX - this.document.scrollLeft() < o.scrollSensitivity) { - scrolled = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed); - } else if(this.window.width() - (event.pageX - this.document.scrollLeft()) < o.scrollSensitivity) { - scrolled = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed); - } - - } - - if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(this, event); - } - } - - //Regenerate the absolute position used for position checks - this.positionAbs = this._convertPositionTo("absolute"); - - //Set the helper position - if(!this.options.axis || this.options.axis !== "y") { - this.helper[0].style.left = this.position.left+"px"; - } - if(!this.options.axis || this.options.axis !== "x") { - this.helper[0].style.top = this.position.top+"px"; - } - - //Rearrange - for (i = this.items.length - 1; i >= 0; i--) { - - //Cache variables and intersection, continue if no intersection - item = this.items[i]; - itemElement = item.item[0]; - intersection = this._intersectsWithPointer(item); - if (!intersection) { - continue; - } - - // Only put the placeholder inside the current Container, skip all - // items from other containers. This works because when moving - // an item from one container to another the - // currentContainer is switched before the placeholder is moved. - // - // Without this, moving items in "sub-sortables" can cause - // the placeholder to jitter between the outer and inner container. - if (item.instance !== this.currentContainer) { - continue; - } - - // cannot intersect with itself - // no useless actions that have been done before - // no action if the item moved is the parent of the item checked - if (itemElement !== this.currentItem[0] && - this.placeholder[intersection === 1 ? "next" : "prev"]()[0] !== itemElement && - !$.contains(this.placeholder[0], itemElement) && - (this.options.type === "semi-dynamic" ? !$.contains(this.element[0], itemElement) : true) - ) { - - this.direction = intersection === 1 ? "down" : "up"; - - if (this.options.tolerance === "pointer" || this._intersectsWithSides(item)) { - this._rearrange(event, item); - } else { - break; - } - - this._trigger("change", event, this._uiHash()); - break; - } - } - - //Post events to containers - this._contactContainers(event); - - //Interconnect with droppables - if($.ui.ddmanager) { - $.ui.ddmanager.drag(this, event); - } - - //Call callbacks - this._trigger("sort", event, this._uiHash()); - - this.lastPositionAbs = this.positionAbs; - return false; - - }, - - _mouseStop: function(event, noPropagation) { - - if(!event) { - return; - } - - //If we are using droppables, inform the manager about the drop - if ($.ui.ddmanager && !this.options.dropBehaviour) { - $.ui.ddmanager.drop(this, event); - } - - if(this.options.revert) { - var that = this, - cur = this.placeholder.offset(), - axis = this.options.axis, - animation = {}; - - if ( !axis || axis === "x" ) { - animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft); - } - if ( !axis || axis === "y" ) { - animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop); - } - this.reverting = true; - $(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() { - that._clear(event); - }); - } else { - this._clear(event, noPropagation); - } - - return false; - - }, - - cancel: function() { - - if(this.dragging) { - - this._mouseUp({ target: null }); - - if(this.options.helper === "original") { - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } - - //Post deactivating events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - this.containers[i]._trigger("deactivate", null, this._uiHash(this)); - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", null, this._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - if (this.placeholder) { - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - if(this.placeholder[0].parentNode) { - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - } - if(this.options.helper !== "original" && this.helper && this.helper[0].parentNode) { - this.helper.remove(); - } - - $.extend(this, { - helper: null, - dragging: false, - reverting: false, - _noFinalSort: null - }); - - if(this.domPosition.prev) { - $(this.domPosition.prev).after(this.currentItem); - } else { - $(this.domPosition.parent).prepend(this.currentItem); - } - } - - return this; - - }, - - serialize: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected), - str = []; - o = o || {}; - - $(items).each(function() { - var res = ($(o.item || this).attr(o.attribute || "id") || "").match(o.expression || (/(.+)[\-=_](.+)/)); - if (res) { - str.push((o.key || res[1]+"[]")+"="+(o.key && o.expression ? res[1] : res[2])); - } - }); - - if(!str.length && o.key) { - str.push(o.key + "="); - } - - return str.join("&"); - - }, - - toArray: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected), - ret = []; - - o = o || {}; - - items.each(function() { ret.push($(o.item || this).attr(o.attribute || "id") || ""); }); - return ret; - - }, - - /* Be careful with the following core functions */ - _intersectsWith: function(item) { - - var x1 = this.positionAbs.left, - x2 = x1 + this.helperProportions.width, - y1 = this.positionAbs.top, - y2 = y1 + this.helperProportions.height, - l = item.left, - r = l + item.width, - t = item.top, - b = t + item.height, - dyClick = this.offset.click.top, - dxClick = this.offset.click.left, - isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t && ( y1 + dyClick ) < b ), - isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ), - isOverElement = isOverElementHeight && isOverElementWidth; - - if ( this.options.tolerance === "pointer" || - this.options.forcePointerForContainers || - (this.options.tolerance !== "pointer" && this.helperProportions[this.floating ? "width" : "height"] > item[this.floating ? "width" : "height"]) - ) { - return isOverElement; - } else { - - return (l < x1 + (this.helperProportions.width / 2) && // Right Half - x2 - (this.helperProportions.width / 2) < r && // Left Half - t < y1 + (this.helperProportions.height / 2) && // Bottom Half - y2 - (this.helperProportions.height / 2) < b ); // Top Half - - } - }, - - _intersectsWithPointer: function(item) { - - var isOverElementHeight = (this.options.axis === "x") || this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), - isOverElementWidth = (this.options.axis === "y") || this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), - isOverElement = isOverElementHeight && isOverElementWidth, - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (!isOverElement) { - return false; - } - - return this.floating ? - ( ((horizontalDirection && horizontalDirection === "right") || verticalDirection === "down") ? 2 : 1 ) - : ( verticalDirection && (verticalDirection === "down" ? 2 : 1) ); - - }, - - _intersectsWithSides: function(item) { - - var isOverBottomHalf = this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), - isOverRightHalf = this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (this.floating && horizontalDirection) { - return ((horizontalDirection === "right" && isOverRightHalf) || (horizontalDirection === "left" && !isOverRightHalf)); - } else { - return verticalDirection && ((verticalDirection === "down" && isOverBottomHalf) || (verticalDirection === "up" && !isOverBottomHalf)); - } - - }, - - _getDragVerticalDirection: function() { - var delta = this.positionAbs.top - this.lastPositionAbs.top; - return delta !== 0 && (delta > 0 ? "down" : "up"); - }, - - _getDragHorizontalDirection: function() { - var delta = this.positionAbs.left - this.lastPositionAbs.left; - return delta !== 0 && (delta > 0 ? "right" : "left"); - }, - - refresh: function(event) { - this._refreshItems(event); - this._setHandleClassName(); - this.refreshPositions(); - return this; - }, - - _connectWith: function() { - var options = this.options; - return options.connectWith.constructor === String ? [options.connectWith] : options.connectWith; - }, - - _getItemsAsjQuery: function(connected) { - - var i, j, cur, inst, - items = [], - queries = [], - connectWith = this._connectWith(); - - if(connectWith && connected) { - for (i = connectWith.length - 1; i >= 0; i--){ - cur = $(connectWith[i], this.document[0]); - for ( j = cur.length - 1; j >= 0; j--){ - inst = $.data(cur[j], this.widgetFullName); - if(inst && inst !== this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), inst]); - } - } - } - } - - queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); - - function addItems() { - items.push( this ); - } - for (i = queries.length - 1; i >= 0; i--){ - queries[i][0].each( addItems ); - } - - return $(items); - - }, - - _removeCurrentsFromItems: function() { - - var list = this.currentItem.find(":data(" + this.widgetName + "-item)"); - - this.items = $.grep(this.items, function (item) { - for (var j=0; j < list.length; j++) { - if(list[j] === item.item[0]) { - return false; - } - } - return true; - }); - - }, - - _refreshItems: function(event) { - - this.items = []; - this.containers = [this]; - - var i, j, cur, inst, targetData, _queries, item, queriesLength, - items = this.items, - queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]], - connectWith = this._connectWith(); - - if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down - for (i = connectWith.length - 1; i >= 0; i--){ - cur = $(connectWith[i], this.document[0]); - for (j = cur.length - 1; j >= 0; j--){ - inst = $.data(cur[j], this.widgetFullName); - if(inst && inst !== this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); - this.containers.push(inst); - } - } - } - } - - for (i = queries.length - 1; i >= 0; i--) { - targetData = queries[i][1]; - _queries = queries[i][0]; - - for (j=0, queriesLength = _queries.length; j < queriesLength; j++) { - item = $(_queries[j]); - - item.data(this.widgetName + "-item", targetData); // Data for target checking (mouse manager) - - items.push({ - item: item, - instance: targetData, - width: 0, height: 0, - left: 0, top: 0 - }); - } - } - - }, - - refreshPositions: function(fast) { - - // Determine whether items are being displayed horizontally - this.floating = this.items.length ? - this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) : - false; - - //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change - if(this.offsetParent && this.helper) { - this.offset.parent = this._getParentOffset(); - } - - var i, item, t, p; - - for (i = this.items.length - 1; i >= 0; i--){ - item = this.items[i]; - - //We ignore calculating positions of all connected containers when we're not over them - if(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) { - continue; - } - - t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; - - if (!fast) { - item.width = t.outerWidth(); - item.height = t.outerHeight(); - } - - p = t.offset(); - item.left = p.left; - item.top = p.top; - } - - if(this.options.custom && this.options.custom.refreshContainers) { - this.options.custom.refreshContainers.call(this); - } else { - for (i = this.containers.length - 1; i >= 0; i--){ - p = this.containers[i].element.offset(); - this.containers[i].containerCache.left = p.left; - this.containers[i].containerCache.top = p.top; - this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); - this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); - } - } - - return this; - }, - - _createPlaceholder: function(that) { - that = that || this; - var className, - o = that.options; - - if(!o.placeholder || o.placeholder.constructor === String) { - className = o.placeholder; - o.placeholder = { - element: function() { - - var nodeName = that.currentItem[0].nodeName.toLowerCase(), - element = $( "<" + nodeName + ">", that.document[0] ) - .addClass(className || that.currentItem[0].className+" ui-sortable-placeholder") - .removeClass("ui-sortable-helper"); - - if ( nodeName === "tbody" ) { - that._createTrPlaceholder( - that.currentItem.find( "tr" ).eq( 0 ), - $( "<tr>", that.document[ 0 ] ).appendTo( element ) - ); - } else if ( nodeName === "tr" ) { - that._createTrPlaceholder( that.currentItem, element ); - } else if ( nodeName === "img" ) { - element.attr( "src", that.currentItem.attr( "src" ) ); - } - - if ( !className ) { - element.css( "visibility", "hidden" ); - } - - return element; - }, - update: function(container, p) { - - // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that - // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified - if(className && !o.forcePlaceholderSize) { - return; - } - - //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item - if(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css("paddingTop")||0, 10) - parseInt(that.currentItem.css("paddingBottom")||0, 10)); } - if(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css("paddingLeft")||0, 10) - parseInt(that.currentItem.css("paddingRight")||0, 10)); } - } - }; - } - - //Create the placeholder - that.placeholder = $(o.placeholder.element.call(that.element, that.currentItem)); - - //Append it after the actual current item - that.currentItem.after(that.placeholder); - - //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) - o.placeholder.update(that, that.placeholder); - - }, - - _createTrPlaceholder: function( sourceTr, targetTr ) { - var that = this; - - sourceTr.children().each(function() { - $( "<td> </td>", that.document[ 0 ] ) - .attr( "colspan", $( this ).attr( "colspan" ) || 1 ) - .appendTo( targetTr ); - }); - }, - - _contactContainers: function(event) { - var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom, floating, axis, - innermostContainer = null, - innermostIndex = null; - - // get innermost container that intersects with item - for (i = this.containers.length - 1; i >= 0; i--) { - - // never consider a container that's located within the item itself - if($.contains(this.currentItem[0], this.containers[i].element[0])) { - continue; - } - - if(this._intersectsWith(this.containers[i].containerCache)) { - - // if we've already found a container and it's more "inner" than this, then continue - if(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) { - continue; - } - - innermostContainer = this.containers[i]; - innermostIndex = i; - - } else { - // container doesn't intersect. trigger "out" event if necessary - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", event, this._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - // if no intersecting containers found, return - if(!innermostContainer) { - return; - } - - // move the item into the container if it's not there already - if(this.containers.length === 1) { - if (!this.containers[innermostIndex].containerCache.over) { - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } - } else { - - //When entering a new container, we will find the item with the least distance and append our item near it - dist = 10000; - itemWithLeastDistance = null; - floating = innermostContainer.floating || this._isFloating(this.currentItem); - posProperty = floating ? "left" : "top"; - sizeProperty = floating ? "width" : "height"; - axis = floating ? "clientX" : "clientY"; - - for (j = this.items.length - 1; j >= 0; j--) { - if(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) { - continue; - } - if(this.items[j].item[0] === this.currentItem[0]) { - continue; - } - - cur = this.items[j].item.offset()[posProperty]; - nearBottom = false; - if ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) { - nearBottom = true; - } - - if ( Math.abs( event[ axis ] - cur ) < dist ) { - dist = Math.abs( event[ axis ] - cur ); - itemWithLeastDistance = this.items[ j ]; - this.direction = nearBottom ? "up": "down"; - } - } - - //Check if dropOnEmpty is enabled - if(!itemWithLeastDistance && !this.options.dropOnEmpty) { - return; - } - - if(this.currentContainer === this.containers[innermostIndex]) { - if ( !this.currentContainer.containerCache.over ) { - this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() ); - this.currentContainer.containerCache.over = 1; - } - return; - } - - itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); - this._trigger("change", event, this._uiHash()); - this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); - this.currentContainer = this.containers[innermostIndex]; - - //Update the placeholder - this.options.placeholder.update(this.currentContainer, this.placeholder); - - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } - - - }, - - _createHelper: function(event) { - - var o = this.options, - helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === "clone" ? this.currentItem.clone() : this.currentItem); - - //Add the helper to the DOM if that didn't happen already - if(!helper.parents("body").length) { - $(o.appendTo !== "parent" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); - } - - if(helper[0] === this.currentItem[0]) { - this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; - } - - if(!helper[0].style.width || o.forceHelperSize) { - helper.width(this.currentItem.width()); - } - if(!helper[0].style.height || o.forceHelperSize) { - helper.height(this.currentItem.height()); - } - - return helper; - - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj === "string") { - obj = obj.split(" "); - } - if ($.isArray(obj)) { - obj = {left: +obj[0], top: +obj[1] || 0}; - } - if ("left" in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ("right" in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ("top" in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ("bottom" in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _getParentOffset: function() { - - - //Get the offsetParent and cache its position - this.offsetParent = this.helper.offsetParent(); - var po = this.offsetParent.offset(); - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition === "absolute" && this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - // This needs to be actually done for all browsers, since pageX/pageY includes this information - // with an ugly IE fix - if( this.offsetParent[0] === this.document[0].body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { - po = { top: 0, left: 0 }; - } - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) - }; - - }, - - _getRelativeOffset: function() { - - if(this.cssPosition === "relative") { - var p = this.currentItem.position(); - return { - top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), - left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() - }; - } else { - return { top: 0, left: 0 }; - } - - }, - - _cacheMargins: function() { - this.margins = { - left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), - top: (parseInt(this.currentItem.css("marginTop"),10) || 0) - }; - }, - - _cacheHelperProportions: function() { - this.helperProportions = { - width: this.helper.outerWidth(), - height: this.helper.outerHeight() - }; - }, - - _setContainment: function() { - - var ce, co, over, - o = this.options; - if(o.containment === "parent") { - o.containment = this.helper[0].parentNode; - } - if(o.containment === "document" || o.containment === "window") { - this.containment = [ - 0 - this.offset.relative.left - this.offset.parent.left, - 0 - this.offset.relative.top - this.offset.parent.top, - o.containment === "document" ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, - (o.containment === "document" ? this.document.width() : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top - ]; - } - - if(!(/^(document|window|parent)$/).test(o.containment)) { - ce = $(o.containment)[0]; - co = $(o.containment).offset(); - over = ($(ce).css("overflow") !== "hidden"); - - this.containment = [ - co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, - co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, - co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, - co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - ]; - } - - }, - - _convertPositionTo: function(d, pos) { - - if(!pos) { - pos = this.position; - } - var mod = d === "absolute" ? 1 : -1, - scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, - scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - return { - top: ( - pos.top + // The absolute mouse position - this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) - ), - left: ( - pos.left + // The absolute mouse position - this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) - ) - }; - - }, - - _generatePosition: function(event) { - - var top, left, - o = this.options, - pageX = event.pageX, - pageY = event.pageY, - scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - // This is another very weird special case that only happens for relative elements: - // 1. If the css position is relative - // 2. and the scroll parent is the document or similar to the offset parent - // we have to refresh the relative offset during the scroll so there are no jumps - if(this.cssPosition === "relative" && !(this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0])) { - this.offset.relative = this._getRelativeOffset(); - } - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - if(this.originalPosition) { //If we are not dragging yet, we won't check for options - - if(this.containment) { - if(event.pageX - this.offset.click.left < this.containment[0]) { - pageX = this.containment[0] + this.offset.click.left; - } - if(event.pageY - this.offset.click.top < this.containment[1]) { - pageY = this.containment[1] + this.offset.click.top; - } - if(event.pageX - this.offset.click.left > this.containment[2]) { - pageX = this.containment[2] + this.offset.click.left; - } - if(event.pageY - this.offset.click.top > this.containment[3]) { - pageY = this.containment[3] + this.offset.click.top; - } - } - - if(o.grid) { - top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; - pageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; - pageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - } - - return { - top: ( - pageY - // The absolute mouse position - this.offset.click.top - // Click offset (relative to the element) - this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top + // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) - ), - left: ( - pageX - // The absolute mouse position - this.offset.click.left - // Click offset (relative to the element) - this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left + // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) - ) - }; - - }, - - _rearrange: function(event, i, a, hardRefresh) { - - a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === "down" ? i.item[0] : i.item[0].nextSibling)); - - //Various things done here to improve the performance: - // 1. we create a setTimeout, that calls refreshPositions - // 2. on the instance, we have a counter variable, that get's higher after every append - // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same - // 4. this lets only the last addition to the timeout stack through - this.counter = this.counter ? ++this.counter : 1; - var counter = this.counter; - - this._delay(function() { - if(counter === this.counter) { - this.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove - } - }); - - }, - - _clear: function(event, noPropagation) { - - this.reverting = false; - // We delay all events that have to be triggered to after the point where the placeholder has been removed and - // everything else normalized again - var i, - delayedTriggers = []; - - // We first have to update the dom position of the actual currentItem - // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) - if(!this._noFinalSort && this.currentItem.parent().length) { - this.placeholder.before(this.currentItem); - } - this._noFinalSort = null; - - if(this.helper[0] === this.currentItem[0]) { - for(i in this._storedCSS) { - if(this._storedCSS[i] === "auto" || this._storedCSS[i] === "static") { - this._storedCSS[i] = ""; - } - } - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } - - if(this.fromOutside && !noPropagation) { - delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); - } - if((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) { - delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed - } - - // Check if the items Container has Changed and trigger appropriate - // events. - if (this !== this.currentContainer) { - if(!noPropagation) { - delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); - delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.currentContainer)); - delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.currentContainer)); - } - } - - - //Post events to containers - function delayEvent( type, instance, container ) { - return function( event ) { - container._trigger( type, event, instance._uiHash( instance ) ); - }; - } - for (i = this.containers.length - 1; i >= 0; i--){ - if (!noPropagation) { - delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) ); - } - if(this.containers[i].containerCache.over) { - delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) ); - this.containers[i].containerCache.over = 0; - } - } - - //Do what was originally in plugins - if ( this.storedCursor ) { - this.document.find( "body" ).css( "cursor", this.storedCursor ); - this.storedStylesheet.remove(); - } - if(this._storedOpacity) { - this.helper.css("opacity", this._storedOpacity); - } - if(this._storedZIndex) { - this.helper.css("zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex); - } - - this.dragging = false; - - if(!noPropagation) { - this._trigger("beforeStop", event, this._uiHash()); - } - - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - - if ( !this.cancelHelperRemoval ) { - if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) { - this.helper.remove(); - } - this.helper = null; - } - - if(!noPropagation) { - for (i=0; i < delayedTriggers.length; i++) { - delayedTriggers[i].call(this, event); - } //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - - this.fromOutside = false; - return !this.cancelHelperRemoval; - - }, - - _trigger: function() { - if ($.Widget.prototype._trigger.apply(this, arguments) === false) { - this.cancel(); - } - }, - - _uiHash: function(_inst) { - var inst = _inst || this; - return { - helper: inst.helper, - placeholder: inst.placeholder || $([]), - position: inst.position, - originalPosition: inst.originalPosition, - offset: inst.positionAbs, - item: inst.currentItem, - sender: _inst ? _inst.element : null - }; - } - -}); - - -/*! - * jQuery UI Accordion 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/accordion/ - */ - - -var accordion = $.widget( "ui.accordion", { - version: "1.11.4", - options: { - active: 0, - animate: {}, - collapsible: false, - event: "click", - header: "> li > :first-child,> :not(li):even", - heightStyle: "auto", - icons: { - activeHeader: "ui-icon-triangle-1-s", - header: "ui-icon-triangle-1-e" - }, - - // callbacks - activate: null, - beforeActivate: null - }, - - hideProps: { - borderTopWidth: "hide", - borderBottomWidth: "hide", - paddingTop: "hide", - paddingBottom: "hide", - height: "hide" - }, - - showProps: { - borderTopWidth: "show", - borderBottomWidth: "show", - paddingTop: "show", - paddingBottom: "show", - height: "show" - }, - - _create: function() { - var options = this.options; - this.prevShow = this.prevHide = $(); - this.element.addClass( "ui-accordion ui-widget ui-helper-reset" ) - // ARIA - .attr( "role", "tablist" ); - - // don't allow collapsible: false and active: false / null - if ( !options.collapsible && (options.active === false || options.active == null) ) { - options.active = 0; - } - - this._processPanels(); - // handle negative values - if ( options.active < 0 ) { - options.active += this.headers.length; - } - this._refresh(); - }, - - _getCreateEventData: function() { - return { - header: this.active, - panel: !this.active.length ? $() : this.active.next() - }; - }, - - _createIcons: function() { - var icons = this.options.icons; - if ( icons ) { - $( "<span>" ) - .addClass( "ui-accordion-header-icon ui-icon " + icons.header ) - .prependTo( this.headers ); - this.active.children( ".ui-accordion-header-icon" ) - .removeClass( icons.header ) - .addClass( icons.activeHeader ); - this.headers.addClass( "ui-accordion-icons" ); - } - }, - - _destroyIcons: function() { - this.headers - .removeClass( "ui-accordion-icons" ) - .children( ".ui-accordion-header-icon" ) - .remove(); - }, - - _destroy: function() { - var contents; - - // clean up main element - this.element - .removeClass( "ui-accordion ui-widget ui-helper-reset" ) - .removeAttr( "role" ); - - // clean up headers - this.headers - .removeClass( "ui-accordion-header ui-accordion-header-active ui-state-default " + - "ui-corner-all ui-state-active ui-state-disabled ui-corner-top" ) - .removeAttr( "role" ) - .removeAttr( "aria-expanded" ) - .removeAttr( "aria-selected" ) - .removeAttr( "aria-controls" ) - .removeAttr( "tabIndex" ) - .removeUniqueId(); - - this._destroyIcons(); - - // clean up content panels - contents = this.headers.next() - .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom " + - "ui-accordion-content ui-accordion-content-active ui-state-disabled" ) - .css( "display", "" ) - .removeAttr( "role" ) - .removeAttr( "aria-hidden" ) - .removeAttr( "aria-labelledby" ) - .removeUniqueId(); - - if ( this.options.heightStyle !== "content" ) { - contents.css( "height", "" ); - } - }, - - _setOption: function( key, value ) { - if ( key === "active" ) { - // _activate() will handle invalid values and update this.options - this._activate( value ); - return; - } - - if ( key === "event" ) { - if ( this.options.event ) { - this._off( this.headers, this.options.event ); - } - this._setupEvents( value ); - } - - this._super( key, value ); - - // setting collapsible: false while collapsed; open first panel - if ( key === "collapsible" && !value && this.options.active === false ) { - this._activate( 0 ); - } - - if ( key === "icons" ) { - this._destroyIcons(); - if ( value ) { - this._createIcons(); - } - } - - // #5332 - opacity doesn't cascade to positioned elements in IE - // so we need to add the disabled class to the headers and panels - if ( key === "disabled" ) { - this.element - .toggleClass( "ui-state-disabled", !!value ) - .attr( "aria-disabled", value ); - this.headers.add( this.headers.next() ) - .toggleClass( "ui-state-disabled", !!value ); - } - }, - - _keydown: function( event ) { - if ( event.altKey || event.ctrlKey ) { - return; - } - - var keyCode = $.ui.keyCode, - length = this.headers.length, - currentIndex = this.headers.index( event.target ), - toFocus = false; - - switch ( event.keyCode ) { - case keyCode.RIGHT: - case keyCode.DOWN: - toFocus = this.headers[ ( currentIndex + 1 ) % length ]; - break; - case keyCode.LEFT: - case keyCode.UP: - toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; - break; - case keyCode.SPACE: - case keyCode.ENTER: - this._eventHandler( event ); - break; - case keyCode.HOME: - toFocus = this.headers[ 0 ]; - break; - case keyCode.END: - toFocus = this.headers[ length - 1 ]; - break; - } - - if ( toFocus ) { - $( event.target ).attr( "tabIndex", -1 ); - $( toFocus ).attr( "tabIndex", 0 ); - toFocus.focus(); - event.preventDefault(); - } - }, - - _panelKeyDown: function( event ) { - if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) { - $( event.currentTarget ).prev().focus(); - } - }, - - refresh: function() { - var options = this.options; - this._processPanels(); - - // was collapsed or no panel - if ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) { - options.active = false; - this.active = $(); - // active false only when collapsible is true - } else if ( options.active === false ) { - this._activate( 0 ); - // was active, but active panel is gone - } else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { - // all remaining panel are disabled - if ( this.headers.length === this.headers.find(".ui-state-disabled").length ) { - options.active = false; - this.active = $(); - // activate previous panel - } else { - this._activate( Math.max( 0, options.active - 1 ) ); - } - // was active, active panel still exists - } else { - // make sure active index is correct - options.active = this.headers.index( this.active ); - } - - this._destroyIcons(); - - this._refresh(); - }, - - _processPanels: function() { - var prevHeaders = this.headers, - prevPanels = this.panels; - - this.headers = this.element.find( this.options.header ) - .addClass( "ui-accordion-header ui-state-default ui-corner-all" ); - - this.panels = this.headers.next() - .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ) - .filter( ":not(.ui-accordion-content-active)" ) - .hide(); - - // Avoid memory leaks (#10056) - if ( prevPanels ) { - this._off( prevHeaders.not( this.headers ) ); - this._off( prevPanels.not( this.panels ) ); - } - }, - - _refresh: function() { - var maxHeight, - options = this.options, - heightStyle = options.heightStyle, - parent = this.element.parent(); - - this.active = this._findActive( options.active ) - .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" ) - .removeClass( "ui-corner-all" ); - this.active.next() - .addClass( "ui-accordion-content-active" ) - .show(); - - this.headers - .attr( "role", "tab" ) - .each(function() { - var header = $( this ), - headerId = header.uniqueId().attr( "id" ), - panel = header.next(), - panelId = panel.uniqueId().attr( "id" ); - header.attr( "aria-controls", panelId ); - panel.attr( "aria-labelledby", headerId ); - }) - .next() - .attr( "role", "tabpanel" ); - - this.headers - .not( this.active ) - .attr({ - "aria-selected": "false", - "aria-expanded": "false", - tabIndex: -1 - }) - .next() - .attr({ - "aria-hidden": "true" - }) - .hide(); - - // make sure at least one header is in the tab order - if ( !this.active.length ) { - this.headers.eq( 0 ).attr( "tabIndex", 0 ); - } else { - this.active.attr({ - "aria-selected": "true", - "aria-expanded": "true", - tabIndex: 0 - }) - .next() - .attr({ - "aria-hidden": "false" - }); - } - - this._createIcons(); - - this._setupEvents( options.event ); - - if ( heightStyle === "fill" ) { - maxHeight = parent.height(); - this.element.siblings( ":visible" ).each(function() { - var elem = $( this ), - position = elem.css( "position" ); - - if ( position === "absolute" || position === "fixed" ) { - return; - } - maxHeight -= elem.outerHeight( true ); - }); - - this.headers.each(function() { - maxHeight -= $( this ).outerHeight( true ); - }); - - this.headers.next() - .each(function() { - $( this ).height( Math.max( 0, maxHeight - - $( this ).innerHeight() + $( this ).height() ) ); - }) - .css( "overflow", "auto" ); - } else if ( heightStyle === "auto" ) { - maxHeight = 0; - this.headers.next() - .each(function() { - maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() ); - }) - .height( maxHeight ); - } - }, - - _activate: function( index ) { - var active = this._findActive( index )[ 0 ]; - - // trying to activate the already active panel - if ( active === this.active[ 0 ] ) { - return; - } - - // trying to collapse, simulate a click on the currently active header - active = active || this.active[ 0 ]; - - this._eventHandler({ - target: active, - currentTarget: active, - preventDefault: $.noop - }); - }, - - _findActive: function( selector ) { - return typeof selector === "number" ? this.headers.eq( selector ) : $(); - }, - - _setupEvents: function( event ) { - var events = { - keydown: "_keydown" - }; - if ( event ) { - $.each( event.split( " " ), function( index, eventName ) { - events[ eventName ] = "_eventHandler"; - }); - } - - this._off( this.headers.add( this.headers.next() ) ); - this._on( this.headers, events ); - this._on( this.headers.next(), { keydown: "_panelKeyDown" }); - this._hoverable( this.headers ); - this._focusable( this.headers ); - }, - - _eventHandler: function( event ) { - var options = this.options, - active = this.active, - clicked = $( event.currentTarget ), - clickedIsActive = clicked[ 0 ] === active[ 0 ], - collapsing = clickedIsActive && options.collapsible, - toShow = collapsing ? $() : clicked.next(), - toHide = active.next(), - eventData = { - oldHeader: active, - oldPanel: toHide, - newHeader: collapsing ? $() : clicked, - newPanel: toShow - }; - - event.preventDefault(); - - if ( - // click on active header, but not collapsible - ( clickedIsActive && !options.collapsible ) || - // allow canceling activation - ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { - return; - } - - options.active = collapsing ? false : this.headers.index( clicked ); - - // when the call to ._toggle() comes after the class changes - // it causes a very odd bug in IE 8 (see #6720) - this.active = clickedIsActive ? $() : clicked; - this._toggle( eventData ); - - // switch classes - // corner classes on the previously active header stay after the animation - active.removeClass( "ui-accordion-header-active ui-state-active" ); - if ( options.icons ) { - active.children( ".ui-accordion-header-icon" ) - .removeClass( options.icons.activeHeader ) - .addClass( options.icons.header ); - } - - if ( !clickedIsActive ) { - clicked - .removeClass( "ui-corner-all" ) - .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" ); - if ( options.icons ) { - clicked.children( ".ui-accordion-header-icon" ) - .removeClass( options.icons.header ) - .addClass( options.icons.activeHeader ); - } - - clicked - .next() - .addClass( "ui-accordion-content-active" ); - } - }, - - _toggle: function( data ) { - var toShow = data.newPanel, - toHide = this.prevShow.length ? this.prevShow : data.oldPanel; - - // handle activating a panel during the animation for another activation - this.prevShow.add( this.prevHide ).stop( true, true ); - this.prevShow = toShow; - this.prevHide = toHide; - - if ( this.options.animate ) { - this._animate( toShow, toHide, data ); - } else { - toHide.hide(); - toShow.show(); - this._toggleComplete( data ); - } - - toHide.attr({ - "aria-hidden": "true" - }); - toHide.prev().attr({ - "aria-selected": "false", - "aria-expanded": "false" - }); - // if we're switching panels, remove the old header from the tab order - // if we're opening from collapsed state, remove the previous header from the tab order - // if we're collapsing, then keep the collapsing header in the tab order - if ( toShow.length && toHide.length ) { - toHide.prev().attr({ - "tabIndex": -1, - "aria-expanded": "false" - }); - } else if ( toShow.length ) { - this.headers.filter(function() { - return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0; - }) - .attr( "tabIndex", -1 ); - } - - toShow - .attr( "aria-hidden", "false" ) - .prev() - .attr({ - "aria-selected": "true", - "aria-expanded": "true", - tabIndex: 0 - }); - }, - - _animate: function( toShow, toHide, data ) { - var total, easing, duration, - that = this, - adjust = 0, - boxSizing = toShow.css( "box-sizing" ), - down = toShow.length && - ( !toHide.length || ( toShow.index() < toHide.index() ) ), - animate = this.options.animate || {}, - options = down && animate.down || animate, - complete = function() { - that._toggleComplete( data ); - }; - - if ( typeof options === "number" ) { - duration = options; - } - if ( typeof options === "string" ) { - easing = options; - } - // fall back from options to animation in case of partial down settings - easing = easing || options.easing || animate.easing; - duration = duration || options.duration || animate.duration; - - if ( !toHide.length ) { - return toShow.animate( this.showProps, duration, easing, complete ); - } - if ( !toShow.length ) { - return toHide.animate( this.hideProps, duration, easing, complete ); - } - - total = toShow.show().outerHeight(); - toHide.animate( this.hideProps, { - duration: duration, - easing: easing, - step: function( now, fx ) { - fx.now = Math.round( now ); - } - }); - toShow - .hide() - .animate( this.showProps, { - duration: duration, - easing: easing, - complete: complete, - step: function( now, fx ) { - fx.now = Math.round( now ); - if ( fx.prop !== "height" ) { - if ( boxSizing === "content-box" ) { - adjust += fx.now; - } - } else if ( that.options.heightStyle !== "content" ) { - fx.now = Math.round( total - toHide.outerHeight() - adjust ); - adjust = 0; - } - } - }); - }, - - _toggleComplete: function( data ) { - var toHide = data.oldPanel; - - toHide - .removeClass( "ui-accordion-content-active" ) - .prev() - .removeClass( "ui-corner-top" ) - .addClass( "ui-corner-all" ); - - // Work around for rendering bug in IE (#5421) - if ( toHide.length ) { - toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className; - } - this._trigger( "activate", null, data ); - } -}); - - -/*! - * jQuery UI Menu 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/menu/ - */ - - -var menu = $.widget( "ui.menu", { - version: "1.11.4", - defaultElement: "<ul>", - delay: 300, - options: { - icons: { - submenu: "ui-icon-carat-1-e" - }, - items: "> *", - menus: "ul", - position: { - my: "left-1 top", - at: "right top" - }, - role: "menu", - - // callbacks - blur: null, - focus: null, - select: null - }, - - _create: function() { - this.activeMenu = this.element; - - // Flag used to prevent firing of the click handler - // as the event bubbles up through nested menus - this.mouseHandled = false; - this.element - .uniqueId() - .addClass( "ui-menu ui-widget ui-widget-content" ) - .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ) - .attr({ - role: this.options.role, - tabIndex: 0 - }); - - if ( this.options.disabled ) { - this.element - .addClass( "ui-state-disabled" ) - .attr( "aria-disabled", "true" ); - } - - this._on({ - // Prevent focus from sticking to links inside menu after clicking - // them (focus should always stay on UL during navigation). - "mousedown .ui-menu-item": function( event ) { - event.preventDefault(); - }, - "click .ui-menu-item": function( event ) { - var target = $( event.target ); - if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) { - this.select( event ); - - // Only set the mouseHandled flag if the event will bubble, see #9469. - if ( !event.isPropagationStopped() ) { - this.mouseHandled = true; - } - - // Open submenu on click - if ( target.has( ".ui-menu" ).length ) { - this.expand( event ); - } else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) { - - // Redirect focus to the menu - this.element.trigger( "focus", [ true ] ); - - // If the active item is on the top level, let it stay active. - // Otherwise, blur the active item since it is no longer visible. - if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) { - clearTimeout( this.timer ); - } - } - } - }, - "mouseenter .ui-menu-item": function( event ) { - // Ignore mouse events while typeahead is active, see #10458. - // Prevents focusing the wrong item when typeahead causes a scroll while the mouse - // is over an item in the menu - if ( this.previousFilter ) { - return; - } - var target = $( event.currentTarget ); - // Remove ui-state-active class from siblings of the newly focused menu item - // to avoid a jump caused by adjacent elements both having a class with a border - target.siblings( ".ui-state-active" ).removeClass( "ui-state-active" ); - this.focus( event, target ); - }, - mouseleave: "collapseAll", - "mouseleave .ui-menu": "collapseAll", - focus: function( event, keepActiveItem ) { - // If there's already an active item, keep it active - // If not, activate the first item - var item = this.active || this.element.find( this.options.items ).eq( 0 ); - - if ( !keepActiveItem ) { - this.focus( event, item ); - } - }, - blur: function( event ) { - this._delay(function() { - if ( !$.contains( this.element[0], this.document[0].activeElement ) ) { - this.collapseAll( event ); - } - }); - }, - keydown: "_keydown" - }); - - this.refresh(); - - // Clicks outside of a menu collapse any open menus - this._on( this.document, { - click: function( event ) { - if ( this._closeOnDocumentClick( event ) ) { - this.collapseAll( event ); - } - - // Reset the mouseHandled flag - this.mouseHandled = false; - } - }); - }, - - _destroy: function() { - // Destroy (sub)menus - this.element - .removeAttr( "aria-activedescendant" ) - .find( ".ui-menu" ).addBack() - .removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" ) - .removeAttr( "role" ) - .removeAttr( "tabIndex" ) - .removeAttr( "aria-labelledby" ) - .removeAttr( "aria-expanded" ) - .removeAttr( "aria-hidden" ) - .removeAttr( "aria-disabled" ) - .removeUniqueId() - .show(); - - // Destroy menu items - this.element.find( ".ui-menu-item" ) - .removeClass( "ui-menu-item" ) - .removeAttr( "role" ) - .removeAttr( "aria-disabled" ) - .removeUniqueId() - .removeClass( "ui-state-hover" ) - .removeAttr( "tabIndex" ) - .removeAttr( "role" ) - .removeAttr( "aria-haspopup" ) - .children().each( function() { - var elem = $( this ); - if ( elem.data( "ui-menu-submenu-carat" ) ) { - elem.remove(); - } - }); - - // Destroy menu dividers - this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" ); - }, - - _keydown: function( event ) { - var match, prev, character, skip, - preventDefault = true; - - switch ( event.keyCode ) { - case $.ui.keyCode.PAGE_UP: - this.previousPage( event ); - break; - case $.ui.keyCode.PAGE_DOWN: - this.nextPage( event ); - break; - case $.ui.keyCode.HOME: - this._move( "first", "first", event ); - break; - case $.ui.keyCode.END: - this._move( "last", "last", event ); - break; - case $.ui.keyCode.UP: - this.previous( event ); - break; - case $.ui.keyCode.DOWN: - this.next( event ); - break; - case $.ui.keyCode.LEFT: - this.collapse( event ); - break; - case $.ui.keyCode.RIGHT: - if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { - this.expand( event ); - } - break; - case $.ui.keyCode.ENTER: - case $.ui.keyCode.SPACE: - this._activate( event ); - break; - case $.ui.keyCode.ESCAPE: - this.collapse( event ); - break; - default: - preventDefault = false; - prev = this.previousFilter || ""; - character = String.fromCharCode( event.keyCode ); - skip = false; - - clearTimeout( this.filterTimer ); - - if ( character === prev ) { - skip = true; - } else { - character = prev + character; - } - - match = this._filterMenuItems( character ); - match = skip && match.index( this.active.next() ) !== -1 ? - this.active.nextAll( ".ui-menu-item" ) : - match; - - // If no matches on the current filter, reset to the last character pressed - // to move down the menu to the first item that starts with that character - if ( !match.length ) { - character = String.fromCharCode( event.keyCode ); - match = this._filterMenuItems( character ); - } - - if ( match.length ) { - this.focus( event, match ); - this.previousFilter = character; - this.filterTimer = this._delay(function() { - delete this.previousFilter; - }, 1000 ); - } else { - delete this.previousFilter; - } - } - - if ( preventDefault ) { - event.preventDefault(); - } - }, - - _activate: function( event ) { - if ( !this.active.is( ".ui-state-disabled" ) ) { - if ( this.active.is( "[aria-haspopup='true']" ) ) { - this.expand( event ); - } else { - this.select( event ); - } - } - }, - - refresh: function() { - var menus, items, - that = this, - icon = this.options.icons.submenu, - submenus = this.element.find( this.options.menus ); - - this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ); - - // Initialize nested menus - submenus.filter( ":not(.ui-menu)" ) - .addClass( "ui-menu ui-widget ui-widget-content ui-front" ) - .hide() - .attr({ - role: this.options.role, - "aria-hidden": "true", - "aria-expanded": "false" - }) - .each(function() { - var menu = $( this ), - item = menu.parent(), - submenuCarat = $( "<span>" ) - .addClass( "ui-menu-icon ui-icon " + icon ) - .data( "ui-menu-submenu-carat", true ); - - item - .attr( "aria-haspopup", "true" ) - .prepend( submenuCarat ); - menu.attr( "aria-labelledby", item.attr( "id" ) ); - }); - - menus = submenus.add( this.element ); - items = menus.find( this.options.items ); - - // Initialize menu-items containing spaces and/or dashes only as dividers - items.not( ".ui-menu-item" ).each(function() { - var item = $( this ); - if ( that._isDivider( item ) ) { - item.addClass( "ui-widget-content ui-menu-divider" ); - } - }); - - // Don't refresh list items that are already adapted - items.not( ".ui-menu-item, .ui-menu-divider" ) - .addClass( "ui-menu-item" ) - .uniqueId() - .attr({ - tabIndex: -1, - role: this._itemRole() - }); - - // Add aria-disabled attribute to any disabled menu item - items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" ); - - // If the active item has been removed, blur the menu - if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { - this.blur(); - } - }, - - _itemRole: function() { - return { - menu: "menuitem", - listbox: "option" - }[ this.options.role ]; - }, - - _setOption: function( key, value ) { - if ( key === "icons" ) { - this.element.find( ".ui-menu-icon" ) - .removeClass( this.options.icons.submenu ) - .addClass( value.submenu ); - } - if ( key === "disabled" ) { - this.element - .toggleClass( "ui-state-disabled", !!value ) - .attr( "aria-disabled", value ); - } - this._super( key, value ); - }, - - focus: function( event, item ) { - var nested, focused; - this.blur( event, event && event.type === "focus" ); - - this._scrollIntoView( item ); - - this.active = item.first(); - focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" ); - // Only update aria-activedescendant if there's a role - // otherwise we assume focus is managed elsewhere - if ( this.options.role ) { - this.element.attr( "aria-activedescendant", focused.attr( "id" ) ); - } - - // Highlight active parent menu item, if any - this.active - .parent() - .closest( ".ui-menu-item" ) - .addClass( "ui-state-active" ); - - if ( event && event.type === "keydown" ) { - this._close(); - } else { - this.timer = this._delay(function() { - this._close(); - }, this.delay ); - } - - nested = item.children( ".ui-menu" ); - if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) { - this._startOpening(nested); - } - this.activeMenu = item.parent(); - - this._trigger( "focus", event, { item: item } ); - }, - - _scrollIntoView: function( item ) { - var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; - if ( this._hasScroll() ) { - borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0; - paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0; - offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; - scroll = this.activeMenu.scrollTop(); - elementHeight = this.activeMenu.height(); - itemHeight = item.outerHeight(); - - if ( offset < 0 ) { - this.activeMenu.scrollTop( scroll + offset ); - } else if ( offset + itemHeight > elementHeight ) { - this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); - } - } - }, - - blur: function( event, fromFocus ) { - if ( !fromFocus ) { - clearTimeout( this.timer ); - } - - if ( !this.active ) { - return; - } - - this.active.removeClass( "ui-state-focus" ); - this.active = null; - - this._trigger( "blur", event, { item: this.active } ); - }, - - _startOpening: function( submenu ) { - clearTimeout( this.timer ); - - // Don't open if already open fixes a Firefox bug that caused a .5 pixel - // shift in the submenu position when mousing over the carat icon - if ( submenu.attr( "aria-hidden" ) !== "true" ) { - return; - } - - this.timer = this._delay(function() { - this._close(); - this._open( submenu ); - }, this.delay ); - }, - - _open: function( submenu ) { - var position = $.extend({ - of: this.active - }, this.options.position ); - - clearTimeout( this.timer ); - this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) ) - .hide() - .attr( "aria-hidden", "true" ); - - submenu - .show() - .removeAttr( "aria-hidden" ) - .attr( "aria-expanded", "true" ) - .position( position ); - }, - - collapseAll: function( event, all ) { - clearTimeout( this.timer ); - this.timer = this._delay(function() { - // If we were passed an event, look for the submenu that contains the event - var currentMenu = all ? this.element : - $( event && event.target ).closest( this.element.find( ".ui-menu" ) ); - - // If we found no valid submenu ancestor, use the main menu to close all sub menus anyway - if ( !currentMenu.length ) { - currentMenu = this.element; - } - - this._close( currentMenu ); - - this.blur( event ); - this.activeMenu = currentMenu; - }, this.delay ); - }, - - // With no arguments, closes the currently active menu - if nothing is active - // it closes all menus. If passed an argument, it will search for menus BELOW - _close: function( startMenu ) { - if ( !startMenu ) { - startMenu = this.active ? this.active.parent() : this.element; - } - - startMenu - .find( ".ui-menu" ) - .hide() - .attr( "aria-hidden", "true" ) - .attr( "aria-expanded", "false" ) - .end() - .find( ".ui-state-active" ).not( ".ui-state-focus" ) - .removeClass( "ui-state-active" ); - }, - - _closeOnDocumentClick: function( event ) { - return !$( event.target ).closest( ".ui-menu" ).length; - }, - - _isDivider: function( item ) { - - // Match hyphen, em dash, en dash - return !/[^\-\u2014\u2013\s]/.test( item.text() ); - }, - - collapse: function( event ) { - var newItem = this.active && - this.active.parent().closest( ".ui-menu-item", this.element ); - if ( newItem && newItem.length ) { - this._close(); - this.focus( event, newItem ); - } - }, - - expand: function( event ) { - var newItem = this.active && - this.active - .children( ".ui-menu " ) - .find( this.options.items ) - .first(); - - if ( newItem && newItem.length ) { - this._open( newItem.parent() ); - - // Delay so Firefox will not hide activedescendant change in expanding submenu from AT - this._delay(function() { - this.focus( event, newItem ); - }); - } - }, - - next: function( event ) { - this._move( "next", "first", event ); - }, - - previous: function( event ) { - this._move( "prev", "last", event ); - }, - - isFirstItem: function() { - return this.active && !this.active.prevAll( ".ui-menu-item" ).length; - }, - - isLastItem: function() { - return this.active && !this.active.nextAll( ".ui-menu-item" ).length; - }, - - _move: function( direction, filter, event ) { - var next; - if ( this.active ) { - if ( direction === "first" || direction === "last" ) { - next = this.active - [ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" ) - .eq( -1 ); - } else { - next = this.active - [ direction + "All" ]( ".ui-menu-item" ) - .eq( 0 ); - } - } - if ( !next || !next.length || !this.active ) { - next = this.activeMenu.find( this.options.items )[ filter ](); - } - - this.focus( event, next ); - }, - - nextPage: function( event ) { - var item, base, height; - - if ( !this.active ) { - this.next( event ); - return; - } - if ( this.isLastItem() ) { - return; - } - if ( this._hasScroll() ) { - base = this.active.offset().top; - height = this.element.height(); - this.active.nextAll( ".ui-menu-item" ).each(function() { - item = $( this ); - return item.offset().top - base - height < 0; - }); - - this.focus( event, item ); - } else { - this.focus( event, this.activeMenu.find( this.options.items ) - [ !this.active ? "first" : "last" ]() ); - } - }, - - previousPage: function( event ) { - var item, base, height; - if ( !this.active ) { - this.next( event ); - return; - } - if ( this.isFirstItem() ) { - return; - } - if ( this._hasScroll() ) { - base = this.active.offset().top; - height = this.element.height(); - this.active.prevAll( ".ui-menu-item" ).each(function() { - item = $( this ); - return item.offset().top - base + height > 0; - }); - - this.focus( event, item ); - } else { - this.focus( event, this.activeMenu.find( this.options.items ).first() ); - } - }, - - _hasScroll: function() { - return this.element.outerHeight() < this.element.prop( "scrollHeight" ); - }, - - select: function( event ) { - // TODO: It should never be possible to not have an active item at this - // point, but the tests don't trigger mouseenter before click. - this.active = this.active || $( event.target ).closest( ".ui-menu-item" ); - var ui = { item: this.active }; - if ( !this.active.has( ".ui-menu" ).length ) { - this.collapseAll( event, true ); - } - this._trigger( "select", event, ui ); - }, - - _filterMenuItems: function(character) { - var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ), - regex = new RegExp( "^" + escapedCharacter, "i" ); - - return this.activeMenu - .find( this.options.items ) - - // Only match on items, not dividers or other content (#10571) - .filter( ".ui-menu-item" ) - .filter(function() { - return regex.test( $.trim( $( this ).text() ) ); - }); - } -}); - - -/*! - * jQuery UI Autocomplete 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/autocomplete/ - */ - - -$.widget( "ui.autocomplete", { - version: "1.11.4", - defaultElement: "<input>", - options: { - appendTo: null, - autoFocus: false, - delay: 300, - minLength: 1, - position: { - my: "left top", - at: "left bottom", - collision: "none" - }, - source: null, - - // callbacks - change: null, - close: null, - focus: null, - open: null, - response: null, - search: null, - select: null - }, - - requestIndex: 0, - pending: 0, - - _create: function() { - // Some browsers only repeat keydown events, not keypress events, - // so we use the suppressKeyPress flag to determine if we've already - // handled the keydown event. #7269 - // Unfortunately the code for & in keypress is the same as the up arrow, - // so we use the suppressKeyPressRepeat flag to avoid handling keypress - // events when we know the keydown event was used to modify the - // search term. #7799 - var suppressKeyPress, suppressKeyPressRepeat, suppressInput, - nodeName = this.element[ 0 ].nodeName.toLowerCase(), - isTextarea = nodeName === "textarea", - isInput = nodeName === "input"; - - this.isMultiLine = - // Textareas are always multi-line - isTextarea ? true : - // Inputs are always single-line, even if inside a contentEditable element - // IE also treats inputs as contentEditable - isInput ? false : - // All other element types are determined by whether or not they're contentEditable - this.element.prop( "isContentEditable" ); - - this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ]; - this.isNewMenu = true; - - this.element - .addClass( "ui-autocomplete-input" ) - .attr( "autocomplete", "off" ); - - this._on( this.element, { - keydown: function( event ) { - if ( this.element.prop( "readOnly" ) ) { - suppressKeyPress = true; - suppressInput = true; - suppressKeyPressRepeat = true; - return; - } - - suppressKeyPress = false; - suppressInput = false; - suppressKeyPressRepeat = false; - var keyCode = $.ui.keyCode; - switch ( event.keyCode ) { - case keyCode.PAGE_UP: - suppressKeyPress = true; - this._move( "previousPage", event ); - break; - case keyCode.PAGE_DOWN: - suppressKeyPress = true; - this._move( "nextPage", event ); - break; - case keyCode.UP: - suppressKeyPress = true; - this._keyEvent( "previous", event ); - break; - case keyCode.DOWN: - suppressKeyPress = true; - this._keyEvent( "next", event ); - break; - case keyCode.ENTER: - // when menu is open and has focus - if ( this.menu.active ) { - // #6055 - Opera still allows the keypress to occur - // which causes forms to submit - suppressKeyPress = true; - event.preventDefault(); - this.menu.select( event ); - } - break; - case keyCode.TAB: - if ( this.menu.active ) { - this.menu.select( event ); - } - break; - case keyCode.ESCAPE: - if ( this.menu.element.is( ":visible" ) ) { - if ( !this.isMultiLine ) { - this._value( this.term ); - } - this.close( event ); - // Different browsers have different default behavior for escape - // Single press can mean undo or clear - // Double press in IE means clear the whole form - event.preventDefault(); - } - break; - default: - suppressKeyPressRepeat = true; - // search timeout should be triggered before the input value is changed - this._searchTimeout( event ); - break; - } - }, - keypress: function( event ) { - if ( suppressKeyPress ) { - suppressKeyPress = false; - if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) { - event.preventDefault(); - } - return; - } - if ( suppressKeyPressRepeat ) { - return; - } - - // replicate some key handlers to allow them to repeat in Firefox and Opera - var keyCode = $.ui.keyCode; - switch ( event.keyCode ) { - case keyCode.PAGE_UP: - this._move( "previousPage", event ); - break; - case keyCode.PAGE_DOWN: - this._move( "nextPage", event ); - break; - case keyCode.UP: - this._keyEvent( "previous", event ); - break; - case keyCode.DOWN: - this._keyEvent( "next", event ); - break; - } - }, - input: function( event ) { - if ( suppressInput ) { - suppressInput = false; - event.preventDefault(); - return; - } - this._searchTimeout( event ); - }, - focus: function() { - this.selectedItem = null; - this.previous = this._value(); - }, - blur: function( event ) { - if ( this.cancelBlur ) { - delete this.cancelBlur; - return; - } - - clearTimeout( this.searching ); - this.close( event ); - this._change( event ); - } - }); - - this._initSource(); - this.menu = $( "<ul>" ) - .addClass( "ui-autocomplete ui-front" ) - .appendTo( this._appendTo() ) - .menu({ - // disable ARIA support, the live region takes care of that - role: null - }) - .hide() - .menu( "instance" ); - - this._on( this.menu.element, { - mousedown: function( event ) { - // prevent moving focus out of the text field - event.preventDefault(); - - // IE doesn't prevent moving focus even with event.preventDefault() - // so we set a flag to know when we should ignore the blur event - this.cancelBlur = true; - this._delay(function() { - delete this.cancelBlur; - }); - - // clicking on the scrollbar causes focus to shift to the body - // but we can't detect a mouseup or a click immediately afterward - // so we have to track the next mousedown and close the menu if - // the user clicks somewhere outside of the autocomplete - var menuElement = this.menu.element[ 0 ]; - if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { - this._delay(function() { - var that = this; - this.document.one( "mousedown", function( event ) { - if ( event.target !== that.element[ 0 ] && - event.target !== menuElement && - !$.contains( menuElement, event.target ) ) { - that.close(); - } - }); - }); - } - }, - menufocus: function( event, ui ) { - var label, item; - // support: Firefox - // Prevent accidental activation of menu items in Firefox (#7024 #9118) - if ( this.isNewMenu ) { - this.isNewMenu = false; - if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) { - this.menu.blur(); - - this.document.one( "mousemove", function() { - $( event.target ).trigger( event.originalEvent ); - }); - - return; - } - } - - item = ui.item.data( "ui-autocomplete-item" ); - if ( false !== this._trigger( "focus", event, { item: item } ) ) { - // use value to match what will end up in the input, if it was a key event - if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) { - this._value( item.value ); - } - } - - // Announce the value in the liveRegion - label = ui.item.attr( "aria-label" ) || item.value; - if ( label && $.trim( label ).length ) { - this.liveRegion.children().hide(); - $( "<div>" ).text( label ).appendTo( this.liveRegion ); - } - }, - menuselect: function( event, ui ) { - var item = ui.item.data( "ui-autocomplete-item" ), - previous = this.previous; - - // only trigger when focus was lost (click on menu) - if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) { - this.element.focus(); - this.previous = previous; - // #6109 - IE triggers two focus events and the second - // is asynchronous, so we need to reset the previous - // term synchronously and asynchronously :-( - this._delay(function() { - this.previous = previous; - this.selectedItem = item; - }); - } - - if ( false !== this._trigger( "select", event, { item: item } ) ) { - this._value( item.value ); - } - // reset the term after the select event - // this allows custom select handling to work properly - this.term = this._value(); - - this.close( event ); - this.selectedItem = item; - } - }); - - this.liveRegion = $( "<span>", { - role: "status", - "aria-live": "assertive", - "aria-relevant": "additions" - }) - .addClass( "ui-helper-hidden-accessible" ) - .appendTo( this.document[ 0 ].body ); - - // turning off autocomplete prevents the browser from remembering the - // value when navigating through history, so we re-enable autocomplete - // if the page is unloaded before the widget is destroyed. #7790 - this._on( this.window, { - beforeunload: function() { - this.element.removeAttr( "autocomplete" ); - } - }); - }, - - _destroy: function() { - clearTimeout( this.searching ); - this.element - .removeClass( "ui-autocomplete-input" ) - .removeAttr( "autocomplete" ); - this.menu.element.remove(); - this.liveRegion.remove(); - }, - - _setOption: function( key, value ) { - this._super( key, value ); - if ( key === "source" ) { - this._initSource(); - } - if ( key === "appendTo" ) { - this.menu.element.appendTo( this._appendTo() ); - } - if ( key === "disabled" && value && this.xhr ) { - this.xhr.abort(); - } - }, - - _appendTo: function() { - var element = this.options.appendTo; - - if ( element ) { - element = element.jquery || element.nodeType ? - $( element ) : - this.document.find( element ).eq( 0 ); - } - - if ( !element || !element[ 0 ] ) { - element = this.element.closest( ".ui-front" ); - } - - if ( !element.length ) { - element = this.document[ 0 ].body; - } - - return element; - }, - - _initSource: function() { - var array, url, - that = this; - if ( $.isArray( this.options.source ) ) { - array = this.options.source; - this.source = function( request, response ) { - response( $.ui.autocomplete.filter( array, request.term ) ); - }; - } else if ( typeof this.options.source === "string" ) { - url = this.options.source; - this.source = function( request, response ) { - if ( that.xhr ) { - that.xhr.abort(); - } - that.xhr = $.ajax({ - url: url, - data: request, - dataType: "json", - success: function( data ) { - response( data ); - }, - error: function() { - response([]); - } - }); - }; - } else { - this.source = this.options.source; - } - }, - - _searchTimeout: function( event ) { - clearTimeout( this.searching ); - this.searching = this._delay(function() { - - // Search if the value has changed, or if the user retypes the same value (see #7434) - var equalValues = this.term === this._value(), - menuVisible = this.menu.element.is( ":visible" ), - modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey; - - if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) { - this.selectedItem = null; - this.search( null, event ); - } - }, this.options.delay ); - }, - - search: function( value, event ) { - value = value != null ? value : this._value(); - - // always save the actual value, not the one passed as an argument - this.term = this._value(); - - if ( value.length < this.options.minLength ) { - return this.close( event ); - } - - if ( this._trigger( "search", event ) === false ) { - return; - } - - return this._search( value ); - }, - - _search: function( value ) { - this.pending++; - this.element.addClass( "ui-autocomplete-loading" ); - this.cancelSearch = false; - - this.source( { term: value }, this._response() ); - }, - - _response: function() { - var index = ++this.requestIndex; - - return $.proxy(function( content ) { - if ( index === this.requestIndex ) { - this.__response( content ); - } - - this.pending--; - if ( !this.pending ) { - this.element.removeClass( "ui-autocomplete-loading" ); - } - }, this ); - }, - - __response: function( content ) { - if ( content ) { - content = this._normalize( content ); - } - this._trigger( "response", null, { content: content } ); - if ( !this.options.disabled && content && content.length && !this.cancelSearch ) { - this._suggest( content ); - this._trigger( "open" ); - } else { - // use ._close() instead of .close() so we don't cancel future searches - this._close(); - } - }, - - close: function( event ) { - this.cancelSearch = true; - this._close( event ); - }, - - _close: function( event ) { - if ( this.menu.element.is( ":visible" ) ) { - this.menu.element.hide(); - this.menu.blur(); - this.isNewMenu = true; - this._trigger( "close", event ); - } - }, - - _change: function( event ) { - if ( this.previous !== this._value() ) { - this._trigger( "change", event, { item: this.selectedItem } ); - } - }, - - _normalize: function( items ) { - // assume all items have the right format when the first item is complete - if ( items.length && items[ 0 ].label && items[ 0 ].value ) { - return items; - } - return $.map( items, function( item ) { - if ( typeof item === "string" ) { - return { - label: item, - value: item - }; - } - return $.extend( {}, item, { - label: item.label || item.value, - value: item.value || item.label - }); - }); - }, - - _suggest: function( items ) { - var ul = this.menu.element.empty(); - this._renderMenu( ul, items ); - this.isNewMenu = true; - this.menu.refresh(); - - // size and position menu - ul.show(); - this._resizeMenu(); - ul.position( $.extend({ - of: this.element - }, this.options.position ) ); - - if ( this.options.autoFocus ) { - this.menu.next(); - } - }, - - _resizeMenu: function() { - var ul = this.menu.element; - ul.outerWidth( Math.max( - // Firefox wraps long text (possibly a rounding bug) - // so we add 1px to avoid the wrapping (#7513) - ul.width( "" ).outerWidth() + 1, - this.element.outerWidth() - ) ); - }, - - _renderMenu: function( ul, items ) { - var that = this; - $.each( items, function( index, item ) { - that._renderItemData( ul, item ); - }); - }, - - _renderItemData: function( ul, item ) { - return this._renderItem( ul, item ).data( "ui-autocomplete-item", item ); - }, - - _renderItem: function( ul, item ) { - return $( "<li>" ).text( item.label ).appendTo( ul ); - }, - - _move: function( direction, event ) { - if ( !this.menu.element.is( ":visible" ) ) { - this.search( null, event ); - return; - } - if ( this.menu.isFirstItem() && /^previous/.test( direction ) || - this.menu.isLastItem() && /^next/.test( direction ) ) { - - if ( !this.isMultiLine ) { - this._value( this.term ); - } - - this.menu.blur(); - return; - } - this.menu[ direction ]( event ); - }, - - widget: function() { - return this.menu.element; - }, - - _value: function() { - return this.valueMethod.apply( this.element, arguments ); - }, - - _keyEvent: function( keyEvent, event ) { - if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) { - this._move( keyEvent, event ); - - // prevents moving cursor to beginning/end of the text field in some browsers - event.preventDefault(); - } - } -}); - -$.extend( $.ui.autocomplete, { - escapeRegex: function( value ) { - return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); - }, - filter: function( array, term ) { - var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" ); - return $.grep( array, function( value ) { - return matcher.test( value.label || value.value || value ); - }); - } -}); - -// live region extension, adding a `messages` option -// NOTE: This is an experimental API. We are still investigating -// a full solution for string manipulation and internationalization. -$.widget( "ui.autocomplete", $.ui.autocomplete, { - options: { - messages: { - noResults: "No search results.", - results: function( amount ) { - return amount + ( amount > 1 ? " results are" : " result is" ) + - " available, use up and down arrow keys to navigate."; - } - } - }, - - __response: function( content ) { - var message; - this._superApply( arguments ); - if ( this.options.disabled || this.cancelSearch ) { - return; - } - if ( content && content.length ) { - message = this.options.messages.results( content.length ); - } else { - message = this.options.messages.noResults; - } - this.liveRegion.children().hide(); - $( "<div>" ).text( message ).appendTo( this.liveRegion ); - } -}); - -var autocomplete = $.ui.autocomplete; - - -/*! - * jQuery UI Button 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/button/ - */ - - -var lastActive, - baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", - typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", - formResetHandler = function() { - var form = $( this ); - setTimeout(function() { - form.find( ":ui-button" ).button( "refresh" ); - }, 1 ); - }, - radioGroup = function( radio ) { - var name = radio.name, - form = radio.form, - radios = $( [] ); - if ( name ) { - name = name.replace( /'/g, "\\'" ); - if ( form ) { - radios = $( form ).find( "[name='" + name + "'][type=radio]" ); - } else { - radios = $( "[name='" + name + "'][type=radio]", radio.ownerDocument ) - .filter(function() { - return !this.form; - }); - } - } - return radios; - }; - -$.widget( "ui.button", { - version: "1.11.4", - defaultElement: "<button>", - options: { - disabled: null, - text: true, - label: null, - icons: { - primary: null, - secondary: null - } - }, - _create: function() { - this.element.closest( "form" ) - .unbind( "reset" + this.eventNamespace ) - .bind( "reset" + this.eventNamespace, formResetHandler ); - - if ( typeof this.options.disabled !== "boolean" ) { - this.options.disabled = !!this.element.prop( "disabled" ); - } else { - this.element.prop( "disabled", this.options.disabled ); - } - - this._determineButtonType(); - this.hasTitle = !!this.buttonElement.attr( "title" ); - - var that = this, - options = this.options, - toggleButton = this.type === "checkbox" || this.type === "radio", - activeClass = !toggleButton ? "ui-state-active" : ""; - - if ( options.label === null ) { - options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html()); - } - - this._hoverable( this.buttonElement ); - - this.buttonElement - .addClass( baseClasses ) - .attr( "role", "button" ) - .bind( "mouseenter" + this.eventNamespace, function() { - if ( options.disabled ) { - return; - } - if ( this === lastActive ) { - $( this ).addClass( "ui-state-active" ); - } - }) - .bind( "mouseleave" + this.eventNamespace, function() { - if ( options.disabled ) { - return; - } - $( this ).removeClass( activeClass ); - }) - .bind( "click" + this.eventNamespace, function( event ) { - if ( options.disabled ) { - event.preventDefault(); - event.stopImmediatePropagation(); - } - }); - - // Can't use _focusable() because the element that receives focus - // and the element that gets the ui-state-focus class are different - this._on({ - focus: function() { - this.buttonElement.addClass( "ui-state-focus" ); - }, - blur: function() { - this.buttonElement.removeClass( "ui-state-focus" ); - } - }); - - if ( toggleButton ) { - this.element.bind( "change" + this.eventNamespace, function() { - that.refresh(); - }); - } - - if ( this.type === "checkbox" ) { - this.buttonElement.bind( "click" + this.eventNamespace, function() { - if ( options.disabled ) { - return false; - } - }); - } else if ( this.type === "radio" ) { - this.buttonElement.bind( "click" + this.eventNamespace, function() { - if ( options.disabled ) { - return false; - } - $( this ).addClass( "ui-state-active" ); - that.buttonElement.attr( "aria-pressed", "true" ); - - var radio = that.element[ 0 ]; - radioGroup( radio ) - .not( radio ) - .map(function() { - return $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - }); - } else { - this.buttonElement - .bind( "mousedown" + this.eventNamespace, function() { - if ( options.disabled ) { - return false; - } - $( this ).addClass( "ui-state-active" ); - lastActive = this; - that.document.one( "mouseup", function() { - lastActive = null; - }); - }) - .bind( "mouseup" + this.eventNamespace, function() { - if ( options.disabled ) { - return false; - } - $( this ).removeClass( "ui-state-active" ); - }) - .bind( "keydown" + this.eventNamespace, function(event) { - if ( options.disabled ) { - return false; - } - if ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) { - $( this ).addClass( "ui-state-active" ); - } - }) - // see #8559, we bind to blur here in case the button element loses - // focus between keydown and keyup, it would be left in an "active" state - .bind( "keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() { - $( this ).removeClass( "ui-state-active" ); - }); - - if ( this.buttonElement.is("a") ) { - this.buttonElement.keyup(function(event) { - if ( event.keyCode === $.ui.keyCode.SPACE ) { - // TODO pass through original event correctly (just as 2nd argument doesn't work) - $( this ).click(); - } - }); - } - } - - this._setOption( "disabled", options.disabled ); - this._resetButton(); - }, - - _determineButtonType: function() { - var ancestor, labelSelector, checked; - - if ( this.element.is("[type=checkbox]") ) { - this.type = "checkbox"; - } else if ( this.element.is("[type=radio]") ) { - this.type = "radio"; - } else if ( this.element.is("input") ) { - this.type = "input"; - } else { - this.type = "button"; - } - - if ( this.type === "checkbox" || this.type === "radio" ) { - // we don't search against the document in case the element - // is disconnected from the DOM - ancestor = this.element.parents().last(); - labelSelector = "label[for='" + this.element.attr("id") + "']"; - this.buttonElement = ancestor.find( labelSelector ); - if ( !this.buttonElement.length ) { - ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings(); - this.buttonElement = ancestor.filter( labelSelector ); - if ( !this.buttonElement.length ) { - this.buttonElement = ancestor.find( labelSelector ); - } - } - this.element.addClass( "ui-helper-hidden-accessible" ); - - checked = this.element.is( ":checked" ); - if ( checked ) { - this.buttonElement.addClass( "ui-state-active" ); - } - this.buttonElement.prop( "aria-pressed", checked ); - } else { - this.buttonElement = this.element; - } - }, - - widget: function() { - return this.buttonElement; - }, - - _destroy: function() { - this.element - .removeClass( "ui-helper-hidden-accessible" ); - this.buttonElement - .removeClass( baseClasses + " ui-state-active " + typeClasses ) - .removeAttr( "role" ) - .removeAttr( "aria-pressed" ) - .html( this.buttonElement.find(".ui-button-text").html() ); - - if ( !this.hasTitle ) { - this.buttonElement.removeAttr( "title" ); - } - }, - - _setOption: function( key, value ) { - this._super( key, value ); - if ( key === "disabled" ) { - this.widget().toggleClass( "ui-state-disabled", !!value ); - this.element.prop( "disabled", !!value ); - if ( value ) { - if ( this.type === "checkbox" || this.type === "radio" ) { - this.buttonElement.removeClass( "ui-state-focus" ); - } else { - this.buttonElement.removeClass( "ui-state-focus ui-state-active" ); - } - } - return; - } - this._resetButton(); - }, - - refresh: function() { - //See #8237 & #8828 - var isDisabled = this.element.is( "input, button" ) ? this.element.is( ":disabled" ) : this.element.hasClass( "ui-button-disabled" ); - - if ( isDisabled !== this.options.disabled ) { - this._setOption( "disabled", isDisabled ); - } - if ( this.type === "radio" ) { - radioGroup( this.element[0] ).each(function() { - if ( $( this ).is( ":checked" ) ) { - $( this ).button( "widget" ) - .addClass( "ui-state-active" ) - .attr( "aria-pressed", "true" ); - } else { - $( this ).button( "widget" ) - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - } - }); - } else if ( this.type === "checkbox" ) { - if ( this.element.is( ":checked" ) ) { - this.buttonElement - .addClass( "ui-state-active" ) - .attr( "aria-pressed", "true" ); - } else { - this.buttonElement - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - } - } - }, - - _resetButton: function() { - if ( this.type === "input" ) { - if ( this.options.label ) { - this.element.val( this.options.label ); - } - return; - } - var buttonElement = this.buttonElement.removeClass( typeClasses ), - buttonText = $( "<span></span>", this.document[0] ) - .addClass( "ui-button-text" ) - .html( this.options.label ) - .appendTo( buttonElement.empty() ) - .text(), - icons = this.options.icons, - multipleIcons = icons.primary && icons.secondary, - buttonClasses = []; - - if ( icons.primary || icons.secondary ) { - if ( this.options.text ) { - buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) ); - } - - if ( icons.primary ) { - buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" ); - } - - if ( icons.secondary ) { - buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" ); - } - - if ( !this.options.text ) { - buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" ); - - if ( !this.hasTitle ) { - buttonElement.attr( "title", $.trim( buttonText ) ); - } - } - } else { - buttonClasses.push( "ui-button-text-only" ); - } - buttonElement.addClass( buttonClasses.join( " " ) ); - } -}); - -$.widget( "ui.buttonset", { - version: "1.11.4", - options: { - items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)" - }, - - _create: function() { - this.element.addClass( "ui-buttonset" ); - }, - - _init: function() { - this.refresh(); - }, - - _setOption: function( key, value ) { - if ( key === "disabled" ) { - this.buttons.button( "option", key, value ); - } - - this._super( key, value ); - }, - - refresh: function() { - var rtl = this.element.css( "direction" ) === "rtl", - allButtons = this.element.find( this.options.items ), - existingButtons = allButtons.filter( ":ui-button" ); - - // Initialize new buttons - allButtons.not( ":ui-button" ).button(); - - // Refresh existing buttons - existingButtons.button( "refresh" ); - - this.buttons = allButtons - .map(function() { - return $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-corner-all ui-corner-left ui-corner-right" ) - .filter( ":first" ) - .addClass( rtl ? "ui-corner-right" : "ui-corner-left" ) - .end() - .filter( ":last" ) - .addClass( rtl ? "ui-corner-left" : "ui-corner-right" ) - .end() - .end(); - }, - - _destroy: function() { - this.element.removeClass( "ui-buttonset" ); - this.buttons - .map(function() { - return $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-corner-left ui-corner-right" ) - .end() - .button( "destroy" ); - } -}); - -var button = $.ui.button; - - -/*! - * jQuery UI Datepicker 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/datepicker/ - */ - - -$.extend($.ui, { datepicker: { version: "1.11.4" } }); - -var datepicker_instActive; - -function datepicker_getZindex( elem ) { - var position, value; - while ( elem.length && elem[ 0 ] !== document ) { - // Ignore z-index if position is set to a value where z-index is ignored by the browser - // This makes behavior of this function consistent across browsers - // WebKit always returns auto if the element is positioned - position = elem.css( "position" ); - if ( position === "absolute" || position === "relative" || position === "fixed" ) { - // IE returns 0 when zIndex is not specified - // other browsers return a string - // we ignore the case of nested elements with an explicit value of 0 - // <div style="z-index: -10;"><div style="z-index: 0;"></div></div> - value = parseInt( elem.css( "zIndex" ), 10 ); - if ( !isNaN( value ) && value !== 0 ) { - return value; - } - } - elem = elem.parent(); - } - - return 0; -} -/* Date picker manager. - Use the singleton instance of this class, $.datepicker, to interact with the date picker. - Settings for (groups of) date pickers are maintained in an instance object, - allowing multiple different settings on the same page. */ - -function Datepicker() { - this._curInst = null; // The current instance in use - this._keyEvent = false; // If the last event was a key event - this._disabledInputs = []; // List of date picker inputs that have been disabled - this._datepickerShowing = false; // True if the popup picker is showing , false if not - this._inDialog = false; // True if showing within a "dialog", false if not - this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division - this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class - this._appendClass = "ui-datepicker-append"; // The name of the append marker class - this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class - this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class - this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class - this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class - this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class - this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class - this.regional = []; // Available regional settings, indexed by language code - this.regional[""] = { // Default regional settings - closeText: "Done", // Display text for close link - prevText: "Prev", // Display text for previous month link - nextText: "Next", // Display text for next month link - currentText: "Today", // Display text for current month link - monthNames: ["January","February","March","April","May","June", - "July","August","September","October","November","December"], // Names of months for drop-down and formatting - monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], // For formatting - dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], // For formatting - dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], // For formatting - dayNamesMin: ["Su","Mo","Tu","We","Th","Fr","Sa"], // Column headings for days starting at Sunday - weekHeader: "Wk", // Column header for week of the year - dateFormat: "mm/dd/yy", // See format options on parseDate - firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ... - isRTL: false, // True if right-to-left language, false if left-to-right - showMonthAfterYear: false, // True if the year select precedes month, false for month then year - yearSuffix: "" // Additional text to append to the year in the month headers - }; - this._defaults = { // Global defaults for all the date picker instances - showOn: "focus", // "focus" for popup on focus, - // "button" for trigger button, or "both" for either - showAnim: "fadeIn", // Name of jQuery animation for popup - showOptions: {}, // Options for enhanced animations - defaultDate: null, // Used when field is blank: actual date, - // +/-number for offset from today, null for today - appendText: "", // Display text following the input box, e.g. showing the format - buttonText: "...", // Text for trigger button - buttonImage: "", // URL for trigger button image - buttonImageOnly: false, // True if the image appears alone, false if it appears on a button - hideIfNoPrevNext: false, // True to hide next/previous month links - // if not applicable, false to just disable them - navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links - gotoCurrent: false, // True if today link goes back to current selection instead - changeMonth: false, // True if month can be selected directly, false if only prev/next - changeYear: false, // True if year can be selected directly, false if only prev/next - yearRange: "c-10:c+10", // Range of years to display in drop-down, - // either relative to today's year (-nn:+nn), relative to currently displayed year - // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n) - showOtherMonths: false, // True to show dates in other months, false to leave blank - selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable - showWeek: false, // True to show week of the year, false to not show it - calculateWeek: this.iso8601Week, // How to calculate the week of the year, - // takes a Date and returns the number of the week for it - shortYearCutoff: "+10", // Short year values < this are in the current century, - // > this are in the previous century, - // string value starting with "+" for current year + value - minDate: null, // The earliest selectable date, or null for no limit - maxDate: null, // The latest selectable date, or null for no limit - duration: "fast", // Duration of display/closure - beforeShowDay: null, // Function that takes a date and returns an array with - // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "", - // [2] = cell title (optional), e.g. $.datepicker.noWeekends - beforeShow: null, // Function that takes an input field and - // returns a set of custom settings for the date picker - onSelect: null, // Define a callback function when a date is selected - onChangeMonthYear: null, // Define a callback function when the month or year is changed - onClose: null, // Define a callback function when the datepicker is closed - numberOfMonths: 1, // Number of months to show at a time - showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0) - stepMonths: 1, // Number of months to step back/forward - stepBigMonths: 12, // Number of months to step back/forward for the big links - altField: "", // Selector for an alternate field to store selected dates into - altFormat: "", // The date format to use for the alternate field - constrainInput: true, // The input is constrained by the current date format - showButtonPanel: false, // True to show button panel, false to not show it - autoSize: false, // True to size the input for the date format, false to leave as is - disabled: false // The initial disabled state - }; - $.extend(this._defaults, this.regional[""]); - this.regional.en = $.extend( true, {}, this.regional[ "" ]); - this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en ); - this.dpDiv = datepicker_bindHover($("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")); -} - -$.extend(Datepicker.prototype, { - /* Class name added to elements to indicate already configured with a date picker. */ - markerClassName: "hasDatepicker", - - //Keep track of the maximum number of rows displayed (see #7043) - maxRows: 4, - - // TODO rename to "widget" when switching to widget factory - _widgetDatepicker: function() { - return this.dpDiv; - }, - - /* Override the default settings for all instances of the date picker. - * @param settings object - the new settings to use as defaults (anonymous object) - * @return the manager object - */ - setDefaults: function(settings) { - datepicker_extendRemove(this._defaults, settings || {}); - return this; - }, - - /* Attach the date picker to a jQuery selection. - * @param target element - the target input field or division or span - * @param settings object - the new settings to use for this date picker instance (anonymous) - */ - _attachDatepicker: function(target, settings) { - var nodeName, inline, inst; - nodeName = target.nodeName.toLowerCase(); - inline = (nodeName === "div" || nodeName === "span"); - if (!target.id) { - this.uuid += 1; - target.id = "dp" + this.uuid; - } - inst = this._newInst($(target), inline); - inst.settings = $.extend({}, settings || {}); - if (nodeName === "input") { - this._connectDatepicker(target, inst); - } else if (inline) { - this._inlineDatepicker(target, inst); - } - }, - - /* Create a new instance object. */ - _newInst: function(target, inline) { - var id = target[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); // escape jQuery meta chars - return {id: id, input: target, // associated target - selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection - drawMonth: 0, drawYear: 0, // month being drawn - inline: inline, // is datepicker inline or not - dpDiv: (!inline ? this.dpDiv : // presentation div - datepicker_bindHover($("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")))}; - }, - - /* Attach the date picker to an input field. */ - _connectDatepicker: function(target, inst) { - var input = $(target); - inst.append = $([]); - inst.trigger = $([]); - if (input.hasClass(this.markerClassName)) { - return; - } - this._attachments(input, inst); - input.addClass(this.markerClassName).keydown(this._doKeyDown). - keypress(this._doKeyPress).keyup(this._doKeyUp); - this._autoSize(inst); - $.data(target, "datepicker", inst); - //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665) - if( inst.settings.disabled ) { - this._disableDatepicker( target ); - } - }, - - /* Make attachments based on settings. */ - _attachments: function(input, inst) { - var showOn, buttonText, buttonImage, - appendText = this._get(inst, "appendText"), - isRTL = this._get(inst, "isRTL"); - - if (inst.append) { - inst.append.remove(); - } - if (appendText) { - inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>"); - input[isRTL ? "before" : "after"](inst.append); - } - - input.unbind("focus", this._showDatepicker); - - if (inst.trigger) { - inst.trigger.remove(); - } - - showOn = this._get(inst, "showOn"); - if (showOn === "focus" || showOn === "both") { // pop-up date picker when in the marked field - input.focus(this._showDatepicker); - } - if (showOn === "button" || showOn === "both") { // pop-up date picker when button clicked - buttonText = this._get(inst, "buttonText"); - buttonImage = this._get(inst, "buttonImage"); - inst.trigger = $(this._get(inst, "buttonImageOnly") ? - $("<img/>").addClass(this._triggerClass). - attr({ src: buttonImage, alt: buttonText, title: buttonText }) : - $("<button type='button'></button>").addClass(this._triggerClass). - html(!buttonImage ? buttonText : $("<img/>").attr( - { src:buttonImage, alt:buttonText, title:buttonText }))); - input[isRTL ? "before" : "after"](inst.trigger); - inst.trigger.click(function() { - if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) { - $.datepicker._hideDatepicker(); - } else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) { - $.datepicker._hideDatepicker(); - $.datepicker._showDatepicker(input[0]); - } else { - $.datepicker._showDatepicker(input[0]); - } - return false; - }); - } - }, - - /* Apply the maximum length for the date format. */ - _autoSize: function(inst) { - if (this._get(inst, "autoSize") && !inst.inline) { - var findMax, max, maxI, i, - date = new Date(2009, 12 - 1, 20), // Ensure double digits - dateFormat = this._get(inst, "dateFormat"); - - if (dateFormat.match(/[DM]/)) { - findMax = function(names) { - max = 0; - maxI = 0; - for (i = 0; i < names.length; i++) { - if (names[i].length > max) { - max = names[i].length; - maxI = i; - } - } - return maxI; - }; - date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? - "monthNames" : "monthNamesShort")))); - date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? - "dayNames" : "dayNamesShort"))) + 20 - date.getDay()); - } - inst.input.attr("size", this._formatDate(inst, date).length); - } - }, - - /* Attach an inline date picker to a div. */ - _inlineDatepicker: function(target, inst) { - var divSpan = $(target); - if (divSpan.hasClass(this.markerClassName)) { - return; - } - divSpan.addClass(this.markerClassName).append(inst.dpDiv); - $.data(target, "datepicker", inst); - this._setDate(inst, this._getDefaultDate(inst), true); - this._updateDatepicker(inst); - this._updateAlternate(inst); - //If disabled option is true, disable the datepicker before showing it (see ticket #5665) - if( inst.settings.disabled ) { - this._disableDatepicker( target ); - } - // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements - // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height - inst.dpDiv.css( "display", "block" ); - }, - - /* Pop-up the date picker in a "dialog" box. - * @param input element - ignored - * @param date string or Date - the initial date to display - * @param onSelect function - the function to call when a date is selected - * @param settings object - update the dialog date picker instance's settings (anonymous object) - * @param pos int[2] - coordinates for the dialog's position within the screen or - * event - with x/y coordinates or - * leave empty for default (screen centre) - * @return the manager object - */ - _dialogDatepicker: function(input, date, onSelect, settings, pos) { - var id, browserWidth, browserHeight, scrollX, scrollY, - inst = this._dialogInst; // internal instance - - if (!inst) { - this.uuid += 1; - id = "dp" + this.uuid; - this._dialogInput = $("<input type='text' id='" + id + - "' style='position: absolute; top: -100px; width: 0px;'/>"); - this._dialogInput.keydown(this._doKeyDown); - $("body").append(this._dialogInput); - inst = this._dialogInst = this._newInst(this._dialogInput, false); - inst.settings = {}; - $.data(this._dialogInput[0], "datepicker", inst); - } - datepicker_extendRemove(inst.settings, settings || {}); - date = (date && date.constructor === Date ? this._formatDate(inst, date) : date); - this._dialogInput.val(date); - - this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); - if (!this._pos) { - browserWidth = document.documentElement.clientWidth; - browserHeight = document.documentElement.clientHeight; - scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; - scrollY = document.documentElement.scrollTop || document.body.scrollTop; - this._pos = // should use actual width/height below - [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; - } - - // move input on screen for focus, but hidden behind dialog - this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px"); - inst.settings.onSelect = onSelect; - this._inDialog = true; - this.dpDiv.addClass(this._dialogClass); - this._showDatepicker(this._dialogInput[0]); - if ($.blockUI) { - $.blockUI(this.dpDiv); - } - $.data(this._dialogInput[0], "datepicker", inst); - return this; - }, - - /* Detach a datepicker from its control. - * @param target element - the target input field or division or span - */ - _destroyDatepicker: function(target) { - var nodeName, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - $.removeData(target, "datepicker"); - if (nodeName === "input") { - inst.append.remove(); - inst.trigger.remove(); - $target.removeClass(this.markerClassName). - unbind("focus", this._showDatepicker). - unbind("keydown", this._doKeyDown). - unbind("keypress", this._doKeyPress). - unbind("keyup", this._doKeyUp); - } else if (nodeName === "div" || nodeName === "span") { - $target.removeClass(this.markerClassName).empty(); - } - - if ( datepicker_instActive === inst ) { - datepicker_instActive = null; - } - }, - - /* Enable the date picker to a jQuery selection. - * @param target element - the target input field or division or span - */ - _enableDatepicker: function(target) { - var nodeName, inline, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - if (nodeName === "input") { - target.disabled = false; - inst.trigger.filter("button"). - each(function() { this.disabled = false; }).end(). - filter("img").css({opacity: "1.0", cursor: ""}); - } else if (nodeName === "div" || nodeName === "span") { - inline = $target.children("." + this._inlineClass); - inline.children().removeClass("ui-state-disabled"); - inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). - prop("disabled", false); - } - this._disabledInputs = $.map(this._disabledInputs, - function(value) { return (value === target ? null : value); }); // delete entry - }, - - /* Disable the date picker to a jQuery selection. - * @param target element - the target input field or division or span - */ - _disableDatepicker: function(target) { - var nodeName, inline, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - if (nodeName === "input") { - target.disabled = true; - inst.trigger.filter("button"). - each(function() { this.disabled = true; }).end(). - filter("img").css({opacity: "0.5", cursor: "default"}); - } else if (nodeName === "div" || nodeName === "span") { - inline = $target.children("." + this._inlineClass); - inline.children().addClass("ui-state-disabled"); - inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). - prop("disabled", true); - } - this._disabledInputs = $.map(this._disabledInputs, - function(value) { return (value === target ? null : value); }); // delete entry - this._disabledInputs[this._disabledInputs.length] = target; - }, - - /* Is the first field in a jQuery collection disabled as a datepicker? - * @param target element - the target input field or division or span - * @return boolean - true if disabled, false if enabled - */ - _isDisabledDatepicker: function(target) { - if (!target) { - return false; - } - for (var i = 0; i < this._disabledInputs.length; i++) { - if (this._disabledInputs[i] === target) { - return true; - } - } - return false; - }, - - /* Retrieve the instance data for the target control. - * @param target element - the target input field or division or span - * @return object - the associated instance data - * @throws error if a jQuery problem getting data - */ - _getInst: function(target) { - try { - return $.data(target, "datepicker"); - } - catch (err) { - throw "Missing instance data for this datepicker"; - } - }, - - /* Update or retrieve the settings for a date picker attached to an input field or division. - * @param target element - the target input field or division or span - * @param name object - the new settings to update or - * string - the name of the setting to change or retrieve, - * when retrieving also "all" for all instance settings or - * "defaults" for all global defaults - * @param value any - the new value for the setting - * (omit if above is an object or to retrieve a value) - */ - _optionDatepicker: function(target, name, value) { - var settings, date, minDate, maxDate, - inst = this._getInst(target); - - if (arguments.length === 2 && typeof name === "string") { - return (name === "defaults" ? $.extend({}, $.datepicker._defaults) : - (inst ? (name === "all" ? $.extend({}, inst.settings) : - this._get(inst, name)) : null)); - } - - settings = name || {}; - if (typeof name === "string") { - settings = {}; - settings[name] = value; - } - - if (inst) { - if (this._curInst === inst) { - this._hideDatepicker(); - } - - date = this._getDateDatepicker(target, true); - minDate = this._getMinMaxDate(inst, "min"); - maxDate = this._getMinMaxDate(inst, "max"); - datepicker_extendRemove(inst.settings, settings); - // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided - if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) { - inst.settings.minDate = this._formatDate(inst, minDate); - } - if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) { - inst.settings.maxDate = this._formatDate(inst, maxDate); - } - if ( "disabled" in settings ) { - if ( settings.disabled ) { - this._disableDatepicker(target); - } else { - this._enableDatepicker(target); - } - } - this._attachments($(target), inst); - this._autoSize(inst); - this._setDate(inst, date); - this._updateAlternate(inst); - this._updateDatepicker(inst); - } - }, - - // change method deprecated - _changeDatepicker: function(target, name, value) { - this._optionDatepicker(target, name, value); - }, - - /* Redraw the date picker attached to an input field or division. - * @param target element - the target input field or division or span - */ - _refreshDatepicker: function(target) { - var inst = this._getInst(target); - if (inst) { - this._updateDatepicker(inst); - } - }, - - /* Set the dates for a jQuery selection. - * @param target element - the target input field or division or span - * @param date Date - the new date - */ - _setDateDatepicker: function(target, date) { - var inst = this._getInst(target); - if (inst) { - this._setDate(inst, date); - this._updateDatepicker(inst); - this._updateAlternate(inst); - } - }, - - /* Get the date(s) for the first entry in a jQuery selection. - * @param target element - the target input field or division or span - * @param noDefault boolean - true if no default date is to be used - * @return Date - the current date - */ - _getDateDatepicker: function(target, noDefault) { - var inst = this._getInst(target); - if (inst && !inst.inline) { - this._setDateFromField(inst, noDefault); - } - return (inst ? this._getDate(inst) : null); - }, - - /* Handle keystrokes. */ - _doKeyDown: function(event) { - var onSelect, dateStr, sel, - inst = $.datepicker._getInst(event.target), - handled = true, - isRTL = inst.dpDiv.is(".ui-datepicker-rtl"); - - inst._keyEvent = true; - if ($.datepicker._datepickerShowing) { - switch (event.keyCode) { - case 9: $.datepicker._hideDatepicker(); - handled = false; - break; // hide on tab out - case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." + - $.datepicker._currentClass + ")", inst.dpDiv); - if (sel[0]) { - $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); - } - - onSelect = $.datepicker._get(inst, "onSelect"); - if (onSelect) { - dateStr = $.datepicker._formatDate(inst); - - // trigger custom callback - onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); - } else { - $.datepicker._hideDatepicker(); - } - - return false; // don't submit the form - case 27: $.datepicker._hideDatepicker(); - break; // hide on escape - case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? - -$.datepicker._get(inst, "stepBigMonths") : - -$.datepicker._get(inst, "stepMonths")), "M"); - break; // previous month/year on page up/+ ctrl - case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? - +$.datepicker._get(inst, "stepBigMonths") : - +$.datepicker._get(inst, "stepMonths")), "M"); - break; // next month/year on page down/+ ctrl - case 35: if (event.ctrlKey || event.metaKey) { - $.datepicker._clearDate(event.target); - } - handled = event.ctrlKey || event.metaKey; - break; // clear on ctrl or command +end - case 36: if (event.ctrlKey || event.metaKey) { - $.datepicker._gotoToday(event.target); - } - handled = event.ctrlKey || event.metaKey; - break; // current on ctrl or command +home - case 37: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D"); - } - handled = event.ctrlKey || event.metaKey; - // -1 day on ctrl or command +left - if (event.originalEvent.altKey) { - $.datepicker._adjustDate(event.target, (event.ctrlKey ? - -$.datepicker._get(inst, "stepBigMonths") : - -$.datepicker._get(inst, "stepMonths")), "M"); - } - // next month/year on alt +left on Mac - break; - case 38: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, -7, "D"); - } - handled = event.ctrlKey || event.metaKey; - break; // -1 week on ctrl or command +up - case 39: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D"); - } - handled = event.ctrlKey || event.metaKey; - // +1 day on ctrl or command +right - if (event.originalEvent.altKey) { - $.datepicker._adjustDate(event.target, (event.ctrlKey ? - +$.datepicker._get(inst, "stepBigMonths") : - +$.datepicker._get(inst, "stepMonths")), "M"); - } - // next month/year on alt +right - break; - case 40: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, +7, "D"); - } - handled = event.ctrlKey || event.metaKey; - break; // +1 week on ctrl or command +down - default: handled = false; - } - } else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home - $.datepicker._showDatepicker(this); - } else { - handled = false; - } - - if (handled) { - event.preventDefault(); - event.stopPropagation(); - } - }, - - /* Filter entered characters - based on date format. */ - _doKeyPress: function(event) { - var chars, chr, - inst = $.datepicker._getInst(event.target); - - if ($.datepicker._get(inst, "constrainInput")) { - chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat")); - chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode); - return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1); - } - }, - - /* Synchronise manual entry and field/alternate field. */ - _doKeyUp: function(event) { - var date, - inst = $.datepicker._getInst(event.target); - - if (inst.input.val() !== inst.lastVal) { - try { - date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), - (inst.input ? inst.input.val() : null), - $.datepicker._getFormatConfig(inst)); - - if (date) { // only if valid - $.datepicker._setDateFromField(inst); - $.datepicker._updateAlternate(inst); - $.datepicker._updateDatepicker(inst); - } - } - catch (err) { - } - } - return true; - }, - - /* Pop-up the date picker for a given input field. - * If false returned from beforeShow event handler do not show. - * @param input element - the input field attached to the date picker or - * event - if triggered by focus - */ - _showDatepicker: function(input) { - input = input.target || input; - if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger - input = $("input", input.parentNode)[0]; - } - - if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here - return; - } - - var inst, beforeShow, beforeShowSettings, isFixed, - offset, showAnim, duration; - - inst = $.datepicker._getInst(input); - if ($.datepicker._curInst && $.datepicker._curInst !== inst) { - $.datepicker._curInst.dpDiv.stop(true, true); - if ( inst && $.datepicker._datepickerShowing ) { - $.datepicker._hideDatepicker( $.datepicker._curInst.input[0] ); - } - } - - beforeShow = $.datepicker._get(inst, "beforeShow"); - beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {}; - if(beforeShowSettings === false){ - return; - } - datepicker_extendRemove(inst.settings, beforeShowSettings); - - inst.lastVal = null; - $.datepicker._lastInput = input; - $.datepicker._setDateFromField(inst); - - if ($.datepicker._inDialog) { // hide cursor - input.value = ""; - } - if (!$.datepicker._pos) { // position below input - $.datepicker._pos = $.datepicker._findPos(input); - $.datepicker._pos[1] += input.offsetHeight; // add the height - } - - isFixed = false; - $(input).parents().each(function() { - isFixed |= $(this).css("position") === "fixed"; - return !isFixed; - }); - - offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; - $.datepicker._pos = null; - //to avoid flashes on Firefox - inst.dpDiv.empty(); - // determine sizing offscreen - inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"}); - $.datepicker._updateDatepicker(inst); - // fix width for dynamic number of date pickers - // and adjust position before showing - offset = $.datepicker._checkOffset(inst, offset, isFixed); - inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? - "static" : (isFixed ? "fixed" : "absolute")), display: "none", - left: offset.left + "px", top: offset.top + "px"}); - - if (!inst.inline) { - showAnim = $.datepicker._get(inst, "showAnim"); - duration = $.datepicker._get(inst, "duration"); - inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 ); - $.datepicker._datepickerShowing = true; - - if ( $.effects && $.effects.effect[ showAnim ] ) { - inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration); - } else { - inst.dpDiv[showAnim || "show"](showAnim ? duration : null); - } - - if ( $.datepicker._shouldFocusInput( inst ) ) { - inst.input.focus(); - } - - $.datepicker._curInst = inst; - } - }, - - /* Generate the date picker content. */ - _updateDatepicker: function(inst) { - this.maxRows = 4; //Reset the max number of rows being displayed (see #7043) - datepicker_instActive = inst; // for delegate hover events - inst.dpDiv.empty().append(this._generateHTML(inst)); - this._attachHandlers(inst); - - var origyearshtml, - numMonths = this._getNumberOfMonths(inst), - cols = numMonths[1], - width = 17, - activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" ); - - if ( activeCell.length > 0 ) { - datepicker_handleMouseover.apply( activeCell.get( 0 ) ); - } - - inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); - if (cols > 1) { - inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em"); - } - inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") + - "Class"]("ui-datepicker-multi"); - inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") + - "Class"]("ui-datepicker-rtl"); - - if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) { - inst.input.focus(); - } - - // deffered render of the years select (to avoid flashes on Firefox) - if( inst.yearshtml ){ - origyearshtml = inst.yearshtml; - setTimeout(function(){ - //assure that inst.yearshtml didn't change. - if( origyearshtml === inst.yearshtml && inst.yearshtml ){ - inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml); - } - origyearshtml = inst.yearshtml = null; - }, 0); - } - }, - - // #6694 - don't focus the input if it's already focused - // this breaks the change event in IE - // Support: IE and jQuery <1.9 - _shouldFocusInput: function( inst ) { - return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" ); - }, - - /* Check positioning to remain on screen. */ - _checkOffset: function(inst, offset, isFixed) { - var dpWidth = inst.dpDiv.outerWidth(), - dpHeight = inst.dpDiv.outerHeight(), - inputWidth = inst.input ? inst.input.outerWidth() : 0, - inputHeight = inst.input ? inst.input.outerHeight() : 0, - viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()), - viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop()); - - offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0); - offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0; - offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; - - // now check if datepicker is showing outside window viewport - move to a better place if so. - offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? - Math.abs(offset.left + dpWidth - viewWidth) : 0); - offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? - Math.abs(dpHeight + inputHeight) : 0); - - return offset; - }, - - /* Find an object's position on the screen. */ - _findPos: function(obj) { - var position, - inst = this._getInst(obj), - isRTL = this._get(inst, "isRTL"); - - while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) { - obj = obj[isRTL ? "previousSibling" : "nextSibling"]; - } - - position = $(obj).offset(); - return [position.left, position.top]; - }, - - /* Hide the date picker from view. - * @param input element - the input field attached to the date picker - */ - _hideDatepicker: function(input) { - var showAnim, duration, postProcess, onClose, - inst = this._curInst; - - if (!inst || (input && inst !== $.data(input, "datepicker"))) { - return; - } - - if (this._datepickerShowing) { - showAnim = this._get(inst, "showAnim"); - duration = this._get(inst, "duration"); - postProcess = function() { - $.datepicker._tidyDialog(inst); - }; - - // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed - if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) { - inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess); - } else { - inst.dpDiv[(showAnim === "slideDown" ? "slideUp" : - (showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess); - } - - if (!showAnim) { - postProcess(); - } - this._datepickerShowing = false; - - onClose = this._get(inst, "onClose"); - if (onClose) { - onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]); - } - - this._lastInput = null; - if (this._inDialog) { - this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); - if ($.blockUI) { - $.unblockUI(); - $("body").append(this.dpDiv); - } - } - this._inDialog = false; - } - }, - - /* Tidy up after a dialog display. */ - _tidyDialog: function(inst) { - inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar"); - }, - - /* Close date picker if clicked elsewhere. */ - _checkExternalClick: function(event) { - if (!$.datepicker._curInst) { - return; - } - - var $target = $(event.target), - inst = $.datepicker._getInst($target[0]); - - if ( ( ( $target[0].id !== $.datepicker._mainDivId && - $target.parents("#" + $.datepicker._mainDivId).length === 0 && - !$target.hasClass($.datepicker.markerClassName) && - !$target.closest("." + $.datepicker._triggerClass).length && - $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) || - ( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) { - $.datepicker._hideDatepicker(); - } - }, - - /* Adjust one of the date sub-fields. */ - _adjustDate: function(id, offset, period) { - var target = $(id), - inst = this._getInst(target[0]); - - if (this._isDisabledDatepicker(target[0])) { - return; - } - this._adjustInstDate(inst, offset + - (period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning - period); - this._updateDatepicker(inst); - }, - - /* Action for current link. */ - _gotoToday: function(id) { - var date, - target = $(id), - inst = this._getInst(target[0]); - - if (this._get(inst, "gotoCurrent") && inst.currentDay) { - inst.selectedDay = inst.currentDay; - inst.drawMonth = inst.selectedMonth = inst.currentMonth; - inst.drawYear = inst.selectedYear = inst.currentYear; - } else { - date = new Date(); - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - } - this._notifyChange(inst); - this._adjustDate(target); - }, - - /* Action for selecting a new month/year. */ - _selectMonthYear: function(id, select, period) { - var target = $(id), - inst = this._getInst(target[0]); - - inst["selected" + (period === "M" ? "Month" : "Year")] = - inst["draw" + (period === "M" ? "Month" : "Year")] = - parseInt(select.options[select.selectedIndex].value,10); - - this._notifyChange(inst); - this._adjustDate(target); - }, - - /* Action for selecting a day. */ - _selectDay: function(id, month, year, td) { - var inst, - target = $(id); - - if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { - return; - } - - inst = this._getInst(target[0]); - inst.selectedDay = inst.currentDay = $("a", td).html(); - inst.selectedMonth = inst.currentMonth = month; - inst.selectedYear = inst.currentYear = year; - this._selectDate(id, this._formatDate(inst, - inst.currentDay, inst.currentMonth, inst.currentYear)); - }, - - /* Erase the input field and hide the date picker. */ - _clearDate: function(id) { - var target = $(id); - this._selectDate(target, ""); - }, - - /* Update the input field with the selected date. */ - _selectDate: function(id, dateStr) { - var onSelect, - target = $(id), - inst = this._getInst(target[0]); - - dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); - if (inst.input) { - inst.input.val(dateStr); - } - this._updateAlternate(inst); - - onSelect = this._get(inst, "onSelect"); - if (onSelect) { - onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback - } else if (inst.input) { - inst.input.trigger("change"); // fire the change event - } - - if (inst.inline){ - this._updateDatepicker(inst); - } else { - this._hideDatepicker(); - this._lastInput = inst.input[0]; - if (typeof(inst.input[0]) !== "object") { - inst.input.focus(); // restore focus - } - this._lastInput = null; - } - }, - - /* Update any alternate field to synchronise with the main field. */ - _updateAlternate: function(inst) { - var altFormat, date, dateStr, - altField = this._get(inst, "altField"); - - if (altField) { // update alternate field too - altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat"); - date = this._getDate(inst); - dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); - $(altField).each(function() { $(this).val(dateStr); }); - } - }, - - /* Set as beforeShowDay function to prevent selection of weekends. - * @param date Date - the date to customise - * @return [boolean, string] - is this date selectable?, what is its CSS class? - */ - noWeekends: function(date) { - var day = date.getDay(); - return [(day > 0 && day < 6), ""]; - }, - - /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. - * @param date Date - the date to get the week for - * @return number - the number of the week within the year that contains this date - */ - iso8601Week: function(date) { - var time, - checkDate = new Date(date.getTime()); - - // Find Thursday of this week starting on Monday - checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); - - time = checkDate.getTime(); - checkDate.setMonth(0); // Compare with Jan 1 - checkDate.setDate(1); - return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; - }, - - /* Parse a string value into a date object. - * See formatDate below for the possible formats. - * - * @param format string - the expected format of the date - * @param value string - the date in the above format - * @param settings Object - attributes include: - * shortYearCutoff number - the cutoff year for determining the century (optional) - * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) - * dayNames string[7] - names of the days from Sunday (optional) - * monthNamesShort string[12] - abbreviated names of the months (optional) - * monthNames string[12] - names of the months (optional) - * @return Date - the extracted date value or null if value is blank - */ - parseDate: function (format, value, settings) { - if (format == null || value == null) { - throw "Invalid arguments"; - } - - value = (typeof value === "object" ? value.toString() : value + ""); - if (value === "") { - return null; - } - - var iFormat, dim, extra, - iValue = 0, - shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff, - shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp : - new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)), - dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, - dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, - monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, - monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, - year = -1, - month = -1, - day = -1, - doy = -1, - literal = false, - date, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }, - // Extract a number from the string value - getNumber = function(match) { - var isDoubled = lookAhead(match), - size = (match === "@" ? 14 : (match === "!" ? 20 : - (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))), - minSize = (match === "y" ? size : 1), - digits = new RegExp("^\\d{" + minSize + "," + size + "}"), - num = value.substring(iValue).match(digits); - if (!num) { - throw "Missing number at position " + iValue; - } - iValue += num[0].length; - return parseInt(num[0], 10); - }, - // Extract a name from the string value and convert to an index - getName = function(match, shortNames, longNames) { - var index = -1, - names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) { - return [ [k, v] ]; - }).sort(function (a, b) { - return -(a[1].length - b[1].length); - }); - - $.each(names, function (i, pair) { - var name = pair[1]; - if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) { - index = pair[0]; - iValue += name.length; - return false; - } - }); - if (index !== -1) { - return index + 1; - } else { - throw "Unknown name at position " + iValue; - } - }, - // Confirm that a literal character matches the string value - checkLiteral = function() { - if (value.charAt(iValue) !== format.charAt(iFormat)) { - throw "Unexpected literal at position " + iValue; - } - iValue++; - }; - - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - checkLiteral(); - } - } else { - switch (format.charAt(iFormat)) { - case "d": - day = getNumber("d"); - break; - case "D": - getName("D", dayNamesShort, dayNames); - break; - case "o": - doy = getNumber("o"); - break; - case "m": - month = getNumber("m"); - break; - case "M": - month = getName("M", monthNamesShort, monthNames); - break; - case "y": - year = getNumber("y"); - break; - case "@": - date = new Date(getNumber("@")); - year = date.getFullYear(); - month = date.getMonth() + 1; - day = date.getDate(); - break; - case "!": - date = new Date((getNumber("!") - this._ticksTo1970) / 10000); - year = date.getFullYear(); - month = date.getMonth() + 1; - day = date.getDate(); - break; - case "'": - if (lookAhead("'")){ - checkLiteral(); - } else { - literal = true; - } - break; - default: - checkLiteral(); - } - } - } - - if (iValue < value.length){ - extra = value.substr(iValue); - if (!/^\s+/.test(extra)) { - throw "Extra/unparsed characters found in date: " + extra; - } - } - - if (year === -1) { - year = new Date().getFullYear(); - } else if (year < 100) { - year += new Date().getFullYear() - new Date().getFullYear() % 100 + - (year <= shortYearCutoff ? 0 : -100); - } - - if (doy > -1) { - month = 1; - day = doy; - do { - dim = this._getDaysInMonth(year, month - 1); - if (day <= dim) { - break; - } - month++; - day -= dim; - } while (true); - } - - date = this._daylightSavingAdjust(new Date(year, month - 1, day)); - if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) { - throw "Invalid date"; // E.g. 31/02/00 - } - return date; - }, - - /* Standard date formats. */ - ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601) - COOKIE: "D, dd M yy", - ISO_8601: "yy-mm-dd", - RFC_822: "D, d M y", - RFC_850: "DD, dd-M-y", - RFC_1036: "D, d M y", - RFC_1123: "D, d M yy", - RFC_2822: "D, d M yy", - RSS: "D, d M y", // RFC 822 - TICKS: "!", - TIMESTAMP: "@", - W3C: "yy-mm-dd", // ISO 8601 - - _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + - Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), - - /* Format a date object into a string value. - * The format can be combinations of the following: - * d - day of month (no leading zero) - * dd - day of month (two digit) - * o - day of year (no leading zeros) - * oo - day of year (three digit) - * D - day name short - * DD - day name long - * m - month of year (no leading zero) - * mm - month of year (two digit) - * M - month name short - * MM - month name long - * y - year (two digit) - * yy - year (four digit) - * @ - Unix timestamp (ms since 01/01/1970) - * ! - Windows ticks (100ns since 01/01/0001) - * "..." - literal text - * '' - single quote - * - * @param format string - the desired format of the date - * @param date Date - the date value to format - * @param settings Object - attributes include: - * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) - * dayNames string[7] - names of the days from Sunday (optional) - * monthNamesShort string[12] - abbreviated names of the months (optional) - * monthNames string[12] - names of the months (optional) - * @return string - the date in the above format - */ - formatDate: function (format, date, settings) { - if (!date) { - return ""; - } - - var iFormat, - dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, - dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, - monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, - monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }, - // Format a number, with leading zero if necessary - formatNumber = function(match, value, len) { - var num = "" + value; - if (lookAhead(match)) { - while (num.length < len) { - num = "0" + num; - } - } - return num; - }, - // Format a name, short or long as requested - formatName = function(match, value, shortNames, longNames) { - return (lookAhead(match) ? longNames[value] : shortNames[value]); - }, - output = "", - literal = false; - - if (date) { - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - output += format.charAt(iFormat); - } - } else { - switch (format.charAt(iFormat)) { - case "d": - output += formatNumber("d", date.getDate(), 2); - break; - case "D": - output += formatName("D", date.getDay(), dayNamesShort, dayNames); - break; - case "o": - output += formatNumber("o", - Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3); - break; - case "m": - output += formatNumber("m", date.getMonth() + 1, 2); - break; - case "M": - output += formatName("M", date.getMonth(), monthNamesShort, monthNames); - break; - case "y": - output += (lookAhead("y") ? date.getFullYear() : - (date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100); - break; - case "@": - output += date.getTime(); - break; - case "!": - output += date.getTime() * 10000 + this._ticksTo1970; - break; - case "'": - if (lookAhead("'")) { - output += "'"; - } else { - literal = true; - } - break; - default: - output += format.charAt(iFormat); - } - } - } - } - return output; - }, - - /* Extract all possible characters from the date format. */ - _possibleChars: function (format) { - var iFormat, - chars = "", - literal = false, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }; - - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - chars += format.charAt(iFormat); - } - } else { - switch (format.charAt(iFormat)) { - case "d": case "m": case "y": case "@": - chars += "0123456789"; - break; - case "D": case "M": - return null; // Accept anything - case "'": - if (lookAhead("'")) { - chars += "'"; - } else { - literal = true; - } - break; - default: - chars += format.charAt(iFormat); - } - } - } - return chars; - }, - - /* Get a setting value, defaulting if necessary. */ - _get: function(inst, name) { - return inst.settings[name] !== undefined ? - inst.settings[name] : this._defaults[name]; - }, - - /* Parse existing date and initialise date picker. */ - _setDateFromField: function(inst, noDefault) { - if (inst.input.val() === inst.lastVal) { - return; - } - - var dateFormat = this._get(inst, "dateFormat"), - dates = inst.lastVal = inst.input ? inst.input.val() : null, - defaultDate = this._getDefaultDate(inst), - date = defaultDate, - settings = this._getFormatConfig(inst); - - try { - date = this.parseDate(dateFormat, dates, settings) || defaultDate; - } catch (event) { - dates = (noDefault ? "" : dates); - } - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - inst.currentDay = (dates ? date.getDate() : 0); - inst.currentMonth = (dates ? date.getMonth() : 0); - inst.currentYear = (dates ? date.getFullYear() : 0); - this._adjustInstDate(inst); - }, - - /* Retrieve the default date shown on opening. */ - _getDefaultDate: function(inst) { - return this._restrictMinMax(inst, - this._determineDate(inst, this._get(inst, "defaultDate"), new Date())); - }, - - /* A date may be specified as an exact value or a relative one. */ - _determineDate: function(inst, date, defaultDate) { - var offsetNumeric = function(offset) { - var date = new Date(); - date.setDate(date.getDate() + offset); - return date; - }, - offsetString = function(offset) { - try { - return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), - offset, $.datepicker._getFormatConfig(inst)); - } - catch (e) { - // Ignore - } - - var date = (offset.toLowerCase().match(/^c/) ? - $.datepicker._getDate(inst) : null) || new Date(), - year = date.getFullYear(), - month = date.getMonth(), - day = date.getDate(), - pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, - matches = pattern.exec(offset); - - while (matches) { - switch (matches[2] || "d") { - case "d" : case "D" : - day += parseInt(matches[1],10); break; - case "w" : case "W" : - day += parseInt(matches[1],10) * 7; break; - case "m" : case "M" : - month += parseInt(matches[1],10); - day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); - break; - case "y": case "Y" : - year += parseInt(matches[1],10); - day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); - break; - } - matches = pattern.exec(offset); - } - return new Date(year, month, day); - }, - newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) : - (typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); - - newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate); - if (newDate) { - newDate.setHours(0); - newDate.setMinutes(0); - newDate.setSeconds(0); - newDate.setMilliseconds(0); - } - return this._daylightSavingAdjust(newDate); - }, - - /* Handle switch to/from daylight saving. - * Hours may be non-zero on daylight saving cut-over: - * > 12 when midnight changeover, but then cannot generate - * midnight datetime, so jump to 1AM, otherwise reset. - * @param date (Date) the date to check - * @return (Date) the corrected date - */ - _daylightSavingAdjust: function(date) { - if (!date) { - return null; - } - date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); - return date; - }, - - /* Set the date(s) directly. */ - _setDate: function(inst, date, noChange) { - var clear = !date, - origMonth = inst.selectedMonth, - origYear = inst.selectedYear, - newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); - - inst.selectedDay = inst.currentDay = newDate.getDate(); - inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); - inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); - if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) { - this._notifyChange(inst); - } - this._adjustInstDate(inst); - if (inst.input) { - inst.input.val(clear ? "" : this._formatDate(inst)); - } - }, - - /* Retrieve the date(s) directly. */ - _getDate: function(inst) { - var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null : - this._daylightSavingAdjust(new Date( - inst.currentYear, inst.currentMonth, inst.currentDay))); - return startDate; - }, - - /* Attach the onxxx handlers. These are declared statically so - * they work with static code transformers like Caja. - */ - _attachHandlers: function(inst) { - var stepMonths = this._get(inst, "stepMonths"), - id = "#" + inst.id.replace( /\\\\/g, "\\" ); - inst.dpDiv.find("[data-handler]").map(function () { - var handler = { - prev: function () { - $.datepicker._adjustDate(id, -stepMonths, "M"); - }, - next: function () { - $.datepicker._adjustDate(id, +stepMonths, "M"); - }, - hide: function () { - $.datepicker._hideDatepicker(); - }, - today: function () { - $.datepicker._gotoToday(id); - }, - selectDay: function () { - $.datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this); - return false; - }, - selectMonth: function () { - $.datepicker._selectMonthYear(id, this, "M"); - return false; - }, - selectYear: function () { - $.datepicker._selectMonthYear(id, this, "Y"); - return false; - } - }; - $(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]); - }); - }, - - /* Generate the HTML for the current state of the date picker. */ - _generateHTML: function(inst) { - var maxDraw, prevText, prev, nextText, next, currentText, gotoDate, - controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin, - monthNames, monthNamesShort, beforeShowDay, showOtherMonths, - selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate, - cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows, - printDate, dRow, tbody, daySettings, otherMonth, unselectable, - tempDate = new Date(), - today = this._daylightSavingAdjust( - new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time - isRTL = this._get(inst, "isRTL"), - showButtonPanel = this._get(inst, "showButtonPanel"), - hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"), - navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"), - numMonths = this._getNumberOfMonths(inst), - showCurrentAtPos = this._get(inst, "showCurrentAtPos"), - stepMonths = this._get(inst, "stepMonths"), - isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1), - currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : - new Date(inst.currentYear, inst.currentMonth, inst.currentDay))), - minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - drawMonth = inst.drawMonth - showCurrentAtPos, - drawYear = inst.drawYear; - - if (drawMonth < 0) { - drawMonth += 12; - drawYear--; - } - if (maxDate) { - maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), - maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); - maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); - while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { - drawMonth--; - if (drawMonth < 0) { - drawMonth = 11; - drawYear--; - } - } - } - inst.drawMonth = drawMonth; - inst.drawYear = drawYear; - - prevText = this._get(inst, "prevText"); - prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, - this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), - this._getFormatConfig(inst))); - - prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? - "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" + - " title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>" : - (hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+ prevText +"'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>")); - - nextText = this._get(inst, "nextText"); - nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, - this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), - this._getFormatConfig(inst))); - - next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? - "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" + - " title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>" : - (hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+ nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>")); - - currentText = this._get(inst, "currentText"); - gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today); - currentText = (!navigationAsDateFormat ? currentText : - this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); - - controls = (!inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + - this._get(inst, "closeText") + "</button>" : ""); - - buttonPanel = (showButtonPanel) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (isRTL ? controls : "") + - (this._isInRange(inst, gotoDate) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" + - ">" + currentText + "</button>" : "") + (isRTL ? "" : controls) + "</div>" : ""; - - firstDay = parseInt(this._get(inst, "firstDay"),10); - firstDay = (isNaN(firstDay) ? 0 : firstDay); - - showWeek = this._get(inst, "showWeek"); - dayNames = this._get(inst, "dayNames"); - dayNamesMin = this._get(inst, "dayNamesMin"); - monthNames = this._get(inst, "monthNames"); - monthNamesShort = this._get(inst, "monthNamesShort"); - beforeShowDay = this._get(inst, "beforeShowDay"); - showOtherMonths = this._get(inst, "showOtherMonths"); - selectOtherMonths = this._get(inst, "selectOtherMonths"); - defaultDate = this._getDefaultDate(inst); - html = ""; - dow; - for (row = 0; row < numMonths[0]; row++) { - group = ""; - this.maxRows = 4; - for (col = 0; col < numMonths[1]; col++) { - selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); - cornerClass = " ui-corner-all"; - calender = ""; - if (isMultiMonth) { - calender += "<div class='ui-datepicker-group"; - if (numMonths[1] > 1) { - switch (col) { - case 0: calender += " ui-datepicker-group-first"; - cornerClass = " ui-corner-" + (isRTL ? "right" : "left"); break; - case numMonths[1]-1: calender += " ui-datepicker-group-last"; - cornerClass = " ui-corner-" + (isRTL ? "left" : "right"); break; - default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break; - } - } - calender += "'>"; - } - calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" + - (/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") + - (/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") + - this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, - row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers - "</div><table class='ui-datepicker-calendar'><thead>" + - "<tr>"; - thead = (showWeek ? "<th class='ui-datepicker-week-col'>" + this._get(inst, "weekHeader") + "</th>" : ""); - for (dow = 0; dow < 7; dow++) { // days of the week - day = (dow + firstDay) % 7; - thead += "<th scope='col'" + ((dow + firstDay + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + ">" + - "<span title='" + dayNames[day] + "'>" + dayNamesMin[day] + "</span></th>"; - } - calender += thead + "</tr></thead><tbody>"; - daysInMonth = this._getDaysInMonth(drawYear, drawMonth); - if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) { - inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); - } - leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; - curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate - numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043) - this.maxRows = numRows; - printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); - for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows - calender += "<tr>"; - tbody = (!showWeek ? "" : "<td class='ui-datepicker-week-col'>" + - this._get(inst, "calculateWeek")(printDate) + "</td>"); - for (dow = 0; dow < 7; dow++) { // create date picker days - daySettings = (beforeShowDay ? - beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]); - otherMonth = (printDate.getMonth() !== drawMonth); - unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || - (minDate && printDate < minDate) || (maxDate && printDate > maxDate); - tbody += "<td class='" + - ((dow + firstDay + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + // highlight weekends - (otherMonth ? " ui-datepicker-other-month" : "") + // highlight days from other months - ((printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent) || // user pressed key - (defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime()) ? - // or defaultDate is current printedDate and defaultDate is selectedDate - " " + this._dayOverClass : "") + // highlight selected day - (unselectable ? " " + this._unselectableClass + " ui-state-disabled": "") + // highlight unselectable days - (otherMonth && !showOtherMonths ? "" : " " + daySettings[1] + // highlight custom dates - (printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "") + // highlight selected day - (printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "")) + "'" + // highlight today (if different) - ((!otherMonth || showOtherMonths) && daySettings[2] ? " title='" + daySettings[2].replace(/'/g, "'") + "'" : "") + // cell title - (unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'") + ">" + // actions - (otherMonth && !showOtherMonths ? " " : // display for other months - (unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" + - (printDate.getTime() === today.getTime() ? " ui-state-highlight" : "") + - (printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "") + // highlight selected day - (otherMonth ? " ui-priority-secondary" : "") + // distinguish dates from other months - "' href='#'>" + printDate.getDate() + "</a>")) + "</td>"; // display selectable date - printDate.setDate(printDate.getDate() + 1); - printDate = this._daylightSavingAdjust(printDate); - } - calender += tbody + "</tr>"; - } - drawMonth++; - if (drawMonth > 11) { - drawMonth = 0; - drawYear++; - } - calender += "</tbody></table>" + (isMultiMonth ? "</div>" + - ((numMonths[0] > 0 && col === numMonths[1]-1) ? "<div class='ui-datepicker-row-break'></div>" : "") : ""); - group += calender; - } - html += group; - } - html += buttonPanel; - inst._keyEvent = false; - return html; - }, - - /* Generate the month and year header. */ - _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, - secondary, monthNames, monthNamesShort) { - - var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear, - changeMonth = this._get(inst, "changeMonth"), - changeYear = this._get(inst, "changeYear"), - showMonthAfterYear = this._get(inst, "showMonthAfterYear"), - html = "<div class='ui-datepicker-title'>", - monthHtml = ""; - - // month selection - if (secondary || !changeMonth) { - monthHtml += "<span class='ui-datepicker-month'>" + monthNames[drawMonth] + "</span>"; - } else { - inMinYear = (minDate && minDate.getFullYear() === drawYear); - inMaxYear = (maxDate && maxDate.getFullYear() === drawYear); - monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>"; - for ( month = 0; month < 12; month++) { - if ((!inMinYear || month >= minDate.getMonth()) && (!inMaxYear || month <= maxDate.getMonth())) { - monthHtml += "<option value='" + month + "'" + - (month === drawMonth ? " selected='selected'" : "") + - ">" + monthNamesShort[month] + "</option>"; - } - } - monthHtml += "</select>"; - } - - if (!showMonthAfterYear) { - html += monthHtml + (secondary || !(changeMonth && changeYear) ? " " : ""); - } - - // year selection - if ( !inst.yearshtml ) { - inst.yearshtml = ""; - if (secondary || !changeYear) { - html += "<span class='ui-datepicker-year'>" + drawYear + "</span>"; - } else { - // determine range of years to display - years = this._get(inst, "yearRange").split(":"); - thisYear = new Date().getFullYear(); - determineYear = function(value) { - var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) : - (value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) : - parseInt(value, 10))); - return (isNaN(year) ? thisYear : year); - }; - year = determineYear(years[0]); - endYear = Math.max(year, determineYear(years[1] || "")); - year = (minDate ? Math.max(year, minDate.getFullYear()) : year); - endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); - inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; - for (; year <= endYear; year++) { - inst.yearshtml += "<option value='" + year + "'" + - (year === drawYear ? " selected='selected'" : "") + - ">" + year + "</option>"; - } - inst.yearshtml += "</select>"; - - html += inst.yearshtml; - inst.yearshtml = null; - } - } - - html += this._get(inst, "yearSuffix"); - if (showMonthAfterYear) { - html += (secondary || !(changeMonth && changeYear) ? " " : "") + monthHtml; - } - html += "</div>"; // Close datepicker_header - return html; - }, - - /* Adjust one of the date sub-fields. */ - _adjustInstDate: function(inst, offset, period) { - var year = inst.drawYear + (period === "Y" ? offset : 0), - month = inst.drawMonth + (period === "M" ? offset : 0), - day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0), - date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day))); - - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - if (period === "M" || period === "Y") { - this._notifyChange(inst); - } - }, - - /* Ensure a date is within any min/max bounds. */ - _restrictMinMax: function(inst, date) { - var minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - newDate = (minDate && date < minDate ? minDate : date); - return (maxDate && newDate > maxDate ? maxDate : newDate); - }, - - /* Notify change of month/year. */ - _notifyChange: function(inst) { - var onChange = this._get(inst, "onChangeMonthYear"); - if (onChange) { - onChange.apply((inst.input ? inst.input[0] : null), - [inst.selectedYear, inst.selectedMonth + 1, inst]); - } - }, - - /* Determine the number of months to show. */ - _getNumberOfMonths: function(inst) { - var numMonths = this._get(inst, "numberOfMonths"); - return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths)); - }, - - /* Determine the current maximum date - ensure no time components are set. */ - _getMinMaxDate: function(inst, minMax) { - return this._determineDate(inst, this._get(inst, minMax + "Date"), null); - }, - - /* Find the number of days in a given month. */ - _getDaysInMonth: function(year, month) { - return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); - }, - - /* Find the day of the week of the first of a month. */ - _getFirstDayOfMonth: function(year, month) { - return new Date(year, month, 1).getDay(); - }, - - /* Determines if we should allow a "next/prev" month display change. */ - _canAdjustMonth: function(inst, offset, curYear, curMonth) { - var numMonths = this._getNumberOfMonths(inst), - date = this._daylightSavingAdjust(new Date(curYear, - curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); - - if (offset < 0) { - date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); - } - return this._isInRange(inst, date); - }, - - /* Is the given date in the accepted range? */ - _isInRange: function(inst, date) { - var yearSplit, currentYear, - minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - minYear = null, - maxYear = null, - years = this._get(inst, "yearRange"); - if (years){ - yearSplit = years.split(":"); - currentYear = new Date().getFullYear(); - minYear = parseInt(yearSplit[0], 10); - maxYear = parseInt(yearSplit[1], 10); - if ( yearSplit[0].match(/[+\-].*/) ) { - minYear += currentYear; - } - if ( yearSplit[1].match(/[+\-].*/) ) { - maxYear += currentYear; - } - } - - return ((!minDate || date.getTime() >= minDate.getTime()) && - (!maxDate || date.getTime() <= maxDate.getTime()) && - (!minYear || date.getFullYear() >= minYear) && - (!maxYear || date.getFullYear() <= maxYear)); - }, - - /* Provide the configuration settings for formatting/parsing. */ - _getFormatConfig: function(inst) { - var shortYearCutoff = this._get(inst, "shortYearCutoff"); - shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff : - new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); - return {shortYearCutoff: shortYearCutoff, - dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"), - monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")}; - }, - - /* Format the given date for display. */ - _formatDate: function(inst, day, month, year) { - if (!day) { - inst.currentDay = inst.selectedDay; - inst.currentMonth = inst.selectedMonth; - inst.currentYear = inst.selectedYear; - } - var date = (day ? (typeof day === "object" ? day : - this._daylightSavingAdjust(new Date(year, month, day))) : - this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); - return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst)); - } -}); - -/* - * Bind hover events for datepicker elements. - * Done via delegate so the binding only occurs once in the lifetime of the parent div. - * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. - */ -function datepicker_bindHover(dpDiv) { - var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; - return dpDiv.delegate(selector, "mouseout", function() { - $(this).removeClass("ui-state-hover"); - if (this.className.indexOf("ui-datepicker-prev") !== -1) { - $(this).removeClass("ui-datepicker-prev-hover"); - } - if (this.className.indexOf("ui-datepicker-next") !== -1) { - $(this).removeClass("ui-datepicker-next-hover"); - } - }) - .delegate( selector, "mouseover", datepicker_handleMouseover ); -} - -function datepicker_handleMouseover() { - if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) { - $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); - $(this).addClass("ui-state-hover"); - if (this.className.indexOf("ui-datepicker-prev") !== -1) { - $(this).addClass("ui-datepicker-prev-hover"); - } - if (this.className.indexOf("ui-datepicker-next") !== -1) { - $(this).addClass("ui-datepicker-next-hover"); - } - } -} - -/* jQuery extend now ignores nulls! */ -function datepicker_extendRemove(target, props) { - $.extend(target, props); - for (var name in props) { - if (props[name] == null) { - target[name] = props[name]; - } - } - return target; -} - -/* Invoke the datepicker functionality. - @param options string - a command, optionally followed by additional parameters or - Object - settings for attaching new datepicker functionality - @return jQuery object */ -$.fn.datepicker = function(options){ - - /* Verify an empty collection wasn't passed - Fixes #6976 */ - if ( !this.length ) { - return this; - } - - /* Initialise the date picker. */ - if (!$.datepicker.initialized) { - $(document).mousedown($.datepicker._checkExternalClick); - $.datepicker.initialized = true; - } - - /* Append datepicker main container to body if not exist. */ - if ($("#"+$.datepicker._mainDivId).length === 0) { - $("body").append($.datepicker.dpDiv); - } - - var otherArgs = Array.prototype.slice.call(arguments, 1); - if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) { - return $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this[0]].concat(otherArgs)); - } - if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") { - return $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this[0]].concat(otherArgs)); - } - return this.each(function() { - typeof options === "string" ? - $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this].concat(otherArgs)) : - $.datepicker._attachDatepicker(this, options); - }); -}; - -$.datepicker = new Datepicker(); // singleton instance -$.datepicker.initialized = false; -$.datepicker.uuid = new Date().getTime(); -$.datepicker.version = "1.11.4"; - -var datepicker = $.datepicker; - - -/*! - * jQuery UI Dialog 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/dialog/ - */ - - -var dialog = $.widget( "ui.dialog", { - version: "1.11.4", - options: { - appendTo: "body", - autoOpen: true, - buttons: [], - closeOnEscape: true, - closeText: "Close", - dialogClass: "", - draggable: true, - hide: null, - height: "auto", - maxHeight: null, - maxWidth: null, - minHeight: 150, - minWidth: 150, - modal: false, - position: { - my: "center", - at: "center", - of: window, - collision: "fit", - // Ensure the titlebar is always visible - using: function( pos ) { - var topOffset = $( this ).css( pos ).offset().top; - if ( topOffset < 0 ) { - $( this ).css( "top", pos.top - topOffset ); - } - } - }, - resizable: true, - show: null, - title: null, - width: 300, - - // callbacks - beforeClose: null, - close: null, - drag: null, - dragStart: null, - dragStop: null, - focus: null, - open: null, - resize: null, - resizeStart: null, - resizeStop: null - }, - - sizeRelatedOptions: { - buttons: true, - height: true, - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true, - width: true - }, - - resizableRelatedOptions: { - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true - }, - - _create: function() { - this.originalCss = { - display: this.element[ 0 ].style.display, - width: this.element[ 0 ].style.width, - minHeight: this.element[ 0 ].style.minHeight, - maxHeight: this.element[ 0 ].style.maxHeight, - height: this.element[ 0 ].style.height - }; - this.originalPosition = { - parent: this.element.parent(), - index: this.element.parent().children().index( this.element ) - }; - this.originalTitle = this.element.attr( "title" ); - this.options.title = this.options.title || this.originalTitle; - - this._createWrapper(); - - this.element - .show() - .removeAttr( "title" ) - .addClass( "ui-dialog-content ui-widget-content" ) - .appendTo( this.uiDialog ); - - this._createTitlebar(); - this._createButtonPane(); - - if ( this.options.draggable && $.fn.draggable ) { - this._makeDraggable(); - } - if ( this.options.resizable && $.fn.resizable ) { - this._makeResizable(); - } - - this._isOpen = false; - - this._trackFocus(); - }, - - _init: function() { - if ( this.options.autoOpen ) { - this.open(); - } - }, - - _appendTo: function() { - var element = this.options.appendTo; - if ( element && (element.jquery || element.nodeType) ) { - return $( element ); - } - return this.document.find( element || "body" ).eq( 0 ); - }, - - _destroy: function() { - var next, - originalPosition = this.originalPosition; - - this._untrackInstance(); - this._destroyOverlay(); - - this.element - .removeUniqueId() - .removeClass( "ui-dialog-content ui-widget-content" ) - .css( this.originalCss ) - // Without detaching first, the following becomes really slow - .detach(); - - this.uiDialog.stop( true, true ).remove(); - - if ( this.originalTitle ) { - this.element.attr( "title", this.originalTitle ); - } - - next = originalPosition.parent.children().eq( originalPosition.index ); - // Don't try to place the dialog next to itself (#8613) - if ( next.length && next[ 0 ] !== this.element[ 0 ] ) { - next.before( this.element ); - } else { - originalPosition.parent.append( this.element ); - } - }, - - widget: function() { - return this.uiDialog; - }, - - disable: $.noop, - enable: $.noop, - - close: function( event ) { - var activeElement, - that = this; - - if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) { - return; - } - - this._isOpen = false; - this._focusedElement = null; - this._destroyOverlay(); - this._untrackInstance(); - - if ( !this.opener.filter( ":focusable" ).focus().length ) { - - // support: IE9 - // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> - try { - activeElement = this.document[ 0 ].activeElement; - - // Support: IE9, IE10 - // If the <body> is blurred, IE will switch windows, see #4520 - if ( activeElement && activeElement.nodeName.toLowerCase() !== "body" ) { - - // Hiding a focused element doesn't trigger blur in WebKit - // so in case we have nothing to focus on, explicitly blur the active element - // https://bugs.webkit.org/show_bug.cgi?id=47182 - $( activeElement ).blur(); - } - } catch ( error ) {} - } - - this._hide( this.uiDialog, this.options.hide, function() { - that._trigger( "close", event ); - }); - }, - - isOpen: function() { - return this._isOpen; - }, - - moveToTop: function() { - this._moveToTop(); - }, - - _moveToTop: function( event, silent ) { - var moved = false, - zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map(function() { - return +$( this ).css( "z-index" ); - }).get(), - zIndexMax = Math.max.apply( null, zIndices ); - - if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) { - this.uiDialog.css( "z-index", zIndexMax + 1 ); - moved = true; - } - - if ( moved && !silent ) { - this._trigger( "focus", event ); - } - return moved; - }, - - open: function() { - var that = this; - if ( this._isOpen ) { - if ( this._moveToTop() ) { - this._focusTabbable(); - } - return; - } - - this._isOpen = true; - this.opener = $( this.document[ 0 ].activeElement ); - - this._size(); - this._position(); - this._createOverlay(); - this._moveToTop( null, true ); - - // Ensure the overlay is moved to the top with the dialog, but only when - // opening. The overlay shouldn't move after the dialog is open so that - // modeless dialogs opened after the modal dialog stack properly. - if ( this.overlay ) { - this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 ); - } - - this._show( this.uiDialog, this.options.show, function() { - that._focusTabbable(); - that._trigger( "focus" ); - }); - - // Track the dialog immediately upon openening in case a focus event - // somehow occurs outside of the dialog before an element inside the - // dialog is focused (#10152) - this._makeFocusTarget(); - - this._trigger( "open" ); - }, - - _focusTabbable: function() { - // Set focus to the first match: - // 1. An element that was focused previously - // 2. First element inside the dialog matching [autofocus] - // 3. Tabbable element inside the content element - // 4. Tabbable element inside the buttonpane - // 5. The close button - // 6. The dialog itself - var hasFocus = this._focusedElement; - if ( !hasFocus ) { - hasFocus = this.element.find( "[autofocus]" ); - } - if ( !hasFocus.length ) { - hasFocus = this.element.find( ":tabbable" ); - } - if ( !hasFocus.length ) { - hasFocus = this.uiDialogButtonPane.find( ":tabbable" ); - } - if ( !hasFocus.length ) { - hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" ); - } - if ( !hasFocus.length ) { - hasFocus = this.uiDialog; - } - hasFocus.eq( 0 ).focus(); - }, - - _keepFocus: function( event ) { - function checkFocus() { - var activeElement = this.document[0].activeElement, - isActive = this.uiDialog[0] === activeElement || - $.contains( this.uiDialog[0], activeElement ); - if ( !isActive ) { - this._focusTabbable(); - } - } - event.preventDefault(); - checkFocus.call( this ); - // support: IE - // IE <= 8 doesn't prevent moving focus even with event.preventDefault() - // so we check again later - this._delay( checkFocus ); - }, - - _createWrapper: function() { - this.uiDialog = $("<div>") - .addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " + - this.options.dialogClass ) - .hide() - .attr({ - // Setting tabIndex makes the div focusable - tabIndex: -1, - role: "dialog" - }) - .appendTo( this._appendTo() ); - - this._on( this.uiDialog, { - keydown: function( event ) { - if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && - event.keyCode === $.ui.keyCode.ESCAPE ) { - event.preventDefault(); - this.close( event ); - return; - } - - // prevent tabbing out of dialogs - if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) { - return; - } - var tabbables = this.uiDialog.find( ":tabbable" ), - first = tabbables.filter( ":first" ), - last = tabbables.filter( ":last" ); - - if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) { - this._delay(function() { - first.focus(); - }); - event.preventDefault(); - } else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) { - this._delay(function() { - last.focus(); - }); - event.preventDefault(); - } - }, - mousedown: function( event ) { - if ( this._moveToTop( event ) ) { - this._focusTabbable(); - } - } - }); - - // We assume that any existing aria-describedby attribute means - // that the dialog content is marked up properly - // otherwise we brute force the content as the description - if ( !this.element.find( "[aria-describedby]" ).length ) { - this.uiDialog.attr({ - "aria-describedby": this.element.uniqueId().attr( "id" ) - }); - } - }, - - _createTitlebar: function() { - var uiDialogTitle; - - this.uiDialogTitlebar = $( "<div>" ) - .addClass( "ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" ) - .prependTo( this.uiDialog ); - this._on( this.uiDialogTitlebar, { - mousedown: function( event ) { - // Don't prevent click on close button (#8838) - // Focusing a dialog that is partially scrolled out of view - // causes the browser to scroll it into view, preventing the click event - if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) { - // Dialog isn't getting focus when dragging (#8063) - this.uiDialog.focus(); - } - } - }); - - // support: IE - // Use type="button" to prevent enter keypresses in textboxes from closing the - // dialog in IE (#9312) - this.uiDialogTitlebarClose = $( "<button type='button'></button>" ) - .button({ - label: this.options.closeText, - icons: { - primary: "ui-icon-closethick" - }, - text: false - }) - .addClass( "ui-dialog-titlebar-close" ) - .appendTo( this.uiDialogTitlebar ); - this._on( this.uiDialogTitlebarClose, { - click: function( event ) { - event.preventDefault(); - this.close( event ); - } - }); - - uiDialogTitle = $( "<span>" ) - .uniqueId() - .addClass( "ui-dialog-title" ) - .prependTo( this.uiDialogTitlebar ); - this._title( uiDialogTitle ); - - this.uiDialog.attr({ - "aria-labelledby": uiDialogTitle.attr( "id" ) - }); - }, - - _title: function( title ) { - if ( !this.options.title ) { - title.html( " " ); - } - title.text( this.options.title ); - }, - - _createButtonPane: function() { - this.uiDialogButtonPane = $( "<div>" ) - .addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" ); - - this.uiButtonSet = $( "<div>" ) - .addClass( "ui-dialog-buttonset" ) - .appendTo( this.uiDialogButtonPane ); - - this._createButtons(); - }, - - _createButtons: function() { - var that = this, - buttons = this.options.buttons; - - // if we already have a button pane, remove it - this.uiDialogButtonPane.remove(); - this.uiButtonSet.empty(); - - if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) { - this.uiDialog.removeClass( "ui-dialog-buttons" ); - return; - } - - $.each( buttons, function( name, props ) { - var click, buttonOptions; - props = $.isFunction( props ) ? - { click: props, text: name } : - props; - // Default to a non-submitting button - props = $.extend( { type: "button" }, props ); - // Change the context for the click callback to be the main element - click = props.click; - props.click = function() { - click.apply( that.element[ 0 ], arguments ); - }; - buttonOptions = { - icons: props.icons, - text: props.showText - }; - delete props.icons; - delete props.showText; - $( "<button></button>", props ) - .button( buttonOptions ) - .appendTo( that.uiButtonSet ); - }); - this.uiDialog.addClass( "ui-dialog-buttons" ); - this.uiDialogButtonPane.appendTo( this.uiDialog ); - }, - - _makeDraggable: function() { - var that = this, - options = this.options; - - function filteredUi( ui ) { - return { - position: ui.position, - offset: ui.offset - }; - } - - this.uiDialog.draggable({ - cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", - handle: ".ui-dialog-titlebar", - containment: "document", - start: function( event, ui ) { - $( this ).addClass( "ui-dialog-dragging" ); - that._blockFrames(); - that._trigger( "dragStart", event, filteredUi( ui ) ); - }, - drag: function( event, ui ) { - that._trigger( "drag", event, filteredUi( ui ) ); - }, - stop: function( event, ui ) { - var left = ui.offset.left - that.document.scrollLeft(), - top = ui.offset.top - that.document.scrollTop(); - - options.position = { - my: "left top", - at: "left" + (left >= 0 ? "+" : "") + left + " " + - "top" + (top >= 0 ? "+" : "") + top, - of: that.window - }; - $( this ).removeClass( "ui-dialog-dragging" ); - that._unblockFrames(); - that._trigger( "dragStop", event, filteredUi( ui ) ); - } - }); - }, - - _makeResizable: function() { - var that = this, - options = this.options, - handles = options.resizable, - // .ui-resizable has position: relative defined in the stylesheet - // but dialogs have to use absolute or fixed positioning - position = this.uiDialog.css("position"), - resizeHandles = typeof handles === "string" ? - handles : - "n,e,s,w,se,sw,ne,nw"; - - function filteredUi( ui ) { - return { - originalPosition: ui.originalPosition, - originalSize: ui.originalSize, - position: ui.position, - size: ui.size - }; - } - - this.uiDialog.resizable({ - cancel: ".ui-dialog-content", - containment: "document", - alsoResize: this.element, - maxWidth: options.maxWidth, - maxHeight: options.maxHeight, - minWidth: options.minWidth, - minHeight: this._minHeight(), - handles: resizeHandles, - start: function( event, ui ) { - $( this ).addClass( "ui-dialog-resizing" ); - that._blockFrames(); - that._trigger( "resizeStart", event, filteredUi( ui ) ); - }, - resize: function( event, ui ) { - that._trigger( "resize", event, filteredUi( ui ) ); - }, - stop: function( event, ui ) { - var offset = that.uiDialog.offset(), - left = offset.left - that.document.scrollLeft(), - top = offset.top - that.document.scrollTop(); - - options.height = that.uiDialog.height(); - options.width = that.uiDialog.width(); - options.position = { - my: "left top", - at: "left" + (left >= 0 ? "+" : "") + left + " " + - "top" + (top >= 0 ? "+" : "") + top, - of: that.window - }; - $( this ).removeClass( "ui-dialog-resizing" ); - that._unblockFrames(); - that._trigger( "resizeStop", event, filteredUi( ui ) ); - } - }) - .css( "position", position ); - }, - - _trackFocus: function() { - this._on( this.widget(), { - focusin: function( event ) { - this._makeFocusTarget(); - this._focusedElement = $( event.target ); - } - }); - }, - - _makeFocusTarget: function() { - this._untrackInstance(); - this._trackingInstances().unshift( this ); - }, - - _untrackInstance: function() { - var instances = this._trackingInstances(), - exists = $.inArray( this, instances ); - if ( exists !== -1 ) { - instances.splice( exists, 1 ); - } - }, - - _trackingInstances: function() { - var instances = this.document.data( "ui-dialog-instances" ); - if ( !instances ) { - instances = []; - this.document.data( "ui-dialog-instances", instances ); - } - return instances; - }, - - _minHeight: function() { - var options = this.options; - - return options.height === "auto" ? - options.minHeight : - Math.min( options.minHeight, options.height ); - }, - - _position: function() { - // Need to show the dialog to get the actual offset in the position plugin - var isVisible = this.uiDialog.is( ":visible" ); - if ( !isVisible ) { - this.uiDialog.show(); - } - this.uiDialog.position( this.options.position ); - if ( !isVisible ) { - this.uiDialog.hide(); - } - }, - - _setOptions: function( options ) { - var that = this, - resize = false, - resizableOptions = {}; - - $.each( options, function( key, value ) { - that._setOption( key, value ); - - if ( key in that.sizeRelatedOptions ) { - resize = true; - } - if ( key in that.resizableRelatedOptions ) { - resizableOptions[ key ] = value; - } - }); - - if ( resize ) { - this._size(); - this._position(); - } - if ( this.uiDialog.is( ":data(ui-resizable)" ) ) { - this.uiDialog.resizable( "option", resizableOptions ); - } - }, - - _setOption: function( key, value ) { - var isDraggable, isResizable, - uiDialog = this.uiDialog; - - if ( key === "dialogClass" ) { - uiDialog - .removeClass( this.options.dialogClass ) - .addClass( value ); - } - - if ( key === "disabled" ) { - return; - } - - this._super( key, value ); - - if ( key === "appendTo" ) { - this.uiDialog.appendTo( this._appendTo() ); - } - - if ( key === "buttons" ) { - this._createButtons(); - } - - if ( key === "closeText" ) { - this.uiDialogTitlebarClose.button({ - // Ensure that we always pass a string - label: "" + value - }); - } - - if ( key === "draggable" ) { - isDraggable = uiDialog.is( ":data(ui-draggable)" ); - if ( isDraggable && !value ) { - uiDialog.draggable( "destroy" ); - } - - if ( !isDraggable && value ) { - this._makeDraggable(); - } - } - - if ( key === "position" ) { - this._position(); - } - - if ( key === "resizable" ) { - // currently resizable, becoming non-resizable - isResizable = uiDialog.is( ":data(ui-resizable)" ); - if ( isResizable && !value ) { - uiDialog.resizable( "destroy" ); - } - - // currently resizable, changing handles - if ( isResizable && typeof value === "string" ) { - uiDialog.resizable( "option", "handles", value ); - } - - // currently non-resizable, becoming resizable - if ( !isResizable && value !== false ) { - this._makeResizable(); - } - } - - if ( key === "title" ) { - this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) ); - } - }, - - _size: function() { - // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content - // divs will both have width and height set, so we need to reset them - var nonContentHeight, minContentHeight, maxContentHeight, - options = this.options; - - // Reset content sizing - this.element.show().css({ - width: "auto", - minHeight: 0, - maxHeight: "none", - height: 0 - }); - - if ( options.minWidth > options.width ) { - options.width = options.minWidth; - } - - // reset wrapper sizing - // determine the height of all the non-content elements - nonContentHeight = this.uiDialog.css({ - height: "auto", - width: options.width - }) - .outerHeight(); - minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); - maxContentHeight = typeof options.maxHeight === "number" ? - Math.max( 0, options.maxHeight - nonContentHeight ) : - "none"; - - if ( options.height === "auto" ) { - this.element.css({ - minHeight: minContentHeight, - maxHeight: maxContentHeight, - height: "auto" - }); - } else { - this.element.height( Math.max( 0, options.height - nonContentHeight ) ); - } - - if ( this.uiDialog.is( ":data(ui-resizable)" ) ) { - this.uiDialog.resizable( "option", "minHeight", this._minHeight() ); - } - }, - - _blockFrames: function() { - this.iframeBlocks = this.document.find( "iframe" ).map(function() { - var iframe = $( this ); - - return $( "<div>" ) - .css({ - position: "absolute", - width: iframe.outerWidth(), - height: iframe.outerHeight() - }) - .appendTo( iframe.parent() ) - .offset( iframe.offset() )[0]; - }); - }, - - _unblockFrames: function() { - if ( this.iframeBlocks ) { - this.iframeBlocks.remove(); - delete this.iframeBlocks; - } - }, - - _allowInteraction: function( event ) { - if ( $( event.target ).closest( ".ui-dialog" ).length ) { - return true; - } - - // TODO: Remove hack when datepicker implements - // the .ui-front logic (#8989) - return !!$( event.target ).closest( ".ui-datepicker" ).length; - }, - - _createOverlay: function() { - if ( !this.options.modal ) { - return; - } - - // We use a delay in case the overlay is created from an - // event that we're going to be cancelling (#2804) - var isOpening = true; - this._delay(function() { - isOpening = false; - }); - - if ( !this.document.data( "ui-dialog-overlays" ) ) { - - // Prevent use of anchors and inputs - // Using _on() for an event handler shared across many instances is - // safe because the dialogs stack and must be closed in reverse order - this._on( this.document, { - focusin: function( event ) { - if ( isOpening ) { - return; - } - - if ( !this._allowInteraction( event ) ) { - event.preventDefault(); - this._trackingInstances()[ 0 ]._focusTabbable(); - } - } - }); - } - - this.overlay = $( "<div>" ) - .addClass( "ui-widget-overlay ui-front" ) - .appendTo( this._appendTo() ); - this._on( this.overlay, { - mousedown: "_keepFocus" - }); - this.document.data( "ui-dialog-overlays", - (this.document.data( "ui-dialog-overlays" ) || 0) + 1 ); - }, - - _destroyOverlay: function() { - if ( !this.options.modal ) { - return; - } - - if ( this.overlay ) { - var overlays = this.document.data( "ui-dialog-overlays" ) - 1; - - if ( !overlays ) { - this.document - .unbind( "focusin" ) - .removeData( "ui-dialog-overlays" ); - } else { - this.document.data( "ui-dialog-overlays", overlays ); - } - - this.overlay.remove(); - this.overlay = null; - } - } -}); - - -/*! - * jQuery UI Progressbar 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/progressbar/ - */ - - -var progressbar = $.widget( "ui.progressbar", { - version: "1.11.4", - options: { - max: 100, - value: 0, - - change: null, - complete: null - }, - - min: 0, - - _create: function() { - // Constrain initial value - this.oldValue = this.options.value = this._constrainedValue(); - - this.element - .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) - .attr({ - // Only set static values, aria-valuenow and aria-valuemax are - // set inside _refreshValue() - role: "progressbar", - "aria-valuemin": this.min - }); - - this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" ) - .appendTo( this.element ); - - this._refreshValue(); - }, - - _destroy: function() { - this.element - .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) - .removeAttr( "role" ) - .removeAttr( "aria-valuemin" ) - .removeAttr( "aria-valuemax" ) - .removeAttr( "aria-valuenow" ); - - this.valueDiv.remove(); - }, - - value: function( newValue ) { - if ( newValue === undefined ) { - return this.options.value; - } - - this.options.value = this._constrainedValue( newValue ); - this._refreshValue(); - }, - - _constrainedValue: function( newValue ) { - if ( newValue === undefined ) { - newValue = this.options.value; - } - - this.indeterminate = newValue === false; - - // sanitize value - if ( typeof newValue !== "number" ) { - newValue = 0; - } - - return this.indeterminate ? false : - Math.min( this.options.max, Math.max( this.min, newValue ) ); - }, - - _setOptions: function( options ) { - // Ensure "value" option is set after other values (like max) - var value = options.value; - delete options.value; - - this._super( options ); - - this.options.value = this._constrainedValue( value ); - this._refreshValue(); - }, - - _setOption: function( key, value ) { - if ( key === "max" ) { - // Don't allow a max less than min - value = Math.max( this.min, value ); - } - if ( key === "disabled" ) { - this.element - .toggleClass( "ui-state-disabled", !!value ) - .attr( "aria-disabled", value ); - } - this._super( key, value ); - }, - - _percentage: function() { - return this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min ); - }, - - _refreshValue: function() { - var value = this.options.value, - percentage = this._percentage(); - - this.valueDiv - .toggle( this.indeterminate || value > this.min ) - .toggleClass( "ui-corner-right", value === this.options.max ) - .width( percentage.toFixed(0) + "%" ); - - this.element.toggleClass( "ui-progressbar-indeterminate", this.indeterminate ); - - if ( this.indeterminate ) { - this.element.removeAttr( "aria-valuenow" ); - if ( !this.overlayDiv ) { - this.overlayDiv = $( "<div class='ui-progressbar-overlay'></div>" ).appendTo( this.valueDiv ); - } - } else { - this.element.attr({ - "aria-valuemax": this.options.max, - "aria-valuenow": value - }); - if ( this.overlayDiv ) { - this.overlayDiv.remove(); - this.overlayDiv = null; - } - } - - if ( this.oldValue !== value ) { - this.oldValue = value; - this._trigger( "change" ); - } - if ( value === this.options.max ) { - this._trigger( "complete" ); - } - } -}); - - -/*! - * jQuery UI Selectmenu 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/selectmenu - */ - - -var selectmenu = $.widget( "ui.selectmenu", { - version: "1.11.4", - defaultElement: "<select>", - options: { - appendTo: null, - disabled: null, - icons: { - button: "ui-icon-triangle-1-s" - }, - position: { - my: "left top", - at: "left bottom", - collision: "none" - }, - width: null, - - // callbacks - change: null, - close: null, - focus: null, - open: null, - select: null - }, - - _create: function() { - var selectmenuId = this.element.uniqueId().attr( "id" ); - this.ids = { - element: selectmenuId, - button: selectmenuId + "-button", - menu: selectmenuId + "-menu" - }; - - this._drawButton(); - this._drawMenu(); - - if ( this.options.disabled ) { - this.disable(); - } - }, - - _drawButton: function() { - var that = this; - - // Associate existing label with the new button - this.label = $( "label[for='" + this.ids.element + "']" ).attr( "for", this.ids.button ); - this._on( this.label, { - click: function( event ) { - this.button.focus(); - event.preventDefault(); - } - }); - - // Hide original select element - this.element.hide(); - - // Create button - this.button = $( "<span>", { - "class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all", - tabindex: this.options.disabled ? -1 : 0, - id: this.ids.button, - role: "combobox", - "aria-expanded": "false", - "aria-autocomplete": "list", - "aria-owns": this.ids.menu, - "aria-haspopup": "true" - }) - .insertAfter( this.element ); - - $( "<span>", { - "class": "ui-icon " + this.options.icons.button - }) - .prependTo( this.button ); - - this.buttonText = $( "<span>", { - "class": "ui-selectmenu-text" - }) - .appendTo( this.button ); - - this._setText( this.buttonText, this.element.find( "option:selected" ).text() ); - this._resizeButton(); - - this._on( this.button, this._buttonEvents ); - this.button.one( "focusin", function() { - - // Delay rendering the menu items until the button receives focus. - // The menu may have already been rendered via a programmatic open. - if ( !that.menuItems ) { - that._refreshMenu(); - } - }); - this._hoverable( this.button ); - this._focusable( this.button ); - }, - - _drawMenu: function() { - var that = this; - - // Create menu - this.menu = $( "<ul>", { - "aria-hidden": "true", - "aria-labelledby": this.ids.button, - id: this.ids.menu - }); - - // Wrap menu - this.menuWrap = $( "<div>", { - "class": "ui-selectmenu-menu ui-front" - }) - .append( this.menu ) - .appendTo( this._appendTo() ); - - // Initialize menu widget - this.menuInstance = this.menu - .menu({ - role: "listbox", - select: function( event, ui ) { - event.preventDefault(); - - // support: IE8 - // If the item was selected via a click, the text selection - // will be destroyed in IE - that._setSelection(); - - that._select( ui.item.data( "ui-selectmenu-item" ), event ); - }, - focus: function( event, ui ) { - var item = ui.item.data( "ui-selectmenu-item" ); - - // Prevent inital focus from firing and check if its a newly focused item - if ( that.focusIndex != null && item.index !== that.focusIndex ) { - that._trigger( "focus", event, { item: item } ); - if ( !that.isOpen ) { - that._select( item, event ); - } - } - that.focusIndex = item.index; - - that.button.attr( "aria-activedescendant", - that.menuItems.eq( item.index ).attr( "id" ) ); - } - }) - .menu( "instance" ); - - // Adjust menu styles to dropdown - this.menu - .addClass( "ui-corner-bottom" ) - .removeClass( "ui-corner-all" ); - - // Don't close the menu on mouseleave - this.menuInstance._off( this.menu, "mouseleave" ); - - // Cancel the menu's collapseAll on document click - this.menuInstance._closeOnDocumentClick = function() { - return false; - }; - - // Selects often contain empty items, but never contain dividers - this.menuInstance._isDivider = function() { - return false; - }; - }, - - refresh: function() { - this._refreshMenu(); - this._setText( this.buttonText, this._getSelectedItem().text() ); - if ( !this.options.width ) { - this._resizeButton(); - } - }, - - _refreshMenu: function() { - this.menu.empty(); - - var item, - options = this.element.find( "option" ); - - if ( !options.length ) { - return; - } - - this._parseOptions( options ); - this._renderMenu( this.menu, this.items ); - - this.menuInstance.refresh(); - this.menuItems = this.menu.find( "li" ).not( ".ui-selectmenu-optgroup" ); - - item = this._getSelectedItem(); - - // Update the menu to have the correct item focused - this.menuInstance.focus( null, item ); - this._setAria( item.data( "ui-selectmenu-item" ) ); - - // Set disabled state - this._setOption( "disabled", this.element.prop( "disabled" ) ); - }, - - open: function( event ) { - if ( this.options.disabled ) { - return; - } - - // If this is the first time the menu is being opened, render the items - if ( !this.menuItems ) { - this._refreshMenu(); - } else { - - // Menu clears focus on close, reset focus to selected item - this.menu.find( ".ui-state-focus" ).removeClass( "ui-state-focus" ); - this.menuInstance.focus( null, this._getSelectedItem() ); - } - - this.isOpen = true; - this._toggleAttr(); - this._resizeMenu(); - this._position(); - - this._on( this.document, this._documentClick ); - - this._trigger( "open", event ); - }, - - _position: function() { - this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) ); - }, - - close: function( event ) { - if ( !this.isOpen ) { - return; - } - - this.isOpen = false; - this._toggleAttr(); - - this.range = null; - this._off( this.document ); - - this._trigger( "close", event ); - }, - - widget: function() { - return this.button; - }, - - menuWidget: function() { - return this.menu; - }, - - _renderMenu: function( ul, items ) { - var that = this, - currentOptgroup = ""; - - $.each( items, function( index, item ) { - if ( item.optgroup !== currentOptgroup ) { - $( "<li>", { - "class": "ui-selectmenu-optgroup ui-menu-divider" + - ( item.element.parent( "optgroup" ).prop( "disabled" ) ? - " ui-state-disabled" : - "" ), - text: item.optgroup - }) - .appendTo( ul ); - - currentOptgroup = item.optgroup; - } - - that._renderItemData( ul, item ); - }); - }, - - _renderItemData: function( ul, item ) { - return this._renderItem( ul, item ).data( "ui-selectmenu-item", item ); - }, - - _renderItem: function( ul, item ) { - var li = $( "<li>" ); - - if ( item.disabled ) { - li.addClass( "ui-state-disabled" ); - } - this._setText( li, item.label ); - - return li.appendTo( ul ); - }, - - _setText: function( element, value ) { - if ( value ) { - element.text( value ); - } else { - element.html( " " ); - } - }, - - _move: function( direction, event ) { - var item, next, - filter = ".ui-menu-item"; - - if ( this.isOpen ) { - item = this.menuItems.eq( this.focusIndex ); - } else { - item = this.menuItems.eq( this.element[ 0 ].selectedIndex ); - filter += ":not(.ui-state-disabled)"; - } - - if ( direction === "first" || direction === "last" ) { - next = item[ direction === "first" ? "prevAll" : "nextAll" ]( filter ).eq( -1 ); - } else { - next = item[ direction + "All" ]( filter ).eq( 0 ); - } - - if ( next.length ) { - this.menuInstance.focus( event, next ); - } - }, - - _getSelectedItem: function() { - return this.menuItems.eq( this.element[ 0 ].selectedIndex ); - }, - - _toggle: function( event ) { - this[ this.isOpen ? "close" : "open" ]( event ); - }, - - _setSelection: function() { - var selection; - - if ( !this.range ) { - return; - } - - if ( window.getSelection ) { - selection = window.getSelection(); - selection.removeAllRanges(); - selection.addRange( this.range ); - - // support: IE8 - } else { - this.range.select(); - } - - // support: IE - // Setting the text selection kills the button focus in IE, but - // restoring the focus doesn't kill the selection. - this.button.focus(); - }, - - _documentClick: { - mousedown: function( event ) { - if ( !this.isOpen ) { - return; - } - - if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" + this.ids.button ).length ) { - this.close( event ); - } - } - }, - - _buttonEvents: { - - // Prevent text selection from being reset when interacting with the selectmenu (#10144) - mousedown: function() { - var selection; - - if ( window.getSelection ) { - selection = window.getSelection(); - if ( selection.rangeCount ) { - this.range = selection.getRangeAt( 0 ); - } - - // support: IE8 - } else { - this.range = document.selection.createRange(); - } - }, - - click: function( event ) { - this._setSelection(); - this._toggle( event ); - }, - - keydown: function( event ) { - var preventDefault = true; - switch ( event.keyCode ) { - case $.ui.keyCode.TAB: - case $.ui.keyCode.ESCAPE: - this.close( event ); - preventDefault = false; - break; - case $.ui.keyCode.ENTER: - if ( this.isOpen ) { - this._selectFocusedItem( event ); - } - break; - case $.ui.keyCode.UP: - if ( event.altKey ) { - this._toggle( event ); - } else { - this._move( "prev", event ); - } - break; - case $.ui.keyCode.DOWN: - if ( event.altKey ) { - this._toggle( event ); - } else { - this._move( "next", event ); - } - break; - case $.ui.keyCode.SPACE: - if ( this.isOpen ) { - this._selectFocusedItem( event ); - } else { - this._toggle( event ); - } - break; - case $.ui.keyCode.LEFT: - this._move( "prev", event ); - break; - case $.ui.keyCode.RIGHT: - this._move( "next", event ); - break; - case $.ui.keyCode.HOME: - case $.ui.keyCode.PAGE_UP: - this._move( "first", event ); - break; - case $.ui.keyCode.END: - case $.ui.keyCode.PAGE_DOWN: - this._move( "last", event ); - break; - default: - this.menu.trigger( event ); - preventDefault = false; - } - - if ( preventDefault ) { - event.preventDefault(); - } - } - }, - - _selectFocusedItem: function( event ) { - var item = this.menuItems.eq( this.focusIndex ); - if ( !item.hasClass( "ui-state-disabled" ) ) { - this._select( item.data( "ui-selectmenu-item" ), event ); - } - }, - - _select: function( item, event ) { - var oldIndex = this.element[ 0 ].selectedIndex; - - // Change native select element - this.element[ 0 ].selectedIndex = item.index; - this._setText( this.buttonText, item.label ); - this._setAria( item ); - this._trigger( "select", event, { item: item } ); - - if ( item.index !== oldIndex ) { - this._trigger( "change", event, { item: item } ); - } - - this.close( event ); - }, - - _setAria: function( item ) { - var id = this.menuItems.eq( item.index ).attr( "id" ); - - this.button.attr({ - "aria-labelledby": id, - "aria-activedescendant": id - }); - this.menu.attr( "aria-activedescendant", id ); - }, - - _setOption: function( key, value ) { - if ( key === "icons" ) { - this.button.find( "span.ui-icon" ) - .removeClass( this.options.icons.button ) - .addClass( value.button ); - } - - this._super( key, value ); - - if ( key === "appendTo" ) { - this.menuWrap.appendTo( this._appendTo() ); - } - - if ( key === "disabled" ) { - this.menuInstance.option( "disabled", value ); - this.button - .toggleClass( "ui-state-disabled", value ) - .attr( "aria-disabled", value ); - - this.element.prop( "disabled", value ); - if ( value ) { - this.button.attr( "tabindex", -1 ); - this.close(); - } else { - this.button.attr( "tabindex", 0 ); - } - } - - if ( key === "width" ) { - this._resizeButton(); - } - }, - - _appendTo: function() { - var element = this.options.appendTo; - - if ( element ) { - element = element.jquery || element.nodeType ? - $( element ) : - this.document.find( element ).eq( 0 ); - } - - if ( !element || !element[ 0 ] ) { - element = this.element.closest( ".ui-front" ); - } - - if ( !element.length ) { - element = this.document[ 0 ].body; - } - - return element; - }, - - _toggleAttr: function() { - this.button - .toggleClass( "ui-corner-top", this.isOpen ) - .toggleClass( "ui-corner-all", !this.isOpen ) - .attr( "aria-expanded", this.isOpen ); - this.menuWrap.toggleClass( "ui-selectmenu-open", this.isOpen ); - this.menu.attr( "aria-hidden", !this.isOpen ); - }, - - _resizeButton: function() { - var width = this.options.width; - - if ( !width ) { - width = this.element.show().outerWidth(); - this.element.hide(); - } - - this.button.outerWidth( width ); - }, - - _resizeMenu: function() { - this.menu.outerWidth( Math.max( - this.button.outerWidth(), - - // support: IE10 - // IE10 wraps long text (possibly a rounding bug) - // so we add 1px to avoid the wrapping - this.menu.width( "" ).outerWidth() + 1 - ) ); - }, - - _getCreateOptions: function() { - return { disabled: this.element.prop( "disabled" ) }; - }, - - _parseOptions: function( options ) { - var data = []; - options.each(function( index, item ) { - var option = $( item ), - optgroup = option.parent( "optgroup" ); - data.push({ - element: option, - index: index, - value: option.val(), - label: option.text(), - optgroup: optgroup.attr( "label" ) || "", - disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" ) - }); - }); - this.items = data; - }, - - _destroy: function() { - this.menuWrap.remove(); - this.button.remove(); - this.element.show(); - this.element.removeUniqueId(); - this.label.attr( "for", this.ids.element ); - } -}); - - -/*! - * jQuery UI Slider 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/slider/ - */ - - -var slider = $.widget( "ui.slider", $.ui.mouse, { - version: "1.11.4", - widgetEventPrefix: "slide", - - options: { - animate: false, - distance: 0, - max: 100, - min: 0, - orientation: "horizontal", - range: false, - step: 1, - value: 0, - values: null, - - // callbacks - change: null, - slide: null, - start: null, - stop: null - }, - - // number of pages in a slider - // (how many times can you page up/down to go through the whole range) - numPages: 5, - - _create: function() { - this._keySliding = false; - this._mouseSliding = false; - this._animateOff = true; - this._handleIndex = null; - this._detectOrientation(); - this._mouseInit(); - this._calculateNewMax(); - - this.element - .addClass( "ui-slider" + - " ui-slider-" + this.orientation + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all"); - - this._refresh(); - this._setOption( "disabled", this.options.disabled ); - - this._animateOff = false; - }, - - _refresh: function() { - this._createRange(); - this._createHandles(); - this._setupEvents(); - this._refreshValue(); - }, - - _createHandles: function() { - var i, handleCount, - options = this.options, - existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), - handle = "<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>", - handles = []; - - handleCount = ( options.values && options.values.length ) || 1; - - if ( existingHandles.length > handleCount ) { - existingHandles.slice( handleCount ).remove(); - existingHandles = existingHandles.slice( 0, handleCount ); - } - - for ( i = existingHandles.length; i < handleCount; i++ ) { - handles.push( handle ); - } - - this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) ); - - this.handle = this.handles.eq( 0 ); - - this.handles.each(function( i ) { - $( this ).data( "ui-slider-handle-index", i ); - }); - }, - - _createRange: function() { - var options = this.options, - classes = ""; - - if ( options.range ) { - if ( options.range === true ) { - if ( !options.values ) { - options.values = [ this._valueMin(), this._valueMin() ]; - } else if ( options.values.length && options.values.length !== 2 ) { - options.values = [ options.values[0], options.values[0] ]; - } else if ( $.isArray( options.values ) ) { - options.values = options.values.slice(0); - } - } - - if ( !this.range || !this.range.length ) { - this.range = $( "<div></div>" ) - .appendTo( this.element ); - - classes = "ui-slider-range" + - // note: this isn't the most fittingly semantic framework class for this element, - // but worked best visually with a variety of themes - " ui-widget-header ui-corner-all"; - } else { - this.range.removeClass( "ui-slider-range-min ui-slider-range-max" ) - // Handle range switching from true to min/max - .css({ - "left": "", - "bottom": "" - }); - } - - this.range.addClass( classes + - ( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) ); - } else { - if ( this.range ) { - this.range.remove(); - } - this.range = null; - } - }, - - _setupEvents: function() { - this._off( this.handles ); - this._on( this.handles, this._handleEvents ); - this._hoverable( this.handles ); - this._focusable( this.handles ); - }, - - _destroy: function() { - this.handles.remove(); - if ( this.range ) { - this.range.remove(); - } - - this.element - .removeClass( "ui-slider" + - " ui-slider-horizontal" + - " ui-slider-vertical" + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all" ); - - this._mouseDestroy(); - }, - - _mouseCapture: function( event ) { - var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle, - that = this, - o = this.options; - - if ( o.disabled ) { - return false; - } - - this.elementSize = { - width: this.element.outerWidth(), - height: this.element.outerHeight() - }; - this.elementOffset = this.element.offset(); - - position = { x: event.pageX, y: event.pageY }; - normValue = this._normValueFromMouse( position ); - distance = this._valueMax() - this._valueMin() + 1; - this.handles.each(function( i ) { - var thisDistance = Math.abs( normValue - that.values(i) ); - if (( distance > thisDistance ) || - ( distance === thisDistance && - (i === that._lastChangedValue || that.values(i) === o.min ))) { - distance = thisDistance; - closestHandle = $( this ); - index = i; - } - }); - - allowed = this._start( event, index ); - if ( allowed === false ) { - return false; - } - this._mouseSliding = true; - - this._handleIndex = index; - - closestHandle - .addClass( "ui-state-active" ) - .focus(); - - offset = closestHandle.offset(); - mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" ); - this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { - left: event.pageX - offset.left - ( closestHandle.width() / 2 ), - top: event.pageY - offset.top - - ( closestHandle.height() / 2 ) - - ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - - ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + - ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) - }; - - if ( !this.handles.hasClass( "ui-state-hover" ) ) { - this._slide( event, index, normValue ); - } - this._animateOff = true; - return true; - }, - - _mouseStart: function() { - return true; - }, - - _mouseDrag: function( event ) { - var position = { x: event.pageX, y: event.pageY }, - normValue = this._normValueFromMouse( position ); - - this._slide( event, this._handleIndex, normValue ); - - return false; - }, - - _mouseStop: function( event ) { - this.handles.removeClass( "ui-state-active" ); - this._mouseSliding = false; - - this._stop( event, this._handleIndex ); - this._change( event, this._handleIndex ); - - this._handleIndex = null; - this._clickOffset = null; - this._animateOff = false; - - return false; - }, - - _detectOrientation: function() { - this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; - }, - - _normValueFromMouse: function( position ) { - var pixelTotal, - pixelMouse, - percentMouse, - valueTotal, - valueMouse; - - if ( this.orientation === "horizontal" ) { - pixelTotal = this.elementSize.width; - pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); - } else { - pixelTotal = this.elementSize.height; - pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); - } - - percentMouse = ( pixelMouse / pixelTotal ); - if ( percentMouse > 1 ) { - percentMouse = 1; - } - if ( percentMouse < 0 ) { - percentMouse = 0; - } - if ( this.orientation === "vertical" ) { - percentMouse = 1 - percentMouse; - } - - valueTotal = this._valueMax() - this._valueMin(); - valueMouse = this._valueMin() + percentMouse * valueTotal; - - return this._trimAlignValue( valueMouse ); - }, - - _start: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - return this._trigger( "start", event, uiHash ); - }, - - _slide: function( event, index, newVal ) { - var otherVal, - newValues, - allowed; - - if ( this.options.values && this.options.values.length ) { - otherVal = this.values( index ? 0 : 1 ); - - if ( ( this.options.values.length === 2 && this.options.range === true ) && - ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) - ) { - newVal = otherVal; - } - - if ( newVal !== this.values( index ) ) { - newValues = this.values(); - newValues[ index ] = newVal; - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal, - values: newValues - } ); - otherVal = this.values( index ? 0 : 1 ); - if ( allowed !== false ) { - this.values( index, newVal ); - } - } - } else { - if ( newVal !== this.value() ) { - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal - } ); - if ( allowed !== false ) { - this.value( newVal ); - } - } - } - }, - - _stop: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "stop", event, uiHash ); - }, - - _change: function( event, index ) { - if ( !this._keySliding && !this._mouseSliding ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - //store the last changed value index for reference when handles overlap - this._lastChangedValue = index; - - this._trigger( "change", event, uiHash ); - } - }, - - value: function( newValue ) { - if ( arguments.length ) { - this.options.value = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, 0 ); - return; - } - - return this._value(); - }, - - values: function( index, newValue ) { - var vals, - newValues, - i; - - if ( arguments.length > 1 ) { - this.options.values[ index ] = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, index ); - return; - } - - if ( arguments.length ) { - if ( $.isArray( arguments[ 0 ] ) ) { - vals = this.options.values; - newValues = arguments[ 0 ]; - for ( i = 0; i < vals.length; i += 1 ) { - vals[ i ] = this._trimAlignValue( newValues[ i ] ); - this._change( null, i ); - } - this._refreshValue(); - } else { - if ( this.options.values && this.options.values.length ) { - return this._values( index ); - } else { - return this.value(); - } - } - } else { - return this._values(); - } - }, - - _setOption: function( key, value ) { - var i, - valsLength = 0; - - if ( key === "range" && this.options.range === true ) { - if ( value === "min" ) { - this.options.value = this._values( 0 ); - this.options.values = null; - } else if ( value === "max" ) { - this.options.value = this._values( this.options.values.length - 1 ); - this.options.values = null; - } - } - - if ( $.isArray( this.options.values ) ) { - valsLength = this.options.values.length; - } - - if ( key === "disabled" ) { - this.element.toggleClass( "ui-state-disabled", !!value ); - } - - this._super( key, value ); - - switch ( key ) { - case "orientation": - this._detectOrientation(); - this.element - .removeClass( "ui-slider-horizontal ui-slider-vertical" ) - .addClass( "ui-slider-" + this.orientation ); - this._refreshValue(); - - // Reset positioning from previous orientation - this.handles.css( value === "horizontal" ? "bottom" : "left", "" ); - break; - case "value": - this._animateOff = true; - this._refreshValue(); - this._change( null, 0 ); - this._animateOff = false; - break; - case "values": - this._animateOff = true; - this._refreshValue(); - for ( i = 0; i < valsLength; i += 1 ) { - this._change( null, i ); - } - this._animateOff = false; - break; - case "step": - case "min": - case "max": - this._animateOff = true; - this._calculateNewMax(); - this._refreshValue(); - this._animateOff = false; - break; - case "range": - this._animateOff = true; - this._refresh(); - this._animateOff = false; - break; - } - }, - - //internal value getter - // _value() returns value trimmed by min and max, aligned by step - _value: function() { - var val = this.options.value; - val = this._trimAlignValue( val ); - - return val; - }, - - //internal values getter - // _values() returns array of values trimmed by min and max, aligned by step - // _values( index ) returns single value trimmed by min and max, aligned by step - _values: function( index ) { - var val, - vals, - i; - - if ( arguments.length ) { - val = this.options.values[ index ]; - val = this._trimAlignValue( val ); - - return val; - } else if ( this.options.values && this.options.values.length ) { - // .slice() creates a copy of the array - // this copy gets trimmed by min and max and then returned - vals = this.options.values.slice(); - for ( i = 0; i < vals.length; i += 1) { - vals[ i ] = this._trimAlignValue( vals[ i ] ); - } - - return vals; - } else { - return []; - } - }, - - // returns the step-aligned value that val is closest to, between (inclusive) min and max - _trimAlignValue: function( val ) { - if ( val <= this._valueMin() ) { - return this._valueMin(); - } - if ( val >= this._valueMax() ) { - return this._valueMax(); - } - var step = ( this.options.step > 0 ) ? this.options.step : 1, - valModStep = (val - this._valueMin()) % step, - alignValue = val - valModStep; - - if ( Math.abs(valModStep) * 2 >= step ) { - alignValue += ( valModStep > 0 ) ? step : ( -step ); - } - - // Since JavaScript has problems with large floats, round - // the final value to 5 digits after the decimal point (see #4124) - return parseFloat( alignValue.toFixed(5) ); - }, - - _calculateNewMax: function() { - var max = this.options.max, - min = this._valueMin(), - step = this.options.step, - aboveMin = Math.floor( ( +( max - min ).toFixed( this._precision() ) ) / step ) * step; - max = aboveMin + min; - this.max = parseFloat( max.toFixed( this._precision() ) ); - }, - - _precision: function() { - var precision = this._precisionOf( this.options.step ); - if ( this.options.min !== null ) { - precision = Math.max( precision, this._precisionOf( this.options.min ) ); - } - return precision; - }, - - _precisionOf: function( num ) { - var str = num.toString(), - decimal = str.indexOf( "." ); - return decimal === -1 ? 0 : str.length - decimal - 1; - }, - - _valueMin: function() { - return this.options.min; - }, - - _valueMax: function() { - return this.max; - }, - - _refreshValue: function() { - var lastValPercent, valPercent, value, valueMin, valueMax, - oRange = this.options.range, - o = this.options, - that = this, - animate = ( !this._animateOff ) ? o.animate : false, - _set = {}; - - if ( this.options.values && this.options.values.length ) { - this.handles.each(function( i ) { - valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100; - _set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - if ( that.options.range === true ) { - if ( that.orientation === "horizontal" ) { - if ( i === 0 ) { - that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); - } - if ( i === 1 ) { - that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } else { - if ( i === 0 ) { - that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); - } - if ( i === 1 ) { - that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - lastValPercent = valPercent; - }); - } else { - value = this.value(); - valueMin = this._valueMin(); - valueMax = this._valueMax(); - valPercent = ( valueMax !== valueMin ) ? - ( value - valueMin ) / ( valueMax - valueMin ) * 100 : - 0; - _set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - - if ( oRange === "min" && this.orientation === "horizontal" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "horizontal" ) { - this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - if ( oRange === "min" && this.orientation === "vertical" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "vertical" ) { - this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - }, - - _handleEvents: { - keydown: function( event ) { - var allowed, curVal, newVal, step, - index = $( event.target ).data( "ui-slider-handle-index" ); - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - case $.ui.keyCode.END: - case $.ui.keyCode.PAGE_UP: - case $.ui.keyCode.PAGE_DOWN: - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - event.preventDefault(); - if ( !this._keySliding ) { - this._keySliding = true; - $( event.target ).addClass( "ui-state-active" ); - allowed = this._start( event, index ); - if ( allowed === false ) { - return; - } - } - break; - } - - step = this.options.step; - if ( this.options.values && this.options.values.length ) { - curVal = newVal = this.values( index ); - } else { - curVal = newVal = this.value(); - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - newVal = this._valueMin(); - break; - case $.ui.keyCode.END: - newVal = this._valueMax(); - break; - case $.ui.keyCode.PAGE_UP: - newVal = this._trimAlignValue( - curVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages ) - ); - break; - case $.ui.keyCode.PAGE_DOWN: - newVal = this._trimAlignValue( - curVal - ( (this._valueMax() - this._valueMin()) / this.numPages ) ); - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - if ( curVal === this._valueMax() ) { - return; - } - newVal = this._trimAlignValue( curVal + step ); - break; - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - if ( curVal === this._valueMin() ) { - return; - } - newVal = this._trimAlignValue( curVal - step ); - break; - } - - this._slide( event, index, newVal ); - }, - keyup: function( event ) { - var index = $( event.target ).data( "ui-slider-handle-index" ); - - if ( this._keySliding ) { - this._keySliding = false; - this._stop( event, index ); - this._change( event, index ); - $( event.target ).removeClass( "ui-state-active" ); - } - } - } -}); - - -/*! - * jQuery UI Spinner 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/spinner/ - */ - - -function spinner_modifier( fn ) { - return function() { - var previous = this.element.val(); - fn.apply( this, arguments ); - this._refresh(); - if ( previous !== this.element.val() ) { - this._trigger( "change" ); - } - }; -} - -var spinner = $.widget( "ui.spinner", { - version: "1.11.4", - defaultElement: "<input>", - widgetEventPrefix: "spin", - options: { - culture: null, - icons: { - down: "ui-icon-triangle-1-s", - up: "ui-icon-triangle-1-n" - }, - incremental: true, - max: null, - min: null, - numberFormat: null, - page: 10, - step: 1, - - change: null, - spin: null, - start: null, - stop: null - }, - - _create: function() { - // handle string values that need to be parsed - this._setOption( "max", this.options.max ); - this._setOption( "min", this.options.min ); - this._setOption( "step", this.options.step ); - - // Only format if there is a value, prevents the field from being marked - // as invalid in Firefox, see #9573. - if ( this.value() !== "" ) { - // Format the value, but don't constrain. - this._value( this.element.val(), true ); - } - - this._draw(); - this._on( this._events ); - this._refresh(); - - // turning off autocomplete prevents the browser from remembering the - // value when navigating through history, so we re-enable autocomplete - // if the page is unloaded before the widget is destroyed. #7790 - this._on( this.window, { - beforeunload: function() { - this.element.removeAttr( "autocomplete" ); - } - }); - }, - - _getCreateOptions: function() { - var options = {}, - element = this.element; - - $.each( [ "min", "max", "step" ], function( i, option ) { - var value = element.attr( option ); - if ( value !== undefined && value.length ) { - options[ option ] = value; - } - }); - - return options; - }, - - _events: { - keydown: function( event ) { - if ( this._start( event ) && this._keydown( event ) ) { - event.preventDefault(); - } - }, - keyup: "_stop", - focus: function() { - this.previous = this.element.val(); - }, - blur: function( event ) { - if ( this.cancelBlur ) { - delete this.cancelBlur; - return; - } - - this._stop(); - this._refresh(); - if ( this.previous !== this.element.val() ) { - this._trigger( "change", event ); - } - }, - mousewheel: function( event, delta ) { - if ( !delta ) { - return; - } - if ( !this.spinning && !this._start( event ) ) { - return false; - } - - this._spin( (delta > 0 ? 1 : -1) * this.options.step, event ); - clearTimeout( this.mousewheelTimer ); - this.mousewheelTimer = this._delay(function() { - if ( this.spinning ) { - this._stop( event ); - } - }, 100 ); - event.preventDefault(); - }, - "mousedown .ui-spinner-button": function( event ) { - var previous; - - // We never want the buttons to have focus; whenever the user is - // interacting with the spinner, the focus should be on the input. - // If the input is focused then this.previous is properly set from - // when the input first received focus. If the input is not focused - // then we need to set this.previous based on the value before spinning. - previous = this.element[0] === this.document[0].activeElement ? - this.previous : this.element.val(); - function checkFocus() { - var isActive = this.element[0] === this.document[0].activeElement; - if ( !isActive ) { - this.element.focus(); - this.previous = previous; - // support: IE - // IE sets focus asynchronously, so we need to check if focus - // moved off of the input because the user clicked on the button. - this._delay(function() { - this.previous = previous; - }); - } - } - - // ensure focus is on (or stays on) the text field - event.preventDefault(); - checkFocus.call( this ); - - // support: IE - // IE doesn't prevent moving focus even with event.preventDefault() - // so we set a flag to know when we should ignore the blur event - // and check (again) if focus moved off of the input. - this.cancelBlur = true; - this._delay(function() { - delete this.cancelBlur; - checkFocus.call( this ); - }); - - if ( this._start( event ) === false ) { - return; - } - - this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); - }, - "mouseup .ui-spinner-button": "_stop", - "mouseenter .ui-spinner-button": function( event ) { - // button will add ui-state-active if mouse was down while mouseleave and kept down - if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) { - return; - } - - if ( this._start( event ) === false ) { - return false; - } - this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); - }, - // TODO: do we really want to consider this a stop? - // shouldn't we just stop the repeater and wait until mouseup before - // we trigger the stop event? - "mouseleave .ui-spinner-button": "_stop" - }, - - _draw: function() { - var uiSpinner = this.uiSpinner = this.element - .addClass( "ui-spinner-input" ) - .attr( "autocomplete", "off" ) - .wrap( this._uiSpinnerHtml() ) - .parent() - // add buttons - .append( this._buttonHtml() ); - - this.element.attr( "role", "spinbutton" ); - - // button bindings - this.buttons = uiSpinner.find( ".ui-spinner-button" ) - .attr( "tabIndex", -1 ) - .button() - .removeClass( "ui-corner-all" ); - - // IE 6 doesn't understand height: 50% for the buttons - // unless the wrapper has an explicit height - if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) && - uiSpinner.height() > 0 ) { - uiSpinner.height( uiSpinner.height() ); - } - - // disable spinner if element was already disabled - if ( this.options.disabled ) { - this.disable(); - } - }, - - _keydown: function( event ) { - var options = this.options, - keyCode = $.ui.keyCode; - - switch ( event.keyCode ) { - case keyCode.UP: - this._repeat( null, 1, event ); - return true; - case keyCode.DOWN: - this._repeat( null, -1, event ); - return true; - case keyCode.PAGE_UP: - this._repeat( null, options.page, event ); - return true; - case keyCode.PAGE_DOWN: - this._repeat( null, -options.page, event ); - return true; - } - - return false; - }, - - _uiSpinnerHtml: function() { - return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"; - }, - - _buttonHtml: function() { - return "" + - "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'>" + - "<span class='ui-icon " + this.options.icons.up + "'>▲</span>" + - "</a>" + - "<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" + - "<span class='ui-icon " + this.options.icons.down + "'>▼</span>" + - "</a>"; - }, - - _start: function( event ) { - if ( !this.spinning && this._trigger( "start", event ) === false ) { - return false; - } - - if ( !this.counter ) { - this.counter = 1; - } - this.spinning = true; - return true; - }, - - _repeat: function( i, steps, event ) { - i = i || 500; - - clearTimeout( this.timer ); - this.timer = this._delay(function() { - this._repeat( 40, steps, event ); - }, i ); - - this._spin( steps * this.options.step, event ); - }, - - _spin: function( step, event ) { - var value = this.value() || 0; - - if ( !this.counter ) { - this.counter = 1; - } - - value = this._adjustValue( value + step * this._increment( this.counter ) ); - - if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) { - this._value( value ); - this.counter++; - } - }, - - _increment: function( i ) { - var incremental = this.options.incremental; - - if ( incremental ) { - return $.isFunction( incremental ) ? - incremental( i ) : - Math.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 ); - } - - return 1; - }, - - _precision: function() { - var precision = this._precisionOf( this.options.step ); - if ( this.options.min !== null ) { - precision = Math.max( precision, this._precisionOf( this.options.min ) ); - } - return precision; - }, - - _precisionOf: function( num ) { - var str = num.toString(), - decimal = str.indexOf( "." ); - return decimal === -1 ? 0 : str.length - decimal - 1; - }, - - _adjustValue: function( value ) { - var base, aboveMin, - options = this.options; - - // make sure we're at a valid step - // - find out where we are relative to the base (min or 0) - base = options.min !== null ? options.min : 0; - aboveMin = value - base; - // - round to the nearest step - aboveMin = Math.round(aboveMin / options.step) * options.step; - // - rounding is based on 0, so adjust back to our base - value = base + aboveMin; - - // fix precision from bad JS floating point math - value = parseFloat( value.toFixed( this._precision() ) ); - - // clamp the value - if ( options.max !== null && value > options.max) { - return options.max; - } - if ( options.min !== null && value < options.min ) { - return options.min; - } - - return value; - }, - - _stop: function( event ) { - if ( !this.spinning ) { - return; - } - - clearTimeout( this.timer ); - clearTimeout( this.mousewheelTimer ); - this.counter = 0; - this.spinning = false; - this._trigger( "stop", event ); - }, - - _setOption: function( key, value ) { - if ( key === "culture" || key === "numberFormat" ) { - var prevValue = this._parse( this.element.val() ); - this.options[ key ] = value; - this.element.val( this._format( prevValue ) ); - return; - } - - if ( key === "max" || key === "min" || key === "step" ) { - if ( typeof value === "string" ) { - value = this._parse( value ); - } - } - if ( key === "icons" ) { - this.buttons.first().find( ".ui-icon" ) - .removeClass( this.options.icons.up ) - .addClass( value.up ); - this.buttons.last().find( ".ui-icon" ) - .removeClass( this.options.icons.down ) - .addClass( value.down ); - } - - this._super( key, value ); - - if ( key === "disabled" ) { - this.widget().toggleClass( "ui-state-disabled", !!value ); - this.element.prop( "disabled", !!value ); - this.buttons.button( value ? "disable" : "enable" ); - } - }, - - _setOptions: spinner_modifier(function( options ) { - this._super( options ); - }), - - _parse: function( val ) { - if ( typeof val === "string" && val !== "" ) { - val = window.Globalize && this.options.numberFormat ? - Globalize.parseFloat( val, 10, this.options.culture ) : +val; - } - return val === "" || isNaN( val ) ? null : val; - }, - - _format: function( value ) { - if ( value === "" ) { - return ""; - } - return window.Globalize && this.options.numberFormat ? - Globalize.format( value, this.options.numberFormat, this.options.culture ) : - value; - }, - - _refresh: function() { - this.element.attr({ - "aria-valuemin": this.options.min, - "aria-valuemax": this.options.max, - // TODO: what should we do with values that can't be parsed? - "aria-valuenow": this._parse( this.element.val() ) - }); - }, - - isValid: function() { - var value = this.value(); - - // null is invalid - if ( value === null ) { - return false; - } - - // if value gets adjusted, it's invalid - return value === this._adjustValue( value ); - }, - - // update the value without triggering change - _value: function( value, allowAny ) { - var parsed; - if ( value !== "" ) { - parsed = this._parse( value ); - if ( parsed !== null ) { - if ( !allowAny ) { - parsed = this._adjustValue( parsed ); - } - value = this._format( parsed ); - } - } - this.element.val( value ); - this._refresh(); - }, - - _destroy: function() { - this.element - .removeClass( "ui-spinner-input" ) - .prop( "disabled", false ) - .removeAttr( "autocomplete" ) - .removeAttr( "role" ) - .removeAttr( "aria-valuemin" ) - .removeAttr( "aria-valuemax" ) - .removeAttr( "aria-valuenow" ); - this.uiSpinner.replaceWith( this.element ); - }, - - stepUp: spinner_modifier(function( steps ) { - this._stepUp( steps ); - }), - _stepUp: function( steps ) { - if ( this._start() ) { - this._spin( (steps || 1) * this.options.step ); - this._stop(); - } - }, - - stepDown: spinner_modifier(function( steps ) { - this._stepDown( steps ); - }), - _stepDown: function( steps ) { - if ( this._start() ) { - this._spin( (steps || 1) * -this.options.step ); - this._stop(); - } - }, - - pageUp: spinner_modifier(function( pages ) { - this._stepUp( (pages || 1) * this.options.page ); - }), - - pageDown: spinner_modifier(function( pages ) { - this._stepDown( (pages || 1) * this.options.page ); - }), - - value: function( newVal ) { - if ( !arguments.length ) { - return this._parse( this.element.val() ); - } - spinner_modifier( this._value ).call( this, newVal ); - }, - - widget: function() { - return this.uiSpinner; - } -}); - - -/*! - * jQuery UI Tabs 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/tabs/ - */ - - -var tabs = $.widget( "ui.tabs", { - version: "1.11.4", - delay: 300, - options: { - active: null, - collapsible: false, - event: "click", - heightStyle: "content", - hide: null, - show: null, - - // callbacks - activate: null, - beforeActivate: null, - beforeLoad: null, - load: null - }, - - _isLocal: (function() { - var rhash = /#.*$/; - - return function( anchor ) { - var anchorUrl, locationUrl; - - // support: IE7 - // IE7 doesn't normalize the href property when set via script (#9317) - anchor = anchor.cloneNode( false ); - - anchorUrl = anchor.href.replace( rhash, "" ); - locationUrl = location.href.replace( rhash, "" ); - - // decoding may throw an error if the URL isn't UTF-8 (#9518) - try { - anchorUrl = decodeURIComponent( anchorUrl ); - } catch ( error ) {} - try { - locationUrl = decodeURIComponent( locationUrl ); - } catch ( error ) {} - - return anchor.hash.length > 1 && anchorUrl === locationUrl; - }; - })(), - - _create: function() { - var that = this, - options = this.options; - - this.running = false; - - this.element - .addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ) - .toggleClass( "ui-tabs-collapsible", options.collapsible ); - - this._processTabs(); - options.active = this._initialActive(); - - // Take disabling tabs via class attribute from HTML - // into account and update option properly. - if ( $.isArray( options.disabled ) ) { - options.disabled = $.unique( options.disabled.concat( - $.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) { - return that.tabs.index( li ); - }) - ) ).sort(); - } - - // check for length avoids error when initializing empty list - if ( this.options.active !== false && this.anchors.length ) { - this.active = this._findActive( options.active ); - } else { - this.active = $(); - } - - this._refresh(); - - if ( this.active.length ) { - this.load( options.active ); - } - }, - - _initialActive: function() { - var active = this.options.active, - collapsible = this.options.collapsible, - locationHash = location.hash.substring( 1 ); - - if ( active === null ) { - // check the fragment identifier in the URL - if ( locationHash ) { - this.tabs.each(function( i, tab ) { - if ( $( tab ).attr( "aria-controls" ) === locationHash ) { - active = i; - return false; - } - }); - } - - // check for a tab marked active via a class - if ( active === null ) { - active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) ); - } - - // no active tab, set to false - if ( active === null || active === -1 ) { - active = this.tabs.length ? 0 : false; - } - } - - // handle numbers: negative, out of range - if ( active !== false ) { - active = this.tabs.index( this.tabs.eq( active ) ); - if ( active === -1 ) { - active = collapsible ? false : 0; - } - } - - // don't allow collapsible: false and active: false - if ( !collapsible && active === false && this.anchors.length ) { - active = 0; - } - - return active; - }, - - _getCreateEventData: function() { - return { - tab: this.active, - panel: !this.active.length ? $() : this._getPanelForTab( this.active ) - }; - }, - - _tabKeydown: function( event ) { - var focusedTab = $( this.document[0].activeElement ).closest( "li" ), - selectedIndex = this.tabs.index( focusedTab ), - goingForward = true; - - if ( this._handlePageNav( event ) ) { - return; - } - - switch ( event.keyCode ) { - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - selectedIndex++; - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.LEFT: - goingForward = false; - selectedIndex--; - break; - case $.ui.keyCode.END: - selectedIndex = this.anchors.length - 1; - break; - case $.ui.keyCode.HOME: - selectedIndex = 0; - break; - case $.ui.keyCode.SPACE: - // Activate only, no collapsing - event.preventDefault(); - clearTimeout( this.activating ); - this._activate( selectedIndex ); - return; - case $.ui.keyCode.ENTER: - // Toggle (cancel delayed activation, allow collapsing) - event.preventDefault(); - clearTimeout( this.activating ); - // Determine if we should collapse or activate - this._activate( selectedIndex === this.options.active ? false : selectedIndex ); - return; - default: - return; - } - - // Focus the appropriate tab, based on which key was pressed - event.preventDefault(); - clearTimeout( this.activating ); - selectedIndex = this._focusNextTab( selectedIndex, goingForward ); - - // Navigating with control/command key will prevent automatic activation - if ( !event.ctrlKey && !event.metaKey ) { - - // Update aria-selected immediately so that AT think the tab is already selected. - // Otherwise AT may confuse the user by stating that they need to activate the tab, - // but the tab will already be activated by the time the announcement finishes. - focusedTab.attr( "aria-selected", "false" ); - this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" ); - - this.activating = this._delay(function() { - this.option( "active", selectedIndex ); - }, this.delay ); - } - }, - - _panelKeydown: function( event ) { - if ( this._handlePageNav( event ) ) { - return; - } - - // Ctrl+up moves focus to the current tab - if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) { - event.preventDefault(); - this.active.focus(); - } - }, - - // Alt+page up/down moves focus to the previous/next tab (and activates) - _handlePageNav: function( event ) { - if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) { - this._activate( this._focusNextTab( this.options.active - 1, false ) ); - return true; - } - if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) { - this._activate( this._focusNextTab( this.options.active + 1, true ) ); - return true; - } - }, - - _findNextTab: function( index, goingForward ) { - var lastTabIndex = this.tabs.length - 1; - - function constrain() { - if ( index > lastTabIndex ) { - index = 0; - } - if ( index < 0 ) { - index = lastTabIndex; - } - return index; - } - - while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) { - index = goingForward ? index + 1 : index - 1; - } - - return index; - }, - - _focusNextTab: function( index, goingForward ) { - index = this._findNextTab( index, goingForward ); - this.tabs.eq( index ).focus(); - return index; - }, - - _setOption: function( key, value ) { - if ( key === "active" ) { - // _activate() will handle invalid values and update this.options - this._activate( value ); - return; - } - - if ( key === "disabled" ) { - // don't use the widget factory's disabled handling - this._setupDisabled( value ); - return; - } - - this._super( key, value); - - if ( key === "collapsible" ) { - this.element.toggleClass( "ui-tabs-collapsible", value ); - // Setting collapsible: false while collapsed; open first panel - if ( !value && this.options.active === false ) { - this._activate( 0 ); - } - } - - if ( key === "event" ) { - this._setupEvents( value ); - } - - if ( key === "heightStyle" ) { - this._setupHeightStyle( value ); - } - }, - - _sanitizeSelector: function( hash ) { - return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : ""; - }, - - refresh: function() { - var options = this.options, - lis = this.tablist.children( ":has(a[href])" ); - - // get disabled tabs from class attribute from HTML - // this will get converted to a boolean if needed in _refresh() - options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) { - return lis.index( tab ); - }); - - this._processTabs(); - - // was collapsed or no tabs - if ( options.active === false || !this.anchors.length ) { - options.active = false; - this.active = $(); - // was active, but active tab is gone - } else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) { - // all remaining tabs are disabled - if ( this.tabs.length === options.disabled.length ) { - options.active = false; - this.active = $(); - // activate previous tab - } else { - this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) ); - } - // was active, active tab still exists - } else { - // make sure active index is correct - options.active = this.tabs.index( this.active ); - } - - this._refresh(); - }, - - _refresh: function() { - this._setupDisabled( this.options.disabled ); - this._setupEvents( this.options.event ); - this._setupHeightStyle( this.options.heightStyle ); - - this.tabs.not( this.active ).attr({ - "aria-selected": "false", - "aria-expanded": "false", - tabIndex: -1 - }); - this.panels.not( this._getPanelForTab( this.active ) ) - .hide() - .attr({ - "aria-hidden": "true" - }); - - // Make sure one tab is in the tab order - if ( !this.active.length ) { - this.tabs.eq( 0 ).attr( "tabIndex", 0 ); - } else { - this.active - .addClass( "ui-tabs-active ui-state-active" ) - .attr({ - "aria-selected": "true", - "aria-expanded": "true", - tabIndex: 0 - }); - this._getPanelForTab( this.active ) - .show() - .attr({ - "aria-hidden": "false" - }); - } - }, - - _processTabs: function() { - var that = this, - prevTabs = this.tabs, - prevAnchors = this.anchors, - prevPanels = this.panels; - - this.tablist = this._getList() - .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) - .attr( "role", "tablist" ) - - // Prevent users from focusing disabled tabs via click - .delegate( "> li", "mousedown" + this.eventNamespace, function( event ) { - if ( $( this ).is( ".ui-state-disabled" ) ) { - event.preventDefault(); - } - }) - - // support: IE <9 - // Preventing the default action in mousedown doesn't prevent IE - // from focusing the element, so if the anchor gets focused, blur. - // We don't have to worry about focusing the previously focused - // element since clicking on a non-focusable element should focus - // the body anyway. - .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { - if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { - this.blur(); - } - }); - - this.tabs = this.tablist.find( "> li:has(a[href])" ) - .addClass( "ui-state-default ui-corner-top" ) - .attr({ - role: "tab", - tabIndex: -1 - }); - - this.anchors = this.tabs.map(function() { - return $( "a", this )[ 0 ]; - }) - .addClass( "ui-tabs-anchor" ) - .attr({ - role: "presentation", - tabIndex: -1 - }); - - this.panels = $(); - - this.anchors.each(function( i, anchor ) { - var selector, panel, panelId, - anchorId = $( anchor ).uniqueId().attr( "id" ), - tab = $( anchor ).closest( "li" ), - originalAriaControls = tab.attr( "aria-controls" ); - - // inline tab - if ( that._isLocal( anchor ) ) { - selector = anchor.hash; - panelId = selector.substring( 1 ); - panel = that.element.find( that._sanitizeSelector( selector ) ); - // remote tab - } else { - // If the tab doesn't already have aria-controls, - // generate an id by using a throw-away element - panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id; - selector = "#" + panelId; - panel = that.element.find( selector ); - if ( !panel.length ) { - panel = that._createPanel( panelId ); - panel.insertAfter( that.panels[ i - 1 ] || that.tablist ); - } - panel.attr( "aria-live", "polite" ); - } - - if ( panel.length) { - that.panels = that.panels.add( panel ); - } - if ( originalAriaControls ) { - tab.data( "ui-tabs-aria-controls", originalAriaControls ); - } - tab.attr({ - "aria-controls": panelId, - "aria-labelledby": anchorId - }); - panel.attr( "aria-labelledby", anchorId ); - }); - - this.panels - .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) - .attr( "role", "tabpanel" ); - - // Avoid memory leaks (#10056) - if ( prevTabs ) { - this._off( prevTabs.not( this.tabs ) ); - this._off( prevAnchors.not( this.anchors ) ); - this._off( prevPanels.not( this.panels ) ); - } - }, - - // allow overriding how to find the list for rare usage scenarios (#7715) - _getList: function() { - return this.tablist || this.element.find( "ol,ul" ).eq( 0 ); - }, - - _createPanel: function( id ) { - return $( "<div>" ) - .attr( "id", id ) - .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) - .data( "ui-tabs-destroy", true ); - }, - - _setupDisabled: function( disabled ) { - if ( $.isArray( disabled ) ) { - if ( !disabled.length ) { - disabled = false; - } else if ( disabled.length === this.anchors.length ) { - disabled = true; - } - } - - // disable tabs - for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) { - if ( disabled === true || $.inArray( i, disabled ) !== -1 ) { - $( li ) - .addClass( "ui-state-disabled" ) - .attr( "aria-disabled", "true" ); - } else { - $( li ) - .removeClass( "ui-state-disabled" ) - .removeAttr( "aria-disabled" ); - } - } - - this.options.disabled = disabled; - }, - - _setupEvents: function( event ) { - var events = {}; - if ( event ) { - $.each( event.split(" "), function( index, eventName ) { - events[ eventName ] = "_eventHandler"; - }); - } - - this._off( this.anchors.add( this.tabs ).add( this.panels ) ); - // Always prevent the default action, even when disabled - this._on( true, this.anchors, { - click: function( event ) { - event.preventDefault(); - } - }); - this._on( this.anchors, events ); - this._on( this.tabs, { keydown: "_tabKeydown" } ); - this._on( this.panels, { keydown: "_panelKeydown" } ); - - this._focusable( this.tabs ); - this._hoverable( this.tabs ); - }, - - _setupHeightStyle: function( heightStyle ) { - var maxHeight, - parent = this.element.parent(); - - if ( heightStyle === "fill" ) { - maxHeight = parent.height(); - maxHeight -= this.element.outerHeight() - this.element.height(); - - this.element.siblings( ":visible" ).each(function() { - var elem = $( this ), - position = elem.css( "position" ); - - if ( position === "absolute" || position === "fixed" ) { - return; - } - maxHeight -= elem.outerHeight( true ); - }); - - this.element.children().not( this.panels ).each(function() { - maxHeight -= $( this ).outerHeight( true ); - }); - - this.panels.each(function() { - $( this ).height( Math.max( 0, maxHeight - - $( this ).innerHeight() + $( this ).height() ) ); - }) - .css( "overflow", "auto" ); - } else if ( heightStyle === "auto" ) { - maxHeight = 0; - this.panels.each(function() { - maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); - }).height( maxHeight ); - } - }, - - _eventHandler: function( event ) { - var options = this.options, - active = this.active, - anchor = $( event.currentTarget ), - tab = anchor.closest( "li" ), - clickedIsActive = tab[ 0 ] === active[ 0 ], - collapsing = clickedIsActive && options.collapsible, - toShow = collapsing ? $() : this._getPanelForTab( tab ), - toHide = !active.length ? $() : this._getPanelForTab( active ), - eventData = { - oldTab: active, - oldPanel: toHide, - newTab: collapsing ? $() : tab, - newPanel: toShow - }; - - event.preventDefault(); - - if ( tab.hasClass( "ui-state-disabled" ) || - // tab is already loading - tab.hasClass( "ui-tabs-loading" ) || - // can't switch durning an animation - this.running || - // click on active header, but not collapsible - ( clickedIsActive && !options.collapsible ) || - // allow canceling activation - ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { - return; - } - - options.active = collapsing ? false : this.tabs.index( tab ); - - this.active = clickedIsActive ? $() : tab; - if ( this.xhr ) { - this.xhr.abort(); - } - - if ( !toHide.length && !toShow.length ) { - $.error( "jQuery UI Tabs: Mismatching fragment identifier." ); - } - - if ( toShow.length ) { - this.load( this.tabs.index( tab ), event ); - } - this._toggle( event, eventData ); - }, - - // handles show/hide for selecting tabs - _toggle: function( event, eventData ) { - var that = this, - toShow = eventData.newPanel, - toHide = eventData.oldPanel; - - this.running = true; - - function complete() { - that.running = false; - that._trigger( "activate", event, eventData ); - } - - function show() { - eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" ); - - if ( toShow.length && that.options.show ) { - that._show( toShow, that.options.show, complete ); - } else { - toShow.show(); - complete(); - } - } - - // start out by hiding, then showing, then completing - if ( toHide.length && this.options.hide ) { - this._hide( toHide, this.options.hide, function() { - eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); - show(); - }); - } else { - eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); - toHide.hide(); - show(); - } - - toHide.attr( "aria-hidden", "true" ); - eventData.oldTab.attr({ - "aria-selected": "false", - "aria-expanded": "false" - }); - // If we're switching tabs, remove the old tab from the tab order. - // If we're opening from collapsed state, remove the previous tab from the tab order. - // If we're collapsing, then keep the collapsing tab in the tab order. - if ( toShow.length && toHide.length ) { - eventData.oldTab.attr( "tabIndex", -1 ); - } else if ( toShow.length ) { - this.tabs.filter(function() { - return $( this ).attr( "tabIndex" ) === 0; - }) - .attr( "tabIndex", -1 ); - } - - toShow.attr( "aria-hidden", "false" ); - eventData.newTab.attr({ - "aria-selected": "true", - "aria-expanded": "true", - tabIndex: 0 - }); - }, - - _activate: function( index ) { - var anchor, - active = this._findActive( index ); - - // trying to activate the already active panel - if ( active[ 0 ] === this.active[ 0 ] ) { - return; - } - - // trying to collapse, simulate a click on the current active header - if ( !active.length ) { - active = this.active; - } - - anchor = active.find( ".ui-tabs-anchor" )[ 0 ]; - this._eventHandler({ - target: anchor, - currentTarget: anchor, - preventDefault: $.noop - }); - }, - - _findActive: function( index ) { - return index === false ? $() : this.tabs.eq( index ); - }, - - _getIndex: function( index ) { - // meta-function to give users option to provide a href string instead of a numerical index. - if ( typeof index === "string" ) { - index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) ); - } - - return index; - }, - - _destroy: function() { - if ( this.xhr ) { - this.xhr.abort(); - } - - this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ); - - this.tablist - .removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) - .removeAttr( "role" ); - - this.anchors - .removeClass( "ui-tabs-anchor" ) - .removeAttr( "role" ) - .removeAttr( "tabIndex" ) - .removeUniqueId(); - - this.tablist.unbind( this.eventNamespace ); - - this.tabs.add( this.panels ).each(function() { - if ( $.data( this, "ui-tabs-destroy" ) ) { - $( this ).remove(); - } else { - $( this ) - .removeClass( "ui-state-default ui-state-active ui-state-disabled " + - "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" ) - .removeAttr( "tabIndex" ) - .removeAttr( "aria-live" ) - .removeAttr( "aria-busy" ) - .removeAttr( "aria-selected" ) - .removeAttr( "aria-labelledby" ) - .removeAttr( "aria-hidden" ) - .removeAttr( "aria-expanded" ) - .removeAttr( "role" ); - } - }); - - this.tabs.each(function() { - var li = $( this ), - prev = li.data( "ui-tabs-aria-controls" ); - if ( prev ) { - li - .attr( "aria-controls", prev ) - .removeData( "ui-tabs-aria-controls" ); - } else { - li.removeAttr( "aria-controls" ); - } - }); - - this.panels.show(); - - if ( this.options.heightStyle !== "content" ) { - this.panels.css( "height", "" ); - } - }, - - enable: function( index ) { - var disabled = this.options.disabled; - if ( disabled === false ) { - return; - } - - if ( index === undefined ) { - disabled = false; - } else { - index = this._getIndex( index ); - if ( $.isArray( disabled ) ) { - disabled = $.map( disabled, function( num ) { - return num !== index ? num : null; - }); - } else { - disabled = $.map( this.tabs, function( li, num ) { - return num !== index ? num : null; - }); - } - } - this._setupDisabled( disabled ); - }, - - disable: function( index ) { - var disabled = this.options.disabled; - if ( disabled === true ) { - return; - } - - if ( index === undefined ) { - disabled = true; - } else { - index = this._getIndex( index ); - if ( $.inArray( index, disabled ) !== -1 ) { - return; - } - if ( $.isArray( disabled ) ) { - disabled = $.merge( [ index ], disabled ).sort(); - } else { - disabled = [ index ]; - } - } - this._setupDisabled( disabled ); - }, - - load: function( index, event ) { - index = this._getIndex( index ); - var that = this, - tab = this.tabs.eq( index ), - anchor = tab.find( ".ui-tabs-anchor" ), - panel = this._getPanelForTab( tab ), - eventData = { - tab: tab, - panel: panel - }, - complete = function( jqXHR, status ) { - if ( status === "abort" ) { - that.panels.stop( false, true ); - } - - tab.removeClass( "ui-tabs-loading" ); - panel.removeAttr( "aria-busy" ); - - if ( jqXHR === that.xhr ) { - delete that.xhr; - } - }; - - // not remote - if ( this._isLocal( anchor[ 0 ] ) ) { - return; - } - - this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) ); - - // support: jQuery <1.8 - // jQuery <1.8 returns false if the request is canceled in beforeSend, - // but as of 1.8, $.ajax() always returns a jqXHR object. - if ( this.xhr && this.xhr.statusText !== "canceled" ) { - tab.addClass( "ui-tabs-loading" ); - panel.attr( "aria-busy", "true" ); - - this.xhr - .done(function( response, status, jqXHR ) { - // support: jQuery <1.8 - // http://bugs.jquery.com/ticket/11778 - setTimeout(function() { - panel.html( response ); - that._trigger( "load", event, eventData ); - - complete( jqXHR, status ); - }, 1 ); - }) - .fail(function( jqXHR, status ) { - // support: jQuery <1.8 - // http://bugs.jquery.com/ticket/11778 - setTimeout(function() { - complete( jqXHR, status ); - }, 1 ); - }); - } - }, - - _ajaxSettings: function( anchor, event, eventData ) { - var that = this; - return { - url: anchor.attr( "href" ), - beforeSend: function( jqXHR, settings ) { - return that._trigger( "beforeLoad", event, - $.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) ); - } - }; - }, - - _getPanelForTab: function( tab ) { - var id = $( tab ).attr( "aria-controls" ); - return this.element.find( this._sanitizeSelector( "#" + id ) ); - } -}); - - -/*! - * jQuery UI Tooltip 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/tooltip/ - */ - - -var tooltip = $.widget( "ui.tooltip", { - version: "1.11.4", - options: { - content: function() { - // support: IE<9, Opera in jQuery <1.7 - // .text() can't accept undefined, so coerce to a string - var title = $( this ).attr( "title" ) || ""; - // Escape title, since we're going from an attribute to raw HTML - return $( "<a>" ).text( title ).html(); - }, - hide: true, - // Disabled elements have inconsistent behavior across browsers (#8661) - items: "[title]:not([disabled])", - position: { - my: "left top+15", - at: "left bottom", - collision: "flipfit flip" - }, - show: true, - tooltipClass: null, - track: false, - - // callbacks - close: null, - open: null - }, - - _addDescribedBy: function( elem, id ) { - var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ); - describedby.push( id ); - elem - .data( "ui-tooltip-id", id ) - .attr( "aria-describedby", $.trim( describedby.join( " " ) ) ); - }, - - _removeDescribedBy: function( elem ) { - var id = elem.data( "ui-tooltip-id" ), - describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ), - index = $.inArray( id, describedby ); - - if ( index !== -1 ) { - describedby.splice( index, 1 ); - } - - elem.removeData( "ui-tooltip-id" ); - describedby = $.trim( describedby.join( " " ) ); - if ( describedby ) { - elem.attr( "aria-describedby", describedby ); - } else { - elem.removeAttr( "aria-describedby" ); - } - }, - - _create: function() { - this._on({ - mouseover: "open", - focusin: "open" - }); - - // IDs of generated tooltips, needed for destroy - this.tooltips = {}; - - // IDs of parent tooltips where we removed the title attribute - this.parents = {}; - - if ( this.options.disabled ) { - this._disable(); - } - - // Append the aria-live region so tooltips announce correctly - this.liveRegion = $( "<div>" ) - .attr({ - role: "log", - "aria-live": "assertive", - "aria-relevant": "additions" - }) - .addClass( "ui-helper-hidden-accessible" ) - .appendTo( this.document[ 0 ].body ); - }, - - _setOption: function( key, value ) { - var that = this; - - if ( key === "disabled" ) { - this[ value ? "_disable" : "_enable" ](); - this.options[ key ] = value; - // disable element style changes - return; - } - - this._super( key, value ); - - if ( key === "content" ) { - $.each( this.tooltips, function( id, tooltipData ) { - that._updateContent( tooltipData.element ); - }); - } - }, - - _disable: function() { - var that = this; - - // close open tooltips - $.each( this.tooltips, function( id, tooltipData ) { - var event = $.Event( "blur" ); - event.target = event.currentTarget = tooltipData.element[ 0 ]; - that.close( event, true ); - }); - - // remove title attributes to prevent native tooltips - this.element.find( this.options.items ).addBack().each(function() { - var element = $( this ); - if ( element.is( "[title]" ) ) { - element - .data( "ui-tooltip-title", element.attr( "title" ) ) - .removeAttr( "title" ); - } - }); - }, - - _enable: function() { - // restore title attributes - this.element.find( this.options.items ).addBack().each(function() { - var element = $( this ); - if ( element.data( "ui-tooltip-title" ) ) { - element.attr( "title", element.data( "ui-tooltip-title" ) ); - } - }); - }, - - open: function( event ) { - var that = this, - target = $( event ? event.target : this.element ) - // we need closest here due to mouseover bubbling, - // but always pointing at the same event target - .closest( this.options.items ); - - // No element to show a tooltip for or the tooltip is already open - if ( !target.length || target.data( "ui-tooltip-id" ) ) { - return; - } - - if ( target.attr( "title" ) ) { - target.data( "ui-tooltip-title", target.attr( "title" ) ); - } - - target.data( "ui-tooltip-open", true ); - - // kill parent tooltips, custom or native, for hover - if ( event && event.type === "mouseover" ) { - target.parents().each(function() { - var parent = $( this ), - blurEvent; - if ( parent.data( "ui-tooltip-open" ) ) { - blurEvent = $.Event( "blur" ); - blurEvent.target = blurEvent.currentTarget = this; - that.close( blurEvent, true ); - } - if ( parent.attr( "title" ) ) { - parent.uniqueId(); - that.parents[ this.id ] = { - element: this, - title: parent.attr( "title" ) - }; - parent.attr( "title", "" ); - } - }); - } - - this._registerCloseHandlers( event, target ); - this._updateContent( target, event ); - }, - - _updateContent: function( target, event ) { - var content, - contentOption = this.options.content, - that = this, - eventType = event ? event.type : null; - - if ( typeof contentOption === "string" ) { - return this._open( event, target, contentOption ); - } - - content = contentOption.call( target[0], function( response ) { - - // IE may instantly serve a cached response for ajax requests - // delay this call to _open so the other call to _open runs first - that._delay(function() { - - // Ignore async response if tooltip was closed already - if ( !target.data( "ui-tooltip-open" ) ) { - return; - } - - // jQuery creates a special event for focusin when it doesn't - // exist natively. To improve performance, the native event - // object is reused and the type is changed. Therefore, we can't - // rely on the type being correct after the event finished - // bubbling, so we set it back to the previous value. (#8740) - if ( event ) { - event.type = eventType; - } - this._open( event, target, response ); - }); - }); - if ( content ) { - this._open( event, target, content ); - } - }, - - _open: function( event, target, content ) { - var tooltipData, tooltip, delayedShow, a11yContent, - positionOption = $.extend( {}, this.options.position ); - - if ( !content ) { - return; - } - - // Content can be updated multiple times. If the tooltip already - // exists, then just update the content and bail. - tooltipData = this._find( target ); - if ( tooltipData ) { - tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content ); - return; - } - - // if we have a title, clear it to prevent the native tooltip - // we have to check first to avoid defining a title if none exists - // (we don't want to cause an element to start matching [title]) - // - // We use removeAttr only for key events, to allow IE to export the correct - // accessible attributes. For mouse events, set to empty string to avoid - // native tooltip showing up (happens only when removing inside mouseover). - if ( target.is( "[title]" ) ) { - if ( event && event.type === "mouseover" ) { - target.attr( "title", "" ); - } else { - target.removeAttr( "title" ); - } - } - - tooltipData = this._tooltip( target ); - tooltip = tooltipData.tooltip; - this._addDescribedBy( target, tooltip.attr( "id" ) ); - tooltip.find( ".ui-tooltip-content" ).html( content ); - - // Support: Voiceover on OS X, JAWS on IE <= 9 - // JAWS announces deletions even when aria-relevant="additions" - // Voiceover will sometimes re-read the entire log region's contents from the beginning - this.liveRegion.children().hide(); - if ( content.clone ) { - a11yContent = content.clone(); - a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" ); - } else { - a11yContent = content; - } - $( "<div>" ).html( a11yContent ).appendTo( this.liveRegion ); - - function position( event ) { - positionOption.of = event; - if ( tooltip.is( ":hidden" ) ) { - return; - } - tooltip.position( positionOption ); - } - if ( this.options.track && event && /^mouse/.test( event.type ) ) { - this._on( this.document, { - mousemove: position - }); - // trigger once to override element-relative positioning - position( event ); - } else { - tooltip.position( $.extend({ - of: target - }, this.options.position ) ); - } - - tooltip.hide(); - - this._show( tooltip, this.options.show ); - // Handle tracking tooltips that are shown with a delay (#8644). As soon - // as the tooltip is visible, position the tooltip using the most recent - // event. - if ( this.options.show && this.options.show.delay ) { - delayedShow = this.delayedShow = setInterval(function() { - if ( tooltip.is( ":visible" ) ) { - position( positionOption.of ); - clearInterval( delayedShow ); - } - }, $.fx.interval ); - } - - this._trigger( "open", event, { tooltip: tooltip } ); - }, - - _registerCloseHandlers: function( event, target ) { - var events = { - keyup: function( event ) { - if ( event.keyCode === $.ui.keyCode.ESCAPE ) { - var fakeEvent = $.Event(event); - fakeEvent.currentTarget = target[0]; - this.close( fakeEvent, true ); - } - } - }; - - // Only bind remove handler for delegated targets. Non-delegated - // tooltips will handle this in destroy. - if ( target[ 0 ] !== this.element[ 0 ] ) { - events.remove = function() { - this._removeTooltip( this._find( target ).tooltip ); - }; - } - - if ( !event || event.type === "mouseover" ) { - events.mouseleave = "close"; - } - if ( !event || event.type === "focusin" ) { - events.focusout = "close"; - } - this._on( true, target, events ); - }, - - close: function( event ) { - var tooltip, - that = this, - target = $( event ? event.currentTarget : this.element ), - tooltipData = this._find( target ); - - // The tooltip may already be closed - if ( !tooltipData ) { - - // We set ui-tooltip-open immediately upon open (in open()), but only set the - // additional data once there's actually content to show (in _open()). So even if the - // tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in - // the period between open() and _open(). - target.removeData( "ui-tooltip-open" ); - return; - } - - tooltip = tooltipData.tooltip; - - // disabling closes the tooltip, so we need to track when we're closing - // to avoid an infinite loop in case the tooltip becomes disabled on close - if ( tooltipData.closing ) { - return; - } - - // Clear the interval for delayed tracking tooltips - clearInterval( this.delayedShow ); - - // only set title if we had one before (see comment in _open()) - // If the title attribute has changed since open(), don't restore - if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) { - target.attr( "title", target.data( "ui-tooltip-title" ) ); - } - - this._removeDescribedBy( target ); - - tooltipData.hiding = true; - tooltip.stop( true ); - this._hide( tooltip, this.options.hide, function() { - that._removeTooltip( $( this ) ); - }); - - target.removeData( "ui-tooltip-open" ); - this._off( target, "mouseleave focusout keyup" ); - - // Remove 'remove' binding only on delegated targets - if ( target[ 0 ] !== this.element[ 0 ] ) { - this._off( target, "remove" ); - } - this._off( this.document, "mousemove" ); - - if ( event && event.type === "mouseleave" ) { - $.each( this.parents, function( id, parent ) { - $( parent.element ).attr( "title", parent.title ); - delete that.parents[ id ]; - }); - } - - tooltipData.closing = true; - this._trigger( "close", event, { tooltip: tooltip } ); - if ( !tooltipData.hiding ) { - tooltipData.closing = false; - } - }, - - _tooltip: function( element ) { - var tooltip = $( "<div>" ) - .attr( "role", "tooltip" ) - .addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " + - ( this.options.tooltipClass || "" ) ), - id = tooltip.uniqueId().attr( "id" ); - - $( "<div>" ) - .addClass( "ui-tooltip-content" ) - .appendTo( tooltip ); - - tooltip.appendTo( this.document[0].body ); - - return this.tooltips[ id ] = { - element: element, - tooltip: tooltip - }; - }, - - _find: function( target ) { - var id = target.data( "ui-tooltip-id" ); - return id ? this.tooltips[ id ] : null; - }, - - _removeTooltip: function( tooltip ) { - tooltip.remove(); - delete this.tooltips[ tooltip.attr( "id" ) ]; - }, - - _destroy: function() { - var that = this; - - // close open tooltips - $.each( this.tooltips, function( id, tooltipData ) { - // Delegate to close method to handle common cleanup - var event = $.Event( "blur" ), - element = tooltipData.element; - event.target = event.currentTarget = element[ 0 ]; - that.close( event, true ); - - // Remove immediately; destroying an open tooltip doesn't use the - // hide animation - $( "#" + id ).remove(); - - // Restore the title - if ( element.data( "ui-tooltip-title" ) ) { - // If the title attribute has changed since open(), don't restore - if ( !element.attr( "title" ) ) { - element.attr( "title", element.data( "ui-tooltip-title" ) ); - } - element.removeData( "ui-tooltip-title" ); - } - }); - this.liveRegion.remove(); - } -}); - - -/*! - * jQuery UI Effects 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/category/effects-core/ - */ - - -var dataSpace = "ui-effects-", - - // Create a local jQuery because jQuery Color relies on it and the - // global may not exist with AMD and a custom build (#10199) - jQuery = $; - -$.effects = { - effect: {} -}; - -/*! - * jQuery Color Animations v2.1.2 - * https://github.com/jquery/jquery-color - * - * Copyright 2014 jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * Date: Wed Jan 16 08:47:09 2013 -0600 - */ -(function( jQuery, undefined ) { - - var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", - - // plusequals test for += 100 -= 100 - rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, - // a set of RE's that can match strings and generate color tuples. - stringParsers = [ { - re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - parse: function( execResult ) { - return [ - execResult[ 1 ], - execResult[ 2 ], - execResult[ 3 ], - execResult[ 4 ] - ]; - } - }, { - re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - parse: function( execResult ) { - return [ - execResult[ 1 ] * 2.55, - execResult[ 2 ] * 2.55, - execResult[ 3 ] * 2.55, - execResult[ 4 ] - ]; - } - }, { - // this regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, - parse: function( execResult ) { - return [ - parseInt( execResult[ 1 ], 16 ), - parseInt( execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ], 16 ) - ]; - } - }, { - // this regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, - parse: function( execResult ) { - return [ - parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), - parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) - ]; - } - }, { - re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - space: "hsla", - parse: function( execResult ) { - return [ - execResult[ 1 ], - execResult[ 2 ] / 100, - execResult[ 3 ] / 100, - execResult[ 4 ] - ]; - } - } ], - - // jQuery.Color( ) - color = jQuery.Color = function( color, green, blue, alpha ) { - return new jQuery.Color.fn.parse( color, green, blue, alpha ); - }, - spaces = { - rgba: { - props: { - red: { - idx: 0, - type: "byte" - }, - green: { - idx: 1, - type: "byte" - }, - blue: { - idx: 2, - type: "byte" - } - } - }, - - hsla: { - props: { - hue: { - idx: 0, - type: "degrees" - }, - saturation: { - idx: 1, - type: "percent" - }, - lightness: { - idx: 2, - type: "percent" - } - } - } - }, - propTypes = { - "byte": { - floor: true, - max: 255 - }, - "percent": { - max: 1 - }, - "degrees": { - mod: 360, - floor: true - } - }, - support = color.support = {}, - - // element for support tests - supportElem = jQuery( "<p>" )[ 0 ], - - // colors = jQuery.Color.names - colors, - - // local aliases of functions called often - each = jQuery.each; - -// determine rgba support immediately -supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; -support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; - -// define cache name and alpha properties -// for rgba and hsla spaces -each( spaces, function( spaceName, space ) { - space.cache = "_" + spaceName; - space.props.alpha = { - idx: 3, - type: "percent", - def: 1 - }; -}); - -function clamp( value, prop, allowEmpty ) { - var type = propTypes[ prop.type ] || {}; - - if ( value == null ) { - return (allowEmpty || !prop.def) ? null : prop.def; - } - - // ~~ is an short way of doing floor for positive numbers - value = type.floor ? ~~value : parseFloat( value ); - - // IE will pass in empty strings as value for alpha, - // which will hit this case - if ( isNaN( value ) ) { - return prop.def; - } - - if ( type.mod ) { - // we add mod before modding to make sure that negatives values - // get converted properly: -10 -> 350 - return (value + type.mod) % type.mod; - } - - // for now all property types without mod have min and max - return 0 > value ? 0 : type.max < value ? type.max : value; -} - -function stringParse( string ) { - var inst = color(), - rgba = inst._rgba = []; - - string = string.toLowerCase(); - - each( stringParsers, function( i, parser ) { - var parsed, - match = parser.re.exec( string ), - values = match && parser.parse( match ), - spaceName = parser.space || "rgba"; - - if ( values ) { - parsed = inst[ spaceName ]( values ); - - // if this was an rgba parse the assignment might happen twice - // oh well.... - inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; - rgba = inst._rgba = parsed._rgba; - - // exit each( stringParsers ) here because we matched - return false; - } - }); - - // Found a stringParser that handled it - if ( rgba.length ) { - - // if this came from a parsed string, force "transparent" when alpha is 0 - // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) - if ( rgba.join() === "0,0,0,0" ) { - jQuery.extend( rgba, colors.transparent ); - } - return inst; - } - - // named colors - return colors[ string ]; -} - -color.fn = jQuery.extend( color.prototype, { - parse: function( red, green, blue, alpha ) { - if ( red === undefined ) { - this._rgba = [ null, null, null, null ]; - return this; - } - if ( red.jquery || red.nodeType ) { - red = jQuery( red ).css( green ); - green = undefined; - } - - var inst = this, - type = jQuery.type( red ), - rgba = this._rgba = []; - - // more than 1 argument specified - assume ( red, green, blue, alpha ) - if ( green !== undefined ) { - red = [ red, green, blue, alpha ]; - type = "array"; - } - - if ( type === "string" ) { - return this.parse( stringParse( red ) || colors._default ); - } - - if ( type === "array" ) { - each( spaces.rgba.props, function( key, prop ) { - rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); - }); - return this; - } - - if ( type === "object" ) { - if ( red instanceof color ) { - each( spaces, function( spaceName, space ) { - if ( red[ space.cache ] ) { - inst[ space.cache ] = red[ space.cache ].slice(); - } - }); - } else { - each( spaces, function( spaceName, space ) { - var cache = space.cache; - each( space.props, function( key, prop ) { - - // if the cache doesn't exist, and we know how to convert - if ( !inst[ cache ] && space.to ) { - - // if the value was null, we don't need to copy it - // if the key was alpha, we don't need to copy it either - if ( key === "alpha" || red[ key ] == null ) { - return; - } - inst[ cache ] = space.to( inst._rgba ); - } - - // this is the only case where we allow nulls for ALL properties. - // call clamp with alwaysAllowEmpty - inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); - }); - - // everything defined but alpha? - if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { - // use the default of 1 - inst[ cache ][ 3 ] = 1; - if ( space.from ) { - inst._rgba = space.from( inst[ cache ] ); - } - } - }); - } - return this; - } - }, - is: function( compare ) { - var is = color( compare ), - same = true, - inst = this; - - each( spaces, function( _, space ) { - var localCache, - isCache = is[ space.cache ]; - if (isCache) { - localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; - each( space.props, function( _, prop ) { - if ( isCache[ prop.idx ] != null ) { - same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); - return same; - } - }); - } - return same; - }); - return same; - }, - _space: function() { - var used = [], - inst = this; - each( spaces, function( spaceName, space ) { - if ( inst[ space.cache ] ) { - used.push( spaceName ); - } - }); - return used.pop(); - }, - transition: function( other, distance ) { - var end = color( other ), - spaceName = end._space(), - space = spaces[ spaceName ], - startColor = this.alpha() === 0 ? color( "transparent" ) : this, - start = startColor[ space.cache ] || space.to( startColor._rgba ), - result = start.slice(); - - end = end[ space.cache ]; - each( space.props, function( key, prop ) { - var index = prop.idx, - startValue = start[ index ], - endValue = end[ index ], - type = propTypes[ prop.type ] || {}; - - // if null, don't override start value - if ( endValue === null ) { - return; - } - // if null - use end - if ( startValue === null ) { - result[ index ] = endValue; - } else { - if ( type.mod ) { - if ( endValue - startValue > type.mod / 2 ) { - startValue += type.mod; - } else if ( startValue - endValue > type.mod / 2 ) { - startValue -= type.mod; - } - } - result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); - } - }); - return this[ spaceName ]( result ); - }, - blend: function( opaque ) { - // if we are already opaque - return ourself - if ( this._rgba[ 3 ] === 1 ) { - return this; - } - - var rgb = this._rgba.slice(), - a = rgb.pop(), - blend = color( opaque )._rgba; - - return color( jQuery.map( rgb, function( v, i ) { - return ( 1 - a ) * blend[ i ] + a * v; - })); - }, - toRgbaString: function() { - var prefix = "rgba(", - rgba = jQuery.map( this._rgba, function( v, i ) { - return v == null ? ( i > 2 ? 1 : 0 ) : v; - }); - - if ( rgba[ 3 ] === 1 ) { - rgba.pop(); - prefix = "rgb("; - } - - return prefix + rgba.join() + ")"; - }, - toHslaString: function() { - var prefix = "hsla(", - hsla = jQuery.map( this.hsla(), function( v, i ) { - if ( v == null ) { - v = i > 2 ? 1 : 0; - } - - // catch 1 and 2 - if ( i && i < 3 ) { - v = Math.round( v * 100 ) + "%"; - } - return v; - }); - - if ( hsla[ 3 ] === 1 ) { - hsla.pop(); - prefix = "hsl("; - } - return prefix + hsla.join() + ")"; - }, - toHexString: function( includeAlpha ) { - var rgba = this._rgba.slice(), - alpha = rgba.pop(); - - if ( includeAlpha ) { - rgba.push( ~~( alpha * 255 ) ); - } - - return "#" + jQuery.map( rgba, function( v ) { - - // default to 0 when nulls exist - v = ( v || 0 ).toString( 16 ); - return v.length === 1 ? "0" + v : v; - }).join(""); - }, - toString: function() { - return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString(); - } -}); -color.fn.parse.prototype = color.fn; - -// hsla conversions adapted from: -// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 - -function hue2rgb( p, q, h ) { - h = ( h + 1 ) % 1; - if ( h * 6 < 1 ) { - return p + ( q - p ) * h * 6; - } - if ( h * 2 < 1) { - return q; - } - if ( h * 3 < 2 ) { - return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6; - } - return p; -} - -spaces.hsla.to = function( rgba ) { - if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) { - return [ null, null, null, rgba[ 3 ] ]; - } - var r = rgba[ 0 ] / 255, - g = rgba[ 1 ] / 255, - b = rgba[ 2 ] / 255, - a = rgba[ 3 ], - max = Math.max( r, g, b ), - min = Math.min( r, g, b ), - diff = max - min, - add = max + min, - l = add * 0.5, - h, s; - - if ( min === max ) { - h = 0; - } else if ( r === max ) { - h = ( 60 * ( g - b ) / diff ) + 360; - } else if ( g === max ) { - h = ( 60 * ( b - r ) / diff ) + 120; - } else { - h = ( 60 * ( r - g ) / diff ) + 240; - } - - // chroma (diff) == 0 means greyscale which, by definition, saturation = 0% - // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) - if ( diff === 0 ) { - s = 0; - } else if ( l <= 0.5 ) { - s = diff / add; - } else { - s = diff / ( 2 - add ); - } - return [ Math.round(h) % 360, s, l, a == null ? 1 : a ]; -}; - -spaces.hsla.from = function( hsla ) { - if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) { - return [ null, null, null, hsla[ 3 ] ]; - } - var h = hsla[ 0 ] / 360, - s = hsla[ 1 ], - l = hsla[ 2 ], - a = hsla[ 3 ], - q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s, - p = 2 * l - q; - - return [ - Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ), - Math.round( hue2rgb( p, q, h ) * 255 ), - Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ), - a - ]; -}; - -each( spaces, function( spaceName, space ) { - var props = space.props, - cache = space.cache, - to = space.to, - from = space.from; - - // makes rgba() and hsla() - color.fn[ spaceName ] = function( value ) { - - // generate a cache for this space if it doesn't exist - if ( to && !this[ cache ] ) { - this[ cache ] = to( this._rgba ); - } - if ( value === undefined ) { - return this[ cache ].slice(); - } - - var ret, - type = jQuery.type( value ), - arr = ( type === "array" || type === "object" ) ? value : arguments, - local = this[ cache ].slice(); - - each( props, function( key, prop ) { - var val = arr[ type === "object" ? key : prop.idx ]; - if ( val == null ) { - val = local[ prop.idx ]; - } - local[ prop.idx ] = clamp( val, prop ); - }); - - if ( from ) { - ret = color( from( local ) ); - ret[ cache ] = local; - return ret; - } else { - return color( local ); - } - }; - - // makes red() green() blue() alpha() hue() saturation() lightness() - each( props, function( key, prop ) { - // alpha is included in more than one space - if ( color.fn[ key ] ) { - return; - } - color.fn[ key ] = function( value ) { - var vtype = jQuery.type( value ), - fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ), - local = this[ fn ](), - cur = local[ prop.idx ], - match; - - if ( vtype === "undefined" ) { - return cur; - } - - if ( vtype === "function" ) { - value = value.call( this, cur ); - vtype = jQuery.type( value ); - } - if ( value == null && prop.empty ) { - return this; - } - if ( vtype === "string" ) { - match = rplusequals.exec( value ); - if ( match ) { - value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 ); - } - } - local[ prop.idx ] = value; - return this[ fn ]( local ); - }; - }); -}); - -// add cssHook and .fx.step function for each named hook. -// accept a space separated string of properties -color.hook = function( hook ) { - var hooks = hook.split( " " ); - each( hooks, function( i, hook ) { - jQuery.cssHooks[ hook ] = { - set: function( elem, value ) { - var parsed, curElem, - backgroundColor = ""; - - if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) { - value = color( parsed || value ); - if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { - curElem = hook === "backgroundColor" ? elem.parentNode : elem; - while ( - (backgroundColor === "" || backgroundColor === "transparent") && - curElem && curElem.style - ) { - try { - backgroundColor = jQuery.css( curElem, "backgroundColor" ); - curElem = curElem.parentNode; - } catch ( e ) { - } - } - - value = value.blend( backgroundColor && backgroundColor !== "transparent" ? - backgroundColor : - "_default" ); - } - - value = value.toRgbaString(); - } - try { - elem.style[ hook ] = value; - } catch ( e ) { - // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' - } - } - }; - jQuery.fx.step[ hook ] = function( fx ) { - if ( !fx.colorInit ) { - fx.start = color( fx.elem, hook ); - fx.end = color( fx.end ); - fx.colorInit = true; - } - jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); - }; - }); - -}; - -color.hook( stepHooks ); - -jQuery.cssHooks.borderColor = { - expand: function( value ) { - var expanded = {}; - - each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { - expanded[ "border" + part + "Color" ] = value; - }); - return expanded; - } -}; - -// Basic color names only. -// Usage of any of the other color names requires adding yourself or including -// jquery.color.svg-names.js. -colors = jQuery.Color.names = { - // 4.1. Basic color keywords - aqua: "#00ffff", - black: "#000000", - blue: "#0000ff", - fuchsia: "#ff00ff", - gray: "#808080", - green: "#008000", - lime: "#00ff00", - maroon: "#800000", - navy: "#000080", - olive: "#808000", - purple: "#800080", - red: "#ff0000", - silver: "#c0c0c0", - teal: "#008080", - white: "#ffffff", - yellow: "#ffff00", - - // 4.2.3. "transparent" color keyword - transparent: [ null, null, null, 0 ], - - _default: "#ffffff" -}; - -})( jQuery ); - -/******************************************************************************/ -/****************************** CLASS ANIMATIONS ******************************/ -/******************************************************************************/ -(function() { - -var classAnimationActions = [ "add", "remove", "toggle" ], - shorthandStyles = { - border: 1, - borderBottom: 1, - borderColor: 1, - borderLeft: 1, - borderRight: 1, - borderTop: 1, - borderWidth: 1, - margin: 1, - padding: 1 - }; - -$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) { - $.fx.step[ prop ] = function( fx ) { - if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { - jQuery.style( fx.elem, prop, fx.end ); - fx.setAttr = true; - } - }; -}); - -function getElementStyles( elem ) { - var key, len, - style = elem.ownerDocument.defaultView ? - elem.ownerDocument.defaultView.getComputedStyle( elem, null ) : - elem.currentStyle, - styles = {}; - - if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { - len = style.length; - while ( len-- ) { - key = style[ len ]; - if ( typeof style[ key ] === "string" ) { - styles[ $.camelCase( key ) ] = style[ key ]; - } - } - // support: Opera, IE <9 - } else { - for ( key in style ) { - if ( typeof style[ key ] === "string" ) { - styles[ key ] = style[ key ]; - } - } - } - - return styles; -} - -function styleDifference( oldStyle, newStyle ) { - var diff = {}, - name, value; - - for ( name in newStyle ) { - value = newStyle[ name ]; - if ( oldStyle[ name ] !== value ) { - if ( !shorthandStyles[ name ] ) { - if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { - diff[ name ] = value; - } - } - } - } - - return diff; -} - -// support: jQuery <1.8 -if ( !$.fn.addBack ) { - $.fn.addBack = function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - }; -} - -$.effects.animateClass = function( value, duration, easing, callback ) { - var o = $.speed( duration, easing, callback ); - - return this.queue( function() { - var animated = $( this ), - baseClass = animated.attr( "class" ) || "", - applyClassChange, - allAnimations = o.children ? animated.find( "*" ).addBack() : animated; - - // map the animated objects to store the original styles. - allAnimations = allAnimations.map(function() { - var el = $( this ); - return { - el: el, - start: getElementStyles( this ) - }; - }); - - // apply class change - applyClassChange = function() { - $.each( classAnimationActions, function(i, action) { - if ( value[ action ] ) { - animated[ action + "Class" ]( value[ action ] ); - } - }); - }; - applyClassChange(); - - // map all animated objects again - calculate new styles and diff - allAnimations = allAnimations.map(function() { - this.end = getElementStyles( this.el[ 0 ] ); - this.diff = styleDifference( this.start, this.end ); - return this; - }); - - // apply original class - animated.attr( "class", baseClass ); - - // map all animated objects again - this time collecting a promise - allAnimations = allAnimations.map(function() { - var styleInfo = this, - dfd = $.Deferred(), - opts = $.extend({}, o, { - queue: false, - complete: function() { - dfd.resolve( styleInfo ); - } - }); - - this.el.animate( this.diff, opts ); - return dfd.promise(); - }); - - // once all animations have completed: - $.when.apply( $, allAnimations.get() ).done(function() { - - // set the final class - applyClassChange(); - - // for each animated element, - // clear all css properties that were animated - $.each( arguments, function() { - var el = this.el; - $.each( this.diff, function(key) { - el.css( key, "" ); - }); - }); - - // this is guarnteed to be there if you use jQuery.speed() - // it also handles dequeuing the next anim... - o.complete.call( animated[ 0 ] ); - }); - }); -}; - -$.fn.extend({ - addClass: (function( orig ) { - return function( classNames, speed, easing, callback ) { - return speed ? - $.effects.animateClass.call( this, - { add: classNames }, speed, easing, callback ) : - orig.apply( this, arguments ); - }; - })( $.fn.addClass ), - - removeClass: (function( orig ) { - return function( classNames, speed, easing, callback ) { - return arguments.length > 1 ? - $.effects.animateClass.call( this, - { remove: classNames }, speed, easing, callback ) : - orig.apply( this, arguments ); - }; - })( $.fn.removeClass ), - - toggleClass: (function( orig ) { - return function( classNames, force, speed, easing, callback ) { - if ( typeof force === "boolean" || force === undefined ) { - if ( !speed ) { - // without speed parameter - return orig.apply( this, arguments ); - } else { - return $.effects.animateClass.call( this, - (force ? { add: classNames } : { remove: classNames }), - speed, easing, callback ); - } - } else { - // without force parameter - return $.effects.animateClass.call( this, - { toggle: classNames }, force, speed, easing ); - } - }; - })( $.fn.toggleClass ), - - switchClass: function( remove, add, speed, easing, callback) { - return $.effects.animateClass.call( this, { - add: add, - remove: remove - }, speed, easing, callback ); - } -}); - -})(); - -/******************************************************************************/ -/*********************************** EFFECTS **********************************/ -/******************************************************************************/ - -(function() { - -$.extend( $.effects, { - version: "1.11.4", - - // Saves a set of properties in a data storage - save: function( element, set ) { - for ( var i = 0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); - } - } - }, - - // Restores a set of previously saved properties from a data storage - restore: function( element, set ) { - var val, i; - for ( i = 0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - val = element.data( dataSpace + set[ i ] ); - // support: jQuery 1.6.2 - // http://bugs.jquery.com/ticket/9917 - // jQuery 1.6.2 incorrectly returns undefined for any falsy value. - // We can't differentiate between "" and 0 here, so we just assume - // empty string since it's likely to be a more common value... - if ( val === undefined ) { - val = ""; - } - element.css( set[ i ], val ); - } - } - }, - - setMode: function( el, mode ) { - if (mode === "toggle") { - mode = el.is( ":hidden" ) ? "show" : "hide"; - } - return mode; - }, - - // Translates a [top,left] array into a baseline value - // this should be a little more flexible in the future to handle a string & hash - getBaseline: function( origin, original ) { - var y, x; - switch ( origin[ 0 ] ) { - case "top": y = 0; break; - case "middle": y = 0.5; break; - case "bottom": y = 1; break; - default: y = origin[ 0 ] / original.height; - } - switch ( origin[ 1 ] ) { - case "left": x = 0; break; - case "center": x = 0.5; break; - case "right": x = 1; break; - default: x = origin[ 1 ] / original.width; - } - return { - x: x, - y: y - }; - }, - - // Wraps the element around a wrapper that copies position properties - createWrapper: function( element ) { - - // if the element is already wrapped, return it - if ( element.parent().is( ".ui-effects-wrapper" )) { - return element.parent(); - } - - // wrap the element - var props = { - width: element.outerWidth(true), - height: element.outerHeight(true), - "float": element.css( "float" ) - }, - wrapper = $( "<div></div>" ) - .addClass( "ui-effects-wrapper" ) - .css({ - fontSize: "100%", - background: "transparent", - border: "none", - margin: 0, - padding: 0 - }), - // Store the size in case width/height are defined in % - Fixes #5245 - size = { - width: element.width(), - height: element.height() - }, - active = document.activeElement; - - // support: Firefox - // Firefox incorrectly exposes anonymous content - // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 - try { - active.id; - } catch ( e ) { - active = document.body; - } - - element.wrap( wrapper ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - - wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element - - // transfer positioning properties to the wrapper - if ( element.css( "position" ) === "static" ) { - wrapper.css({ position: "relative" }); - element.css({ position: "relative" }); - } else { - $.extend( props, { - position: element.css( "position" ), - zIndex: element.css( "z-index" ) - }); - $.each([ "top", "left", "bottom", "right" ], function(i, pos) { - props[ pos ] = element.css( pos ); - if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { - props[ pos ] = "auto"; - } - }); - element.css({ - position: "relative", - top: 0, - left: 0, - right: "auto", - bottom: "auto" - }); - } - element.css(size); - - return wrapper.css( props ).show(); - }, - - removeWrapper: function( element ) { - var active = document.activeElement; - - if ( element.parent().is( ".ui-effects-wrapper" ) ) { - element.parent().replaceWith( element ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - } - - return element; - }, - - setTransition: function( element, list, factor, value ) { - value = value || {}; - $.each( list, function( i, x ) { - var unit = element.cssUnit( x ); - if ( unit[ 0 ] > 0 ) { - value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; - } - }); - return value; - } -}); - -// return an effect options object for the given parameters: -function _normalizeArguments( effect, options, speed, callback ) { - - // allow passing all options as the first parameter - if ( $.isPlainObject( effect ) ) { - options = effect; - effect = effect.effect; - } - - // convert to an object - effect = { effect: effect }; - - // catch (effect, null, ...) - if ( options == null ) { - options = {}; - } - - // catch (effect, callback) - if ( $.isFunction( options ) ) { - callback = options; - speed = null; - options = {}; - } - - // catch (effect, speed, ?) - if ( typeof options === "number" || $.fx.speeds[ options ] ) { - callback = speed; - speed = options; - options = {}; - } - - // catch (effect, options, callback) - if ( $.isFunction( speed ) ) { - callback = speed; - speed = null; - } - - // add options to effect - if ( options ) { - $.extend( effect, options ); - } - - speed = speed || options.duration; - effect.duration = $.fx.off ? 0 : - typeof speed === "number" ? speed : - speed in $.fx.speeds ? $.fx.speeds[ speed ] : - $.fx.speeds._default; - - effect.complete = callback || options.complete; - - return effect; -} - -function standardAnimationOption( option ) { - // Valid standard speeds (nothing, number, named speed) - if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) { - return true; - } - - // Invalid strings - treat as "normal" speed - if ( typeof option === "string" && !$.effects.effect[ option ] ) { - return true; - } - - // Complete callback - if ( $.isFunction( option ) ) { - return true; - } - - // Options hash (but not naming an effect) - if ( typeof option === "object" && !option.effect ) { - return true; - } - - // Didn't match any standard API - return false; -} - -$.fn.extend({ - effect: function( /* effect, options, speed, callback */ ) { - var args = _normalizeArguments.apply( this, arguments ), - mode = args.mode, - queue = args.queue, - effectMethod = $.effects.effect[ args.effect ]; - - if ( $.fx.off || !effectMethod ) { - // delegate to the original method (e.g., .show()) if possible - if ( mode ) { - return this[ mode ]( args.duration, args.complete ); - } else { - return this.each( function() { - if ( args.complete ) { - args.complete.call( this ); - } - }); - } - } - - function run( next ) { - var elem = $( this ), - complete = args.complete, - mode = args.mode; - - function done() { - if ( $.isFunction( complete ) ) { - complete.call( elem[0] ); - } - if ( $.isFunction( next ) ) { - next(); - } - } - - // If the element already has the correct final state, delegate to - // the core methods so the internal tracking of "olddisplay" works. - if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { - elem[ mode ](); - done(); - } else { - effectMethod.call( elem[0], args, done ); - } - } - - return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); - }, - - show: (function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "show"; - return this.effect.call( this, args ); - } - }; - })( $.fn.show ), - - hide: (function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "hide"; - return this.effect.call( this, args ); - } - }; - })( $.fn.hide ), - - toggle: (function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) || typeof option === "boolean" ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "toggle"; - return this.effect.call( this, args ); - } - }; - })( $.fn.toggle ), - - // helper functions - cssUnit: function(key) { - var style = this.css( key ), - val = []; - - $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { - if ( style.indexOf( unit ) > 0 ) { - val = [ parseFloat( style ), unit ]; - } - }); - return val; - } -}); - -})(); - -/******************************************************************************/ -/*********************************** EASING ***********************************/ -/******************************************************************************/ - -(function() { - -// based on easing equations from Robert Penner (http://www.robertpenner.com/easing) - -var baseEasings = {}; - -$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { - baseEasings[ name ] = function( p ) { - return Math.pow( p, i + 2 ); - }; -}); - -$.extend( baseEasings, { - Sine: function( p ) { - return 1 - Math.cos( p * Math.PI / 2 ); - }, - Circ: function( p ) { - return 1 - Math.sqrt( 1 - p * p ); - }, - Elastic: function( p ) { - return p === 0 || p === 1 ? p : - -Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 ); - }, - Back: function( p ) { - return p * p * ( 3 * p - 2 ); - }, - Bounce: function( p ) { - var pow2, - bounce = 4; - - while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} - return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); - } -}); - -$.each( baseEasings, function( name, easeIn ) { - $.easing[ "easeIn" + name ] = easeIn; - $.easing[ "easeOut" + name ] = function( p ) { - return 1 - easeIn( 1 - p ); - }; - $.easing[ "easeInOut" + name ] = function( p ) { - return p < 0.5 ? - easeIn( p * 2 ) / 2 : - 1 - easeIn( p * -2 + 2 ) / 2; - }; -}); - -})(); - -var effect = $.effects; - - -/*! - * jQuery UI Effects Blind 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/blind-effect/ - */ - - -var effectBlind = $.effects.effect.blind = function( o, done ) { - // Create element - var el = $( this ), - rvertical = /up|down|vertical/, - rpositivemotion = /up|left|vertical|horizontal/, - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - direction = o.direction || "up", - vertical = rvertical.test( direction ), - ref = vertical ? "height" : "width", - ref2 = vertical ? "top" : "left", - motion = rpositivemotion.test( direction ), - animation = {}, - show = mode === "show", - wrapper, distance, margin; - - // if already wrapped, the wrapper's properties are my property. #6245 - if ( el.parent().is( ".ui-effects-wrapper" ) ) { - $.effects.save( el.parent(), props ); - } else { - $.effects.save( el, props ); - } - el.show(); - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - distance = wrapper[ ref ](); - margin = parseFloat( wrapper.css( ref2 ) ) || 0; - - animation[ ref ] = show ? distance : 0; - if ( !motion ) { - el - .css( vertical ? "bottom" : "right", 0 ) - .css( vertical ? "top" : "left", "auto" ) - .css({ position: "absolute" }); - - animation[ ref2 ] = show ? margin : distance + margin; - } - - // start at 0 if we are showing - if ( show ) { - wrapper.css( ref, 0 ); - if ( !motion ) { - wrapper.css( ref2, margin + distance ); - } - } - - // Animate - wrapper.animate( animation, { - duration: o.duration, - easing: o.easing, - queue: false, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - - -/*! - * jQuery UI Effects Bounce 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/bounce-effect/ - */ - - -var effectBounce = $.effects.effect.bounce = function( o, done ) { - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - - // defaults: - mode = $.effects.setMode( el, o.mode || "effect" ), - hide = mode === "hide", - show = mode === "show", - direction = o.direction || "up", - distance = o.distance, - times = o.times || 5, - - // number of internal animations - anims = times * 2 + ( show || hide ? 1 : 0 ), - speed = o.duration / anims, - easing = o.easing, - - // utility: - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ), - i, - upAnim, - downAnim, - - // we will need to re-assemble the queue to stack our animations in place - queue = el.queue(), - queuelen = queue.length; - - // Avoid touching opacity to prevent clearType and PNG issues in IE - if ( show || hide ) { - props.push( "opacity" ); - } - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); // Create Wrapper - - // default distance for the BIGGEST bounce is the outer Distance / 3 - if ( !distance ) { - distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; - } - - if ( show ) { - downAnim = { opacity: 1 }; - downAnim[ ref ] = 0; - - // if we are showing, force opacity 0 and set the initial position - // then do the "first" animation - el.css( "opacity", 0 ) - .css( ref, motion ? -distance * 2 : distance * 2 ) - .animate( downAnim, speed, easing ); - } - - // start at the smallest distance if we are hiding - if ( hide ) { - distance = distance / Math.pow( 2, times - 1 ); - } - - downAnim = {}; - downAnim[ ref ] = 0; - // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here - for ( i = 0; i < times; i++ ) { - upAnim = {}; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - el.animate( upAnim, speed, easing ) - .animate( downAnim, speed, easing ); - - distance = hide ? distance * 2 : distance / 2; - } - - // Last Bounce when Hiding - if ( hide ) { - upAnim = { opacity: 0 }; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - el.animate( upAnim, speed, easing ); - } - - el.queue(function() { - if ( hide ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - - // inject all the animations we just queued to be first in line (after "inprogress") - if ( queuelen > 1) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - el.dequeue(); - -}; - - -/*! - * jQuery UI Effects Clip 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/clip-effect/ - */ - - -var effectClip = $.effects.effect.clip = function( o, done ) { - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - direction = o.direction || "vertical", - vert = direction === "vertical", - size = vert ? "height" : "width", - position = vert ? "top" : "left", - animation = {}, - wrapper, animate, distance; - - // Save & Show - $.effects.save( el, props ); - el.show(); - - // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - animate = ( el[0].tagName === "IMG" ) ? wrapper : el; - distance = animate[ size ](); - - // Shift - if ( show ) { - animate.css( size, 0 ); - animate.css( position, distance / 2 ); - } - - // Create Animation Object: - animation[ size ] = show ? distance : 0; - animation[ position ] = show ? 0 : distance / 2; - - // Animate - animate.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( !show ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - - -/*! - * jQuery UI Effects Drop 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/drop-effect/ - */ - - -var effectDrop = $.effects.effect.drop = function( o, done ) { - - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - direction = o.direction || "left", - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg", - animation = { - opacity: show ? 1 : 0 - }, - distance; - - // Adjust - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - - distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; - - if ( show ) { - el - .css( "opacity", 0 ) - .css( ref, motion === "pos" ? -distance : distance ); - } - - // Animation - animation[ ref ] = ( show ? - ( motion === "pos" ? "+=" : "-=" ) : - ( motion === "pos" ? "-=" : "+=" ) ) + - distance; - - // Animate - el.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - - -/*! - * jQuery UI Effects Explode 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/explode-effect/ - */ - - -var effectExplode = $.effects.effect.explode = function( o, done ) { - - var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3, - cells = rows, - el = $( this ), - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - - // show and then visibility:hidden the element before calculating offset - offset = el.show().css( "visibility", "hidden" ).offset(), - - // width and height of a piece - width = Math.ceil( el.outerWidth() / cells ), - height = Math.ceil( el.outerHeight() / rows ), - pieces = [], - - // loop - i, j, left, top, mx, my; - - // children animate complete: - function childComplete() { - pieces.push( this ); - if ( pieces.length === rows * cells ) { - animComplete(); - } - } - - // clone the element for each row and cell. - for ( i = 0; i < rows ; i++ ) { // ===> - top = offset.top + i * height; - my = i - ( rows - 1 ) / 2 ; - - for ( j = 0; j < cells ; j++ ) { // ||| - left = offset.left + j * width; - mx = j - ( cells - 1 ) / 2 ; - - // Create a clone of the now hidden main element that will be absolute positioned - // within a wrapper div off the -left and -top equal to size of our pieces - el - .clone() - .appendTo( "body" ) - .wrap( "<div></div>" ) - .css({ - position: "absolute", - visibility: "visible", - left: -j * width, - top: -i * height - }) - - // select the wrapper - make it overflow: hidden and absolute positioned based on - // where the original was located +left and +top equal to the size of pieces - .parent() - .addClass( "ui-effects-explode" ) - .css({ - position: "absolute", - overflow: "hidden", - width: width, - height: height, - left: left + ( show ? mx * width : 0 ), - top: top + ( show ? my * height : 0 ), - opacity: show ? 0 : 1 - }).animate({ - left: left + ( show ? 0 : mx * width ), - top: top + ( show ? 0 : my * height ), - opacity: show ? 1 : 0 - }, o.duration || 500, o.easing, childComplete ); - } - } - - function animComplete() { - el.css({ - visibility: "visible" - }); - $( pieces ).remove(); - if ( !show ) { - el.hide(); - } - done(); - } -}; - - -/*! - * jQuery UI Effects Fade 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/fade-effect/ - */ - - -var effectFade = $.effects.effect.fade = function( o, done ) { - var el = $( this ), - mode = $.effects.setMode( el, o.mode || "toggle" ); - - el.animate({ - opacity: mode - }, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: done - }); -}; - - -/*! - * jQuery UI Effects Fold 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/fold-effect/ - */ - - -var effectFold = $.effects.effect.fold = function( o, done ) { - - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - hide = mode === "hide", - size = o.size || 15, - percent = /([0-9]+)%/.exec( size ), - horizFirst = !!o.horizFirst, - widthFirst = show !== horizFirst, - ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ], - duration = o.duration / 2, - wrapper, distance, - animation1 = {}, - animation2 = {}; - - $.effects.save( el, props ); - el.show(); - - // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - distance = widthFirst ? - [ wrapper.width(), wrapper.height() ] : - [ wrapper.height(), wrapper.width() ]; - - if ( percent ) { - size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; - } - if ( show ) { - wrapper.css( horizFirst ? { - height: 0, - width: size - } : { - height: size, - width: 0 - }); - } - - // Animation - animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size; - animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0; - - // Animate - wrapper - .animate( animation1, duration, o.easing ) - .animate( animation2, duration, o.easing, function() { - if ( hide ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - -}; - - -/*! - * jQuery UI Effects Highlight 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/highlight-effect/ - */ - - -var effectHighlight = $.effects.effect.highlight = function( o, done ) { - var elem = $( this ), - props = [ "backgroundImage", "backgroundColor", "opacity" ], - mode = $.effects.setMode( elem, o.mode || "show" ), - animation = { - backgroundColor: elem.css( "backgroundColor" ) - }; - - if (mode === "hide") { - animation.opacity = 0; - } - - $.effects.save( elem, props ); - - elem - .show() - .css({ - backgroundImage: "none", - backgroundColor: o.color || "#ffff99" - }) - .animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - elem.hide(); - } - $.effects.restore( elem, props ); - done(); - } - }); -}; - - -/*! - * jQuery UI Effects Size 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/size-effect/ - */ - - -var effectSize = $.effects.effect.size = function( o, done ) { - - // Create element - var original, baseline, factor, - el = $( this ), - props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ], - - // Always restore - props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ], - - // Copy for children - props2 = [ "width", "height", "overflow" ], - cProps = [ "fontSize" ], - vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], - hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], - - // Set options - mode = $.effects.setMode( el, o.mode || "effect" ), - restore = o.restore || mode !== "effect", - scale = o.scale || "both", - origin = o.origin || [ "middle", "center" ], - position = el.css( "position" ), - props = restore ? props0 : props1, - zero = { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - }; - - if ( mode === "show" ) { - el.show(); - } - original = { - height: el.height(), - width: el.width(), - outerHeight: el.outerHeight(), - outerWidth: el.outerWidth() - }; - - if ( o.mode === "toggle" && mode === "show" ) { - el.from = o.to || zero; - el.to = o.from || original; - } else { - el.from = o.from || ( mode === "show" ? zero : original ); - el.to = o.to || ( mode === "hide" ? zero : original ); - } - - // Set scaling factor - factor = { - from: { - y: el.from.height / original.height, - x: el.from.width / original.width - }, - to: { - y: el.to.height / original.height, - x: el.to.width / original.width - } - }; - - // Scale the css box - if ( scale === "box" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - props = props.concat( vProps ); - el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from ); - el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - props = props.concat( hProps ); - el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from ); - el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to ); - } - } - - // Scale the content - if ( scale === "content" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - props = props.concat( cProps ).concat( props2 ); - el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from ); - el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to ); - } - } - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - el.css( "overflow", "hidden" ).css( el.from ); - - // Adjust - if (origin) { // Calculate baseline shifts - baseline = $.effects.getBaseline( origin, original ); - el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y; - el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x; - el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y; - el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x; - } - el.css( el.from ); // set top & left - - // Animate - if ( scale === "content" || scale === "both" ) { // Scale the children - - // Add margins/font-size - vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps); - hProps = hProps.concat([ "marginLeft", "marginRight" ]); - props2 = props0.concat(vProps).concat(hProps); - - el.find( "*[width]" ).each( function() { - var child = $( this ), - c_original = { - height: child.height(), - width: child.width(), - outerHeight: child.outerHeight(), - outerWidth: child.outerWidth() - }; - if (restore) { - $.effects.save(child, props2); - } - - child.from = { - height: c_original.height * factor.from.y, - width: c_original.width * factor.from.x, - outerHeight: c_original.outerHeight * factor.from.y, - outerWidth: c_original.outerWidth * factor.from.x - }; - child.to = { - height: c_original.height * factor.to.y, - width: c_original.width * factor.to.x, - outerHeight: c_original.height * factor.to.y, - outerWidth: c_original.width * factor.to.x - }; - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from ); - child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from ); - child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to ); - } - - // Animate children - child.css( child.from ); - child.animate( child.to, o.duration, o.easing, function() { - - // Restore children - if ( restore ) { - $.effects.restore( child, props2 ); - } - }); - }); - } - - // Animate - el.animate( el.to, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( el.to.opacity === 0 ) { - el.css( "opacity", el.from.opacity ); - } - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - if ( !restore ) { - - // we need to calculate our new positioning based on the scaling - if ( position === "static" ) { - el.css({ - position: "relative", - top: el.to.top, - left: el.to.left - }); - } else { - $.each([ "top", "left" ], function( idx, pos ) { - el.css( pos, function( _, str ) { - var val = parseInt( str, 10 ), - toRef = idx ? el.to.left : el.to.top; - - // if original was "auto", recalculate the new value from wrapper - if ( str === "auto" ) { - return toRef + "px"; - } - - return val + toRef + "px"; - }); - }); - } - } - - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - - -/*! - * jQuery UI Effects Scale 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/scale-effect/ - */ - - -var effectScale = $.effects.effect.scale = function( o, done ) { - - // Create element - var el = $( this ), - options = $.extend( true, {}, o ), - mode = $.effects.setMode( el, o.mode || "effect" ), - percent = parseInt( o.percent, 10 ) || - ( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ), - direction = o.direction || "both", - origin = o.origin, - original = { - height: el.height(), - width: el.width(), - outerHeight: el.outerHeight(), - outerWidth: el.outerWidth() - }, - factor = { - y: direction !== "horizontal" ? (percent / 100) : 1, - x: direction !== "vertical" ? (percent / 100) : 1 - }; - - // We are going to pass this effect to the size effect: - options.effect = "size"; - options.queue = false; - options.complete = done; - - // Set default origin and restore for show/hide - if ( mode !== "effect" ) { - options.origin = origin || [ "middle", "center" ]; - options.restore = true; - } - - options.from = o.from || ( mode === "show" ? { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - } : original ); - options.to = { - height: original.height * factor.y, - width: original.width * factor.x, - outerHeight: original.outerHeight * factor.y, - outerWidth: original.outerWidth * factor.x - }; - - // Fade option to support puff - if ( options.fade ) { - if ( mode === "show" ) { - options.from.opacity = 0; - options.to.opacity = 1; - } - if ( mode === "hide" ) { - options.from.opacity = 1; - options.to.opacity = 0; - } - } - - // Animate - el.effect( options ); - -}; - - -/*! - * jQuery UI Effects Puff 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/puff-effect/ - */ - - -var effectPuff = $.effects.effect.puff = function( o, done ) { - var elem = $( this ), - mode = $.effects.setMode( elem, o.mode || "hide" ), - hide = mode === "hide", - percent = parseInt( o.percent, 10 ) || 150, - factor = percent / 100, - original = { - height: elem.height(), - width: elem.width(), - outerHeight: elem.outerHeight(), - outerWidth: elem.outerWidth() - }; - - $.extend( o, { - effect: "scale", - queue: false, - fade: true, - mode: mode, - complete: done, - percent: hide ? percent : 100, - from: hide ? - original : - { - height: original.height * factor, - width: original.width * factor, - outerHeight: original.outerHeight * factor, - outerWidth: original.outerWidth * factor - } - }); - - elem.effect( o ); -}; - - -/*! - * jQuery UI Effects Pulsate 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/pulsate-effect/ - */ - - -var effectPulsate = $.effects.effect.pulsate = function( o, done ) { - var elem = $( this ), - mode = $.effects.setMode( elem, o.mode || "show" ), - show = mode === "show", - hide = mode === "hide", - showhide = ( show || mode === "hide" ), - - // showing or hiding leaves of the "last" animation - anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), - duration = o.duration / anims, - animateTo = 0, - queue = elem.queue(), - queuelen = queue.length, - i; - - if ( show || !elem.is(":visible")) { - elem.css( "opacity", 0 ).show(); - animateTo = 1; - } - - // anims - 1 opacity "toggles" - for ( i = 1; i < anims; i++ ) { - elem.animate({ - opacity: animateTo - }, duration, o.easing ); - animateTo = 1 - animateTo; - } - - elem.animate({ - opacity: animateTo - }, duration, o.easing); - - elem.queue(function() { - if ( hide ) { - elem.hide(); - } - done(); - }); - - // We just queued up "anims" animations, we need to put them next in the queue - if ( queuelen > 1 ) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - elem.dequeue(); -}; - - -/*! - * jQuery UI Effects Shake 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/shake-effect/ - */ - - -var effectShake = $.effects.effect.shake = function( o, done ) { - - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "effect" ), - direction = o.direction || "left", - distance = o.distance || 20, - times = o.times || 3, - anims = times * 2 + 1, - speed = Math.round( o.duration / anims ), - ref = (direction === "up" || direction === "down") ? "top" : "left", - positiveMotion = (direction === "up" || direction === "left"), - animation = {}, - animation1 = {}, - animation2 = {}, - i, - - // we will need to re-assemble the queue to stack our animations in place - queue = el.queue(), - queuelen = queue.length; - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - - // Animation - animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; - animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; - animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; - - // Animate - el.animate( animation, speed, o.easing ); - - // Shakes - for ( i = 1; i < times; i++ ) { - el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing ); - } - el - .animate( animation1, speed, o.easing ) - .animate( animation, speed / 2, o.easing ) - .queue(function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - - // inject all the animations we just queued to be first in line (after "inprogress") - if ( queuelen > 1) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - el.dequeue(); - -}; - - -/*! - * jQuery UI Effects Slide 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/slide-effect/ - */ - - -var effectSlide = $.effects.effect.slide = function( o, done ) { - - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "width", "height" ], - mode = $.effects.setMode( el, o.mode || "show" ), - show = mode === "show", - direction = o.direction || "left", - ref = (direction === "up" || direction === "down") ? "top" : "left", - positiveMotion = (direction === "up" || direction === "left"), - distance, - animation = {}; - - // Adjust - $.effects.save( el, props ); - el.show(); - distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ); - - $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - if ( show ) { - el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance ); - } - - // Animation - animation[ ref ] = ( show ? - ( positiveMotion ? "+=" : "-=") : - ( positiveMotion ? "-=" : "+=")) + - distance; - - // Animate - el.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - - -/*! - * jQuery UI Effects Transfer 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/transfer-effect/ - */ - - -var effectTransfer = $.effects.effect.transfer = function( o, done ) { - var elem = $( this ), - target = $( o.to ), - targetFixed = target.css( "position" ) === "fixed", - body = $("body"), - fixTop = targetFixed ? body.scrollTop() : 0, - fixLeft = targetFixed ? body.scrollLeft() : 0, - endPosition = target.offset(), - animation = { - top: endPosition.top - fixTop, - left: endPosition.left - fixLeft, - height: target.innerHeight(), - width: target.innerWidth() - }, - startPosition = elem.offset(), - transfer = $( "<div class='ui-effects-transfer'></div>" ) - .appendTo( document.body ) - .addClass( o.className ) - .css({ - top: startPosition.top - fixTop, - left: startPosition.left - fixLeft, - height: elem.innerHeight(), - width: elem.innerWidth(), - position: targetFixed ? "fixed" : "absolute" - }) - .animate( animation, o.duration, o.easing, function() { - transfer.remove(); - done(); - }); -}; - - - -})); \ No newline at end of file diff --git a/website/agenda/planung/js/jquery.js b/website/agenda/planung/js/jquery.js deleted file mode 100644 index 0f60b7b..0000000 --- a/website/agenda/planung/js/jquery.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; - -return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ca()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ca()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?aa:ba):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=aa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=ba;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=ba),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function da(a){var b=ea.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var ea="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fa=/ jQuery\d+="(?:null|\d+)"/g,ga=new RegExp("<(?:"+ea+")[\\s/>]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/<tbody/i,la=/<|&#?\w+;/,ma=/<(?:script|style|link)/i,na=/checked\s*(?:[^=]|=\s*.checked.)/i,oa=/^$|\/(?:java|ecma)script/i,pa=/^true\/(.*)/,qa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ra={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?"<table>"!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ca[0].contentWindow||Ca[0].contentDocument).document,b.write(),b.close(),c=Ea(a,b),Ca.detach()),Da[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Ga=/^margin/,Ha=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ia,Ja,Ka=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ia=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Ha.test(g)&&Ga.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ia=function(a){return a.currentStyle},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ha.test(g)&&!Ka.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function La(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Ma=/alpha\([^)]*\)/i,Na=/opacity\s*=\s*([^)]*)/,Oa=/^(none|table(?!-c[ea]).+)/,Pa=new RegExp("^("+S+")(.*)$","i"),Qa=new RegExp("^([+-])=("+S+")","i"),Ra={position:"absolute",visibility:"hidden",display:"block"},Sa={letterSpacing:"0",fontWeight:"400"},Ta=["Webkit","O","Moz","ms"];function Ua(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ta.length;while(e--)if(b=Ta[e]+c,b in a)return b;return d}function Va(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fa(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wa(a,b,c){var d=Pa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xa(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Ya(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ia(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Ja(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ha.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xa(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ja(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ua(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qa.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ua(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Ja(a,b,d)),"normal"===f&&b in Sa&&(f=Sa[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Oa.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Ra,function(){return Ya(a,b,d)}):Ya(a,b,d):void 0},set:function(a,c,d){var e=d&&Ia(a);return Wa(a,c,d?Xa(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Na.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Ma,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Ma.test(f)?f.replace(Ma,e):f+" "+e)}}),m.cssHooks.marginRight=La(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Ja,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Ga.test(a)||(m.cssHooks[a+b].set=Wa)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ia(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Va(this,!0)},hide:function(){return Va(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Za(a,b,c,d,e){ -return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Za.propHooks[this.prop];return a&&a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cb=/queueHooks$/,db=[ib],eb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fa(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fa(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fa(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g>f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],eb[c]=eb[c]||[],eb[c].unshift(b)},prefilter:function(a,b){b?db.unshift(a):db.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kb(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),m.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($a=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$a=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_a||(_a=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_a),_a=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lb=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lb,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mb,nb,ob=m.expr.attrHandle,pb=/^(?:checked|selected)$/i,qb=k.getSetAttribute,rb=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nb:mb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rb&&qb||!pb.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qb?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nb={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rb&&qb||!pb.test(c)?a.setAttribute(!qb&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||m.find.attr;ob[b]=rb&&qb||!pb.test(b)?function(a,b,d){var e,f;return d||(f=ob[b],ob[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ob[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rb&&qb||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mb&&mb.set(a,b,c)}}),qb||(mb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},ob.id=ob.name=ob.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mb.set},m.attrHooks.contenteditable={set:function(a,b,c){mb.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sb=/^(?:input|select|textarea|button|object)$/i,tb=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sb.test(a.nodeName)||tb.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var ub=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ub," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vb=m.now(),wb=/\?/,xb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yb,zb,Ab=/#.*$/,Bb=/([?&])_=[^&]*/,Cb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Db=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Eb=/^(?:GET|HEAD)$/,Fb=/^\/\//,Gb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hb={},Ib={},Jb="*/".concat("*");try{zb=location.href}catch(Kb){zb=y.createElement("a"),zb.href="",zb=zb.href}yb=Gb.exec(zb.toLowerCase())||[];function Lb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mb(a,b,c,d){var e={},f=a===Ib;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nb(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Ob(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zb,type:"GET",isLocal:Db.test(yb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nb(Nb(a,m.ajaxSettings),b):Nb(m.ajaxSettings,a)},ajaxPrefilter:Lb(Hb),ajaxTransport:Lb(Ib),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cb.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zb)+"").replace(Ab,"").replace(Fb,yb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gb.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yb[1]&&c[2]===yb[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yb[3]||("http:"===yb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mb(Hb,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Eb.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wb.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bb.test(e)?e.replace(Bb,"$1_="+vb++):e+(wb.test(e)?"&":"?")+"_="+vb++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jb+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mb(Ib,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Ob(k,v,c)),u=Pb(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qb=/%20/g,Rb=/\[\]$/,Sb=/\r?\n/g,Tb=/^(?:submit|button|image|reset|file)$/i,Ub=/^(?:input|select|textarea|keygen)/i;function Vb(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rb.test(a)?d(a,e):Vb(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vb(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vb(c,a[c],b,e);return d.join("&").replace(Qb,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Ub.test(this.nodeName)&&!Tb.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sb,"\r\n")}}):{name:b.name,value:c.replace(Sb,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zb()||$b()}:Zb;var Wb=0,Xb={},Yb=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xb)Xb[a](void 0,!0)}),k.cors=!!Yb&&"withCredentials"in Yb,Yb=k.ajax=!!Yb,Yb&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xb[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xb[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zb(){try{return new a.XMLHttpRequest}catch(b){}}function $b(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _b=[],ac=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_b.pop()||m.expando+"_"+vb++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ac.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ac.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ac,"$1"+e):b.jsonp!==!1&&(b.url+=(wb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m}); diff --git a/website/agenda/planung/js/jquery.min.js b/website/agenda/planung/js/jquery.min.js index 35a1dfb..769a1d9 100644 --- a/website/agenda/planung/js/jquery.min.js +++ b/website/agenda/planung/js/jquery.min.js @@ -1,3 +1,2 @@ -/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w}); - +/*! jQuery v3.4.0 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.0",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=k.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&A.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!A.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(N(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.attachShadow&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ae(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ne(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ne(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n=void 0,r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(Q.set(this,i,k.event.trigger(k.extend(r.shift(),k.Event.prototype),r,this)),e.stopImmediatePropagation())}})):k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&N(t,"input")&&void 0===Q.get(t,"click")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&N(t,"input")&&void 0===Q.get(t,"click")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&N(t,"input")&&Q.get(t,"click")||N(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ae),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ne(this,e,t,n,r)},one:function(e,t,n,r){return Ne(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var At=/\[\]$/,Nt=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||At.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(Nt,"\r\n")}}):{name:t.name,value:n.replace(Nt,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=N,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); diff --git a/website/agenda/planung/js/jquery.rte.js b/website/agenda/planung/js/jquery.rte.js deleted file mode 100644 index 4960551..0000000 --- a/website/agenda/planung/js/jquery.rte.js +++ /dev/null @@ -1,211 +0,0 @@ -/* - * jQuery RTE plugin 0.3 - create a rich text form for Mozilla, Opera, and Internet Explorer - * - * Copyright (c) 2007 Batiste Bieler - * Distributed under the GPL (GPL-LICENSE.txt) licenses. - */ - -// define the rte light plugin -jQuery.fn.rte = function(css_url, media_url) { - - if(document.designMode || document.contentEditable) - { - $(this).each( function(){ - var textarea = $(this); - enableDesignMode(textarea); - }); - } - - function formatText(iframe, command, option) { - iframe.contentWindow.focus(); - $('#editor_menu:visible').hide(); - try{ - iframe.contentWindow.document.execCommand(command, false, option); - }catch(e){console.log(e)} - iframe.contentWindow.focus(); - } - - function tryEnableDesignMode(iframe, doc, callback) { - try { - iframe.contentWindow.document.open(); - iframe.contentWindow.document.write(doc); - iframe.contentWindow.document.close(); - } catch(error) { - console.log(error) - } - if (document.contentEditable) { - iframe.contentWindow.document.designMode = "On"; - callback(); - return true; - } - else if (document.designMode != null) { - try { - iframe.contentWindow.document.designMode = "on"; - callback(); - return true; - } catch (error) { - console.log(error) - } - } - setTimeout(function(){tryEnableDesignMode(iframe, doc, callback)}, 250); - return false; - } - - function enableDesignMode(textarea) { - // need to be created this way - var iframe = document.createElement("iframe"); - iframe.frameBorder=0; - iframe.frameMargin=0; - iframe.framePadding=0; - iframe.height=200; - if(textarea.attr('class')) - iframe.className = textarea.attr('class'); - if(textarea.attr('id')) - iframe.id = textarea.attr('id'); - if(textarea.attr('name')) - iframe.title = textarea.attr('name'); - textarea.after(iframe); - var css = ""; - if(css_url) - var css = "<link type='text/css' rel='stylesheet' href='"+css_url+"' />" - var content = textarea.val(); - // Mozilla need this to display caret - if($.trim(content)=='') - content = '<br>'; - var doc = "<html><head>"+css+"</head><body class='frameBody'>"+content+"</body></html>"; - tryEnableDesignMode(iframe, doc, function() { - $("#toolbar-"+iframe.title).remove(); - $(iframe).before(toolbar(iframe)); - textarea.remove(); - }); - } - - function disableDesignMode(iframe, submit) { - var content = iframe.contentWindow.document.getElementsByTagName("body")[0].innerHTML; - if(submit==true) - var textarea = $('<input type="hidden" />'); - else - var textarea = $('<textarea cols="40" rows="10"></textarea>'); - textarea.val(content); - t = textarea.get(0); - if(iframe.className) - t.className = iframe.className; - if(iframe.id) - t.id = iframe.id; - if(iframe.title) - t.name = iframe.title; - $(iframe).before(textarea); - if(submit!=true) - $(iframe).remove(); - return textarea; - } - -/** - <a href='#' class='link'><img src='"+media_url+"link.png' alt='link' /></a>\ - <a href='#' class='image'><img src='"+media_url+"image.png' alt='image' /></a>\ - <a href='#' class='disable'><img src='"+media_url+"close.gif' alt='close rte' /></a>\ - -*/ - function toolbar(iframe) { - - var tb = $("<div class='rte-toolbar' id='toolbar-"+iframe.title+"'><div>\ - <select>\ - <option value=''>Bloc style</option>\ - <option value='p'>Paragraph</option>\ - <option value='h3'>Title</option>\ - </select>\ - <a href='#' class='bold'><img src='"+media_url+"bold.gif' alt='bold' /></a>\ - <a href='#' class='italic'><img src='"+media_url+"italic.gif' alt='italic' /></a>\ - <a href='#' class='unorderedlist'><img src='"+media_url+"unordered.gif' alt='unordered list' /></a>\ - </div></div>"); - $('select', tb).change(function(){ - var index = this.selectedIndex; - if( index!=0 ) { - var selected = this.options[index].value; - formatText(iframe, "formatblock", '<'+selected+'>'); - } - }); - $('.bold', tb).click(function(){ formatText(iframe, 'bold');return false; }); - $('.italic', tb).click(function(){ formatText(iframe, 'italic');return false; }); - $('.unorderedlist', tb).click(function(){ formatText(iframe, 'insertunorderedlist');return false; }); - $('.link', tb).click(function(){ - var p=prompt("URL:"); - if(p) - formatText(iframe, 'CreateLink', p); - return false; }); - $('.image', tb).click(function(){ - var p=prompt("image URL:"); - if(p) - formatText(iframe, 'InsertImage', p); - return false; }); - $('.disable', tb).click(function() { - var txt = disableDesignMode(iframe); - var edm = $('<a href="#">Enable design mode</a>'); - tb.empty().append(edm); - edm.click(function(){ - enableDesignMode(txt); - return false; - }); - return false; - }); - $(iframe).parents('form').submit(function(){ - disableDesignMode(iframe, true); }); - var iframeDoc = $(iframe.contentWindow.document); - - var select = $('select', tb)[0]; - iframeDoc.mouseup(function(){ - setSelectedType(getSelectionElement(iframe), select); - return true; - }); - iframeDoc.keyup(function(){ - setSelectedType(getSelectionElement(iframe), select); - var body = $('body', iframeDoc); - if(body.scrollTop()>0) - iframe.height = Math.min(350, parseInt(iframe.height)+body.scrollTop()); - return true; - }); - - return tb; - } - - function setSelectedType(node, select) { - while(node.parentNode) { - var nName = node.nodeName.toLowerCase(); - for(var i=0;i<select.options.length;i++) { - if(nName==select.options[i].value){ - select.selectedIndex=i; - return true; - } - } - node = node.parentNode; - } - select.selectedIndex=0; - return true; - } - - function getSelectionElement(iframe) { - if (iframe.contentWindow.document.selection) { - // IE selections - selection = iframe.contentWindow.document.selection; - range = selection.createRange(); - try { - node = range.parentElement(); - } - catch (e) { - return false; - } - } else { - // Mozilla selections - try { - selection = iframe.contentWindow.getSelection(); - range = selection.getRangeAt(0); - } - catch(e){ - return false; - } - node = range.commonAncestorContainer; - } - return node; - } -} - diff --git a/website/agenda/planung/localization.cgi b/website/agenda/planung/localization.cgi index f4b078f..dcb9b1d 100755 --- a/website/agenda/planung/localization.cgi +++ b/website/agenda/planung/localization.cgi @@ -1,4 +1,4 @@ -#! /usr/bin/perl -w +#! /usr/bin/perl use strict; use warnings; diff --git a/website/agenda/planung/notify_events.cgi b/website/agenda/planung/notify_events.cgi index 31d1080..4b0f138 100755 --- a/website/agenda/planung/notify_events.cgi +++ b/website/agenda/planung/notify_events.cgi @@ -1,10 +1,10 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; -use URI::Escape(); +use warnings; +no warnings 'redefine'; -#use Encode(); +use URI::Escape(); use Data::Dumper; use MIME::Lite(); @@ -216,7 +216,8 @@ sub getMail { $mail->{Data} .= "nur zur Erinnerung...\n\n"; $mail->{Data} .= "am $event->{weekday_name} ist die naechste '$event->{series_name}'-Sendung.\n\n"; - $mail->{Data} .= "$event->{source_base_url}$event->{cache_base_url}/$config->{controllers}->{event}/$event->{event_id}.html\n\n"; + $mail->{Data} .= + "$event->{source_base_url}$event->{cache_base_url}/$config->{controllers}->{event}/$event->{event_id}.html\n\n"; $mail->{Data} .= "Gruss, $request->{user}\n"; return $mail; } diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index 42850c9..e7bab0a 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -1,14 +1,13 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; -use Data::Dumper; +use warnings; +no warnings 'redefine'; +use Data::Dumper; use URI::Escape(); -#use Encode(); use localization(); - use params(); use config(); use log(); diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index b6e259e..2611840 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use config(); @@ -230,7 +232,8 @@ sub show_projects { for my $project (@$projects) { # get assigned studios - my $project_studio_assignements = project::get_studio_assignments( $config, { project_id => $project->{project_id} } ); + my $project_studio_assignements = + project::get_studio_assignments( $config, { project_id => $project->{project_id} } ); $project->{pid} = $project->{project_id}; # get assigned studios by id @@ -255,8 +258,8 @@ sub show_projects { $project->{assigned_studios} = $assigned_studios; $project->{unassigned_studios} = $unassigned_studios; - if ( (defined $params->{setImage}) && ($project->{pid} eq $params->{pid}) ){ - $project->{image} = $params->{setImage}; + if ( ( defined $params->{setImage} ) && ( $project->{pid} eq $params->{pid} ) ) { + $project->{image} = $params->{setImage}; } } diff --git a/website/agenda/planung/requestPassword.cgi b/website/agenda/planung/requestPassword.cgi index 6432515..717a207 100755 --- a/website/agenda/planung/requestPassword.cgi +++ b/website/agenda/planung/requestPassword.cgi @@ -1,7 +1,8 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 0fe8d45..431c65e 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use config(); @@ -123,7 +125,12 @@ sub save_roles { for my $id ( keys %$values ) { if ( update_allowed( $permissions, $role_by_id, $id ) ) { for my $column ( keys %$columns ) { - next if ( $column eq 'level' || $column eq 'role' || $column eq 'id' || $column eq 'project_id' || $column eq 'studio_id' ); + next + if ( $column eq 'level' + || $column eq 'role' + || $column eq 'id' + || $column eq 'project_id' + || $column eq 'studio_id' ); $values->{$id}->{$column} = 0; } } diff --git a/website/agenda/planung/selectEvent.cgi b/website/agenda/planung/selectEvent.cgi index 45bd09a..a022987 100755 --- a/website/agenda/planung/selectEvent.cgi +++ b/website/agenda/planung/selectEvent.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use params(); diff --git a/website/agenda/planung/selectSeries.cgi b/website/agenda/planung/selectSeries.cgi index 332b938..ca468b0 100755 --- a/website/agenda/planung/selectSeries.cgi +++ b/website/agenda/planung/selectSeries.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use params(); @@ -24,23 +26,23 @@ my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - user => $user - } + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + user => $user + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params = uac::setDefaultStudio( $params, $user_presets ); $params = uac::setDefaultProject( $params, $user_presets ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($config, $params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -55,100 +57,100 @@ return unless uac::check( $config, $params, $user_presets ) == 1; my $permissions = $request->{permissions}; unless ( $permissions->{read_series} == 1 ) { - uac::permissions_denied('read_series'); - return; + uac::permissions_denied('read_series'); + return; } show_series( $config, $request ); sub show_series { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{read_series} == 1 ) { - uac::permissions_denied('read_series'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_series} == 1 ) { + uac::permissions_denied('read_series'); + return; + } - # get user projects - my $user_projects = uac::get_projects_by_user( $config, { user => $request->{user} } ); - my $projects = {}; - for my $project (@$user_projects) { - $projects->{ $project->{project_id} } = $project; - } + # get user projects + my $user_projects = uac::get_projects_by_user( $config, { user => $request->{user} } ); + my $projects = {}; + for my $project (@$user_projects) { + $projects->{ $project->{project_id} } = $project; + } - # get user studios - my $user_studios = uac::get_studios_by_user( $config, { user => $request->{user} } ); - for my $studio (@$user_studios) { - my $project_id = $studio->{project_id}; - my $studio_id = $studio->{id}; - $studio->{project_name} = $projects->{$project_id}->{name}; - $studio->{selected} = 1 if ( $project_id eq $params->{p_id} ) && ( $studio_id eq $params->{s_id} ); - } + # get user studios + my $user_studios = uac::get_studios_by_user( $config, { user => $request->{user} } ); + for my $studio (@$user_studios) { + my $project_id = $studio->{project_id}; + my $studio_id = $studio->{id}; + $studio->{project_name} = $projects->{$project_id}->{name}; + $studio->{selected} = 1 if ( $project_id eq $params->{p_id} ) && ( $studio_id eq $params->{s_id} ); + } - # get series - my $options = {}; - $options->{project_id} = $params->{p_id} if defined $params->{p_id}; - $options->{studio_id} = $params->{s_id} if defined $params->{s_id}; - my $series = series::get( $config, $options ); + # get series + my $options = {}; + $options->{project_id} = $params->{p_id} if defined $params->{p_id}; + $options->{studio_id} = $params->{s_id} if defined $params->{s_id}; + my $series = series::get( $config, $options ); - for my $serie (@$series) { - $serie->{selected} = 1 if ( defined $params->{series_id} ) && ( $serie->{series_id} eq $params->{series_id} ); - $serie->{series_name} = 'Einzelsendung' if $serie->{series_name} eq '_single_'; - } + for my $serie (@$series) { + $serie->{selected} = 1 if ( defined $params->{series_id} ) && ( $serie->{series_id} eq $params->{series_id} ); + $serie->{series_name} = 'Einzelsendung' if $serie->{series_name} eq '_single_'; + } - $params->{studios} = $user_studios; - $params->{series} = $series; + $params->{studios} = $user_studios; + $params->{series} = $series; - template::process( $config, 'print', $params->{template}, $params ); - return; + template::process( $config, 'print', $params->{template}, $params ); + return; } sub check_params { my $config = shift; - my $params = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + my $debug = $params->{debug} || ''; + if ( $debug =~ /([a-z\_\,]+)/ ) { + $debug = $1; + } + $checked->{debug} = $debug; - #numeric values - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'p_id', 's_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + #numeric values + for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'p_id', 's_id' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { + $checked->{$param} = $params->{$param}; + } + } - for my $param ('resultElemId') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[a-zA-ZöäüÖÄÜß_\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ('resultElemId') { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[a-zA-ZöäüÖÄÜß_\d]+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } - # set defaults for project and studio id if not given - $checked->{s_id} = $params->{studio_id} || '-1' unless defined $params->{s_id}; - $checked->{p_id} = $params->{project_id} || '-1' unless defined $params->{p_id}; + # set defaults for project and studio id if not given + $checked->{s_id} = $params->{studio_id} || '-1' unless defined $params->{s_id}; + $checked->{p_id} = $params->{project_id} || '-1' unless defined $params->{p_id}; - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - $checked->{template} = template::check($config, $params->{template}, 'selectSeries' ); + $checked->{template} = template::check( $config, $params->{template}, 'selectSeries' ); - return $checked; + return $checked; } diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index d00bcb3..8577738 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1,9 +1,8 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; - -#no warnings 'redefine'; +use warnings; +no warnings 'redefine'; use Data::Dumper; use URI::Escape(); @@ -137,8 +136,9 @@ sub save_schedule { my $entry = {}; for my $attr ( - 'project_id', 'studio_id', 'series_id', 'start', 'duration', 'exclude', 'period_type', 'end', - 'frequency', 'weekday', 'week_of_month', 'month', 'nextDay' + 'project_id', 'studio_id', 'series_id', 'start', 'duration', 'exclude', + 'period_type', 'end', 'frequency', 'weekday', 'week_of_month', 'month', + 'nextDay' ) { $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); @@ -723,7 +723,8 @@ sub assign_event { # print STDERR "ok\n"; } } else { - print STDERR "no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; + print STDERR + "no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; } $config->{access}->{write} = 0; @@ -852,7 +853,14 @@ sub reassign_event { #print STDERR " event\n"; my $url = - 'event.cgi?project_id=' . $project_id . '&studio_id=' . $studio_id . '&series_id=' . $new_series_id . '&event_id=' . $event_id; + 'event.cgi?project_id=' + . $project_id + . '&studio_id=' + . $studio_id + . '&series_id=' + . $new_series_id + . '&event_id=' + . $event_id; print qq{<meta http-equiv="refresh" content="0; url=$url" />} . "\n"; delete $params->{getBack}; return 1; @@ -1265,7 +1273,9 @@ sub check_params { $checked->{create_events} = 0; $checked->{publish_events} = 0; } - for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', 'count_episodes' ) { + for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', + 'count_episodes' ) + { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { $checked->{$param} = $1; } diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 3d9f950..550467e 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -1,9 +1,8 @@ #!/usr/bin/perl -local $| = 0; - -use warnings; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use ModPerl::Util (); @@ -88,15 +87,15 @@ sub showPlayout { } } - my $today=time::time_to_date(time()); - my $startDate=time::add_days_to_date( $today, -14 ); - my $events = playout::get( + my $today = time::time_to_date( time() ); + my $startDate = time::add_days_to_date( $today, -14 ); + my $events = playout::get( $config, - { + { project_id => $params->{project_id}, studio_id => $params->{studio_id}, order => 'modified_at asc, start asc', - from => $startDate + from => $startDate } ); @@ -105,17 +104,17 @@ sub showPlayout { return; } - for my $event (@$events) { + $event->{stream_size} ||= ''; $event->{stream_size} =~ s/(\d)(\d\d\d)$/$1\.$2/g; $event->{stream_size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; - $event->{duration} =~ s/(\d\.\d)(\d+)$/$1/g; - $event->{duration} =~ s/(\d)\.0/$1/g; + $event->{duration} =~ s/(\d\.\d)(\d+)$/$1/g; + $event->{duration} =~ s/(\d)\.0/$1/g; $event->{rms_left} = formatLoudness( $event->{rms_left} ); $event->{rms_right} = formatLoudness( $event->{rms_right} ); $event->{bitrate} = formatBitrate($event); $event->{duration} = formatDuration($event); - if ($event->{start} lt $today){ + if ( $event->{start} lt $today ) { $event->{class} = "past"; } } @@ -128,7 +127,7 @@ sub formatDuration { my $duration = $event->{duration}; return '' unless defined $duration; return '' if $duration eq ''; - my $result = ( ( $duration +30 ) % 60)-30; + my $result = ( ( $duration + 30 ) % 60 ) - 30; my $class = "ok"; $class = "warn" if abs($result) > 1; $class = "error" if abs($result) > 2; @@ -137,8 +136,8 @@ sub formatDuration { sub formatBitrate { my $event = $_[0]; - my $bitrate = $event->{bitrate}; - my $mode = $event->{bitrate_mode}; + my $bitrate = $event->{bitrate} || ''; + my $mode = $event->{bitrate_mode} || ''; if ( $bitrate ne '' ) { if ( $bitrate >= 200 ) { $bitrate = '<div class="warn">' . $bitrate . ' ' . $mode . '</div>'; diff --git a/website/agenda/planung/showImage.cgi b/website/agenda/planung/showImage.cgi index 2995215..e7269d0 100755 --- a/website/agenda/planung/showImage.cgi +++ b/website/agenda/planung/showImage.cgi @@ -1,4 +1,4 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl use strict; use warnings; @@ -37,7 +37,6 @@ $params->{default_studio_id} = $user_presets->{studio_id}; $params = uac::setDefaultStudio( $params, $user_presets ); $params = uac::setDefaultProject( $params, $user_presets ); - my $request = { url => $ENV{QUERY_STRING} || '', params => { @@ -60,6 +59,7 @@ sub showImage { my $params = $request->{params}->{checked}; my $permissions = $request->{permissions}; + unless ( $permissions->{read_event} == 1 ) { uac::permissions_denied('read_image'); return; diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio_timeslots.cgi index 5c50ddd..78bc9ca 100755 --- a/website/agenda/planung/studio_timeslots.cgi +++ b/website/agenda/planung/studio_timeslots.cgi @@ -1,13 +1,12 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use URI::Escape(); -#use Encode(); - use params(); use config(); use log(); @@ -208,7 +207,8 @@ sub showTimeslotSchedule { $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; } - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); + $params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); my $studio_id = $params->{studio_id}; my $project_id = $params->{project_id}; @@ -309,7 +309,8 @@ sub showDates { } ); - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); + $params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); my $language = $params->{loc}->{region}; # translate weekday names to selected language diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 7a117d5..e933fc2 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use config(); @@ -194,10 +196,10 @@ sub show_studios { } ); - if ($params->{setImage}){ - for my $studio (@$studios){ + if ( $params->{setImage} ) { + for my $studio (@$studios) { next unless $studio->{id} eq $params->{studio_id}; - $studio->{image}=$params->{setImage}; + $studio->{image} = $params->{setImage}; } } diff --git a/website/agenda/planung/templates/create_events.html b/website/agenda/planung/templates/create_events.html index fd4c1a9..9cf4006 100644 --- a/website/agenda/planung/templates/create_events.html +++ b/website/agenda/planung/templates/create_events.html @@ -17,6 +17,7 @@ <option value="14">2 weeks</option> <option value="21">3 weeks</option> <option value="28">4 weeks</option> + <option value="56">8 weeks</option> </select> <TMPL_IF .allow.read_event> diff --git a/website/agenda/planung/user_settings.cgi b/website/agenda/planung/user_settings.cgi index 27faca7..cd1817e 100755 --- a/website/agenda/planung/user_settings.cgi +++ b/website/agenda/planung/user_settings.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#! /usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use config(); @@ -92,7 +94,7 @@ sub show_settings { $params->{colors} = \@colors; $params->{css} = user_settings::getColorCss( $config, { user => $user } ); $params->{permissions} = $permissions; - $params->{errors} = $errors; + $params->{errors} = $errors if scalar @$errors > 0; my $user_settings = user_settings::get( $config, { user => $user } ); my $language = $user_settings->{language} || 'en'; @@ -134,7 +136,7 @@ sub updateDefaultProjectStudio { user_settings::update( $config, $settings ); } else { uac::print_info("insert user settings, as missing on updating default project and studio"); - update_settings($config, $request); + update_settings( $config, $request ); } $config->{access}->{write} = 0; } @@ -160,14 +162,14 @@ sub update_settings { } my $settings = { - user => $user, - colors => join( "\n", @colors ), - language => $params->{language}, - period => $params->{period}, + user => $user, + colors => join( "\n", @colors ), + language => $params->{language}, + period => $params->{period}, }; my $results = user_settings::get( $config, { user => $user } ); - if ( defined $results ) { + if ( defined $results ) { uac::print_info("update user settings"); $config->{access}->{write} = 1; user_settings::update( $config, $settings ); diff --git a/website/agenda/planung/user_stats.cgi b/website/agenda/planung/user_stats.cgi index 52a19aa..e611d06 100755 --- a/website/agenda/planung/user_stats.cgi +++ b/website/agenda/planung/user_stats.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use config(); diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index 408707d..adcaf85 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -1,7 +1,9 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use config(); @@ -22,23 +24,23 @@ my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); my $user_presets = uac::get_user_presets( - $config, - { - user => $user, - project_id => $params->{project_id}, - studio_id => $params->{studio_id} - } + $config, + { + user => $user, + project_id => $params->{project_id}, + studio_id => $params->{studio_id} + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params = uac::setDefaultStudio( $params, $user_presets ); $params = uac::setDefaultProject( $params, $user_presets ); my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($config, $params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; @@ -46,414 +48,417 @@ $params = $request->{params}->{checked}; #process header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); -template::process($config, 'print', template::check($config, 'default.html'), $headerParams ); +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); return unless uac::check( $config, $params, $user_presets ) == 1; our $errors = []; if ( defined $params->{action} ) { - update_user_roles( $config, $request ) if ( $params->{action} eq 'assign' ); - update_user( $config, $request ) if ( $params->{action} eq 'save' ); - delete_user( $config, $request ) if ( $params->{action} eq 'delete' ); - if ( $params->{action} eq 'change_password' ) { - change_password( $config, $request, $user ); - $config->{access}->{write} = 0; - return; - } + update_user_roles( $config, $request ) if ( $params->{action} eq 'assign' ); + update_user( $config, $request ) if ( $params->{action} eq 'save' ); + delete_user( $config, $request ) if ( $params->{action} eq 'delete' ); + if ( $params->{action} eq 'change_password' ) { + change_password( $config, $request, $user ); + $config->{access}->{write} = 0; + return; + } } $config->{access}->{write} = 0; show_users( $config, $request ); sub show_users { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $permissions = $request->{permissions}; - unless ( ( defined $permissions->{read_user} ) && ( $permissions->{read_user} == 1 ) ) { - uac::permissions_denied('read_user'); - return; - } + unless ( ( defined $permissions->{read_user} ) && ( $permissions->{read_user} == 1 ) ) { + uac::permissions_denied('read_user'); + return; + } - my $max_level = $permissions->{level}; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; + my $max_level = $permissions->{level}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; - #TODO: get from presets - my $studios = studios::get( $config, { project_id => $project_id } ); - my $users = uac::get_users($config); - my $roles = uac::get_roles( - $config, - { - project_id => $project_id, - studio_id => $studio_id - } - ); + #TODO: get from presets + my $studios = studios::get( $config, { project_id => $project_id } ); + my $users = uac::get_users($config); + my $roles = uac::get_roles( + $config, + { + project_id => $project_id, + studio_id => $studio_id + } + ); - # print "max level:$max_level<br>"; + # print "max level:$max_level<br>"; - #user roles - for my $user (@$users) { - $user->{disabled_checked} = 'selected="selected"' if ( $user->{disabled} eq '1' ); + #user roles + for my $user (@$users) { + $user->{disabled_checked} = 'selected="selected"' if ( $user->{disabled} eq '1' ); - #print Dumper($user); - my $user_roles = uac::get_user_roles( - $config, - { - user => $user->{name}, - project_id => $project_id, - studio_id => $studio_id - } - ); - my @user_roles = ( map { { role => $_->{role} } } @$user_roles ); + #print Dumper($user); + my $user_roles = uac::get_user_roles( + $config, + { + user => $user->{name}, + project_id => $project_id, + studio_id => $studio_id + } + ); + my @user_roles = ( map { { role => $_->{role} } } @$user_roles ); - #print Dumper(\@user_roles); - #@user_roles[-1]->{__last__}=1 unless(@user_roles==0); - $user->{user_roles} = \@user_roles; + #print Dumper(\@user_roles); + #@user_roles[-1]->{__last__}=1 unless(@user_roles==0); + $user->{user_roles} = \@user_roles; - #mark all roles assigned to user - my $has_roles = 0; - my @assignable_roles = (); - for my $role ( reverse sort { $a->{level} <=> $b->{level} } @$roles ) { + #mark all roles assigned to user + my $has_roles = 0; + my @assignable_roles = (); + for my $role ( reverse sort { $a->{level} <=> $b->{level} } @$roles ) { - #next if ($role->{level}>$max_level); - $role->{assigned} = 0; - my %role = %$role; - for my $user_role (@user_roles) { - if ( $role->{role} eq $user_role->{role} ) { - $role{assigned} = 1; + #next if ($role->{level}>$max_level); + $role->{assigned} = 0; + my %role = %$role; + for my $user_role (@user_roles) { + if ( $role->{role} eq $user_role->{role} ) { + $role{assigned} = 1; - # print "if ($role->{role} eq $user_role->{role}<br>"; - $has_roles = 1; - last; - } - } - push @assignable_roles, \%role; - } - $user->{has_roles} = $has_roles; - $user->{roles} = \@assignable_roles; - $user->{studio_id} = $studio_id; - $user->{project_id} = $project_id; - uac::set_template_permissions( $permissions, $user ); - } + # print "if ($role->{role} eq $user_role->{role}<br>"; + $has_roles = 1; + last; + } + } + push @assignable_roles, \%role; + } + $user->{has_roles} = $has_roles; + $user->{roles} = \@assignable_roles; + $user->{studio_id} = $studio_id; + $user->{project_id} = $project_id; + uac::set_template_permissions( $permissions, $user ); + } - my $sort_by = 'name'; - my @users = sort { lc( $a->{$sort_by} ) cmp lc( $b->{$sort_by} ) } @$users; + my $sort_by = 'name'; + my @users = sort { lc( $a->{$sort_by} ) cmp lc( $b->{$sort_by} ) } @$users; - my @users_with_roles = (); - my @users_without_roles = (); - for my $user (@users) { - if ( $user->{has_roles} == 1 ) { - push @users_with_roles, $user; - } else { - push @users_without_roles, $user; - } - } + my @users_with_roles = (); + my @users_without_roles = (); + for my $user (@users) { + if ( $user->{has_roles} == 1 ) { + push @users_with_roles, $user; + } else { + push @users_without_roles, $user; + } + } - if ( $permissions->{update_user_role} == 1 ) { - @users = ( @users_with_roles, @users_without_roles ); - } else { - @users = (@users_with_roles); - } + if ( $permissions->{update_user_role} == 1 ) { + @users = ( @users_with_roles, @users_without_roles ); + } else { + @users = (@users_with_roles); + } - $params->{users} = \@users; - $params->{studios} = $studios; - $params->{permissions} = $permissions; - $params->{errors} = $errors; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'users' } ); - uac::set_template_permissions( $permissions, $params ); + $params->{users} = \@users; + $params->{studios} = $studios; + $params->{permissions} = $permissions; + $params->{errors} = $errors; + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'users' } ); + uac::set_template_permissions( $permissions, $params ); - #print Dumper($permissions); - template::process($config, 'print', $params->{template}, $params ); + #print Dumper($permissions); + template::process( $config, 'print', $params->{template}, $params ); - # template::process($config, 'print', template::check($config, 'users'), $params); + # template::process($config, 'print', template::check($config, 'users'), $params); } sub update_user { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - my $user = { - full_name => $params->{user_full_name}, - email => $params->{user_email}, - id => $params->{user_id} - }; - $user->{name} = $params->{user_name} if ( ( defined $params->{user_name} ) && ( $params->{user_name} ne '' ) ); + my $user = { + full_name => $params->{user_full_name}, + email => $params->{user_email}, + id => $params->{user_id} + }; + $user->{name} = $params->{user_name} if ( ( defined $params->{user_name} ) && ( $params->{user_name} ne '' ) ); - if ( $permissions->{disable_user} == 1 ) { - $user->{disabled} = $params->{disabled} || 0; - } + if ( $permissions->{disable_user} == 1 ) { + $user->{disabled} = $params->{disabled} || 0; + } - if ( ( !defined $user->{id} ) || ( $user->{id} eq '' ) ) { - unless ( $permissions->{create_user} == 1 ) { - uac::permissions_denied('create_user'); - return; - } + if ( ( !defined $user->{id} ) || ( $user->{id} eq '' ) ) { + unless ( $permissions->{create_user} == 1 ) { + uac::permissions_denied('create_user'); + return; + } - #print Dumper($params); - my $users = uac::get_users( $config, { email => $params->{user_email} } ); - if ( scalar(@$users) > 0 ) { + #print Dumper($params); + my $users = uac::get_users( $config, { email => $params->{user_email} } ); + if ( scalar(@$users) > 0 ) { - #print Dumper($users); - error('There is already a user registered for the given email address'); - return; - } + #print Dumper($users); + error('There is already a user registered for the given email address'); + return; + } - return unless password_requests::checkPassword( $params->{user_password} ); + return unless password_requests::checkPassword( $params->{user_password} ); - if ( $params->{user_password} ne $params->{user_password2} ) { - error('password mismatch'); - return; - } - my $crypt = auth::crypt_password( $params->{user_password} ); - $user->{salt} = $crypt->{salt}; - $user->{pass} = $crypt->{crypt}; + if ( $params->{user_password} ne $params->{user_password2} ) { + error('password mismatch'); + return; + } + my $crypt = auth::crypt_password( $params->{user_password} ); + $user->{salt} = $crypt->{salt}; + $user->{pass} = $crypt->{crypt}; - #print '<pre>'.Dumper($user).'</pre>'; - $user->{created_at} = time::time_to_datetime( time() ); - $user->{modified_at} = time::time_to_datetime( time() ); - $user->{created_by} = $params->{presets}->{user}; + #print '<pre>'.Dumper($user).'</pre>'; + $user->{created_at} = time::time_to_datetime( time() ); + $user->{modified_at} = time::time_to_datetime( time() ); + $user->{created_by} = $params->{presets}->{user}; - $config->{access}->{write} = 1; - uac::insert_user( $config, $user ); - } else { - unless ( $permissions->{update_user} == 1 ) { - uac::permissions_denied('update_user'); - return; - } - $user->{modified_at} = time::time_to_datetime( time() ); - $config->{access}->{write} = 1; - uac::update_user( $config, $user ); - } + $config->{access}->{write} = 1; + uac::insert_user( $config, $user ); + } else { + unless ( $permissions->{update_user} == 1 ) { + uac::permissions_denied('update_user'); + return; + } + $user->{modified_at} = time::time_to_datetime( time() ); + $config->{access}->{write} = 1; + uac::update_user( $config, $user ); + } } sub change_password { - my $config = shift; - my $request = shift; - my $userName = shift; + my $config = shift; + my $request = shift; + my $userName = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; - my $result = password_requests::changePassword( $config, $request, $userName ); + my $result = password_requests::changePassword( $config, $request, $userName ); - $params->{errors} = $result->{error} if defined $result->{error}; - $params->{info} = $result->{success} if defined $result->{success}; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'users' } ); - uac::set_template_permissions( $permissions, $params ); + $params->{errors} = $result->{error} if defined $result->{error}; + $params->{info} = $result->{success} if defined $result->{success}; + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'users' } ); + uac::set_template_permissions( $permissions, $params ); - #print Dumper($permissions); - template::process( $config, 'print', template::check($config, 'change_password'), $params ); + #print Dumper($permissions); + template::process( $config, 'print', template::check( $config, 'change_password' ), $params ); } sub delete_user { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $permissions = $request->{permissions}; - unless ( $permissions->{delete_user} == 1 ) { - uac::permissions_denied('delete_user'); - return; - } + my $permissions = $request->{permissions}; + unless ( $permissions->{delete_user} == 1 ) { + uac::permissions_denied('delete_user'); + return; + } - $config->{access}->{write} = 1; - my $params = $request->{params}->{checked}; - uac::delete_user( $config, $params->{user_id} ); + $config->{access}->{write} = 1; + my $params = $request->{params}->{checked}; + uac::delete_user( $config, $params->{user_id} ); } # add or remove user from role for given studio_id # todo: assign/unassign role oly if max(change user rank) is < max(users rank) sub update_user_roles { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - # print Dumper($params).'<br>'; - # print Dumper($request->{params}->{checked}); + # print Dumper($params).'<br>'; + # print Dumper($request->{params}->{checked}); - my $permissions = $request->{permissions}; - unless ( $permissions->{update_user_role} == 1 ) { - uac::permissions_denied('update_user_role'); - return; - } - my $params = $request->{params}->{checked}; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; - my $user_id = $params->{user_id} || ''; + my $permissions = $request->{permissions}; + unless ( $permissions->{update_user_role} == 1 ) { + uac::permissions_denied('update_user_role'); + return; + } + my $params = $request->{params}->{checked}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $user_id = $params->{user_id} || ''; - # return undef if ($user_id eq ''); + # return undef if ($user_id eq ''); - #get all roles - my $roles = uac::get_roles( - $config, - { - project_id => $project_id, - studio_id => $studio_id - } - ); + #get all roles + my $roles = uac::get_roles( + $config, + { + project_id => $project_id, + studio_id => $studio_id + } + ); - #get roles for the selected user - my $user_roles = uac::get_user_roles( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - user_id => $user_id - } - ); + #get roles for the selected user + my $user_roles = uac::get_user_roles( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + user_id => $user_id + } + ); - #maximum level of the user who wants to perform the update (given by $permissions) - my $max_level = $permissions->{level}; + #maximum level of the user who wants to perform the update (given by $permissions) + my $max_level = $permissions->{level}; - #maximum level of the user to be changed (given by $user_id) - my $max_user_level = 0; + #maximum level of the user to be changed (given by $user_id) + my $max_user_level = 0; - #get all roles by id - my $role_by_id = {}; - for my $role (@$roles) { - $role_by_id->{ $role->{id} } = $role; - } + #get all roles by id + my $role_by_id = {}; + for my $role (@$roles) { + $role_by_id->{ $role->{id} } = $role; + } - #get user role by id - my $user_role_by_id = {}; - for my $role (@$user_roles) { - $user_role_by_id->{ $role->{id} } = $role; - $max_user_level = $role->{level} if $max_user_level < $role->{level}; - } + #get user role by id + my $user_role_by_id = {}; + for my $role (@$user_roles) { + $user_role_by_id->{ $role->{id} } = $role; + $max_user_level = $role->{level} if $max_user_level < $role->{level}; + } - $config->{access}->{write} = 1; + $config->{access}->{write} = 1; - #remove unchecked user roles - for my $user_role_id ( keys %$user_role_by_id ) { - my $user_role = $user_role_by_id->{$user_role_id}; - my $role = $role_by_id->{$user_role_id}; + #remove unchecked user roles + for my $user_role_id ( keys %$user_role_by_id ) { + my $user_role = $user_role_by_id->{$user_role_id}; + my $role = $role_by_id->{$user_role_id}; - # print "$user_role_id - $params->{role_ids}->{$user_role_id} ($studio_id)<br>"; - unless ( defined $params->{role_ids}->{$user_role_id} ) { - my $message = + # print "$user_role_id - $params->{role_ids}->{$user_role_id} ($studio_id)<br>"; + unless ( defined $params->{role_ids}->{$user_role_id} ) { + my $message = "remove role '$role->{role}' (level $role->{level}) from user $user_id (level $max_user_level) for studio_id=$studio_id, project_id=$project_id. Your level is $max_level"; - my $update = 0; - $update = 1 if ( defined $permissions->{is_admin} ); - $update = 1 if ( ( $role_by_id->{ $user_role->{role_id} }->{level} < $max_level ) - && ( $max_user_level < $max_level ) ); - if ( $update == 0 ) { - uac::permissions_denied($message); - next; - } - my $result = uac::remove_user_role( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - user_id => $user_id, - role_id => $user_role_id - } - ); - unless ( defined $result ) { - uac::print_error("missing parameter on remove user role"); - return; - } - if ( $result == 0 ) { - uac::print_error("no changes"); - return; - } - uac::print_info($message); - } - } + my $update = 0; + $update = 1 if ( defined $permissions->{is_admin} ); + $update = 1 + if ( ( $role_by_id->{ $user_role->{role_id} }->{level} < $max_level ) + && ( $max_user_level < $max_level ) ); + if ( $update == 0 ) { + uac::permissions_denied($message); + next; + } + my $result = uac::remove_user_role( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + user_id => $user_id, + role_id => $user_role_id + } + ); + unless ( defined $result ) { + uac::print_error("missing parameter on remove user role"); + return; + } + if ( $result == 0 ) { + uac::print_error("no changes"); + return; + } + uac::print_info($message); + } + } - #insert/update user roles - for my $role_id ( keys %{ $params->{role_ids} } ) { - my $role = $role_by_id->{$role_id}; - unless ( defined $user_role_by_id->{$role_id} ) { - my $message = "assign role $role->{role} (level $role->{level}) to user (level $max_user_level). Your level is $max_level"; + #insert/update user roles + for my $role_id ( keys %{ $params->{role_ids} } ) { + my $role = $role_by_id->{$role_id}; + unless ( defined $user_role_by_id->{$role_id} ) { + my $message = +"assign role $role->{role} (level $role->{level}) to user (level $max_user_level). Your level is $max_level"; - # print "user role id: $role->{id}<br>\n"; - my $update = 0; - $update = 1 if ( defined $permissions->{is_admin} ); - $update = 1 if ( ( $role_by_id->{ $role->{id} }->{level} < $max_level ) - && ( $max_user_level < $max_level ) ); - if ( $update == 0 ) { - uac::permissions_denied($message); - next; - } - uac::assign_user_role( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - user_id => $user_id, - role_id => $role_id - } - ); - uac::print_info($message); - } - } - $config->{access}->{write} = 0; + # print "user role id: $role->{id}<br>\n"; + my $update = 0; + $update = 1 if ( defined $permissions->{is_admin} ); + $update = 1 + if ( ( $role_by_id->{ $role->{id} }->{level} < $max_level ) + && ( $max_user_level < $max_level ) ); + if ( $update == 0 ) { + uac::permissions_denied($message); + next; + } + uac::assign_user_role( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + user_id => $user_id, + role_id => $role_id + } + ); + uac::print_info($message); + } + } + $config->{access}->{write} = 0; } sub check_params { my $config = shift; - my $params = shift; + my $params = shift; - my $checked = {}; + my $checked = {}; - #template - my $template = ''; - $template = template::check($config, $params->{template}, 'users' ); - $checked->{template} = $template; + #template + my $template = ''; + $template = template::check( $config, $params->{template}, 'users' ); + $checked->{template} = $template; - #numeric values - for my $param ( 'project_id', 'user_id', 'default_studio_id', 'studio_id', 'disabled' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } - if ( defined $checked->{studio_id} ) { - $checked->{default_studio_id} = $checked->{studio_id}; - } else { - $checked->{studio_id} = -1; - } + #numeric values + for my $param ( 'project_id', 'user_id', 'default_studio_id', 'studio_id', 'disabled' ) { + if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { + $checked->{$param} = $params->{$param}; + } + } + if ( defined $checked->{studio_id} ) { + $checked->{default_studio_id} = $checked->{studio_id}; + } else { + $checked->{studio_id} = -1; + } - for my $param ( 'user_name', 'user_full_name', 'user_email' ) { - if ( defined $params->{$param} ) { - my $value = $params->{$param}; - $value =~ s/^\s+//g; - $value =~ s/\s+$//g; - $checked->{$param} = $value; - } - } + for my $param ( 'user_name', 'user_full_name', 'user_email' ) { + if ( defined $params->{$param} ) { + my $value = $params->{$param}; + $value =~ s/^\s+//g; + $value =~ s/\s+$//g; + $checked->{$param} = $value; + } + } - for my $param ( 'user_password', 'user_password2' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - } - } + for my $param ( 'user_password', 'user_password2' ) { + if ( defined $params->{$param} ) { + $checked->{$param} = $params->{$param}; + } + } - #actions and roles - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(save|assign|delete|change_password)$/ ) { - $checked->{action} = $params->{action}; - } + #actions and roles + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(save|assign|delete|change_password)$/ ) { + $checked->{action} = $params->{action}; + } - if ( $params->{action} eq 'assign' ) { - $checked->{action} = $params->{action}; - for my $param ( keys %$params ) { - $checked->{role_ids}->{$1} = 1 if ( $param =~ /^role_(\d+)$/ ); - } - } - } + if ( $params->{action} eq 'assign' ) { + $checked->{action} = $params->{action}; + for my $param ( keys %$params ) { + $checked->{role_ids}->{$1} = 1 if ( $param =~ /^role_(\d+)$/ ); + } + } + } - #print Dumper($params); - #print '<pre>'.Dumper($checked).'</pre>'; - return $checked; + #print Dumper($params); + #print '<pre>'.Dumper($checked).'</pre>'; + return $checked; } sub error { - push @$errors, { error => $_[0] }; + push @$errors, { error => $_[0] }; } diff --git a/website/agenda/planung/work_time.cgi b/website/agenda/planung/work_time.cgi index 95d15ac..b8ad7b1 100755 --- a/website/agenda/planung/work_time.cgi +++ b/website/agenda/planung/work_time.cgi @@ -1,13 +1,11 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; use URI::Escape(); - -#use Encode(); - use params(); use config(); use log(); @@ -20,7 +18,6 @@ use studios(); use work_schedule(); use work_dates(); use localization(); - binmode STDOUT, ":utf8"; my $r = shift; @@ -93,8 +90,9 @@ sub save_schedule { my $entry = {}; for my $attr ( - 'project_id', 'studio_id', 'start', 'duration', 'exclude', 'period_type', 'end', 'frequency', - 'weekday', 'week_of_month', 'month', 'title', 'type' + 'project_id', 'studio_id', 'start', 'duration', 'exclude', 'period_type', + 'end', 'frequency', 'weekday', 'week_of_month', 'month', 'title', + 'type' ) { $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); diff --git a/website/agenda/series.cgi b/website/agenda/series.cgi index c0d022a..fbaa666 100755 --- a/website/agenda/series.cgi +++ b/website/agenda/series.cgi @@ -1,7 +1,9 @@ #!/usr/bin/perl -w -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use params(); diff --git a/website/agenda/series_names.cgi b/website/agenda/series_names.cgi index 3efd159..2f12d77 100755 --- a/website/agenda/series_names.cgi +++ b/website/agenda/series_names.cgi @@ -1,16 +1,14 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -#use utf8; -use warnings "all"; - -#use diagnostics; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use params(); use db(); use markup(); -use cache(); use log(); use config(); use template(); @@ -21,7 +19,7 @@ binmode STDOUT, ":utf8"; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); my $config = config::getFromScriptLocation(); -my $debug = $config->{system}->{debug}; +my $debug = $config->{system}->{debug}; #get request my $request = { @@ -34,17 +32,6 @@ my $request = { $params = $request->{params}->{checked}; -#read cache -my $cache = {}; -if ( $config->{cache}->{use_cache} eq '1' ) { - cache::configure('series_names.html'); - $cache = cache::load( $config, $params ); - if ( defined $cache->{content} ) { - print $cache->{content}; - return; - } -} - #connect my $dbh = db::connect($config); @@ -61,13 +48,7 @@ my $out = ''; template::process( $config, $out, $params->{template}, $template_parameters ); print $out; -#write to cache -if ( $config->{cache}->{use_cache} eq '1' ) { - $cache->{content} = $out; - cache::save($cache); -} -$cache = undef; -$out = undef; +$out = undef; sub getProjects { my $dbh = shift; @@ -101,8 +82,9 @@ sub getProjects { #mark last series_name entry of all non empty projects if ( ( defined $series_names ) && ( scalar @$series_names > 0 ) ) { $series_names->[-1]->{last} = 1; - $prev_series_names->[-1]->{last} = 0 if ( defined $prev_series_names ) && ( scalar @$prev_series_names > 0 ); - $prev_series_names = $series_names; + $prev_series_names->[-1]->{last} = 0 + if ( defined $prev_series_names ) && ( scalar @$prev_series_names > 0 ); + $prev_series_names = $series_names; } push @$results, $project; } diff --git a/website/agenda/upload_playout.cgi b/website/agenda/upload_playout.cgi index 15baf17..a82f98a 100755 --- a/website/agenda/upload_playout.cgi +++ b/website/agenda/upload_playout.cgi @@ -1,7 +1,8 @@ -#! /usr/bin/perl -w +#!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use Data::Dumper; From dcec151f7b4b6f4e34ee8a8a35a1b0a6c557f857 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 22 Apr 2019 00:48:49 +0200 Subject: [PATCH 062/391] fix command line parsing of mod_perl scripts --- website/agenda/aggregate.cgi | 37 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 2c6642b..895cee6 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -1,8 +1,10 @@ #!/usr/bin/perl -use warnings "all"; use strict; +use warnings; +no warnings 'redefine'; use utf8; + use config(); use params(); use db(); @@ -17,8 +19,8 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { my $params = {}; my $r = shift; - if ( ref($r) eq '' ) { + unshift @ARGV, $r; for my $arg (@ARGV) { my ( $key, $value ) = split( /\=/, $arg, 2 ); $params->{$key} = $value; @@ -29,9 +31,8 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { my $config = config::getFromScriptLocation(); - my $debug = $config->{system}->{debug}; - my $mem_debug = $config->{system}->{debug_memory}; - my $base_dir = $config->{locations}->{base_dir}; + my $debug = $config->{system}->{debug}; + my $base_dir = $config->{locations}->{base_dir}; my $output_header = ''; if ( exists $ENV{REQUEST_URI} && $ENV{REQUEST_URI} ne '' ) { @@ -42,7 +43,6 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { $params->{exclude_projects} = 1; $params->{exclude_event_images} = 1; - # $output_header.='<!DOCTYPE html>'."\n"; my $request = { url => $ENV{QUERY_STRING}, params => { @@ -52,7 +52,6 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { }; $params = $request->{params}->{checked}; - my $mem = 0; my $content = load_file( $base_dir . './index.html' ); $content = $$content || ''; @@ -60,8 +59,6 @@ if ( $0 =~ /aggregate.*?\.cgi$/ ) { $content =~ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span id=\"calcms_title\" \>\<\/span\>/g; - # print $content; - my $list = aggregator::get_list( $config, $request ); my $menu = { content => '' }; @@ -76,10 +73,6 @@ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span my $calendar = aggregator::get_calendar( $config, $request, $list->{day} ); my $newest_comments = aggregator::get_newest_comments( $config, $request ); - #my $newest_comments={}; - #db::disconnect($request) if (defined $request && defined $request->{connection}); - #print STDERR "$list->{project_title}\n"; - #build results list my $output = {}; $output->{calcms_menu} = \$menu->{content}; @@ -87,10 +80,6 @@ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span $output->{calcms_calendar} = \$calendar->{content}; $output->{calcms_newest_comments} = \$newest_comments->{content}; - # $output->{calcms_categories} = load_file($base_dir.'/cache/categories.html'); - # $output->{calcms_series_names} = load_file($base_dir.'/cache/series_names.html'); - # $output->{calcms_programs} = load_file($base_dir.'/cache/programs.html'); - my $url = $list->{url}; my $js = qq{ set('preloaded','1'); @@ -117,8 +106,8 @@ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span $content =~ s/(<(div|span)\s+id="calcms_title".*?>).*?(<\/(div|span)>)/$list->{project_title}/g; my $values = []; - for my $value ( $list->{'series_name'}, - $list->{'title'}, $list->{'location'}, 'Programm ' . $list->{project_title} . ' | In Gedenken an AB✝' ) + for + my $value ( $list->{'series_name'}, $list->{'title'}, $list->{'location'}, 'Programm ' . $list->{project_title} ) { next unless defined $value; next if $value eq ''; @@ -137,15 +126,13 @@ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\<span $content =~ s/startCalcms\(\)\;/$js/gi; #replace link to uncompressed or compressed drupal (first link in <head>) - my @parts = split( /<\/head>/, $content ); - $parts[0] =~ s|/misc/jquery.js|/agenda_files/js/jquery.js|; - $parts[0] =~ s|/sites/default/files/js/[a-z0-9\_]+\.js|/agenda_files/js/jquery.js|; - $content = join( '</head>', @parts ); + #my @parts = split( /<\/head>/, $content ); + #$parts[0] =~ s|/misc/jquery.js|/agenda_files/js/jquery.min.js|; + #$parts[0] =~ s|/sites/default/files/js/[a-z0-9\_]+\.js|/agenda_files/js/jquery.min.js|; + #$content = join( '</head>', @parts ); print $output_header; print $content; - - # $config=undef; $content = undef; } From aaa3f01a98a0bdfd9826130641c0e25c3d2931f6 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 22 Apr 2019 00:50:41 +0200 Subject: [PATCH 063/391] fix studio_id parameter on loading image --- website/agenda/planung/templates/edit_event.html | 4 ++-- website/agenda/planung/templates/edit_series.html | 4 ++-- website/agenda/planung/templates/image.html | 2 +- website/agenda/planung/templates/imageUpload.html | 2 +- website/agenda/planung/templates/projects.html | 4 ++-- website/agenda/planung/templates/studios.html | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit_event.html index 0fc5db2..8060fb0 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit_event.html @@ -391,7 +391,7 @@ <tr> <td class="label">description</td> <td> - <img style="float:right;padding-left:1em" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studioId=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"> + <img style="float:right;padding-left:1em" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"> <div><TMPL_VAR topic</div> <div><TMPL_VAR html_content escape=none></div> </td> @@ -459,7 +459,7 @@ <button onclick="selectImage('<TMPL_VAR series_name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'event', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','<TMPL_VAR series_id>','<TMPL_VAR event_id>'); return false;" class="selectImage" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studioId=<TMPL_VAR studio_id>&filename=<TMPL_VAR image>&type=icon"> + <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input id="image_<TMPL_VAR event_id>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.label_image>"> <input type="hidden" name="series_image" value="<TMPL_VAR series_image>" > diff --git a/website/agenda/planung/templates/edit_series.html b/website/agenda/planung/templates/edit_series.html index 41ca759..98d8c11 100644 --- a/website/agenda/planung/templates/edit_series.html +++ b/website/agenda/planung/templates/edit_series.html @@ -123,7 +123,7 @@ <button class="selectImage" onclick="selectImage('<TMPL_VAR series_name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'series', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','<TMPL_VAR series_id>'); return false;" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> + <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input type="hidden" name="series_image" value="<TMPL_VAR series_image>" > @@ -433,7 +433,7 @@ <TMPL_LOOP events> <tr id="event_<TMPL_VAR event_id>"> <TMPL_IF .allow.read_image> - <td class="logo"><img width="33" height="33" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studioId=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"></td> + <td class="logo"><img width="33" height="33" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"></td> </TMPL_IF> <td class="weekday"><TMPL_VAR weekday_short_name></td> <td class="date"><TMPL_VAR start_date></td> diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 3cde819..14f5293 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -98,7 +98,7 @@ <TMPL_LOOP images> <div class="image" id="img_<TMPL_VAR id>" - style="background-image:url('showImage.cgi?project_id=<TMPL_VAR project_id>&studioId=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" + style="background-image:url('showImage.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" title="<TMPL_VAR description>" filename="<TMPL_VAR filename>" > diff --git a/website/agenda/planung/templates/imageUpload.html b/website/agenda/planung/templates/imageUpload.html index 9a2ecbf..f2a8a40 100644 --- a/website/agenda/planung/templates/imageUpload.html +++ b/website/agenda/planung/templates/imageUpload.html @@ -24,7 +24,7 @@ <tr> <td> <TMPL_IF filename> - <div class="image" style="background-image:url('showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" > + <div class="image" style="background-image:url('showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" > </div> </TMPL_IF> </td> diff --git a/website/agenda/planung/templates/projects.html b/website/agenda/planung/templates/projects.html index fe19c31..45f7d25 100644 --- a/website/agenda/planung/templates/projects.html +++ b/website/agenda/planung/templates/projects.html @@ -52,7 +52,7 @@ <!-- view project --> <div id="view_<TMPL_VAR project_id>" class="panel-body"> <table> - <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td colspan="2"><img src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> + <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td colspan="2"><img src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_name></td> <td colspan="2"><TMPL_VAR name>  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_subtitle></td> <td colspan="2"><TMPL_VAR subtitle>  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_start_date></td> <td colspan="2"><TMPL_VAR start_date>  </td></tr> @@ -99,7 +99,7 @@ class="selectImage" onclick="selectImage('<TMPL_VAR name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'projects', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>', null, null, '<TMPL_VAR pid>'); return false;" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> + <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input id="image_<TMPL_VAR pid>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.template_image>"> </td> diff --git a/website/agenda/planung/templates/studios.html b/website/agenda/planung/templates/studios.html index a052701..dcd72ee 100644 --- a/website/agenda/planung/templates/studios.html +++ b/website/agenda/planung/templates/studios.html @@ -48,7 +48,7 @@ <!-- view studio --> <div id="view_<TMPL_VAR id>" class="panel-body"> <table> - <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td><img src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> + <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td><img src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_name></td> <td><TMPL_VAR name>  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_description></td> <td><TMPL_VAR description>  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_location></td> <td><TMPL_VAR location>  </td></tr> @@ -75,7 +75,7 @@ class="selectImage" onclick="selectImage('<TMPL_VAR name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'studios', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>'); return false;" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studioId=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> + <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input id="image_<TMPL_VAR id>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.template_image>"> </td> From 667d6c715fc3b7576e6757644fed44ca0d9d2e1c Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Mon, 22 Apr 2019 00:51:12 +0200 Subject: [PATCH 064/391] use html5 color input --- .../planung/templates/user_settings.html | 71 +++---------------- 1 file changed, 11 insertions(+), 60 deletions(-) diff --git a/website/agenda/planung/templates/user_settings.html b/website/agenda/planung/templates/user_settings.html index dbc6fbb..1562e27 100644 --- a/website/agenda/planung/templates/user_settings.html +++ b/website/agenda/planung/templates/user_settings.html @@ -6,61 +6,8 @@ selectedId = ($(this).attr('id')); showColors(); }); - //$("#content").append(getColor(8)); }); - /* - function getColor(noOfColors) { - var html = ""; - var frequency = 5 / noOfColors; - for (var i = 0; i < noOfColors;++i) { - r = Math.sin(frequency * i + 0) * (127) + 128; - g = Math.sin(frequency * i + 1) * (127) + 128; - b = Math.sin(frequency * i + 3) * (127) + 128; - li = '<li class="color" style="background-color:rgb({r},{g},{b});"> </li>'; - li = li.replace("{r}", Math.floor(r)); - li = li.replace("{g}", Math.floor(g)); - li = li.replace("{b}", Math.floor(b)); - html = html + li; - } - return html; - } - - function showColors(){ - var colors=['00','22','44','66','88','aa','cc','ee','ff']; - var content=''; - - for (var i in colors){ - for (var j in colors){ - var r=colors[i]; - var g=colors[colors.length-j-1]; - var b =Math.round((i-j))% colors.length; - if(b<0)b=Math.round((j-i))% colors.length; - b=colors[b] - var value='#'+r+g+b; - content+='<div class="col" value="'+value+'" style="background:'+value+';"> </div>'; - } - content+='<br style="clear:both">' - } - - for (var i in colors){ - var gray=colors[colors.length-i-1]; - var value='#'+gray+gray+gray; - content+='<div class="col" value="'+value+'" style="background:'+value+';"> </div>'; - } - content+='<br style="clear:both">' - - $("#colors").html(content); - $("#colors div.col").click( - function(){ - var color=$(this).attr("value"); - $('#'+selectedId).css('background',color); - $('#'+selectedId).attr('value',color); - } - ); - } - */ - function showColors() { var colors = [ '#ef9a9a', '#f48fb1', '#ce93d8', '#b39ddb', '#9fa8da', '#90caf9', '#81d4fa', '#80deea', '#80cbc4', '#a5d6a7', @@ -87,8 +34,8 @@ <style> div.col { float: left; - width: 10px; - height: 10px; + width: 2rem; + height: 2rem; } </style> @@ -142,9 +89,12 @@ div.col { <td><TMPL_VAR .loc.label_color>: <TMPL_VAR title></td> <td><input id="<TMPL_VAR name>" - style="background: <TMPL_VAR value>" - name="<TMPL_VAR name>" class="color" - value="<TMPL_VAR value>"></td> + style="padding:0;background: <TMPL_VAR value>" + name="<TMPL_VAR name>" + class="color" + value="<TMPL_VAR value>" + type="color" + ></td> </tr> </TMPL_LOOP> </table> @@ -153,10 +103,11 @@ div.col { </form> -<form method="post" style="margin-top: 2px;float:left"> +<form method="post" style="margin-top: 2px; float: left"> <input type="hidden" name="project_id" value="<TMPL_VAR project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR studio_id>"> - <input type="hidden" name="action" value="updateDefaultProjectStudio"> + <input type="hidden" name="action" + value="updateDefaultProjectStudio"> <button onclick="$(this).submit()"> <TMPL_VAR loc.setDefaultProjectStudio> </button> From 60aa3387f0a9f690d7748321fce18f41160e632d Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 30 Jun 2019 01:26:06 +0200 Subject: [PATCH 065/391] verify uploads and playout check if attributes for uploaded audio match expected ranges and mark them by colors to help finding issues with duration, channels, RMS, mode (CBR, ABR), bitrate. increase upload limit to 400 MB for audio --- lib/calcms/audio.pm | 98 ++++++ lib/calcms/playout.pm | 105 ++++++ website/agenda/planung/audio_recordings.cgi | 36 +- website/agenda/planung/calendar.cgi | 321 +++++++++++------- website/agenda/planung/css/admin.css | 1 + .../agenda/planung/css/audio_recordings.css | 11 + website/agenda/planung/css/calendar.css | 15 + website/agenda/planung/js/audio_recordings.js | 4 +- website/agenda/planung/playout.cgi | 1 - website/agenda/planung/show-playout.cgi | 73 ++-- .../planung/templates/show_playout.html | 2 +- .../templates/upload_audio_recordings.html | 6 +- 12 files changed, 485 insertions(+), 188 deletions(-) create mode 100644 lib/calcms/audio.pm diff --git a/lib/calcms/audio.pm b/lib/calcms/audio.pm new file mode 100644 index 0000000..177bdc4 --- /dev/null +++ b/lib/calcms/audio.pm @@ -0,0 +1,98 @@ +package audio; +use warnings; +use strict; + +sub durationToSeconds($) { + my $duration = shift; + + if ( $duration =~ /(\d+):(\d\d):(\d\d).(\d\d)/ ) { + return $1 * 3600 + $2 * 60 + $3 + $4 / 100; + } + return $duration; +} + +sub formatDuration($$$) { + my $audioDuration = shift; + my $eventDuration = shift; + my $value = shift; + + return '' unless $audioDuration; + return '' unless $eventDuration; + return '' unless $value; + + $audioDuration = durationToSeconds($audioDuration); + $eventDuration = durationToSeconds($eventDuration); + + my $delta = 100 * $audioDuration / $eventDuration; + my $class = "ok"; + my $title = ''; + if ( $delta > 101 ) { + $class = "warn"; + $title = sprintf( + qq{ title="file is too long! It should be %d minutes, but is %d"}, + $eventDuration / 60, + $audioDuration / 60 + ); + } + if ( $delta < 99.99 ) { + $class = "error"; + $title = sprintf( + qq{ title="file is too short! should be %d minutes, but is %d"}, + $eventDuration / 60, + $audioDuration / 60 + ); + + } + + return sprintf( qq{<div class="%s"%s>%s</div>}, $class, $title, $value ); +} + +sub formatChannels($) { + my $channels = shift; + return '' unless $channels; + my $class = "ok"; + $class = "error" if $channels != 2; + return sprintf( qq{<div class="%s">%d ch.</div>}, $class, $channels ); +} + +sub formatSamplingRate($) { + my $samplingRate = shift; + return '' unless $samplingRate; + my $class = "ok"; + $class = "error" if $samplingRate != 44100; + return sprintf( qq{<div class="%s">%s</div>}, $class, $samplingRate ); +} + +sub formatBitrate($) { + my $bitrate = shift; + return '' unless $bitrate; + my $class = 'ok'; + $class = 'warn' if $bitrate >= 200; + $class = 'error' if $bitrate < 192; + return sprintf( qq{<div class="%s">%s kBit/s</div>}, $class, $bitrate ); +} + +sub formatBitrateMode($) { + my $mode = shift; + return '' unless $mode; + my $class = 'ok'; + $class = 'error' if $mode ne 'CBR'; + return sprintf( qq{<div class="%s">%s</div>}, $class, $mode ); +} + +sub formatLoudness { + my $value = shift; + return '' unless $value; + + $value = sprintf( "%.1f", $value ); + my $class = 'ok'; + $class = 'warn' if $value > -18.5; + $class = 'error' if $value > -16.0; + $class = 'warn' if $value < -24.0; + $class = 'error' if $value < -27.0; + + return qq{<div class="$class">$value dB</div>}; +} + +# do not delete this line +1; diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index 8164b1b..d32e6ca 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -27,6 +27,111 @@ sub get_columns ($) { return $columns; } + + +# get playout entries +sub get_scheduled($$) { + my $config = shift; + my $condition = shift; + + return undef unless defined $condition->{studio_id}; + + my $date_range_include = 0; + $date_range_include = 1 + if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 ); + + my $dbh = db::connect($config); + + my @conditions = (); + my @bind_values = (); + + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'p.project_id=?'; + push @bind_values, $condition->{project_id}; + } + + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'p.studio_id=?'; + push @bind_values, $condition->{studio_id}; + } + + if ( ( defined $condition->{start_at} ) && ( $condition->{start_at} ne '' ) ) { + push @conditions, 'p.start=?'; + push @bind_values, $condition->{start_at}; + } + + if ( ( defined $condition->{from} ) && ( $condition->{from} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'p.end_date>=?'; + push @bind_values, $condition->{from}; + } else { + push @conditions, 'p.start_date>=?'; + push @bind_values, $condition->{from}; + } + } + + if ( ( defined $condition->{till} ) && ( $condition->{till} ne '' ) ) { + if ( $date_range_include == 1 ) { + push @conditions, 'p.start_date<=?'; + push @bind_values, $condition->{till}; + } else { + push @conditions, 'p.end_date<=?'; + push @bind_values, $condition->{till}; + } + } + + my $limit = ''; + if ( ( defined $condition->{limit} ) && ( $condition->{limit} ne '' ) ) { + $limit = 'limit ' . $condition->{limit}; + } + + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if scalar @conditions > 0; + + my $order = 'start'; + $order = $condition->{order} if ( defined $condition->{order} ) && ( $condition->{order} ne '' ); + + my $query = qq{ + select date(p.start) start_date + , date(p.end) end_date + , dayname(p.start) weekday + , p.start_date day + , p.start + , p.end + , p.studio_id + , p.project_id + , p.duration + , p.file + , p.errors + , p.channels + , p.format + , p.format_version + , p.format_profile + , p.format_settings + , p.stream_size + , p.bitrate + , p.bitrate_mode + , p.sampling_rate + , p.writing_library + , p.rms_left + , p.rms_right + , p.rms_image + , p.modified_at + , p.updated_at + , TIMESTAMPDIFF(SECOND,e.start,e.end) "event_duration" + from calcms_playout p left join calcms_events e + on p.start = e.start + $conditions + order by $order + $limit + }; + + #print STDERR Dumper($query).Dumper(\@bind_values); + my $entries = db::get( $dbh, $query, \@bind_values ); + return $entries; +} + + # get playout entries sub get($$) { my $config = shift; diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index 0288306..ac1d80e 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -21,6 +21,7 @@ use series(); use template(); use audio_recordings(); use events(); +use audio(); use time(); #$|=1; @@ -33,7 +34,7 @@ our $debug = $config->{system}->{debug}; my $base_dir = $config->{locations}->{base_dir}; my $tempDir = '/var/tmp'; -my $uploadLimit = 300_000_000; +my $uploadLimit = 400_000_000; my %params = (); my $error = ''; @@ -108,7 +109,8 @@ if ( $params->{action} eq 'upload' ) { showAudioRecordings( $config, $request ); print STDERR "$0 ERROR: " . $params->{error} . "\n" if $params->{error} ne ''; -$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); +$params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); template::process( $config, 'print', $params->{template}, $params ); exit; @@ -302,10 +304,14 @@ sub showAudioRecordings { $recording->{mastered} = $recording->{mastered} ? 'yes' : 'no'; $recording->{eventDuration} = getDuration( $recording->{eventDuration} ); - $recording->{audioDuration} = getDuration( $recording->{audioDuration} ); + $recording->{audioDuration} = audio::formatDuration( + $recording->{audioDuration}, + $recording->{eventDuration}, + getDuration( $recording->{audioDuration} ) + ); - $recording->{rmsLeft} ||= '-'; - $recording->{rmsRight} ||= '-'; + $recording->{rmsLeft} = audio::formatLoudness( $recording->{rmsLeft} ); + $recording->{rmsRight} = audio::formatLoudness( $recording->{rmsRight} ); } my $now = time(); @@ -368,7 +374,8 @@ sub uploadFile { print STDERR "tempFile=$tempFile\n"; my $start = time(); - open DAT, '>', $tempFile or return { error => 'could not save upload. ' . $! . " " . $tempFile }; + open DAT, '>', $tempFile + or return { error => 'could not save upload. ' . $! . " " . $tempFile }; binmode DAT; my $size = 0; my $data = ''; @@ -495,14 +502,18 @@ sub checkFilename { if ( $filename =~ /\.([a-zA-Z]{3,5})$/ ) { my $extension = lc $1; unless ( grep( /$extension/, @validExtensions ) ) { - return { error => 'Following file formats are supported: ' . join( ",", @validExtensions ) . '!' }; + return {error => 'Following file formats are supported: ' + . join( ",", @validExtensions ) + . '!' }; } return { extension => $extension, error => '' }; } - return { error => 'Not matching file extension found! Supported are: ' . join( ",", @validExtensions ) . '!' }; + return {error => 'Not matching file extension found! Supported are: ' + . join( ",", @validExtensions ) + . '!' }; } # return event duration in seconds @@ -534,7 +545,8 @@ sub getEventDuration { print STDERR "getEventDuration: no event found with event_id=$eventId\n"; } my $event = $events->[0]; - my $duration = time::get_duration_seconds( $event->{start}, $event->{end}, $config->{date}->{time_zone} ); + my $duration = + time::get_duration_seconds( $event->{start}, $event->{end}, $config->{date}->{time_zone} ); return $duration; } @@ -544,11 +556,13 @@ sub check_params { my $checked = {}; $checked->{error} = ''; - $checked->{template} = template::check( $config, $params->{template}, 'upload_audio_recordings' ); + $checked->{template} = + template::check( $config, $params->{template}, 'upload_audio_recordings' ); #print Dumper($params); #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) { + for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) + { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 199770c..297cfce 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -29,6 +29,7 @@ use work_dates(); use playout(); use user_settings(); use audio_recordings(); +use audio(); binmode STDOUT, ":utf8"; @@ -93,7 +94,8 @@ if ( #process header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); + template::process( $config, 'print', template::check( $config, 'default.html' ), + $headerParams ); print q{ <link href="css/jquery-ui-timepicker.css" type="text/css" rel="stylesheet" /> <link rel="stylesheet" href="css/calendar.css" type="text/css" /> @@ -167,7 +169,7 @@ sub showCalendar { my $start_of_day = $cal_options->{start_of_day}; my $end_of_day = $cal_options->{end_of_day}; - my $params = $request->{params}->{checked}; + my $params = $request->{params}->{checked}; my $permissions = $request->{permissions} || {}; unless ( $permissions->{read_series} == 1 ) { uac::permissions_denied('read_series'); @@ -180,9 +182,11 @@ sub showCalendar { $params->{range} = 28 unless defined $params->{range}; #get colors from user settings - print user_settings::getColorCss( $config, { user => $params->{presets}->{user} } ) if $params->{part} == 0; + print user_settings::getColorCss( $config, { user => $params->{presets}->{user} } ) + if $params->{part} == 0; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,calendar' } ); + $params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'all,calendar' } ); my $language = $user_settings->{language} || 'en'; $params->{language} = $language; print localization::getJavascript( $params->{loc} ) if $params->{part} == 0; @@ -367,7 +371,7 @@ sub showCalendar { #get playout delete $options->{exclude}; - my $playout_dates = playout::get( $config, $options ); + my $playout_dates = playout::get_scheduled( $config, $options ); $id = 0; for my $date (@$playout_dates) { my $format = undef; @@ -377,7 +381,8 @@ sub showCalendar { . ( $date->{'format_version'} || '' ) . " " . ( $date->{'format_profile'} || '' ); $format =~ s/MPEG Audio Version 1 Layer 3/MP3/g; - $format .= ' ' . ( $date->{'format_settings'} || '' ) if defined $date->{'format_settings'}; + $format .= ' ' . ( $date->{'format_settings'} || '' ) + if defined $date->{'format_settings'}; $format .= '<br>'; } @@ -386,32 +391,44 @@ sub showCalendar { $date->{series_id} = -1; $date->{event_id} = $id; $date->{title} = ''; - $date->{title} .= '<b>errors</b>: ' . $date->{errors} . '<br>' if defined $date->{errors}; - $date->{title} .= formatDuration( $date->{duration} ) . "<br>" if defined $date->{duration}; - $date->{title} .= formatLoudness( "L:", $date->{rms_left} ) . ', ' if defined $date->{rms_left}; - $date->{title} .= formatLoudness( "R:", $date->{rms_right} ) . '<br>' if defined $date->{rms_right}; - $date->{title} .= formatBitrate( $date->{bitrate} ) . ' ' . $date->{bitrate_mode} . '<br>' - if defined $date->{bitrate}; - $date->{title} .= '<b>replay gain</b> ' . sprintf( "%.1f", $date->{replay_gain} ) . '<br>' + $date->{title} .= '<b>errors</b>: ' . $date->{errors} . '<br>' + if defined $date->{errors}; + $date->{title} .= audio::formatDuration( + $date->{duration}, + $date->{event_duration}, + sprintf( "duration: %.1g h", $date->{duration} / 3600 ) . "<br>" + ) if defined $date->{duration}; + $date->{title} .= "L:" . audio::formatLoudness( $date->{rms_left} ) . ', ' + if defined $date->{rms_left}; + $date->{title} .= "R:" . audio::formatLoudness( $date->{rms_right} ) . '<br>' + if defined $date->{rms_right}; + $date->{title} .= audio::formatBitrate( $date->{bitrate} ) if defined $date->{bitrate}; + $date->{title} .= ' ' . audio::formatBitrateMode( $date->{bitrate_mode} ) . '<br>' + if defined $date->{bitrate_mode}; + $date->{title} .= + '<b>replay gain</b> ' . sprintf( "%.1f", $date->{replay_gain} ) . '<br>' if defined $date->{replay_gain}; - $date->{title} .= ( ( $date->{sampling_rate} || '0' ) / 1000 ) . ' kHz<br>' + $date->{title} .= audio::formatSamplingRate( $date->{sampling_rate} ) if defined $date->{sampling_rate}; - $date->{title} .= ( $date->{channels} || '' ) . ' channels<br>' if defined $date->{channels}; + $date->{title} .= audio::formatChannels( $date->{channels} ) . '<br>' + if defined $date->{channels}; $date->{title} .= int( ( $date->{'stream_size'} || '0' ) / ( 1024 * 1024 ) ) . 'MB<br>' if defined $date->{'stream_size'}; $date->{title} .= $format if defined $format; $date->{title} .= '<b>library</b>: ' . ( $date->{writing_library} || '' ) . '<br>' if defined $date->{'writing_library'}; - $date->{title} .= '<b>path</b>: ' . ( $date->{file} || '' ) . '<br>' if defined $date->{file}; + $date->{title} .= '<b>path</b>: ' . ( $date->{file} || '' ) . '<br>' + if defined $date->{file}; $date->{title} .= '<b>updated_at</b>: ' . ( $date->{updated_at} || '' ) . '<br>' if defined $date->{updated_at}; $date->{title} .= '<b>modified_at</b>: ' . ( $date->{modified_at} || '' ) . '<br>' if defined $date->{modified_at}; - #print STDERR Dumper($date) if $date->{file}=~/180503/; - #$date->{title}.= '<b>rms_image</b>: ' .($date->{rms_image}||'').'<br>' if defined $date->{rms_image}; +#print STDERR Dumper($date) if $date->{file}=~/180503/; +#$date->{title}.= '<b>rms_image</b>: ' .($date->{rms_image}||'').'<br>' if defined $date->{rms_image}; - $date->{rms_image} = URI::Escape::uri_unescape( $date->{rms_image} ) if defined $date->{rms_image}; + $date->{rms_image} = URI::Escape::uri_unescape( $date->{rms_image} ) + if defined $date->{rms_image}; $date->{origStart} = $date->{start}; @@ -431,6 +448,7 @@ sub showCalendar { $date = events::calc_dates( $config, $date ); if ( defined $events_by_start->{ $date->{start} } ) { $events_by_start->{ $date->{start} }->{duration} = $date->{duration} || 0; + $events_by_start->{ $date->{start} }->{event_duration} = $date->{event_duration} || 0; $events_by_start->{ $date->{start} }->{rms_left} = $date->{rms_left} || 0; $events_by_start->{ $date->{start} }->{rms_right} = $date->{rms_right} || 0; $events_by_start->{ $date->{start} }->{playout_modified_at} = $date->{modified_at}; @@ -468,7 +486,8 @@ sub showCalendar { #separate by day (e.g. to 6 pm) my $events_by_day = {}; for my $event (@$events) { - my $day = time::datetime_to_date( time::add_hours_to_datetime( $event->{start}, -$start_of_day ) ); + my $day = + time::datetime_to_date( time::add_hours_to_datetime( $event->{start}, -$start_of_day ) ); push @{ $events_by_day->{$day} }, $event; } @@ -506,7 +525,9 @@ sub showCalendar { next unless defined $event->{uploaded_at}; #print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; - next if ( defined $event->{playout_updated_at} ) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); + next + if ( defined $event->{playout_updated_at} ) + && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); #print STDERR Dumper($event); #$event->{upload} ='pending' ; @@ -520,7 +541,8 @@ sub showCalendar { print qq{<div id="calendarTable"> </div>}; } if ( $params->{part} == 1 ) { - calcCalendarTable( $config, $permissions, $params, $calendar, $events_by_day, $cal_options ); + calcCalendarTable( $config, $permissions, $params, $calendar, $events_by_day, + $cal_options ); printTableHeader( $config, $permissions, $params, $cal_options ); printTableBody( $config, $permissions, $params, $cal_options ); } @@ -542,46 +564,6 @@ sub showCalendar { } } -sub formatLoudness { - my $label = shift; - my $value = shift; - return '' unless defined $value; - return '' if $value == 0; - return '' if $value eq ''; - - #print STDERR "'$value'\n"; - $value = sprintf( "%d", $value + 0.5 ); - my $class = 'ok'; - $class = 'warn' if $value > -18.5; - $class = 'error' if $value > -16.0; - $class = 'warn' if $value < -24.0; - $class = 'error' if $value < -27.0; - return qq{<span class="$class">$label} . $value . qq{dB</span>}; -} - -sub formatDuration { - my $duration = shift; - return '' unless defined $duration; - return '' if $duration eq ''; - my $result = int( ( $duration + 30.5 ) % 60 ) - 30; - my $class = "ok"; - $class = "warn" if abs($result) > 1; - $class = "error" if abs($result) > 2; - return sprintf( qq{<span class="%s">%ds</span>}, $class, $duration ); -} - -sub formatBitrate { - my $bitrate = shift; - return '' if $bitrate eq ''; - if ( $bitrate >= 200 ) { - return qq{<span class="warn">$bitrate</span>}; - } elsif ( $bitrate < 190 ) { - return qq{<span class="error">$bitrate</span>}; - } else { - return qq{<span class="ok">$bitrate</span>}; - } -} - sub debugDate { my $date = shift; $date->{program} = '' unless defined $date->{program}; @@ -592,7 +574,7 @@ sub debugDate { my $da = ( $date->{start_date} || '' ) . " " . ( $date->{end_date} || '' ); my $type = "schedule:" . ( $date->{schedule} || "" ) . " grid:" . ( $date->{grid} || "" ); - #print STDERR "$dt $da count:$date->{splitCount} $type $date->{program}-$date->{series_name}-$date->{title}\n"; +#print STDERR "$dt $da count:$date->{splitCount} $type $date->{program}-$date->{series_name}-$date->{title}\n"; } # break dates at start_of_day @@ -730,9 +712,9 @@ sub showEventList { my $events_by_day = shift; my $language = $params->{language}; - my $rerunIcon = '<i class="fas fa-redo" title="$params->{loc}->{label_rerun}"></i>'; - my $liveIcon = '<i class="fas fa-microphone-alt" title="$params->{loc}->{label_live}"></i>'; - my $draftIcon = '<i class="fas fa-drafting-compass" title="$params->{loc}->{label_draft}"></i>'; + my $rerunIcon = '<i class="fas fa-redo" title="$params->{loc}->{label_rerun}"></i>'; + my $liveIcon = '<i class="fas fa-microphone-alt" title="$params->{loc}->{label_live}"></i>'; + my $draftIcon = '<i class="fas fa-drafting-compass" title="$params->{loc}->{label_draft}"></i>'; my $archiveIcon = '<i class="fas fa-archive" title="$params->{loc}->{label_archived}"></i>'; my $out = ''; @@ -785,14 +767,23 @@ sub showEventList { if ( $class =~ /(event|schedule)/ ) { $class .= ' scheduled' if defined $event->{scheduled}; $class .= ' error' if defined $event->{error}; - $class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) ); + $class .= ' no_series' + if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) ); - for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) { - $class .= ' ' . $filter if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) ); + for my $filter ( + 'rerun', 'archived', 'playout', 'published', + 'live', 'disable_event_sync', 'draft' + ) + { + $class .= ' ' . $filter + if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) ); } - $class .= ' preproduced' unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) ); - $class .= ' no_playout' unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) ); - $class .= ' no_rerun' unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) ); + $class .= ' preproduced' + unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) ); + $class .= ' no_playout' + unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) ); + $class .= ' no_rerun' + unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) ); } $event->{start} ||= ''; @@ -874,7 +865,8 @@ sub showEventList { ); $out .= q{<div id="event_no_series" style="display:none">}; $out .= addEventsToSeries( $series, $params ) - if ( defined $permissions->{assign_series_events} ) && ( $permissions->{assign_series_events} eq '1' ); + if ( defined $permissions->{assign_series_events} ) + && ( $permissions->{assign_series_events} eq '1' ); $out .= createSeries($params) if ( defined $permissions->{create_series} ) && ( $permissions->{create_series} eq '1' ); $out .= q{</div>}; @@ -1140,20 +1132,29 @@ sub printTableBody { $content = $event->{start} if $day eq '0'; $event->{project_id} = $project_id unless defined $event->{project_id}; $event->{studio_id} = $studio_id unless defined $event->{studio_id}; - $event->{content} = $content unless ( ( defined $event->{class} ) && ( $event->{class} eq 'time now' ) ); - $event->{class} = 'event' if $day ne '0'; - $event->{class} = 'grid' if ( ( defined $event->{grid} ) && ( $event->{grid} == 1 ) ); - $event->{class} = 'schedule' if ( ( defined $event->{schedule} ) && ( $event->{schedule} == 1 ) ); - $event->{class} = 'work' if ( ( defined $event->{work} ) && ( $event->{work} == 1 ) ); - $event->{class} = 'play' if ( ( defined $event->{play} ) && ( $event->{play} == 1 ) ); + $event->{content} = $content + unless ( ( defined $event->{class} ) && ( $event->{class} eq 'time now' ) ); + $event->{class} = 'event' if $day ne '0'; + $event->{class} = 'grid' if ( ( defined $event->{grid} ) && ( $event->{grid} == 1 ) ); + $event->{class} = 'schedule' + if ( ( defined $event->{schedule} ) && ( $event->{schedule} == 1 ) ); + $event->{class} = 'work' if ( ( defined $event->{work} ) && ( $event->{work} == 1 ) ); + $event->{class} = 'play' if ( ( defined $event->{play} ) && ( $event->{play} == 1 ) ); if ( $event->{class} eq 'event' ) { $event->{content} .= '<br><span class="weak">'; - $event->{content} .= formatDuration( $event->{duration} ) . ' ' if defined $event->{duration}; - $event->{content} .= formatLoudness( 'L', $event->{rms_left} ) . ' ' if defined $event->{rms_left}; - $event->{content} .= formatLoudness( 'R', $event->{rms_right} ) if defined $event->{rms_right}; + $event->{content} .= + audio::formatDuration( $event->{duration}, $event->{event_duration}, + sprintf("%d min", (($event->{duration}+0.5)/60)) ) + . ' ' + if defined $event->{duration}; + $event->{content} .= 'L' . audio::formatLoudness( $event->{rms_left} ) . ' ' + if defined $event->{rms_left}; + $event->{content} .= + 'R' . audio::formatLoudness( $event->{rms_right} ) + if defined $event->{rms_right}; - #$event->{content} .= formatBitrate( $event->{bitrate} ) if defined $event->{bitrate}; + #$event->{content} .= formatBitrate( $event->{bitrate} ) if defined $event->{bitrate}; $event->{content} .= '</span>'; } @@ -1205,9 +1206,11 @@ sub printSeries { if ( ( $params->{studio_id} ne '' ) && ( $params->{studio_id} ne '-1' ) ) { $out .= q{<div id="event_no_series" style="display:none">}; $out .= addEventsToSeries( $series, $params ) - if ( ( defined $permissions->{assign_series_events} ) && ( $permissions->{assign_series_events} eq '1' ) ); + if ( ( defined $permissions->{assign_series_events} ) + && ( $permissions->{assign_series_events} eq '1' ) ); $out .= createSeries($params) - if ( ( defined $permissions->{create_series} ) && ( $permissions->{create_series} eq '1' ) ); + if ( ( defined $permissions->{create_series} ) + && ( $permissions->{create_series} eq '1' ) ); $out .= q{</div>}; } @@ -1283,7 +1286,14 @@ sub addSeries { $name = $params->{loc}->{single_events} if $serie->{has_single_events} eq '1'; $title = ' - ' . $title if $title ne ''; - $out .= '<option value="' . $id . '" duration="' . $duration . '">' . $name . $title . '</option>' . "\n"; + $out .= + '<option value="' + . $id + . '" duration="' + . $duration . '">' + . $name + . $title + . '</option>' . "\n"; } #print Dumper($series); @@ -1338,7 +1348,14 @@ sub addEventsToSeries { my $title = $serie->{title} || ''; $name = $params->{loc}->{single_events} if $serie->{has_single_events} == 1; $title = ' - ' . $title if $title ne ''; - $out .= '<option value="' . $id . '" duration="' . $duration . '">' . $name . $title . '</option>' . "\n"; + $out .= + '<option value="' + . $id + . '" duration="' + . $duration . '">' + . $name + . $title + . '</option>' . "\n"; } #print Dumper($series); @@ -1416,16 +1433,22 @@ sub print_event { my $class = $event->{class} || ''; my $showIcons = 0; if ( $class =~ /(event|schedule)/ ) { - $class .= ' scheduled' if defined $event->{scheduled}; - $class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) ); + $class .= ' scheduled' if defined $event->{scheduled}; + $class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) ); $class .= " error x$event->{error}" if defined $event->{error}; - for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) { - $class .= ' ' . $filter if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) ); + for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', + 'draft' ) + { + $class .= ' ' . $filter + if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) ); } - $class .= ' preproduced' unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) ); - $class .= ' no_playout' unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) ); - $class .= ' no_rerun' unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) ); + $class .= ' preproduced' + unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) ); + $class .= ' no_playout' + unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) ); + $class .= ' no_rerun' + unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) ); $showIcons = 1; } @@ -1626,8 +1649,9 @@ sub printToolbar { # my $options=[]; for my $range ( - $params->{loc}->{label_month}, $params->{loc}->{label_4_weeks}, $params->{loc}->{label_2_weeks}, - $params->{loc}->{label_1_week}, $params->{loc}->{label_day} + $params->{loc}->{label_month}, $params->{loc}->{label_4_weeks}, + $params->{loc}->{label_2_weeks}, $params->{loc}->{label_1_week}, + $params->{loc}->{label_day} ) { my $value = $ranges->{$range} || ''; @@ -1657,14 +1681,17 @@ sub printToolbar { <select id="filter" name="filter" onchange="reloadCalendar()"> }; - for - my $filter ( 'no markup', 'conflicts', 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', - 'draft' ) + for my $filter ( + 'no markup', 'conflicts', 'rerun', 'archived', + 'playout', 'published', 'live', 'disable_event_sync', + 'draft' + ) { my $key = $filter; $key =~ s/ /_/g; - $toolbar .= qq{<option value="$filter">} . $params->{loc}->{ 'label_' . $key } . '</option>'; + $toolbar .= + qq{<option value="$filter">} . $params->{loc}->{ 'label_' . $key } . '</option>'; } $toolbar .= q{ @@ -1680,7 +1707,8 @@ sub printToolbar { <input type="hidden" name="list" value="1"> <input class="search" name="search" value="$params->{search}" placeholder="} . $params->{loc}->{button_search} . qq{"> - <button type="submit" name="action" value="search">} . $params->{loc}->{button_search} . qq{</button> + <button type="submit" name="action" value="search">} + . $params->{loc}->{button_search} . qq{</button> </form> }; @@ -1717,11 +1745,16 @@ sub getCalendar { my $next = ''; if ( $range eq 'month' ) { $previous = - time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( months => 1 )->set_day(1)->date(); - $next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( months => 1 )->set_day(1)->date(); + time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( months => 1 ) + ->set_day(1)->date(); + $next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( months => 1 ) + ->set_day(1)->date(); } else { - $previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( days => $range )->date(); - $next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( days => $range )->date(); + $previous = time::get_datetime( $from_date, $config->{date}->{time_zone} ) + ->subtract( days => $range )->date(); + $next = + time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( days => $range ) + ->date(); } my ( $year, $month, $day ) = split( /\-/, $from_date ); my $monthName = time::getMonthNamesShort($language)->[ $month - 1 ] || ''; @@ -1752,7 +1785,8 @@ sub getFromDate { if ( $params->{range} eq '28' ) { #get start of 4 week period - $date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )->ymd(); + $date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' ) + ->ymd(); } if ( $params->{range} eq 'month' ) { @@ -1775,17 +1809,19 @@ sub getTillDate { $date = DateTime->now( time_zone => $config->{date}->{time_zone} )->date(); } if ( $params->{range} eq '28' ) { - $date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )->ymd(); + $date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' ) + ->ymd(); } if ( $params->{range} eq 'month' ) { #get last day of month - return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)->add( months => 1 ) - ->subtract( days => 1 )->date(); + return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1) + ->add( months => 1 )->subtract( days => 1 )->date(); } #add range to date - return time::get_datetime( $date, $config->{date}->{time_zone} )->add( days => $params->{range} )->date(); + return time::get_datetime( $date, $config->{date}->{time_zone} ) + ->add( days => $params->{range} )->date(); } sub getSeriesEvents { @@ -1816,8 +1852,8 @@ sub getSeriesEvents { $request2->{params}->{checked}->{published} = 'all'; $request2->{params}->{checked}->{draft} = '1' if $params->{list} == 1; - #delete $request2->{params}->{checked}->{locations_to_exclude} - # if ( ( $params->{studio_id} == -1 ) && ( defined $request2->{params}->{checked}->{locations_to_exclude} ) ); +#delete $request2->{params}->{checked}->{locations_to_exclude} +# if ( ( $params->{studio_id} == -1 ) && ( defined $request2->{params}->{checked}->{locations_to_exclude} ) ); my $events = events::get( $config, $request2 ); @@ -1838,7 +1874,8 @@ sub getSeriesEvents { for my $event (@$events) { $event->{project_id} = $options->{project_id} unless defined $event->{project_id}; - $event->{studio_id} = $studio_id_by_location->{ $event->{location} } unless defined $event->{studio_id}; + $event->{studio_id} = $studio_id_by_location->{ $event->{location} } + unless defined $event->{studio_id}; } return $events; @@ -1862,8 +1899,9 @@ sub check_params { $checked->{part} = 0; $checked->{list} = 0; for my $param ( - 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', - 'event_id', 'part', 'list', 'day_start' + 'id', 'project_id', 'studio_id', 'default_studio_id', + 'user_id', 'series_id', 'event_id', 'part', + 'list', 'day_start' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { @@ -1871,7 +1909,8 @@ sub check_params { } } - $checked->{day_start} = $config->{date}->{day_starting_hour} unless defined $checked->{day_start}; + $checked->{day_start} = $config->{date}->{day_starting_hour} + unless defined $checked->{day_start}; $checked->{day_start} %= 24; if ( defined $checked->{studio_id} ) { @@ -1916,7 +1955,11 @@ sub check_params { $checked->{$param} = time::check_date( $params->{$param} ); } - for my $param ( 'series_name', 'title', 'excerpt', 'content', 'program', 'category', 'image', 'user_content' ) { + for my $param ( + 'series_name', 'title', 'excerpt', 'content', + 'program', 'category', 'image', 'user_content' + ) + { if ( defined $params->{$param} ) { #$checked->{$param}=uri_unescape(); @@ -1928,7 +1971,9 @@ sub check_params { #actions and roles if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(add_user|remove_user|delete|save|details|show|edit_event|save_event)$/ ) { + if ( $params->{action} =~ + /^(add_user|remove_user|delete|save|details|show|edit_event|save_event)$/ ) + { $checked->{action} = $params->{action}; } } @@ -1936,3 +1981,43 @@ sub check_params { return $checked; } +__DATA__ +sub formatLoudness { + my $label = shift; + my $value = shift; + return '' unless defined $value; + return '' if $value == 0; + return '' if $value eq ''; + + #print STDERR "'$value'\n"; + $value = sprintf( "%d", $value + 0.5 ); + my $class = 'ok'; + $class = 'warn' if $value > -18.5; + $class = 'error' if $value > -16.0; + $class = 'warn' if $value < -24.0; + $class = 'error' if $value < -27.0; + return qq{<span class="$class">$label} . $value . qq{dB</span>}; +} + +sub formatDuration { + my $duration = shift; + return '' unless defined $duration; + return '' if $duration eq ''; + my $result = int( ( $duration + 30.5 ) % 60 ) - 30; + my $class = "ok"; + $class = "warn" if abs($result) > 1; + $class = "error" if abs($result) > 2; + return sprintf( qq{<span class="%s">%ds</span>}, $class, $duration ); +} + +sub formatBitrate { + my $bitrate = shift; + return '' if $bitrate eq ''; + if ( $bitrate >= 200 ) { + return qq{<span class="warn">$bitrate</span>}; + } elsif ( $bitrate < 190 ) { + return qq{<span class="error">$bitrate</span>}; + } else { + return qq{<span class="ok">$bitrate</span>}; + } +} diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index ea9ffff..e586684 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -49,6 +49,7 @@ body #content{ div{ transition: background-color 0.5s linear; + transition: z-index 2s linear; } #selectImage #content{ diff --git a/website/agenda/planung/css/audio_recordings.css b/website/agenda/planung/css/audio_recordings.css index a2ac4e3..9073b1c 100644 --- a/website/agenda/planung/css/audio_recordings.css +++ b/website/agenda/planung/css/audio_recordings.css @@ -26,3 +26,14 @@ th{ border:0; box-shadow:#888 2px 2px 1px 1px; } + + +#content div.ok, +#content div.warn, +#content div.error{ + padding-top:3px; + padding-bottom:3px; + margin:1px; + border-radius:4px; + text-align:center; +} diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index eef7b7a..31c9383 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -443,6 +443,11 @@ div#toolbar input.search{ display:none; } +#calendar div.event:hover { + min-height: 4rem!important; + z-index:99; +} + #calendar div.ui-draggable-dragging{ z-index:99; cursor:move; @@ -497,3 +502,13 @@ div.play .error{ padding-right:32px; } + +#content div.ok, +#content div.warn, +#content div.error{ + padding-top:3px; + padding-bottom:3px; + margin:1px; + border-radius:4px; + text-align:center; +} diff --git a/website/agenda/planung/js/audio_recordings.js b/website/agenda/planung/js/audio_recordings.js index f7b42d5..670c117 100644 --- a/website/agenda/planung/js/audio_recordings.js +++ b/website/agenda/planung/js/audio_recordings.js @@ -18,9 +18,9 @@ function changeFile(fileInput){ var file = fileInput.files[0]; var size = file.size / (1000*1000); $('#uploadSize').html(size + " MB"); - if (size > 300){ + if (size > 400){ $('#uploadButton').hide(); - showError("file is too large. maximum size is 300 MB! Please use MP3, 192 kHz, CBR, 44100 Hz, 16bit"); + showError("file is too large. maximum size is 400 MB! Please use MP3, 192 kHz, CBR, 44100 Hz, 16bit"); }else{ $('#uploadButton').show(); } diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index e7bab0a..88fa195 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -37,7 +37,6 @@ return if ( ( !defined $user ) || ( $user eq '' ) ); print "Content-type:text/html; charset=UTF-8;\n\n"; -#print STDERR $params->{project_id}."\n"; my $user_presets = uac::get_user_presets( $config, { diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 550467e..16c8dbd 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -16,6 +16,8 @@ use studios; use series; use template; use playout; +use audio; + binmode STDOUT, ":utf8"; my $r = shift; @@ -52,7 +54,8 @@ $params = $request->{params}->{checked}; unless ( params::isJson() ) { my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); + template::process( $config, 'print', template::check( $config, 'default.html' ), + $headerParams ); } return unless uac::check( $config, $params, $user_presets ) == 1; @@ -68,7 +71,8 @@ $params->{error} = $error || ''; showPlayout( $config, $request ); print STDERR "$0 ERROR: " . $params->{error} . "\n" if $params->{error} ne ''; -$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); +$params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); template::process( $config, 'print', $params->{template}, $params ); exit; @@ -89,7 +93,7 @@ sub showPlayout { my $today = time::time_to_date( time() ); my $startDate = time::add_days_to_date( $today, -14 ); - my $events = playout::get( + my $events = playout::get_scheduled( $config, { project_id => $params->{project_id}, @@ -110,10 +114,18 @@ sub showPlayout { $event->{stream_size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; $event->{duration} =~ s/(\d\.\d)(\d+)$/$1/g; $event->{duration} =~ s/(\d)\.0/$1/g; - $event->{rms_left} = formatLoudness( $event->{rms_left} ); - $event->{rms_right} = formatLoudness( $event->{rms_right} ); - $event->{bitrate} = formatBitrate($event); - $event->{duration} = formatDuration($event); + $event->{rms_left} = audio::formatLoudness( $event->{rms_left} ); + $event->{rms_right} = audio::formatLoudness( $event->{rms_right} ); + $event->{bitrate} = audio::formatBitrate( $event->{bitrate} ); + $event->{bitrate_mode} = audio::formatBitrateMode( $event->{bitrate_mode} ); + $event->{sampling_rate} = audio::formatSamplingRate( $event->{sampling_rate} ); + $event->{duration} = audio::formatDuration( + $event->{duration}, + $event->{event_duration}, + sprintf( "%.1g h", $event->{duration} / 3600) + ); + $event->{channels} = audio::formatChannels( $event->{channels} ); + if ( $event->{start} lt $today ) { $event->{class} = "past"; } @@ -122,50 +134,6 @@ sub showPlayout { $params->{events} = $events; } -sub formatDuration { - my $event = $_[0]; - my $duration = $event->{duration}; - return '' unless defined $duration; - return '' if $duration eq ''; - my $result = ( ( $duration + 30 ) % 60 ) - 30; - my $class = "ok"; - $class = "warn" if abs($result) > 1; - $class = "error" if abs($result) > 2; - return sprintf( qq{<div class="%s">%.01f</div>}, $class, $duration ); -} - -sub formatBitrate { - my $event = $_[0]; - my $bitrate = $event->{bitrate} || ''; - my $mode = $event->{bitrate_mode} || ''; - if ( $bitrate ne '' ) { - if ( $bitrate >= 200 ) { - $bitrate = '<div class="warn">' . $bitrate . ' ' . $mode . '</div>'; - } elsif ( $bitrate < 190 ) { - $bitrate = '<div class="error">' . $bitrate . ' ' . $mode . '</div>'; - } else { - $bitrate .= ' ' . $mode; - } - } - return $bitrate; -} - -sub formatLoudness { - my $value = shift; - return '' unless defined $value; - return '' if $value == 0; - return '' if $value eq ''; - - $value = sprintf( "%.1f", $value ); - my $class = 'ok'; - $class = 'warn' if $value > -18.5; - $class = 'error' if $value > -16.0; - $class = 'warn' if $value < -24.0; - $class = 'error' if $value < -27.0; - - return qq{<div class="$class">$value dB</div>}; -} - sub check_params { my $config = shift; my $params = shift; @@ -175,7 +143,8 @@ sub check_params { $checked->{template} = template::check( $config, $params->{template}, 'show_playout' ); #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) { + for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) + { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/templates/show_playout.html b/website/agenda/planung/templates/show_playout.html index 423a027..61d4ca2 100644 --- a/website/agenda/planung/templates/show_playout.html +++ b/website/agenda/planung/templates/show_playout.html @@ -33,7 +33,7 @@ <td><TMPL_VAR file></td> <td><TMPL_VAR duration escape="text"></td> <td><TMPL_VAR rms_left escape="text"> <TMPL_VAR rms_right escape="text"></td> - <td><TMPL_VAR bitrate escape="text"> <TMPL_VAR sampling_rate> <TMPL_VAR channels> ch.</td> + <td><TMPL_VAR bitrate escape="text"> <TMPL_VAR bitrate_mode escape="text"> <TMPL_VAR sampling_rate escape="text"> <TMPL_VAR channels escape="text"></td> <td><TMPL_IF rms_image><a href="/agenda_files/playout/<TMPL_VAR rms_image>"><img src="/agenda_files/playout/<TMPL_VAR rms_image>"></a></TMPL_IF></td> <td><TMPL_VAR stream_size></td> <td><TMPL_VAR modified_at></td> diff --git a/website/agenda/planung/templates/upload_audio_recordings.html b/website/agenda/planung/templates/upload_audio_recordings.html index e290e2c..88b1598 100644 --- a/website/agenda/planung/templates/upload_audio_recordings.html +++ b/website/agenda/planung/templates/upload_audio_recordings.html @@ -77,9 +77,9 @@ <td><TMPL_VAR created_at></td> <td><TMPL_VAR size></td> <td><TMPL_VAR eventDuration></td> - <td><TMPL_VAR audioDuration></td> - <td><TMPL_VAR rmsLeft></td> - <td><TMPL_VAR rmsRight></td> + <td><TMPL_VAR audioDuration escape="text"></td> + <td><TMPL_VAR rmsLeft escape="text"></td> + <td><TMPL_VAR rmsRight escape="text"></td> <td><TMPL_VAR processed></td> <td><TMPL_VAR mastered></td> <td><TMPL_VAR modified_at></td> From 79d2d2069d58b3c15b1d5f4b5b1f2697fa6738bf Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 30 Jun 2019 18:29:46 +0200 Subject: [PATCH 066/391] playout improvements * show playout attributes as tabs * mouseover for durations * show only audio uploads for selected project and studio --- lib/calcms/audio.pm | 30 +++++---- lib/calcms/playout.pm | 11 ++-- website/agenda/planung/assign_series.cgi | 3 +- website/agenda/planung/audio_recordings.cgi | 4 +- website/agenda/planung/calendar.cgi | 66 +++++-------------- website/agenda/planung/css/show-playout.css | 15 ++++- website/agenda/planung/show-playout.cgi | 11 ++-- .../planung/templates/show_playout.html | 23 +++---- 8 files changed, 72 insertions(+), 91 deletions(-) diff --git a/lib/calcms/audio.pm b/lib/calcms/audio.pm index 177bdc4..4a0510a 100644 --- a/lib/calcms/audio.pm +++ b/lib/calcms/audio.pm @@ -11,10 +11,11 @@ sub durationToSeconds($) { return $duration; } -sub formatDuration($$$) { +sub formatDuration($$$;$) { my $audioDuration = shift; my $eventDuration = shift; my $value = shift; + my $mouseOver = shift; return '' unless $audioDuration; return '' unless $eventDuration; @@ -23,28 +24,31 @@ sub formatDuration($$$) { $audioDuration = durationToSeconds($audioDuration); $eventDuration = durationToSeconds($eventDuration); - my $delta = 100 * $audioDuration / $eventDuration; my $class = "ok"; - my $title = ''; + my $title = $mouseOver; + + my $delta = 100 * $audioDuration / $eventDuration; + if ( $delta > 101 ) { $class = "warn"; $title = sprintf( - qq{ title="file is too long! It should be %d minutes, but is %d"}, - $eventDuration / 60, - $audioDuration / 60 + qq{file is too long! It should be %d minutes, but is %d}, + ($eventDuration+0.5) / 60, + ($audioDuration+0.5) / 60 ); } + if ( $delta < 99.99 ) { $class = "error"; $title = sprintf( - qq{ title="file is too short! should be %d minutes, but is %d"}, - $eventDuration / 60, - $audioDuration / 60 + qq{file is too short! should be %d minutes, but is %d}, + ($eventDuration+0.5) / 60, + ($audioDuration+0.5) / 60 ); } - return sprintf( qq{<div class="%s"%s>%s</div>}, $class, $title, $value ); + return sprintf( qq{<div class="%s" title="%s">%s</div>}, $class, $title, $value ); } sub formatChannels($) { @@ -60,7 +64,7 @@ sub formatSamplingRate($) { return '' unless $samplingRate; my $class = "ok"; $class = "error" if $samplingRate != 44100; - return sprintf( qq{<div class="%s">%s</div>}, $class, $samplingRate ); + return sprintf( qq{<div class="%s">%s Hz</div>}, $class, $samplingRate ); } sub formatBitrate($) { @@ -82,16 +86,18 @@ sub formatBitrateMode($) { sub formatLoudness { my $value = shift; + my $prefix = shift || ''; return '' unless $value; $value = sprintf( "%.1f", $value ); + my $class = 'ok'; $class = 'warn' if $value > -18.5; $class = 'error' if $value > -16.0; $class = 'warn' if $value < -24.0; $class = 'error' if $value < -27.0; - return qq{<div class="$class">$value dB</div>}; + return qq{<div class="$class">$prefix$value dB</div>}; } # do not delete this line diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index d32e6ca..d6e3368 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -86,9 +86,9 @@ sub get_scheduled($$) { } my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if scalar @conditions > 0; + $conditions = " and " . join( " and ", @conditions ) if scalar @conditions > 0; - my $order = 'start'; + my $order = 'p.start'; $order = $condition->{order} if ( defined $condition->{order} ) && ( $condition->{order} ne '' ); my $query = qq{ @@ -119,8 +119,11 @@ sub get_scheduled($$) { , p.modified_at , p.updated_at , TIMESTAMPDIFF(SECOND,e.start,e.end) "event_duration" - from calcms_playout p left join calcms_events e - on p.start = e.start + from calcms_playout p, calcms_events e, calcms_series_events se + where p.start=e.start + and e.id=se.event_id + and p.studio_id=se.studio_id + and p.project_id=se.project_id $conditions order by $order $limit diff --git a/website/agenda/planung/assign_series.cgi b/website/agenda/planung/assign_series.cgi index 1422619..f80499a 100755 --- a/website/agenda/planung/assign_series.cgi +++ b/website/agenda/planung/assign_series.cgi @@ -99,7 +99,8 @@ sub show_events { my $project = $projects->[0]; return unless scalar @$projects == 1; - my $studios = studios::get( $config, { project_id => $params->{project_id}, studio_id => $params->{studio_id} } ); + my $studios = studios::get( $config, + { project_id => $params->{project_id}, studio_id => $params->{studio_id} } ); my $studio = $studios->[0]; return unless scalar @$studios == 1; diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index ac1d80e..4e5541a 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -310,8 +310,8 @@ sub showAudioRecordings { getDuration( $recording->{audioDuration} ) ); - $recording->{rmsLeft} = audio::formatLoudness( $recording->{rmsLeft} ); - $recording->{rmsRight} = audio::formatLoudness( $recording->{rmsRight} ); + $recording->{rmsLeft} = audio::formatLoudness( $recording->{rmsLeft}, 'L:' ); + $recording->{rmsRight} = audio::formatLoudness( $recording->{rmsRight}, 'R:' ); } my $now = time(); diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 297cfce..9259cb8 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -396,11 +396,12 @@ sub showCalendar { $date->{title} .= audio::formatDuration( $date->{duration}, $date->{event_duration}, - sprintf( "duration: %.1g h", $date->{duration} / 3600 ) . "<br>" + sprintf( "duration: %.1g h", $date->{duration} / 3600 ) . "<br>", + sprintf( "%d s", $date->{duration} ) ) if defined $date->{duration}; - $date->{title} .= "L:" . audio::formatLoudness( $date->{rms_left} ) . ', ' + $date->{title} .= audio::formatLoudness( $date->{rms_left}, 'L: ' ) . ', ' if defined $date->{rms_left}; - $date->{title} .= "R:" . audio::formatLoudness( $date->{rms_right} ) . '<br>' + $date->{title} .= audio::formatLoudness( $date->{rms_right}, 'R: ' ) . '<br>' if defined $date->{rms_right}; $date->{title} .= audio::formatBitrate( $date->{bitrate} ) if defined $date->{bitrate}; $date->{title} .= ' ' . audio::formatBitrateMode( $date->{bitrate_mode} ) . '<br>' @@ -447,8 +448,9 @@ sub showCalendar { for my $date (@$playout_dates) { $date = events::calc_dates( $config, $date ); if ( defined $events_by_start->{ $date->{start} } ) { - $events_by_start->{ $date->{start} }->{duration} = $date->{duration} || 0; - $events_by_start->{ $date->{start} }->{event_duration} = $date->{event_duration} || 0; + $events_by_start->{ $date->{start} }->{duration} = $date->{duration} || 0; + $events_by_start->{ $date->{start} }->{event_duration} = + $date->{event_duration} || 0; $events_by_start->{ $date->{start} }->{rms_left} = $date->{rms_left} || 0; $events_by_start->{ $date->{start} }->{rms_right} = $date->{rms_right} || 0; $events_by_start->{ $date->{start} }->{playout_modified_at} = $date->{modified_at}; @@ -1143,15 +1145,17 @@ sub printTableBody { if ( $event->{class} eq 'event' ) { $event->{content} .= '<br><span class="weak">'; - $event->{content} .= - audio::formatDuration( $event->{duration}, $event->{event_duration}, - sprintf("%d min", (($event->{duration}+0.5)/60)) ) + $event->{content} .= audio::formatDuration( + $event->{duration}, + $event->{event_duration}, + sprintf( "%d min", ( $event->{duration} + 0.5 ) / 60 ), + sprintf( "%d s", $event->{duration} ) + ) . ' ' if defined $event->{duration}; - $event->{content} .= 'L' . audio::formatLoudness( $event->{rms_left} ) . ' ' + $event->{content} .= audio::formatLoudness( $event->{rms_left}, 'L: ' ) . ' ' if defined $event->{rms_left}; - $event->{content} .= - 'R' . audio::formatLoudness( $event->{rms_right} ) + $event->{content} .= audio::formatLoudness( $event->{rms_right}, 'R: ' ) if defined $event->{rms_right}; #$event->{content} .= formatBitrate( $event->{bitrate} ) if defined $event->{bitrate}; @@ -1981,43 +1985,3 @@ sub check_params { return $checked; } -__DATA__ -sub formatLoudness { - my $label = shift; - my $value = shift; - return '' unless defined $value; - return '' if $value == 0; - return '' if $value eq ''; - - #print STDERR "'$value'\n"; - $value = sprintf( "%d", $value + 0.5 ); - my $class = 'ok'; - $class = 'warn' if $value > -18.5; - $class = 'error' if $value > -16.0; - $class = 'warn' if $value < -24.0; - $class = 'error' if $value < -27.0; - return qq{<span class="$class">$label} . $value . qq{dB</span>}; -} - -sub formatDuration { - my $duration = shift; - return '' unless defined $duration; - return '' if $duration eq ''; - my $result = int( ( $duration + 30.5 ) % 60 ) - 30; - my $class = "ok"; - $class = "warn" if abs($result) > 1; - $class = "error" if abs($result) > 2; - return sprintf( qq{<span class="%s">%ds</span>}, $class, $duration ); -} - -sub formatBitrate { - my $bitrate = shift; - return '' if $bitrate eq ''; - if ( $bitrate >= 200 ) { - return qq{<span class="warn">$bitrate</span>}; - } elsif ( $bitrate < 190 ) { - return qq{<span class="error">$bitrate</span>}; - } else { - return qq{<span class="ok">$bitrate</span>}; - } -} diff --git a/website/agenda/planung/css/show-playout.css b/website/agenda/planung/css/show-playout.css index d8d40d6..c69c965 100644 --- a/website/agenda/planung/css/show-playout.css +++ b/website/agenda/planung/css/show-playout.css @@ -24,6 +24,16 @@ table{ border-top:1px solid #666; } +#content #playout-table td.path{ + width:15rem; + word-break: break-word; +} + +#content #playout-table td div{ + float:left; + margin:3px; +} + #content tr.past{ background:#ccc; } @@ -36,15 +46,14 @@ table{ } #content img{ - width:100%; + width:60%; height:100%; } #content div.ok, #content div.warn, #content div.error{ - padding-top:3px; - padding-bottom:3px; + padding:3px; margin:1px; border-radius:4px; text-align:center; diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 16c8dbd..649544a 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -98,7 +98,7 @@ sub showPlayout { { project_id => $params->{project_id}, studio_id => $params->{studio_id}, - order => 'modified_at asc, start asc', + order => 'p.modified_at asc, p.start asc', from => $startDate } ); @@ -114,8 +114,8 @@ sub showPlayout { $event->{stream_size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; $event->{duration} =~ s/(\d\.\d)(\d+)$/$1/g; $event->{duration} =~ s/(\d)\.0/$1/g; - $event->{rms_left} = audio::formatLoudness( $event->{rms_left} ); - $event->{rms_right} = audio::formatLoudness( $event->{rms_right} ); + $event->{rms_left} = audio::formatLoudness( $event->{rms_left}, 'L:' ); + $event->{rms_right} = audio::formatLoudness( $event->{rms_right}, 'R:' ); $event->{bitrate} = audio::formatBitrate( $event->{bitrate} ); $event->{bitrate_mode} = audio::formatBitrateMode( $event->{bitrate_mode} ); $event->{sampling_rate} = audio::formatSamplingRate( $event->{sampling_rate} ); @@ -125,10 +125,7 @@ sub showPlayout { sprintf( "%.1g h", $event->{duration} / 3600) ); $event->{channels} = audio::formatChannels( $event->{channels} ); - - if ( $event->{start} lt $today ) { - $event->{class} = "past"; - } + $event->{class} = "past" if $event->{start} lt $today; } $params->{events} = $events; diff --git a/website/agenda/planung/templates/show_playout.html b/website/agenda/planung/templates/show_playout.html index 61d4ca2..23dc4cb 100644 --- a/website/agenda/planung/templates/show_playout.html +++ b/website/agenda/planung/templates/show_playout.html @@ -10,19 +10,15 @@ <script src="js/image.js" type="text/javascript"></script> - <table id="playout-table" class="table"> <thead> <tr> <th>start</th> - <th>playout path</th> - <th>seconds</th> - <th>loudness</th> - <th>format</th> + <th>path</th> + <th>more</th> <th>image</th> <th>bytes</th> - <th>modified at</th> </tr> </thead> @@ -30,13 +26,18 @@ <TMPL_LOOP events> <tr class="<TMPL_VAR class>"> <td><TMPL_VAR start></td> - <td><TMPL_VAR file></td> - <td><TMPL_VAR duration escape="text"></td> - <td><TMPL_VAR rms_left escape="text"> <TMPL_VAR rms_right escape="text"></td> - <td><TMPL_VAR bitrate escape="text"> <TMPL_VAR bitrate_mode escape="text"> <TMPL_VAR sampling_rate escape="text"> <TMPL_VAR channels escape="text"></td> + <td class="path"><TMPL_VAR file></td> + <td> + <TMPL_VAR duration escape="text"> + <TMPL_VAR rms_left escape="text"> + <TMPL_VAR rms_right escape="text"> + <TMPL_VAR bitrate escape="text"> + <TMPL_VAR bitrate_mode escape="text"> + <TMPL_VAR sampling_rate escape="text"> + <TMPL_VAR channels escape="text"> + </td> <td><TMPL_IF rms_image><a href="/agenda_files/playout/<TMPL_VAR rms_image>"><img src="/agenda_files/playout/<TMPL_VAR rms_image>"></a></TMPL_IF></td> <td><TMPL_VAR stream_size></td> - <td><TMPL_VAR modified_at></td> </tr> </TMPL_LOOP> </tbody> From dca397cd136472274f42a045b6bdf2cfd6f53f33 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Wed, 17 Jul 2019 00:08:42 +0200 Subject: [PATCH 067/391] fix series title as template engine is case sensitive, conditions have to use camelCase. --- website/agenda/planung/templates/series.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/agenda/planung/templates/series.html b/website/agenda/planung/templates/series.html index 8e417c7..0164013 100644 --- a/website/agenda/planung/templates/series.html +++ b/website/agenda/planung/templates/series.html @@ -42,7 +42,7 @@ var region='<TMPL_VAR loc.region>'; href="series.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&series_id=<TMPL_VAR series_id>&action=show" > <b><TMPL_IF has_single_events><TMPL_VAR .loc.single_events><TMPL_ELSE><TMPL_VAR series_name></TMPL_IF></b> - <TMPL_IF TITLE> <br> <TMPL_VAR title></TMPL_IF> + <TMPL_IF title> <br> <TMPL_VAR title></TMPL_IF> </a> </TMPL_LOOP> </div> @@ -57,7 +57,7 @@ var region='<TMPL_VAR loc.region>'; href="series.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&series_id=<TMPL_VAR series_id>&action=show" > <b><TMPL_IF has_single_events><TMPL_VAR .loc.single_events><TMPL_ELSE><TMPL_VAR series_name></TMPL_IF></b> - <TMPL_IF TITLE> <br> <TMPL_VAR title></TMPL_IF> + <TMPL_IF title> <br> <TMPL_VAR title></TMPL_IF> </a> </TMPL_LOOP> </div> From f28400dbcba4dc6f9fa7ace97b75ef729c212cc6 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:20:50 +0200 Subject: [PATCH 068/391] remove unused JS libs --- website/agenda/js/calcms.jquery.min.js | 6 ------ website/agenda/js/jquery.jplayer.min.js | 3 --- 2 files changed, 9 deletions(-) delete mode 100644 website/agenda/js/calcms.jquery.min.js delete mode 100644 website/agenda/js/jquery.jplayer.min.js diff --git a/website/agenda/js/calcms.jquery.min.js b/website/agenda/js/calcms.jquery.min.js deleted file mode 100644 index 5fd1339..0000000 --- a/website/agenda/js/calcms.jquery.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; -}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return c=d.getElementsByTagName("body")[0],c&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),V=["Top","Right","Bottom","Left"],W=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function X(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&U.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var Y=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)Y(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/<tbody/i;function ia(a){Z.test(a.type)&&(a.defaultChecked=a.checked)}function ja(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ca(b),q=[],r=0;o>r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?"<table>"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ma.test(f)?this.mouseHooks:la.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ra()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ra()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&("undefined"==typeof a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?pa:qa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:qa,isPropagationStopped:qa,isImmediatePropagationStopped:qa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=pa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=pa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=pa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){return ka.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ka.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!ka.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return sa(this,a,b,c,d)},one:function(a,b,c,d){return sa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=qa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ta=/ jQuery\d+="(?:null|\d+)"/g,ua=new RegExp("<(?:"+ba+")[\\s/>]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/<script|<style|<link/i,xa=/checked\s*(?:[^=]|=\s*.checked.)/i,ya=/^true\/(.*)/,za=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");if(j.style){j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}});function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}}}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&W(d)&&(f[g]=n._data(d,"olddisplay",Ma(d.nodeName)))):(e=W(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function db(a,b,c){var d=Ya.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function eb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+V[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+V[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+V[f]+"Width",!0,e))):(g+=n.css(a,"padding"+V[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+V[f]+"Width",!0,e)));return g}function fb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Sa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Oa.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+eb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Sa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=U.exec(c))&&e[1]&&(c=X(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Sa(a,b,d)),"normal"===f&&b in $a&&(f=$a[b]),""===c||c?(e=parseFloat(f),c===!0||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Xa.test(n.css(a,"display"))&&0===a.offsetWidth?Pa(a,Za,function(){return fb(a,b,d)}):fb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return db(a,c,d?eb(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Wa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){return b?Pa(a,{display:"inline-block"},Sa,[a,"marginRight"]):void 0}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{ -marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px":void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ob(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&W(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k="none"===j?n._data(a,"olddisplay")||Ma(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==Ma(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],jb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?Ma(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=nb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function pb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function qb(a,b,c){var d,e,f=0,g=qb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=hb||lb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:hb||lb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(pb(k,j.opts.specialEasing);g>f;f++)if(d=qb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,nb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(qb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return X(c.elem,a,U.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],qb.tweeners[c]=qb.tweeners[c]||[],qb.tweeners[c].unshift(b)},prefilters:[ob],prefilter:function(a,b){b?qb.prefilters.unshift(a):qb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(W).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=qb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&kb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(mb(b,!0),a,d,e)}}),n.each({slideDown:mb("show"),slideUp:mb("hide"),slideToggle:mb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(hb=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),hb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ib||(ib=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(ib),ib=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},vb.id=vb.name=vb.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(2>u))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&300>b||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({ -padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n}); - diff --git a/website/agenda/js/jquery.jplayer.min.js b/website/agenda/js/jquery.jplayer.min.js deleted file mode 100644 index 99f64d7..0000000 --- a/website/agenda/js/jquery.jplayer.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! jPlayer 2.9.2 for jQuery ~ (c) 2009-2014 Happyworm Ltd ~ MIT License */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):b("object"==typeof exports?require("jquery"):a.jQuery?a.jQuery:a.Zepto)}(this,function(a,b){a.fn.jPlayer=function(c){var d="jPlayer",e="string"==typeof c,f=Array.prototype.slice.call(arguments,1),g=this;return c=!e&&f.length?a.extend.apply(null,[!0,c].concat(f)):c,e&&"_"===c.charAt(0)?g:(this.each(e?function(){var e=a(this).data(d),h=e&&a.isFunction(e[c])?e[c].apply(e,f):e;return h!==e&&h!==b?(g=h,!1):void 0}:function(){var b=a(this).data(d);b?b.option(c||{}):a(this).data(d,new a.jPlayer(c,this))}),g)},a.jPlayer=function(b,c){if(arguments.length){this.element=a(c),this.options=a.extend(!0,{},this.options,b);var d=this;this.element.bind("remove.jPlayer",function(){d.destroy()}),this._init()}},"function"!=typeof a.fn.stop&&(a.fn.stop=function(){}),a.jPlayer.emulateMethods="load play pause",a.jPlayer.emulateStatus="src readyState networkState currentTime duration paused ended playbackRate",a.jPlayer.emulateOptions="muted volume",a.jPlayer.reservedEvent="ready flashreset resize repeat error warning",a.jPlayer.event={},a.each(["ready","setmedia","flashreset","resize","repeat","click","error","warning","loadstart","progress","suspend","abort","emptied","stalled","play","pause","loadedmetadata","loadeddata","waiting","playing","canplay","canplaythrough","seeking","seeked","timeupdate","ended","ratechange","durationchange","volumechange"],function(){a.jPlayer.event[this]="jPlayer_"+this}),a.jPlayer.htmlEvent=["loadstart","abort","emptied","stalled","loadedmetadata","canplay","canplaythrough"],a.jPlayer.pause=function(){a.jPlayer.prototype.destroyRemoved(),a.each(a.jPlayer.prototype.instances,function(a,b){b.data("jPlayer").status.srcSet&&b.jPlayer("pause")})},a.jPlayer.timeFormat={showHour:!1,showMin:!0,showSec:!0,padHour:!1,padMin:!0,padSec:!0,sepHour:":",sepMin:":",sepSec:""};var c=function(){this.init()};c.prototype={init:function(){this.options={timeFormat:a.jPlayer.timeFormat}},time:function(a){a=a&&"number"==typeof a?a:0;var b=new Date(1e3*a),c=b.getUTCHours(),d=this.options.timeFormat.showHour?b.getUTCMinutes():b.getUTCMinutes()+60*c,e=this.options.timeFormat.showMin?b.getUTCSeconds():b.getUTCSeconds()+60*d,f=this.options.timeFormat.padHour&&10>c?"0"+c:c,g=this.options.timeFormat.padMin&&10>d?"0"+d:d,h=this.options.timeFormat.padSec&&10>e?"0"+e:e,i="";return i+=this.options.timeFormat.showHour?f+this.options.timeFormat.sepHour:"",i+=this.options.timeFormat.showMin?g+this.options.timeFormat.sepMin:"",i+=this.options.timeFormat.showSec?h+this.options.timeFormat.sepSec:""}};var d=new c;a.jPlayer.convertTime=function(a){return d.time(a)},a.jPlayer.uaBrowser=function(a){var b=a.toLowerCase(),c=/(webkit)[ \/]([\w.]+)/,d=/(opera)(?:.*version)?[ \/]([\w.]+)/,e=/(msie) ([\w.]+)/,f=/(mozilla)(?:.*? rv:([\w.]+))?/,g=c.exec(b)||d.exec(b)||e.exec(b)||b.indexOf("compatible")<0&&f.exec(b)||[];return{browser:g[1]||"",version:g[2]||"0"}},a.jPlayer.uaPlatform=function(a){var b=a.toLowerCase(),c=/(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/,d=/(ipad|playbook)/,e=/(android)/,f=/(mobile)/,g=c.exec(b)||[],h=d.exec(b)||!f.exec(b)&&e.exec(b)||[];return g[1]&&(g[1]=g[1].replace(/\s/g,"_")),{platform:g[1]||"",tablet:h[1]||""}},a.jPlayer.browser={},a.jPlayer.platform={};var e=a.jPlayer.uaBrowser(navigator.userAgent);e.browser&&(a.jPlayer.browser[e.browser]=!0,a.jPlayer.browser.version=e.version);var f=a.jPlayer.uaPlatform(navigator.userAgent);f.platform&&(a.jPlayer.platform[f.platform]=!0,a.jPlayer.platform.mobile=!f.tablet,a.jPlayer.platform.tablet=!!f.tablet),a.jPlayer.getDocMode=function(){var b;return a.jPlayer.browser.msie&&(document.documentMode?b=document.documentMode:(b=5,document.compatMode&&"CSS1Compat"===document.compatMode&&(b=7))),b},a.jPlayer.browser.documentMode=a.jPlayer.getDocMode(),a.jPlayer.nativeFeatures={init:function(){var a,b,c,d=document,e=d.createElement("video"),f={w3c:["fullscreenEnabled","fullscreenElement","requestFullscreen","exitFullscreen","fullscreenchange","fullscreenerror"],moz:["mozFullScreenEnabled","mozFullScreenElement","mozRequestFullScreen","mozCancelFullScreen","mozfullscreenchange","mozfullscreenerror"],webkit:["","webkitCurrentFullScreenElement","webkitRequestFullScreen","webkitCancelFullScreen","webkitfullscreenchange",""],webkitVideo:["webkitSupportsFullscreen","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","",""],ms:["","msFullscreenElement","msRequestFullscreen","msExitFullscreen","MSFullscreenChange","MSFullscreenError"]},g=["w3c","moz","webkit","webkitVideo","ms"];for(this.fullscreen=a={support:{w3c:!!d[f.w3c[0]],moz:!!d[f.moz[0]],webkit:"function"==typeof d[f.webkit[3]],webkitVideo:"function"==typeof e[f.webkitVideo[2]],ms:"function"==typeof e[f.ms[2]]},used:{}},b=0,c=g.length;c>b;b++){var h=g[b];if(a.support[h]){a.spec=h,a.used[h]=!0;break}}if(a.spec){var i=f[a.spec];a.api={fullscreenEnabled:!0,fullscreenElement:function(a){return a=a?a:d,a[i[1]]},requestFullscreen:function(a){return a[i[2]]()},exitFullscreen:function(a){return a=a?a:d,a[i[3]]()}},a.event={fullscreenchange:i[4],fullscreenerror:i[5]}}else a.api={fullscreenEnabled:!1,fullscreenElement:function(){return null},requestFullscreen:function(){},exitFullscreen:function(){}},a.event={}}},a.jPlayer.nativeFeatures.init(),a.jPlayer.focus=null,a.jPlayer.keyIgnoreElementNames="A INPUT TEXTAREA SELECT BUTTON";var g=function(b){var c,d=a.jPlayer.focus;d&&(a.each(a.jPlayer.keyIgnoreElementNames.split(/\s+/g),function(a,d){return b.target.nodeName.toUpperCase()===d.toUpperCase()?(c=!0,!1):void 0}),c||a.each(d.options.keyBindings,function(c,e){return e&&a.isFunction(e.fn)&&("number"==typeof e.key&&b.which===e.key||"string"==typeof e.key&&b.key===e.key)?(b.preventDefault(),e.fn(d),!1):void 0}))};a.jPlayer.keys=function(b){var c="keydown.jPlayer";a(document.documentElement).unbind(c),b&&a(document.documentElement).bind(c,g)},a.jPlayer.keys(!0),a.jPlayer.prototype={count:0,version:{script:"2.9.2",needFlash:"2.9.0",flash:"unknown"},options:{swfPath:"js",solution:"html, flash",supplied:"mp3",auroraFormats:"wav",preload:"metadata",volume:.8,muted:!1,remainingDuration:!1,toggleDuration:!1,captureDuration:!0,playbackRate:1,defaultPlaybackRate:1,minPlaybackRate:.5,maxPlaybackRate:4,wmode:"opaque",backgroundColor:"#000000",cssSelectorAncestor:"#jp_container_1",cssSelector:{videoPlay:".jp-video-play",play:".jp-play",pause:".jp-pause",stop:".jp-stop",seekBar:".jp-seek-bar",playBar:".jp-play-bar",mute:".jp-mute",unmute:".jp-unmute",volumeBar:".jp-volume-bar",volumeBarValue:".jp-volume-bar-value",volumeMax:".jp-volume-max",playbackRateBar:".jp-playback-rate-bar",playbackRateBarValue:".jp-playback-rate-bar-value",currentTime:".jp-current-time",duration:".jp-duration",title:".jp-title",fullScreen:".jp-full-screen",restoreScreen:".jp-restore-screen",repeat:".jp-repeat",repeatOff:".jp-repeat-off",gui:".jp-gui",noSolution:".jp-no-solution"},stateClass:{playing:"jp-state-playing",seeking:"jp-state-seeking",muted:"jp-state-muted",looped:"jp-state-looped",fullScreen:"jp-state-full-screen",noVolume:"jp-state-no-volume"},useStateClassSkin:!1,autoBlur:!0,smoothPlayBar:!1,fullScreen:!1,fullWindow:!1,autohide:{restored:!1,full:!0,fadeIn:200,fadeOut:600,hold:1e3},loop:!1,repeat:function(b){b.jPlayer.options.loop?a(this).unbind(".jPlayerRepeat").bind(a.jPlayer.event.ended+".jPlayer.jPlayerRepeat",function(){a(this).jPlayer("play")}):a(this).unbind(".jPlayerRepeat")},nativeVideoControls:{},noFullWindow:{msie:/msie [0-6]\./,ipad:/ipad.*?os [0-4]\./,iphone:/iphone/,ipod:/ipod/,android_pad:/android [0-3]\.(?!.*?mobile)/,android_phone:/(?=.*android)(?!.*chrome)(?=.*mobile)/,blackberry:/blackberry/,windows_ce:/windows ce/,iemobile:/iemobile/,webos:/webos/},noVolume:{ipad:/ipad/,iphone:/iphone/,ipod:/ipod/,android_pad:/android(?!.*?mobile)/,android_phone:/android.*?mobile/,blackberry:/blackberry/,windows_ce:/windows ce/,iemobile:/iemobile/,webos:/webos/,playbook:/playbook/},timeFormat:{},keyEnabled:!1,audioFullScreen:!1,keyBindings:{play:{key:80,fn:function(a){a.status.paused?a.play():a.pause()}},fullScreen:{key:70,fn:function(a){(a.status.video||a.options.audioFullScreen)&&a._setOption("fullScreen",!a.options.fullScreen)}},muted:{key:77,fn:function(a){a._muted(!a.options.muted)}},volumeUp:{key:190,fn:function(a){a.volume(a.options.volume+.1)}},volumeDown:{key:188,fn:function(a){a.volume(a.options.volume-.1)}},loop:{key:76,fn:function(a){a._loop(!a.options.loop)}}},verticalVolume:!1,verticalPlaybackRate:!1,globalVolume:!1,idPrefix:"jp",noConflict:"jQuery",emulateHtml:!1,consoleAlerts:!0,errorAlerts:!1,warningAlerts:!1},optionsAudio:{size:{width:"0px",height:"0px",cssClass:""},sizeFull:{width:"0px",height:"0px",cssClass:""}},optionsVideo:{size:{width:"480px",height:"270px",cssClass:"jp-video-270p"},sizeFull:{width:"100%",height:"100%",cssClass:"jp-video-full"}},instances:{},status:{src:"",media:{},paused:!0,format:{},formatType:"",waitForPlay:!0,waitForLoad:!0,srcSet:!1,video:!1,seekPercent:0,currentPercentRelative:0,currentPercentAbsolute:0,currentTime:0,duration:0,remaining:0,videoWidth:0,videoHeight:0,readyState:0,networkState:0,playbackRate:1,ended:0},internal:{ready:!1},solution:{html:!0,aurora:!0,flash:!0},format:{mp3:{codec:"audio/mpeg",flashCanPlay:!0,media:"audio"},m4a:{codec:'audio/mp4; codecs="mp4a.40.2"',flashCanPlay:!0,media:"audio"},m3u8a:{codec:'application/vnd.apple.mpegurl; codecs="mp4a.40.2"',flashCanPlay:!1,media:"audio"},m3ua:{codec:"audio/mpegurl",flashCanPlay:!1,media:"audio"},oga:{codec:'audio/ogg; codecs="vorbis, opus"',flashCanPlay:!1,media:"audio"},flac:{codec:"audio/x-flac",flashCanPlay:!1,media:"audio"},wav:{codec:'audio/wav; codecs="1"',flashCanPlay:!1,media:"audio"},webma:{codec:'audio/webm; codecs="vorbis"',flashCanPlay:!1,media:"audio"},fla:{codec:"audio/x-flv",flashCanPlay:!0,media:"audio"},rtmpa:{codec:'audio/rtmp; codecs="rtmp"',flashCanPlay:!0,media:"audio"},m4v:{codec:'video/mp4; codecs="avc1.42E01E, mp4a.40.2"',flashCanPlay:!0,media:"video"},m3u8v:{codec:'application/vnd.apple.mpegurl; codecs="avc1.42E01E, mp4a.40.2"',flashCanPlay:!1,media:"video"},m3uv:{codec:"audio/mpegurl",flashCanPlay:!1,media:"video"},ogv:{codec:'video/ogg; codecs="theora, vorbis"',flashCanPlay:!1,media:"video"},webmv:{codec:'video/webm; codecs="vorbis, vp8"',flashCanPlay:!1,media:"video"},flv:{codec:"video/x-flv",flashCanPlay:!0,media:"video"},rtmpv:{codec:'video/rtmp; codecs="rtmp"',flashCanPlay:!0,media:"video"}},_init:function(){var c=this;if(this.element.empty(),this.status=a.extend({},this.status),this.internal=a.extend({},this.internal),this.options.timeFormat=a.extend({},a.jPlayer.timeFormat,this.options.timeFormat),this.internal.cmdsIgnored=a.jPlayer.platform.ipad||a.jPlayer.platform.iphone||a.jPlayer.platform.ipod,this.internal.domNode=this.element.get(0),this.options.keyEnabled&&!a.jPlayer.focus&&(a.jPlayer.focus=this),this.androidFix={setMedia:!1,play:!1,pause:!1,time:0/0},a.jPlayer.platform.android&&(this.options.preload="auto"!==this.options.preload?"metadata":"auto"),this.formats=[],this.solutions=[],this.require={},this.htmlElement={},this.html={},this.html.audio={},this.html.video={},this.aurora={},this.aurora.formats=[],this.aurora.properties=[],this.flash={},this.css={},this.css.cs={},this.css.jq={},this.ancestorJq=[],this.options.volume=this._limitValue(this.options.volume,0,1),a.each(this.options.supplied.toLowerCase().split(","),function(b,d){var e=d.replace(/^\s+|\s+$/g,"");if(c.format[e]){var f=!1;a.each(c.formats,function(a,b){return e===b?(f=!0,!1):void 0}),f||c.formats.push(e)}}),a.each(this.options.solution.toLowerCase().split(","),function(b,d){var e=d.replace(/^\s+|\s+$/g,"");if(c.solution[e]){var f=!1;a.each(c.solutions,function(a,b){return e===b?(f=!0,!1):void 0}),f||c.solutions.push(e)}}),a.each(this.options.auroraFormats.toLowerCase().split(","),function(b,d){var e=d.replace(/^\s+|\s+$/g,"");if(c.format[e]){var f=!1;a.each(c.aurora.formats,function(a,b){return e===b?(f=!0,!1):void 0}),f||c.aurora.formats.push(e)}}),this.internal.instance="jp_"+this.count,this.instances[this.internal.instance]=this.element,this.element.attr("id")||this.element.attr("id",this.options.idPrefix+"_jplayer_"+this.count),this.internal.self=a.extend({},{id:this.element.attr("id"),jq:this.element}),this.internal.audio=a.extend({},{id:this.options.idPrefix+"_audio_"+this.count,jq:b}),this.internal.video=a.extend({},{id:this.options.idPrefix+"_video_"+this.count,jq:b}),this.internal.flash=a.extend({},{id:this.options.idPrefix+"_flash_"+this.count,jq:b,swf:this.options.swfPath+(".swf"!==this.options.swfPath.toLowerCase().slice(-4)?(this.options.swfPath&&"/"!==this.options.swfPath.slice(-1)?"/":"")+"jquery.jplayer.swf":"")}),this.internal.poster=a.extend({},{id:this.options.idPrefix+"_poster_"+this.count,jq:b}),a.each(a.jPlayer.event,function(a,d){c.options[a]!==b&&(c.element.bind(d+".jPlayer",c.options[a]),c.options[a]=b)}),this.require.audio=!1,this.require.video=!1,a.each(this.formats,function(a,b){c.require[c.format[b].media]=!0}),this.options=this.require.video?a.extend(!0,{},this.optionsVideo,this.options):a.extend(!0,{},this.optionsAudio,this.options),this._setSize(),this.status.nativeVideoControls=this._uaBlocklist(this.options.nativeVideoControls),this.status.noFullWindow=this._uaBlocklist(this.options.noFullWindow),this.status.noVolume=this._uaBlocklist(this.options.noVolume),a.jPlayer.nativeFeatures.fullscreen.api.fullscreenEnabled&&this._fullscreenAddEventListeners(),this._restrictNativeVideoControls(),this.htmlElement.poster=document.createElement("img"),this.htmlElement.poster.id=this.internal.poster.id,this.htmlElement.poster.onload=function(){(!c.status.video||c.status.waitForPlay)&&c.internal.poster.jq.show()},this.element.append(this.htmlElement.poster),this.internal.poster.jq=a("#"+this.internal.poster.id),this.internal.poster.jq.css({width:this.status.width,height:this.status.height}),this.internal.poster.jq.hide(),this.internal.poster.jq.bind("click.jPlayer",function(){c._trigger(a.jPlayer.event.click)}),this.html.audio.available=!1,this.require.audio&&(this.htmlElement.audio=document.createElement("audio"),this.htmlElement.audio.id=this.internal.audio.id,this.html.audio.available=!!this.htmlElement.audio.canPlayType&&this._testCanPlayType(this.htmlElement.audio)),this.html.video.available=!1,this.require.video&&(this.htmlElement.video=document.createElement("video"),this.htmlElement.video.id=this.internal.video.id,this.html.video.available=!!this.htmlElement.video.canPlayType&&this._testCanPlayType(this.htmlElement.video)),this.flash.available=this._checkForFlash(10.1),this.html.canPlay={},this.aurora.canPlay={},this.flash.canPlay={},a.each(this.formats,function(b,d){c.html.canPlay[d]=c.html[c.format[d].media].available&&""!==c.htmlElement[c.format[d].media].canPlayType(c.format[d].codec),c.aurora.canPlay[d]=a.inArray(d,c.aurora.formats)>-1,c.flash.canPlay[d]=c.format[d].flashCanPlay&&c.flash.available}),this.html.desired=!1,this.aurora.desired=!1,this.flash.desired=!1,a.each(this.solutions,function(b,d){if(0===b)c[d].desired=!0;else{var e=!1,f=!1;a.each(c.formats,function(a,b){c[c.solutions[0]].canPlay[b]&&("video"===c.format[b].media?f=!0:e=!0)}),c[d].desired=c.require.audio&&!e||c.require.video&&!f}}),this.html.support={},this.aurora.support={},this.flash.support={},a.each(this.formats,function(a,b){c.html.support[b]=c.html.canPlay[b]&&c.html.desired,c.aurora.support[b]=c.aurora.canPlay[b]&&c.aurora.desired,c.flash.support[b]=c.flash.canPlay[b]&&c.flash.desired}),this.html.used=!1,this.aurora.used=!1,this.flash.used=!1,a.each(this.solutions,function(b,d){a.each(c.formats,function(a,b){return c[d].support[b]?(c[d].used=!0,!1):void 0})}),this._resetActive(),this._resetGate(),this._cssSelectorAncestor(this.options.cssSelectorAncestor),this.html.used||this.aurora.used||this.flash.used?this.css.jq.noSolution.length&&this.css.jq.noSolution.hide():(this._error({type:a.jPlayer.error.NO_SOLUTION,context:"{solution:'"+this.options.solution+"', supplied:'"+this.options.supplied+"'}",message:a.jPlayer.errorMsg.NO_SOLUTION,hint:a.jPlayer.errorHint.NO_SOLUTION}),this.css.jq.noSolution.length&&this.css.jq.noSolution.show()),this.flash.used){var d,e="jQuery="+encodeURI(this.options.noConflict)+"&id="+encodeURI(this.internal.self.id)+"&vol="+this.options.volume+"&muted="+this.options.muted;if(a.jPlayer.browser.msie&&(Number(a.jPlayer.browser.version)<9||a.jPlayer.browser.documentMode<9)){var f='<object id="'+this.internal.flash.id+'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="0" height="0" tabindex="-1"></object>',g=['<param name="movie" value="'+this.internal.flash.swf+'" />','<param name="FlashVars" value="'+e+'" />','<param name="allowScriptAccess" value="always" />','<param name="bgcolor" value="'+this.options.backgroundColor+'" />','<param name="wmode" value="'+this.options.wmode+'" />'];d=document.createElement(f);for(var h=0;h<g.length;h++)d.appendChild(document.createElement(g[h]))}else{var i=function(a,b,c){var d=document.createElement("param");d.setAttribute("name",b),d.setAttribute("value",c),a.appendChild(d)};d=document.createElement("object"),d.setAttribute("id",this.internal.flash.id),d.setAttribute("name",this.internal.flash.id),d.setAttribute("data",this.internal.flash.swf),d.setAttribute("type","application/x-shockwave-flash"),d.setAttribute("width","1"),d.setAttribute("height","1"),d.setAttribute("tabindex","-1"),i(d,"flashvars",e),i(d,"allowscriptaccess","always"),i(d,"bgcolor",this.options.backgroundColor),i(d,"wmode",this.options.wmode)}this.element.append(d),this.internal.flash.jq=a(d)}this.status.playbackRateEnabled=this.html.used&&!this.flash.used?this._testPlaybackRate("audio"):!1,this._updatePlaybackRate(),this.html.used&&(this.html.audio.available&&(this._addHtmlEventListeners(this.htmlElement.audio,this.html.audio),this.element.append(this.htmlElement.audio),this.internal.audio.jq=a("#"+this.internal.audio.id)),this.html.video.available&&(this._addHtmlEventListeners(this.htmlElement.video,this.html.video),this.element.append(this.htmlElement.video),this.internal.video.jq=a("#"+this.internal.video.id),this.internal.video.jq.css(this.status.nativeVideoControls?{width:this.status.width,height:this.status.height}:{width:"0px",height:"0px"}),this.internal.video.jq.bind("click.jPlayer",function(){c._trigger(a.jPlayer.event.click)}))),this.aurora.used,this.options.emulateHtml&&this._emulateHtmlBridge(),!this.html.used&&!this.aurora.used||this.flash.used||setTimeout(function(){c.internal.ready=!0,c.version.flash="n/a",c._trigger(a.jPlayer.event.repeat),c._trigger(a.jPlayer.event.ready)},100),this._updateNativeVideoControls(),this.css.jq.videoPlay.length&&this.css.jq.videoPlay.hide(),a.jPlayer.prototype.count++},destroy:function(){this.clearMedia(),this._removeUiClass(),this.css.jq.currentTime.length&&this.css.jq.currentTime.text(""),this.css.jq.duration.length&&this.css.jq.duration.text(""),a.each(this.css.jq,function(a,b){b.length&&b.unbind(".jPlayer")}),this.internal.poster.jq.unbind(".jPlayer"),this.internal.video.jq&&this.internal.video.jq.unbind(".jPlayer"),this._fullscreenRemoveEventListeners(),this===a.jPlayer.focus&&(a.jPlayer.focus=null),this.options.emulateHtml&&this._destroyHtmlBridge(),this.element.removeData("jPlayer"),this.element.unbind(".jPlayer"),this.element.empty(),delete this.instances[this.internal.instance]},destroyRemoved:function(){var b=this;a.each(this.instances,function(a,c){b.element!==c&&(c.data("jPlayer")||(c.jPlayer("destroy"),delete b.instances[a]))})},enable:function(){},disable:function(){},_testCanPlayType:function(a){try{return a.canPlayType(this.format.mp3.codec),!0}catch(b){return!1}},_testPlaybackRate:function(a){var b,c=.5;a="string"==typeof a?a:"audio",b=document.createElement(a);try{return"playbackRate"in b?(b.playbackRate=c,b.playbackRate===c):!1}catch(d){return!1}},_uaBlocklist:function(b){var c=navigator.userAgent.toLowerCase(),d=!1;return a.each(b,function(a,b){return b&&b.test(c)?(d=!0,!1):void 0}),d},_restrictNativeVideoControls:function(){this.require.audio&&this.status.nativeVideoControls&&(this.status.nativeVideoControls=!1,this.status.noFullWindow=!0)},_updateNativeVideoControls:function(){this.html.video.available&&this.html.used&&(this.htmlElement.video.controls=this.status.nativeVideoControls,this._updateAutohide(),this.status.nativeVideoControls&&this.require.video?(this.internal.poster.jq.hide(),this.internal.video.jq.css({width:this.status.width,height:this.status.height})):this.status.waitForPlay&&this.status.video&&(this.internal.poster.jq.show(),this.internal.video.jq.css({width:"0px",height:"0px"})))},_addHtmlEventListeners:function(b,c){var d=this;b.preload=this.options.preload,b.muted=this.options.muted,b.volume=this.options.volume,this.status.playbackRateEnabled&&(b.defaultPlaybackRate=this.options.defaultPlaybackRate,b.playbackRate=this.options.playbackRate),b.addEventListener("progress",function(){c.gate&&(d.internal.cmdsIgnored&&this.readyState>0&&(d.internal.cmdsIgnored=!1),d._getHtmlStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.progress))},!1),b.addEventListener("loadeddata",function(){c.gate&&(d.androidFix.setMedia=!1,d.androidFix.play&&(d.androidFix.play=!1,d.play(d.androidFix.time)),d.androidFix.pause&&(d.androidFix.pause=!1,d.pause(d.androidFix.time)),d._trigger(a.jPlayer.event.loadeddata))},!1),b.addEventListener("timeupdate",function(){c.gate&&(d._getHtmlStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.timeupdate))},!1),b.addEventListener("durationchange",function(){c.gate&&(d._getHtmlStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.durationchange))},!1),b.addEventListener("play",function(){c.gate&&(d._updateButtons(!0),d._html_checkWaitForPlay(),d._trigger(a.jPlayer.event.play))},!1),b.addEventListener("playing",function(){c.gate&&(d._updateButtons(!0),d._seeked(),d._trigger(a.jPlayer.event.playing))},!1),b.addEventListener("pause",function(){c.gate&&(d._updateButtons(!1),d._trigger(a.jPlayer.event.pause))},!1),b.addEventListener("waiting",function(){c.gate&&(d._seeking(),d._trigger(a.jPlayer.event.waiting))},!1),b.addEventListener("seeking",function(){c.gate&&(d._seeking(),d._trigger(a.jPlayer.event.seeking))},!1),b.addEventListener("seeked",function(){c.gate&&(d._seeked(),d._trigger(a.jPlayer.event.seeked))},!1),b.addEventListener("volumechange",function(){c.gate&&(d.options.volume=b.volume,d.options.muted=b.muted,d._updateMute(),d._updateVolume(),d._trigger(a.jPlayer.event.volumechange))},!1),b.addEventListener("ratechange",function(){c.gate&&(d.options.defaultPlaybackRate=b.defaultPlaybackRate,d.options.playbackRate=b.playbackRate,d._updatePlaybackRate(),d._trigger(a.jPlayer.event.ratechange))},!1),b.addEventListener("suspend",function(){c.gate&&(d._seeked(),d._trigger(a.jPlayer.event.suspend))},!1),b.addEventListener("ended",function(){c.gate&&(a.jPlayer.browser.webkit||(d.htmlElement.media.currentTime=0),d.htmlElement.media.pause(),d._updateButtons(!1),d._getHtmlStatus(b,!0),d._updateInterface(),d._trigger(a.jPlayer.event.ended))},!1),b.addEventListener("error",function(){c.gate&&(d._updateButtons(!1),d._seeked(),d.status.srcSet&&(clearTimeout(d.internal.htmlDlyCmdId),d.status.waitForLoad=!0,d.status.waitForPlay=!0,d.status.video&&!d.status.nativeVideoControls&&d.internal.video.jq.css({width:"0px",height:"0px"}),d._validString(d.status.media.poster)&&!d.status.nativeVideoControls&&d.internal.poster.jq.show(),d.css.jq.videoPlay.length&&d.css.jq.videoPlay.show(),d._error({type:a.jPlayer.error.URL,context:d.status.src,message:a.jPlayer.errorMsg.URL,hint:a.jPlayer.errorHint.URL})))},!1),a.each(a.jPlayer.htmlEvent,function(e,f){b.addEventListener(this,function(){c.gate&&d._trigger(a.jPlayer.event[f])},!1)})},_addAuroraEventListeners:function(b,c){var d=this;b.volume=100*this.options.volume,b.on("progress",function(){c.gate&&(d.internal.cmdsIgnored&&this.readyState>0&&(d.internal.cmdsIgnored=!1),d._getAuroraStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.progress),b.duration>0&&d._trigger(a.jPlayer.event.timeupdate))},!1),b.on("ready",function(){c.gate&&d._trigger(a.jPlayer.event.loadeddata)},!1),b.on("duration",function(){c.gate&&(d._getAuroraStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.durationchange))},!1),b.on("end",function(){c.gate&&(d._updateButtons(!1),d._getAuroraStatus(b,!0),d._updateInterface(),d._trigger(a.jPlayer.event.ended))},!1),b.on("error",function(){c.gate&&(d._updateButtons(!1),d._seeked(),d.status.srcSet&&(d.status.waitForLoad=!0,d.status.waitForPlay=!0,d.status.video&&!d.status.nativeVideoControls&&d.internal.video.jq.css({width:"0px",height:"0px"}),d._validString(d.status.media.poster)&&!d.status.nativeVideoControls&&d.internal.poster.jq.show(),d.css.jq.videoPlay.length&&d.css.jq.videoPlay.show(),d._error({type:a.jPlayer.error.URL,context:d.status.src,message:a.jPlayer.errorMsg.URL,hint:a.jPlayer.errorHint.URL})))},!1)},_getHtmlStatus:function(a,b){var c=0,d=0,e=0,f=0;isFinite(a.duration)&&(this.status.duration=a.duration),c=a.currentTime,d=this.status.duration>0?100*c/this.status.duration:0,"object"==typeof a.seekable&&a.seekable.length>0?(e=this.status.duration>0?100*a.seekable.end(a.seekable.length-1)/this.status.duration:100,f=this.status.duration>0?100*a.currentTime/a.seekable.end(a.seekable.length-1):0):(e=100,f=d),b&&(c=0,f=0,d=0),this.status.seekPercent=e,this.status.currentPercentRelative=f,this.status.currentPercentAbsolute=d,this.status.currentTime=c,this.status.remaining=this.status.duration-this.status.currentTime,this.status.videoWidth=a.videoWidth,this.status.videoHeight=a.videoHeight,this.status.readyState=a.readyState,this.status.networkState=a.networkState,this.status.playbackRate=a.playbackRate,this.status.ended=a.ended},_getAuroraStatus:function(a,b){var c=0,d=0,e=0,f=0;this.status.duration=a.duration/1e3,c=a.currentTime/1e3,d=this.status.duration>0?100*c/this.status.duration:0,a.buffered>0?(e=this.status.duration>0?a.buffered*this.status.duration/this.status.duration:100,f=this.status.duration>0?c/(a.buffered*this.status.duration):0):(e=100,f=d),b&&(c=0,f=0,d=0),this.status.seekPercent=e,this.status.currentPercentRelative=f,this.status.currentPercentAbsolute=d,this.status.currentTime=c,this.status.remaining=this.status.duration-this.status.currentTime,this.status.readyState=4,this.status.networkState=0,this.status.playbackRate=1,this.status.ended=!1},_resetStatus:function(){this.status=a.extend({},this.status,a.jPlayer.prototype.status)},_trigger:function(b,c,d){var e=a.Event(b);e.jPlayer={},e.jPlayer.version=a.extend({},this.version),e.jPlayer.options=a.extend(!0,{},this.options),e.jPlayer.status=a.extend(!0,{},this.status),e.jPlayer.html=a.extend(!0,{},this.html),e.jPlayer.aurora=a.extend(!0,{},this.aurora),e.jPlayer.flash=a.extend(!0,{},this.flash),c&&(e.jPlayer.error=a.extend({},c)),d&&(e.jPlayer.warning=a.extend({},d)),this.element.trigger(e)},jPlayerFlashEvent:function(b,c){if(b===a.jPlayer.event.ready)if(this.internal.ready){if(this.flash.gate){if(this.status.srcSet){var d=this.status.currentTime,e=this.status.paused;this.setMedia(this.status.media),this.volumeWorker(this.options.volume),d>0&&(e?this.pause(d):this.play(d))}this._trigger(a.jPlayer.event.flashreset)}}else this.internal.ready=!0,this.internal.flash.jq.css({width:"0px",height:"0px"}),this.version.flash=c.version,this.version.needFlash!==this.version.flash&&this._error({type:a.jPlayer.error.VERSION,context:this.version.flash,message:a.jPlayer.errorMsg.VERSION+this.version.flash,hint:a.jPlayer.errorHint.VERSION}),this._trigger(a.jPlayer.event.repeat),this._trigger(b);if(this.flash.gate)switch(b){case a.jPlayer.event.progress:this._getFlashStatus(c),this._updateInterface(),this._trigger(b);break;case a.jPlayer.event.timeupdate:this._getFlashStatus(c),this._updateInterface(),this._trigger(b);break;case a.jPlayer.event.play:this._seeked(),this._updateButtons(!0),this._trigger(b);break;case a.jPlayer.event.pause:this._updateButtons(!1),this._trigger(b);break;case a.jPlayer.event.ended:this._updateButtons(!1),this._trigger(b);break;case a.jPlayer.event.click:this._trigger(b);break;case a.jPlayer.event.error:this.status.waitForLoad=!0,this.status.waitForPlay=!0,this.status.video&&this.internal.flash.jq.css({width:"0px",height:"0px"}),this._validString(this.status.media.poster)&&this.internal.poster.jq.show(),this.css.jq.videoPlay.length&&this.status.video&&this.css.jq.videoPlay.show(),this.status.video?this._flash_setVideo(this.status.media):this._flash_setAudio(this.status.media),this._updateButtons(!1),this._error({type:a.jPlayer.error.URL,context:c.src,message:a.jPlayer.errorMsg.URL,hint:a.jPlayer.errorHint.URL});break;case a.jPlayer.event.seeking:this._seeking(),this._trigger(b);break;case a.jPlayer.event.seeked:this._seeked(),this._trigger(b);break;case a.jPlayer.event.ready:break;default:this._trigger(b)}return!1},_getFlashStatus:function(a){this.status.seekPercent=a.seekPercent,this.status.currentPercentRelative=a.currentPercentRelative,this.status.currentPercentAbsolute=a.currentPercentAbsolute,this.status.currentTime=a.currentTime,this.status.duration=a.duration,this.status.remaining=a.duration-a.currentTime,this.status.videoWidth=a.videoWidth,this.status.videoHeight=a.videoHeight,this.status.readyState=4,this.status.networkState=0,this.status.playbackRate=1,this.status.ended=!1},_updateButtons:function(a){a===b?a=!this.status.paused:this.status.paused=!a,a?this.addStateClass("playing"):this.removeStateClass("playing"),!this.status.noFullWindow&&this.options.fullWindow?this.addStateClass("fullScreen"):this.removeStateClass("fullScreen"),this.options.loop?this.addStateClass("looped"):this.removeStateClass("looped"),this.css.jq.play.length&&this.css.jq.pause.length&&(a?(this.css.jq.play.hide(),this.css.jq.pause.show()):(this.css.jq.play.show(),this.css.jq.pause.hide())),this.css.jq.restoreScreen.length&&this.css.jq.fullScreen.length&&(this.status.noFullWindow?(this.css.jq.fullScreen.hide(),this.css.jq.restoreScreen.hide()):this.options.fullWindow?(this.css.jq.fullScreen.hide(),this.css.jq.restoreScreen.show()):(this.css.jq.fullScreen.show(),this.css.jq.restoreScreen.hide())),this.css.jq.repeat.length&&this.css.jq.repeatOff.length&&(this.options.loop?(this.css.jq.repeat.hide(),this.css.jq.repeatOff.show()):(this.css.jq.repeat.show(),this.css.jq.repeatOff.hide()))},_updateInterface:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.width(this.status.seekPercent+"%"),this.css.jq.playBar.length&&(this.options.smoothPlayBar?this.css.jq.playBar.stop().animate({width:this.status.currentPercentAbsolute+"%"},250,"linear"):this.css.jq.playBar.width(this.status.currentPercentRelative+"%"));var a="";this.css.jq.currentTime.length&&(a=this._convertTime(this.status.currentTime),a!==this.css.jq.currentTime.text()&&this.css.jq.currentTime.text(this._convertTime(this.status.currentTime)));var b="",c=this.status.duration,d=this.status.remaining;this.css.jq.duration.length&&("string"==typeof this.status.media.duration?b=this.status.media.duration:("number"==typeof this.status.media.duration&&(c=this.status.media.duration,d=c-this.status.currentTime),b=this.options.remainingDuration?(d>0?"-":"")+this._convertTime(d):this._convertTime(c)),b!==this.css.jq.duration.text()&&this.css.jq.duration.text(b))},_convertTime:c.prototype.time,_seeking:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.addClass("jp-seeking-bg"),this.addStateClass("seeking")},_seeked:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.removeClass("jp-seeking-bg"),this.removeStateClass("seeking")},_resetGate:function(){this.html.audio.gate=!1,this.html.video.gate=!1,this.aurora.gate=!1,this.flash.gate=!1},_resetActive:function(){this.html.active=!1,this.aurora.active=!1,this.flash.active=!1},_escapeHtml:function(a){return a.split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""")},_qualifyURL:function(a){var b=document.createElement("div"); -return b.innerHTML='<a href="'+this._escapeHtml(a)+'">x</a>',b.firstChild.href},_absoluteMediaUrls:function(b){var c=this;return a.each(b,function(a,d){d&&c.format[a]&&"data:"!==d.substr(0,5)&&(b[a]=c._qualifyURL(d))}),b},addStateClass:function(a){this.ancestorJq.length&&this.ancestorJq.addClass(this.options.stateClass[a])},removeStateClass:function(a){this.ancestorJq.length&&this.ancestorJq.removeClass(this.options.stateClass[a])},setMedia:function(b){var c=this,d=!1,e=this.status.media.poster!==b.poster;this._resetMedia(),this._resetGate(),this._resetActive(),this.androidFix.setMedia=!1,this.androidFix.play=!1,this.androidFix.pause=!1,b=this._absoluteMediaUrls(b),a.each(this.formats,function(e,f){var g="video"===c.format[f].media;return a.each(c.solutions,function(e,h){if(c[h].support[f]&&c._validString(b[f])){var i="html"===h,j="aurora"===h;return g?(i?(c.html.video.gate=!0,c._html_setVideo(b),c.html.active=!0):(c.flash.gate=!0,c._flash_setVideo(b),c.flash.active=!0),c.css.jq.videoPlay.length&&c.css.jq.videoPlay.show(),c.status.video=!0):(i?(c.html.audio.gate=!0,c._html_setAudio(b),c.html.active=!0,a.jPlayer.platform.android&&(c.androidFix.setMedia=!0)):j?(c.aurora.gate=!0,c._aurora_setAudio(b),c.aurora.active=!0):(c.flash.gate=!0,c._flash_setAudio(b),c.flash.active=!0),c.css.jq.videoPlay.length&&c.css.jq.videoPlay.hide(),c.status.video=!1),d=!0,!1}}),d?!1:void 0}),d?(this.status.nativeVideoControls&&this.html.video.gate||this._validString(b.poster)&&(e?this.htmlElement.poster.src=b.poster:this.internal.poster.jq.show()),"string"==typeof b.title&&(this.css.jq.title.length&&this.css.jq.title.html(b.title),this.htmlElement.audio&&this.htmlElement.audio.setAttribute("title",b.title),this.htmlElement.video&&this.htmlElement.video.setAttribute("title",b.title)),this.status.srcSet=!0,this.status.media=a.extend({},b),this._updateButtons(!1),this._updateInterface(),this._trigger(a.jPlayer.event.setmedia)):this._error({type:a.jPlayer.error.NO_SUPPORT,context:"{supplied:'"+this.options.supplied+"'}",message:a.jPlayer.errorMsg.NO_SUPPORT,hint:a.jPlayer.errorHint.NO_SUPPORT})},_resetMedia:function(){this._resetStatus(),this._updateButtons(!1),this._updateInterface(),this._seeked(),this.internal.poster.jq.hide(),clearTimeout(this.internal.htmlDlyCmdId),this.html.active?this._html_resetMedia():this.aurora.active?this._aurora_resetMedia():this.flash.active&&this._flash_resetMedia()},clearMedia:function(){this._resetMedia(),this.html.active?this._html_clearMedia():this.aurora.active?this._aurora_clearMedia():this.flash.active&&this._flash_clearMedia(),this._resetGate(),this._resetActive()},load:function(){this.status.srcSet?this.html.active?this._html_load():this.aurora.active?this._aurora_load():this.flash.active&&this._flash_load():this._urlNotSetError("load")},focus:function(){this.options.keyEnabled&&(a.jPlayer.focus=this)},play:function(a){var b="object"==typeof a;b&&this.options.useStateClassSkin&&!this.status.paused?this.pause(a):(a="number"==typeof a?a:0/0,this.status.srcSet?(this.focus(),this.html.active?this._html_play(a):this.aurora.active?this._aurora_play(a):this.flash.active&&this._flash_play(a)):this._urlNotSetError("play"))},videoPlay:function(){this.play()},pause:function(a){a="number"==typeof a?a:0/0,this.status.srcSet?this.html.active?this._html_pause(a):this.aurora.active?this._aurora_pause(a):this.flash.active&&this._flash_pause(a):this._urlNotSetError("pause")},tellOthers:function(b,c){var d=this,e="function"==typeof c,f=Array.prototype.slice.call(arguments);"string"==typeof b&&(e&&f.splice(1,1),a.jPlayer.prototype.destroyRemoved(),a.each(this.instances,function(){d.element!==this&&(!e||c.call(this.data("jPlayer"),d))&&this.jPlayer.apply(this,f)}))},pauseOthers:function(a){this.tellOthers("pause",function(){return this.status.srcSet},a)},stop:function(){this.status.srcSet?this.html.active?this._html_pause(0):this.aurora.active?this._aurora_pause(0):this.flash.active&&this._flash_pause(0):this._urlNotSetError("stop")},playHead:function(a){a=this._limitValue(a,0,100),this.status.srcSet?this.html.active?this._html_playHead(a):this.aurora.active?this._aurora_playHead(a):this.flash.active&&this._flash_playHead(a):this._urlNotSetError("playHead")},_muted:function(a){this.mutedWorker(a),this.options.globalVolume&&this.tellOthers("mutedWorker",function(){return this.options.globalVolume},a)},mutedWorker:function(b){this.options.muted=b,this.html.used&&this._html_setProperty("muted",b),this.aurora.used&&this._aurora_mute(b),this.flash.used&&this._flash_mute(b),this.html.video.gate||this.html.audio.gate||(this._updateMute(b),this._updateVolume(this.options.volume),this._trigger(a.jPlayer.event.volumechange))},mute:function(a){var c="object"==typeof a;c&&this.options.useStateClassSkin&&this.options.muted?this._muted(!1):(a=a===b?!0:!!a,this._muted(a))},unmute:function(a){a=a===b?!0:!!a,this._muted(!a)},_updateMute:function(a){a===b&&(a=this.options.muted),a?this.addStateClass("muted"):this.removeStateClass("muted"),this.css.jq.mute.length&&this.css.jq.unmute.length&&(this.status.noVolume?(this.css.jq.mute.hide(),this.css.jq.unmute.hide()):a?(this.css.jq.mute.hide(),this.css.jq.unmute.show()):(this.css.jq.mute.show(),this.css.jq.unmute.hide()))},volume:function(a){this.volumeWorker(a),this.options.globalVolume&&this.tellOthers("volumeWorker",function(){return this.options.globalVolume},a)},volumeWorker:function(b){b=this._limitValue(b,0,1),this.options.volume=b,this.html.used&&this._html_setProperty("volume",b),this.aurora.used&&this._aurora_volume(b),this.flash.used&&this._flash_volume(b),this.html.video.gate||this.html.audio.gate||(this._updateVolume(b),this._trigger(a.jPlayer.event.volumechange))},volumeBar:function(b){if(this.css.jq.volumeBar.length){var c=a(b.currentTarget),d=c.offset(),e=b.pageX-d.left,f=c.width(),g=c.height()-b.pageY+d.top,h=c.height();this.volume(this.options.verticalVolume?g/h:e/f)}this.options.muted&&this._muted(!1)},_updateVolume:function(a){a===b&&(a=this.options.volume),a=this.options.muted?0:a,this.status.noVolume?(this.addStateClass("noVolume"),this.css.jq.volumeBar.length&&this.css.jq.volumeBar.hide(),this.css.jq.volumeBarValue.length&&this.css.jq.volumeBarValue.hide(),this.css.jq.volumeMax.length&&this.css.jq.volumeMax.hide()):(this.removeStateClass("noVolume"),this.css.jq.volumeBar.length&&this.css.jq.volumeBar.show(),this.css.jq.volumeBarValue.length&&(this.css.jq.volumeBarValue.show(),this.css.jq.volumeBarValue[this.options.verticalVolume?"height":"width"](100*a+"%")),this.css.jq.volumeMax.length&&this.css.jq.volumeMax.show())},volumeMax:function(){this.volume(1),this.options.muted&&this._muted(!1)},_cssSelectorAncestor:function(b){var c=this;this.options.cssSelectorAncestor=b,this._removeUiClass(),this.ancestorJq=b?a(b):[],b&&1!==this.ancestorJq.length&&this._warning({type:a.jPlayer.warning.CSS_SELECTOR_COUNT,context:b,message:a.jPlayer.warningMsg.CSS_SELECTOR_COUNT+this.ancestorJq.length+" found for cssSelectorAncestor.",hint:a.jPlayer.warningHint.CSS_SELECTOR_COUNT}),this._addUiClass(),a.each(this.options.cssSelector,function(a,b){c._cssSelector(a,b)}),this._updateInterface(),this._updateButtons(),this._updateAutohide(),this._updateVolume(),this._updateMute()},_cssSelector:function(b,c){var d=this;if("string"==typeof c)if(a.jPlayer.prototype.options.cssSelector[b]){if(this.css.jq[b]&&this.css.jq[b].length&&this.css.jq[b].unbind(".jPlayer"),this.options.cssSelector[b]=c,this.css.cs[b]=this.options.cssSelectorAncestor+" "+c,this.css.jq[b]=c?a(this.css.cs[b]):[],this.css.jq[b].length&&this[b]){var e=function(c){c.preventDefault(),d[b](c),d.options.autoBlur?a(this).blur():a(this).focus()};this.css.jq[b].bind("click.jPlayer",e)}c&&1!==this.css.jq[b].length&&this._warning({type:a.jPlayer.warning.CSS_SELECTOR_COUNT,context:this.css.cs[b],message:a.jPlayer.warningMsg.CSS_SELECTOR_COUNT+this.css.jq[b].length+" found for "+b+" method.",hint:a.jPlayer.warningHint.CSS_SELECTOR_COUNT})}else this._warning({type:a.jPlayer.warning.CSS_SELECTOR_METHOD,context:b,message:a.jPlayer.warningMsg.CSS_SELECTOR_METHOD,hint:a.jPlayer.warningHint.CSS_SELECTOR_METHOD});else this._warning({type:a.jPlayer.warning.CSS_SELECTOR_STRING,context:c,message:a.jPlayer.warningMsg.CSS_SELECTOR_STRING,hint:a.jPlayer.warningHint.CSS_SELECTOR_STRING})},duration:function(a){this.options.toggleDuration&&(this.options.captureDuration&&a.stopPropagation(),this._setOption("remainingDuration",!this.options.remainingDuration))},seekBar:function(b){if(this.css.jq.seekBar.length){var c=a(b.currentTarget),d=c.offset(),e=b.pageX-d.left,f=c.width(),g=100*e/f;this.playHead(g)}},playbackRate:function(a){this._setOption("playbackRate",a)},playbackRateBar:function(b){if(this.css.jq.playbackRateBar.length){var c,d,e=a(b.currentTarget),f=e.offset(),g=b.pageX-f.left,h=e.width(),i=e.height()-b.pageY+f.top,j=e.height();c=this.options.verticalPlaybackRate?i/j:g/h,d=c*(this.options.maxPlaybackRate-this.options.minPlaybackRate)+this.options.minPlaybackRate,this.playbackRate(d)}},_updatePlaybackRate:function(){var a=this.options.playbackRate,b=(a-this.options.minPlaybackRate)/(this.options.maxPlaybackRate-this.options.minPlaybackRate);this.status.playbackRateEnabled?(this.css.jq.playbackRateBar.length&&this.css.jq.playbackRateBar.show(),this.css.jq.playbackRateBarValue.length&&(this.css.jq.playbackRateBarValue.show(),this.css.jq.playbackRateBarValue[this.options.verticalPlaybackRate?"height":"width"](100*b+"%"))):(this.css.jq.playbackRateBar.length&&this.css.jq.playbackRateBar.hide(),this.css.jq.playbackRateBarValue.length&&this.css.jq.playbackRateBarValue.hide())},repeat:function(a){var b="object"==typeof a;this._loop(b&&this.options.useStateClassSkin&&this.options.loop?!1:!0)},repeatOff:function(){this._loop(!1)},_loop:function(b){this.options.loop!==b&&(this.options.loop=b,this._updateButtons(),this._trigger(a.jPlayer.event.repeat))},option:function(c,d){var e=c;if(0===arguments.length)return a.extend(!0,{},this.options);if("string"==typeof c){var f=c.split(".");if(d===b){for(var g=a.extend(!0,{},this.options),h=0;h<f.length;h++){if(g[f[h]]===b)return this._warning({type:a.jPlayer.warning.OPTION_KEY,context:c,message:a.jPlayer.warningMsg.OPTION_KEY,hint:a.jPlayer.warningHint.OPTION_KEY}),b;g=g[f[h]]}return g}e={};for(var i=e,j=0;j<f.length;j++)j<f.length-1?(i[f[j]]={},i=i[f[j]]):i[f[j]]=d}return this._setOptions(e),this},_setOptions:function(b){var c=this;return a.each(b,function(a,b){c._setOption(a,b)}),this},_setOption:function(b,c){var d=this;switch(b){case"volume":this.volume(c);break;case"muted":this._muted(c);break;case"globalVolume":this.options[b]=c;break;case"cssSelectorAncestor":this._cssSelectorAncestor(c);break;case"cssSelector":a.each(c,function(a,b){d._cssSelector(a,b)});break;case"playbackRate":this.options[b]=c=this._limitValue(c,this.options.minPlaybackRate,this.options.maxPlaybackRate),this.html.used&&this._html_setProperty("playbackRate",c),this._updatePlaybackRate();break;case"defaultPlaybackRate":this.options[b]=c=this._limitValue(c,this.options.minPlaybackRate,this.options.maxPlaybackRate),this.html.used&&this._html_setProperty("defaultPlaybackRate",c),this._updatePlaybackRate();break;case"minPlaybackRate":this.options[b]=c=this._limitValue(c,.1,this.options.maxPlaybackRate-.1),this._updatePlaybackRate();break;case"maxPlaybackRate":this.options[b]=c=this._limitValue(c,this.options.minPlaybackRate+.1,16),this._updatePlaybackRate();break;case"fullScreen":if(this.options[b]!==c){var e=a.jPlayer.nativeFeatures.fullscreen.used.webkitVideo;(!e||e&&!this.status.waitForPlay)&&(e||(this.options[b]=c),c?this._requestFullscreen():this._exitFullscreen(),e||this._setOption("fullWindow",c))}break;case"fullWindow":this.options[b]!==c&&(this._removeUiClass(),this.options[b]=c,this._refreshSize());break;case"size":this.options.fullWindow||this.options[b].cssClass===c.cssClass||this._removeUiClass(),this.options[b]=a.extend({},this.options[b],c),this._refreshSize();break;case"sizeFull":this.options.fullWindow&&this.options[b].cssClass!==c.cssClass&&this._removeUiClass(),this.options[b]=a.extend({},this.options[b],c),this._refreshSize();break;case"autohide":this.options[b]=a.extend({},this.options[b],c),this._updateAutohide();break;case"loop":this._loop(c);break;case"remainingDuration":this.options[b]=c,this._updateInterface();break;case"toggleDuration":this.options[b]=c;break;case"nativeVideoControls":this.options[b]=a.extend({},this.options[b],c),this.status.nativeVideoControls=this._uaBlocklist(this.options.nativeVideoControls),this._restrictNativeVideoControls(),this._updateNativeVideoControls();break;case"noFullWindow":this.options[b]=a.extend({},this.options[b],c),this.status.nativeVideoControls=this._uaBlocklist(this.options.nativeVideoControls),this.status.noFullWindow=this._uaBlocklist(this.options.noFullWindow),this._restrictNativeVideoControls(),this._updateButtons();break;case"noVolume":this.options[b]=a.extend({},this.options[b],c),this.status.noVolume=this._uaBlocklist(this.options.noVolume),this._updateVolume(),this._updateMute();break;case"emulateHtml":this.options[b]!==c&&(this.options[b]=c,c?this._emulateHtmlBridge():this._destroyHtmlBridge());break;case"timeFormat":this.options[b]=a.extend({},this.options[b],c);break;case"keyEnabled":this.options[b]=c,c||this!==a.jPlayer.focus||(a.jPlayer.focus=null);break;case"keyBindings":this.options[b]=a.extend(!0,{},this.options[b],c);break;case"audioFullScreen":this.options[b]=c;break;case"autoBlur":this.options[b]=c}return this},_refreshSize:function(){this._setSize(),this._addUiClass(),this._updateSize(),this._updateButtons(),this._updateAutohide(),this._trigger(a.jPlayer.event.resize)},_setSize:function(){this.options.fullWindow?(this.status.width=this.options.sizeFull.width,this.status.height=this.options.sizeFull.height,this.status.cssClass=this.options.sizeFull.cssClass):(this.status.width=this.options.size.width,this.status.height=this.options.size.height,this.status.cssClass=this.options.size.cssClass),this.element.css({width:this.status.width,height:this.status.height})},_addUiClass:function(){this.ancestorJq.length&&this.ancestorJq.addClass(this.status.cssClass)},_removeUiClass:function(){this.ancestorJq.length&&this.ancestorJq.removeClass(this.status.cssClass)},_updateSize:function(){this.internal.poster.jq.css({width:this.status.width,height:this.status.height}),!this.status.waitForPlay&&this.html.active&&this.status.video||this.html.video.available&&this.html.used&&this.status.nativeVideoControls?this.internal.video.jq.css({width:this.status.width,height:this.status.height}):!this.status.waitForPlay&&this.flash.active&&this.status.video&&this.internal.flash.jq.css({width:this.status.width,height:this.status.height})},_updateAutohide:function(){var a=this,b="mousemove.jPlayer",c=".jPlayerAutohide",d=b+c,e=function(b){var c,d,e=!1;"undefined"!=typeof a.internal.mouse?(c=a.internal.mouse.x-b.pageX,d=a.internal.mouse.y-b.pageY,e=Math.floor(c)>0||Math.floor(d)>0):e=!0,a.internal.mouse={x:b.pageX,y:b.pageY},e&&a.css.jq.gui.fadeIn(a.options.autohide.fadeIn,function(){clearTimeout(a.internal.autohideId),a.internal.autohideId=setTimeout(function(){a.css.jq.gui.fadeOut(a.options.autohide.fadeOut)},a.options.autohide.hold)})};this.css.jq.gui.length&&(this.css.jq.gui.stop(!0,!0),clearTimeout(this.internal.autohideId),delete this.internal.mouse,this.element.unbind(c),this.css.jq.gui.unbind(c),this.status.nativeVideoControls?this.css.jq.gui.hide():this.options.fullWindow&&this.options.autohide.full||!this.options.fullWindow&&this.options.autohide.restored?(this.element.bind(d,e),this.css.jq.gui.bind(d,e),this.css.jq.gui.hide()):this.css.jq.gui.show())},fullScreen:function(a){var b="object"==typeof a;b&&this.options.useStateClassSkin&&this.options.fullScreen?this._setOption("fullScreen",!1):this._setOption("fullScreen",!0)},restoreScreen:function(){this._setOption("fullScreen",!1)},_fullscreenAddEventListeners:function(){var b=this,c=a.jPlayer.nativeFeatures.fullscreen;c.api.fullscreenEnabled&&c.event.fullscreenchange&&("function"!=typeof this.internal.fullscreenchangeHandler&&(this.internal.fullscreenchangeHandler=function(){b._fullscreenchange()}),document.addEventListener(c.event.fullscreenchange,this.internal.fullscreenchangeHandler,!1))},_fullscreenRemoveEventListeners:function(){var b=a.jPlayer.nativeFeatures.fullscreen;this.internal.fullscreenchangeHandler&&document.removeEventListener(b.event.fullscreenchange,this.internal.fullscreenchangeHandler,!1)},_fullscreenchange:function(){this.options.fullScreen&&!a.jPlayer.nativeFeatures.fullscreen.api.fullscreenElement()&&this._setOption("fullScreen",!1)},_requestFullscreen:function(){var b=this.ancestorJq.length?this.ancestorJq[0]:this.element[0],c=a.jPlayer.nativeFeatures.fullscreen;c.used.webkitVideo&&(b=this.htmlElement.video),c.api.fullscreenEnabled&&c.api.requestFullscreen(b)},_exitFullscreen:function(){var b,c=a.jPlayer.nativeFeatures.fullscreen;c.used.webkitVideo&&(b=this.htmlElement.video),c.api.fullscreenEnabled&&c.api.exitFullscreen(b)},_html_initMedia:function(b){var c=a(this.htmlElement.media).empty();a.each(b.track||[],function(a,b){var d=document.createElement("track");d.setAttribute("kind",b.kind?b.kind:""),d.setAttribute("src",b.src?b.src:""),d.setAttribute("srclang",b.srclang?b.srclang:""),d.setAttribute("label",b.label?b.label:""),b.def&&d.setAttribute("default",b.def),c.append(d)}),this.htmlElement.media.src=this.status.src,"none"!==this.options.preload&&this._html_load(),this._trigger(a.jPlayer.event.timeupdate)},_html_setFormat:function(b){var c=this;a.each(this.formats,function(a,d){return c.html.support[d]&&b[d]?(c.status.src=b[d],c.status.format[d]=!0,c.status.formatType=d,!1):void 0})},_html_setAudio:function(a){this._html_setFormat(a),this.htmlElement.media=this.htmlElement.audio,this._html_initMedia(a)},_html_setVideo:function(a){this._html_setFormat(a),this.status.nativeVideoControls&&(this.htmlElement.video.poster=this._validString(a.poster)?a.poster:""),this.htmlElement.media=this.htmlElement.video,this._html_initMedia(a)},_html_resetMedia:function(){this.htmlElement.media&&(this.htmlElement.media.id!==this.internal.video.id||this.status.nativeVideoControls||this.internal.video.jq.css({width:"0px",height:"0px"}),this.htmlElement.media.pause())},_html_clearMedia:function(){this.htmlElement.media&&(this.htmlElement.media.src="about:blank",this.htmlElement.media.load())},_html_load:function(){this.status.waitForLoad&&(this.status.waitForLoad=!1,this.htmlElement.media.load()),clearTimeout(this.internal.htmlDlyCmdId)},_html_play:function(a){var b=this,c=this.htmlElement.media;if(this.androidFix.pause=!1,this._html_load(),this.androidFix.setMedia)this.androidFix.play=!0,this.androidFix.time=a;else if(isNaN(a))c.play();else{this.internal.cmdsIgnored&&c.play();try{if(c.seekable&&!("object"==typeof c.seekable&&c.seekable.length>0))throw 1;c.currentTime=a,c.play()}catch(d){return void(this.internal.htmlDlyCmdId=setTimeout(function(){b.play(a)},250))}}this._html_checkWaitForPlay()},_html_pause:function(a){var b=this,c=this.htmlElement.media;if(this.androidFix.play=!1,a>0?this._html_load():clearTimeout(this.internal.htmlDlyCmdId),c.pause(),this.androidFix.setMedia)this.androidFix.pause=!0,this.androidFix.time=a;else if(!isNaN(a))try{if(c.seekable&&!("object"==typeof c.seekable&&c.seekable.length>0))throw 1;c.currentTime=a}catch(d){return void(this.internal.htmlDlyCmdId=setTimeout(function(){b.pause(a)},250))}a>0&&this._html_checkWaitForPlay()},_html_playHead:function(a){var b=this,c=this.htmlElement.media;this._html_load();try{if("object"==typeof c.seekable&&c.seekable.length>0)c.currentTime=a*c.seekable.end(c.seekable.length-1)/100;else{if(!(c.duration>0)||isNaN(c.duration))throw"e";c.currentTime=a*c.duration/100}}catch(d){return void(this.internal.htmlDlyCmdId=setTimeout(function(){b.playHead(a)},250))}this.status.waitForLoad||this._html_checkWaitForPlay()},_html_checkWaitForPlay:function(){this.status.waitForPlay&&(this.status.waitForPlay=!1,this.css.jq.videoPlay.length&&this.css.jq.videoPlay.hide(),this.status.video&&(this.internal.poster.jq.hide(),this.internal.video.jq.css({width:this.status.width,height:this.status.height})))},_html_setProperty:function(a,b){this.html.audio.available&&(this.htmlElement.audio[a]=b),this.html.video.available&&(this.htmlElement.video[a]=b)},_aurora_setAudio:function(b){var c=this;a.each(this.formats,function(a,d){return c.aurora.support[d]&&b[d]?(c.status.src=b[d],c.status.format[d]=!0,c.status.formatType=d,!1):void 0}),this.aurora.player=new AV.Player.fromURL(this.status.src),this._addAuroraEventListeners(this.aurora.player,this.aurora),"auto"===this.options.preload&&(this._aurora_load(),this.status.waitForLoad=!1)},_aurora_resetMedia:function(){this.aurora.player&&this.aurora.player.stop()},_aurora_clearMedia:function(){},_aurora_load:function(){this.status.waitForLoad&&(this.status.waitForLoad=!1,this.aurora.player.preload())},_aurora_play:function(b){this.status.waitForLoad||isNaN(b)||this.aurora.player.seek(b),this.aurora.player.playing||this.aurora.player.play(),this.status.waitForLoad=!1,this._aurora_checkWaitForPlay(),this._updateButtons(!0),this._trigger(a.jPlayer.event.play)},_aurora_pause:function(b){isNaN(b)||this.aurora.player.seek(1e3*b),this.aurora.player.pause(),b>0&&this._aurora_checkWaitForPlay(),this._updateButtons(!1),this._trigger(a.jPlayer.event.pause)},_aurora_playHead:function(a){this.aurora.player.duration>0&&this.aurora.player.seek(a*this.aurora.player.duration/100),this.status.waitForLoad||this._aurora_checkWaitForPlay()},_aurora_checkWaitForPlay:function(){this.status.waitForPlay&&(this.status.waitForPlay=!1)},_aurora_volume:function(a){this.aurora.player.volume=100*a},_aurora_mute:function(a){a?(this.aurora.properties.lastvolume=this.aurora.player.volume,this.aurora.player.volume=0):this.aurora.player.volume=this.aurora.properties.lastvolume,this.aurora.properties.muted=a},_flash_setAudio:function(b){var c=this;try{a.each(this.formats,function(a,d){if(c.flash.support[d]&&b[d]){switch(d){case"m4a":case"fla":c._getMovie().fl_setAudio_m4a(b[d]);break;case"mp3":c._getMovie().fl_setAudio_mp3(b[d]);break;case"rtmpa":c._getMovie().fl_setAudio_rtmp(b[d])}return c.status.src=b[d],c.status.format[d]=!0,c.status.formatType=d,!1}}),"auto"===this.options.preload&&(this._flash_load(),this.status.waitForLoad=!1)}catch(d){this._flashError(d)}},_flash_setVideo:function(b){var c=this;try{a.each(this.formats,function(a,d){if(c.flash.support[d]&&b[d]){switch(d){case"m4v":case"flv":c._getMovie().fl_setVideo_m4v(b[d]);break;case"rtmpv":c._getMovie().fl_setVideo_rtmp(b[d])}return c.status.src=b[d],c.status.format[d]=!0,c.status.formatType=d,!1}}),"auto"===this.options.preload&&(this._flash_load(),this.status.waitForLoad=!1)}catch(d){this._flashError(d)}},_flash_resetMedia:function(){this.internal.flash.jq.css({width:"0px",height:"0px"}),this._flash_pause(0/0)},_flash_clearMedia:function(){try{this._getMovie().fl_clearMedia()}catch(a){this._flashError(a)}},_flash_load:function(){try{this._getMovie().fl_load()}catch(a){this._flashError(a)}this.status.waitForLoad=!1},_flash_play:function(a){try{this._getMovie().fl_play(a)}catch(b){this._flashError(b)}this.status.waitForLoad=!1,this._flash_checkWaitForPlay()},_flash_pause:function(a){try{this._getMovie().fl_pause(a)}catch(b){this._flashError(b)}a>0&&(this.status.waitForLoad=!1,this._flash_checkWaitForPlay())},_flash_playHead:function(a){try{this._getMovie().fl_play_head(a)}catch(b){this._flashError(b)}this.status.waitForLoad||this._flash_checkWaitForPlay()},_flash_checkWaitForPlay:function(){this.status.waitForPlay&&(this.status.waitForPlay=!1,this.css.jq.videoPlay.length&&this.css.jq.videoPlay.hide(),this.status.video&&(this.internal.poster.jq.hide(),this.internal.flash.jq.css({width:this.status.width,height:this.status.height})))},_flash_volume:function(a){try{this._getMovie().fl_volume(a)}catch(b){this._flashError(b)}},_flash_mute:function(a){try{this._getMovie().fl_mute(a)}catch(b){this._flashError(b)}},_getMovie:function(){return document[this.internal.flash.id]},_getFlashPluginVersion:function(){var a,b=0;if(window.ActiveXObject)try{if(a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")){var c=a.GetVariable("$version");c&&(c=c.split(" ")[1].split(","),b=parseInt(c[0],10)+"."+parseInt(c[1],10))}}catch(d){}else navigator.plugins&&navigator.mimeTypes.length>0&&(a=navigator.plugins["Shockwave Flash"],a&&(b=navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/,"$1")));return 1*b},_checkForFlash:function(a){var b=!1;return this._getFlashPluginVersion()>=a&&(b=!0),b},_validString:function(a){return a&&"string"==typeof a},_limitValue:function(a,b,c){return b>a?b:a>c?c:a},_urlNotSetError:function(b){this._error({type:a.jPlayer.error.URL_NOT_SET,context:b,message:a.jPlayer.errorMsg.URL_NOT_SET,hint:a.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(b){var c;c=this.internal.ready?"FLASH_DISABLED":"FLASH",this._error({type:a.jPlayer.error[c],context:this.internal.flash.swf,message:a.jPlayer.errorMsg[c]+b.message,hint:a.jPlayer.errorHint[c]}),this.internal.flash.jq.css({width:"1px",height:"1px"})},_error:function(b){this._trigger(a.jPlayer.event.error,b),this.options.errorAlerts&&this._alert("Error!"+(b.message?"\n"+b.message:"")+(b.hint?"\n"+b.hint:"")+"\nContext: "+b.context)},_warning:function(c){this._trigger(a.jPlayer.event.warning,b,c),this.options.warningAlerts&&this._alert("Warning!"+(c.message?"\n"+c.message:"")+(c.hint?"\n"+c.hint:"")+"\nContext: "+c.context)},_alert:function(a){var b="jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+a;this.options.consoleAlerts?window.console&&window.console.log&&window.console.log(b):alert(b)},_emulateHtmlBridge:function(){var b=this;a.each(a.jPlayer.emulateMethods.split(/\s+/g),function(a,c){b.internal.domNode[c]=function(a){b[c](a)}}),a.each(a.jPlayer.event,function(c,d){var e=!0;a.each(a.jPlayer.reservedEvent.split(/\s+/g),function(a,b){return b===c?(e=!1,!1):void 0}),e&&b.element.bind(d+".jPlayer.jPlayerHtml",function(){b._emulateHtmlUpdate();var a=document.createEvent("Event");a.initEvent(c,!1,!0),b.internal.domNode.dispatchEvent(a)})})},_emulateHtmlUpdate:function(){var b=this;a.each(a.jPlayer.emulateStatus.split(/\s+/g),function(a,c){b.internal.domNode[c]=b.status[c]}),a.each(a.jPlayer.emulateOptions.split(/\s+/g),function(a,c){b.internal.domNode[c]=b.options[c]})},_destroyHtmlBridge:function(){var b=this;this.element.unbind(".jPlayerHtml");var c=a.jPlayer.emulateMethods+" "+a.jPlayer.emulateStatus+" "+a.jPlayer.emulateOptions;a.each(c.split(/\s+/g),function(a,c){delete b.internal.domNode[c]})}},a.jPlayer.error={FLASH:"e_flash",FLASH_DISABLED:"e_flash_disabled",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support",URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"},a.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",FLASH_DISABLED:"jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.",NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.",VERSION:"jPlayer "+a.jPlayer.prototype.version.script+" needs Jplayer.swf version "+a.jPlayer.prototype.version.needFlash+" but found "},a.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",FLASH_DISABLED:"Check that you have not display:none; the jPlayer entity or any ancestor.",NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."},a.jPlayer.warning={CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"},a.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of css selectors found did not equal one: ",CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."},a.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}}); \ No newline at end of file From d7f25d91c9c91ff597c9217acd28c5f42df78873 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:22:07 +0200 Subject: [PATCH 069/391] set blue color scheme for toolbar --- website/agenda/css/calcms.css | 7 ++++--- website/agenda/planung/css/admin.css | 15 ++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index 609bffb..c8ed305 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -644,7 +644,7 @@ a#calcms_search_show_details #plus{ #calcms_calendar table thead td:hover, #calcms_calendar table thead th:hover{ - background-color:#ddd; + background-color:#1987d1; } /* header */ @@ -656,10 +656,11 @@ a#calcms_search_show_details #plus{ /* month selector */ #calcms_calendar table thead tr:first-child a{ padding:6px; + color:white; } #calcms_calendar table thead tr:first-child{ - background:#ccc; + background:#007acc; } /* weekdays */ @@ -675,7 +676,7 @@ a#calcms_search_show_details #plus{ #calcms_calendar table tbody td:hover, #calcms_calendar table tbody th:hover{ - background-color:#f0f0f0; + background-color:#4f7acc; } #calcms_calendar table tbody td.calcms_today, diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index e586684..7d5a014 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -122,7 +122,13 @@ body, #calcms_admin_menu, #calcms_admin_menu select{ - background:#444; + background:#004f9b; +} + +#calcms_admin_menu a:hover, +#calcms_admin_menu select:hover{ + background:#007acc; + transition: all 0.5s linear; } #calcms_admin_menu div a, @@ -133,11 +139,6 @@ body, line-height:3em; } -#calcms_admin_menu a:hover, -#calcms_admin_menu select:hover{ - background:#666; -} - #calcms_admin_menu div { transition: background 0.2s; } @@ -536,7 +537,7 @@ input[type='checkbox']{ #calcms_admin_menu .fa, #calcms_admin_menu .far, #calcms_admin_menu .fas{ - color:#777; + opacity:0.4; } #content button.selectImage{ From 8d9042304142dff84cb0001faf4e83df7c4550ed Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:22:41 +0200 Subject: [PATCH 070/391] update jquery --- website/agenda/js/jquery.min.js | 4 ++-- website/agenda/planung/js/jquery.min.js | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/website/agenda/js/jquery.min.js b/website/agenda/js/jquery.min.js index 35a1dfb..806817a 100644 --- a/website/agenda/js/jquery.min.js +++ b/website/agenda/js/jquery.min.js @@ -1,3 +1,3 @@ -/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w}); +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); diff --git a/website/agenda/planung/js/jquery.min.js b/website/agenda/planung/js/jquery.min.js index 769a1d9..806817a 100644 --- a/website/agenda/planung/js/jquery.min.js +++ b/website/agenda/planung/js/jquery.min.js @@ -1,2 +1,3 @@ -/*! jQuery v3.4.0 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.0",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=k.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&A.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!A.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(N(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.attachShadow&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ae(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ne(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ne(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n=void 0,r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(Q.set(this,i,k.event.trigger(k.extend(r.shift(),k.Event.prototype),r,this)),e.stopImmediatePropagation())}})):k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&N(t,"input")&&void 0===Q.get(t,"click")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&N(t,"input")&&void 0===Q.get(t,"click")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&N(t,"input")&&Q.get(t,"click")||N(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ae),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ne(this,e,t,n,r)},one:function(e,t,n,r){return Ne(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var At=/\[\]$/,Nt=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||At.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(Nt,"\r\n")}}):{name:t.name,value:n.replace(Nt,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=N,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); + From 2086e63e673e652d0a401f251640c065bfb91da1 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:24:37 +0200 Subject: [PATCH 071/391] fix audio error calculation --- lib/calcms/audio.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/calcms/audio.pm b/lib/calcms/audio.pm index 4a0510a..81fb16c 100644 --- a/lib/calcms/audio.pm +++ b/lib/calcms/audio.pm @@ -38,7 +38,7 @@ sub formatDuration($$$;$) { ); } - if ( $delta < 99.99 ) { + if ( $delta < 99.98 ) { $class = "error"; $title = sprintf( qq{file is too short! should be %d minutes, but is %d}, From d05f037d1ee9ebd8024bd57c3300ed94045c40c0 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:27:58 +0200 Subject: [PATCH 072/391] use css selector for badges --- lib/calcms/audio.pm | 12 ++++++------ website/agenda/planung/css/admin.css | 24 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/lib/calcms/audio.pm b/lib/calcms/audio.pm index 81fb16c..1f7853c 100644 --- a/lib/calcms/audio.pm +++ b/lib/calcms/audio.pm @@ -48,7 +48,7 @@ sub formatDuration($$$;$) { } - return sprintf( qq{<div class="%s" title="%s">%s</div>}, $class, $title, $value ); + return sprintf( qq{<div class="badge-%s" title="%s">%s</div>}, $class, $title, $value ); } sub formatChannels($) { @@ -56,7 +56,7 @@ sub formatChannels($) { return '' unless $channels; my $class = "ok"; $class = "error" if $channels != 2; - return sprintf( qq{<div class="%s">%d ch.</div>}, $class, $channels ); + return sprintf( qq{<div class="badge-%s">%d ch.</div>}, $class, $channels ); } sub formatSamplingRate($) { @@ -64,7 +64,7 @@ sub formatSamplingRate($) { return '' unless $samplingRate; my $class = "ok"; $class = "error" if $samplingRate != 44100; - return sprintf( qq{<div class="%s">%s Hz</div>}, $class, $samplingRate ); + return sprintf( qq{<div class="badge-%s">%s Hz</div>}, $class, $samplingRate ); } sub formatBitrate($) { @@ -73,7 +73,7 @@ sub formatBitrate($) { my $class = 'ok'; $class = 'warn' if $bitrate >= 200; $class = 'error' if $bitrate < 192; - return sprintf( qq{<div class="%s">%s kBit/s</div>}, $class, $bitrate ); + return sprintf( qq{<div class="badge-%s">%s kBit/s</div>}, $class, $bitrate ); } sub formatBitrateMode($) { @@ -81,7 +81,7 @@ sub formatBitrateMode($) { return '' unless $mode; my $class = 'ok'; $class = 'error' if $mode ne 'CBR'; - return sprintf( qq{<div class="%s">%s</div>}, $class, $mode ); + return sprintf( qq{<div class="badge-%s">%s</div>}, $class, $mode ); } sub formatLoudness { @@ -97,7 +97,7 @@ sub formatLoudness { $class = 'warn' if $value < -24.0; $class = 'error' if $value < -27.0; - return qq{<div class="$class">$prefix$value dB</div>}; + return qq{<div class="badge-$class">$prefix$value dB</div>}; } # do not delete this line diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index 7d5a014..bca6bd7 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -323,6 +323,30 @@ div.error{ background:#d00; } +/* badges */ +div.badge-ok, +div.badge-warn, +div.badge-error{ + border-radius:4px; + display:inline; + margin:3px; + padding:3px; +} + +div.badge-ok{ + color:white; + background:#0c0; +} + +div.badge-warn{ + background:#ff0; +} + +div.badge-error{ + color:white; + background:#d00; +} + #content button, #content select, #content input{ From 131548fe0d38f2d3ac673224d11ebaf81ed1ee1c Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:29:12 +0200 Subject: [PATCH 073/391] enhance link if password forgotten --- lib/calcms/auth.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index a2cc7bc..f28f152 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -255,7 +255,7 @@ sub show_login_form ($$) { if ( ( $user ne '' ) && ( $message ne '' ) ) { $requestReset = qq{ - <a href="requestPassword.cgi?user=$user">forgotten</a> + <a href="requestPassword.cgi?user=$user">Passwort vergessen?</a> }; } From 80b1e484d3f08f5f164953ad59319d68db083fe7 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:29:46 +0200 Subject: [PATCH 074/391] redesign login box --- lib/calcms/auth.pm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index f28f152..c8df203 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -288,6 +288,10 @@ sub show_login_form ($$) { padding:0.5rem; } + input:hover{ + cursor:pointer; + } + .container{ height: 100%; display: table-cell; @@ -301,8 +305,8 @@ sub show_login_form ($$) { } #login_form{ - background:#ddd; - box-shadow: 6px 6px 6px #ccc; + background:#fff; + box-shadow: 1rem 1rem 1rem #eee; margin:1rem; padding:1rem; text-align:center; @@ -315,7 +319,7 @@ sub show_login_form ($$) { #login_form .message{ color:white; - background:#666; + background:#004f9b; text-align:left; font-weight:bold; padding:1rem; @@ -329,6 +333,10 @@ sub show_login_form ($$) { border:0; font-weight:bold; } + a{ + text-decoration:none; + color:#ccf; + } </style> </head> From 39864053db91c330500e8eb2a9d93775ca8035e7 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:30:09 +0200 Subject: [PATCH 075/391] remove compression from template --- lib/calcms/template.pm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index 03eabe9..39a49ed 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -211,24 +211,14 @@ sub check($;$$) { log::error( $config, 'invalid template!' ) if ( $template =~ /\.\./ ); } - #print STDERR $config->{cache}->{compress}."<.compres default:$template\n"; $template = ( split( /\//, $template ) )[-1]; my $cwd = Cwd::getcwd(); $template .= '.html' unless ( $template =~ /\./ ); - if ( ( $config->{cache}->{compress} eq '1' ) - && ( -e $cwd . '/templates/compressed/' . $template ) ) - { - $template = $cwd . '/templates/compressed/' . $template; - } elsif ( -e $cwd . '/templates/' . $template ) { - $template = $cwd . '/templates/' . $template; - } else { - log::error( $config, "template not found: '$cwd/$template'" ); + log::error( $config, "template not found: '$cwd/$template'" ) + unless -e $cwd . '/templates/' . $template; + $template = $cwd . '/templates/' . $template; - } - - log::error( $config, "missing permission to read template '$template'" ) - unless ( -r $template ); return $template; } From bad6d301e54dddfa9f51253ee2abe07a7350d6d0 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:33:02 +0200 Subject: [PATCH 076/391] add nav menu to decrease number of items --- website/agenda/planung/css/admin.css | 25 ++++++++++++++++++- website/agenda/planung/css/calendar.css | 3 +-- website/agenda/planung/js/admin.js | 8 +++--- website/agenda/planung/templates/default.html | 23 +++++++++-------- 4 files changed, 42 insertions(+), 17 deletions(-) diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index bca6bd7..8157ea6 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -539,7 +539,6 @@ input[type='checkbox']{ top:0; left:0; right:0; - justify-content:end; } #calcms_admin_menu div a, @@ -606,3 +605,27 @@ input.image{ text-align:left; } +#calcms_admin_menu .dropdown { + position: relative; + display: inline-block; +} + +#calcms_admin_menu .dropdown-content { + display: none; + position: absolute; + z-index: 100; + text-align:left; + background:#004f9b; + min-width:10rem; +} + +#calcms_admin_menu .dropdown-content a{ + width:20rem; +} + +#calcms_admin_menu .dropdown:hover .dropdown-content { + display: block; + transition: all 1s linear; +} + + diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index 31c9383..93c3a1c 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -354,7 +354,7 @@ input.tablesorter-filter{ } div#toolbar{ - z-index:999; + z-index:9; padding:0; width:100%; background:#ddd; @@ -362,7 +362,6 @@ div#toolbar{ flex-wrap: wrap; align-items: center; vertical-align:middle; - z-index:99; left:0; } diff --git a/website/agenda/planung/js/admin.js b/website/agenda/planung/js/admin.js index fd8131d..ed9293b 100644 --- a/website/agenda/planung/js/admin.js +++ b/website/agenda/planung/js/admin.js @@ -209,7 +209,7 @@ function handleBars(){ var menu=$('#calcms_admin_menu'); menu.toggleClass('mobile'); if (menu.hasClass('mobile')){ - $('#calcms_admin_menu div').show(); + $('#calcms_admin_menu>div').show(); $('#content').hide(); }else{ $('#content').show(); @@ -230,10 +230,10 @@ function setupMenu(update){ if (update == 1){ if (menu.width() < 960){ - $('#calcms_admin_menu div').hide(); - $('#calcms_admin_menu div.mobile').show(); + $('#calcms_admin_menu>div').hide(); + $('#calcms_admin_menu>div.mobile').show(); }else{ - $('#calcms_admin_menu div').show(); + $('#calcms_admin_menu>div').show(); $('#calcms_admin_menu #bars').hide(); menu.removeClass('mobile'); } diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index 1e1fe7f..bf65b0c 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -14,6 +14,11 @@ <div><a href="series.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-list-alt"></i> <TMPL_VAR .loc.series></a></div> </TMPL_IF> +<!-- start menu --> +<div class="dropdown"> +<a href="#"><i class="fas fa-plus"></i> mehr... </a> +<div class="dropdown-content"> + <TMPL_IF .allow.read_playout> <div><a href="show-playout.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-play"></i> <TMPL_VAR .loc.playout></a></div> </TMPL_IF> @@ -26,14 +31,14 @@ <div><a href="roles.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-tasks"></i> <TMPL_VAR .loc.roles></a></div> </TMPL_IF> -<TMPL_IF .allow.read_studio> -<div><a href="studios.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-project-diagram"></i> <TMPL_VAR .loc.studios></a></div> -</TMPL_IF> - <TMPL_IF .allow.read_studio_timeslot_schedule> <div><a href="studio_timeslots.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-clock"></i> <TMPL_VAR .loc.timeslots></a></div> </TMPL_IF> +<TMPL_IF .allow.read_studio> +<div><a href="studios.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-project-diagram"></i> <TMPL_VAR .loc.studios></a></div> +</TMPL_IF> + <TMPL_IF .allow.read_project> <div><a href="projects.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-broadcast-tower"></i> <TMPL_VAR .loc.projects></a></div> </TMPL_IF> @@ -46,16 +51,14 @@ <div><a href="image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>&search=<TMPL_VAR .presets.user>"><i class="fas fa-images"></i> <TMPL_VAR .loc.images></a></div> </TMPL_IF> -<TMPL_IF .allow.scan_series_events> -<!-- -<div><a href="assignments.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><TMPL_VAR .loc.import></a></div> ---> -</TMPL_IF> - <div title="<TMPL_VAR .loc.profile>"><a href="user_settings.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-cog"></i> <TMPL_VAR .loc.profile></a></div> <div title="<TMPL_VAR .loc.help>"><a href="help.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-info"></i> <TMPL_VAR .loc.help></a></div> +<!--end menu --> +</div> +</div> + <div class="mobile"> <i class="fas fa-home"></i> <select id="studio_id" name="studio_id" onchange="set_studio($(this).val())"> From 1cb4c6b23e2038d3b47216eb85d6b0675f0782da Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:34:12 +0200 Subject: [PATCH 077/391] disable not-working history fix --- website/agenda/planung/js/history.js | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/website/agenda/planung/js/history.js b/website/agenda/planung/js/history.js index 2c9100c..f5e22ca 100644 --- a/website/agenda/planung/js/history.js +++ b/website/agenda/planung/js/history.js @@ -50,24 +50,28 @@ function isNewToHistory(url){ var history = getHistory(); //last page already in history - if (history[0] == url) return null; + if ( history[0] == url) return null; + //replace url in history by current one, if controller is the same var urlController=url.split('.cgi').shift(); var historyController=history[0].split('.cgi').shift(); - //remove last entry on same controller if(urlController==historyController){ - var ignore=0; + console.log("same controller\n"+url+"\n"+history[0]) + //var ignore=0; //provide back to series from series details - if(contains(url,'series')){ + //if(contains(url,'series')){ //console.log(url); //console.log(history[0]); - if( (contains(url,'series_id')==true) && (contains(history[0],'series_id')==false)) ignore=1; + //if( (contains(url,'series_id')==true) && (contains(history[0],'series_id')==false)) ignore=1; //console.log(ignore); - } - if (ignore==0) history.shift(); + //} + //if (ignore==0) + //history.shift(); + return null; } + return history; } @@ -101,22 +105,22 @@ function appendHistory(url, rewrite){ function showHistory(){ var history=getHistory(); - var s='<pre style="z-index:110;position:absolute;right:0;top:0">'; + var s='<pre style="z-index:110;position:absolute;right:0;top:0;padding:0">'; for (var i=5; i>=0;i--){ if(history[i]!=null) s+=i+" "+history[i]+"\n"; } s+='</pre>'; - //alert(s) $('#content').prepend(s); } function getBack(){ var history=getHistory(); - //alert("getBack") if (history.length==0)return; + //remove current page - history.shift(); + var url=history.shift(); if (history.length==0)return; + //remove previous page var url=history.shift(); setCookie("history", history.join("|")); From 300165a7f46191ff95018f42c80994b4a29876ca Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:35:28 +0200 Subject: [PATCH 078/391] prevent undef in calendar checkbox/toolbar --- website/agenda/planung/js/calendar.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index b4dee3b..d47e17f 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -537,10 +537,10 @@ function initCalendarMenu(){ //add filters to header //var html='<div style="white-space: nowrap;">'; var html=''; - html += '<div><input id="show_events" type="checkbox" checked="checked">'+label_events+'</div>'; - html += '<div><input id="show_schedule" type="checkbox" checked="checked">'+label_schedule+'</div>'; - html += '<div><input id="show_playout" type="checkbox" checked="checked">'+label_playout+'</div>'; - html += '<div><input id="show_worktime" type="checkbox" >'+label_worktime+'</div>'; + html += '<div><input id="show_events" type="checkbox" checked="checked">'+(label_events || "label") +'</div>'; + html += '<div><input id="show_schedule" type="checkbox" checked="checked">'+(label_schedule || "schedule")+'</div>'; + html += '<div><input id="show_playout" type="checkbox" checked="checked">'+(label_playout || "playout")+'</div>'; + html += '<div><input id="show_worktime" type="checkbox" >'+(label_worktime || "worktime")+'</div>'; //html += '</div>'; $('#toolbar').append(html); @@ -1062,5 +1062,6 @@ $(document).ready(function(){ }else{ loadCalendarList(); } - }); + +}); From d191193795c725ce720d94fa21493a6ac3a1690b Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:36:15 +0200 Subject: [PATCH 079/391] redesign timepicker in calendar --- .../planung/css/jquery-ui-timepicker.css | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/website/agenda/planung/css/jquery-ui-timepicker.css b/website/agenda/planung/css/jquery-ui-timepicker.css index 02f77ba..b324763 100644 --- a/website/agenda/planung/css/jquery-ui-timepicker.css +++ b/website/agenda/planung/css/jquery-ui-timepicker.css @@ -28,3 +28,25 @@ .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before { content:'.'; display:inline-block; } .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide, .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{ display: none; } + +/* customizations */ +.ui-corner-all, +.ui-datepicker-div, +.ui-datepicker-header, +.ui-datepicker-header select{ + border-radius:0!important; + border:0; +} +.ui-datepicker-header select{ + padding:6px; +} +.ui-datepicker td span, +.ui-datepicker td a{ + padding:6px; + border:0; +} + +.ui-datepicker .ui-state-default{ + border:0; +} + From 253740c5eface0e7fd131451be925450cf410ee6 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 00:37:08 +0200 Subject: [PATCH 080/391] remove feed icons from detail view --- website/agenda/templates/event_list.html | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/website/agenda/templates/event_list.html b/website/agenda/templates/event_list.html index 44f0ba0..f536920 100644 --- a/website/agenda/templates/event_list.html +++ b/website/agenda/templates/event_list.html @@ -51,19 +51,6 @@ </TMPL_LOOP> </div> -<TMPL_UNLESS no_result> -<TMPL_UNLESS no_search_result> -<!--onclick="calcms.selectListEventListener('<TMPL_VAR event_id>');return false;"--> -<div id="icon_bar"> - <a href="<TMPL_VAR .controllers.domain><TMPL_VAR .controllers.atom>/radio.atom.xml" title="Sendeplan abonnieren - Atom"><img width="16" height="16" alt="Atom Feed" src="<TMPL_VAR static_files_url>image/feed.png" /></a> - <a href="<TMPL_VAR .controllers.domain><TMPL_VAR .controllers.rss>/radio.rss.xml" title="Sendeplan abonnieren - RSS"><img width="16" height="16" alt="RSS Feed" src="<TMPL_VAR static_files_url>image/feed.png" /></a> - <a href="<TMPL_VAR .controllers.domain><TMPL_VAR .controllers.ical>/<TMPL_VAR month>/" title="alle Sendungen des Monats merken"><img width="16" height="16" alt="Icalendar" src="<TMPL_VAR static_files_url>image/icals.png" /></a> - <a href="<TMPL_VAR .controllers.domain><TMPL_VAR .controllers.ical>/<TMPL_VAR month>/" onclick="calcms.selectICalEventListener();return false;" title="gewaehlte Sendungen merken"><img width="16" height="16" alt="ICalendar" src="<TMPL_VAR static_files_url>image/ical.png"/></a> - -</div> -</TMPL_UNLESS> -</TMPL_UNLESS> - </body> </html> From edf6028f5ff14fbcaa4a580d8e38f5dcff741ef2 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 12:52:34 +0200 Subject: [PATCH 081/391] remove unused css --- website/agenda/css/calcms_drupal.css | 42 - website/agenda/css/jquery-ui.css | 1225 ----------------- website/agenda/css/jquery-ui.structure.css | 833 ----------- .../agenda/css/jquery-ui.structure.min.css | 5 - website/agenda/css/jquery-ui.theme.css | 410 ------ website/agenda/css/jquery-ui.theme.min.css | 5 - website/agenda/css/mobile.css | 650 --------- 7 files changed, 3170 deletions(-) delete mode 100644 website/agenda/css/calcms_drupal.css delete mode 100644 website/agenda/css/jquery-ui.css delete mode 100644 website/agenda/css/jquery-ui.structure.css delete mode 100644 website/agenda/css/jquery-ui.structure.min.css delete mode 100644 website/agenda/css/jquery-ui.theme.css delete mode 100644 website/agenda/css/jquery-ui.theme.min.css delete mode 100644 website/agenda/css/mobile.css diff --git a/website/agenda/css/calcms_drupal.css b/website/agenda/css/calcms_drupal.css deleted file mode 100644 index ea46d40..0000000 --- a/website/agenda/css/calcms_drupal.css +++ /dev/null @@ -1,42 +0,0 @@ -/* - - This css is to be included at drupal's programm page type only. - It disables drupal's search block, since calcms needs to use its own. - -*/ - -#search-theme-form { - display: none; - visibility:hidden; -} - -.content ul li, -.content ul.menu li, -.content .item-list ul li, -.content li.leaf{ - margin:-0.15em 0 -0.15em -0.4em - } - -.content ul li{ - clear:both; -} - - -.content ul ul { - margin-left:20px; -} - -.content ul ul ul { - margin-left:40px; -} - -.content ul ul ul ul { - margin-left:60px; -} - - - -#calcms_menu a:hover, -#calcms_calendar a:hover{ - text-decoration:underline; -} diff --git a/website/agenda/css/jquery-ui.css b/website/agenda/css/jquery-ui.css deleted file mode 100644 index 334bea3..0000000 --- a/website/agenda/css/jquery-ui.css +++ /dev/null @@ -1,1225 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-10-09 -* http://jqueryui.com -* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { - display: none; -} -.ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.ui-helper-reset { - margin: 0; - padding: 0; - border: 0; - outline: 0; - line-height: 1.3; - text-decoration: none; - font-size: 100%; - list-style: none; -} -.ui-helper-clearfix:before, -.ui-helper-clearfix:after { - content: ""; - display: table; - border-collapse: collapse; -} -.ui-helper-clearfix:after { - clear: both; -} -.ui-helper-clearfix { - min-height: 0; /* support: IE7 */ -} -.ui-helper-zfix { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; - opacity: 0; - filter:Alpha(Opacity=0); /* support: IE8 */ -} - -.ui-front { - z-index: 100; -} - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { - cursor: default !important; -} - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.ui-draggable-handle { - -ms-touch-action: none; - touch-action: none; -} -.ui-resizable { - position: relative; -} -.ui-resizable-handle { - position: absolute; - font-size: 0.1px; - display: block; - -ms-touch-action: none; - touch-action: none; -} -.ui-resizable-disabled .ui-resizable-handle, -.ui-resizable-autohide .ui-resizable-handle { - display: none; -} -.ui-resizable-n { - cursor: n-resize; - height: 7px; - width: 100%; - top: -5px; - left: 0; -} -.ui-resizable-s { - cursor: s-resize; - height: 7px; - width: 100%; - bottom: -5px; - left: 0; -} -.ui-resizable-e { - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; -} -.ui-resizable-w { - cursor: w-resize; - width: 7px; - left: -5px; - top: 0; - height: 100%; -} -.ui-resizable-se { - cursor: se-resize; - width: 12px; - height: 12px; - right: 1px; - bottom: 1px; -} -.ui-resizable-sw { - cursor: sw-resize; - width: 9px; - height: 9px; - left: -5px; - bottom: -5px; -} -.ui-resizable-nw { - cursor: nw-resize; - width: 9px; - height: 9px; - left: -5px; - top: -5px; -} -.ui-resizable-ne { - cursor: ne-resize; - width: 9px; - height: 9px; - right: -5px; - top: -5px; -} -.ui-selectable { - -ms-touch-action: none; - touch-action: none; -} -.ui-selectable-helper { - position: absolute; - z-index: 100; - border: 1px dotted black; -} -.ui-sortable-handle { - -ms-touch-action: none; - touch-action: none; -} -.ui-accordion .ui-accordion-header { - display: block; - cursor: pointer; - position: relative; - margin: 2px 0 0 0; - padding: .5em .5em .5em .7em; - min-height: 0; /* support: IE7 */ - font-size: 100%; -} -.ui-accordion .ui-accordion-icons { - padding-left: 2.2em; -} -.ui-accordion .ui-accordion-icons .ui-accordion-icons { - padding-left: 2.2em; -} -.ui-accordion .ui-accordion-header .ui-accordion-header-icon { - position: absolute; - left: .5em; - top: 50%; - margin-top: -8px; -} -.ui-accordion .ui-accordion-content { - padding: 1em 2.2em; - border-top: 0; - overflow: auto; -} -.ui-autocomplete { - position: absolute; - top: 0; - left: 0; - cursor: default; -} -.ui-button { - display: inline-block; - position: relative; - padding: 0; - line-height: normal; - margin-right: .1em; - cursor: pointer; - vertical-align: middle; - text-align: center; - overflow: visible; /* removes extra width in IE */ -} -.ui-button, -.ui-button:link, -.ui-button:visited, -.ui-button:hover, -.ui-button:active { - text-decoration: none; -} -/* to make room for the icon, a width needs to be set here */ -.ui-button-icon-only { - width: 2.2em; -} -/* button elements seem to need a little more width */ -button.ui-button-icon-only { - width: 2.4em; -} -.ui-button-icons-only { - width: 3.4em; -} -button.ui-button-icons-only { - width: 3.7em; -} - -/* button text element */ -.ui-button .ui-button-text { - display: block; - line-height: normal; -} -.ui-button-text-only .ui-button-text { - padding: .4em 1em; -} -.ui-button-icon-only .ui-button-text, -.ui-button-icons-only .ui-button-text { - padding: .4em; - text-indent: -9999999px; -} -.ui-button-text-icon-primary .ui-button-text, -.ui-button-text-icons .ui-button-text { - padding: .4em 1em .4em 2.1em; -} -.ui-button-text-icon-secondary .ui-button-text, -.ui-button-text-icons .ui-button-text { - padding: .4em 2.1em .4em 1em; -} -.ui-button-text-icons .ui-button-text { - padding-left: 2.1em; - padding-right: 2.1em; -} -/* no icon support for input elements, provide padding by default */ -input.ui-button { - padding: .4em 1em; -} - -/* button icon element(s) */ -.ui-button-icon-only .ui-icon, -.ui-button-text-icon-primary .ui-icon, -.ui-button-text-icon-secondary .ui-icon, -.ui-button-text-icons .ui-icon, -.ui-button-icons-only .ui-icon { - position: absolute; - top: 50%; - margin-top: -8px; -} -.ui-button-icon-only .ui-icon { - left: 50%; - margin-left: -8px; -} -.ui-button-text-icon-primary .ui-button-icon-primary, -.ui-button-text-icons .ui-button-icon-primary, -.ui-button-icons-only .ui-button-icon-primary { - left: .5em; -} -.ui-button-text-icon-secondary .ui-button-icon-secondary, -.ui-button-text-icons .ui-button-icon-secondary, -.ui-button-icons-only .ui-button-icon-secondary { - right: .5em; -} - -/* button sets */ -.ui-buttonset { - margin-right: 7px; -} -.ui-buttonset .ui-button { - margin-left: 0; - margin-right: -.3em; -} - -/* workarounds */ -/* reset extra padding in Firefox, see h5bp.com/l */ -input.ui-button::-moz-focus-inner, -button.ui-button::-moz-focus-inner { - border: 0; - padding: 0; -} -.ui-datepicker { - width: 17em; - padding: .2em .2em 0; - display: none; -} -.ui-datepicker .ui-datepicker-header { - position: relative; - padding: .2em 0; -} -.ui-datepicker .ui-datepicker-prev, -.ui-datepicker .ui-datepicker-next { - position: absolute; - top: 2px; - width: 1.8em; - height: 1.8em; -} -.ui-datepicker .ui-datepicker-prev-hover, -.ui-datepicker .ui-datepicker-next-hover { - top: 1px; -} -.ui-datepicker .ui-datepicker-prev { - left: 2px; -} -.ui-datepicker .ui-datepicker-next { - right: 2px; -} -.ui-datepicker .ui-datepicker-prev-hover { - left: 1px; -} -.ui-datepicker .ui-datepicker-next-hover { - right: 1px; -} -.ui-datepicker .ui-datepicker-prev span, -.ui-datepicker .ui-datepicker-next span { - display: block; - position: absolute; - left: 50%; - margin-left: -8px; - top: 50%; - margin-top: -8px; -} -.ui-datepicker .ui-datepicker-title { - margin: 0 2.3em; - line-height: 1.8em; - text-align: center; -} -.ui-datepicker .ui-datepicker-title select { - font-size: 1em; - margin: 1px 0; -} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { - width: 45%; -} -.ui-datepicker table { - width: 100%; - font-size: .9em; - border-collapse: collapse; - margin: 0 0 .4em; -} -.ui-datepicker th { - padding: .7em .3em; - text-align: center; - font-weight: bold; - border: 0; -} -.ui-datepicker td { - border: 0; - padding: 1px; -} -.ui-datepicker td span, -.ui-datepicker td a { - display: block; - padding: .2em; - text-align: right; - text-decoration: none; -} -.ui-datepicker .ui-datepicker-buttonpane { - background-image: none; - margin: .7em 0 0 0; - padding: 0 .2em; - border-left: 0; - border-right: 0; - border-bottom: 0; -} -.ui-datepicker .ui-datepicker-buttonpane button { - float: right; - margin: .5em .2em .4em; - cursor: pointer; - padding: .2em .6em .3em .6em; - width: auto; - overflow: visible; -} -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { - float: left; -} - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { - width: auto; -} -.ui-datepicker-multi .ui-datepicker-group { - float: left; -} -.ui-datepicker-multi .ui-datepicker-group table { - width: 95%; - margin: 0 auto .4em; -} -.ui-datepicker-multi-2 .ui-datepicker-group { - width: 50%; -} -.ui-datepicker-multi-3 .ui-datepicker-group { - width: 33.3%; -} -.ui-datepicker-multi-4 .ui-datepicker-group { - width: 25%; -} -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { - border-left-width: 0; -} -.ui-datepicker-multi .ui-datepicker-buttonpane { - clear: left; -} -.ui-datepicker-row-break { - clear: both; - width: 100%; - font-size: 0; -} - -/* RTL support */ -.ui-datepicker-rtl { - direction: rtl; -} -.ui-datepicker-rtl .ui-datepicker-prev { - right: 2px; - left: auto; -} -.ui-datepicker-rtl .ui-datepicker-next { - left: 2px; - right: auto; -} -.ui-datepicker-rtl .ui-datepicker-prev:hover { - right: 1px; - left: auto; -} -.ui-datepicker-rtl .ui-datepicker-next:hover { - left: 1px; - right: auto; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane { - clear: right; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane button { - float: left; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, -.ui-datepicker-rtl .ui-datepicker-group { - float: right; -} -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { - border-right-width: 0; - border-left-width: 1px; -} -.ui-dialog { - overflow: hidden; - position: absolute; - top: 0; - left: 0; - padding: .2em; - outline: 0; -} -.ui-dialog .ui-dialog-titlebar { - padding: .4em 1em; - position: relative; -} -.ui-dialog .ui-dialog-title { - float: left; - margin: .1em 0; - white-space: nowrap; - width: 90%; - overflow: hidden; - text-overflow: ellipsis; -} -.ui-dialog .ui-dialog-titlebar-close { - position: absolute; - right: .3em; - top: 50%; - width: 20px; - margin: -10px 0 0 0; - padding: 1px; - height: 20px; -} -.ui-dialog .ui-dialog-content { - position: relative; - border: 0; - padding: .5em 1em; - background: none; - overflow: auto; -} -.ui-dialog .ui-dialog-buttonpane { - text-align: left; - border-width: 1px 0 0 0; - background-image: none; - margin-top: .5em; - padding: .3em 1em .5em .4em; -} -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { - float: right; -} -.ui-dialog .ui-dialog-buttonpane button { - margin: .5em .4em .5em 0; - cursor: pointer; -} -.ui-dialog .ui-resizable-se { - width: 12px; - height: 12px; - right: -5px; - bottom: -5px; - background-position: 16px 16px; -} -.ui-draggable .ui-dialog-titlebar { - cursor: move; -} -.ui-menu { - list-style: none; - padding: 0; - margin: 0; - display: block; - outline: none; -} -.ui-menu .ui-menu { - position: absolute; -} -.ui-menu .ui-menu-item { - position: relative; - margin: 0; - padding: 3px 1em 3px .4em; - cursor: pointer; - min-height: 0; /* support: IE7 */ - /* support: IE10, see #8844 */ - list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); -} -.ui-menu .ui-menu-divider { - margin: 5px 0; - height: 0; - font-size: 0; - line-height: 0; - border-width: 1px 0 0 0; -} -.ui-menu .ui-state-focus, -.ui-menu .ui-state-active { - margin: -1px; -} - -/* icon support */ -.ui-menu-icons { - position: relative; -} -.ui-menu-icons .ui-menu-item { - padding-left: 2em; -} - -/* left-aligned */ -.ui-menu .ui-icon { - position: absolute; - top: 0; - bottom: 0; - left: .2em; - margin: auto 0; -} - -/* right-aligned */ -.ui-menu .ui-menu-icon { - left: auto; - right: 0; -} -.ui-progressbar { - height: 2em; - text-align: left; - overflow: hidden; -} -.ui-progressbar .ui-progressbar-value { - margin: -1px; - height: 100%; -} -.ui-progressbar .ui-progressbar-overlay { - background: url("data:image/gif;base64,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"); - height: 100%; - filter: alpha(opacity=25); /* support: IE8 */ - opacity: 0.25; -} -.ui-progressbar-indeterminate .ui-progressbar-value { - background-image: none; -} -.ui-selectmenu-menu { - padding: 0; - margin: 0; - position: absolute; - top: 0; - left: 0; - display: none; -} -.ui-selectmenu-menu .ui-menu { - overflow: auto; - /* Support: IE7 */ - overflow-x: hidden; - padding-bottom: 1px; -} -.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { - font-size: 1em; - font-weight: bold; - line-height: 1.5; - padding: 2px 0.4em; - margin: 0.5em 0 0 0; - height: auto; - border: 0; -} -.ui-selectmenu-open { - display: block; -} -.ui-selectmenu-button { - display: inline-block; - overflow: hidden; - position: relative; - text-decoration: none; - cursor: pointer; -} -.ui-selectmenu-button span.ui-icon { - right: 0.5em; - left: auto; - margin-top: -8px; - position: absolute; - top: 50%; -} -.ui-selectmenu-button span.ui-selectmenu-text { - text-align: left; - padding: 0.4em 2.1em 0.4em 1em; - display: block; - line-height: 1.4; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.ui-slider { - position: relative; - text-align: left; -} -.ui-slider .ui-slider-handle { - position: absolute; - z-index: 2; - width: 1.2em; - height: 1.2em; - cursor: default; - -ms-touch-action: none; - touch-action: none; -} -.ui-slider .ui-slider-range { - position: absolute; - z-index: 1; - font-size: .7em; - display: block; - border: 0; - background-position: 0 0; -} - -/* support: IE8 - See #6727 */ -.ui-slider.ui-state-disabled .ui-slider-handle, -.ui-slider.ui-state-disabled .ui-slider-range { - filter: inherit; -} - -.ui-slider-horizontal { - height: .8em; -} -.ui-slider-horizontal .ui-slider-handle { - top: -.3em; - margin-left: -.6em; -} -.ui-slider-horizontal .ui-slider-range { - top: 0; - height: 100%; -} -.ui-slider-horizontal .ui-slider-range-min { - left: 0; -} -.ui-slider-horizontal .ui-slider-range-max { - right: 0; -} - -.ui-slider-vertical { - width: .8em; - height: 100px; -} -.ui-slider-vertical .ui-slider-handle { - left: -.3em; - margin-left: 0; - margin-bottom: -.6em; -} -.ui-slider-vertical .ui-slider-range { - left: 0; - width: 100%; -} -.ui-slider-vertical .ui-slider-range-min { - bottom: 0; -} -.ui-slider-vertical .ui-slider-range-max { - top: 0; -} -.ui-spinner { - position: relative; - display: inline-block; - overflow: hidden; - padding: 0; - vertical-align: middle; -} -.ui-spinner-input { - border: none; - background: none; - color: inherit; - padding: 0; - margin: .2em 0; - vertical-align: middle; - margin-left: .4em; - margin-right: 22px; -} -.ui-spinner-button { - width: 16px; - height: 50%; - font-size: .5em; - padding: 0; - margin: 0; - text-align: center; - position: absolute; - cursor: default; - display: block; - overflow: hidden; - right: 0; -} -/* more specificity required here to override default borders */ -.ui-spinner a.ui-spinner-button { - border-top: none; - border-bottom: none; - border-right: none; -} -/* vertically center icon */ -.ui-spinner .ui-icon { - position: absolute; - margin-top: -8px; - top: 50%; - left: 0; -} -.ui-spinner-up { - top: 0; -} -.ui-spinner-down { - bottom: 0; -} - -/* TR overrides */ -.ui-spinner .ui-icon-triangle-1-s { - /* need to fix icons sprite */ - background-position: -65px -16px; -} -.ui-tabs { - position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ - padding: .2em; -} -.ui-tabs .ui-tabs-nav { - margin: 0; - padding: .2em .2em 0; -} -.ui-tabs .ui-tabs-nav li { - list-style: none; - float: left; - position: relative; - top: 0; - margin: 1px .2em 0 0; - border-bottom-width: 0; - padding: 0; - white-space: nowrap; -} -.ui-tabs .ui-tabs-nav .ui-tabs-anchor { - float: left; - padding: .5em 1em; - text-decoration: none; -} -.ui-tabs .ui-tabs-nav li.ui-tabs-active { - margin-bottom: -1px; - padding-bottom: 1px; -} -.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, -.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, -.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { - cursor: text; -} -.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { - cursor: pointer; -} -.ui-tabs .ui-tabs-panel { - display: block; - border-width: 0; - padding: 1em 1.4em; - background: none; -} -.ui-tooltip { - padding: 8px; - position: absolute; - z-index: 9999; - max-width: 300px; - -webkit-box-shadow: 0 0 5px #aaa; - box-shadow: 0 0 5px #aaa; -} -body .ui-tooltip { - border-width: 2px; -} - -/* Component containers -----------------------------------*/ -.ui-widget { - font-family: Verdana,Arial,sans-serif; - font-size: 1.1em; -} -.ui-widget .ui-widget { - font-size: 1em; -} -.ui-widget input, -.ui-widget select, -.ui-widget textarea, -.ui-widget button { - font-family: Verdana,Arial,sans-serif; - font-size: 1em; -} -.ui-widget-content { - border: 1px solid #aaaaaa; - background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x; - color: #222222; -} -.ui-widget-content a { - color: #222222; -} -.ui-widget-header { - border: 1px solid #aaaaaa; - background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x; - color: #222222; - font-weight: bold; -} -.ui-widget-header a { - color: #222222; -} - -/* Interaction states -----------------------------------*/ -.ui-state-default, -.ui-widget-content .ui-state-default, -.ui-widget-header .ui-state-default { - border: 1px solid #d3d3d3; - background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x; - font-weight: normal; - color: #555555; -} -.ui-state-default a, -.ui-state-default a:link, -.ui-state-default a:visited { - color: #555555; - text-decoration: none; -} -.ui-state-hover, -.ui-widget-content .ui-state-hover, -.ui-widget-header .ui-state-hover, -.ui-state-focus, -.ui-widget-content .ui-state-focus, -.ui-widget-header .ui-state-focus { - border: 1px solid #999999; - background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -.ui-state-hover a, -.ui-state-hover a:hover, -.ui-state-hover a:link, -.ui-state-hover a:visited, -.ui-state-focus a, -.ui-state-focus a:hover, -.ui-state-focus a:link, -.ui-state-focus a:visited { - color: #212121; - text-decoration: none; -} -.ui-state-active, -.ui-widget-content .ui-state-active, -.ui-widget-header .ui-state-active { - border: 1px solid #aaaaaa; - background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -.ui-state-active a, -.ui-state-active a:link, -.ui-state-active a:visited { - color: #212121; - text-decoration: none; -} - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, -.ui-widget-content .ui-state-highlight, -.ui-widget-header .ui-state-highlight { - border: 1px solid #fcefa1; - background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; - color: #363636; -} -.ui-state-highlight a, -.ui-widget-content .ui-state-highlight a, -.ui-widget-header .ui-state-highlight a { - color: #363636; -} -.ui-state-error, -.ui-widget-content .ui-state-error, -.ui-widget-header .ui-state-error { - border: 1px solid #cd0a0a; - background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x; - color: #cd0a0a; -} -.ui-state-error a, -.ui-widget-content .ui-state-error a, -.ui-widget-header .ui-state-error a { - color: #cd0a0a; -} -.ui-state-error-text, -.ui-widget-content .ui-state-error-text, -.ui-widget-header .ui-state-error-text { - color: #cd0a0a; -} -.ui-priority-primary, -.ui-widget-content .ui-priority-primary, -.ui-widget-header .ui-priority-primary { - font-weight: bold; -} -.ui-priority-secondary, -.ui-widget-content .ui-priority-secondary, -.ui-widget-header .ui-priority-secondary { - opacity: .7; - filter:Alpha(Opacity=70); /* support: IE8 */ - font-weight: normal; -} -.ui-state-disabled, -.ui-widget-content .ui-state-disabled, -.ui-widget-header .ui-state-disabled { - opacity: .35; - filter:Alpha(Opacity=35); /* support: IE8 */ - background-image: none; -} -.ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ -} - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { - width: 16px; - height: 16px; -} -.ui-icon, -.ui-widget-content .ui-icon { - background-image: url("images/ui-icons_222222_256x240.png"); -} -.ui-widget-header .ui-icon { - background-image: url("images/ui-icons_222222_256x240.png"); -} -.ui-state-default .ui-icon { - background-image: url("images/ui-icons_888888_256x240.png"); -} -.ui-state-hover .ui-icon, -.ui-state-focus .ui-icon { - background-image: url("images/ui-icons_454545_256x240.png"); -} -.ui-state-active .ui-icon { - background-image: url("images/ui-icons_454545_256x240.png"); -} -.ui-state-highlight .ui-icon { - background-image: url("images/ui-icons_2e83ff_256x240.png"); -} -.ui-state-error .ui-icon, -.ui-state-error-text .ui-icon { - background-image: url("images/ui-icons_cd0a0a_256x240.png"); -} - -/* positioning */ -.ui-icon-blank { background-position: 16px 16px; } -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-on { background-position: -96px -144px; } -.ui-icon-radio-off { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, -.ui-corner-top, -.ui-corner-left, -.ui-corner-tl { - border-top-left-radius: 4px; -} -.ui-corner-all, -.ui-corner-top, -.ui-corner-right, -.ui-corner-tr { - border-top-right-radius: 4px; -} -.ui-corner-all, -.ui-corner-bottom, -.ui-corner-left, -.ui-corner-bl { - border-bottom-left-radius: 4px; -} -.ui-corner-all, -.ui-corner-bottom, -.ui-corner-right, -.ui-corner-br { - border-bottom-right-radius: 4px; -} - -/* Overlays */ -.ui-widget-overlay { - background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); /* support: IE8 */ -} -.ui-widget-shadow { - margin: -8px 0 0 -8px; - padding: 8px; - background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); /* support: IE8 */ - border-radius: 8px; -} diff --git a/website/agenda/css/jquery-ui.structure.css b/website/agenda/css/jquery-ui.structure.css deleted file mode 100644 index 8184e15..0000000 --- a/website/agenda/css/jquery-ui.structure.css +++ /dev/null @@ -1,833 +0,0 @@ -/*! - * jQuery UI CSS Framework 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/category/theming/ - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { - display: none; -} -.ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.ui-helper-reset { - margin: 0; - padding: 0; - border: 0; - outline: 0; - line-height: 1.3; - text-decoration: none; - font-size: 100%; - list-style: none; -} -.ui-helper-clearfix:before, -.ui-helper-clearfix:after { - content: ""; - display: table; - border-collapse: collapse; -} -.ui-helper-clearfix:after { - clear: both; -} -.ui-helper-clearfix { - min-height: 0; /* support: IE7 */ -} -.ui-helper-zfix { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; - opacity: 0; - filter:Alpha(Opacity=0); /* support: IE8 */ -} - -.ui-front { - z-index: 100; -} - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { - cursor: default !important; -} - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.ui-draggable-handle { - -ms-touch-action: none; - touch-action: none; -} -.ui-resizable { - position: relative; -} -.ui-resizable-handle { - position: absolute; - font-size: 0.1px; - display: block; - -ms-touch-action: none; - touch-action: none; -} -.ui-resizable-disabled .ui-resizable-handle, -.ui-resizable-autohide .ui-resizable-handle { - display: none; -} -.ui-resizable-n { - cursor: n-resize; - height: 7px; - width: 100%; - top: -5px; - left: 0; -} -.ui-resizable-s { - cursor: s-resize; - height: 7px; - width: 100%; - bottom: -5px; - left: 0; -} -.ui-resizable-e { - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; -} -.ui-resizable-w { - cursor: w-resize; - width: 7px; - left: -5px; - top: 0; - height: 100%; -} -.ui-resizable-se { - cursor: se-resize; - width: 12px; - height: 12px; - right: 1px; - bottom: 1px; -} -.ui-resizable-sw { - cursor: sw-resize; - width: 9px; - height: 9px; - left: -5px; - bottom: -5px; -} -.ui-resizable-nw { - cursor: nw-resize; - width: 9px; - height: 9px; - left: -5px; - top: -5px; -} -.ui-resizable-ne { - cursor: ne-resize; - width: 9px; - height: 9px; - right: -5px; - top: -5px; -} -.ui-selectable { - -ms-touch-action: none; - touch-action: none; -} -.ui-selectable-helper { - position: absolute; - z-index: 100; - border: 1px dotted black; -} -.ui-sortable-handle { - -ms-touch-action: none; - touch-action: none; -} -.ui-accordion .ui-accordion-header { - display: block; - cursor: pointer; - position: relative; - margin: 2px 0 0 0; - padding: .5em .5em .5em .7em; - min-height: 0; /* support: IE7 */ - font-size: 100%; -} -.ui-accordion .ui-accordion-icons { - padding-left: 2.2em; -} -.ui-accordion .ui-accordion-icons .ui-accordion-icons { - padding-left: 2.2em; -} -.ui-accordion .ui-accordion-header .ui-accordion-header-icon { - position: absolute; - left: .5em; - top: 50%; - margin-top: -8px; -} -.ui-accordion .ui-accordion-content { - padding: 1em 2.2em; - border-top: 0; - overflow: auto; -} -.ui-autocomplete { - position: absolute; - top: 0; - left: 0; - cursor: default; -} -.ui-button { - display: inline-block; - position: relative; - padding: 0; - line-height: normal; - margin-right: .1em; - cursor: pointer; - vertical-align: middle; - text-align: center; - overflow: visible; /* removes extra width in IE */ -} -.ui-button, -.ui-button:link, -.ui-button:visited, -.ui-button:hover, -.ui-button:active { - text-decoration: none; -} -/* to make room for the icon, a width needs to be set here */ -.ui-button-icon-only { - width: 2.2em; -} -/* button elements seem to need a little more width */ -button.ui-button-icon-only { - width: 2.4em; -} -.ui-button-icons-only { - width: 3.4em; -} -button.ui-button-icons-only { - width: 3.7em; -} - -/* button text element */ -.ui-button .ui-button-text { - display: block; - line-height: normal; -} -.ui-button-text-only .ui-button-text { - padding: .4em 1em; -} -.ui-button-icon-only .ui-button-text, -.ui-button-icons-only .ui-button-text { - padding: .4em; - text-indent: -9999999px; -} -.ui-button-text-icon-primary .ui-button-text, -.ui-button-text-icons .ui-button-text { - padding: .4em 1em .4em 2.1em; -} -.ui-button-text-icon-secondary .ui-button-text, -.ui-button-text-icons .ui-button-text { - padding: .4em 2.1em .4em 1em; -} -.ui-button-text-icons .ui-button-text { - padding-left: 2.1em; - padding-right: 2.1em; -} -/* no icon support for input elements, provide padding by default */ -input.ui-button { - padding: .4em 1em; -} - -/* button icon element(s) */ -.ui-button-icon-only .ui-icon, -.ui-button-text-icon-primary .ui-icon, -.ui-button-text-icon-secondary .ui-icon, -.ui-button-text-icons .ui-icon, -.ui-button-icons-only .ui-icon { - position: absolute; - top: 50%; - margin-top: -8px; -} -.ui-button-icon-only .ui-icon { - left: 50%; - margin-left: -8px; -} -.ui-button-text-icon-primary .ui-button-icon-primary, -.ui-button-text-icons .ui-button-icon-primary, -.ui-button-icons-only .ui-button-icon-primary { - left: .5em; -} -.ui-button-text-icon-secondary .ui-button-icon-secondary, -.ui-button-text-icons .ui-button-icon-secondary, -.ui-button-icons-only .ui-button-icon-secondary { - right: .5em; -} - -/* button sets */ -.ui-buttonset { - margin-right: 7px; -} -.ui-buttonset .ui-button { - margin-left: 0; - margin-right: -.3em; -} - -/* workarounds */ -/* reset extra padding in Firefox, see h5bp.com/l */ -input.ui-button::-moz-focus-inner, -button.ui-button::-moz-focus-inner { - border: 0; - padding: 0; -} -.ui-datepicker { - width: 17em; - padding: .2em .2em 0; - display: none; -} -.ui-datepicker .ui-datepicker-header { - position: relative; - padding: .2em 0; -} -.ui-datepicker .ui-datepicker-prev, -.ui-datepicker .ui-datepicker-next { - position: absolute; - top: 2px; - width: 1.8em; - height: 1.8em; -} -.ui-datepicker .ui-datepicker-prev-hover, -.ui-datepicker .ui-datepicker-next-hover { - top: 1px; -} -.ui-datepicker .ui-datepicker-prev { - left: 2px; -} -.ui-datepicker .ui-datepicker-next { - right: 2px; -} -.ui-datepicker .ui-datepicker-prev-hover { - left: 1px; -} -.ui-datepicker .ui-datepicker-next-hover { - right: 1px; -} -.ui-datepicker .ui-datepicker-prev span, -.ui-datepicker .ui-datepicker-next span { - display: block; - position: absolute; - left: 50%; - margin-left: -8px; - top: 50%; - margin-top: -8px; -} -.ui-datepicker .ui-datepicker-title { - margin: 0 2.3em; - line-height: 1.8em; - text-align: center; -} -.ui-datepicker .ui-datepicker-title select { - font-size: 1em; - margin: 1px 0; -} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { - width: 45%; -} -.ui-datepicker table { - width: 100%; - font-size: .9em; - border-collapse: collapse; - margin: 0 0 .4em; -} -.ui-datepicker th { - padding: .7em .3em; - text-align: center; - font-weight: bold; - border: 0; -} -.ui-datepicker td { - border: 0; - padding: 1px; -} -.ui-datepicker td span, -.ui-datepicker td a { - display: block; - padding: .2em; - text-align: right; - text-decoration: none; -} -.ui-datepicker .ui-datepicker-buttonpane { - background-image: none; - margin: .7em 0 0 0; - padding: 0 .2em; - border-left: 0; - border-right: 0; - border-bottom: 0; -} -.ui-datepicker .ui-datepicker-buttonpane button { - float: right; - margin: .5em .2em .4em; - cursor: pointer; - padding: .2em .6em .3em .6em; - width: auto; - overflow: visible; -} -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { - float: left; -} - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { - width: auto; -} -.ui-datepicker-multi .ui-datepicker-group { - float: left; -} -.ui-datepicker-multi .ui-datepicker-group table { - width: 95%; - margin: 0 auto .4em; -} -.ui-datepicker-multi-2 .ui-datepicker-group { - width: 50%; -} -.ui-datepicker-multi-3 .ui-datepicker-group { - width: 33.3%; -} -.ui-datepicker-multi-4 .ui-datepicker-group { - width: 25%; -} -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { - border-left-width: 0; -} -.ui-datepicker-multi .ui-datepicker-buttonpane { - clear: left; -} -.ui-datepicker-row-break { - clear: both; - width: 100%; - font-size: 0; -} - -/* RTL support */ -.ui-datepicker-rtl { - direction: rtl; -} -.ui-datepicker-rtl .ui-datepicker-prev { - right: 2px; - left: auto; -} -.ui-datepicker-rtl .ui-datepicker-next { - left: 2px; - right: auto; -} -.ui-datepicker-rtl .ui-datepicker-prev:hover { - right: 1px; - left: auto; -} -.ui-datepicker-rtl .ui-datepicker-next:hover { - left: 1px; - right: auto; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane { - clear: right; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane button { - float: left; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, -.ui-datepicker-rtl .ui-datepicker-group { - float: right; -} -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { - border-right-width: 0; - border-left-width: 1px; -} -.ui-dialog { - overflow: hidden; - position: absolute; - top: 0; - left: 0; - padding: .2em; - outline: 0; -} -.ui-dialog .ui-dialog-titlebar { - padding: .4em 1em; - position: relative; -} -.ui-dialog .ui-dialog-title { - float: left; - margin: .1em 0; - white-space: nowrap; - width: 90%; - overflow: hidden; - text-overflow: ellipsis; -} -.ui-dialog .ui-dialog-titlebar-close { - position: absolute; - right: .3em; - top: 50%; - width: 20px; - margin: -10px 0 0 0; - padding: 1px; - height: 20px; -} -.ui-dialog .ui-dialog-content { - position: relative; - border: 0; - padding: .5em 1em; - background: none; - overflow: auto; -} -.ui-dialog .ui-dialog-buttonpane { - text-align: left; - border-width: 1px 0 0 0; - background-image: none; - margin-top: .5em; - padding: .3em 1em .5em .4em; -} -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { - float: right; -} -.ui-dialog .ui-dialog-buttonpane button { - margin: .5em .4em .5em 0; - cursor: pointer; -} -.ui-dialog .ui-resizable-se { - width: 12px; - height: 12px; - right: -5px; - bottom: -5px; - background-position: 16px 16px; -} -.ui-draggable .ui-dialog-titlebar { - cursor: move; -} -.ui-menu { - list-style: none; - padding: 0; - margin: 0; - display: block; - outline: none; -} -.ui-menu .ui-menu { - position: absolute; -} -.ui-menu .ui-menu-item { - position: relative; - margin: 0; - padding: 3px 1em 3px .4em; - cursor: pointer; - min-height: 0; /* support: IE7 */ - /* support: IE10, see #8844 */ - list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); -} -.ui-menu .ui-menu-divider { - margin: 5px 0; - height: 0; - font-size: 0; - line-height: 0; - border-width: 1px 0 0 0; -} -.ui-menu .ui-state-focus, -.ui-menu .ui-state-active { - margin: -1px; -} - -/* icon support */ -.ui-menu-icons { - position: relative; -} -.ui-menu-icons .ui-menu-item { - padding-left: 2em; -} - -/* left-aligned */ -.ui-menu .ui-icon { - position: absolute; - top: 0; - bottom: 0; - left: .2em; - margin: auto 0; -} - -/* right-aligned */ -.ui-menu .ui-menu-icon { - left: auto; - right: 0; -} -.ui-progressbar { - height: 2em; - text-align: left; - overflow: hidden; -} -.ui-progressbar .ui-progressbar-value { - margin: -1px; - height: 100%; -} -.ui-progressbar .ui-progressbar-overlay { - background: url("data:image/gif;base64,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"); - height: 100%; - filter: alpha(opacity=25); /* support: IE8 */ - opacity: 0.25; -} -.ui-progressbar-indeterminate .ui-progressbar-value { - background-image: none; -} -.ui-selectmenu-menu { - padding: 0; - margin: 0; - position: absolute; - top: 0; - left: 0; - display: none; -} -.ui-selectmenu-menu .ui-menu { - overflow: auto; - /* Support: IE7 */ - overflow-x: hidden; - padding-bottom: 1px; -} -.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { - font-size: 1em; - font-weight: bold; - line-height: 1.5; - padding: 2px 0.4em; - margin: 0.5em 0 0 0; - height: auto; - border: 0; -} -.ui-selectmenu-open { - display: block; -} -.ui-selectmenu-button { - display: inline-block; - overflow: hidden; - position: relative; - text-decoration: none; - cursor: pointer; -} -.ui-selectmenu-button span.ui-icon { - right: 0.5em; - left: auto; - margin-top: -8px; - position: absolute; - top: 50%; -} -.ui-selectmenu-button span.ui-selectmenu-text { - text-align: left; - padding: 0.4em 2.1em 0.4em 1em; - display: block; - line-height: 1.4; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.ui-slider { - position: relative; - text-align: left; -} -.ui-slider .ui-slider-handle { - position: absolute; - z-index: 2; - width: 1.2em; - height: 1.2em; - cursor: default; - -ms-touch-action: none; - touch-action: none; -} -.ui-slider .ui-slider-range { - position: absolute; - z-index: 1; - font-size: .7em; - display: block; - border: 0; - background-position: 0 0; -} - -/* support: IE8 - See #6727 */ -.ui-slider.ui-state-disabled .ui-slider-handle, -.ui-slider.ui-state-disabled .ui-slider-range { - filter: inherit; -} - -.ui-slider-horizontal { - height: .8em; -} -.ui-slider-horizontal .ui-slider-handle { - top: -.3em; - margin-left: -.6em; -} -.ui-slider-horizontal .ui-slider-range { - top: 0; - height: 100%; -} -.ui-slider-horizontal .ui-slider-range-min { - left: 0; -} -.ui-slider-horizontal .ui-slider-range-max { - right: 0; -} - -.ui-slider-vertical { - width: .8em; - height: 100px; -} -.ui-slider-vertical .ui-slider-handle { - left: -.3em; - margin-left: 0; - margin-bottom: -.6em; -} -.ui-slider-vertical .ui-slider-range { - left: 0; - width: 100%; -} -.ui-slider-vertical .ui-slider-range-min { - bottom: 0; -} -.ui-slider-vertical .ui-slider-range-max { - top: 0; -} -.ui-spinner { - position: relative; - display: inline-block; - overflow: hidden; - padding: 0; - vertical-align: middle; -} -.ui-spinner-input { - border: none; - background: none; - color: inherit; - padding: 0; - margin: .2em 0; - vertical-align: middle; - margin-left: .4em; - margin-right: 22px; -} -.ui-spinner-button { - width: 16px; - height: 50%; - font-size: .5em; - padding: 0; - margin: 0; - text-align: center; - position: absolute; - cursor: default; - display: block; - overflow: hidden; - right: 0; -} -/* more specificity required here to override default borders */ -.ui-spinner a.ui-spinner-button { - border-top: none; - border-bottom: none; - border-right: none; -} -/* vertically center icon */ -.ui-spinner .ui-icon { - position: absolute; - margin-top: -8px; - top: 50%; - left: 0; -} -.ui-spinner-up { - top: 0; -} -.ui-spinner-down { - bottom: 0; -} - -/* TR overrides */ -.ui-spinner .ui-icon-triangle-1-s { - /* need to fix icons sprite */ - background-position: -65px -16px; -} -.ui-tabs { - position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ - padding: .2em; -} -.ui-tabs .ui-tabs-nav { - margin: 0; - padding: .2em .2em 0; -} -.ui-tabs .ui-tabs-nav li { - list-style: none; - float: left; - position: relative; - top: 0; - margin: 1px .2em 0 0; - border-bottom-width: 0; - padding: 0; - white-space: nowrap; -} -.ui-tabs .ui-tabs-nav .ui-tabs-anchor { - float: left; - padding: .5em 1em; - text-decoration: none; -} -.ui-tabs .ui-tabs-nav li.ui-tabs-active { - margin-bottom: -1px; - padding-bottom: 1px; -} -.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, -.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, -.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { - cursor: text; -} -.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { - cursor: pointer; -} -.ui-tabs .ui-tabs-panel { - display: block; - border-width: 0; - padding: 1em 1.4em; - background: none; -} -.ui-tooltip { - padding: 8px; - position: absolute; - z-index: 9999; - max-width: 300px; - -webkit-box-shadow: 0 0 5px #aaa; - box-shadow: 0 0 5px #aaa; -} -body .ui-tooltip { - border-width: 2px; -} diff --git a/website/agenda/css/jquery-ui.structure.min.css b/website/agenda/css/jquery-ui.structure.min.css deleted file mode 100644 index fc03225..0000000 --- a/website/agenda/css/jquery-ui.structure.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-10-04 -* http://jqueryui.com -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px} \ No newline at end of file diff --git a/website/agenda/css/jquery-ui.theme.css b/website/agenda/css/jquery-ui.theme.css deleted file mode 100644 index 47cb233..0000000 --- a/website/agenda/css/jquery-ui.theme.css +++ /dev/null @@ -1,410 +0,0 @@ -/*! - * jQuery UI CSS Framework 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/category/theming/ - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { - font-family: Verdana,Arial,sans-serif; - font-size: 1.1em; -} -.ui-widget .ui-widget { - font-size: 1em; -} -.ui-widget input, -.ui-widget select, -.ui-widget textarea, -.ui-widget button { - font-family: Verdana,Arial,sans-serif; - font-size: 1em; -} -.ui-widget-content { - border: 1px solid #aaaaaa; - background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x; - color: #222222; -} -.ui-widget-content a { - color: #222222; -} -.ui-widget-header { - border: 1px solid #aaaaaa; - background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x; - color: #222222; - font-weight: bold; -} -.ui-widget-header a { - color: #222222; -} - -/* Interaction states -----------------------------------*/ -.ui-state-default, -.ui-widget-content .ui-state-default, -.ui-widget-header .ui-state-default { - border: 1px solid #d3d3d3; - background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x; - font-weight: normal; - color: #555555; -} -.ui-state-default a, -.ui-state-default a:link, -.ui-state-default a:visited { - color: #555555; - text-decoration: none; -} -.ui-state-hover, -.ui-widget-content .ui-state-hover, -.ui-widget-header .ui-state-hover, -.ui-state-focus, -.ui-widget-content .ui-state-focus, -.ui-widget-header .ui-state-focus { - border: 1px solid #999999; - background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -.ui-state-hover a, -.ui-state-hover a:hover, -.ui-state-hover a:link, -.ui-state-hover a:visited, -.ui-state-focus a, -.ui-state-focus a:hover, -.ui-state-focus a:link, -.ui-state-focus a:visited { - color: #212121; - text-decoration: none; -} -.ui-state-active, -.ui-widget-content .ui-state-active, -.ui-widget-header .ui-state-active { - border: 1px solid #aaaaaa; - background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -.ui-state-active a, -.ui-state-active a:link, -.ui-state-active a:visited { - color: #212121; - text-decoration: none; -} - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, -.ui-widget-content .ui-state-highlight, -.ui-widget-header .ui-state-highlight { - border: 1px solid #fcefa1; - background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; - color: #363636; -} -.ui-state-highlight a, -.ui-widget-content .ui-state-highlight a, -.ui-widget-header .ui-state-highlight a { - color: #363636; -} -.ui-state-error, -.ui-widget-content .ui-state-error, -.ui-widget-header .ui-state-error { - border: 1px solid #cd0a0a; - background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x; - color: #cd0a0a; -} -.ui-state-error a, -.ui-widget-content .ui-state-error a, -.ui-widget-header .ui-state-error a { - color: #cd0a0a; -} -.ui-state-error-text, -.ui-widget-content .ui-state-error-text, -.ui-widget-header .ui-state-error-text { - color: #cd0a0a; -} -.ui-priority-primary, -.ui-widget-content .ui-priority-primary, -.ui-widget-header .ui-priority-primary { - font-weight: bold; -} -.ui-priority-secondary, -.ui-widget-content .ui-priority-secondary, -.ui-widget-header .ui-priority-secondary { - opacity: .7; - filter:Alpha(Opacity=70); /* support: IE8 */ - font-weight: normal; -} -.ui-state-disabled, -.ui-widget-content .ui-state-disabled, -.ui-widget-header .ui-state-disabled { - opacity: .35; - filter:Alpha(Opacity=35); /* support: IE8 */ - background-image: none; -} -.ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ -} - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { - width: 16px; - height: 16px; -} -.ui-icon, -.ui-widget-content .ui-icon { - background-image: url("images/ui-icons_222222_256x240.png"); -} -.ui-widget-header .ui-icon { - background-image: url("images/ui-icons_222222_256x240.png"); -} -.ui-state-default .ui-icon { - background-image: url("images/ui-icons_888888_256x240.png"); -} -.ui-state-hover .ui-icon, -.ui-state-focus .ui-icon { - background-image: url("images/ui-icons_454545_256x240.png"); -} -.ui-state-active .ui-icon { - background-image: url("images/ui-icons_454545_256x240.png"); -} -.ui-state-highlight .ui-icon { - background-image: url("images/ui-icons_2e83ff_256x240.png"); -} -.ui-state-error .ui-icon, -.ui-state-error-text .ui-icon { - background-image: url("images/ui-icons_cd0a0a_256x240.png"); -} - -/* positioning */ -.ui-icon-blank { background-position: 16px 16px; } -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-on { background-position: -96px -144px; } -.ui-icon-radio-off { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, -.ui-corner-top, -.ui-corner-left, -.ui-corner-tl { - border-top-left-radius: 4px; -} -.ui-corner-all, -.ui-corner-top, -.ui-corner-right, -.ui-corner-tr { - border-top-right-radius: 4px; -} -.ui-corner-all, -.ui-corner-bottom, -.ui-corner-left, -.ui-corner-bl { - border-bottom-left-radius: 4px; -} -.ui-corner-all, -.ui-corner-bottom, -.ui-corner-right, -.ui-corner-br { - border-bottom-right-radius: 4px; -} - -/* Overlays */ -.ui-widget-overlay { - background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); /* support: IE8 */ -} -.ui-widget-shadow { - margin: -8px 0 0 -8px; - padding: 8px; - background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); /* support: IE8 */ - border-radius: 8px; -} diff --git a/website/agenda/css/jquery-ui.theme.min.css b/website/agenda/css/jquery-ui.theme.min.css deleted file mode 100644 index c7b45bf..0000000 --- a/website/agenda/css/jquery-ui.theme.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-10-09 -* http://jqueryui.com -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file diff --git a/website/agenda/css/mobile.css b/website/agenda/css/mobile.css deleted file mode 100644 index 77a4d6e..0000000 --- a/website/agenda/css/mobile.css +++ /dev/null @@ -1,650 +0,0 @@ - -/* -include in your web page: -<link rel="stylesheet" type="text/css" media="screen" href="http://piradio.de/agenda_files/css/calcms.css" /> -*/ - -/* calcms - common */ - - body{ - text-align:left; - font: 1em/1.2em Ubuntu,"Lucida Grande",Verdana,Helvetica,Arial,sans-serif; - } - - a{ - text-decoration:none; - color:black; - } - - a:visited{ - color:black; - - } - - @media only screen and (max-device-width: 480px) { - #content{ - width:480px; - } - } - @media only screen and (max-device-width: 800px) { - #content{ - width:800px; - } - } - - #content{ - width:460px; - padding:10px; - } - - pre{ - text-align:left; - font-family:Courier; - padding:1em; - margin:1em; - border:1px solid black; - } - - /* hide microformats */ - .dtstart{ - display:none; - visibility:hidden; - } - - .dtend{ - display:none; - visibility:hidden; - } - -/* end of common */ - - -/* menu */ - #calcms_menu{ - padding-top:3px;padding-right:5px; - margin-bottom:1px; - text-align:left; - clear:both; - line-height:120%; - /*padding:3px;*/ - /*font-family:Verdana,Arial,sans-serif;*/ - /*overflow:auto;*/ - } - - #calcms_menu li.leaf{ - list-style-type:none; - list-style-image:url(); - background:none; - padding:0; - } - -/* - #calcms_menu a{ - text-decoration:none; - } -*/ - #calcms_menu a:hover, - #calcms_calendar a:hover{ - text-decoration:underline; - } - - #calcms_menu .date{ - margin:0px; - font-weight:bold; - margin-top:1em; - margin-bottom:6px; - -moz-border-radius-topleft:12px; - -moz-border-radius-topright:12px; - -webkit-border-top-right-radius: 12px; - -webkit-border-top-left-radius: 12px; - } - - #calcms_menu .title{ - padding:0px; - margin:0px; - text-align:left; - } - -/* - div:first-line #calcms_menu .title { - margin-left:0px; - } -*/ - #calcms_menu .excerpt{ - padding:3px; - margin:0px; - } - #calcms_menu .content{ - padding:3px; - margin:0px; - clear:left; - margin:0 - } - #calcms_menu .content p{ - margin-top:10px - } - #calcms_menu .content h1{ - text-align:left; - font-size:1.5em; - clear:left; - margin-top:16px - } - #calcms_menu .content h2{ - text-align:left; - font-size:1.5em; - clear:left; - margin-top:16px - } - #calcms_menu .content h3{ - text-align:left; - font-size:1.5em; - clear:left; - margin-top:16px - } - #calcms_menu .content h4{ - text-align:left; - font-size:1.5em; - clear:left; - margin-top:16px - } - - #calcms_menu li{ - clear:left; - line-height:1.2em; - } - - #calcms_menu .date{ - margin-top:12px; - margin-left:3em; - clear:both; - } - - #calcms_list .summary .title{ - font-weight:bold; - } - - #calcms_list .title{ - margin-bottom:1em; - } - - #calcms_list hr{ - /*margin-bottom:2em;*/ - background-color:#ddd; - } - - #calcms_list .content img{ - text-align:left; - font-size:1.5em; - margin-bottom:20px; - border:0; - /* - clear:both; - float:left; - margin-right:30px; - */ - float: right; - margin-left: 1em; - } - - #calcms_list li{ -/* - list-style-type:none; - list-style-image:url(); - background:none; - padding:0; -*/ - } - - - #calcms_playlist{ - padding:1px; - margin:0px; - clear:both; - /*text-align:center;*/ - } - - #calcms_playlist div{ - vertical-align:middle; - clear:both; - } - - #calcms_playlist img{ - width:2em; - height:2em; - margin:6px; - float:left; - opacity:0.9; - } - - #calcms_playlist img:hover{ - opacity:1.0; - } - - #calcms_menu div{ - vertical-align:middle; - clear:both; - } - - #calcms_menu .event{ - opacity:0.8; - } - -/* - #calcms_menu .event:hover{ - opacity:1.0; - } -*/ - #calcms_menu img{ - width:2em; - height:2em; - margin-right:6px; - margin-bottom:12px; - float:left; - } - - #calcms_menu img:hover{ - } - - #calcms_playlist a{ - clear:both; - float:none; - } - - #calcms_menu .event{ - padding:1px; - margin:0px; - clear:both; - text-align:left; - } - - #calcms_menu .event.running{ - font-weight:bold; - } - -/* end of menu */ - - - -/* calcms_list */ - div#calcms_list{ - } - - #content div a img, - #icon_bar a img, - { - margin:6px; - } - - #calcms_list .date{ - /*padding:6px;*/ - /*margin:0px;*/ - font-weight:bold; - margin-top:1em; - /* - -moz-border-radius-topleft:12px; - -moz-border-radius-topright:12px; - -webkit-border-top-right-radius: 12px; - -webkit-border-top-left-radius: 12px; - */ - } - - #calcms_list .excerpt{ - margin-left:40px; - margin-top:6px; - /*margin-bottom:10px;*/ - /* color:#eee; */ - } - - #calcms_list .event.running{ - /*padding:6px;*/ - /*background: white;*/ - /*border:1px solid #bbb;*/ - color:#000; - } - - #calcms_list .submitted{ - position:absolute; - right:0px; - } - - -/* end of calcms_list */ - -/* calcms comments */ - - #calcms_comments .author{ - color:#666; - font-weight:bold; - float:left; - } - - #calcms_comments .date{ - color:#888; - font-weight:normal; - margin:0; - padding:0; - } - - #calcms_comments .content{ - /* color:#ccc; */ - font-weight:normal; - } - - #calcms_comments .comment{ - margin:0; - padding:0; - } - - #calcms_comments .level0{ - padding-top:1.5em; - margin-left:00px; - } - #calcms_comments .level1{ - margin-left:20px; - } - #calcms_comments .level2{ - margin-left:40px; - } - #calcms_comments .level3{ - margin-left:60px; - } - #calcms_comments .level4{ - margin-left:80px; - } - #calcms_comments .level5{ - margin-left:100px; - } - #calcms_comments .level6{ - margin-left:120px; - } - #calcms_comments .level7{ - margin-left:140px; - } - #calcms_comments .level8{ - margin-left:160px; - } - #calcms_comments .level9{ - margin-left:180px; - } - #calcms_comments .level10{ - margin-left:200px; - } - - #calcms_add_comment{ - visibility:hidden; - display:none; - } - - #calcms_newest_comments .author{ - font-weight:bold; - } - - #calcms_newest_comments li, - #calcms_newest_comments li.leaf{ - list-style-type:none; - list-style-image:url(); - background:none; - } - - #calcms_newest_comments span.content{ - text-overflow: ellipsis; - -o-text-overflow: ellipsis; - -icab-text-overflow: ellipsis; - -khtml-text-overflow: ellipsis; - -moz-text-overflow: ellipsis; - -webkit-text-overflow: ellipsis; - } - - #calcms_newest_comments li.leaf a, - #calcms_newest_comments li.leaf span{ - line-height:1.2em; - } - - #calcms_newest_comments li.leaf a:hover{ - text-decoration:none; - } - -/* end of calcms comments*/ - -/* calcms_search */ - #calcms_search{ - margin:0; - z-index:3; - text-align:left; - font-size:10px; - clear:both; - } - - #calcms_search input{ - width:80px; - } - - table#calcms_search{ - padding:0; - margin:0; - text-align:left; - } - - table#calcms_search td a{ - padding:1px; - } - - #calcms_search input#calcms_search_field, - #calcms_search select{ - width:100px; - } - - #calcms_search input#calcms_search_field{ - float:left; - } - - #calcms_search form{ - float:left; - } -/* end of calcms_search */ - - -/* calcms_calendar */ - #calcms_calendar{ - overflow:auto; - text-align:center; - padding:0px; - margin:0px; - vertical-align:top; - clear:both; - width:100%; - } - - #calcms_calendar .week_1, - #calcms_calendar .week_2, - #calcms_calendar .week_3, - #calcms_calendar .week_4, - #calcms_calendar .week_5{ - } - - #calcms_calendar th{ - margin:0px; - font-weight:normal; - margin-top:1em; - } - - #calcms_calendar th a{ - /* color:#AEB1B3; */ - } - - /* selected fields */ - #calcms_calendar .selected, .night, .morning, .noon, .afternoon, .evening{ - background:#eee; - font-size:bold; - font-weight:bold; - } - - #calcms_calendar table{ - text-align:center; - padding:0px; - margin:0px; - } - - /* hover effects */ - - #calcms_calendar table td:hover{ - background-color:#f0f0f0; - } - - #calcms_calendar table td{ - border-bottom:1px solid #D1C7CA; - opacity:0.8; - /*border-right:1px solid #D1C7CA;*/ - } - - #calcms_calendar table td.selected{ - /*opacity:1.0;*/ - } - - #calcms_calendar table td.selected:hover{ - background-color:#f0f0f0; - border-top: 1px solid #D1C7CA; - border-bottom:1px solid #D1C7CA; - } - - #calcms_calendar table a{ - text-decoration:none; - font-weight:normal; - } - - #calcms_calendar table td.selected a{ - font-weight:bold; - } - - #calcms_calendar td, - #calcms_calendar th{ - padding:0px; - padding-left:1em; - padding-right:1em; - padding-bottom:1em; - margin:0; - text-align:center; - } - - #calcms_calendar th.first, - #calcms_calendar th.last{ - font-size:large; - } - /* not selectable columns */ - - #calcms_calendar table td.row_type:hover{ - border-bottom:1px solid #D1C7CA; - border-right: 1px solid #D1C7CA; - background-color:#ffffff; - } - - #calcms_calendar .row_type{ -/* width:100px -*/ - } - - .calcms_today{ - font-weight:bold; - } - -/* end of calcms_calendar */ - - - .blnfm, .multicultfm, .ohrfunk, .twenfm, .offenerkanalberlin, .klubradio, .piradio, - .studioansage, .studiolottumstrasse, .studiorebootfm - - { -/* - border-radius: 12px; - -moz-border-radius: 12px; - -webkit-border-radius: 12px; -*/ - padding:6px; - margin:6px; - } - - .blnfm{ - background-color:white; - } - - .multicultfm{ - background-color:white; - } - - .ohrfunk{ - background-color:white; - } - - .twenfm{ - background-color:white; - } - - .offenerkanalberlin{ - background-color:white; - } - - .klubradio{ - background-color:white; - } - - .piradio{ - background-color:white; - } - - /*Einheitsradio */ - .studiolottumstrasse{ - background-color:white; - /* background-color:#ffddff; */ - } - .studioansage{ - background-color:white; - /* background-color:#ddffdd; */ - } - .studiorebootfm{ - background-color:white; - /* background-color:#ffff00; */ - } - - .feed-icon{ - float:left; - } - - #icon_bar{ - padding-bottom:6px; - } - - #icon_bar .feed-icon{ - height:24px; - } - - #icon_bar .feed-icon img{ - margin:6px; - text-align:right; - } - - input{ - width:200px; - } - - .vevent a{ - font-weight:normal; - } - - - div#jp_player_1{ - text-decoration:none; - height:24px; - padding-left:30px; - color:black; - background-repeat:no-repeat; - background-image:url("/agenda/image/player4.play.png"); - border:1px solid black; - } - - div#jp_equalizer_1{ - width:0px; - height:2px; - background:#ccc; - border:1px solid gray; - } - From 5e2f21abc1f5b58bdb23c3bbec378f3c4cc26175 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 12:52:51 +0200 Subject: [PATCH 082/391] rename calcms_admin_menu to calcms_nav --- website/agenda/planung/css/admin.css | 68 +++++++++---------- website/agenda/planung/css/calendar.css | 2 +- website/agenda/planung/js/admin.js | 16 ++--- website/agenda/planung/js/calendar.js | 6 +- website/agenda/planung/js/history.js | 2 +- website/agenda/planung/templates/default.html | 2 +- 6 files changed, 48 insertions(+), 48 deletions(-) diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/admin.css index 8157ea6..127f30d 100644 --- a/website/agenda/planung/css/admin.css +++ b/website/agenda/planung/css/admin.css @@ -94,13 +94,13 @@ body, padding:16px; } - #calcms_admin_menu{ + #calcms_nav{ min-width:640px; max-width:800px; } } -#calcms_admin_menu{ +#calcms_nav{ display: flex; flex-wrap: wrap; align-items: center; @@ -109,42 +109,42 @@ body, z-index:99; } -#calcms_admin_menu, -#calcms_admin_menu a, -#calcms_admin_menu div, -#calcms_admin_menu input, -#calcms_admin_menu select, -#calcms_admin_menu option{ +#calcms_nav, +#calcms_nav a, +#calcms_nav div, +#calcms_nav input, +#calcms_nav select, +#calcms_nav option{ margin:0; padding:0; color:#fff; } -#calcms_admin_menu, -#calcms_admin_menu select{ +#calcms_nav, +#calcms_nav select{ background:#004f9b; } -#calcms_admin_menu a:hover, -#calcms_admin_menu select:hover{ +#calcms_nav a:hover, +#calcms_nav select:hover{ background:#007acc; transition: all 0.5s linear; } -#calcms_admin_menu div a, -#calcms_admin_menu select{ +#calcms_nav div a, +#calcms_nav select{ padding:6px; padding-top:1rem; padding-bottom:1rem; line-height:3em; } -#calcms_admin_menu div { +#calcms_nav div { transition: background 0.2s; } -#calcms_admin_menu select, -#calcms_admin_menu option{ +#calcms_nav select, +#calcms_nav option{ max-width:8em; border:0; padding-left:0; @@ -152,7 +152,7 @@ body, border-left:1px solid #666; } -#calcms_admin_menu a#logout{ +#calcms_nav a#logout{ color:#ff4444; } @@ -534,21 +534,21 @@ input[type='checkbox']{ /* new */ -#calcms_admin_menu{ +#calcms_nav{ position:fixed; top:0; left:0; right:0; } -#calcms_admin_menu div a, -#calcms_admin_menu select, -#calcms_admin_menu option{ +#calcms_nav div a, +#calcms_nav select, +#calcms_nav option{ font-size:0.9375rem; } -#calcms_admin_menu select, -#calcms_admin_menu option{ +#calcms_nav select, +#calcms_nav option{ border:0; text-align:left; -moz-appearance: none; @@ -557,9 +557,9 @@ input[type='checkbox']{ border: none; } -#calcms_admin_menu .fa, -#calcms_admin_menu .far, -#calcms_admin_menu .fas{ +#calcms_nav .fa, +#calcms_nav .far, +#calcms_nav .fas{ opacity:0.4; } @@ -592,25 +592,25 @@ input.image{ overflow-y:scroll } -#calcms_admin_menu #bars{ +#calcms_nav #bars{ cursor:pointer; } -#calcms_admin_menu.mobile{ +#calcms_nav.mobile{ flex-direction:column; position:absolute; } -#calcms_admin_menu.mobile div{ +#calcms_nav.mobile div{ text-align:left; } -#calcms_admin_menu .dropdown { +#calcms_nav .dropdown { position: relative; display: inline-block; } -#calcms_admin_menu .dropdown-content { +#calcms_nav .dropdown-content { display: none; position: absolute; z-index: 100; @@ -619,11 +619,11 @@ input.image{ min-width:10rem; } -#calcms_admin_menu .dropdown-content a{ +#calcms_nav .dropdown-content a{ width:20rem; } -#calcms_admin_menu .dropdown:hover .dropdown-content { +#calcms_nav .dropdown:hover .dropdown-content { display: block; transition: all 1s linear; } diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index 93c3a1c..fcb6892 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -7,7 +7,7 @@ button:hover{ } @media print{ - #calcms_admin_menu{ + #calcms_nav{ display:none; } #toolbar{ diff --git a/website/agenda/planung/js/admin.js b/website/agenda/planung/js/admin.js index ed9293b..c3bef76 100644 --- a/website/agenda/planung/js/admin.js +++ b/website/agenda/planung/js/admin.js @@ -206,10 +206,10 @@ function getUrlParameter(name){ } function handleBars(){ - var menu=$('#calcms_admin_menu'); + var menu=$('#calcms_nav'); menu.toggleClass('mobile'); if (menu.hasClass('mobile')){ - $('#calcms_admin_menu>div').show(); + $('#calcms_nav>div').show(); $('#content').hide(); }else{ $('#content').show(); @@ -221,7 +221,7 @@ var oldWidth=0; function setupMenu(update){ var xmax=960; - var menu = $('#calcms_admin_menu'); + var menu = $('#calcms_nav'); var width = menu.width(); if ( (width < xmax) && (oldWidth >= xmax) ) update=1; @@ -230,11 +230,11 @@ function setupMenu(update){ if (update == 1){ if (menu.width() < 960){ - $('#calcms_admin_menu>div').hide(); - $('#calcms_admin_menu>div.mobile').show(); + $('#calcms_nav>div').hide(); + $('#calcms_nav>div.mobile').show(); }else{ - $('#calcms_admin_menu>div').show(); - $('#calcms_admin_menu #bars').hide(); + $('#calcms_nav>div').show(); + $('#calcms_nav #bars').hide(); menu.removeClass('mobile'); } } @@ -248,7 +248,7 @@ function setupMenuHeight(){ var content=$('#content'); content.css("position", "relative"); - var menu=$('#calcms_admin_menu'); + var menu=$('#calcms_nav'); var top = menu.height(); content.css("top", top); diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index d47e17f..f3dde08 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -39,7 +39,7 @@ function setupMenuHeight(){ if ($('#calendar').length>0){ // calendar table console.log('setupMenuHeight') - var top=$('#calcms_admin_menu').height(); + var top=$('#calcms_nav').height(); $('#toolbar').css("top", top); $('#toolbar').css("position", "absolute"); @@ -65,10 +65,10 @@ function setupMenuHeight(){ // calendar list //console.log('found calendar list') - var top = $('#calcms_admin_menu').height(); + var top = $('#calcms_nav').height(); $('#content').css("top", top); - top = $('#calcms_admin_menu').height(); + top = $('#calcms_nav').height(); $('#content').css("top", top); return top; diff --git a/website/agenda/planung/js/history.js b/website/agenda/planung/js/history.js index f5e22ca..898a022 100644 --- a/website/agenda/planung/js/history.js +++ b/website/agenda/planung/js/history.js @@ -138,7 +138,7 @@ function addBackButton(){ var history=getHistory(); //console.log(history.length); if (history.length>1){ - $('#calcms_admin_menu').first().prepend( + $('#calcms_nav').first().prepend( '<div><a id="backButton" href="#" onclick="getBack();">' +'<i class="fas fa-caret-square-left fa-1g"></i>' +' ' diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index bf65b0c..27d1c2a 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -1,6 +1,6 @@ <TMPL_INCLUDE header.html> -<nav id="calcms_admin_menu"> +<nav id="calcms_nav"> <div id="bars" class="mobile" onclick="handleBars();return false;"> <a><i class="fas fa-bars"></i> Menu</a></div> From a88a79a42016e3a3f5b13c8b6d8e2d2792b0409b Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 13:04:34 +0200 Subject: [PATCH 083/391] rename admins.css|.js to default.css|.js --- website/agenda/planung/css/{admin.css => default.css} | 0 website/agenda/planung/js/{admin.js => default.js} | 0 website/agenda/planung/templates/header_head.html | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename website/agenda/planung/css/{admin.css => default.css} (100%) rename website/agenda/planung/js/{admin.js => default.js} (100%) diff --git a/website/agenda/planung/css/admin.css b/website/agenda/planung/css/default.css similarity index 100% rename from website/agenda/planung/css/admin.css rename to website/agenda/planung/css/default.css diff --git a/website/agenda/planung/js/admin.js b/website/agenda/planung/js/default.js similarity index 100% rename from website/agenda/planung/js/admin.js rename to website/agenda/planung/js/default.js diff --git a/website/agenda/planung/templates/header_head.html b/website/agenda/planung/templates/header_head.html index 6840b24..d7cd675 100644 --- a/website/agenda/planung/templates/header_head.html +++ b/website/agenda/planung/templates/header_head.html @@ -4,11 +4,11 @@ var event_manager=0; <link rel="stylesheet" href="css/fas.css"> <link rel="stylesheet" href="css/jquery-ui.min.css" type="text/css" /> -<link rel="stylesheet" href="css/admin.css" type="text/css" /> +<link rel="stylesheet" href="css/default.css" type="text/css" /> <script src="js/jquery.min.js" type="text/javascript"></script> <script src="js/jquery-ui.min.js" type="text/javascript"></script> -<script src="js/admin.js" type="text/javascript"></script> +<script src="js/default.js" type="text/javascript"></script> <script src="js/history.js" type="text/javascript"></script> <script src="js/localization.js" type="text/javascript"></script> <script src="js/localization-datetime.js" type="text/javascript"></script> From 9c85a86caffbda5a267cc7f782ad4300c0f37fe4 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 13:52:40 +0200 Subject: [PATCH 084/391] rename selectEvent|Series to select_event|series --- website/agenda/planung/js/edit_event.js | 6 +++--- .../agenda/planung/js/{selectEvent.js => select-event.js} | 2 +- .../agenda/planung/js/{selectSeries.js => select-series.js} | 2 +- .../agenda/planung/{selectEvent.cgi => select-event.cgi} | 0 .../agenda/planung/{selectSeries.cgi => select-series.cgi} | 0 .../templates/{selectEvent.html => select-event.html} | 2 +- .../templates/{selectSeries.html => select-series.html} | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) rename website/agenda/planung/js/{selectEvent.js => select-event.js} (98%) rename website/agenda/planung/js/{selectSeries.js => select-series.js} (97%) rename website/agenda/planung/{selectEvent.cgi => select-event.cgi} (100%) rename website/agenda/planung/{selectSeries.cgi => select-series.cgi} (100%) rename website/agenda/planung/templates/{selectEvent.html => select-event.html} (97%) rename website/agenda/planung/templates/{selectSeries.html => select-series.html} (95%) diff --git a/website/agenda/planung/js/edit_event.js b/website/agenda/planung/js/edit_event.js index 0673bca..e583311 100644 --- a/website/agenda/planung/js/edit_event.js +++ b/website/agenda/planung/js/edit_event.js @@ -45,7 +45,7 @@ function selectOldEventFromSeries(resultSelector, tillDate){ $('#import_rerun_header').show('slideUp'); if ($('#import_rerun_header').css('display')=='none')return; - var url='selectEvent.cgi?' + var url='select-event.cgi?' url+='project_id='+getProjectId(); url+='&studio_id='+getStudioId(); url+='&series_id='+getUrlParameter('series_id'); @@ -63,7 +63,7 @@ function selectOtherEvent(resultSelector){ $('#import_rerun_header').show('slideUp'); if ($('#import_rerun_header').css('display')=='none')return; - var url='selectEvent.cgi?' + var url='select-event.cgi?' url+='project_id='+getProjectId(); url+='&studio_id='+getStudioId(); url+='&series_id='+getUrlParameter('series_id'); @@ -136,7 +136,7 @@ function loadEvent(projectId,studioId,seriesId,eventId, callback){ // load series selection function selectChangeSeries(resultSelector){ - var url='selectSeries.cgi?' + var url='select-series.cgi?' url+='project_id='+getProjectId(); url+='&studio_id='+getStudioId(); url+='&series_id='+getUrlParameter('series_id'); diff --git a/website/agenda/planung/js/selectEvent.js b/website/agenda/planung/js/select-event.js similarity index 98% rename from website/agenda/planung/js/selectEvent.js rename to website/agenda/planung/js/select-event.js index 9eca1d4..e4e6b52 100644 --- a/website/agenda/planung/js/selectEvent.js +++ b/website/agenda/planung/js/select-event.js @@ -51,7 +51,7 @@ function updateEventSelection(resultElemId){ if (seriesId == null) return; if (year == null) return; - var url="selectEvent.cgi"; + var url="select-event.cgi"; url+="?project_id=" + getProjectId(); url+="&studio_id=" + getStudioId(); url+="&p_id=" + projectId; diff --git a/website/agenda/planung/js/selectSeries.js b/website/agenda/planung/js/select-series.js similarity index 97% rename from website/agenda/planung/js/selectSeries.js rename to website/agenda/planung/js/select-series.js index 8e8d7b8..9e130c1 100644 --- a/website/agenda/planung/js/selectSeries.js +++ b/website/agenda/planung/js/select-series.js @@ -22,7 +22,7 @@ function updateSeriesSelection(resultElemId){ if (studioId == null) return; if (seriesId == null) return; - var url="selectSeries.cgi"; + var url="select-series.cgi"; url+="?project_id=" + getProjectId(); url+="&studio_id=" + getStudioId(); url+="&p_id=" + projectId; diff --git a/website/agenda/planung/selectEvent.cgi b/website/agenda/planung/select-event.cgi similarity index 100% rename from website/agenda/planung/selectEvent.cgi rename to website/agenda/planung/select-event.cgi diff --git a/website/agenda/planung/selectSeries.cgi b/website/agenda/planung/select-series.cgi similarity index 100% rename from website/agenda/planung/selectSeries.cgi rename to website/agenda/planung/select-series.cgi diff --git a/website/agenda/planung/templates/selectEvent.html b/website/agenda/planung/templates/select-event.html similarity index 97% rename from website/agenda/planung/templates/selectEvent.html rename to website/agenda/planung/templates/select-event.html index f2e062d..18caadf 100644 --- a/website/agenda/planung/templates/selectEvent.html +++ b/website/agenda/planung/templates/select-event.html @@ -3,7 +3,7 @@ <TMPL_IF .allow.read_event> <head> - <script src="js/selectEvent.js" type="text/javascript"></script> + <script src="js/select-event.js" type="text/javascript"></script> </head> <body> diff --git a/website/agenda/planung/templates/selectSeries.html b/website/agenda/planung/templates/select-series.html similarity index 95% rename from website/agenda/planung/templates/selectSeries.html rename to website/agenda/planung/templates/select-series.html index 5165c2e..3489b5c 100644 --- a/website/agenda/planung/templates/selectSeries.html +++ b/website/agenda/planung/templates/select-series.html @@ -4,7 +4,7 @@ <TMPL_IF .allow.read_series> <head> <script src="js/jquery.min.js" type="text/javascript"></script> - <script src="js/selectSeries.js" type="text/javascript"></script> + <script src="js/select-series.js" type="text/javascript"></script> </head> <body> From f0be286f470929b84c00fc9da928b5410b524a18 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Fri, 4 Oct 2019 14:18:34 +0200 Subject: [PATCH 085/391] remove camel-case from file names --- website/agenda/planung/css/fileUploader.css | 46 ------------------- .../{imageUpload.cgi => image-upload.cgi} | 2 +- website/agenda/planung/js/image_upload.js | 6 +-- .../planung/{showImage.cgi => show-image.cgi} | 0 .../agenda/planung/templates/edit_event.html | 4 +- .../agenda/planung/templates/edit_series.html | 4 +- .../{imageUpload.html => image-upload.html} | 4 +- website/agenda/planung/templates/image.html | 2 +- .../agenda/planung/templates/projects.html | 4 +- .../{seriesNames.html => series-names.html} | 0 website/agenda/planung/templates/studios.html | 4 +- 11 files changed, 15 insertions(+), 61 deletions(-) delete mode 100644 website/agenda/planung/css/fileUploader.css rename website/agenda/planung/{imageUpload.cgi => image-upload.cgi} (99%) rename website/agenda/planung/{showImage.cgi => show-image.cgi} (100%) rename website/agenda/planung/templates/{imageUpload.html => image-upload.html} (93%) rename website/agenda/planung/templates/{seriesNames.html => series-names.html} (100%) diff --git a/website/agenda/planung/css/fileUploader.css b/website/agenda/planung/css/fileUploader.css deleted file mode 100644 index d29ee1e..0000000 --- a/website/agenda/planung/css/fileUploader.css +++ /dev/null @@ -1,46 +0,0 @@ -#px_display { - padding-top: 10px; - padding-bottom: 10px; -} -.uploadData { - padding: 5px; - width: 420px; - margin-top: 5px; - margin-bottom: 5px; - background-color: #F0F8FF; - border: 1px solid #B0D8FF; - position: relative; -} -.uploadData .fname { - padding-right: 10px; - width: 120px; -} -.uploadData .loader { - width: 140px; - text-align: center; - border-bottom-width: 1px; - border-bottom-style: dotted; - border-bottom-color: #999999; -} -.uploadData .result { - display: block; - float: left; - width: 130px; - padding-left: 10px; -} -.uploadData .close { - background-image: url(close.gif); - height: 16px; - width: 16px; - position: absolute; - top: 5px; - right: 5px; - cursor: pointer; -} -.uploadData .close:hover { - background-position: 16px 0px; -} -#px_button input{ - margin-right: 6px; - padding: 5px; -} diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/image-upload.cgi similarity index 99% rename from website/agenda/planung/imageUpload.cgi rename to website/agenda/planung/image-upload.cgi index 61d51d7..142ff96 100755 --- a/website/agenda/planung/imageUpload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -370,7 +370,7 @@ sub check_params { my $params = shift; my $checked = {}; - $checked->{template} = template::check( $config, $params->{template}, 'imageUpload' ); + $checked->{template} = template::check( $config, $params->{template}, 'image-upload' ); #numeric values for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { diff --git a/website/agenda/planung/js/image_upload.js b/website/agenda/planung/js/image_upload.js index 86e2dca..6518b2c 100644 --- a/website/agenda/planung/js/image_upload.js +++ b/website/agenda/planung/js/image_upload.js @@ -1,5 +1,5 @@ function initUploadDialog(){ - var url='imageUpload.cgi?project_id='+ getProjectId()+"&studio_id="+getStudioId(); + var url='image-upload.cgi?project_id='+ getProjectId()+"&studio_id="+getStudioId(); updateContainer("image-tabs-upload", url, pageLeaveHandler); } @@ -8,7 +8,7 @@ function uploadImage(){ var form=$("#img_upload"); var fd = new FormData(form[0]); var rq = $.ajax({ - url: 'imageUpload.cgi', + url: 'image-upload.cgi', type: 'POST', data: fd, cache: false, @@ -27,7 +27,7 @@ function uploadImage(){ //remove existing image from list $('#imageList div.images #img_'+image_id).remove(); - var url='showImage.cgi?project_id='+getProjectId()+'&studioId='+getStudioId()+'&type=icon&filename='+filename; + var url='show-image.cgi?project_id='+getProjectId()+'&studioId='+getStudioId()+'&type=icon&filename='+filename; var html = '<div'; html += ' id="img_' + image_id + '"'; diff --git a/website/agenda/planung/showImage.cgi b/website/agenda/planung/show-image.cgi similarity index 100% rename from website/agenda/planung/showImage.cgi rename to website/agenda/planung/show-image.cgi diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit_event.html index 8060fb0..15593f9 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit_event.html @@ -391,7 +391,7 @@ <tr> <td class="label">description</td> <td> - <img style="float:right;padding-left:1em" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"> + <img style="float:right;padding-left:1em" src="show-image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"> <div><TMPL_VAR topic</div> <div><TMPL_VAR html_content escape=none></div> </td> @@ -459,7 +459,7 @@ <button onclick="selectImage('<TMPL_VAR series_name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'event', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','<TMPL_VAR series_id>','<TMPL_VAR event_id>'); return false;" class="selectImage" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR studio_id>&filename=<TMPL_VAR image>&type=icon"> + <img id="imagePreview" src="show-image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input id="image_<TMPL_VAR event_id>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.label_image>"> <input type="hidden" name="series_image" value="<TMPL_VAR series_image>" > diff --git a/website/agenda/planung/templates/edit_series.html b/website/agenda/planung/templates/edit_series.html index 98d8c11..60d69b8 100644 --- a/website/agenda/planung/templates/edit_series.html +++ b/website/agenda/planung/templates/edit_series.html @@ -123,7 +123,7 @@ <button class="selectImage" onclick="selectImage('<TMPL_VAR series_name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'series', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>','<TMPL_VAR series_id>'); return false;" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> + <img id="imagePreview" src="show-image.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input type="hidden" name="series_image" value="<TMPL_VAR series_image>" > @@ -433,7 +433,7 @@ <TMPL_LOOP events> <tr id="event_<TMPL_VAR event_id>"> <TMPL_IF .allow.read_image> - <td class="logo"><img width="33" height="33" src="showImage.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"></td> + <td class="logo"><img width="33" height="33" src="show-image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR image>"></td> </TMPL_IF> <td class="weekday"><TMPL_VAR weekday_short_name></td> <td class="date"><TMPL_VAR start_date></td> diff --git a/website/agenda/planung/templates/imageUpload.html b/website/agenda/planung/templates/image-upload.html similarity index 93% rename from website/agenda/planung/templates/imageUpload.html rename to website/agenda/planung/templates/image-upload.html index f2a8a40..a5b9c9d 100644 --- a/website/agenda/planung/templates/imageUpload.html +++ b/website/agenda/planung/templates/image-upload.html @@ -16,7 +16,7 @@ </TMPL_IF> </TMPL_IF> - <form name="img_upload" id="img_upload" method="POST" action="imageUpload.cgi" enctype="multipart/form-data"> + <form name="img_upload" id="img_upload" method="POST" action="image-upload.cgi" enctype="multipart/form-data"> <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> <input type="hidden" name="action" value="upload"> @@ -24,7 +24,7 @@ <tr> <td> <TMPL_IF filename> - <div class="image" style="background-image:url('showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" > + <div class="image" style="background-image:url('show-image.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" > </div> </TMPL_IF> </td> diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 14f5293..930d2fb 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -98,7 +98,7 @@ <TMPL_LOOP images> <div class="image" id="img_<TMPL_VAR id>" - style="background-image:url('showImage.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" + style="background-image:url('show-image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" title="<TMPL_VAR description>" filename="<TMPL_VAR filename>" > diff --git a/website/agenda/planung/templates/projects.html b/website/agenda/planung/templates/projects.html index 45f7d25..5ab596a 100644 --- a/website/agenda/planung/templates/projects.html +++ b/website/agenda/planung/templates/projects.html @@ -52,7 +52,7 @@ <!-- view project --> <div id="view_<TMPL_VAR project_id>" class="panel-body"> <table> - <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td colspan="2"><img src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> + <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td colspan="2"><img src="show-image.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_name></td> <td colspan="2"><TMPL_VAR name>  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_subtitle></td> <td colspan="2"><TMPL_VAR subtitle>  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_start_date></td> <td colspan="2"><TMPL_VAR start_date>  </td></tr> @@ -99,7 +99,7 @@ class="selectImage" onclick="selectImage('<TMPL_VAR name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'projects', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>', null, null, '<TMPL_VAR pid>'); return false;" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> + <img id="imagePreview" src="show-image.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input id="image_<TMPL_VAR pid>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.template_image>"> </td> diff --git a/website/agenda/planung/templates/seriesNames.html b/website/agenda/planung/templates/series-names.html similarity index 100% rename from website/agenda/planung/templates/seriesNames.html rename to website/agenda/planung/templates/series-names.html diff --git a/website/agenda/planung/templates/studios.html b/website/agenda/planung/templates/studios.html index dcd72ee..ade4d1b 100644 --- a/website/agenda/planung/templates/studios.html +++ b/website/agenda/planung/templates/studios.html @@ -48,7 +48,7 @@ <!-- view studio --> <div id="view_<TMPL_VAR id>" class="panel-body"> <table> - <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td><img src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> + <tr><td class="label"><TMPL_VAR .loc.label_image></td> <td><img src="show-image.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=thumbs">  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_name></td> <td><TMPL_VAR name>  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_description></td> <td><TMPL_VAR description>  </td></tr> <tr><td class="label"><TMPL_VAR .loc.label_location></td> <td><TMPL_VAR location>  </td></tr> @@ -75,7 +75,7 @@ class="selectImage" onclick="selectImage('<TMPL_VAR name escape=HTML>', '<TMPL_VAR image ESCAPE=url>', 'studios', '<TMPL_VAR .project_id>','<TMPL_VAR .studio_id>'); return false;" > - <img id="imagePreview" src="showImage.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> + <img id="imagePreview" src="show-image.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&filename=<TMPL_VAR image>&type=icon"> </button> <input id="image_<TMPL_VAR id>" name="image" value="<TMPL_VAR image>" class="image" placeholder="<TMPL_VAR .loc.template_image>"> </td> From edb2aa29d75d3b1ed972472c66274933ce1e86bd Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 5 Oct 2019 14:21:33 +0200 Subject: [PATCH 086/391] redesign image editor - remove zoom - separate setting public/private from edit form - prevent assigning image without it has been published - prevent publishing image without licence - show buttons depending on license state - reload view on state change - gray out not-selected images --- .../css/{image_manager.css => image.css} | 8 +- website/agenda/planung/image.cgi | 7 ++ website/agenda/planung/js/image.js | 78 +++++++------------ website/agenda/planung/pot/de/image.po | 56 ++++++++++--- website/agenda/planung/pot/en/image.po | 52 ++++++++++--- .../agenda/planung/templates/edit_image.html | 42 ++++++---- .../planung/templates/image-upload.html | 28 +++---- website/agenda/planung/templates/image.html | 66 +++++++--------- 8 files changed, 204 insertions(+), 133 deletions(-) rename website/agenda/planung/css/{image_manager.css => image.css} (93%) diff --git a/website/agenda/planung/css/image_manager.css b/website/agenda/planung/css/image.css similarity index 93% rename from website/agenda/planung/css/image_manager.css rename to website/agenda/planung/css/image.css index 42b7079..7ddbb31 100644 --- a/website/agenda/planung/css/image_manager.css +++ b/website/agenda/planung/css/image.css @@ -53,6 +53,10 @@ input.field{ box-shadow: 0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15); } +#content div.image.inactive{ + opacity:0.5; +} + #imageEditor{ min-height:800px; height:100%; @@ -67,7 +71,7 @@ input.field{ } #content label{ - margin-top:1rem; + margin-top: 1rem; text-transform: uppercase; - color:#333; + color:#999; } diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index aa51a88..14a7f3e 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -229,6 +229,13 @@ sub show_image { # print STDERR $template_params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'image' } ); + + my $label_key = 'label_assign_to_'.$params->{target}; + $template_params->{label_assign_to_by_label} = $template_params->{loc}->{$label_key}; + + $label_key = 'label_warn_not_public_'.$params->{target}; + $template_params->{label_warn_not_public_by_label} = $template_params->{loc}->{$label_key}; + $template_params = uac::set_template_permissions( $permissions, $template_params ); $template_params->{no_results} = 1 if scalar @$results == 0; diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index d99d191..8e4bcac 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -1,7 +1,4 @@ -var windowOffsetX=0; -var windowOffsetY=0; - // get current selected tab by tabs-id function getSelectedTab(id){ var selector = '#'+id+" li.ui-tabs-active a"; @@ -10,13 +7,15 @@ function getSelectedTab(id){ } function setActiveImage(elem){ + if ( !elem ) elem = $('div.images div.image').first(); $('div.image').removeClass("active"); + $('div.image').addClass("inactive"); + elem.addClass("active"); + elem.removeClass("inactive"); +} - if (elem){ - $(elem).addClass("active"); - }else{ - $('div.images div.image').first().addClass("active"); - } +function updateActiveImage(){ + $('div.images div.image.active').click(); } // open dialog to show or edit image properties @@ -63,13 +62,23 @@ function searchImage(target, project_id, studio_id, series_id, event_id, pid){ load(url); } +// disable public, save and update form on success +function depublishImage(id, filename){ + $('#save_img_'+id+' input[name="public"]').val("0"); + saveImage(id, filename); +} +// enable public and save and update form on success +function publishImage(id, filename){ + $('#save_img_'+id+' input[name="public"]').val("1"); + saveImage(id, filename); +} // save image function saveImage(id, filename) { $('#imageEditor #status').html(''); - console.log("save image "+id); + console.log("save image "+id+" "); var url='image.cgi?save_image='+filename+'&project_id='+project_id+'&studio_id='+studio_id; $.post( @@ -77,22 +86,21 @@ function saveImage(id, filename) { $("#save_img_"+id).serialize(), function(data){ var errorFound=0; - - var lines=data.split(/\n/); - for (index in lines){ - var line=lines[index]; - if(contains(line,'ERROR:')){ - //add error field - if( $('#imageEditor #status .error').length==0 ){ - $('#imageEditor #status').append('<div class="error"></div>'); + data.split(/\n/).forEach( + function(line){ + if(contains(line, 'ERROR:')){ + //add error field + if( $('#imageEditor #status .error').length==0 ){ + $('#imageEditor #status').append('<div class="error"></div>'); + } + $('#imageEditor #status div.error').append(line); + errorFound++; } - $('#imageEditor #status div.error').append(line); - errorFound++; - } - }; - //console.log(data); + } + ); if (errorFound==0){ $('#imageEditor #status').append('<div class="ok">saved</div>'); + updateActiveImage(); } hideImageDetails('img_'+id, filename); } @@ -128,30 +136,6 @@ function hideImageDetails(id, filename){ return false; } -// zoom all images in -function increaseImageSize(){ - var value=$('#content div.image').css('width'); - value=value.replace(/[^0-9]/g,''); - if(value>200)return; - value=parseInt(value*1.3); - $('#content div.image').css('width', value+'px'); - $('#content div.image div').css('width', (value-12)+'px'); - $('#content div.image').css('height', value+'px'); - $('#content div.image').css('background-size', value+'px'); -} - -// zoom all images out -function decreaseImageSize(){ - var value=$('#content div.image').css('width'); - value=value.replace(/[^0-9]/g,''); - if(value<50)return; - value=parseInt(value/1.3); - $('#content div.image').css('width', value+'px'); - $('#content div.image div').css('width', (value-12)+'px'); - $('#content div.image').css('height', value+'px'); - $('#content div.image').css('background-size', value+'px'); -} - function selectImage( searchValue, imageUrl, target, project_id, studio_id, series_id, event_id, pid){ searchValue = searchValue.replace(/[^a-zA-Z0-9]/g,'%'); @@ -205,10 +189,8 @@ $(document).ready( $('div.images').on( 'click', 'div.image', function(){ var elem = $(this); - console.log(elem) var filename = elem.attr("filename"); elem = elem.parent(); - console.log(elem) var target = elem.attr("target"); var projectId = elem.attr("projectId"); var studioId = elem.attr("studioId"); diff --git a/website/agenda/planung/pot/de/image.po b/website/agenda/planung/pot/de/image.po index af12714..42bc966 100644 --- a/website/agenda/planung/pot/de/image.po +++ b/website/agenda/planung/pot/de/image.po @@ -8,7 +8,7 @@ msgid "tab_edit" msgstr "Bearbeiten" msgid "tab_upload" -msgstr "Hochladen" +msgstr "Neues Bild" msgid "button_upload" msgstr "Hochladen" @@ -16,18 +16,24 @@ msgstr "Hochladen" msgid "button_search" msgstr "Suchen" -msgid "button_zoom_in" -msgstr "Vergrößern" - -msgid "button_zoom_out" -msgstr "Verkleinern" - msgid "button_save" msgstr "Speichern" msgid "button_delete" msgstr "Löschen" +msgid "button_properties" +msgstr "Eigenschaften" + +msgid "button_publish" +msgstr "Veröffentlichen" + +msgid "button_depublish" +msgstr "Depublizieren" + +msgid "label_warn_unknown_licence" +msgstr "Kann nicht veröffentlicht werden, da keine Lizenz angegeben wurde" + msgid "label_name" msgstr "Name" @@ -64,9 +70,37 @@ msgstr "veröffentlicht" msgid "label_file" msgstr "Datei" -msgid "label_licence_missing" -msgstr "bitte eintragen" +msgid "label_name_required" +msgstr "Bitte Feld eintragen" + +msgid "label_licence_required" +msgstr "Bild kann ohne Lizenzangabe nicht veröffentlicht werden" + +msgid "label_mandatory_field" +msgstr "bitte füllen Sie dieses Feld aus" + +msgid "label_assign_to_event" +msgstr "Dieses Bild für Sendung nutzen" + +msgid "label_assign_to_series" +msgstr "Dieses Bild für Sendereihe nutzen" + +msgid "label_assign_to_studio" +msgstr "Dieses Bild für Studio nutzen" + +msgid "label_assign_to_project" +msgstr "Dieses Bild für Projekt nutzen" + +msgid "label_warn_not_public_event" +msgstr "Kann Sendung nicht zugewiesen werden, da nicht veröffentlicht" + +msgid "label_warn_not_public_series" +msgstr "Kann Sendereihe nicht zugewiesen werden, da nicht veröffentlicht" + +msgid "label_warn_not_public_studio" +msgstr "Kann Studio nicht zugewiesen werden, da nicht veröffentlicht" + +msgid "label_warn_not_public_project" +msgstr "Kann Projekt nicht zugewiesen werden, da nicht veröffentlicht" -msgid "select_image" -msgstr "Dieses Bild zuweisen" diff --git a/website/agenda/planung/pot/en/image.po b/website/agenda/planung/pot/en/image.po index bd89390..e17c9fb 100644 --- a/website/agenda/planung/pot/en/image.po +++ b/website/agenda/planung/pot/en/image.po @@ -1,3 +1,4 @@ + msgid "region" msgstr "en" @@ -16,18 +17,24 @@ msgstr "upload" msgid "button_search" msgstr "search" -msgid "button_zoom_in" -msgstr "zoom in" - -msgid "button_zoom_out" -msgstr "zoom out" - msgid "button_save" msgstr "save" msgid "button_delete" msgstr "delete" +msgid "button_properties" +msgstr "properties" + +msgid "button_publish" +msgstr "publish" + +msgid "button_depublish" +msgstr "hold back" + +msgid "label_warn_unknown_licence" +msgstr "Cannot be pusblished without setting a licence" + msgid "label_name" msgstr "name" @@ -64,9 +71,36 @@ msgstr "published" msgid "label_file" msgstr "file" -msgid "label_licence_missing" +msgid "label_name_required" msgstr "please fill in" -msgid "select_image" -msgstr "select this image" +msgid "label_licence_required" +msgstr "image cannot be published without license" + +msgid "label_mandatory_field" +msgstr "please fill in" + +msgid "label_assign_to_event" +msgstr "use image for event" + +msgid "label_assign_to_series" +msgstr "use image for series" + +msgid "label_assign_to_studio" +msgstr "use image for studio" + +msgid "label_assign_to_project" +msgstr "use image for project" + +msgid "label_warn_not_public_event" +msgstr "Cannot be assigned to event without have been published" + +msgid "label_warn_not_public_series" +msgstr "Cannot be assigned to series without have been published" + +msgid "label_warn_not_public_studio" +msgstr "Cannot be assigned to studio without have been published" + +msgid "label_warn_not_public_project" +msgstr "Cannot be assigned to project without have been published" diff --git a/website/agenda/planung/templates/edit_image.html b/website/agenda/planung/templates/edit_image.html index aeb8591..01f0fd2 100644 --- a/website/agenda/planung/templates/edit_image.html +++ b/website/agenda/planung/templates/edit_image.html @@ -9,9 +9,25 @@ found no image <TMPL_LOOP images> <TMPL_IF filename> <div id="imageEditor" class="editor"> - <button onclick="assignImage('<TMPL_VAR filename escape=none>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false"><TMPL_VAR .loc.select_image></button/> + + <TMPL_IF public> + <button onclick="assignImage('<TMPL_VAR filename escape=none>', '<TMPL_VAR .target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false"> + <TMPL_VAR .label_assign_to_by_label> + </button> + + <button onclick="depublishImage('<TMPL_VAR id>', '<TMPL_VAR filename escape=none>'); return false;"><TMPL_VAR .loc.button_depublish></button> + + <TMPL_ELSE> + <div class="warn"><TMPL_VAR .label_warn_not_public_by_label></div> + <TMPL_IF missing_licence> + <div class="warn"><TMPL_VAR .loc.label_warn_unknown_licence></div> + <TMPL_ELSE> + <button onclick="publishImage('<TMPL_VAR id>', '<TMPL_VAR filename escape=none>'); return false;"><TMPL_VAR .loc.button_publish></button> + </TMPL_IF> + </TMPL_IF> <div class="panel-body"> + <div id="status"></div> <form id="save_img_<TMPL_VAR id>" method="post" @@ -21,18 +37,16 @@ found no image <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> - + <input type="hidden" class="public" name="public" <TMPL_IF public>checked="checked" value="1"<TMPL_ELSE>value="0"</TMPL_IF> /><br> + <label><TMPL_VAR .loc.label_name></label><br> - <input value="<TMPL_VAR name escape=none>" name="update_name" class="field" placeholder="<TMPL_VAR .loc.label_name>"><br> - - <label><TMPL_VAR .loc.label_description></label><br> - <textarea class="field" name="update_description" cols="50" rows=5 placeholder="<TMPL_VAR .loc.label_description>"><TMPL_VAR description escape=none></textarea><br> + <input value="<TMPL_VAR name escape=none>" name="update_name" class="field" placeholder="<TMPL_VAR .loc.label_mandatory_field>"><br> <label><TMPL_VAR .loc.label_author>/<TMPL_VAR .loc.label_licence></label><br> - <input name="licence" value="<TMPL_VAR licence>" class="field<TMPL_IF missing_licence> error</TMPL_IF>" placeholder="<TMPL_VAR .loc.label_licence_missing>"/><br> + <input name="licence" value="<TMPL_VAR licence>" class="field<TMPL_IF missing_licence> error</TMPL_IF>" placeholder="<TMPL_VAR .loc.label_mandatory_field>" required/><br> - <label><TMPL_VAR .loc.label_public></label> - <input type="checkbox" name="public" <TMPL_IF public>checked="checked" value="1"<TMPL_ELSE>value="0"</TMPL_IF> /><br> + <label><TMPL_VAR .loc.label_description></label><br> + <textarea class="field" name="update_description" cols="50" rows="5" ><TMPL_VAR description escape=none></textarea><br> <TMPL_IF name="update_image"> <input type="hidden" name="save_image" value="<TMPL_VAR filename escape=none>" /> @@ -43,10 +57,12 @@ found no image <button onclick="askDeleteImage('img_<TMPL_VAR id escape=none>','<TMPL_VAR filename escape=none>');return false;"><TMPL_VAR .loc.button_delete></button> </TMPL_IF> - <div id="status" ></div> - <TMPL_VAR .loc.label_created_at> <TMPL_VAR created_at> <TMPL_VAR .loc.label_created_by> <TMPL_VAR created_by><br> - <TMPL_VAR .loc.label_modified_at> <TMPL_VAR modified_at> <TMPL_VAR .loc.label_modified_by> <TMPL_VAR modified_by><br> - <TMPL_VAR .loc.label_link>: {{<TMPL_VAR filename escape=none>|<TMPL_VAR name>}}<br> + <button onclick='$("#save_img_<TMPL_VAR id> #properties").show();return false;'><TMPL_VAR .loc.button_properties></button> + <div id="properties" style="display:none"> + <TMPL_VAR .loc.label_created_at> <TMPL_VAR created_at> <TMPL_VAR .loc.label_created_by> <TMPL_VAR created_by><br> + <TMPL_VAR .loc.label_modified_at> <TMPL_VAR modified_at> <TMPL_VAR .loc.label_modified_by> <TMPL_VAR modified_by><br> + <TMPL_VAR .loc.label_link>: {{<TMPL_VAR filename escape=none>|<TMPL_VAR name>}}<br> + </div> </form> diff --git a/website/agenda/planung/templates/image-upload.html b/website/agenda/planung/templates/image-upload.html index a5b9c9d..94146df 100644 --- a/website/agenda/planung/templates/image-upload.html +++ b/website/agenda/planung/templates/image-upload.html @@ -37,29 +37,29 @@ </tr> <tr> - <td>Name: </td> - <td><input value="<TMPL_VAR name escape=none>" name="name" size="40" maxlength="100" required> </td> - </tr> - <tr> - <td>Beschreibung: </td> - <td><textarea name="description" cols="50" rows=5><TMPL_VAR description escape=none></textarea></td> + <td><label><TMPL_VAR .loc.label_name></label></td> + <td><input value="<TMPL_VAR name escape=none>" name="name" size="40" maxlength="100" placeholder="<TMPL_VAR .loc.label_name_required>" required> </td> </tr> + <tr> <td><label><TMPL_VAR .loc.label_author>/<TMPL_VAR .loc.label_licence></label></td> - <td><input name="licence" value="<TMPL_VAR licence>" placeholder="<TMPL_VAR .loc.label_licence_missing>" required /></td> - </tr> - <tr> - <td><label><TMPL_VAR .loc.label_public></label></td> - <td><input type="checkbox" name="public" <TMPL_IF public>checked="checked" value="1"<TMPL_ELSE>value="0"</TMPL_IF> /></td> + <td><input name="licence" size="40" value="<TMPL_VAR licence>" placeholder="<TMPL_VAR .loc.label_licence_required>" required /></td> </tr> + <tr> - <td>Datei</td> - <td><input type="file" name="image" accept="image/*" maxlength="2000000" size="10" required/> </td> + <td><label><TMPL_VAR .loc.label_file></label></td> + <td><input type="file" name="image" accept="image/*" maxlength="2000000" size="10" required /></td> </tr> + + <tr> + <td><label><TMPL_VAR .loc.label_description></label></td> + <td><textarea name="description" cols="50" rows=5><TMPL_VAR description escape=none ></textarea></td> + </tr> + <tr> <td></td> <td> - <button onclick="uploadImage();return false">Hochladen</button> + <button onclick="uploadImage();return false" ><TMPL_VAR .loc.button_upload></button> </td> </tr> </table> diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 930d2fb..1f43209 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -1,5 +1,5 @@ -<link type="text/css" href="css/image_manager.css" rel="stylesheet"/> +<link type="text/css" href="css/image.css" rel="stylesheet"/> <script src="js/image.js" type="text/javascript"></script> <script src="js/page_leave_handler.js" type="text/javascript"></script> @@ -72,49 +72,43 @@ </div> <div id="imageList"> - <div style="float:right"> - <button onclick="decreaseImageSize();return false;" title="<TMPL_VAR .loc.button_zoom_out>">-</button> - <button onclick="increaseImageSize();return false;" title="<TMPL_VAR .loc.button_zoom_in>">+</button> - </div> - <form id="image_manager" action="image.cgi"> - <input name="search" value="<TMPL_VAR search escape=none>" style="width:20em;"> - <input type="hidden" name="filename" value="<TMPL_VAR filename escape=none>"> - <button onclick="searchImage('<TMPL_VAR target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false;"><TMPL_VAR .loc.button_search></button> - </form> - <TMPL_VAR count> <TMPL_VAR .loc.label_search_hits><br /> - - <div style="clear:both;display: flex; flex-direction: row;"> - - <div class="images" - style="overflow-y:scroll" - target="<TMPL_VAR .target>" - projectId="<TMPL_VAR .project_id>" - studioId="<TMPL_VAR .studio_id>" - seriesId="<TMPL_VAR .series_id>" - eventId="<TMPL_VAR .event_id>" - pid="<TMPL_VAR .pid>" - > - <TMPL_LOOP images> - <div class="image" - id="img_<TMPL_VAR id>" - style="background-image:url('show-image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" - title="<TMPL_VAR description>" - filename="<TMPL_VAR filename>" - > - <div class="label"><TMPL_VAR name></div> - </div> - </TMPL_LOOP> + <div style="clear:both; display:flex; flex-direction:row;"> + <div> + <form id="image_manager" action="image.cgi"> + <input name="search" value="<TMPL_VAR search escape=none>" style="width:20em;"> + <input type="hidden" name="filename" value="<TMPL_VAR filename escape=none>"> + <button onclick="searchImage('<TMPL_VAR target>', '<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', '<TMPL_VAR .series_id>', '<TMPL_VAR .event_id>', '<TMPL_VAR .pid>'); return false;"><TMPL_VAR .loc.button_search></button> + </form> + <TMPL_VAR count> <TMPL_VAR .loc.label_search_hits><br /> + <div class="images" + style="overflow-y:scroll" + target="<TMPL_VAR .target>" + projectId="<TMPL_VAR .project_id>" + studioId="<TMPL_VAR .studio_id>" + seriesId="<TMPL_VAR .series_id>" + eventId="<TMPL_VAR .event_id>" + pid="<TMPL_VAR .pid>" + > + <TMPL_LOOP images> + <div class="image" + id="img_<TMPL_VAR id>" + style="background-image:url('show-image.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&type=icon&filename=<TMPL_VAR filename>')" + title="<TMPL_VAR description>" + filename="<TMPL_VAR filename>" + > + <div class="label"><TMPL_VAR name></div> + </div> + </TMPL_LOOP> + </div> </div> - <div id="img_editor" > </div> </div> </div> </TMPL_IF> - -</main> +</main> </center> </body> From a80afcad99fedfbfa125e02e4676a4f0102ad739 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 5 Oct 2019 15:57:29 +0200 Subject: [PATCH 087/391] reformat css --- website/agenda/css/agenda.css | 395 ++++---- website/agenda/css/calcms.css | 941 +++++++++--------- .../agenda/planung/css/audio_recordings.css | 51 +- website/agenda/planung/css/calendar.css | 720 +++++++------- website/agenda/planung/css/comment.css | 173 ++-- website/agenda/planung/css/default.css | 698 ++++++------- website/agenda/planung/css/diff.css | 53 +- website/agenda/planung/css/event.css | 70 +- website/agenda/planung/css/playlist.css | 32 +- website/agenda/planung/css/projects.css | 47 +- website/agenda/planung/css/series.css | 289 +++--- website/agenda/planung/css/show-playout.css | 74 +- .../agenda/planung/css/studio_timeslots.css | 138 +-- website/agenda/planung/css/studios.css | 43 +- website/agenda/planung/css/wiki_preview.css | 9 +- website/agenda/planung/css/work_time.css | 241 +++-- 16 files changed, 2008 insertions(+), 1966 deletions(-) diff --git a/website/agenda/css/agenda.css b/website/agenda/css/agenda.css index f20c48b..4b4d1bd 100644 --- a/website/agenda/css/agenda.css +++ b/website/agenda/css/agenda.css @@ -3,249 +3,302 @@ */ /* main structure */ -/* -body { - - font-size:12px -} -*/ -#nav { - text-align:center; - margin:0; - height:3em; - z-index:3; - text-align:left; - background:white; - width:100%; - font-size:10px; +#nav { + text-align: center; + margin: 0; + height: 3em; + z-index: 3; + text-align: left; + background: white; + width: 100%; + font-size: 10px; } -#calcms_body { -/* - font-size:10px; -*/ - overflow:auto; - background:white; - padding-top:3px;padding-right:5px; - margin:bottom:1px; - text-align:left; - padding:3px; +#calcms_body { + overflow: auto; + background: white; + padding-top: 3px; + padding-right: 5px; + margin: bottom:1px; + text-align: left; + padding: 3px; } -pre { - text-align:left; -/* - font-size:0.7em; -*/ - font-family:Courier; - padding:1em;margin:1em; - border:1px solid black; - background-color:#eee; +pre { + text-align: left; + font-family: Courier; + padding: 1em; + margin: 1em; + border: 1px solid black; + background-color: #eee; } - /* end of main structure */ - /* search field */ - -#nav form {float:left;} -#nav form input { -/* - font-size:12px; -*/ - padding:0;margin:1;border:1px solid gray +#nav form { + float: left; } -#nav form select { -/* - font-size:12px; -*/ - padding:0;margin:1;border:1px solid gray;width:130px; +#nav form input { + padding: 0; + margin: 1; + border: 1px solid gray } -#nav form option { -/* - font-size:12px; -*/ - padding:0;margin:0 +#nav form select { + padding: 0; + margin: 1; + border: 1px solid gray; + width: 130px; +} + +#nav form option { + padding: 0; + margin: 0 } /* end of search field */ - /* event fields */ - - -.calcms_date { - background: #ccccff; - padding:6px;margin:0px; - font-weight:bold; - margin-top:1em; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - -webkit-border-top-right-radius: 6px; - -webkit-border-top-left-radius: 6px; - text-align:left +.calcms_date { + background: #ccccff; + padding: 6px; + margin: 0px; + font-weight: bold; + margin-top: 1em; + -moz-border-radius-topleft: 6px; + -moz-border-radius-topright: 6px; + -webkit-border-top-right-radius: 6px; + -webkit-border-top-left-radius: 6px; + text-align: left } -.calcms_title {padding:3px;margin:0px;font-weight:bold;text-align:left;} -.calcms_excerpt {padding:3px;margin:0px;background-color:#eee;} -.calcms_content {padding:3px;margin:0px;clear:left;margin:0} -.calcms_content p {margin-top:10px} -.calcms_content h1 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} -.calcms_content h2 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} -.calcms_content h3 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} -.calcms_content h4 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} -.calcms_content li {clear:left;} -.calcms_content img {text-align:left;font-size:1.5em;float:left;margin-right:10px;}/*width:50;height:50px;*/ -.calcms_event {text-align:left} -.calcms_day {padding:1px;margin:0px;clear:left;text-align:left} +.calcms_title { + padding: 3px; + margin: 0px; + font-weight: bold; + text-align: left; +} + +.calcms_excerpt { + padding: 3px; + margin: 0px; + background-color: #eee; +} + +.calcms_content { + padding: 3px; + margin: 0px; + clear: left; + margin: 0 +} + +.calcms_content p { + margin-top: 10px +} + +.calcms_content h1 { + text-align: left; + font-size: 1.5em; + clear: left; + margin-top: 16px +} + +.calcms_content h2 { + text-align: left; + font-size: 1.5em; + clear: left; + margin-top: 16px +} + +.calcms_content h3 { + text-align: left; + font-size: 1.5em; + clear: left; + margin-top: 16px +} + +.calcms_content h4 { + text-align: left; + font-size: 1.5em; + clear: left; + margin-top: 16px +} + +.calcms_content li { + clear: left; +} + +.calcms_content img { + text-align: left; + font-size: 1.5em; + float: left; + margin-right: 10px; +} /*width:50;height:50px;*/ +.calcms_event { + text-align: left +} + +.calcms_day { + padding: 1px; + margin: 0px; + clear: left; + text-align: left +} /* hide microformats */ -.dtstart {display:none;visibility:hidden;} -.dtend {display:none;visibility:hidden;} +.dtstart { + display: none; + visibility: hidden; +} + +.dtend { + display: none; + visibility: hidden; +} /* end of event fields */ - - /* navigation bar */ +table#nav { + padding: 0; + margin: 0; + width: 100%; + border-left: 1px solid #88f; + border-top: 1px solid #88f; + text-align: left; +} -table#nav{ - padding:0;margin:0;width:100%; - border-left:1px solid #88f; - border-top: 1px solid #88f; - text-align:left; +table#nav table { + padding: 0; + margin: 0; + border-left: 0; + border-top: 0; + text-align: left; + width: 100% } -table#nav table{ - padding:0;margin:0; - border-left:0;border-top:0; - text-align:left;width:100% + +table#nav table td { + margin: 0; + text-align: center; + border-bottom: 1px solid #88f; + border-right: 1px solid #88f; } -table#nav table td{ - margin:0;text-align:center; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; -} -table#nav table td, -table#nav table a{ - padding:1px; -/* + +table#nav table td, table#nav table a { + padding: 1px; + /* font-size:10px; */ } - /* hover effects */ - -table#nav table td:hover{ - border-bottom:1px solid #88f; - border-right :1px solid #88f; - background-color:#f0f0f0; +table#nav table td:hover { + border-bottom: 1px solid #88f; + border-right: 1px solid #88f; + background-color: #f0f0f0; } -table#nav table td.selected:hover{ - background-color:#eee; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; +table#nav table td.selected:hover { + background-color: #eee; + border-bottom: 1px solid #88f; + border-right: 1px solid #88f; } -table#nav table a:hover{ +table#nav table a:hover { + } - /* not selectable columns */ - -table#nav table td.row_type:hover{ - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - background-color:#ffffff; +table#nav table td.row_type:hover { + border-bottom: 1px solid #88f; + border-right: 1px solid #88f; + background-color: #ffffff; } -.row_type{ - width:100px +.row_type { + width: 100px } - /* selected fields */ -#nav .selected, .night, .morning, .noon, .afternoon, .evening{ - background:#ddd; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - -moz-border-radius-topleft:5px; - -moz-border-radius-topright:5px; - -webkit-border-top-right-radius: 5px; - -webkit-border-top-left-radius: 5px; +#nav .selected, .night, .morning, .noon, .afternoon, .evening { + background: #ddd; + border-bottom: 1px solid #88f; + border-right: 1px solid #88f; + -moz-border-radius-topleft: 5px; + -moz-border-radius-topright: 5px; + -webkit-border-top-right-radius: 5px; + -webkit-border-top-left-radius: 5px; } - /* end of navigation bar */ /* calendar weeks */ - -#nav td.week_1, -#nav td.week_2, -#nav td.week_3, -#nav td.week_4, -#nav td.week_5 { - border-right:1px solid #88f ; +#nav td.week_1, #nav td.week_2, #nav td.week_3, #nav td.week_4, #nav td.week_5 + { + border-right: 1px solid #88f; } /* end of calendar weeks */ - /* calendar days */ /* replaces the original wp css*/ - -#wp-calendar {} -#wp-calendar a {padding:2px} -#wp-calendar table {padding:2px} - -#wp-calendar td { -/* - font-size:8px; -*/ - text-align:center; - background-color:#fefeff; +#wp-calendar { + } -#wp-calendar td a { - padding:2px; -/* + +#wp-calendar a { + padding: 2px +} + +#wp-calendar table { + padding: 2px +} + +#wp-calendar td { + /* font-size:8px; */ - font-weight:normal; + text-align: center; + background-color: #fefeff; +} + +#wp-calendar td a { + padding: 2px; + /* + font-size:8px; +*/ + font-weight: normal; } #wp-calendar a:hover { - background:#eeeeff; + background: #eeeeff; } - /* additional css to mark today and all dates matching to the request */ - -#wp-calendar .calcms_today { - padding:2px;margin:0px;background:#eeeeee; +#wp-calendar .calcms_today { + padding: 2px; + margin: 0px; + background: #eeeeee; } -#wp-calendar td.calcms_match { - background:#ccffcc; +#wp-calendar td.calcms_match { + background: #ccffcc; } -#wp-calendar td .selected .calcms_match { - background:#ddeedd; + +#wp-calendar td .selected .calcms_match { + background: #ddeedd; } /* end of calendar days */ - div.update { - position:absolute; - bottom:0px; + position: absolute; + bottom: 0px; } -div.update , div.update a{ - text-align:left; - font-size:6px; - color:#bbb; -} - - +div.update, div.update a { + text-align: left; + font-size: 6px; + color: #bbb; +} \ No newline at end of file diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index c8ed305..cd8a5e7 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -1,11 +1,10 @@ - /* roboto-regular - latin_latin-ext */ @font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 400; + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; src: url('../fonts/roboto-v18-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ - src: local('Roboto'), local('Roboto-Regular'), + src: local('Roboto'), local('Roboto-Regular'), url('../fonts/roboto-v18-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('../fonts/roboto-v18-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ url('../fonts/roboto-v18-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ @@ -15,11 +14,11 @@ /* open-sans-regular - latin_latin-ext */ @font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; src: url('../fonts/open-sans-v15-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ - src: local('Open Sans Regular'), local('OpenSans-Regular'), + src: local('Open Sans Regular'), local('OpenSans-Regular'), url('../fonts/open-sans-v15-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('../fonts/open-sans-v15-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ url('../fonts/open-sans-v15-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ @@ -36,73 +35,72 @@ } /* fix drupal */ -input{ - max-width:20em; +input { + max-width: 20em; } -body.custom-background{ +body.custom-background { image-rendering: pixelated; } -a{ - text-decoration:none; - box-shadow:none !important; +a { + text-decoration: none; + box-shadow: none !important; } /* hide microformats */ .vevent .dtstart, .vevent .dtend, -.vevent .location{ - display:none; - visibility:hidden; +.vevent .location { + display: none; + visibility: hidden; } -.vevent a{ - font-weight:normal; +.vevent a { + font-weight: normal; } /* end of common */ - /* menu */ -#calcms_menu{ - clear:both; - text-align:left; +#calcms_menu { + clear: both; + text-align: left; } -#calcms_menu .date{ - margin:0.5em; - font-weight:bold; +#calcms_menu .date { + margin: 0.5em; + font-weight: bold; } -#calcms_menu div.event{ - padding:0.5em; +#calcms_menu div.event { + padding: 0.5em; } -#calcms_menu div.icon{ - width:25px; - margin-right:1em; - float:left; +#calcms_menu div.icon { + width: 25px; + margin-right: 1em; + float: left; } -#calcms_menu img{ - border:1px solid #ccc; - width:25px; - height:25px; +#calcms_menu img { + border: 1px solid #ccc; + width: 25px; + height: 25px; } -#calcms_menu .title{ - padding:0; - margin:0; - line-height:120%; +#calcms_menu .title { + padding: 0; + margin: 0; + line-height: 120%; } -#calcms_menu .event.running{ - font-weight:bold; +#calcms_menu .event.running { + font-weight: bold; } -#calcms_menu a:hover{ - text-decoration:none; +#calcms_menu a:hover { + text-decoration: none; } #calcms_menu .event { @@ -113,41 +111,40 @@ a{ background: #e6e6e6; } - /* coming events*/ -#calcms_playlist{ - clear:both; - text-align:left; +#calcms_playlist { + clear: both; + text-align: left; } -#calcms_playlist div.event{ - padding:0.5em; +#calcms_playlist div.event { + padding: 0.5em; } -#calcms_playlist div.icon{ - width:25px; - margin-right:1em; - float:left; +#calcms_playlist div.icon { + width: 25px; + margin-right: 1em; + float: left; } -#calcms_playlist img{ - width:25px; - height:25px; - border:1px solid #ccc; +#calcms_playlist img { + width: 25px; + height: 25px; + border: 1px solid #ccc; } -#calcms_playlist .title{ - padding:0; - margin:0; - text-align:left; - line-height:120%; +#calcms_playlist .title { + padding: 0; + margin: 0; + text-align: left; + line-height: 120%; } -#calcms_playlist a:hover{ - text-decoration:none; +#calcms_playlist a:hover { + text-decoration: none; } -#calcms_playlist .event{ +#calcms_playlist .event { transition: all .1s ease-in-out; } @@ -155,551 +152,554 @@ a{ background: #e6e6e6; } - /* calcms list */ - -#calcms_list{ - hyphens:auto; +#calcms_list { + hyphens: auto; } -#content div a img{ - margin:6px; +#content div a img { + margin: 6px; } -#content li{ - margin-left:1.7rem; +#content li { + margin-left: 1.7rem; } -#calcms_list .event{ - display:flex; +#calcms_list .event { + display: flex; flex-direction: row; - width:100%; + width: 100%; justify-content: space-between; - border-bottom:1px solid rgba(100,100,100,0.24); + border-bottom: 1px solid rgba(100, 100, 100, 0.24); hyphens: none; - cursor:pointer; - overflow:hidden; - text-overflow: ellipsis; + cursor: pointer; + overflow: hidden; + text-overflow: ellipsis; transition: all .1s ease-in-out; } -#calcms_list .event:hover{ - background:rgba(200, 200, 200, 0.2); +#calcms_list .event:hover { + background: rgba(200, 200, 200, 0.2); } -#calcms_list .date{ - font-weight:bold; +#calcms_list .date { + font-weight: bold; } -#calcms_list .time{ - width:10%; - min-width:5rem; - padding:1rem; - padding-right:0; - text-align:center; - font-size:1.1rem; +#calcms_list .time { + width: 10%; + min-width: 5rem; + padding: 1rem; + padding-right: 0; + text-align: center; + font-size: 1.1rem; } -#calcms_list .summary{ - width:70%; - padding:1rem; - padding-right:0; +#calcms_list .summary { + width: 70%; + padding: 1rem; + padding-right: 0; hyphens: auto; } -#calcms_list .title{ - font-weight:bold; +#calcms_list .title { + font-weight: bold; hyphens: auto; } -#calcms_list .title a{ - font-weight:bold; +#calcms_list .title a { + font-weight: bold; } -#calcms_list .location{ - width:20%; - padding:1rem; - font-weight:100; - text-align:center; +#calcms_list .location { + width: 20%; + padding: 1rem; + font-weight: 100; + text-align: center; } @media all and (max-width: 959px) { - #calcms_list .summary{ - width:90%; + #calcms_list .summary { + width: 90%; } #calcms_list .location { - width:0; - display:none; + width: 0; + display: none; } } @media all and (max-width: 800px) { - #calcms_list .excerpt{ - width:0; - display:none; + #calcms_list .excerpt { + width: 0; + display: none; } #calcms_list .location { - width:0; - display:none; + width: 0; + display: none; } } -#calcms_list .event.running:hover{ - opacity:0.9; +#calcms_list .event.running:hover { + opacity: 0.9; } -#calcms_list .event.running, +#calcms_list .event.running, #calcms_list .event.running .excerpt, #calcms_list .event.running .location, -#calcms_list .event.running a{ - color:#fff; - background:#007acc; +#calcms_list .event.running a { + color: #fff; + background: #007acc; } -#calcms_list .comments.submitted{ - font-weight:bold; +#calcms_list .comments.submitted { + font-weight: bold; } -#calcms_list .submitted{ +#calcms_list h2 { + clear: none !important; } -#calcms_list h2{ - clear:none !important; +#calcms_list .content img { + border: 0; } -#calcms_list .content img{ - border:0; +#calcms_list .content figure { + float: right; + margin-left: 1em; + margin-bottom: 20px; } -#calcms_list .content figure{ - float:right; - margin-left: 1em; - margin-bottom:20px; +#calcms_list .content figcaption { + font-size: 12px; + margin-left: 1em; + max-width: 12em; } -#calcms_list .content figcaption{ - font-size:12px; - margin-left: 1em; - max-width:12em; -} - -#calcms_list hr{ - margin:1em 0; +#calcms_list hr { + margin: 1em 0; background: #ccc; } -#calcms_list tbody{ - border:0; +#calcms_list tbody { + border: 0; } -#icon_bar{ - text-align:right; - padding:1 em; +#icon_bar { + text-align: right; + padding: 1 em; } #icon_bar a { - padding:1em; - float:left; + padding: 1em; + float: left; } /* slider */ -#coming_shows{ - white-space:nowrap; - height:120px; +#coming_shows { + white-space: nowrap; + height: 120px; } -#calcms_list #playlist_container{ - overflow:hidden; - height:120px; - padding:10px; +#calcms_list #playlist_container { + overflow: hidden; + height: 120px; + padding: 10px; } -#calcms_list #playlist_container .event{ - padding:0; - margin:0; - overflow:hidden; +#calcms_list #playlist_container .event { + padding: 0; + margin: 0; + overflow: hidden; } -#calcms_list #playlist_container a{ - padding:0; - margin:0; - overflow:hidden; - width:100px; - height:100px; - box-sizing:border-box; +#calcms_list #playlist_container a { + padding: 0; + margin: 0; + overflow: hidden; + width: 100px; + height: 100px; + box-sizing: border-box; } -#playlist_container .event div.bottom{ - max-height:70px; - font-size:12px; - padding:6px; - white-space:wrap; - text-overflow: ellipsis; +#playlist_container .event div.bottom { + max-height: 70px; + font-size: 12px; + padding: 6px; + white-space: wrap; + text-overflow: ellipsis; } #coming_shows .eventContainer { - display:inline-block; - vertical-align:top; - text-align:center; - cursor:pointer; - width:100px; - height:100px; -} -#coming_shows .eventContainer:hover { - background:#eeeeee; -} -#coming_shows a:hover { - text-decoration:none; + display: inline-block; + vertical-align: top; + text-align: center; + cursor: pointer; + width: 100px; + height: 100px; } -#coming_shows div.event{ - position:relative; - width:100px; - height:100px; +#coming_shows .eventContainer:hover { + background: #eeeeee; +} + +#coming_shows a:hover { + text-decoration: none; +} + +#coming_shows div.event { + position: relative; + width: 100px; + height: 100px; background-repeat: no-repeat; background-position: center center; - background-size: cover; + background-size: cover; } -#coming_shows div.event .top, -#coming_shows div.event .bottom{ - position:absolute; - background:#222; - color:#fff; - opacity:0.8; - width:100%; + +#coming_shows div.event .top, +#coming_shows div.event .bottom { + position: absolute; + background: #222; + color: #fff; + opacity: 0.8; + width: 100%; } + #coming_shows div.event .top:hover, -#coming_shows div.event .bottom:hover{ - opacity:1; +#coming_shows div.event .bottom:hover + { + opacity: 1; } -#coming_shows div.event .top{ - top:0; +#coming_shows div.event .top { + top: 0; } -#coming_shows div.event .bottom{ - bottom:0; +#coming_shows div.event .bottom { + bottom: 0; } -#coming_shows div.event{ +#coming_shows div.event { transition: all .2s ease-in-out; } -#coming_shows div.event:hover{ +#coming_shows div.event:hover { transform: scale(1.05); } - /* calcms comments */ -#calcms_comments{ - clear:both; +#calcms_comments { + clear: both; } - -#calcms_comments .author{ - color:#666; - font-weight:bold; - float:left; +#calcms_comments .author { + color: #666; + font-weight: bold; + float: left; } -#calcms_comments .date{ - color:#888; - font-weight:normal; - margin:0; - padding:0; +#calcms_comments .date { + color: #888; + font-weight: normal; + margin: 0; + padding: 0; } -#calcms_comments .content{ - font-weight:normal; +#calcms_comments .content { + font-weight: normal; } -#calcms_comments .comment{ +#calcms_comments .comment { + } -#calcms_comments .level0{ - margin-left:00px; -} -#calcms_comments .level1{ - margin-left:20px; -} -#calcms_comments .level2{ - margin-left:40px; -} -#calcms_comments .level3{ - margin-left:60px; -} -#calcms_comments .level4{ - margin-left:80px; -} -#calcms_comments .level5{ - margin-left:100px; -} -#calcms_comments .level6{ - margin-left:120px; -} -#calcms_comments .level7{ - margin-left:140px; -} -#calcms_comments .level8{ - margin-left:160px; -} -#calcms_comments .level9{ - margin-left:180px; -} -#calcms_comments .level10{ - margin-left:200px; +#calcms_comments .level0 { + margin-left: 00px; } -#calcms_add_comment{ - visibility:hidden; - display:none; +#calcms_comments .level1 { + margin-left: 20px; +} + +#calcms_comments .level2 { + margin-left: 40px; +} + +#calcms_comments .level3 { + margin-left: 60px; +} + +#calcms_comments .level4 { + margin-left: 80px; +} + +#calcms_comments .level5 { + margin-left: 100px; +} + +#calcms_comments .level6 { + margin-left: 120px; +} + +#calcms_comments .level7 { + margin-left: 140px; +} + +#calcms_comments .level8 { + margin-left: 160px; +} + +#calcms_comments .level9 { + margin-left: 180px; +} + +#calcms_comments .level10 { + margin-left: 200px; +} + +#calcms_add_comment { + visibility: hidden; + display: none; } /* calcms add comment */ #calcms_comments input, -#calcms_comments textarea{ +#calcms_comments textarea { appearance: none; -moz-appearance: none; -webkit-appearance: none; - box-sizing:border-box; - width:80%; - padding:6px; - margin:6px; - margin-left:0; - border-radius:3px; - border:1px solid #ccc; - box-shadow: 2px 2px 2px rgba(0,0,0,0.1); + box-sizing: border-box; + width: 80%; + padding: 6px; + margin: 6px; + margin-left: 0; + border-radius: 3px; + border: 1px solid #ccc; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1); } -#calcms_comments input{ - max-width:40rem; - height:32px; +#calcms_comments input { + max-width: 40rem; + height: 32px; } -#calcms_comments input[type=submit]{ - max-width:10rem; - background:#ddd; +#calcms_comments input[type=submit] { + max-width: 10rem; + background: #ddd; } -#calcms_comments input[type="submit"]:hover{ - cursor:pointer; - background:#eee; - border:1px solid #aaa; +#calcms_comments input[type="submit"]:hover { + cursor: pointer; + background: #eee; + border: 1px solid #aaa; } -#calcms_comments textarea{ - height:10em; - width:40em; +#calcms_comments textarea { + height: 10em; + width: 40em; } /* calcms comment list */ -#calcms_newest_comments .author{ - font-weight:bold; +#calcms_newest_comments .author { + font-weight: bold; } -#calcms_newest_comments div{ - padding-left:1em; - padding-bottom:1em; +#calcms_newest_comments div { + padding-left: 1em; + padding-bottom: 1em; } -#calcms_newest_comments a:hover{ - text-decoration:none; +#calcms_newest_comments a:hover { + text-decoration: none; } -#calcms_newest_comments span.content{ - text-overflow: ellipsis; +#calcms_newest_comments span.content { + text-overflow: ellipsis; } -#calcms_newest_comments .comments{ +#calcms_newest_comments .comments { transition: all .1s ease-in-out; } -#calcms_newest_comments .comments:hover{ +#calcms_newest_comments .comments:hover { background: #e6e6e6; } /* end of calcms comments*/ /* calcms_search */ -#calcms_search{ - margin:0; - padding:0; - z-index:3; - text-align:left; - clear:both; - text-align:center; +#calcms_search { + margin: 0; + padding: 0; + z-index: 3; + text-align: left; + clear: both; + text-align: center; } #calcms_search input, -#calcms_search select{ +#calcms_search select { appearance: none; -moz-appearance: none; -webkit-appearance: none; - box-sizing:border-box; - width:80%; - padding:6px; - margin:6px; - margin-left:0; - border-radius:3px; - border:1px solid #ccc; - box-shadow: 2px 2px 2px rgba(0,0,0,0.1); - height:32px; + box-sizing: border-box; + width: 80%; + padding: 6px; + margin: 6px; + margin-left: 0; + border-radius: 3px; + border: 1px solid #ccc; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1); + height: 32px; } -#calcms_search select{ +#calcms_search select { background: white; background-image: url("/agenda/image/select.png"); background-position: right center; background-repeat: no-repeat; } -#calcms_search input[type="checkbox"]{ +#calcms_search input[type="checkbox"] { background: none; - width:1em; - height:1em; - border:1px solid #ccc; - display:inline-block; - box-shadow:0 1px 1px 0 rgba(0, 0, 0, 0.1) inset; + width: 1em; + height: 1em; + border: 1px solid #ccc; + display: inline-block; + box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1) inset; content: " "; - margin-right:1em; + margin-right: 1em; } -#calcms_search input[type="button"]{ +#calcms_search input[type="button"] { background: none; - width:50%; + width: 50%; } -#calcms_search input[type="button"]:hover{ - cursor:pointer; - background:#eee; - border:1px solid #aaa; +#calcms_search input[type="button"]:hover { + cursor: pointer; + background: #eee; + border: 1px solid #aaa; } - -#calcms_search input{} -#calcms_search input#calcms_search_field{} -#calcms_search a#calcms_search_show_details{ - padding-left:1em; - display:block; +#calcms_search a#calcms_search_show_details { + padding-left: 1em; + display: block; } -a#calcms_search_show_details #plus{ - font-size:16px; +a#calcms_search_show_details #plus { + font-size: 16px; } /* end of calcms_search */ - /* calcms_calendar */ -#calcms_calendar{ - overflow:hidden; - text-align:center; - padding:0; - margin:0; - vertical-align:top; - clear:both; +#calcms_calendar { + overflow: hidden; + text-align: center; + padding: 0; + margin: 0; + vertical-align: top; + clear: both; } -#calcms_calendar table{ - padding:0; - margin:0; - background:#fff; - border:0px solid #ddd; - border-collapse:collapse; - text-align:center; +#calcms_calendar table { + padding: 0; + margin: 0; + background: #fff; + border: 0px solid #ddd; + border-collapse: collapse; + text-align: center; } #calcms_calendar table thead a:hover, #calcms_calendar table thead a:link, -#calcms_calendar table thead a:visited{ - color:#333; - padding:0; - text-decoration:none; - font-weight:normal; +#calcms_calendar table thead a:visited { + color: #333; + padding: 0; + text-decoration: none; + font-weight: normal; } #calcms_calendar table tbody a:hover, #calcms_calendar table tbody a:link, -#calcms_calendar table tbody a:visited{ - color:#333; - padding:5px; - padding-top:2px; - padding-bottom:3px; - text-decoration:none; - font-weight:normal; +#calcms_calendar table tbody a:visited { + color: #333; + padding: 5px; + padding-top: 2px; + padding-bottom: 3px; + text-decoration: none; + font-weight: normal; } #calcms_calendar table td, -#calcms_calendar table th{ - padding:0; - margin:0; - border:0; - text-align:center; - font-weight:normal; - border-bottom:1px solid #ddd; +#calcms_calendar table th { + padding: 0; + margin: 0; + border: 0; + text-align: center; + font-weight: normal; + border-bottom: 1px solid #ddd; transition: all .1s ease-in-out; - padding-top:2%; - padding-bottom:2%; + padding-top: 2%; + padding-bottom: 2%; } #calcms_calendar table thead td:hover, #calcms_calendar table thead th:hover{ - background-color:#1987d1; + background-color: #1987d1; } /* header */ #calcms_calendar table th.first, -#calcms_calendar table th.last{ - font-size:large; +#calcms_calendar table th.last { + font-size: large; } /* month selector */ -#calcms_calendar table thead tr:first-child a{ - padding:6px; - color:white; +#calcms_calendar table thead tr:first-child a { + padding: 6px; + color: white; } -#calcms_calendar table thead tr:first-child{ - background:#007acc; +#calcms_calendar table thead tr:first-child { + background: #007acc; } /* weekdays */ #calcms_calendar table thead tr:nth-child(2) { - background:#eee; + background: #eee; } /* week numbers */ #calcms_calendar table tbody tr:first-child th:first-child, -#calcms_calendar table tbody tr th:first-child a{ - color:#aaa; +#calcms_calendar table tbody tr th:first-child a { + color: #aaa; } #calcms_calendar table tbody td:hover, -#calcms_calendar table tbody th:hover{ - background-color:#4f7acc; +#calcms_calendar table tbody th:hover { + background-color: #4f7acc; } -#calcms_calendar table tbody td.calcms_today, -#calcms_calendar table tbody td.calcms_today a{ - background:#007acc; - color:white; +#calcms_calendar table tbody td.calcms_today, +#calcms_calendar table tbody td.calcms_today a { + background: #007acc; + color: white; } -#calcms_calendar table td.selected{ - background:#eee; - font-weight:bold; +#calcms_calendar table td.selected { + background: #eee; + font-weight: bold; } -#calcms_calendar table td.selected:hover{ - background-color:#ddd; +#calcms_calendar table td.selected:hover { + background-color: #ddd; } -#calcms_calendar table td.other_month a{ - opacity:0.3; +#calcms_calendar table td.other_month a { + opacity: 0.3; } - - /* player #player{ border:0; @@ -709,126 +709,109 @@ a#calcms_search_show_details #plus{ overflow:hidden; } */ - -#player{ - border:0; - padding:0; - height:5rem; +#player { + border: 0; + padding: 0; + height: 5rem; } -#player:hover{ - opacity:0.9; + +#player:hover { + opacity: 0.9; } /* mobile menu */ -#mobileMenuButton{ - display:block; - position:fixed; - z-index:99; - right:6px; - top:3px; - font-size:1.5em; - padding:1em; - line-height:1em; - background:#ddd; - color:#000; - font-weight:bold; +#mobileMenuButton { + display: block; + position: fixed; + z-index: 99; + right: 6px; + top: 3px; + font-size: 1.5em; + padding: 1em; + line-height: 1em; + background: #ddd; + color: #000; + font-weight: bold; cursor: pointer; - background:#ccc; - background:linear-gradient(to bottom, #333 0%, #333 20%, #bbb 20%, #bbb 40%, #333 40%, #333 60%, #bbb 60%, #bbb 80%, #333 80%, #333 100%); - border:0.4em solid #bbb; - border-radius:6px; - transition:all 0.2s ease-in-out 0s; + background: #ccc; + background: linear-gradient(to bottom, #333 0%, #333 20%, #bbb 20%, #bbb 40%, #333 + 40%, #333 60%, #bbb 60%, #bbb 80%, #333 80%, #333 100%); + border: 0.4em solid #bbb; + border-radius: 6px; + transition: all 0.2s ease-in-out 0s; } -#mobileMenuButton:hover{ + +#mobileMenuButton:hover { transform: scale(1.05); } -ul.mobileMenu{ - position:fixed; - top:0px; - background:#333!important; - width:100%; +ul.mobileMenu { + position: fixed; + top: 0px; + background: #333 !important; + width: 100%; } -ul.mobileMenu li, -ul.mobileMenu li a{ - float:none!important; - background:#444!important; - display:block; - text-align:center; - font-size:1.3em; - padding:0.5em!important; - line-height:1em; - z-index:99; - margin-bottom:1px; - width:80%; +ul.mobileMenu li, +ul.mobileMenu li a { + float: none !important; + background: #444 !important; + display: block; + text-align: center; + font-size: 1.3em; + padding: 0.5em !important; + line-height: 1em; + z-index: 99; + margin-bottom: 1px; + width: 80%; } -ul.mobileMenu a, -ul.mobileMenu a:link, -ul.mobileMenu a:hover, -ul.mobileMenu a:visited{ - background-image:url()!important; - background:#444!important; - width:80%; +ul.mobileMenu a, +ul.mobileMenu a:link, +ul.mobileMenu a:hover, +ul.mobileMenu a:visited { + background-image: url() !important; + background: #444 !important; + width: 80%; } -ul.mobileMenu li:hover, -ul.mobileMenu li:hover a{ - background:#999!important; - transition:all 0.2s ease; - +ul.mobileMenu li:hover, +ul.mobileMenu li:hover a { + background: #999 !important; + transition: all 0.2s ease; } -ul.mobileMenu li a:hover{ - text-decoration:none!important; +ul.mobileMenu li a:hover { + text-decoration: none !important; } -#footer .content a{ - padding:0.5em; - line-height:2em; +#footer .content a { + padding: 0.5em; + line-height: 2em; } -/* -pre{ - text-align:left; - font-family:Courier; - padding:1em; - margin:1em; - border:1px solid black; +#listen_radio { + width: 100%; + text-align: left; } -div.update{ - position:absolute; - bottom:0px; +#listen_radio iframe { + margin-top: 1em; + max-width: none; } -div.update, div.update a{ - text-align:left; - font-size:6px; - color:#bbb; -} -*/ -#listen_radio{ - width:100%; - text-align:left; -} -#listen_radio iframe{ - margin-top:1em; - max-width:none; -} -#listen_radio td{ - border:0; +#listen_radio td { + border: 0; } -div#content header h1.entry-title{ - margin-bottom:0; +div#content header h1.entry-title { + margin-bottom: 0; } @media screen and (min-width: 61.5625em) { - .site-header { - padding: 3rem; + .site-header { + padding: 3rem; padding-top: 1rem; padding-bottom: 0rem; - } -} + } +} diff --git a/website/agenda/planung/css/audio_recordings.css b/website/agenda/planung/css/audio_recordings.css index 9073b1c..b7dca82 100644 --- a/website/agenda/planung/css/audio_recordings.css +++ b/website/agenda/planung/css/audio_recordings.css @@ -1,39 +1,38 @@ -img{ - margin-right :1em; - margin-bottom :1em; - vertical-align:middle +img { + margin-right: 1em; + margin-bottom: 1em; + vertical-align: middle } -#content div.panel{ - padding:1em; +#content div.panel { + padding: 1em; } h2 { - line-height:1.5em; + line-height: 1.5em; } -.thin{ - font-weight:100; +.thin { + font-weight: 100; } -th{ - text-align:center; +th { + text-align: center; } -#progressBar{ - width:100%; - height:1rem; - border:0; - box-shadow:#888 2px 2px 1px 1px; +#progressBar { + width: 100%; + height: 1rem; + border: 0; + box-shadow: #888 2px 2px 1px 1px; } - -#content div.ok, -#content div.warn, -#content div.error{ - padding-top:3px; - padding-bottom:3px; - margin:1px; - border-radius:4px; - text-align:center; -} +#content div.ok, +#content div.warn, +#content div.error { + padding-top: 3px; + padding-bottom: 3px; + margin: 1px; + border-radius: 4px; + text-align: center; +} \ No newline at end of file diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index fcb6892..e854f80 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -1,513 +1,531 @@ -body #content{ - padding:0; +body #content { + padding: 0; } -button:hover{ - cursor:pointer; +button:hover { + cursor: pointer; } -@media print{ - #calcms_nav{ - display:none; - } - #toolbar{ - display:none; - } - tr,td,div.event,div.schedule,div.work,div.play{ - border:1pt solid black; - } - #content{ - top:0; - } -} - -#content #calendar_weekdays, -#content #calendar_weekdays table, -#content #calendar{ - position:absolute; - padding:0; - left:0; -} - -#content #calendar_weekdays{ - font-size:12px; -} - -@media screen{ - #content #calendar{ - overflow-x:hidden; - overflow-y:scroll; - } -} - -#calendar_weekdays table, -#calendar table{ - table-layout:fixed; -} - -#calendar_weekdays table td, -#calendar table td{ - vertical-align:top; - padding:0; - min-width:100px; -} - -#calendar_weekdays table td{ - white-space:normal; -} - -#calendar_weekdays table td:nth-child(1), -#calendar table td:nth-child(1){ - min-width:80px !important; -} - -#calendar table td{ - word-wrap:break-word; - hyphens:auto; -} - -#calendar div.text{ - padding-right:0; -} -@media (min-width: 720em) { - #calendar div.text{ - padding-right:16px; +@media print { + #calcms_nav { + display: none; + } + #toolbar { + display: none; + } + tr, + td, + div.event, + div.schedule, + div.work, + div.play { + border: 1pt solid black; + } + #content { + top: 0; } } -#event_list tr{ - border-bottom:1px solid #999; +#content #calendar_weekdays, +#content #calendar_weekdays table, +#content #calendar + { + position: absolute; + padding: 0; + left: 0; } -#calendar div.schedule div.text, -#calendar div.event div.text{ - positions:absolute; - top:0; - left:0; - padding-left:0; - padding-top:0; - padding-bottom:0; +#content #calendar_weekdays { + font-size: 12px; } -#calendar div.event div.icons{ - position:absolute; - top:0px; - right:0px; - margin:0; - width:16px; - font-size:16px; - opacity:0.8; - line-height:1.5; +@media screen { + #content #calendar { + overflow-x: hidden; + overflow-y: scroll; + } +} + +#calendar_weekdays table, +#calendar table { + table-layout: fixed; +} + +#calendar_weekdays table td, +#calendar table td { + vertical-align: top; + padding: 0; + min-width: 100px; +} + +#calendar_weekdays table td { + white-space: normal; +} + +#calendar_weekdays table td:nth-child(1), +#calendar table td:nth-child(1) + { + min-width: 80px !important; +} + +#calendar table td { + word-wrap: break-word; + hyphens: auto; +} + +#calendar div.text { + padding-right: 0; +} + +@media ( min-width : 720em) { + #calendar div.text { + padding-right: 16px; + } +} + +#event_list tr { + border-bottom: 1px solid #999; +} + +#calendar div.schedule div.text, +#calendar div.event div.text { + positions: absolute; + top: 0; + left: 0; + padding-left: 0; + padding-top: 0; + padding-bottom: 0; +} + +#calendar div.event div.icons { + position: absolute; + top: 0px; + right: 0px; + margin: 0; + width: 16px; + font-size: 16px; + opacity: 0.8; + line-height: 1.5; } #calendar div.time.now { - padding:0; - margin:0; - border:2px dashed #99f; - width:100%; - height:0px; - z-index:0; + padding: 0; + margin: 0; + border: 2px dashed #99f; + width: 100%; + height: 0px; + z-index: 0; } -#calendar_weekdays div.date, +#calendar_weekdays div.date, #calendar div.time { - text-align:center; - vertical-align:middle; - z-index:5; + text-align: center; + vertical-align: middle; + z-index: 5; } #calendar_weekdays div.date.today { - background:#ccf; + background: #ccf; } - -#calendar_weekdays td.week, -#calendar td.week{ - padding:0; - width:0px; - min-width:0px; - max-width:0px; +#calendar_weekdays td.week, +#calendar td.week { + padding: 0; + width: 0px; + min-width: 0px; + max-width: 0px; } -#calendar_weekdays td.week div, -#calendar td.week div{ - padding:0; - min-width:1px; - height:100%; - background:repeating-linear-gradient(to right, #fff, #fff 1px, #999 1px, #999 2px); +#calendar_weekdays td.week div, +#calendar td.week div { + padding: 0; + min-width: 1px; + height: 100%; + background: repeating-linear-gradient(to right, #fff, #fff 1px, #999 1px, #999 2px); } -#calendar td.week div{ - height:180em; +#calendar td.week div { + height: 180em; } - -#calendar div.time, -#calendar_weekdays div.date, +#calendar div.time, +#calendar_weekdays div.date, #calendar div.event, -#calendar div.schedule, -#calendar div.work, -#calendar div.play{ - position:absolute; - overflow:hidden; - margin-left:0; - border:0; - border-bottom:1px solid #fff; - border-top:1px solid #fff; +#calendar div.schedule, +#calendar div.work, +#calendar div.play { + position: absolute; + overflow: hidden; + margin-left: 0; + border: 0; + border-bottom: 1px solid #fff; + border-top: 1px solid #fff; } -#calendar div.time, -#calendar_weekdays div.date{ - border:0; +#calendar div.time, +#calendar_weekdays div.date { + border: 0; } -#calendar div.time, -#calendar_weekdays div.time{ - border-top:1px solid #fff; +#calendar div.time, +#calendar_weekdays div.time { + border-top: 1px solid #fff; } /* calendar list*/ - - -#content div.event{ - z-index:5; +#content div.event { + z-index: 5; } -#content div.schedule{ - font-weight:normal; - z-index:4; +#content div.schedule { + font-weight: normal; + z-index: 4; } -#content .scheduled{ - color:#000; - font-weight:normal; - z-index:4; +#content .scheduled { + color: #000; + font-weight: normal; + z-index: 4; } -#content div.work{ - font-weight:normal; - z-index:3; +#content div.work { + font-weight: normal; + z-index: 3; } -#content div.play{ - font-weight:normal; - z-index:1; +#content div.play { + font-weight: normal; + z-index: 1; } -#content div.grid{ - z-index:1; - background:white; - overflow:hidden; - position:absolute; - background: repeating-linear-gradient( 45deg, #fff, #fff 1rem ,#eee 1rem, #eee 2rem); - cursor:pointer; +#content div.grid { + z-index: 1; + background: white; + overflow: hidden; + position: absolute; + background: repeating-linear-gradient(45deg, #fff, #fff 1rem, #eee 1rem, #eee 2rem); + cursor: pointer; } -#event_list tr th:hover{ - cursor:pointer; +#event_list tr th:hover { + cursor: pointer; } -#event_list tr th, -#event_list tr td, +#event_list tr th, +#event_list tr td, #event_list .tablesorter-header-inner{ - padding:6px; - padding-left:6px; - padding-right:0px; -} -input.tablesorter-filter{ - width:4em; + padding: 6px; + padding-left: 6px; + padding-right: 0px; } -#event_list tr td.day_of_year{ +input.tablesorter-filter { + width: 4em; +} + +#event_list tr td.day_of_year { white-space: nowrap; } -#event_list td:nth-child(1), -#event_list th:nth-child(1), -#event_list td:nth-child(1) .tablesorter-filter{ + +#event_list td:nth-child(1), +#event_list th:nth-child(1), +#event_list td:nth-child(1) .tablesorter-filter +{ white-space: nowrap; - padding:0; - width:3em; - text-align:center; + padding: 0; + width: 3em; + text-align: center; } -#event_list tr td.weekday{ +#event_list tr td.weekday { white-space: nowrap; } -#event_list td:nth-child(2), -#event_list th:nth-child(2), -#event_list td:nth-child(2) .tablesorter-filter{ + +#event_list td:nth-child(2), +#event_list th:nth-child(2), +#event_list td:nth-child(2) .tablesorter-filter +{ white-space: nowrap; - padding:0; - width:2em; - text-align:right; + padding: 0; + width: 2em; + text-align: right; } - -#event_list tr td.start_date{ +#event_list tr td.start_date { white-space: nowrap; - font-family:monospace; -} -#event_list tr .start_date{ - text-align:left; + font-family: monospace; } -#event_list tr td.start_time{ +#event_list tr .start_date { + text-align: left; +} + +#event_list tr td.start_time { white-space: nowrap; } -#event_list tr td.series_name{ -} -#event_list tr td.title{ - max-width:20em; -} -#event_list tr td.user_title{ + +#event_list tr td.series_name { + } -#event_list tr td.episode{ +#event_list tr td.title { + max-width: 20em; +} + +#event_list tr td.user_title { + +} + +#event_list tr td.episode { white-space: nowrap; } -#event_list td:nth-child(7), -#event_list th:nth-child(7), -#event_list td:nth-child(7) .tablesorter-filter{ + +#event_list td:nth-child(7), +#event_list th:nth-child(7), +#event_list td:nth-child(7) .tablesorter-filter +{ white-space: nowrap; - padding:0; - width:2em; - text-align:right; + padding: 0; + width: 2em; + text-align: right; } -#event_list tr td.rerun{ +#event_list tr td.rerun { white-space: nowrap; } -#event_list tr .rerun{ - width:1em; - text-align:center; + +#event_list tr .rerun { + width: 1em; + text-align: center; } -#event_list tr th.draft, -#event_list tr td.draft{ - background:none; +#event_list tr th.draft, +#event_list tr td.draft { + background: none; } -#event_list tr th{ - border-right:1px solid #ccc; +#event_list tr th { + border-right: 1px solid #ccc; } -#event_list td:nth-child(9), -#event_list th:nth-child(9), -#event_list td:nth-child(9) .tablesorter-filter{ +#event_list td:nth-child(9), +#event_list th:nth-child(9), +#event_list td:nth-child(9) .tablesorter-filter + { white-space: nowrap; - padding:0; - width:1em; - text-align:center; + padding: 0; + width: 1em; + text-align: center; } -#event_list td:nth-child(10), -#event_list th:nth-child(10), -#event_list td:nth-child(10) .tablesorter-filter{ - padding:0; - width:1em; - text-align:center; +#event_list td:nth-child(10), +#event_list th:nth-child(10), +#event_list td:nth-child(10) .tablesorter-filter + { + padding: 0; + width: 1em; + text-align: center; } -#event_list tr:hover{ - border-left:1px solid #333; - border-right:1px solid #333; - cursor:pointer; +#event_list tr:hover { + border-left: 1px solid #333; + border-right: 1px solid #333; + cursor: pointer; } /* calendar colors */ - -#content div.event.no_series{ - color:#000; +#content div.event.no_series { + color: #000; } -#content.conflicts .schedule.error{ - color:#000; +#content.conflicts .schedule.error { + color: #000; } -#content.conflicts .error{ - color:#000; +#content.conflicts .error { + color: #000; } /* color end*/ - -#content .weak{ - font-weight:300; +#content .weak { + font-weight: 300; } -#content .weak span{ - border-radius:4px; +#content .weak span { + border-radius: 4px; } -#content .schedule, -#content .event{ - cursor:pointer; +#content .schedule, +#content .event { + cursor: pointer; } -#content #calendar_weekdays td:nth-child(1) div.date a{ - font-size:1.7em; +#content #calendar_weekdays td:nth-child(1) div.date a { + font-size: 1.7em; } -#content #position{ - word-wrap:break-word; - word-break:normal; - text-align:center; +#content #position { + word-wrap: break-word; + word-break: normal; + text-align: center; } -div#toolbar{ - z-index:9; - padding:0; - width:100%; - background:#ddd; +div#toolbar { + z-index: 9; + padding: 0; + width: 100%; + background: #ddd; display: flex; flex-wrap: wrap; align-items: center; - vertical-align:middle; - left:0; + vertical-align: middle; + left: 0; } -div#toolbar div{ - display:table-cell; - vertical-align:middle; +div#toolbar div { + display: table-cell; + vertical-align: middle; } -div#toolbar select{ - padding:8px; - margin-left:6px; +div#toolbar select { + padding: 8px; + margin-left: 6px; } -div#toolbar input.search{ - padding:9px; +div#toolbar input.search { + padding: 9px; } -#content #toolbar div{ - padding:0; - padding-left:6px; +#content #toolbar div { + padding: 0; + padding-left: 6px; } -#content #toolbar div:hover, -#content #toolbar select:hover, -#content #toolbar input:hover{ - background:#ccc; - padding-top:6px; - padding-bottom:6px; +#content #toolbar div:hover, +#content #toolbar select:hover, +#content #toolbar input:hover + { + background: #ccc; + padding-top: 6px; + padding-bottom: 6px; } -#content #toolbar div#selectDate:hover{ - padding-top:0; - padding-bottom:0; +#content #toolbar div#selectDate:hover { + padding-top: 0; + padding-bottom: 0; } -#content #toolbar div#current_date{ - cursor:pointer; - font-size:1.5em; - width:5em; - text-align:center; - padding:5px; +#content #toolbar div#current_date { + cursor: pointer; + font-size: 1.5em; + width: 5em; + text-align: center; + padding: 5px; } -#content #toolbar div#previous_month, -#content #toolbar div#next_month{ - cursor:pointer; - font-size:1.7em; - padding:6px; +#content #toolbar div#previous_month, +#content #toolbar div#next_month { + cursor: pointer; + font-size: 1.7em; + padding: 6px; } -#content #toolbar input#start_date{ - display:none; +#content #toolbar input#start_date { + display: none; } -#series td{ - padding:6px; +#series td { + padding: 6px; } #calendar td div.play:hover { - min-height: 250px!important; - min-width: 420px!important; - z-index:99; - box-shadow:0 2px 5px 0 rgba(0,0,0,.12),0 2px 10px 0 rgba(0,0,0,.09); - border-radius:3px; - cursor:pointer; + min-height: 250px !important; + min-width: 420px !important; + z-index: 99; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .12), 0 2px 10px 0 + rgba(0, 0, 0, .09); + border-radius: 3px; + cursor: pointer; } -#calendar td div.play:hover img{ - display:show; +#calendar td div.play:hover img { + display: show; } -#calendar td div.play img{ - position:absolute; - top:1em; - right:1em; - width:40%; - height:40%; - display:none; +#calendar td div.play img { + position: absolute; + top: 1em; + right: 1em; + width: 40%; + height: 40%; + display: none; } #calendar div.event:hover { - min-height: 4rem!important; - z-index:99; + min-height: 4rem !important; + z-index: 99; } -#calendar div.ui-draggable-dragging{ - z-index:99; - cursor:move; +#calendar div.ui-draggable-dragging { + z-index: 99; + cursor: move; } -#calendar div.intersect{ - background:#fcc; +#calendar div.intersect { + background: #fcc; } -div.rms_detail{ - width:100% +div.rms_detail { + width: 100% } -div.rms_detail div.image{ - width:100%; - float:right; +div.rms_detail div.image { + width: 100%; + float: right; } -div.rms_detail div.text{ - width:100%; - text-align:left; - float:left; - font-size:0.8rem; +div.rms_detail div.text { + width: 100%; + text-align: left; + float: left; + font-size: 0.8rem; } -div.event .ok, -div.play .ok{ - display:inline; - background:#4caf50; +div.event .ok, +div.play .ok { + display: inline; + background: #4caf50; } -div.event .warn, -div.play .warn{ - display:inline; - background:#ffeb3b; +div.event .warn, +div.play .warn { + display: inline; + background: #ffeb3b; } -div.event .error, -div.play .error{ - display:inline; - background:#f44336; +div.event .error, +div.play .error { + display: inline; + background: #f44336; } -#content div.event, -#content div.schedule, -#content div.grid, +#content div.event, +#content div.schedule, +#content div.grid, #content div.play, -#content div.error{ - padding-left:0px; - padding-top:0px; - padding-bottom:12px; - padding-right:32px; +#content div.error { + padding-left: 0px; + padding-top: 0px; + padding-bottom: 12px; + padding-right: 32px; } - -#content div.ok, -#content div.warn, -#content div.error{ - padding-top:3px; - padding-bottom:3px; - margin:1px; - border-radius:4px; - text-align:center; -} +#content div.ok, +#content div.warn, +#content div.error { + padding-top: 3px; + padding-bottom: 3px; + margin: 1px; + border-radius: 4px; + text-align: center; +} \ No newline at end of file diff --git a/website/agenda/planung/css/comment.css b/website/agenda/planung/css/comment.css index 5323f4f..70be210 100644 --- a/website/agenda/planung/css/comment.css +++ b/website/agenda/planung/css/comment.css @@ -1,124 +1,131 @@ -#comments table{ - border-collapse: collapse; +#comments table { + border-collapse: collapse; } -#comments td,th,input { - line-height:100%; - ffont-size:10px; -} -#comments td,th{ - display:table-cell; - font-weight:normal; - padding:1rem; +#comments td, th, input { + line-height: 100%; + ffont-size: 10px; } -#comments td.level0, td.level1, td.level2, td.level3, td.level4, td.level5{ - border:0; +#comments td, th { + display: table-cell; + font-weight: normal; + padding: 1rem; } -#comments td.host{ - color:gray; +#comments td.level0, td.level1, td.level2, td.level3, td.level4, td.level5 { + border: 0; } -#comments td.level0{ - padding-left:0px; -} -#comments td.level1{ - padding-left:20px; -} -#comments td.level2{ - padding-left:40px; -} -#comments td.level3{ - padding-left:60px; -} -#comments td.level4{ - padding-left:80px; -} -#comments td.level5{ - padding-left:100px; +#comments td.host { + color: gray; } -#comments img.level0{ - margin-left:0px; -} -#comments img.level1{ - margin-left:20px; -} -#comments img.level2{ - margin-left:40px; -} -#comments img.level3{ - margin-left:60px; -} -#comments img.level4{ - margin-left:80px; -} -#comments img.level5{ - margin-left:100px; +#comments td.level0 { + padding-left: 0px; } -#comments tr{ - vertical-align:middle; +#comments td.level1 { + padding-left: 20px; } -#comments tr.show{ - color:#030; - text-decoration:none; +#comments td.level2 { + padding-left: 40px; } -#content tr.show td{ - padding-top:0px; - padding-bottom:0px; +#comments td.level3 { + padding-left: 60px; } -#comments tr.blocked{ - color:#a33; - text-decoration:break-through; +#comments td.level4 { + padding-left: 80px; } -#comments textarea{ - width:100%; +#comments td.level5 { + padding-left: 100px; } -#comments td.content.unread{ - font-weight:bold; +#comments img.level0 { + margin-left: 0px; } -#comments td.content.received{ - font-weight:normal; +#comments img.level1 { + margin-left: 20px; } - -#comments table.event_comments td{ - padding:3px; - background-color:#ccc; +#comments img.level2 { + margin-left: 40px; } -#comments .event th{ - text-align:left; +#comments img.level3 { + margin-left: 60px; } -#comments .event button{ - text-align:right; +#comments img.level4 { + margin-left: 80px; } -#comments .event_start{ - width:200px; - text-align:center; +#comments img.level5 { + margin-left: 100px; } -#comments .event_title{ - width:400px; +#comments tr { + vertical-align: middle; } -#comments .event_show_comments{ - height:2em; +#comments tr.show { + color: #030; + text-decoration: none; } -#comments .event_excerpt{ +#content tr.show td { + padding-top: 0px; + padding-bottom: 0px; } -#content #comments td.content{ - width:100%; +#comments tr.blocked { + color: #a33; + text-decoration: break-through; +} + +#comments textarea { + width: 100%; +} + +#comments td.content.unread { + font-weight: bold; +} + +#comments td.content.received { + font-weight: normal; +} + +#comments table.event_comments td { + padding: 3px; + background-color: #ccc; +} + +#comments .event th { + text-align: left; +} + +#comments .event button { + text-align: right; +} + +#comments .event_start { + width: 200px; + text-align: center; +} + +#comments .event_title { + width: 400px; +} + +#comments .event_show_comments { + height: 2em; +} + +#content #comments td.content { + width: 100%; } diff --git a/website/agenda/planung/css/default.css b/website/agenda/planung/css/default.css index 127f30d..07d3cdb 100644 --- a/website/agenda/planung/css/default.css +++ b/website/agenda/planung/css/default.css @@ -1,11 +1,10 @@ - /* roboto-regular - latin_latin-ext */ @font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 400; + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; src: url('../fonts/roboto-v18-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ - src: local('Roboto'), local('Roboto-Regular'), + src: local('Roboto'), local('Roboto-Regular'), url('../fonts/roboto-v18-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('../fonts/roboto-v18-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ url('../fonts/roboto-v18-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ @@ -15,11 +14,11 @@ /* open-sans-regular - latin_latin-ext */ @font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; src: url('../fonts/open-sans-v15-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ - src: local('Open Sans Regular'), local('OpenSans-Regular'), + src: local('Open Sans Regular'), local('OpenSans-Regular'), url('../fonts/open-sans-v15-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('../fonts/open-sans-v15-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ url('../fonts/open-sans-v15-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ @@ -27,530 +26,536 @@ url('../fonts/open-sans-v15-latin_latin-ext-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ } -body{ - margin:0; - padding:0; - color:#000; - background:#efefef; - height:100%; - text-align:center; +body { + margin: 0; + padding: 0; + color: #000; + background: #efefef; + height: 100%; + text-align: center; } -body #content{ - margin:0; - color:#000; - background:#fff; - text-align:left; - min-width:500px; - max-width:1200px; - margin-left:auto; - margin-right:auto; +body #content { + margin: 0; + color: #000; + background: #fff; + text-align: left; + min-width: 500px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; } -div{ +div { transition: background-color 0.5s linear; transition: z-index 2s linear; } -#selectImage #content{ - max-width:none; +#selectImage #content { + max-width: none; } -body, -#content input, -#content textarea, -#content td, +body, +#content input, +#content textarea, +#content td, #content div, -#content select, -#content option, -#content li, +#content select, +#content option, +#content li, #content input[type="submit"], -#content input[type="file"], -#content .label{ - font-family:Roboto,sans-serif; - font-size:0.937rem; +#content input[type="file"], +#content .label { + font-family: Roboto, sans-serif; + font-size: 0.937rem; } - -#content div.panel-header, -#content button{ - font-size:1rem; - font-family:Roboto,sans-serif; - font-weight:600; +#content div.panel-header, +#content button { + font-size: 1rem; + font-family: Roboto, sans-serif; + font-weight: 600; } - -#content textarea{ - padding:6px; - border:1px solid #ccc; +#content textarea { + padding: 6px; + border: 1px solid #ccc; } -@media handheld{ - body{ - max-width:800px; - font-size:1em; - } - input,button{ - padding:16px; - } - - #calcms_nav{ - min-width:640px; - max-width:800px; - } +@media handheld { + body { + max-width: 800px; + font-size: 1em; + } + input, button { + padding: 16px; + } + #calcms_nav { + min-width: 640px; + max-width: 800px; + } } -#calcms_nav{ +#calcms_nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; - vertical-align:middle; - z-index:99; + vertical-align: middle; + z-index: 99; } #calcms_nav, #calcms_nav a, #calcms_nav div, #calcms_nav input, -#calcms_nav select, -#calcms_nav option{ - margin:0; - padding:0; - color:#fff; +#calcms_nav select, +#calcms_nav option { + margin: 0; + padding: 0; + color: #fff; } -#calcms_nav, -#calcms_nav select{ - background:#004f9b; +#calcms_nav, +#calcms_nav select { + background: #004f9b; } -#calcms_nav a:hover, -#calcms_nav select:hover{ - background:#007acc; +#calcms_nav a:hover, +#calcms_nav select:hover { + background: #007acc; transition: all 0.5s linear; } -#calcms_nav div a, -#calcms_nav select{ - padding:6px; - padding-top:1rem; - padding-bottom:1rem; - line-height:3em; +#calcms_nav div a, +#calcms_nav select { + padding: 6px; + padding-top: 1rem; + padding-bottom: 1rem; + line-height: 3em; } #calcms_nav div { transition: background 0.2s; } -#calcms_nav select, -#calcms_nav option{ - max-width:8em; - border:0; - padding-left:0; - padding-right:0; - border-left:1px solid #666; +#calcms_nav select, +#calcms_nav option { + max-width: 8em; + border: 0; + padding-left: 0; + padding-right: 0; + border-left: 1px solid #666; } -#calcms_nav a#logout{ - color:#ff4444; +#calcms_nav a#logout { + color: #ff4444; } -a{ - color:#000; - text-decoration:none; +a { + color: #000; + text-decoration: none; } -#content table{ - border-collapse:collapse; - width:100% +#content table { + border-collapse: collapse; + width: 100% } -#content table.data tr{ - border-bottom:1px solid rgba(0,0,0,0.12); +#content table.data tr { + border-bottom: 1px solid rgba(0, 0, 0, 0.12); } -#content table td{ - padding:6px; - border-collapse:collapse; - border-right:0; - border-left:0; +#content table td { + padding: 6px; + border-collapse: collapse; + border-right: 0; + border-left: 0; } -#content table th{ - padding:6px; - border-collapse:collapse; +#content table th { + padding: 6px; + border-collapse: collapse; } -#info{ - color:#000; - background:#fff; +#info { + color: #000; + background: #fff; } -#content textarea{ - font-weight:normal; +#content textarea { + font-weight: normal; } - -div.editor{ - padding-left:1rem; - padding-right:1rem; +div.editor { + padding-left: 1rem; + padding-right: 1rem; } -#content .panel{ - border: 1px solid rgba(0,0,0,.03); - box-shadow: 0 2px 2px rgba(0,0,0,.24),0 0 2px rgba(0,0,0,.12); +#content .panel { + border: 1px solid rgba(0, 0, 0, .03); + box-shadow: 0 2px 2px rgba(0, 0, 0, .24), 0 0 2px rgba(0, 0, 0, .12); margin: 4px; } -#content div.panel-header{ - text-align:left; - padding-left:0; +#content div.panel-header { + text-align: left; + padding-left: 0; align-content: center; align-items: center; display: flex; justify-content: center; padding: 8px 20px; - color: rgba(0,0,0,.54); - background: rgba(0,0,0,.03); + color: rgba(0, 0, 0, .54); + background: rgba(0, 0, 0, .03); } -#content div.panel-body{ - padding:1rem; +#content div.panel-body { + padding: 1rem; } -#content .field{ - width:30em; +#content .field { + width: 30em; } -*:focus {outline: none;} - -#content a{ - color:#000; - font-weight:normal; -} -#content a:hover{ - text-decoration:underline; +*:focus { + outline: none; } -#content form{ - border:0; - padding:0; - margin:0; +#content a { + color: #000; + font-weight: normal; } -#content div,td,tr,table{ - vertical-align:middle; +#content a:hover { + text-decoration: underline; } -#content td{ - padding:3px; +#content form { + border: 0; + padding: 0; + margin: 0; } -#content pre, .pre { - border:0; - padding:2em; - color:#000; - background:#eee; +#content div, +td, +tr, +table { + vertical-align: middle; } -.error.head{ - position:relative; - top:3em; +#content td { + padding: 3px; } -li.ui-menu-item{ - background:none; - list-style-image:url(); - list-style-type:none; +#content pre, +.pre { + border: 0; + padding: 2em; + color: #000; + background: #eee; +} + +.error.head { + position: relative; + top: 3em; +} + +li.ui-menu-item { + background: none; + list-style-image: url(); + list-style-type: none; } #content h1, -#content h2{ - margin:1em; - padding:0; - font-weight:100; +#content h2 { + margin: 1em; + padding: 0; + font-weight: 100; } -#jobs th{ - text-align:left; +#jobs th { + text-align: left; } -#jobs td.status.finished a{ - color:#000; +#jobs td.status.finished a { + color: #000; } -#jobs td.status.ongoing a{ - text-decoration:blink; - color:green; +#jobs td.status.ongoing a { + text-decoration: blink; + color: green; } -#jobs td.status.scheduled a{ - color:green; +#jobs td.status.scheduled a { + color: green; } #content div.ok, #content div.warn, -#content div.error{ - font-weight:bold; - margin:0; - padding:1rem; +#content div.error { + font-weight: bold; + margin: 0; + padding: 1rem; } #content span.ok, #content span.warn, -#content span.error{ - font-weight:bold; - padding:1px; +#content span.error { + font-weight: bold; + padding: 1px; } #content span.ok, -#content span.error{ - color:white; +#content span.error { + color: white; } -div.ok{ - color:white; - background:#0c0; +div.ok { + color: white; + background: #0c0; } -div.warn{ - background:#ff0; +div.warn { + background: #ff0; } -div.error{ - color:white; - background:#d00; +div.error { + color: white; + background: #d00; } /* badges */ -div.badge-ok, -div.badge-warn, -div.badge-error{ - border-radius:4px; - display:inline; - margin:3px; - padding:3px; +div.badge-ok, +div.badge-warn, +div.badge-error { + border-radius: 4px; + display: inline; + margin: 3px; + padding: 3px; } -div.badge-ok{ - color:white; - background:#0c0; +div.badge-ok { + color: white; + background: #0c0; } -div.badge-warn{ - background:#ff0; +div.badge-warn { + background: #ff0; } -div.badge-error{ - color:white; - background:#d00; +div.badge-error { + color: white; + background: #d00; } #content button, #content select, -#content input{ - padding:4px; +#content input { + padding: 4px; } -#content div.flex{ +#content div.flex { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; } -#content div.card{ - border:0; - margin:1em; - box-shadow:0 2px 5px 0 rgba(0,0,0,.12),0 2px 10px 0 rgba(0,0,0,.09); - border-radius:3px; +#content div.card { + border: 0; + margin: 1em; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .12), 0 2px 10px 0 + rgba(0, 0, 0, .09); + border-radius: 3px; } -#content table.table tr:hover{ - background:#ebebeb +#content table.table tr:hover { + background: #ebebeb } -#content div.card tr{ - border-bottom:none; +#content div.card tr { + border-bottom: none; } -#content div.card tr:hover{ - background:none; + +#content div.card tr:hover { + background: none; } /*overwrite jquery ui*/ - -#content .ui-tabs-nav{ - border:0; - background:#fff; +#content .ui-tabs-nav { + border: 0; + background: #fff; border-bottom: solid 1px #ccc; } -#content .ui-tab a{ - color:#fff; +#content .ui-tab a { + color: #fff; } -#content .ui-tabs-tab{ - border:0; - background:#aaa; - padding:6px; +#content .ui-tabs-tab { + border: 0; + background: #aaa; + padding: 6px; border-radius: 3px 3px 0 0; } -#content .ui-tab a:hover{ - text-decoration:none; +#content .ui-tab a:hover { + text-decoration: none; } /* overwrite tablesorter */ -tr.tablesorter-filter-row{ - background:#ccc; -} -tr.tablesorter-filter-row input{ - height:1rem; - color:#000; +tr.tablesorter-filter-row { + background: #ccc; } -table.table tr, -table.tablesorter tr{ - border-bottom:solid 1px #ebebeb; +tr.tablesorter-filter-row input { + height: 1rem; + color: #000; +} + +table.table tr, +table.tablesorter tr { + border-bottom: solid 1px #ebebeb; } #content table.tablesorter td, -#content table.table td{ - padding:0.8rem 0.4rem; - text-align:left; - vertical-align:middle; +#content table.table td { + padding: 0.8rem 0.4rem; + text-align: left; + vertical-align: middle; } -/*colors*/ +/*colors*/ #content input[type="submit"], #content input[type="file"], #content button, -#content .ui-state-active, +#content .ui-state-active, #content a.ui-button:active, -#content .ui-button:active{ - background-color:#2196f3; - cursor:pointer; +#content .ui-button:active { + background-color: #2196f3; + cursor: pointer; } #content input[type="submit"]:hover, #content input[type="file"]:hover, #content button:hover, -#content .ui-button.ui-state-active:hover{ - background-color:#39a1f4; +#content .ui-button.ui-state-active:hover { + background-color: #39a1f4; } -#content .button{ - cursor:pointer; +#content .button { + cursor: pointer; } /*colors end */ #content input[type="submit"], #content input[type="file"], #content button{ - display:inline-block; - border:0; - padding-left:16px; - padding-right:16px; - margin:0.5rem; + display: inline-block; + border: 0; + padding-left: 16px; + padding-right: 16px; + margin: 0.5rem; text-align: center; text-decoration: none; - min-width:64px; - font-weight:500; - border-radius:4px; - color:#fff; - height:36px; - position:relative; - box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12); - transition:background-color .3s cubic-bezier(.64,.09,.08,1),box-shadow .3s cubic-bezier(.64,.09,.08,1); + min-width: 64px; + font-weight: 500; + border-radius: 4px; + color: #fff; + height: 36px; + position: relative; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12); + transition: background-color .3s cubic-bezier(.64, .09, .08, 1), + box-shadow .3s cubic-bezier(.64, .09, .08, 1); } #content input[type="submit"]:hover, #content input[type="file"]:hover, -#content button:focus{ - outline:0; - transition:background 0.5s cubic-bezier(.64,.09,.08,1) +#content button:focus { + outline: 0; + transition: background 0.5s cubic-bezier(.64, .09, .08, 1) } #content input[type="submit"]:hover, #content input[type="file"]:hover, -#content button:hover{ - box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15); +#content button:hover { + box-shadow: 0 5px 11px 0 rgba(0, 0, 0, .18), 0 4px 15px 0 + rgba(0, 0, 0, .15); } -#content input{ - border:none; - border-bottom:1px solid #03a9f4; - color:#000; - background:#fefefe; - padding:8px; - margin-top:0px; - margin-bottom:0px; - margin-left:0.5rem; +#content input { + border: none; + border-bottom: 1px solid #03a9f4; + color: #000; + background: #fefefe; + padding: 8px; + margin-top: 0px; + margin-bottom: 0px; + margin-left: 0.5rem; text-decoration: none; } -#content input.error{ - border-bottom:2px solid #d30000; +#content input.error { + border-bottom: 2px solid #d30000; } -#content input[type="text"]:focus{ - border-bottom:2px solid #03a9f4; +#content input[type="text"]:focus { + border-bottom: 2px solid #03a9f4; } -#content textarea:focus{ - border:1px solid #03a9f4; +#content textarea:focus { + border: 1px solid #03a9f4; } -#content select{ - color:#000; - padding:6px; - padding-left:0; - padding-right:0; - border:none; - border-bottom:solid 1px #9e9e9e; - cursor:pointer; - margin-left:0.5rem; +#content select { + color: #000; + padding: 6px; + padding-left: 0; + padding-right: 0; + border: none; + border-bottom: solid 1px #9e9e9e; + cursor: pointer; + margin-left: 0.5rem; } -#content select, -input[type='checkbox']{ - margin-top:0px; +#content select, +input[type='checkbox'] { + margin-top: 0px; } -#content div.formField div.label{ - display:hide; - padding-left:1em; - color:#999; +#content div.formField div.label { + display: hide; + padding-left: 1em; + color: #999; } -#content div.formField input{ - clear:both; + +#content div.formField input { + clear: both; } #content input[readonly] { border: 0; } - /* new */ - -#calcms_nav{ - position:fixed; - top:0; - left:0; - right:0; +#calcms_nav { + position: fixed; + top: 0; + left: 0; + right: 0; } -#calcms_nav div a, +#calcms_nav div a, #calcms_nav select, -#calcms_nav option{ - font-size:0.9375rem; +#calcms_nav option { + font-size: 0.9375rem; } #calcms_nav select, -#calcms_nav option{ - border:0; - text-align:left; +#calcms_nav option { + border: 0; + text-align: left; -moz-appearance: none; -webkit-appearance: none; appearance: none; @@ -559,50 +564,51 @@ input[type='checkbox']{ #calcms_nav .fa, #calcms_nav .far, -#calcms_nav .fas{ - opacity:0.4; +#calcms_nav .fas { + opacity: 0.4; } -#content button.selectImage{ - padding:0!important; - float:left; - min-width:32px; +#content button.selectImage { + padding: 0 !important; + float: left; + min-width: 32px; } #content button.selectImage, -#content button.selectImage img{ - width:32px; - height:32px; -} -input.image{ - width:16rem; +#content button.selectImage img { + width: 32px; + height: 32px; } -#content .ui-widget.ui-widget-content{ - border:0; +input.image { + width: 16rem; } -#content .select .option{ - font-size:1rem; - line-height:2rem; +#content .ui-widget.ui-widget-content { + border: 0; } -#content #imageList div.images{ - max-height:650px; - overflow-y:scroll +#content .select .option { + font-size: 1rem; + line-height: 2rem; } -#calcms_nav #bars{ - cursor:pointer; +#content #imageList div.images { + max-height: 650px; + overflow-y: scroll } -#calcms_nav.mobile{ - flex-direction:column; - position:absolute; +#calcms_nav #bars { + cursor: pointer; } -#calcms_nav.mobile div{ - text-align:left; +#calcms_nav.mobile { + flex-direction: column; + position: absolute; +} + +#calcms_nav.mobile div { + text-align: left; } #calcms_nav .dropdown { @@ -614,18 +620,16 @@ input.image{ display: none; position: absolute; z-index: 100; - text-align:left; - background:#004f9b; - min-width:10rem; + text-align: left; + background: #004f9b; + min-width: 10rem; } -#calcms_nav .dropdown-content a{ - width:20rem; +#calcms_nav .dropdown-content a { + width: 20rem; } #calcms_nav .dropdown:hover .dropdown-content { display: block; transition: all 1s linear; } - - diff --git a/website/agenda/planung/css/diff.css b/website/agenda/planung/css/diff.css index c242db6..c4c1a8c 100644 --- a/website/agenda/planung/css/diff.css +++ b/website/agenda/planung/css/diff.css @@ -1,49 +1,48 @@ table.diff { - border-collapse: collapse; - border-top: solid 1px #999999; - border-left: solid 1px #999999; + border-collapse: collapse; + border-top: solid 1px #999999; + border-left: solid 1px #999999; } table.diff td { - padding: 2px; - padding-left: 5px; - padding-right: 5px; - border-right: solid 1px #999999; - border-bottom: solid 1px #999999; + padding: 2px; + padding-left: 5px; + padding-right: 5px; + border-right: solid 1px #999999; + border-bottom: solid 1px #999999; } -table.diff td:nth-child(1), +table.diff td:nth-child(1), table.diff td:nth-child(2) { - background-color: #deedff; + background-color: #deedff; } -table.diff tr.change, -table.diff tr.disc_a, +table.diff tr.change, +table.diff tr.disc_a, table.diff tr.disc_b { - background-color: #ffffdd; + background-color: #ffffdd; } table.diff tr.del { - background-color: #ffeeee; + background-color: #ffeeee; } table.diff tr.ins { - background-color: #eeffee; + background-color: #eeffee; } table.diff td ins { - padding: 2px; - color: #009900; - background-color: #ccffcc; - text-decoration: none; - font-weight: bold; + padding: 2px; + color: #009900; + background-color: #ccffcc; + text-decoration: none; + font-weight: bold; } table.diff td del { - padding: 2px; - color: #990000; - background-color: #ffcccc; - text-decoration: none; - font-weight: bold; -} - + padding: 2px; + color: #990000; + background-color: #ffcccc; + text-decoration: none; + font-weight: bold; +} \ No newline at end of file diff --git a/website/agenda/planung/css/event.css b/website/agenda/planung/css/event.css index 9126a75..2b3d0bf 100644 --- a/website/agenda/planung/css/event.css +++ b/website/agenda/planung/css/event.css @@ -1,60 +1,58 @@ -pre{ - white-space:pre-wrap; +pre { + white-space: pre-wrap; } #content div.editor div p a img { - float:right; + float: right; } -#content div.editor td{ - width:800px; - padding-left:0; +#content div.editor td { + width: 800px; + padding-left: 0; } -#content div.editor td.label{ - width:11em; +#content div.editor td.label { + width: 11em; } -#content .editor img{ - padding:0; - margin:0; - border:none; - width:24px; - height:24px; +#content .editor img { + padding: 0; + margin: 0; + border: none; + width: 24px; + height: 24px; } -#content .edit_event input, -#content .edit_event select, -#content .edit_event textarea{ - padding:0.5em; +#content .edit_event input, +#content .edit_event select, +#content .edit_event textarea { + padding: 0.5em; } -#content .excerpt{ - width:100%; - max-width:40rem; - height:3em; +#content .excerpt { + width: 100%; + max-width: 40rem; + height: 3em; } -#content textarea{ - width:100%; - max-width:40rem; +#content textarea { + width: 100%; + max-width: 40rem; } -#content .edit_event input.url{ - width:100%; - max-width:40rem; +#content .edit_event input.url { + width: 100%; + max-width: 40rem; } -.date{ - width:10em; +.date { + width: 10em; } -.time{ - width:6em; +.time { + width: 6em; } -.episode{ - width:3em; +.episode { + width: 3em; } - - diff --git a/website/agenda/planung/css/playlist.css b/website/agenda/planung/css/playlist.css index 37659d8..baaa85b 100644 --- a/website/agenda/planung/css/playlist.css +++ b/website/agenda/planung/css/playlist.css @@ -1,21 +1,19 @@ -table{ - padding:0; - margin:1em; - border-collapse:collapse; - empty-cells:show; +table { + padding: 0; + margin: 1em; + border-collapse: collapse; + empty-cells: show; } -tr{ - margin:0; - padding:0; - border-top:1px solid #666; -} - - -td{ - min-width:10em; - padding:3px; - margin:0; - font-size:-2; +tr { + margin: 0; + padding: 0; + border-top: 1px solid #666; } +td { + min-width: 10em; + padding: 3px; + margin: 0; + font-size: -2; +} \ No newline at end of file diff --git a/website/agenda/planung/css/projects.css b/website/agenda/planung/css/projects.css index b38d75a..c9ebf9f 100644 --- a/website/agenda/planung/css/projects.css +++ b/website/agenda/planung/css/projects.css @@ -1,39 +1,38 @@ -#content .label{ - width:10em; - padding:0; - margin:0; - color:#555; +#content .label { + width: 10em; + padding: 0; + margin: 0; + color: #555; } -#content div.project{ - width:45%; +#content div.project { + width: 45%; } -#content div.editor{ - clear:both; +#content div.editor { + clear: both; } -#content div.view{ - clear:both; +#content div.view { + clear: both; } -#content div.editor div.right{ - float:right; - padding:0; - margin:0; +#content div.editor div.right { + float: right; + padding: 0; + margin: 0; } -#content div.editor div.buttons{ - text-align:center; - padding:0; +#content div.editor div.buttons { + text-align: center; + padding: 0; } -#content div.editor div.buttons button, -#content div.editor div.buttons input{ - margin-left:1em; +#content div.editor div.buttons button, +#content div.editor div.buttons input { + margin-left: 1em; } -#content div.view{ - text-align:left; +#content div.view { + text-align: left; } - diff --git a/website/agenda/planung/css/series.css b/website/agenda/planung/css/series.css index 8557bed..4fa3e95 100644 --- a/website/agenda/planung/css/series.css +++ b/website/agenda/planung/css/series.css @@ -1,52 +1,51 @@ - -#content{ - margin-top:3em; - padding:1em; - /*max-width:1000px;*/ - min-height:100%; +#content { + margin-top: 3em; + padding: 1em; + /*max-width:1000px;*/ + min-height: 100%; } -#content td.label{ - max-width:3em; +#content td.label { + max-width: 3em; } -#content .label{ - padding:0; - margin:0; - color:#555; +#content .label { + padding: 0; + margin: 0; + color: #555; } -#content table.series{ - border-radius:1em; +#content table.series { + border-radius: 1em; } -#content .series div.header{ - font-weight:bold; - cursor:pointer; +#content .series div.header { + font-weight: bold; + cursor: pointer; } -#content div.header{ - clear:both; +#content div.header { + clear: both; } -#content .right{ - float:right; - padding:0; - margin:0; +#content .right { + float: right; + padding: 0; + margin: 0; } -#content .editor{ - clear:both; +#content .editor { + clear: both; } -#content .editor div.buttons{ - text-align:center; - padding:0; +#content .editor div.buttons { + text-align: center; + padding: 0; } #content .editor div.buttons button, -#content .editor div.buttons input{ - margin-left:1em; +#content .editor div.buttons input { + margin-left: 1em; } /* @@ -56,190 +55,184 @@ padding:6px; } */ - -#imagePreview{ - padding:0; - margin:0; - border:none; - width:24px; - height:24px; +#imagePreview { + padding: 0; + margin: 0; + border: none; + width: 24px; + height: 24px; } -#context textarea{ - width:600px; - height:100px; +#context textarea { + width: 600px; + height: 100px; } #content table.series { - border:1px solid #ddd; - + border: 1px solid #ddd; } -#content table.series table{ - width:100%; +#content table.series table { + width: 100%; } -#content table.series tr:nth-child(4n+1){ - background-color:#eee; +#content table.series tr:nth-child(4n+1) { + background-color: #eee; } -#content table.series tr.active td{ - background-color: #aaa; +#content table.series tr.active td { + background-color: #aaa; } -#content .series table tr{ - padding:0; - margin:0; +#content .series table tr { + padding: 0; + margin: 0; } -#content .series table td:nth-child(1){ - width:10em; +#content .series table td:nth-child(1) { + width: 10em; } -#content .series table td{ - padding:6px; - margin:0; +#content .series table td { + padding: 6px; + margin: 0; } -#content .editor .row{ - clear:both; - min-height:4em; +#content .editor .row { + clear: both; + min-height: 4em; } -#content .editor .cell{ - float:left; - text-align:center; - white-space:nowrap; +#content .editor .cell { + float: left; + text-align: center; + white-space: nowrap; } -#content .editor .row.active{ - background:#ff0; - min-height:4em; +#content .editor .row.active { + background: #ff0; + min-height: 4em; } #content div.ui-tabs-panel, #content div.editor, -#content div.row.schedule{ - padding-left:0; - padding-right:0; +#content div.row.schedule { + padding-left: 0; + padding-right: 0; } /* start of schedule */ -#content div.cell{ - margin-left:6px; - margin-right:0; - padding-left:0; - padding-right:0; +#content div.cell { + margin-left: 6px; + margin-right: 0; + padding-left: 0; + padding-right: 0; } #content div.cell.exclude, #content div.cell.nextDay, -#content div.cell.weekday{ - margin-left:0; +#content div.cell.weekday { + margin-left: 0; } -#content div.cell.containsInput{ - margin-right:12px; +#content div.cell.containsInput { + margin-right: 12px; } -#content div.cell.containsSelect{ - margin-right:12px; +#content div.cell.containsSelect { + margin-right: 12px; } #content div.cell.exclude, -#content div.cell.nextDay{ - width:1em; +#content div.cell.nextDay { + width: 1em; } #content div.cell.weekday, #content div.cell.weekday input, -#content div.cell.weekday select{ - width:2em; - padding-top:2em; +#content div.cell.weekday select { + width: 2em; + padding-top: 2em; } #content div.cell.start, #content div.cell.start input, -#content div.cell.start select{ - width:9.5em; +#content div.cell.start select { + width: 9.5em; } #content div.cell.duration, #content div.cell.duration input, -#content div.cell.duration select{ - width:7em; +#content div.cell.duration select { + width: 7em; } #content div.cell.period_type, #content div.cell.period_type input, -#content div.cell.period_type select{ - width:7em; + #content div.cell.period_type select { + width: 7em; } #content div.cell.period_type.isSingle, -#content div.cell.period_type select.isSingle{ - width:9em; +#content div.cell.period_type select.isSingle { + width: 9em; } - - #content div.cell.end, #content div.cell.end input, -#content div.cell.end select{ - width:6em; +#content div.cell.end select { + width: 6em; } #content div.cell.frequency, #content div.cell.frequency input, -#content div.cell.frequency select{ - width:6em; +#content div.cell.frequency select { + width: 6em; } - #content div.cell.week_of_month, #content div.cell.week_of_month input, -#content div.cell.week_of_month select{ - width:6em; + #content div.cell.week_of_month select { + width: 6em; } #content div.cell.schedule_weekday, #content div.cell.schedule_weekday input, -#content div.cell.schedule_weekday select{ - width:4em; + #content div.cell.schedule_weekday select { + width: 4em; } #content div.cell.schedule_month, #content div.cell.schedule_month input, -#content div.cell.schedule_month select{ - width:6em; + #content div.cell.schedule_month select { + width: 6em; } - /* end of schedule */ - -#content .create_events{ - width:5em; -} -#content .publish_events{ - width:5em; +#content .create_events { + width: 5em; } -#content div.show_schedule{ - overflow:auto; - height:20em; - clear:both; +#content .publish_events { + width: 5em; } - -#content div.show_schedule table{ - width:24em; +#content div.show_schedule { + overflow: auto; + height: 20em; + clear: both; } -#content div.show_schedule td{ - width:10em; +#content div.show_schedule table { + width: 24em; } -#content div.show_schedule td:nth-child(1){ - width:2em; + +#content div.show_schedule td { + width: 10em; +} + +#content div.show_schedule td:nth-child(1) { + width: 2em; } /* @@ -247,52 +240,52 @@ background:#f0f0f0; } */ - -#content div.show_schedule tr.exclude td{ - text-decoration:line-through; +#content div.show_schedule tr.exclude td { + text-decoration: line-through; } -#content div.buttons{ - padding-left:12px; +#content div.buttons { + padding-left: 12px; } -#content div.editor input.image{ - width:90%; +#content div.editor input.image { + width: 90%; } #content #tabs-events td.weekday, #content #tabs-events td.date, -#content #tabs-events td.time, -#content #tabs-events td.spacer{ - width:0; + #content #tabs-events td.time, +#content #tabs-events td.spacer { + width: 0; } + #content #tabs-events td.weekday, -#content #tabs-events td.spacer{ - padding:0; +#content #tabs-events td.spacer { + padding: 0; } -#content input.datetimepicker{ - padding-left:0; - padding-right:0; +#content input.datetimepicker { + padding-left: 0; + padding-right: 0; } -button{ - cursor:pointer; +button { + cursor: pointer; } -form{ - padding:0; - margin:0; +form { + padding: 0; + margin: 0; } @media print { - input,button{ - display:none; - } + input, button { + display: none; + } } /* #content .editor .row:nth-child(2n+1){ background:#eee; } -*/ +*/ \ No newline at end of file diff --git a/website/agenda/planung/css/show-playout.css b/website/agenda/planung/css/show-playout.css index c69c965..4336aab 100644 --- a/website/agenda/planung/css/show-playout.css +++ b/website/agenda/planung/css/show-playout.css @@ -3,71 +3,69 @@ #content td, #content div.ok, #content div.warn, -#content div.error{ - margin:0; - padding:0; - border:0; + #content div.error { + margin: 0; + padding: 0; + border: 0; } -table{ - margin:1em; - border-collapse:collapse; - empty-cells:show; +table { + margin: 1em; + border-collapse: collapse; + empty-cells: show; } #content tr, -#content td{ - vertical-align:top; +#content td { + vertical-align: top; } -#content tr{ - border-top:1px solid #666; +#content tr { + border-top: 1px solid #666; } -#content #playout-table td.path{ - width:15rem; +#content #playout-table td.path { + width: 15rem; word-break: break-word; } -#content #playout-table td div{ - float:left; - margin:3px; +#content #playout-table td div { + float: left; + margin: 3px; } -#content tr.past{ - background:#ccc; +#content tr.past { + background: #ccc; } - -#content td{ - padding:3px; - font-size:-2; - text-align:center; +#content td { + padding: 3px; + font-size: -2; + text-align: center; } -#content img{ - width:60%; - height:100%; +#content img { + width: 60%; + height: 100%; } #content div.ok, #content div.warn, #content div.error{ - padding:3px; - margin:1px; - border-radius:4px; - text-align:center; + padding: 3px; + margin: 1px; + border-radius: 4px; + text-align: center; } -#content div.ok{ - background:#4caf50; +#content div.ok { + background: #4caf50; } -#content div.warn{ - background:#ffeb3b; +#content div.warn { + background: #ffeb3b; } -#content div.error{ - background:#f44336; +#content div.error { + background: #f44336; } - diff --git a/website/agenda/planung/css/studio_timeslots.css b/website/agenda/planung/css/studio_timeslots.css index 9a20240..9f9b0cf 100644 --- a/website/agenda/planung/css/studio_timeslots.css +++ b/website/agenda/planung/css/studio_timeslots.css @@ -1,115 +1,115 @@ - -#content{ - margin-top:3em; - padding:1em; - max-width:1000px; - min-height:100%; +#content { + margin-top: 3em; + padding: 1em; + max-width: 1000px; + min-height: 100%; } -#content .label{ - padding:0; - margin:0; - color:#555; +#content .label { + padding: 0; + margin: 0; + color: #555; } -#content div.header{ - clear:both; +#content div.header { + clear: both; } -#content .right{ - float:right; - padding:0; - margin:0; +#content .right { + float: right; + padding: 0; + margin: 0; } -#content .editor{ - clear:both; +#content .editor { + clear: both; } -#content .editor div.buttons{ - text-align:center; - padding:0; +#content .editor div.buttons { + text-align: center; + padding: 0; } #content .editor div.buttons button, -#content .editor div.buttons input{ - margin-left:1em; +#content .editor div.buttons input { + margin-left: 1em; } #content .editor input, #content .editor textarea, -#content .editor button{ - padding:6px; +#content .editor button { + padding: 6px; } -#content .editor .row{ - clear:both; -} -#content .editor .cell{ - float:left; - text-align:center; -} -#content .frequency{ - width:6em; -} -#content div.weekday{ - padding:0; - width:2em; - - margin-right:-0.5em; - margin-top:1.2em; +#content .editor .row { + clear: both; } -#content div.show_schedule_head{ - clear:both; +#content .editor .cell { + float: left; + text-align: center; } -#content div.show_schedule{ - clear:both; - padding:0; +#content .frequency { + width: 6em; } -#content div.show_schedule table{ - width:66%; +#content div.weekday { + padding: 0; + width: 2em; + margin-right: -0.5em; + margin-top: 1.2em; } -#content div.show_schedule td{ - width:10em; +#content div.show_schedule_head { + clear: both; +} + +#content div.show_schedule { + clear: both; + padding: 0; +} + +#content div.show_schedule table { + width: 66%; +} + +#content div.show_schedule td { + width: 10em; } /* weekday start*/ -#content div.show_schedule td:nth-child(1){ - width:2em; +#content div.show_schedule td:nth-child(1) { + width: 2em; } /* weekday end*/ -#content div.show_schedule td:nth-child(3){ - width:2em; +#content div.show_schedule td:nth-child(3) { + width: 2em; } -#content div.show_schedule tr.exclude td{ - text-decoration:line-through; +#content div.show_schedule tr.exclude td { + text-decoration: line-through; } -#content div.buttons{ - padding-left:12px; +#content div.buttons { + padding-left: 12px; } -#content div.editor input.image{ - width:90%; +#content div.editor input.image { + width: 90%; } -button{ - cursor:pointer; +button { + cursor: pointer; } -form{ - padding:0; - margin:0; +form { + padding: 0; + margin: 0; } @media print { - input,button{ - display:none; - } + input, button { + display: none; + } } - diff --git a/website/agenda/planung/css/studios.css b/website/agenda/planung/css/studios.css index 94520d9..be30a55 100644 --- a/website/agenda/planung/css/studios.css +++ b/website/agenda/planung/css/studios.css @@ -1,36 +1,35 @@ -#content .label{ - width:10em; - padding:0; - margin:0; - color:#555; +#content .label { + width: 10em; + padding: 0; + margin: 0; + color: #555; } -#content div.studio{ - min-width:40%; +#content div.studio { + min-width: 40%; } -#content div.editor{ - display:inline-block; +#content div.editor { + display: inline-block; } -#content div.editor div.right{ - float:right; - padding:0; - margin:0; +#content div.editor div.right { + float: right; + padding: 0; + margin: 0; } -#content div.editor div.buttons{ - text-align:center; - padding:0; +#content div.editor div.buttons { + text-align: center; + padding: 0; } #content div.editor div.buttons button, -#content div.editor div.buttons input{ - margin-left:1em; +#content div.editor div.buttons input { + margin-left: 1em; } -#content div.view{ - text-align:left; - clear:both; +#content div.view { + text-align: left; + clear: both; } - diff --git a/website/agenda/planung/css/wiki_preview.css b/website/agenda/planung/css/wiki_preview.css index 556f222..a4caa26 100644 --- a/website/agenda/planung/css/wiki_preview.css +++ b/website/agenda/planung/css/wiki_preview.css @@ -1,5 +1,4 @@ -form table{ - margin:6px; - padding:6px; -} - +form table { + margin: 6px; + padding: 6px; +} \ No newline at end of file diff --git a/website/agenda/planung/css/work_time.css b/website/agenda/planung/css/work_time.css index c51330b..65bf160 100644 --- a/website/agenda/planung/css/work_time.css +++ b/website/agenda/planung/css/work_time.css @@ -1,110 +1,108 @@ - -#content{ - margin-top:3em; - padding:1em; - max-width:1000px; - min-height:100%; +#content { + margin-top: 3em; + padding: 1em; + max-width: 1000px; + min-height: 100%; } -#content td.label{ - max-width:3em; +#content td.label { + max-width: 3em; } -#content .label{ - padding:0; - margin:0; - color:#555; +#content .label { + padding: 0; + margin: 0; + color: #555; } -#content div.header{ - clear:both; +#content div.header { + clear: both; } -#content .right{ - float:right; - padding:0; - margin:0; +#content .right { + float: right; + padding: 0; + margin: 0; } -#content .editor{ - clear:both; +#content .editor { + clear: both; } -#content .editor div.buttons{ - text-align:center; - padding:0; +#content .editor div.buttons { + text-align: center; + padding: 0; } #content .editor div.buttons button, -#content .editor div.buttons input{ - margin-left:1em; +#content .editor div.buttons input { + margin-left: 1em; } #content .editor input, #content .editor textarea, -#content .editor button{ - padding:6px; +#content .editor button { + padding: 6px; } -#context textarea{ - width:600px; - height:100px; +#context textarea { + width: 600px; + height: 100px; } #content table.series { - border:1px solid #ddd; - + border: 1px solid #ddd; } -#content table.series table{ - width:100%; +#content table.series table { + width: 100%; } -#content table.series tr:nth-child(4n+1){ - background-color:#eee; +#content table.series tr:nth-child(4n+1) { + background-color: #eee; } -#content table.series tr.active td{ - background-color: #aaa; +#content table.series tr.active td { + background-color: #aaa; } -#content .series table tr{ - padding:0; - margin:0; +#content .series table tr { + padding: 0; + margin: 0; } -#content .series table td:nth-child(1){ - width:10em; +#content .series table td:nth-child(1) { + width: 10em; } -#content .series table td{ - padding:6px; - margin:0; +#content .series table td { + padding: 6px; + margin: 0; } -#content .series table tr:nth-child(odd){ - background:#eee; +#content .series table tr:nth-child(odd) { + background: #eee; } -#content .editor .row{ - clear:both; - min-height:4em; +#content .editor .row { + clear: both; + min-height: 4em; } -#content .editor .cell{ - float:left; - text-align:center; - white-space:nowrap; +#content .editor .cell { + float: left; + text-align: center; + white-space: nowrap; } -#content .editor .row.active{ - background:#ff0; - min-height:4em; +#content .editor .row.active { + background: #ff0; + min-height: 4em; } -#content .editor div.row.schedule.selected{ - background:#ff0; - min-height:4em; +#content .editor div.row.schedule.selected { + background: #ff0; + min-height: 4em; } /* @@ -115,156 +113,153 @@ #content div.ui-tabs-panel, #content div.editor, -#content div.row.schedule{ - padding-left:0; - padding-right:0; +#content div.row.schedule { + padding-left: 0; + padding-right: 0; } /* start of schedule */ -#content div.cell{ - margin-left:6px; - margin-right:0; - padding-left:0; - padding-right:0; +#content div.cell { + margin-left: 6px; + margin-right: 0; + padding-left: 0; + padding-right: 0; } #content div.cell.exclude, -#content div.cell.weekday{ - margin-left:0; +#content div.cell.weekday { + margin-left: 0; } -#content div.cell.containsInput{ - margin-right:16px; +#content div.cell.containsInput { + margin-right: 16px; } -#content div.cell.containsSelect{ - margin-right:16px; +#content div.cell.containsSelect { + margin-right: 16px; } -#content div.cell.exclude{ - width:1em; +#content div.cell.exclude { + width: 1em; } #content div.cell.weekday, #content div.cell.weekday input, #content div.cell.weekday select{ - width:2em; - padding-top:2em; + width: 2em; + padding-top: 2em; } #content div.cell.start, #content div.cell.start input, #content div.cell.start select{ - width:9em; + width: 9em; } #content div.cell.duration, #content div.cell.duration input, #content div.cell.duration select{ - width:7em; + width: 7em; } #content div.cell.title, #content div.cell.title input, #content div.cell.title select{ - width:6em; + width: 6em; } #content div.cell.type, #content div.cell.type input, #content div.cell.type select{ - width:6em; + width: 6em; } #content div.cell.period_type, #content div.cell.period_type input, -#content div.cell.period_type select{ - width:7em; + #content div.cell.period_type select { + width: 7em; } #content div.cell.period_type.isSingle, #content div.cell.period_type select.isSingle{ - width:9em; + width: 9em; } #content div.cell.end, #content div.cell.end input, #content div.cell.end select{ - width:6em; + width: 6em; } #content div.cell.frequency, #content div.cell.frequency input, #content div.cell.frequency select{ - width:6em; + width: 6em; } #content div.cell.week_of_month, #content div.cell.week_of_month input, -#content div.cell.week_of_month select{ - width:6em; + #content div.cell.week_of_month select { + width: 6em; } #content div.cell.schedule_weekday, #content div.cell.schedule_weekday input, -#content div.cell.schedule_weekday select{ - width:4em; + #content div.cell.schedule_weekday select { + width: 4em; } #content div.cell.schedule_month, #content div.cell.schedule_month input, -#content div.cell.schedule_month select{ - width:6em; + #content div.cell.schedule_month select { + width: 6em; } - /* end of schedule */ - -#content div.show_schedule{ - overflow:auto; - height:20em; - clear:both; +#content div.show_schedule { + overflow: auto; + height: 20em; + clear: both; } - -#content div.show_schedule table{ - width:50em; +#content div.show_schedule table { + width: 50em; } -#content div.show_schedule td{ - width:10em; -} -#content div.show_schedule td:nth-child(1){ - width:2em; +#content div.show_schedule td { + width: 10em; } -#content div.show_schedule tr.exclude td{ - text-decoration:line-through; +#content div.show_schedule td:nth-child(1) { + width: 2em; } -#content div.buttons{ - padding-left:12px; +#content div.show_schedule tr.exclude td { + text-decoration: line-through; } -#content div.editor input.image{ - width:90%; +#content div.buttons { + padding-left: 12px; } - -button{ - cursor:pointer; +#content div.editor input.image { + width: 90%; } -form{ - padding:0; - margin:0; +button { + cursor: pointer; +} + +form { + padding: 0; + margin: 0; } @media print { - input,button{ - display:none; - } + input, button { + display: none; + } } /* From 4cc6f7ba8c370bd42eeed3b324723736c29bae68 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 5 Oct 2019 17:15:50 +0200 Subject: [PATCH 088/391] fix whitespaces (tabs) in javascript --- website/agenda/js/calcms.js | 1524 ++++++++--------- website/agenda/planung/js/archive.js | 27 +- website/agenda/planung/js/calendar.js | 185 +- website/agenda/planung/js/default.js | 100 +- website/agenda/planung/js/edit_event.js | 58 +- website/agenda/planung/js/edit_series.js | 20 +- website/agenda/planung/js/edit_work_time.js | 20 +- website/agenda/planung/js/event.js | 28 +- website/agenda/planung/js/history.js | 6 +- website/agenda/planung/js/image.js | 38 +- website/agenda/planung/js/list_series.js | 30 +- .../planung/js/localization-datetime.js | 60 +- website/agenda/planung/js/projects.js | 54 +- website/agenda/planung/js/series.js | 94 +- website/agenda/planung/js/studio_timeslots.js | 72 +- website/agenda/planung/js/studios.js | 26 +- website/agenda/planung/logout.cgi | 2 +- 17 files changed, 1171 insertions(+), 1173 deletions(-) diff --git a/website/agenda/js/calcms.js b/website/agenda/js/calcms.js index e2101ba..239752b 100644 --- a/website/agenda/js/calcms.js +++ b/website/agenda/js/calcms.js @@ -1,786 +1,786 @@ var calcms = (function($) { - // define this - var my = {}; - - // calcms base functions - // event handlers are customized at herbstradio.org - - my.updateContainer = function updateContainer(id, url, onLoading, callback) { - if (id == null) - return; - if ($("#" + id).length == 0) - return; - // if (onLoading)document.getElementById(id).innerHTML="lade ..."; - $("#" + id).load(url, null, callback); - } - - my.load = function load(url) { - window.location.href = url; - // $(window).load(url); - // $('html').load(url); - } - - my.postContainer = function postContainer(url, parameters, callback) { - if (url != '') - $.post(url, parameters, callback); - } - - // get calcms setting - my.get = function get(name) { - if (calcms_settings[name] == null) - return ''; - return calcms_settings[name]; - } - - // set calcms setting - my.set = function set(name, value) { - calcms_settings[name] = value; - } - - // get select box value - my.selectValue = function selectValue(element) { - value = element.options[element.selectedIndex].value; - return value; - } - - my.selectFirstOption = function selectFirstOption(id) { - if ($(id) && $(id).length > 0) - $(id)[0].selectedIndex = 0; - } - - my.contains = function contains(s, t) { - if (s == false) - return false; - if (t == false) - return false; - return s.indexOf(t) != -1; - } - - my.getJsName = function getJsName(s) { - s = s.replace(/[^a-zA-Z\_0-9]/g, '_'); - s = s.replace(/_+/g, '_'); - return s; - } - - my.isArchive = function isArchive() { - if ($('#calcms_archive:checked').length == 0) - return 0; - return 1; - } - - my.getSearchElement = function getSearchElement() { - return $("#calcms_search input[name='search']"); - } - - my.resetSearch = function resetSearch() { - $("#calcms_search_field").val(''); - } - - // set calcms_settings to parameters from URL - my.evaluateParametersFromUrl = function evaluateParametersFromUrl() { - var location = new String(window.location); - - if (!location.match(my.get("base_url"))) - return; - - if (window.location.search != "") { - var parameters = window.location.search.split("?")[1].split("&"); - for (var i = 0; i < parameters.length; i++) { - var pair = parameters[i]; - var name_values = pair.split("="); - if (name_values != null) { - // alert(name_values[0]+"="+name_values[1]); - // set(name_values[0],name_values[1]); - var element = document.getElementById(name_values[0]); - if (element != null) - element.value = name_values[1]; - } - } - } - - var sendung = /\/sendung\/(\d+)\//; - sendung.exec(location); - - if (RegExp.$1 != null && RegExp.$1 != '') { - // alert(RegExp.$1); - set('event_id', RegExp.$1); - set('last_event_id', my.get('event_id')); - } else { - - var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\/(\d)\//; - sendungen.exec(location); - if (RegExp.$1 != '' && RegExp.$2 != '' && RegExp.$3 != '') { - set('from_date', RegExp.$1); - set('till_date', RegExp.$2); - set('weekday', RegExp.$3); - } else { - - var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\//; - sendungen.exec(location); - if (RegExp.$1 != '' && RegExp.$2 != '') { - set('from_date', RegExp.$1); - set('till_date', RegExp.$2); - } else { - var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\//; - sendungen.exec(location); - if (RegExp.$1 != '') { - set('date', RegExp.$1); - } - } - - } - - var kalender = /\/kalender\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\//; - kalender.exec(location); - if (RegExp.$1 != '' && RegExp.$2 != '') { - set('from_date', RegExp.$1); - set('till_date', RegExp.$2); - } else { - var kalender = /\/kalender\/(\d{4}\-\d{2}\-\d{2})\//; - kalender.exec(location); - if (RegExp.$1 != '') { - set('date', RegExp.$1); - } - } - } - } - - // return URL from calcms_settings - // parameters can be overwritten by field and value - // This handles main controller interaction logics - my.setAndGetUrlParameters = function setAndGetUrlParameters(field, value) { - - // overwrite fields by field and value - if (field != null && value != null && field != '') { - // alert(target+" "+field+" "+value); - set(field, value); - } - - // read fields - var debug = my.get('debug'); - var from_date = my.get('from_date'); - var till_date = my.get('till_date'); - var date = my.get('date'); - var month = my.get('month'); - var weekday = my.get('weekday'); - var time_of_day = ''; - var time = ''; - var program = my.get('program'); - var series_name = my.get('series_name'); - var category = my.get('category'); - var tag = my.get('tag'); - var search_field = my.get('search'); - - // delete filters by current action - if ((field == 'search' && search_field != '') - || (field == 'category' && category != '') - || (field == 'series_name' && series_name != '') - || (field == 'program' && program != '') || (field == 'tag') - && tag != '') { - weekday = ''; - date = ''; - from_date = ''; - till_date = ''; - } - - if (field == 'search') { - category = ''; - series_name = ''; - program = ''; - } - - if (field == 'category') { - search_field = ''; - series_name = ''; - program = ''; - } - - if (field == 'program') { - search_field = ''; - series_name = ''; - category = ''; - } - - if (field == 'series_name') { - search_field = ''; - program = ''; - category = ''; - } - - if (field == 'month') { - if (month != '') { - from_date = month; - till_date = month.substring(0, month.length - 2) + "31"; - } - weekday = ''; - date = ''; - category = ''; - program = ''; - series_name = ''; - tags = ''; - search_field = ''; - } - - if (field == 'week') { - weekday = ''; - date = ''; - category = ''; - program = ''; - series_name = ''; - tags = ''; - search_field = ''; - } - - if (field == 'weekday') { - /* - * if (month != ''){ from_date=month; - * till_date=month.substring(0,month.length-2)+"31" ; } - */ - category = ''; - program = ''; - series_name = ''; - tags = ''; - search_field = ''; - } - - if (field == 'date') { - weekday = ''; - from_date = ''; - till_date = ''; - category = ''; - program = ''; - series_name = ''; - tags = ''; - search_field = ''; - } - - if (field == 'time') { - if (time == 'null') { - return - - - - - - - - } else { - weekday = ''; - time_of_day = ''; - } - } - - if (field == 'month' || field == 'week' || field == 'weekday' - || field == 'time_of_day') { - time = ''; - } - - // build target URL - var url = ''; - - if (field == 'month' || field == 'week') { - if (from_date != '') - url += '/' + from_date; - if (till_date != '') - url += '/' + till_date; - } else if (weekday != '') { - if (from_date != '') - url += '/' + from_date; - if (till_date != '') - url += '/' + till_date; - url += '/' + weekday; - } else if (date != '') { - if (date == 'today') { - url += '/heute/'; - } else { - url += '/' + date; - } - } - - if (search_field != '') { - url += "/suche/" + search_field; - } - - if (category != null && category != '') { - url += "/kategorie/" + category; - } - - if (series_name != null && series_name != '') { - url += "/sendereihe/" + series_name; - } - - if (url.substr(url.length - 1, url.length) != '/') { - url += '/'; - } - - if (time_of_day != '') { - url += "&time_of_day=" + time_of_day; - } else if (time != '' && time != 'null') { - url += "&" + time; - } - - if (tag != null && tag != '') { - url += "&tag=" + tag; - } - - if (program != null && program != '') { - url += "&program=" + program; - } - - if (field == 'print') { - url += "&print=1"; - } - - if (debug != '') { - url += '&debug=' + debug; - } - - return url; - } - - // show current project categories - my.showProjectCategories = function showProjectCategories(project) { - var projectJsName = calcms.getJsName(project); - $('#calcmsCategoryForm select').each(function() { - var id = $(this).attr('id'); - if (id == "calcms_category_" + projectJsName) { - if ($(this).css('display') == 'none') - $(this).show(); - } else { - if ($(this).css('display') != 'none') - $(this).hide(); - } - }); - } - - // show current series categories - my.showProjectSeriesNames = function showProjectSeriesNames(project) { - var projectJsName = calcms.getJsName(project); - $('#calcmsSeriesNamesForm select').each(function() { - var id = $(this).attr('id'); - if (id == "calcms_series_name_" + projectJsName) { - if ($(this).css('display') == 'none') - $(this).show(); - } else { - if ($(this).css('display') != 'none') - $(this).hide(); - } - }); - } - - // get current project - my.getProject = function getProject() { - var project = $('#calcms_project'); - if (project.length == 0) - return 'all'; - return project.val(); - } - - // remove projects from form without categories and series_names - my.removeEmptyProjects = function removeEmptyProjects() { - $('#calcms_project option').each( - function() { - var project = $(this).val(); - var hasCategories = $('#calcms_category_' - + calcms.getJsName(project)).length; - var hasSeries = $('#calcms_series_name_' - + calcms.getJsName(project)).length; - if ((hasCategories == 0) && (hasSeries == 0)) { - $(this).remove(); - } - }); - } - - my.clearOnChangeArchive = function clearOnChangeArchive() { - $('#calcms_archive').off(); - } - - // register action on changing archive - my.registerOnChangeArchive = function registerOnChangeArchive(action) { - my.clearOnChangeArchive(); - $('#calcms_archive').on('click', action); - } - - // show all events for a given project - my.showSearchResultsByProject = function showSearchResultsByProject( - project, value, archive) { - if (value != null && value != '') { - var url = my.get('search_url'); - if (project != '' && project != null) - url += escape(project) + '/'; - else - url += 'all/'; - if (value != '' && value != null) - url += escape(value) + '/'; - if (archive != null && archive == 0) - url += 'kommende/'; - if (archive != null && archive == 1) - url += 'vergangene/'; - my.updateContainer('calcms_list', url, 1); - } - } - - // show all events for a given category - my.showEventsByCategory = function showEventsByCategory(value) { - if (value != '' && value != null) { - my.updateContainer('calcms_list', my.get('search_category_url') - + escape(value) + '/', 1); - } - } - - // show all events for a given project and category - my.showEventsByProjectAndCategory = function showEventsByProjectAndCategory( - project, category, archive) { - if (category != '' && category != null) { - var url = my.get('search_category_url'); - if (project != '' && project != null) - url += escape(project) + '/'; - if (category != '' && category != null) - url += escape(category) + '/'; - if (archive != null && archive == 0) - url += 'kommende/'; - if (archive != null && archive == 1) - url += 'vergangene/'; - my.updateContainer('calcms_list', url, 1); - } - } - - // show all events for a given project and series - my.showEventsByProjectAndSeriesName = function showEventsByProjectAndSeriesName( - project, seriesName, archive) { - if (seriesName != '' && seriesName != null) { - var url = my.get('search_series_name_url'); - if (project != '' && project != null) - url += escape(project) + '/'; - if (seriesName != '' && seriesName != null) - url += escape(seriesName) + '/'; - if (archive != null && archive == 0) - url += 'kommende/'; - if (archive != null && archive == 1) - url += 'vergangene/'; - my.updateContainer('calcms_list', url, 1); - } - } - - // show all events for a given series - my.showEventsBySeriesName = function showEventsBySeriesName(value) { - if (value != '' && value != null) { - my.updateContainer('calcms_list', my.get('search_series_name_url') - + escape(value) + '/', 1); - } - } - - // show all events for a given program - my.showEventsByProgram = function showEventsByProgram(value) { - var events_url = my.get('events_url'); - var url = my.setAndGetUrlParameters('program', value); - if (value != '' && value != null) { - // my.updateContainer('calcms_list', events_url+url, 1); - my.updateContainer('calcms_list', url, 1); - } - } - - // show next event of a given series - my.showNextSeriesEvent = function showNextSeriesEvent(value) { - var events_url = my.get('next_series_url'); - my.load(events_url + '/' + value + '.html'); - } - - // show previous event of a given series - my.showPrevSeriesEvent = function showPrevSeriesEvent(value) { - var events_url = my.get('prev_series_url'); - my.load(events_url + '/' + value + '.html'); - } - - my.showMenuAndList = function showMenuAndList(target, field, value) { - - var events_url = my.get('events_url'); - var menu_url = my.get('menu_url'); - var event_id = my.get('event_id'); - - var url = my.setAndGetUrlParameters(field, value); - - if (target == 'window') { - window.location.href = events_url + url; - } else { - my.updateContainer('calcms_menu', menu_url + url, 1); - - if (event_id != '' && event_id != null && Number(event_id) != 'NaN') { - // load list selected by url - my.showEvents(event_id, ''); - my.set('event_id', ''); - } else { - // load event list - my.updateContainer('calcms_list', events_url + url, 1); - my.set('last_list_url', events_url + url); - } - - } - return false; - } - - // load given event details into list - my.showEvents = function showEvents(event_id, view) { - if (view == null || view == '') - view = 'list_url'; - if (event_id != '') { - var url = my.get(view) + '/' + event_id + '/'; - my.updateContainer('calcms_list', url, 1); - } else { - document.getElementById('calcms_list').innerHTML = 'keine Sendung gefunden...'; - } - } - - // load given event details into list - my.showEvent = function showEvent(event_id) { - var old_url = my.get('last_list_url'); - var url = my.get('list_url') + '/' + event_id + '/'; - if (url != old_url) { - my.set('last_event_id', event_id); - my - .updateContainer( - 'calcms_list', - url, - 1, - function(responseText, textStatus, XMLHttpRequest) { - var back_link = '<a href="#" onclick="updateContainer(\'calcms_list\',\'' - + old_url - + '\');return false;">zurück</a>'; - document.getElementById('calcms_list').innerHTML = back_link - + document - .getElementById('calcms_list').innerHTML - + '<p><hr/>' + back_link; - }); - } - } - - // Calendar actions - - // update menu and list by given date - my.showEventsByDate = function showEventsByDate(date) { - // my.set('date',date); - my.showMenuAndList('', 'date', date); - return false; - - }; - - // update menu and list by events from weekday at given date range - my.showEventsByWeekday = function showEventsByWeekday(from, till, weekday) { - my.set('from_date', from); - my.set('till_date', till); - my.set('weekday', weekday); - my.showMenuAndList('', 'weekday'); - return false; - - }; - - // update menu and list by events from given date range - my.showEventsByDateRange = function showEventsByDateRange(from, till) { - my.set('from_date', from); - my.set('till_date', till); - my.showMenuAndList('', 'week'); - return false; - }; - - // load calendar content - my.showCalendar = function showCalendar(target, field) { - var calendar_debug = my.get('calendar_debug'); - var calendar_url = my.get('calendar_url'); - var debug = my.get('debug'); - var date = my.get('month'); - - var url = calendar_url; - - if (field == 'month') { - url += '/' + date + '/'; - } - if (debug != '') { - url += '&debug=' + debug; - } - - if (target == 'window') { - window.location.href = events_url + url; - } else { - my.updateContainer('calcms_calendar', url); - } - - if (calendar_debug != null) { - calendar_debug.innerHTML = url; - } - return false; - } - - // update menu, list and calendar widget by entries of given month YYYY-MM - // (current day) - my.showTodaysCalendarAndEvents = function showTodaysCalendarAndEvents(month) { - my.set('month', month); - // my.set(date,'today'); - my.showMenuAndList('', 'date', 'today'); - my.showCalendar('', 'month'); - return false; - - }; - - // update menu, list and calendar widget by entries of given month YYYY-MM - my.showCalendarAndEventsByMonth = function showCalendarAndEventsByMonth( - month) { - my.set('month', month); - my.showMenuAndList('', 'month'); - my.showCalendar('', 'month'); - return false; - - }; - - // update menu, list and calendar widget by entries of given date YYYY-MM-DD - my.showCalendarAndEventsByDate = function showCalendarAndEventsByDate(date) { - my.set('date', date); - my.showMenuAndList('', 'date'); - - my.set('month', date); - my.showCalendar('', 'month'); - return false; - - }; - - // end of Calendar actions - - // show comment for given event id and start time - my.showCommentsByEventIdOrEventStart = function showCommentsByEventIdOrEventStart( - event_id, event_start) { - var url = my.get('comments_url') || '/agenda/kommentare/'; - if (event_id == '' || event_start == '' || url == '') - return false; - console.log("showCommentsByEventIdOrEventStart url="+url); - - my.set('comments_event_start', event_start); - my.set('comments_event_id', event_id); - - url += event_id + '/' + event_start + '/'; - - my.updateContainer('calcms_comments', url); - } - - // add a comment to a event - my.addComment = function addComment(id, comment) { - var url = my.get('add_comment_url'); - if (url != '') - $.post(url, $("#" + id).serialize(), function(data) { - my.showCommentsByEventIdOrEventStart(my - .get('comments_event_id'), my - .get('comments_event_start')); - - }); - return false; - } - - // insert new comment form - my.showCommentForm = function showCommentForm(id, parent_id, event_id, - event_start) { - var response = '<div>'; - if (parent_id != '') response += 'Deine Anwort:'; - var html = response - html += '<form id="add_comment_' + parent_id +'"' - html += ' action="/agenda/kommentar_neu/?" method="post"' - html += ' onsubmit="calcms.addComment(\'add_comment_'+parent_id+'\',this);return false;"' - html += '>' + // define this + var my = {}; + + // calcms base functions + // event handlers are customized at herbstradio.org + + my.updateContainer = function updateContainer(id, url, onLoading, callback) { + if (id == null) + return; + if ($("#" + id).length == 0) + return; + // if (onLoading)document.getElementById(id).innerHTML="lade ..."; + $("#" + id).load(url, null, callback); + } + + my.load = function load(url) { + window.location.href = url; + // $(window).load(url); + // $('html').load(url); + } + + my.postContainer = function postContainer(url, parameters, callback) { + if (url != '') + $.post(url, parameters, callback); + } + + // get calcms setting + my.get = function get(name) { + if (calcms_settings[name] == null) + return ''; + return calcms_settings[name]; + } + + // set calcms setting + my.set = function set(name, value) { + calcms_settings[name] = value; + } + + // get select box value + my.selectValue = function selectValue(element) { + value = element.options[element.selectedIndex].value; + return value; + } + + my.selectFirstOption = function selectFirstOption(id) { + if ($(id) && $(id).length > 0) + $(id)[0].selectedIndex = 0; + } + + my.contains = function contains(s, t) { + if (s == false) + return false; + if (t == false) + return false; + return s.indexOf(t) != -1; + } + + my.getJsName = function getJsName(s) { + s = s.replace(/[^a-zA-Z\_0-9]/g, '_'); + s = s.replace(/_+/g, '_'); + return s; + } + + my.isArchive = function isArchive() { + if ($('#calcms_archive:checked').length == 0) + return 0; + return 1; + } + + my.getSearchElement = function getSearchElement() { + return $("#calcms_search input[name='search']"); + } + + my.resetSearch = function resetSearch() { + $("#calcms_search_field").val(''); + } + + // set calcms_settings to parameters from URL + my.evaluateParametersFromUrl = function evaluateParametersFromUrl() { + var location = new String(window.location); + + if (!location.match(my.get("base_url"))) + return; + + if (window.location.search != "") { + var parameters = window.location.search.split("?")[1].split("&"); + for (var i = 0; i < parameters.length; i++) { + var pair = parameters[i]; + var name_values = pair.split("="); + if (name_values != null) { + // alert(name_values[0]+"="+name_values[1]); + // set(name_values[0],name_values[1]); + var element = document.getElementById(name_values[0]); + if (element != null) + element.value = name_values[1]; + } + } + } + + var sendung = /\/sendung\/(\d+)\//; + sendung.exec(location); + + if (RegExp.$1 != null && RegExp.$1 != '') { + // alert(RegExp.$1); + set('event_id', RegExp.$1); + set('last_event_id', my.get('event_id')); + } else { + + var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\/(\d)\//; + sendungen.exec(location); + if (RegExp.$1 != '' && RegExp.$2 != '' && RegExp.$3 != '') { + set('from_date', RegExp.$1); + set('till_date', RegExp.$2); + set('weekday', RegExp.$3); + } else { + + var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\//; + sendungen.exec(location); + if (RegExp.$1 != '' && RegExp.$2 != '') { + set('from_date', RegExp.$1); + set('till_date', RegExp.$2); + } else { + var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\//; + sendungen.exec(location); + if (RegExp.$1 != '') { + set('date', RegExp.$1); + } + } + + } + + var kalender = /\/kalender\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\//; + kalender.exec(location); + if (RegExp.$1 != '' && RegExp.$2 != '') { + set('from_date', RegExp.$1); + set('till_date', RegExp.$2); + } else { + var kalender = /\/kalender\/(\d{4}\-\d{2}\-\d{2})\//; + kalender.exec(location); + if (RegExp.$1 != '') { + set('date', RegExp.$1); + } + } + } + } + + // return URL from calcms_settings + // parameters can be overwritten by field and value + // This handles main controller interaction logics + my.setAndGetUrlParameters = function setAndGetUrlParameters(field, value) { + + // overwrite fields by field and value + if (field != null && value != null && field != '') { + // alert(target+" "+field+" "+value); + set(field, value); + } + + // read fields + var debug = my.get('debug'); + var from_date = my.get('from_date'); + var till_date = my.get('till_date'); + var date = my.get('date'); + var month = my.get('month'); + var weekday = my.get('weekday'); + var time_of_day = ''; + var time = ''; + var program = my.get('program'); + var series_name = my.get('series_name'); + var category = my.get('category'); + var tag = my.get('tag'); + var search_field = my.get('search'); + + // delete filters by current action + if ((field == 'search' && search_field != '') + || (field == 'category' && category != '') + || (field == 'series_name' && series_name != '') + || (field == 'program' && program != '') || (field == 'tag') + && tag != '') { + weekday = ''; + date = ''; + from_date = ''; + till_date = ''; + } + + if (field == 'search') { + category = ''; + series_name = ''; + program = ''; + } + + if (field == 'category') { + search_field = ''; + series_name = ''; + program = ''; + } + + if (field == 'program') { + search_field = ''; + series_name = ''; + category = ''; + } + + if (field == 'series_name') { + search_field = ''; + program = ''; + category = ''; + } + + if (field == 'month') { + if (month != '') { + from_date = month; + till_date = month.substring(0, month.length - 2) + "31"; + } + weekday = ''; + date = ''; + category = ''; + program = ''; + series_name = ''; + tags = ''; + search_field = ''; + } + + if (field == 'week') { + weekday = ''; + date = ''; + category = ''; + program = ''; + series_name = ''; + tags = ''; + search_field = ''; + } + + if (field == 'weekday') { + /* + * if (month != ''){ from_date=month; + * till_date=month.substring(0,month.length-2)+"31" ; } + */ + category = ''; + program = ''; + series_name = ''; + tags = ''; + search_field = ''; + } + + if (field == 'date') { + weekday = ''; + from_date = ''; + till_date = ''; + category = ''; + program = ''; + series_name = ''; + tags = ''; + search_field = ''; + } + + if (field == 'time') { + if (time == 'null') { + return + + + + + + + + } else { + weekday = ''; + time_of_day = ''; + } + } + + if (field == 'month' || field == 'week' || field == 'weekday' + || field == 'time_of_day') { + time = ''; + } + + // build target URL + var url = ''; + + if (field == 'month' || field == 'week') { + if (from_date != '') + url += '/' + from_date; + if (till_date != '') + url += '/' + till_date; + } else if (weekday != '') { + if (from_date != '') + url += '/' + from_date; + if (till_date != '') + url += '/' + till_date; + url += '/' + weekday; + } else if (date != '') { + if (date == 'today') { + url += '/heute/'; + } else { + url += '/' + date; + } + } + + if (search_field != '') { + url += "/suche/" + search_field; + } + + if (category != null && category != '') { + url += "/kategorie/" + category; + } + + if (series_name != null && series_name != '') { + url += "/sendereihe/" + series_name; + } + + if (url.substr(url.length - 1, url.length) != '/') { + url += '/'; + } + + if (time_of_day != '') { + url += "&time_of_day=" + time_of_day; + } else if (time != '' && time != 'null') { + url += "&" + time; + } + + if (tag != null && tag != '') { + url += "&tag=" + tag; + } + + if (program != null && program != '') { + url += "&program=" + program; + } + + if (field == 'print') { + url += "&print=1"; + } + + if (debug != '') { + url += '&debug=' + debug; + } + + return url; + } + + // show current project categories + my.showProjectCategories = function showProjectCategories(project) { + var projectJsName = calcms.getJsName(project); + $('#calcmsCategoryForm select').each(function() { + var id = $(this).attr('id'); + if (id == "calcms_category_" + projectJsName) { + if ($(this).css('display') == 'none') + $(this).show(); + } else { + if ($(this).css('display') != 'none') + $(this).hide(); + } + }); + } + + // show current series categories + my.showProjectSeriesNames = function showProjectSeriesNames(project) { + var projectJsName = calcms.getJsName(project); + $('#calcmsSeriesNamesForm select').each(function() { + var id = $(this).attr('id'); + if (id == "calcms_series_name_" + projectJsName) { + if ($(this).css('display') == 'none') + $(this).show(); + } else { + if ($(this).css('display') != 'none') + $(this).hide(); + } + }); + } + + // get current project + my.getProject = function getProject() { + var project = $('#calcms_project'); + if (project.length == 0) + return 'all'; + return project.val(); + } + + // remove projects from form without categories and series_names + my.removeEmptyProjects = function removeEmptyProjects() { + $('#calcms_project option').each( + function() { + var project = $(this).val(); + var hasCategories = $('#calcms_category_' + + calcms.getJsName(project)).length; + var hasSeries = $('#calcms_series_name_' + + calcms.getJsName(project)).length; + if ((hasCategories == 0) && (hasSeries == 0)) { + $(this).remove(); + } + }); + } + + my.clearOnChangeArchive = function clearOnChangeArchive() { + $('#calcms_archive').off(); + } + + // register action on changing archive + my.registerOnChangeArchive = function registerOnChangeArchive(action) { + my.clearOnChangeArchive(); + $('#calcms_archive').on('click', action); + } + + // show all events for a given project + my.showSearchResultsByProject = function showSearchResultsByProject( + project, value, archive) { + if (value != null && value != '') { + var url = my.get('search_url'); + if (project != '' && project != null) + url += escape(project) + '/'; + else + url += 'all/'; + if (value != '' && value != null) + url += escape(value) + '/'; + if (archive != null && archive == 0) + url += 'kommende/'; + if (archive != null && archive == 1) + url += 'vergangene/'; + my.updateContainer('calcms_list', url, 1); + } + } + + // show all events for a given category + my.showEventsByCategory = function showEventsByCategory(value) { + if (value != '' && value != null) { + my.updateContainer('calcms_list', my.get('search_category_url') + + escape(value) + '/', 1); + } + } + + // show all events for a given project and category + my.showEventsByProjectAndCategory = function showEventsByProjectAndCategory( + project, category, archive) { + if (category != '' && category != null) { + var url = my.get('search_category_url'); + if (project != '' && project != null) + url += escape(project) + '/'; + if (category != '' && category != null) + url += escape(category) + '/'; + if (archive != null && archive == 0) + url += 'kommende/'; + if (archive != null && archive == 1) + url += 'vergangene/'; + my.updateContainer('calcms_list', url, 1); + } + } + + // show all events for a given project and series + my.showEventsByProjectAndSeriesName = function showEventsByProjectAndSeriesName( + project, seriesName, archive) { + if (seriesName != '' && seriesName != null) { + var url = my.get('search_series_name_url'); + if (project != '' && project != null) + url += escape(project) + '/'; + if (seriesName != '' && seriesName != null) + url += escape(seriesName) + '/'; + if (archive != null && archive == 0) + url += 'kommende/'; + if (archive != null && archive == 1) + url += 'vergangene/'; + my.updateContainer('calcms_list', url, 1); + } + } + + // show all events for a given series + my.showEventsBySeriesName = function showEventsBySeriesName(value) { + if (value != '' && value != null) { + my.updateContainer('calcms_list', my.get('search_series_name_url') + + escape(value) + '/', 1); + } + } + + // show all events for a given program + my.showEventsByProgram = function showEventsByProgram(value) { + var events_url = my.get('events_url'); + var url = my.setAndGetUrlParameters('program', value); + if (value != '' && value != null) { + // my.updateContainer('calcms_list', events_url+url, 1); + my.updateContainer('calcms_list', url, 1); + } + } + + // show next event of a given series + my.showNextSeriesEvent = function showNextSeriesEvent(value) { + var events_url = my.get('next_series_url'); + my.load(events_url + '/' + value + '.html'); + } + + // show previous event of a given series + my.showPrevSeriesEvent = function showPrevSeriesEvent(value) { + var events_url = my.get('prev_series_url'); + my.load(events_url + '/' + value + '.html'); + } + + my.showMenuAndList = function showMenuAndList(target, field, value) { + + var events_url = my.get('events_url'); + var menu_url = my.get('menu_url'); + var event_id = my.get('event_id'); + + var url = my.setAndGetUrlParameters(field, value); + + if (target == 'window') { + window.location.href = events_url + url; + } else { + my.updateContainer('calcms_menu', menu_url + url, 1); + + if (event_id != '' && event_id != null && Number(event_id) != 'NaN') { + // load list selected by url + my.showEvents(event_id, ''); + my.set('event_id', ''); + } else { + // load event list + my.updateContainer('calcms_list', events_url + url, 1); + my.set('last_list_url', events_url + url); + } + + } + return false; + } + + // load given event details into list + my.showEvents = function showEvents(event_id, view) { + if (view == null || view == '') + view = 'list_url'; + if (event_id != '') { + var url = my.get(view) + '/' + event_id + '/'; + my.updateContainer('calcms_list', url, 1); + } else { + document.getElementById('calcms_list').innerHTML = 'keine Sendung gefunden...'; + } + } + + // load given event details into list + my.showEvent = function showEvent(event_id) { + var old_url = my.get('last_list_url'); + var url = my.get('list_url') + '/' + event_id + '/'; + if (url != old_url) { + my.set('last_event_id', event_id); + my + .updateContainer( + 'calcms_list', + url, + 1, + function(responseText, textStatus, XMLHttpRequest) { + var back_link = '<a href="#" onclick="updateContainer(\'calcms_list\',\'' + + old_url + + '\');return false;">zurück</a>'; + document.getElementById('calcms_list').innerHTML = back_link + + document + .getElementById('calcms_list').innerHTML + + '<p><hr/>' + back_link; + }); + } + } + + // Calendar actions + + // update menu and list by given date + my.showEventsByDate = function showEventsByDate(date) { + // my.set('date',date); + my.showMenuAndList('', 'date', date); + return false; + + }; + + // update menu and list by events from weekday at given date range + my.showEventsByWeekday = function showEventsByWeekday(from, till, weekday) { + my.set('from_date', from); + my.set('till_date', till); + my.set('weekday', weekday); + my.showMenuAndList('', 'weekday'); + return false; + + }; + + // update menu and list by events from given date range + my.showEventsByDateRange = function showEventsByDateRange(from, till) { + my.set('from_date', from); + my.set('till_date', till); + my.showMenuAndList('', 'week'); + return false; + }; + + // load calendar content + my.showCalendar = function showCalendar(target, field) { + var calendar_debug = my.get('calendar_debug'); + var calendar_url = my.get('calendar_url'); + var debug = my.get('debug'); + var date = my.get('month'); + + var url = calendar_url; + + if (field == 'month') { + url += '/' + date + '/'; + } + if (debug != '') { + url += '&debug=' + debug; + } + + if (target == 'window') { + window.location.href = events_url + url; + } else { + my.updateContainer('calcms_calendar', url); + } + + if (calendar_debug != null) { + calendar_debug.innerHTML = url; + } + return false; + } + + // update menu, list and calendar widget by entries of given month YYYY-MM + // (current day) + my.showTodaysCalendarAndEvents = function showTodaysCalendarAndEvents(month) { + my.set('month', month); + // my.set(date,'today'); + my.showMenuAndList('', 'date', 'today'); + my.showCalendar('', 'month'); + return false; + + }; + + // update menu, list and calendar widget by entries of given month YYYY-MM + my.showCalendarAndEventsByMonth = function showCalendarAndEventsByMonth( + month) { + my.set('month', month); + my.showMenuAndList('', 'month'); + my.showCalendar('', 'month'); + return false; + + }; + + // update menu, list and calendar widget by entries of given date YYYY-MM-DD + my.showCalendarAndEventsByDate = function showCalendarAndEventsByDate(date) { + my.set('date', date); + my.showMenuAndList('', 'date'); + + my.set('month', date); + my.showCalendar('', 'month'); + return false; + + }; + + // end of Calendar actions + + // show comment for given event id and start time + my.showCommentsByEventIdOrEventStart = function showCommentsByEventIdOrEventStart( + event_id, event_start) { + var url = my.get('comments_url') || '/agenda/kommentare/'; + if (event_id == '' || event_start == '' || url == '') + return false; + console.log("showCommentsByEventIdOrEventStart url="+url); + + my.set('comments_event_start', event_start); + my.set('comments_event_id', event_id); + + url += event_id + '/' + event_start + '/'; + + my.updateContainer('calcms_comments', url); + } + + // add a comment to a event + my.addComment = function addComment(id, comment) { + var url = my.get('add_comment_url'); + if (url != '') + $.post(url, $("#" + id).serialize(), function(data) { + my.showCommentsByEventIdOrEventStart(my + .get('comments_event_id'), my + .get('comments_event_start')); + + }); + return false; + } + + // insert new comment form + my.showCommentForm = function showCommentForm(id, parent_id, event_id, + event_start) { + var response = '<div>'; + if (parent_id != '') response += 'Deine Anwort:'; + var html = response + html += '<form id="add_comment_' + parent_id +'"' + html += ' action="/agenda/kommentar_neu/?" method="post"' + html += ' onsubmit="calcms.addComment(\'add_comment_'+parent_id+'\',this);return false;"' + html += '>' html += 'Mit dem Absenden Ihres Kommentars erklären Sie sich mit der Veröffentlichung der Daten einverstanden.<br> '; html += 'Die Email-Addresse ist optional, dient privaten Antworten und wird nicht veröffentlicht.<br> ' html += 'Details siehe <a href="/datenschutzerklaerung/">Datenschutzerklärung und Widerrufshinweise</a>.<br>' - html += '<input name="author" maxlength="40" placeholder="Nickname"/><br />' - html += '<textarea name="content" cols="60" rows="10"' - html += ' onkeyup="javascript:if (this.value.length>1000) this.value=this.value.substr(0,1000)"' + html += '<input name="author" maxlength="40" placeholder="Nickname"/><br />' + html += '<textarea name="content" cols="60" rows="10"' + html += ' onkeyup="javascript:if (this.value.length>1000) this.value=this.value.substr(0,1000)"' html += ' placeholder="Was ich sagen will, ist..."' - html += ' ></textarea><br />' - html += '<input name="email" maxlength="40" placeholder="Email-Addresse für Rückmeldungen"/><br />' + html += ' ></textarea><br />' + html += '<input name="email" maxlength="40" placeholder="Email-Addresse für Rückmeldungen"/><br />' html += '<input type="submit" value="absenden!" style="color:#000"/>' - html += '<input name="event_id" value="' + event_id + '" type="hidden" />' - html += '<input name="parent_id" value="' + parent_id + '" type="hidden" />' - html += '<input name="event_start" value="' + event_start + '" type="hidden" />' + html += '<input name="event_id" value="' + event_id + '" type="hidden" />' + html += '<input name="parent_id" value="' + parent_id + '" type="hidden" />' + html += '<input name="event_start" value="' + event_start + '" type="hidden" />' html += '</form>' html += '</div>'; document.getElementById(id).innerHTML = html - my.show(id); - } - // end of Comment actions + my.show(id); + } + // end of Comment actions - // used to embed playlist in external pages - my.showPlaylist = function showPlaylist() { - var url = my.get('playlist_url'); - my.updateContainer('calcms_playlist', url); - } + // used to embed playlist in external pages + my.showPlaylist = function showPlaylist() { + var url = my.get('playlist_url'); + my.updateContainer('calcms_playlist', url); + } - // load comments into #calcms_newest_comments if not embedded yet - my.showNewestComments = function showNewestComments() { - if (my.get('preloaded') == '') { - var url = my.get('newest_comments_url'); - my.updateContainer('calcms_newest_comments', url); - } - return false; - } + // load comments into #calcms_newest_comments if not embedded yet + my.showNewestComments = function showNewestComments() { + if (my.get('preloaded') == '') { + var url = my.get('newest_comments_url'); + my.updateContainer('calcms_newest_comments', url); + } + return false; + } - // export selected events to ical - my.exportSelectedToICal = function exportSelectedToICal() { - window.location = my.get('ical_url') + my.setAndGetUrlParameters(); - ; - return false; - } + // export selected events to ical + my.exportSelectedToICal = function exportSelectedToICal() { + window.location = my.get('ical_url') + my.setAndGetUrlParameters(); + ; + return false; + } - // init search interface: load search form content if not loaded yet - my.initSearch = function initSearch(target, field) { - if (my.get('preloaded') == '') { - var category_url = my.get('category_url'); - var program_url = my.get('program_url'); - var series_name_url = my.get('series_name_url'); - var debug = my.get('debug'); + // init search interface: load search form content if not loaded yet + my.initSearch = function initSearch(target, field) { + if (my.get('preloaded') == '') { + var category_url = my.get('category_url'); + var program_url = my.get('program_url'); + var series_name_url = my.get('series_name_url'); + var debug = my.get('debug'); - if (category_url != null && category_url != '') - my.updateContainer('calcms_categories', category_url, 1); - if (program_url != null && program_url != '') - my.updateContainer('calcms_programs', program_url, 1); - if (series_name_url != null && series_name_url != '') - my.updateContainer('calcms_series_names', series_name_url, 1); - } - return false; - } + if (category_url != null && category_url != '') + my.updateContainer('calcms_categories', category_url, 1); + if (program_url != null && program_url != '') + my.updateContainer('calcms_programs', program_url, 1); + if (series_name_url != null && series_name_url != '') + my.updateContainer('calcms_series_names', series_name_url, 1); + } + return false; + } - // wrapper to show an id - my.show = function show(id) { - $("#" + id).show("drop"); - document.getElementById(id).style.visibility = "visible"; - // document.getElementById(id).style.display="block"; - } + // wrapper to show an id + my.show = function show(id) { + $("#" + id).show("drop"); + document.getElementById(id).style.visibility = "visible"; + // document.getElementById(id).style.display="block"; + } - // wrapper to hide an id - my.hide = function hide(id) { - $("#" + id).hide("drop"); - document.getElementById(id).style.visibility = "hidden"; - // document.getElementById(id).style.display="none"; - } + // wrapper to hide an id + my.hide = function hide(id) { + $("#" + id).hide("drop"); + document.getElementById(id).style.visibility = "hidden"; + // document.getElementById(id).style.display="none"; + } - // return max date - my.setDateIfBefore = function setDateIfBefore(date1, date2) { - if (date1 < date2) - return date2; - return date1; - } + // return max date + my.setDateIfBefore = function setDateIfBefore(date1, date2) { + if (date1 < date2) + return date2; + return date1; + } - // return min date - my.setDateIfAfter = function setDateIfAfter(date1, date2) { - if (date1 > date2) - return date2; - return date1; - } + // return min date + my.setDateIfAfter = function setDateIfAfter(date1, date2) { + if (date1 > date2) + return date2; + return date1; + } - // remove Drupal header for currently playing entry at topic overview page - my.removeCurrentPlayingHeader = function removeCurrentPlayingHeader() { - $("h2 a[href$='/testing']").each(function() { - $(this).css("display", "none"); - }); - } + // remove Drupal header for currently playing entry at topic overview page + my.removeCurrentPlayingHeader = function removeCurrentPlayingHeader() { + $("h2 a[href$='/testing']").each(function() { + $(this).css("display", "none"); + }); + } - // return instance - return my; + // return instance + return my; }(jQuery)); diff --git a/website/agenda/planung/js/archive.js b/website/agenda/planung/js/archive.js index 8d41ebe..ec6040f 100644 --- a/website/agenda/planung/js/archive.js +++ b/website/agenda/planung/js/archive.js @@ -1,15 +1,14 @@ function download(id, name){ - //alert(id +" "+ name); - $.getJSON( - 'archive.cgi?get_link='+name, - function(data){ - //alert(data); - $.each(data, - function(key, val) { - $('#'+id).html(val); - } - ); - } - ); -} - + //alert(id +" "+ name); + $.getJSON( + 'archive.cgi?get_link='+name, + function(data){ + //alert(data); + $.each(data, + function(key, val) { + $('#'+id).html(val); + } + ); + } + ); +} \ No newline at end of file diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index f3dde08..a4c5861 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -28,11 +28,11 @@ function isChecked(selector){ } function cancel_edit_event(){ - $('#calendar').show(effect,null,effect_duration); - $('#calendar_weekdays').show(effect,null,effect_duration); - $('#event_editor').hide(effect,null,effect_duration); - resizeCalendarMenu(); - return false; + $('#calendar').show(effect,null,effect_duration); + $('#calendar_weekdays').show(effect,null,effect_duration); + $('#event_editor').hide(effect,null,effect_duration); + resizeCalendarMenu(); + return false; } function setupMenuHeight(){ @@ -91,23 +91,23 @@ function resizeCalendarMenu(){ //after getting menu heigth, hide calendar again var menuHeight=setupMenuHeight(); - var width= $(window).width()-0; - var height= $(window).height()-menuHeight; + var width= $(window).width()-0; + var height= $(window).height()-menuHeight; - if($('#calendar').css('display')=='none'){ - $('body #content').css('max-width', '960'); - }else{ - $('body #content').css('max-width', width); - } - $('div#calendar').css('width', width); - $('div#calendar_weekdays').css('width', width); - $('div#calendar').css('height', height); + if($('#calendar').css('display')=='none'){ + $('body #content').css('max-width', '960'); + }else{ + $('body #content').css('max-width', width); + } + $('div#calendar').css('width', width); + $('div#calendar_weekdays').css('width', width); + $('div#calendar').css('height', height); // remove border for scroll - $('#calendar table').css('width', width-20); - $('#calendar_weekdays table').css('width', width-20); - $('#calendar table').css('height', height); - + $('#calendar table').css('width', width-20); + $('#calendar_weekdays table').css('width', width-20); + $('#calendar table').css('height', height); + //set spacing between table columns var columnSpacing=Math.round($(window).width()/72); //if(columnSpacing>16)columnSpacing=16; @@ -118,30 +118,30 @@ function resizeCalendarMenu(){ $('div.week').css('margin-left',-columnSpacing); //calculate cell-width - var cell_width=(width-100)/(days-1); + var cell_width=(width-100)/(days-1); if($(window).width()<720){ $('#calendar td.week').hide(); - cell_width=(width-100)/(days)-4; - //$('#calendar div.text').css('padding-right','0'); + cell_width=(width-100)/(days)-4; + //$('#calendar div.text').css('padding-right','0'); }else{ $('#calendar td.week').show(); - cell_width=(width-100)/(days)-columnSpacing; - //$('#calendar div.text').css('padding-right','16px'); + cell_width=(width-100)/(days)-columnSpacing; + //$('#calendar div.text').css('padding-right','16px'); } var with_param='width'; var cw=cell_width.toFixed(); /* - $('#calendar div.work').css(with_param, cw); - $('#calendar div.play').css(with_param, cw); - $('#calendar div.grid').css(with_param, cw); - $('#calendar div.event').css(with_param, cw); - $('#calendar div.schedule').css(with_param, cw); - $('#calendar div.date').css(with_param, cw); - $('#calendar_weekdays div.date').css(with_param, cw); - $('#calendar div.time').css(with_param, cw); - $('#calendar_weekdays div.time').css(with_param, cw); + $('#calendar div.work').css(with_param, cw); + $('#calendar div.play').css(with_param, cw); + $('#calendar div.grid').css(with_param, cw); + $('#calendar div.event').css(with_param, cw); + $('#calendar div.schedule').css(with_param, cw); + $('#calendar div.date').css(with_param, cw); + $('#calendar_weekdays div.date').css(with_param, cw); + $('#calendar div.time').css(with_param, cw); + $('#calendar_weekdays div.time').css(with_param, cw); */ //now @@ -149,12 +149,12 @@ function resizeCalendarMenu(){ //collisions /* - $('#calendar div.event.error').css( with_param, cw/2.2); - $('#calendar div.schedule.error').css(with_param, cw/2.2); + $('#calendar div.event.error').css( with_param, cw/2.2); + $('#calendar div.schedule.error').css(with_param, cw/2.2); //shift right - $('#calendar div.event.error.x2').css( 'margin-left', cw/2+6); - $('#calendar div.schedule.error.x2').css('margin-left', cw/2+6); + $('#calendar div.event.error.x2').css( 'margin-left', cw/2+6); + $('#calendar div.schedule.error.x2').css('margin-left', cw/2+6); */ showCalendar(); } @@ -505,7 +505,7 @@ function getUrl(name,value){ function reloadCalendar(){ var url=window.location.href; url=updateUrlParameters(url); - loadCalendar(url); + loadCalendar(url); } function initTodayButton(){ @@ -601,8 +601,8 @@ function initRmsPlot(){ var id = $(this).attr("id"); var field = id.split('_'); var classname = field.shift(); - var project_id = field.shift(); - var studio_id = field.shift(); + var project_id = field.shift(); + var studio_id = field.shift(); var start = $(this).attr("start") if (project_id==null) return; @@ -671,14 +671,14 @@ function loadCalendar(url, mouseButton){ url=updateUrlParameters(url); } url=setUrlParameter(url, 'part', '1'); - updateContainer('calendarTable', url, function(){ - updateTable(); - $('#calendarTable').css('opacity','1.0'); - $('#current_date').html(current_date); - updateUrls(url); - initRmsPlot(); + updateContainer('calendarTable', url, function(){ + updateTable(); + $('#calendarTable').css('opacity','1.0'); + $('#current_date').html(current_date); + updateUrls(url); + initRmsPlot(); adjustColors(); - }); + }); } function updateTable(){ @@ -712,10 +712,10 @@ function updateTable(){ //$('body').css('background','#eee'); - $(window).resize(function() { - resizeCalendarMenu(); + $(window).resize(function() { + resizeCalendarMenu(); setupMenu() - }); + }); } show_schedule(); @@ -767,8 +767,8 @@ function updateTable(){ //disable context menu document.oncontextmenu = function() {return false;}; - //edit existing event - $(baseElement).off(); + //edit existing event + $(baseElement).off(); $(baseElement).on("mousedown", ".event", function(event){ handleEvent($(this).attr("id"), event); }); @@ -836,16 +836,16 @@ function updateTable(){ // get first event_list item var id = $('#event_list tbody tr').first().attr('id'); //console.log(id); - var field=id.split('_'); - var classname =field.shift(); - var project_id =field.shift(); - var studio_id =field.shift(); - var series_id =field.shift(); - var url='series.cgi'; - url+='?project_id='+project_id; - url+='&studio_id='+studio_id; - url+='&series_id='+series_id; - url+='&action=show'; + var field=id.split('_'); + var classname =field.shift(); + var project_id =field.shift(); + var studio_id =field.shift(); + var series_id =field.shift(); + var url='series.cgi'; + url+='?project_id='+project_id; + url+='&studio_id='+studio_id; + url+='&series_id='+series_id; + url+='&action=show'; load(url); } ); @@ -927,22 +927,22 @@ function collision(div1, div2) { } function handleEvent(id, event){ - var field=id.split('_'); - var classname =field.shift(); - var project_id =field.shift(); - var studio_id =field.shift(); - var series_id =field.shift(); - var event_id =field.shift(); + var field=id.split('_'); + var classname =field.shift(); + var project_id =field.shift(); + var studio_id =field.shift(); + var series_id =field.shift(); + var event_id =field.shift(); //if(checkStudio()==0)return; if (project_id<0) {alert("please select a project");return;} if (studio_id <0) {alert("please select a studio");return;} - if (series_id <0) return; - if (event_id <0) return; + if (series_id <0) return; + if (event_id <0) return; - var url="event.cgi?action=edit&project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&event_id="+event_id; + var url="event.cgi?action=edit&project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&event_id="+event_id; if(event.which==1){ - load(url); + load(url); } if(event.which==2){ openNewTab(url); @@ -950,17 +950,17 @@ function handleEvent(id, event){ } function handleUnassignedEvent(id){ - var field=id.split('_'); - var classname =field.shift(); - var project_id =field.shift(); - var studio_id =field.shift(); - var series_id =field.shift(); - var event_id =field.shift(); + var field=id.split('_'); + var classname =field.shift(); + var project_id =field.shift(); + var studio_id =field.shift(); + var series_id =field.shift(); + var event_id =field.shift(); if(checkStudio()==0)return; if (project_id<0) return; if (studio_id<0) return; - if (event_id<0) return; + if (event_id<0) return; //console.log("assign series") $('#assign_series_events input[name="event_id"]').attr('value',event_id); @@ -970,9 +970,9 @@ function handleUnassignedEvent(id){ function handleSchedule(id, start_date, event){ var field=id.split('_'); var classname =field.shift(); - var project_id =field.shift(); - var studio_id =field.shift(); - var series_id =field.shift(); + var project_id =field.shift(); + var studio_id =field.shift(); + var series_id =field.shift(); if(checkStudio()==0)return; if (project_id<0) return; @@ -980,7 +980,7 @@ function handleSchedule(id, start_date, event){ if (series_id<0) return; if(event.which==1){ - //left click: create event from schedule + //left click: create event from schedule var url="event.cgi?action=show_new_event_from_schedule&project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&start_date="+start_date; load(url); } @@ -992,17 +992,17 @@ function handleSchedule(id, start_date, event){ } function handleGrid(id){ - var field=id.split('_'); - var classname =field.shift(); - var project_id =field.shift(); - var studio_id =field.shift(); - var series_id =field.shift();//to be selected + var field=id.split('_'); + var classname =field.shift(); + var project_id =field.shift(); + var studio_id =field.shift(); + var series_id =field.shift();//to be selected if(checkStudio()==0)return; if (project_id<0) return; if (studio_id<0) return; - var start_date=getNearestDatetime(); + var start_date=getNearestDatetime(); $('#series_date').attr('value',start_date); showDateTimePicker('#series_date'); //alert("studio "+studio_id+" "+start_date); @@ -1013,9 +1013,9 @@ function handleGrid(id){ function handleWorktime(id, event){ var field=id.split('_'); var classname =field.shift(); - var project_id =field.shift(); - var studio_id =field.shift(); - var schedule_id =field.shift(); + var project_id =field.shift(); + var studio_id =field.shift(); + var schedule_id =field.shift(); if(checkStudio()==0)return; if (project_id<0) return; @@ -1054,7 +1054,6 @@ function adjustColors(){ } $(document).ready(function(){ - // $('#calendar').hide(); initCalendarMenu(); if(calendarTable==1){ diff --git a/website/agenda/planung/js/default.js b/website/agenda/planung/js/default.js index c3bef76..f1889da 100644 --- a/website/agenda/planung/js/default.js +++ b/website/agenda/planung/js/default.js @@ -11,64 +11,64 @@ function getController(){ function set_studio(id){ - var url=window.location.href; + var url=window.location.href; //split by # var comment= url.split(/\#/); url=comment.shift(); comment=comment.join('#'); - //split by ? - var parts= url.split(/\?/); - url=parts.shift(); - //split by & - parts=parts.join('?').split(/\&+/); - var params=[]; - if (parts.length>0){ - for (index in parts){ - //add all name value pairs but studio id - var pair=parts[index]; - if(! pair.match(/^studio_id=/)) params.push(pair); - } - } - //add studio id + //split by ? + var parts= url.split(/\?/); + url=parts.shift(); + //split by & + parts=parts.join('?').split(/\&+/); + var params=[]; + if (parts.length>0){ + for (index in parts){ + //add all name value pairs but studio id + var pair=parts[index]; + if(! pair.match(/^studio_id=/)) params.push(pair); + } + } + //add studio id if(id==null)id=-1; if(id=='')id=-1; - params.push('studio_id='+id); - //append parameters to url - url+='?'+params.join('&'); + params.push('studio_id='+id); + //append parameters to url + url+='?'+params.join('&'); if ((comment!=null)&&(comment!='')) url+='#'+comment; - window.location.href=url; + window.location.href=url; } function set_project(id){ - var url=window.location.href; + var url=window.location.href; //split by # var comment= url.split(/\#/); url=comment.shift(); comment=comment.join('#'); - //split by ? - var parts= url.split(/\?/); - url=parts.shift(); - //split by & - parts=parts.join('?').split(/\&+/); - var params=[]; - if (parts.length>0){ - for (index in parts){ - //add all name value pairs but project id - var pair=parts[index]; - if( + //split by ? + var parts= url.split(/\?/); + url=parts.shift(); + //split by & + parts=parts.join('?').split(/\&+/); + var params=[]; + if (parts.length>0){ + for (index in parts){ + //add all name value pairs but project id + var pair=parts[index]; + if( (! pair.match(/^project_id=/)) && (! pair.match(/^studio_id=/)) )params.push(pair); - } - } - //add project id + } + } + //add project id if(id==null)id=-1; if(id=='')id=-1; - params.push('project_id='+id); - //append parameters to url - url+='?'+params.join('&'); + params.push('project_id='+id); + //append parameters to url + url+='?'+params.join('&'); if ((comment!=null)&&(comment!='')) url+='#'+comment; - window.location.href=url; + window.location.href=url; } function contains(s,t){ @@ -78,23 +78,23 @@ function contains(s,t){ } function updateContainer(id, url, callback){ - //alert(id+":"+url); - if (id==null) return; - if ($("#"+id).length==0) return; - $("#"+id).load(url, callback); + //alert(id+":"+url); + if (id==null) return; + if ($("#"+id).length==0) return; + $("#"+id).load(url, callback); } function load(url){ window.location=url; - //window.location.replace(url); - //document.location.href=url; - //$(window).load(url); - //$('html').load(url); + //window.location.replace(url); + //document.location.href=url; + //$(window).load(url); + //$('html').load(url); } function postContainer(url, parameters, callback){ - if (url!='') $.post(url, parameters, callback); + if (url!='') $.post(url, parameters, callback); } // init getTextWidth @@ -359,10 +359,10 @@ $(document).ready( // will be done implicitely on adding back button //setupMenuHeight(); - $(window).resize(function() { - setupMenuHeight(); + $(window).resize(function() { + setupMenuHeight(); setupMenu(); - }); + }); if(getController()=='calendar'){ //use build-in localization diff --git a/website/agenda/planung/js/edit_event.js b/website/agenda/planung/js/edit_event.js index e583311..cff826a 100644 --- a/website/agenda/planung/js/edit_event.js +++ b/website/agenda/planung/js/edit_event.js @@ -180,9 +180,9 @@ function changeSeries(seriesId){ url += '&action=reassign_event'; //alert(url); - $.post( - url, - function(data){ + $.post( + url, + function(data){ var url='event.cgi?'; url += '&project_id='+projectId; url += '&studio_id='+studioId; @@ -190,9 +190,9 @@ function changeSeries(seriesId){ url += '&event_id='+eventId; url += '&action=edit'; window.location.href = url; - } - ); - return false; + } + ); + return false; } // hide change series on abort @@ -237,8 +237,8 @@ function updateCheckBox(selector, value){ } function checkExcerptField(){ - var elem=$('textarea[name="excerpt"]'); - if (elem.length==0) return 0; + var elem=$('textarea[name="excerpt"]'); + if (elem.length==0) return 0; var length = elem.val().length; console.log("length="+length); if (length > 250){ @@ -246,12 +246,12 @@ function checkExcerptField(){ }else{ $('#excerpt_too_long').hide(); } - return 1; + return 1; } function checkExcerptExtensionField(){ - var elem=$('textarea[name="user_excerpt"]'); - if (elem.length==0) return 0; + var elem=$('textarea[name="user_excerpt"]'); + if (elem.length==0) return 0; var length = elem.val().length; console.log("length="+length); if (length > 250){ @@ -259,21 +259,21 @@ function checkExcerptExtensionField(){ }else{ $('#excerpt_extension_too_long').hide(); } - return 1; + return 1; } function checkFields(){ if (checkExcerptField()){ - $('textarea[name="excerpt"]').on("keyup", function(){ - checkExcerptField(); - }); - } + $('textarea[name="excerpt"]').on("keyup", function(){ + checkExcerptField(); + }); + } if (checkExcerptExtensionField()){ - $('textarea[name="user_excerpt"]').on("keyup", function(){ - checkExcerptExtensionField(); - }); - } + $('textarea[name="user_excerpt"]').on("keyup", function(){ + checkExcerptExtensionField(); + }); + } } $(document).ready( @@ -281,15 +281,15 @@ $(document).ready( initRegions(region); showDateTimePicker('#start_date'); - $('input[type="checkbox"]').click( - function(){ - if ($(this).attr('value')=='1'){ - $(this).attr('value','0'); - }else{ - $(this).attr('value','1'); - } - } - ); + $('input[type="checkbox"]').click( + function(){ + if ($(this).attr('value')=='1'){ + $(this).attr('value','0'); + }else{ + $(this).attr('value','1'); + } + } + ); if($('#calendar').length==0){ $('#back_to_calendar').hide(); diff --git a/website/agenda/planung/js/edit_series.js b/website/agenda/planung/js/edit_series.js index d217e8f..c6c8100 100644 --- a/website/agenda/planung/js/edit_series.js +++ b/website/agenda/planung/js/edit_series.js @@ -1,11 +1,11 @@ /* - show a series, its template, users and events + show a series, its template, users and events */ // set checkbox values checked depending on value function initCheckBoxes(){ - $('div.editor input[type="checkbox"]').each( + $('div.editor input[type="checkbox"]').each( function () { if ($(this).attr('value')=='1'){ $(this).attr('value','1'); @@ -14,26 +14,26 @@ function initCheckBoxes(){ $(this).attr('value','0'); $(this).attr('checked',null); } - } + } ); } // add checkbox handler to change value on click function addCheckBoxHandler(){ - $('div.editor input[type="checkbox"]').click( + $('div.editor input[type="checkbox"]').click( function () { if ($(this).attr('value')=='1'){ $(this).attr('value','0'); }else{ $(this).attr('value','1'); } - } + } ); } // show/hide series member edit function edit_series_members(series_id){ - $('.edit_series_members_'+series_id).toggle(); + $('.edit_series_members_'+series_id).toggle(); } // show/hide schedule fields depending on period type for a given schedule element @@ -226,7 +226,7 @@ function checkFields(){ $(document).ready( - function(){ + function(){ setupLocalization( function(){ addBackButton(); @@ -245,8 +245,8 @@ $(document).ready( initCheckBoxes(); addCheckBoxHandler(); - $("#tabs").tabs(); - $('#tabs').removeClass('ui-widget ui-widget-content ui-corner-all'); + $("#tabs").tabs(); + $('#tabs').removeClass('ui-widget ui-widget-content ui-corner-all'); updateScheduleButtonName(); initScheduleFields(); @@ -270,7 +270,7 @@ $(document).ready( $('table#schedule_table').tablesorter({ widgets: ["filter"], - usNumberFormat : false + usNumberFormat : false }); } diff --git a/website/agenda/planung/js/edit_work_time.js b/website/agenda/planung/js/edit_work_time.js index 7aad152..6c88b48 100644 --- a/website/agenda/planung/js/edit_work_time.js +++ b/website/agenda/planung/js/edit_work_time.js @@ -1,11 +1,11 @@ /* - show a series, its template, users and events + show a series, its template, users and events */ // set checkbox values checked depending on value function initCheckBoxes(){ - $('div.editor input[type="checkbox"]').each( + $('div.editor input[type="checkbox"]').each( function () { if ($(this).attr('value')=='1'){ $(this).attr('value','1'); @@ -14,20 +14,20 @@ function initCheckBoxes(){ $(this).attr('value','0'); $(this).attr('checked',null); } - } + } ); } // add checkbox handler to change value on click function addCheckBoxHandler(){ - $('div.editor input[type="checkbox"]').click( + $('div.editor input[type="checkbox"]').click( function () { if ($(this).attr('value')=='1'){ $(this).attr('value','0'); }else{ $(this).attr('value','1'); } - } + } ); } @@ -183,14 +183,14 @@ function setInputWidth(){ $(document).ready( - function(){ + function(){ setupLocalization( function(){ addBackButton(); updateWeekdays(); } ); - + initRegions(region); showDateTimePicker('.datetimepicker.start', { @@ -204,8 +204,8 @@ $(document).ready( initCheckBoxes(); addCheckBoxHandler(); - $("#tabs").tabs(); - $('#tabs').removeClass('ui-widget ui-widget-content ui-corner-all'); + $("#tabs").tabs(); + $('#tabs').removeClass('ui-widget ui-widget-content ui-corner-all'); updateScheduleButtonName(); initScheduleFields(); @@ -224,7 +224,7 @@ $(document).ready( $('table#schedule_table').tablesorter({ widgets: ["filter"], - usNumberFormat : false + usNumberFormat : false }); } diff --git a/website/agenda/planung/js/event.js b/website/agenda/planung/js/event.js index 5833c5b..523a07c 100644 --- a/website/agenda/planung/js/event.js +++ b/website/agenda/planung/js/event.js @@ -1,18 +1,18 @@ // TODO: add project_id function edit_event(event_id, series_id, studio_id, project_id, hide_series){ - var elem=$('#event_'+event_id); - if(elem.hasClass('active')){ - elem.removeClass('active'); - $('#event_container_'+event_id).slideToggle( - function(){ - $('#event_details_'+event_id).html(''); - } - ); - }else{ - elem.addClass('active'); - var url="event.cgi?project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&event_id="+event_id+"&action=edit"; - if ((hide_series!=null) && (hide_series!=''))url+='&hide_series=1'; - load(url); - } + var elem=$('#event_'+event_id); + if(elem.hasClass('active')){ + elem.removeClass('active'); + $('#event_container_'+event_id).slideToggle( + function(){ + $('#event_details_'+event_id).html(''); + } + ); + }else{ + elem.addClass('active'); + var url="event.cgi?project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&event_id="+event_id+"&action=edit"; + if ((hide_series!=null) && (hide_series!=''))url+='&hide_series=1'; + load(url); + } } diff --git a/website/agenda/planung/js/history.js b/website/agenda/planung/js/history.js index 898a022..7f4935e 100644 --- a/website/agenda/planung/js/history.js +++ b/website/agenda/planung/js/history.js @@ -58,7 +58,7 @@ function isNewToHistory(url){ var historyController=history[0].split('.cgi').shift(); //remove last entry on same controller if(urlController==historyController){ - console.log("same controller\n"+url+"\n"+history[0]) + console.log("same controller\n"+url+"\n"+history[0]) //var ignore=0; //provide back to series from series details //if(contains(url,'series')){ @@ -68,8 +68,8 @@ function isNewToHistory(url){ //console.log(ignore); //} //if (ignore==0) - //history.shift(); - return null; + //history.shift(); + return null; } diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index 8e4bcac..32cfba7 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -20,7 +20,7 @@ function updateActiveImage(){ // open dialog to show or edit image properties function updateImageEditor(elem, filename, target, project_id, studio_id, series_id, event_id, pid){ - var url='image.cgi?show='+filename; + var url='image.cgi?show='+filename; url += '&template=edit_image.html'; url += '&target=' + target; url += '&project_id='+project_id; @@ -31,12 +31,12 @@ function updateImageEditor(elem, filename, target, project_id, studio_id, series console.log("updateImageEditor "+url); - $("#img_editor").load( + $("#img_editor").load( url, function(){ setActiveImage(elem); } - ); + ); } // build search url and load @@ -80,11 +80,11 @@ function saveImage(id, filename) { $('#imageEditor #status').html(''); console.log("save image "+id+" "); - var url='image.cgi?save_image='+filename+'&project_id='+project_id+'&studio_id='+studio_id; - $.post( - url, - $("#save_img_"+id).serialize(), - function(data){ + var url='image.cgi?save_image='+filename+'&project_id='+project_id+'&studio_id='+studio_id; + $.post( + url, + $("#save_img_"+id).serialize(), + function(data){ var errorFound=0; data.split(/\n/).forEach( function(line){ @@ -102,10 +102,10 @@ function saveImage(id, filename) { $('#imageEditor #status').append('<div class="ok">saved</div>'); updateActiveImage(); } - hideImageDetails('img_'+id, filename); - } - ); - return false; + hideImageDetails('img_'+id, filename); + } + ); + return false; } // delete image @@ -120,20 +120,20 @@ function askDeleteImage(id, filename) { // delete image function deleteImage(id, filename) { //alert("deleteImage");return; - $("#"+id).load('image.cgi?delete_image='+filename+'&project_id='+project_id+'&studio_id='+studio_id); - hideImageDetails('img_'+id, filename); - $("#"+id).hide('drop'); - return false; + $("#"+id).load('image.cgi?delete_image='+filename+'&project_id='+project_id+'&studio_id='+studio_id); + hideImageDetails('img_'+id, filename); + $("#"+id).hide('drop'); + return false; } // close all open dialogs function hideImageDetails(id, filename){ - try{$('#img_editor').dialog('close');}catch(e){} + try{$('#img_editor').dialog('close');}catch(e){} var url='image.cgi?show='+filename+'&template=image_single.html&project_id='+project_id+'&studio_id='+studio_id; console.log("hideImageDetails, load url="+url) - $("#"+id).load(url); - return false; + $("#"+id).load(url); + return false; } function selectImage( searchValue, imageUrl, target, project_id, studio_id, series_id, event_id, pid){ diff --git a/website/agenda/planung/js/list_series.js b/website/agenda/planung/js/list_series.js index fa7c0d7..1da96b6 100644 --- a/website/agenda/planung/js/list_series.js +++ b/website/agenda/planung/js/list_series.js @@ -1,22 +1,22 @@ function add_series(){ - $('#edit_new').toggle(); - return false; + $('#edit_new').toggle(); + return false; } function view_series_details(series_id, studio_id, project_id){ - var elem=$('.series_details_'+series_id).prev(); - if(elem.hasClass('active')){ - elem.removeClass('active'); - $('.series_details_'+series_id).slideToggle( - function(){ - $('#series_details_'+series_id).html(''); - } - ); - }else{ - elem.addClass('active'); - var url="series.cgi?project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&action=show"; - load(url); - } + var elem=$('.series_details_'+series_id).prev(); + if(elem.hasClass('active')){ + elem.removeClass('active'); + $('.series_details_'+series_id).slideToggle( + function(){ + $('#series_details_'+series_id).html(''); + } + ); + }else{ + elem.addClass('active'); + var url="series.cgi?project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&action=show"; + load(url); + } } diff --git a/website/agenda/planung/js/localization-datetime.js b/website/agenda/planung/js/localization-datetime.js index 602e291..2b0719f 100644 --- a/website/agenda/planung/js/localization-datetime.js +++ b/website/agenda/planung/js/localization-datetime.js @@ -9,39 +9,39 @@ function initRegions(region){ return; } $.datepicker.regional['de'] = { - closeText: 'Schließen', - prevText: '<Zurück', - nextText: 'Vor>', - currentText: 'Heute', - monthNames: ['Januar','Februar','März','April','Mai','Juni', - 'Juli','August','September','Oktober','November','Dezember'], - monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', - 'Jul','Aug','Sep','Okt','Nov','Dez'], - dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], - dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], - dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], - weekHeader: 'KW', - dateFormat: 'dd.mm.yy', - firstDay: 1, - isRTL: false, - showMonthAfterYear: false, - yearSuffix: '' + closeText: 'Schließen', + prevText: '<Zurück', + nextText: 'Vor>', + currentText: 'Heute', + monthNames: ['Januar','Februar','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'], + monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dez'], + dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], + dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], + weekHeader: 'KW', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '' }; $.timepicker.regional['de'] = { - timeOnlyTitle: 'Zeit wählen', - timeText: 'Zeit', - hourText: 'Stunde', - minuteText: 'Minute', - secondText: 'Sekunde', - millisecText: 'Millisekunde', - timezoneText: 'Zeitzone', - currentText: 'Jetzt', - closeText: 'Schließen', - timeFormat: 'HH:mm', - amNames: ['AM', 'A'], - pmNames: ['PM', 'P'], - isRTL: false + timeOnlyTitle: 'Zeit wählen', + timeText: 'Zeit', + hourText: 'Stunde', + minuteText: 'Minute', + secondText: 'Sekunde', + millisecText: 'Millisekunde', + timezoneText: 'Zeitzone', + currentText: 'Jetzt', + closeText: 'Schließen', + timeFormat: 'HH:mm', + amNames: ['AM', 'A'], + pmNames: ['PM', 'P'], + isRTL: false }; $.datepicker.setDefaults($.datepicker.regional[ region ]); diff --git a/website/agenda/planung/js/projects.js b/website/agenda/planung/js/projects.js index e21b329..bfbf817 100644 --- a/website/agenda/planung/js/projects.js +++ b/website/agenda/planung/js/projects.js @@ -1,44 +1,44 @@ function edit_project_assignments(name){ - if ($('#assign_'+name).css('display')=='none'){ - $('#view_'+name).hide(); - $('#edit_'+name).hide(); - $('#assign_'+name).show(); - }else{ - cancel_edit_project_assignments(name); - } - return false; + if ($('#assign_'+name).css('display')=='none'){ + $('#view_'+name).hide(); + $('#edit_'+name).hide(); + $('#assign_'+name).show(); + }else{ + cancel_edit_project_assignments(name); + } + return false; } function cancel_edit_project_assignments(name){ - $('#edit_'+name).hide(); - $('#assign_'+name).hide(); - $('#view_'+name).show(); - return false; + $('#edit_'+name).hide(); + $('#assign_'+name).hide(); + $('#view_'+name).show(); + return false; } function edit_project(name){ - if ($('#edit_'+name).css('display')=='none'){ - $('#view_'+name).hide(); - $('#assign_'+name).hide(); - $('#edit_'+name).show(); - }else{ - cancel_edit_project(name); - } - return false; + if ($('#edit_'+name).css('display')=='none'){ + $('#view_'+name).hide(); + $('#assign_'+name).hide(); + $('#edit_'+name).show(); + }else{ + cancel_edit_project(name); + } + return false; } function cancel_edit_project(name){ - $('#edit_'+name).hide(); - $('#assign_'+name).hide(); - $('#view_'+name).show(); - return false; + $('#edit_'+name).hide(); + $('#assign_'+name).hide(); + $('#view_'+name).show(); + return false; } function add_project(){ - $('.editor').hide(); - $('#edit_new').show(); - return false; + $('.editor').hide(); + $('#edit_new').show(); + return false; } $(document).ready( diff --git a/website/agenda/planung/js/series.js b/website/agenda/planung/js/series.js index b05359a..bcb282f 100644 --- a/website/agenda/planung/js/series.js +++ b/website/agenda/planung/js/series.js @@ -1,81 +1,81 @@ function add_series(){ - $('#edit_new').toggle(); - return false; + $('#edit_new').toggle(); + return false; } function view_series_details(series_id, studio_id, project_id){ - var elem=$('.series_details_'+series_id).prev(); - if(elem.hasClass('active')){ - elem.removeClass('active'); - $('.series_details_'+series_id).slideToggle( - function(){ - $('#series_details_'+series_id).html(''); - } - ); - }else{ - elem.addClass('active'); - var url="series.cgi?project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&action=show"; - load(url); - } + var elem=$('.series_details_'+series_id).prev(); + if(elem.hasClass('active')){ + elem.removeClass('active'); + $('.series_details_'+series_id).slideToggle( + function(){ + $('#series_details_'+series_id).html(''); + } + ); + }else{ + elem.addClass('active'); + var url="series.cgi?project_id="+project_id+"&studio_id="+studio_id+"&series_id="+series_id+"&action=show"; + load(url); + } } /* function edit_series(name){ - if ($('#edit_'+name).css('display')=='none'){ - $('#edit_'+name).show(); - }else{ - cancel_edit_series(name); - } - return false; + if ($('#edit_'+name).css('display')=='none'){ + $('#edit_'+name).show(); + }else{ + cancel_edit_series(name); + } + return false; } function cancel_edit_series(name){ - $('#edit_'+name).hide(); - return false; + $('#edit_'+name).hide(); + return false; } /* function edit_scan(name){ - if ($('#scan_'+name).css('display')=='none'){ - $('#scan_'+name).show(); - }else{ - cancel_edit_scan(name); - } - return false; + if ($('#scan_'+name).css('display')=='none'){ + $('#scan_'+name).show(); + }else{ + cancel_edit_scan(name); + } + return false; } function cancel_edit_scan(name){ - $('#scan_'+name).hide(); - return false; + $('#scan_'+name).hide(); + return false; } function edit_schedule(name){ - if ($('#edit_schedule_'+name).css('display')=='none'){ - $('#edit_schedule_'+name).show(); - }else{ - cancel_edit_schedule(name); - } - return false; + if ($('#edit_schedule_'+name).css('display')=='none'){ + $('#edit_schedule_'+name).show(); + }else{ + cancel_edit_schedule(name); + } + return false; } function cancel_edit_schedule(name){ - $('#edit_schedule_'+name).hide(); - return false; + $('#edit_schedule_'+name).hide(); + return false; } function show_schedule(name){ - if ($('#show_schedule_'+name).css('display')=='none'){ - $('#show_schedule_'+name).show(); - }else{ - hide_schedule(name); - } - return false; + if ($('#show_schedule_'+name).css('display')=='none'){ + $('#show_schedule_'+name).show(); + }else{ + hide_schedule(name); + } + return false; } function hide_schedule(name){ - $('#show_schedule_'+name).hide(); - return false; + $('#show_schedule_'+name).hide(); + return false; } */ diff --git a/website/agenda/planung/js/studio_timeslots.js b/website/agenda/planung/js/studio_timeslots.js index 01e97b2..1ef179a 100644 --- a/website/agenda/planung/js/studio_timeslots.js +++ b/website/agenda/planung/js/studio_timeslots.js @@ -53,7 +53,7 @@ function initTable(){ scroller_jumpToHeader: true, scroller_idPrefix : 's_' }, - usNumberFormat : false + usNumberFormat : false }); $('.tablesorter-scroller-header').css('width','95%'); $('.tablesorter-scroller-table').css('width','95%'); @@ -62,51 +62,51 @@ function initTable(){ } $(document).ready( - function(){ - setupLocalization(function(){ - addBackButton(); - updateWeekdays(); - }); + function(){ + setupLocalization(function(){ + addBackButton(); + updateWeekdays(); + }); - $("#tabs").tabs({ - activate: function(){ - console.log("set style"); - $('.tablesorter-scroller-header').css('width','95%'); - $('.tablesorter-scroller-table').css('width','95%'); - $('.tablesorter-scroller-header table').css('width','95%'); - $('.tablesorter-scroller-table table').css('width','95%'); - } - }); - $('#tabs').removeClass('ui-widget ui-widget-content ui-corner-all'); + $("#tabs").tabs({ + activate: function(){ + console.log("set style"); + $('.tablesorter-scroller-header').css('width','95%'); + $('.tablesorter-scroller-table').css('width','95%'); + $('.tablesorter-scroller-header table').css('width','95%'); + $('.tablesorter-scroller-table table').css('width','95%'); + } + }); + $('#tabs').removeClass('ui-widget ui-widget-content ui-corner-all'); - initTextWidth(); + initTextWidth(); setTextWidth('.datetimepicker.start', 130); setTextWidth('.datetimepicker.end', 130); setTextWidth('.datetimepicker.end_date', 90); - setTextWidth('.datetimepicker.weekday', 20); - setTextWidth('.datetimepicker.frequency', 20); + setTextWidth('.datetimepicker.weekday', 20); + setTextWidth('.datetimepicker.frequency', 20); - initRegions(region); + initRegions(region); - showDateTimePicker('.datetimepicker.start', { - onSelect: function(){updateWeekdays();} - }); - showDateTimePicker('.datetimepicker.end', { - onSelect: function(){updateWeekdays();} - }); - showDatePicker('.datetimepicker.end_date', { - onSelect: function(){updateWeekdays();} - }); + showDateTimePicker('.datetimepicker.start', { + onSelect: function(){updateWeekdays();} + }); + showDateTimePicker('.datetimepicker.end', { + onSelect: function(){updateWeekdays();} + }); + showDatePicker('.datetimepicker.end_date', { + onSelect: function(){updateWeekdays();} + }); - setSelectedOptions(); + setSelectedOptions(); - showYearPicker('#show_date', { - onSelect: function(){ - showDates(); - } - }); - showDates(); + showYearPicker('#show_date', { + onSelect: function(){ + showDates(); + } + }); + showDates(); }); diff --git a/website/agenda/planung/js/studios.js b/website/agenda/planung/js/studios.js index e695c9d..ba61727 100644 --- a/website/agenda/planung/js/studios.js +++ b/website/agenda/planung/js/studios.js @@ -1,22 +1,22 @@ var region='<TMPL_VAR loc.region>'; function edit_studio(name){ - if ($('#edit_'+name).css('display')=='none'){ - $('#view_'+name).hide(); - $('#edit_'+name).show(); - }else{ - cancel_edit_studio(name); - } - return false; + if ($('#edit_'+name).css('display')=='none'){ + $('#view_'+name).hide(); + $('#edit_'+name).show(); + }else{ + cancel_edit_studio(name); + } + return false; } function add_studio(){ - $('.editor').hide(); - $('#edit_new').show(); - return false; + $('.editor').hide(); + $('#edit_new').show(); + return false; } function cancel_edit_studio(name){ - $('#edit_'+name).hide(); - $('#view_'+name).show(); - return false; + $('#edit_'+name).hide(); + $('#view_'+name).show(); + return false; } diff --git a/website/agenda/planung/logout.cgi b/website/agenda/planung/logout.cgi index 3673b4a..9e36805 100755 --- a/website/agenda/planung/logout.cgi +++ b/website/agenda/planung/logout.cgi @@ -1,4 +1,4 @@ -#! /usr/bin/perl +#!/usr/bin/perl print qq{HTTP/1.0 401 Unauthorized Request Version: HTTP/1.0 From 6622f2de8686d5f71a75c81f573536ddfea9c7f6 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 5 Oct 2019 18:08:53 +0200 Subject: [PATCH 089/391] user view: make headline separate line --- website/agenda/planung/css/default.css | 1 + 1 file changed, 1 insertion(+) diff --git a/website/agenda/planung/css/default.css b/website/agenda/planung/css/default.css index 07d3cdb..37c7b8d 100644 --- a/website/agenda/planung/css/default.css +++ b/website/agenda/planung/css/default.css @@ -199,6 +199,7 @@ div.editor { } #content div.panel-header { + clear: both; text-align: left; padding-left: 0; align-content: center; From 8b52c8ec4d2ebd4b417d6bd3c492baba9eaea25c Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 5 Oct 2019 18:09:34 +0200 Subject: [PATCH 090/391] user view: fix undef error --- website/agenda/planung/js/edit_series.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/agenda/planung/js/edit_series.js b/website/agenda/planung/js/edit_series.js index c6c8100..32707f1 100644 --- a/website/agenda/planung/js/edit_series.js +++ b/website/agenda/planung/js/edit_series.js @@ -208,7 +208,9 @@ function setInputWidth(){ } function checkExcerptField(){ - var length = $('textarea[name="excerpt"]').val().length; + var elem = $('textarea[name="excerpt"]'); + if (elem.length==0) return; + var length = elem.val().length; console.log("length="+length); if (length > 250){ $('#excerpt_too_long').show(); From 29103161b2a59278da85e0a0d775161d21af589b Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 5 Oct 2019 18:10:15 +0200 Subject: [PATCH 091/391] load image editor for selected image --- website/agenda/planung/js/image.js | 1 + 1 file changed, 1 insertion(+) diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index 32cfba7..b5b3e3d 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -204,6 +204,7 @@ $(document).ready( if ( window.location.href.indexOf("&filename=") > 0) setActiveImage(); + updateActiveImage(); } ); From ce59e89420fb1e2716d1c05c1c47ba5989623290 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sat, 5 Oct 2019 18:11:04 +0200 Subject: [PATCH 092/391] improve image related messages --- website/agenda/planung/pot/de/image.po | 15 +++++++++------ website/agenda/planung/pot/en/image.po | 11 +++++++---- website/agenda/planung/templates/edit_image.html | 2 +- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/website/agenda/planung/pot/de/image.po b/website/agenda/planung/pot/de/image.po index 42bc966..049720b 100644 --- a/website/agenda/planung/pot/de/image.po +++ b/website/agenda/planung/pot/de/image.po @@ -32,7 +32,7 @@ msgid "button_depublish" msgstr "Depublizieren" msgid "label_warn_unknown_licence" -msgstr "Kann nicht veröffentlicht werden, da keine Lizenz angegeben wurde" +msgstr "Angabe der Lizenz ermöglicht Veröffentlichung des Bildes." msgid "label_name" msgstr "Name" @@ -74,11 +74,14 @@ msgid "label_name_required" msgstr "Bitte Feld eintragen" msgid "label_licence_required" -msgstr "Bild kann ohne Lizenzangabe nicht veröffentlicht werden" +msgstr "Bild kann ohne Author/Lizenz nicht veröffentlicht werden" msgid "label_mandatory_field" msgstr "bitte füllen Sie dieses Feld aus" +msgid "label_mandatory_field_licence" +msgstr "Angabe der Lizenz ermöglicht Veröffentlichung des Bildes" + msgid "label_assign_to_event" msgstr "Dieses Bild für Sendung nutzen" @@ -92,15 +95,15 @@ msgid "label_assign_to_project" msgstr "Dieses Bild für Projekt nutzen" msgid "label_warn_not_public_event" -msgstr "Kann Sendung nicht zugewiesen werden, da nicht veröffentlicht" +msgstr "Bild muss veröffentlicht werden, um es in Sendebeschreibung zu nutzen." msgid "label_warn_not_public_series" -msgstr "Kann Sendereihe nicht zugewiesen werden, da nicht veröffentlicht" +msgstr "Bild muss veröffentlicht werden, um es in Sendebeschreibung zu nutzen." msgid "label_warn_not_public_studio" -msgstr "Kann Studio nicht zugewiesen werden, da nicht veröffentlicht" +msgstr "Bild muss veröffentlicht werden, um es für Studio zu nutzen." msgid "label_warn_not_public_project" -msgstr "Kann Projekt nicht zugewiesen werden, da nicht veröffentlicht" +msgstr "Bild muss veröffentlicht werden, um es in Projekt zu nutzen." diff --git a/website/agenda/planung/pot/en/image.po b/website/agenda/planung/pot/en/image.po index e17c9fb..a6829a4 100644 --- a/website/agenda/planung/pot/en/image.po +++ b/website/agenda/planung/pot/en/image.po @@ -80,6 +80,9 @@ msgstr "image cannot be published without license" msgid "label_mandatory_field" msgstr "please fill in" +msgid "label_mandatory_field_licence" +msgstr "fill in licence to allow publishing the image" + msgid "label_assign_to_event" msgstr "use image for event" @@ -93,14 +96,14 @@ msgid "label_assign_to_project" msgstr "use image for project" msgid "label_warn_not_public_event" -msgstr "Cannot be assigned to event without have been published" +msgstr "image must has been published before assigning to event" msgid "label_warn_not_public_series" -msgstr "Cannot be assigned to series without have been published" +msgstr "image must has been published before assigning to series" msgid "label_warn_not_public_studio" -msgstr "Cannot be assigned to studio without have been published" +msgstr "image must has been published before assigning to studio" msgid "label_warn_not_public_project" -msgstr "Cannot be assigned to project without have been published" +msgstr "image must has been published before assigning to project" diff --git a/website/agenda/planung/templates/edit_image.html b/website/agenda/planung/templates/edit_image.html index 01f0fd2..5133356 100644 --- a/website/agenda/planung/templates/edit_image.html +++ b/website/agenda/planung/templates/edit_image.html @@ -43,7 +43,7 @@ found no image <input value="<TMPL_VAR name escape=none>" name="update_name" class="field" placeholder="<TMPL_VAR .loc.label_mandatory_field>"><br> <label><TMPL_VAR .loc.label_author>/<TMPL_VAR .loc.label_licence></label><br> - <input name="licence" value="<TMPL_VAR licence>" class="field<TMPL_IF missing_licence> error</TMPL_IF>" placeholder="<TMPL_VAR .loc.label_mandatory_field>" required/><br> + <input name="licence" value="<TMPL_VAR licence>" class="field<TMPL_IF missing_licence> error</TMPL_IF>" placeholder="<TMPL_VAR .loc.label_mandatory_field_licence>" required/><br> <label><TMPL_VAR .loc.label_description></label><br> <textarea class="field" name="update_description" cols="50" rows="5" ><TMPL_VAR description escape=none></textarea><br> From a7828b52d9c202209ae5c01819eeea638231a092 Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 6 Oct 2019 16:58:25 +0200 Subject: [PATCH 093/391] user sessions: use database instead of filesystem User sessions will be stored in database and not in files anymore. CGI::Session is not used anymore for this purpose. The new module user_sessions.pm provides functions on new database table user_sessions. --- install/create.sql | 24 ++++ lib/calcms/auth.pm | 75 ++++++------ lib/calcms/user_sessions.pm | 231 ++++++++++++++++++++++++++++++++++++ lib/calcms/user_settings.pm | 3 +- 4 files changed, 290 insertions(+), 43 deletions(-) create mode 100644 lib/calcms/user_sessions.pm diff --git a/install/create.sql b/install/create.sql index 3c23393..9adf0ef 100644 --- a/install/create.sql +++ b/install/create.sql @@ -1179,6 +1179,28 @@ CREATE TABLE `calcms_work_schedule` ( LOCK TABLES `calcms_work_schedule` WRITE; /*!40000 ALTER TABLE `calcms_work_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `calcms_work_schedule` ENABLE KEYS */; + +DROP TABLE IF EXISTS `calcms_user_sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `calcms_user_sessions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` varchar(64) NOT NULL, + `user` varchar(30) NOT NULL, + `start` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `end` timestamp NULL DEFAULT NULL, + `expires_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `timeout` int(10) unsigned NOT NULL, + `pid` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `id_UNIQUE` (`id`), + UNIQUE KEY `session_id_UNIQUE` (`session_id`), + KEY `user` (`user`), + KEY `session_id` (`session_id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + + UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -1191,3 +1213,5 @@ UNLOCK TABLES; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2018-01-14 17:23:51 + + diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index c8df203..6fbc270 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -5,22 +5,19 @@ use warnings; no warnings 'redefine'; use CGI::Simple(); -use CGI::Session qw(-ip-match); use CGI::Cookie(); -#$CGI::Session::IP_MATCH=1; use Data::Dumper; use Authen::Passphrase::BlowfishCrypt(); - use time(); +use user_sessions (); use base 'Exporter'; our @EXPORT_OK = qw(get_user login logout crypt_password); my $defaultExpiration = 60; -my $tmp_dir = '/var/tmp/calcms-session'; -my $debug = 0; -sub debug; +my $debug = 0; +sub debug($); #TODO: remove CGI sub get_user($$$) { @@ -38,7 +35,7 @@ sub get_user($$$) { return $user; } elsif ( $params->{authAction} eq 'logout' ) { $cgi = new CGI::Simple() unless defined $cgi; - logout($cgi); + logout($config, $cgi); $cgi->delete( 'user', 'password', 'uri', 'authAction' ); return undef; } @@ -51,14 +48,13 @@ sub get_user($$$) { return show_login_form( $params->{user}, 'Please login' ) unless defined $session_id; # read session - my $session = read_session($session_id); + my $session = read_session($config, $session_id); # login if user not found return show_login_form( $params->{user}, 'unknown User' ) unless defined $session; $params->{user} = $session->{user}; $params->{expires} = $session->{expires}; - debug( $params->{expires} ); return $session->{user}, $session->{expires}; } @@ -82,29 +78,28 @@ sub login($$$) { my $password = shift; debug("login") if $debug; - #print STDERR "login $user $password\n"; my $result = authenticate( $config, $user, $password ); - #print STDERR Dumper($result); - return show_login_form( $user, 'Could not authenticate you' ) unless defined $result; return unless defined $result->{login} eq '1'; my $timeout = $result->{timeout} || $defaultExpiration; - $timeout = '+' . $timeout . 'm'; + my $session_id = create_session( $config, $user, $timeout * 60 ); - my $session_id = create_session( $user, $password, $timeout ); + # here timeout is in minutes + $timeout = '+' . $timeout . 'm'; return $user if create_cookie( $session_id, $timeout ); return undef; } #TODO: remove cgi -sub logout($) { +sub logout($$) { + my $config = shift; my $cgi = shift; my $session_id = read_cookie(); debug("logout") if $debug; - unless ( delete_session($session_id) ) { + unless ( delete_session($config, $session_id) ) { return show_login_form( 'Cant delete session', 'logged out' ); } unless ( delete_cookie($cgi) ) { @@ -127,8 +122,7 @@ sub create_cookie($$) { -expires => $timeout, -secure => 1 ); - print "Set-Cookie: ", $cookie->as_string, "\n"; - print STDERR "#Set-Cookie: ", $cookie->as_string, "\n"; + print "Set-Cookie: " . $cookie->as_string . "\n"; return 1; } @@ -160,49 +154,46 @@ sub delete_cookie($) { } # read and write server-side session data -# expiration is in seconds +# timeout is in seconds sub create_session ($$$) { + my $config = shift; my $user = shift; - my $password = shift; - my $expiration = shift; + my $timeout = shift; debug("create_session") if $debug; - mkdir $tmp_dir unless -e $tmp_dir; - my $session = CGI::Session->new( undef, undef, { Directory => $tmp_dir } ); - $session->expire($expiration); - $session->param( "user", $user ); - $session->param( "pid", $$ ); - - return $session->id(); + + my $session_id = user_sessions::start( + $config, { + user => $user, + timeout => $timeout, + } + ); + return $session_id; } -sub read_session($) { +sub read_session($$) { + my $config = shift; my $session_id = shift; - debug("read_session") if $debug; return undef unless defined $session_id; - debug("read_session2") if $debug; - my $session = CGI::Session->new( undef, $session_id, { Directory => $tmp_dir } ); + my $session = user_sessions::check( $config, { session_id => $session_id } ); return undef unless defined $session; - debug("read_session3") if $debug; - my $user = $session->param("user") || undef; - return undef unless defined $user; - my $expires = time::time_to_datetime( $session->param("_SESSION_ATIME") + $session->param("_SESSION_ETIME") ); return { - user => $user, - expires => $expires + user => $session->{user}, + expires => $session->{expires_at} }; } -sub delete_session($) { +sub delete_session($$) { + my $config = shift; my $session_id = shift; debug("delete_session") if $debug; - return undef unless ( defined $session_id ); - my $session = CGI::Session->new( undef, $session_id, { Directory => $tmp_dir } ); - $session->delete(); + return undef unless defined $session_id; + + user_sessions::stop( $config, { session_id => $session_id } ); return 1; } diff --git a/lib/calcms/user_sessions.pm b/lib/calcms/user_sessions.pm new file mode 100644 index 0000000..8954eda --- /dev/null +++ b/lib/calcms/user_sessions.pm @@ -0,0 +1,231 @@ +package user_sessions; + +use strict; +use warnings; +no warnings 'redefine'; + +use Digest::MD5(); + +use time; + +# access user name by session id + +# table: calcms_user_sessions +# columns: id, +# user, +# timeout, +# pid, +# start (timestamp), +# end (timestamp), + +use base 'Exporter'; +our @EXPORT_OK = qw(get_columns get insert update delete); + +sub debug; + +sub get_columns($) { + my $config = shift; + + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_user_sessions' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; +} + +#map schedule id to id +sub get($$) { + my $config = shift; + my $condition = shift; + + my $dbh = db::connect($config); + + my @conditions = (); + my @bind_values = (); + + if ( ( defined $condition->{id} ) && ( $condition->{id} ne '' ) ) { + push @conditions, 'id=?'; + push @bind_values, $condition->{id}; + } + + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } + + if ( ( defined $condition->{session_id} ) && ( $condition->{session_id} ne '' ) ) { + push @conditions, 'session_id=?'; + push @bind_values, $condition->{session_id}; + } + + if ( ( defined $condition->{start} ) && ( $condition->{start} ne '' ) ) { + push @conditions, 'start>?'; + push @bind_values, $condition->{start}; + } + + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if @conditions; + + my $query = qq{ + select * + from calcms_user_sessions + $conditions + order by start + }; + + my $entries = db::get( $dbh, $query, \@bind_values ); + return $entries; +} + +# insert entry and return database id +sub insert ($$) { + my $config = shift; + my $entry = shift; + + return undef unless defined $entry->{user}; + return undef unless defined $entry->{timeout}; + + unless ( defined $entry->{session_id} ) { + my $md5 = Digest::MD5->new(); + $md5->add( $$, time(), rand(time) ); + $entry->{session_id} = $md5->hexdigest(); + } + + $entry->{pid} = $$; + $entry->{expires_at} = time::time_to_datetime( time() + $entry->{timeout} ); + + my $dbh = db::connect($config); + return db::insert( $dbh, 'calcms_user_sessions', $entry ); +} + +# start session and return generated session id +sub start($$) { + my $config = shift; + my $entry = shift; + + return undef unless defined $entry->{user}; + return undef unless defined $entry->{timeout}; + + my $id = insert( + $config, + { + user => $entry->{user}, + timeout => $entry->{timeout}, + } + ); + return undef unless defined $id; + + my $sessions = get( $config, { id => $id } ); + return undef unless defined $sessions; + + my $session = $sessions->[0]; + return undef unless defined $session; + + return $session->{session_id}; +} + +# expand session by timeout +sub keep_alive ($$) { + my $config = shift; + my $entry = shift; + + return undef unless defined $entry; + + $entry->{pid} = $$; + $entry->{expires_at} = time::time_to_datetime( time() + $entry->{timeout} ); + + my $dbh = db::connect($config); + return update( $config, $entry ); +} + +# get session by session id and expand session if valid +sub check($$) { + my $config = shift; + my $entry = shift; + + return undef unless defined $entry; + my $entries = get( $config, { session_id => $entry->{session_id} } ); + return undef unless defined $entry; + + $entry = $entries->[0]; + return undef unless defined $entry; + + my $now = time::time_to_datetime( time() ); + return undef unless defined $entry->{expires_at}; + return undef unless defined $entry->{user}; + + return undef if $entry->{expires_at} le $now; + return undef if $entry->{end} && ( $entry->{end} le $now ); + + keep_alive( $config, $entry ); + return $entry; +} + +# stop session +sub stop ($$) { + my $config = shift; + my $entry = shift; + + return undef unless defined $entry; + + my $entries = get( $config, { session_id => $entry->{session_id} } ); + return undef unless defined $entries; + + $entry = $entries->[0]; + return undef unless defined $entry; + + $entry->{end} = time::time_to_datetime( time() ); + + my $dbh = db::connect($config); + return update( $config, $entry ); +} + +#schedule id to id +sub update ($$) { + my $config = shift; + my $entry = shift; + + return undef unless defined $entry->{session_id}; + + my $dbh = db::connect($config); + my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); + my @bind_values = map { $entry->{$_} } ( keys %$entry ); + + push @bind_values, $entry->{session_id}; + + my $query = qq{ + update calcms_user_sessions + set $values + where session_id=? + }; + return db::put( $dbh, $query, \@bind_values ); +} + +#map schedule id to id +sub delete($$) { + my $config = shift; + my $entry = shift; + + return undef unless defined $entry->{session_id}; + + my $dbh = db::connect($config); + + my $query = qq{ + delete + from calcms_user_sessions + where session_id=? + }; + my $bind_values = [ $entry->{session_id} ]; + + return db::put( $dbh, $query, $bind_values ); +} + +sub error($) { + my $msg = shift; + print "ERROR: $msg<br/>\n"; +} + +#do not delete last line! +1; diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 5e71dca..732d8c5 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -176,7 +176,8 @@ sub insert ($$) { my $config = shift; my $entry = shift; - return unless ( defined $entry->{user} ); + return unless defined $entry->{user}; + my $dbh = db::connect($config); return db::insert( $dbh, 'calcms_user_settings', $entry ); } From 72b0408515de5b64ef5809d6fb1e5cb022a54d2f Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Sun, 6 Oct 2019 21:44:43 +0200 Subject: [PATCH 094/391] db.pm: connection cache --- lib/calcms/db.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index 81184e3..5a63c67 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -5,6 +5,7 @@ use warnings; no warnings 'redefine'; use DBD::mysql(); +use Digest::MD5 qw(); use Data::Dumper; use base 'Exporter'; @@ -46,10 +47,12 @@ sub connect($;$) { $password = $access_options->{password_write}; } - my $dbh = undef; my $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port"; - $dbh = DBI->connect( $dsn, $username, $password, { mysql_enable_utf8 => 1 } ) + my $key = Digest::MD5::md5($dsn.$username.$password); + return $options->{connections}->{$key} if defined $options->{connections}->{$key}; + + my $dbh = DBI->connect( $dsn, $username, $password, { mysql_enable_utf8 => 1 } ) || die "could not connect to database: $DBI::errstr"; $dbh->{RaiseError} = 1; @@ -60,6 +63,7 @@ sub connect($;$) { put( $dbh, "set time_zone='" . $options->{date}->{time_zone} . "'" ); $request->{connection} = $dbh; + $options->{connections}->{$key} = $dbh; return $dbh; } From c93b394307211c1c61530cb83f31fa538ad3052a Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Thu, 17 Oct 2019 20:13:14 +0200 Subject: [PATCH 095/391] fix comment statistics --- lib/calcms/comments.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 2396abf..7b5d8fc 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -509,7 +509,7 @@ sub set_lock_status ($$$) { my $comments = db::get( $dbh, $query, $bind_values ); if ( scalar @$comments > 0 ) { $comment->{event_id} = $comments->[0]->{event_id}; - update_comment_count( $dbh, $comment ); + update_comment_count( $dbh, $config, $comment ); } } From 9792336ac83277ee6f98d91c4410dc1b3cd0adbf Mon Sep 17 00:00:00 2001 From: Milan <mc@radiopiloten.de> Date: Thu, 17 Oct 2019 20:22:10 +0200 Subject: [PATCH 096/391] filenames use kebab-case for file names remove camelCase and snake_case --- lib/calcms/auth.pm | 2 +- lib/calcms/password_requests.pm | 2 +- .../planung/{assign_series.cgi => assign-series.cgi} | 2 +- .../{audio_recordings.cgi => audio-recordings.cgi} | 6 +++--- website/agenda/planung/comment.cgi | 2 +- .../planung/{create_events.cgi => create-events.cgi} | 2 +- .../{audio_recordings.css => audio-recordings.css} | 0 .../planung/css/{list_series.css => list-series.css} | 0 .../{studio_timeslots.css => studio-timeslots.css} | 0 website/agenda/planung/css/wiki_preview.css | 4 ---- .../planung/css/{work_time.css => work-time.css} | 0 .../planung/{event_history.cgi => event-history.cgi} | 6 +++--- website/agenda/planung/event.cgi | 4 ++-- website/agenda/planung/image-upload.cgi | 2 +- website/agenda/planung/image.cgi | 4 ++-- .../js/{audio_recordings.js => audio-recordings.js} | 2 +- website/agenda/planung/js/calendar.js | 2 +- .../planung/js/{edit_event.js => edit-event.js} | 0 .../planung/js/{edit_image.js => edit-image.js} | 0 .../planung/js/{edit_series.js => edit-series.js} | 0 .../planung/js/{image_upload.js => image-upload.js} | 2 +- website/agenda/planung/js/image.js | 4 ++-- .../planung/js/{list_series.js => list-series.js} | 0 .../{page_leave_handler.js => page-leave-handler.js} | 0 .../js/{studio_timeslots.js => studio-timeslots.js} | 2 +- .../planung/{notify_events.cgi => notify-events.cgi} | 4 ++-- .../de/{audio_recordings.po => audio-recordings.po} | 0 .../pot/de/{create_events.po => create-events.po} | 0 .../pot/de/{event_history.po => event-history.po} | 0 .../pot/de/{notify_events.po => notify-events.po} | 0 .../pot/de/{selectEvent.po => select-event.po} | 0 .../pot/de/{selectSeries.po => select-series.po} | 0 .../de/{studio_timeslots.po => studio-timeslots.po} | 0 .../pot/de/{user_settings.po => user-settings.po} | 0 .../planung/pot/de/{user_stats.po => user-stats.po} | 0 .../planung/pot/de/{work_time.po => work-time.po} | 0 .../en/{audio_recordings.po => audio-recordings.po} | 0 .../pot/en/{create_events.po => create-events.po} | 0 .../pot/en/{event_history.po => event-history.po} | 0 .../pot/en/{notify_events.po => notify-events.po} | 0 .../pot/en/{selectEvent.po => select-event.po} | 0 .../pot/en/{selectSeries.po => select-series.po} | 0 .../en/{studio_timeslots.po => studio-timeslots.po} | 0 .../pot/en/{user_settings.po => user-settings.po} | 0 .../planung/pot/en/{user_stats.po => user-stats.po} | 0 .../planung/pot/en/{work_time.po => work-time.po} | 0 .../{requestPassword.cgi => request-password.cgi} | 2 +- website/agenda/planung/select-event.cgi | 4 ++-- website/agenda/planung/select-series.cgi | 4 ++-- website/agenda/planung/series.cgi | 8 ++++---- website/agenda/planung/show-playout.cgi | 2 +- .../{studio_timeslots.cgi => studio-timeslots.cgi} | 12 ++++++------ .../templates/{ajax_header.html => ajax-header.html} | 0 .../{assign_series.html => assign-series.html} | 4 ++-- .../{change_password.html => change-password.html} | 0 website/agenda/planung/templates/comments.html | 4 ++-- .../{create_events.html => create-events.html} | 0 website/agenda/planung/templates/default.html | 6 +++--- .../{edit_comment.html => edit-comment.html} | 0 .../templates/{edit_event.html => edit-event.html} | 8 ++++---- .../templates/{edit_image.html => edit-image.html} | 4 ++-- .../templates/{edit_series.html => edit-series.html} | 2 +- .../{edit_user_roles.html => edit-user-roles.html} | 0 .../{edit_work_time.html => edit-work-time.html} | 6 +++--- .../templates/{error_log.html => error-log.html} | 0 .../{event_history.html => event-history.html} | 2 +- .../templates/{header_head.html => header-head.html} | 0 website/agenda/planung/templates/header.html | 2 +- .../{image_single.html => image-single.html} | 0 website/agenda/planung/templates/image-upload.html | 2 +- website/agenda/planung/templates/image.html | 4 ++-- .../{notify_daily.html => notify-daily.html} | 0 .../templates/{notify_daily.txt => notify-daily.txt} | 0 .../{notify_events.html => notify-events.html} | 4 ++-- .../{notify_overview.html => notify-overview.html} | 0 .../{notify_overview.txt => notify-overview.txt} | 0 .../{show_playout.html => show-playout.html} | 0 ...imeslot_dates.html => studio-timeslot-dates.html} | 0 .../{studio_timeslots.html => studio-timeslots.html} | 4 ++-- website/agenda/planung/templates/studios.html | 2 +- ..._recordings.html => upload-audio-recordings.html} | 0 .../{user_settings.html => user-settings.html} | 0 .../templates/{user_stats.html => user-stats.html} | 0 .../planung/{user_settings.cgi => user-settings.cgi} | 4 ++-- .../planung/{user_stats.cgi => user-stats.cgi} | 4 ++-- website/agenda/planung/users.cgi | 2 +- .../agenda/planung/{work_time.cgi => work-time.cgi} | 4 ++-- 87 files changed, 74 insertions(+), 78 deletions(-) rename website/agenda/planung/{assign_series.cgi => assign-series.cgi} (99%) rename website/agenda/planung/{audio_recordings.cgi => audio-recordings.cgi} (98%) rename website/agenda/planung/{create_events.cgi => create-events.cgi} (99%) rename website/agenda/planung/css/{audio_recordings.css => audio-recordings.css} (100%) rename website/agenda/planung/css/{list_series.css => list-series.css} (100%) rename website/agenda/planung/css/{studio_timeslots.css => studio-timeslots.css} (100%) delete mode 100644 website/agenda/planung/css/wiki_preview.css rename website/agenda/planung/css/{work_time.css => work-time.css} (100%) rename website/agenda/planung/{event_history.cgi => event-history.cgi} (98%) rename website/agenda/planung/js/{audio_recordings.js => audio-recordings.js} (99%) rename website/agenda/planung/js/{edit_event.js => edit-event.js} (100%) rename website/agenda/planung/js/{edit_image.js => edit-image.js} (100%) rename website/agenda/planung/js/{edit_series.js => edit-series.js} (100%) rename website/agenda/planung/js/{image_upload.js => image-upload.js} (96%) rename website/agenda/planung/js/{list_series.js => list-series.js} (100%) rename website/agenda/planung/js/{page_leave_handler.js => page-leave-handler.js} (100%) rename website/agenda/planung/js/{studio_timeslots.js => studio-timeslots.js} (98%) rename website/agenda/planung/{notify_events.cgi => notify-events.cgi} (98%) rename website/agenda/planung/pot/de/{audio_recordings.po => audio-recordings.po} (100%) rename website/agenda/planung/pot/de/{create_events.po => create-events.po} (100%) rename website/agenda/planung/pot/de/{event_history.po => event-history.po} (100%) rename website/agenda/planung/pot/de/{notify_events.po => notify-events.po} (100%) rename website/agenda/planung/pot/de/{selectEvent.po => select-event.po} (100%) rename website/agenda/planung/pot/de/{selectSeries.po => select-series.po} (100%) rename website/agenda/planung/pot/de/{studio_timeslots.po => studio-timeslots.po} (100%) rename website/agenda/planung/pot/de/{user_settings.po => user-settings.po} (100%) rename website/agenda/planung/pot/de/{user_stats.po => user-stats.po} (100%) rename website/agenda/planung/pot/de/{work_time.po => work-time.po} (100%) rename website/agenda/planung/pot/en/{audio_recordings.po => audio-recordings.po} (100%) rename website/agenda/planung/pot/en/{create_events.po => create-events.po} (100%) rename website/agenda/planung/pot/en/{event_history.po => event-history.po} (100%) rename website/agenda/planung/pot/en/{notify_events.po => notify-events.po} (100%) rename website/agenda/planung/pot/en/{selectEvent.po => select-event.po} (100%) rename website/agenda/planung/pot/en/{selectSeries.po => select-series.po} (100%) rename website/agenda/planung/pot/en/{studio_timeslots.po => studio-timeslots.po} (100%) rename website/agenda/planung/pot/en/{user_settings.po => user-settings.po} (100%) rename website/agenda/planung/pot/en/{user_stats.po => user-stats.po} (100%) rename website/agenda/planung/pot/en/{work_time.po => work-time.po} (100%) rename website/agenda/planung/{requestPassword.cgi => request-password.cgi} (99%) rename website/agenda/planung/{studio_timeslots.cgi => studio-timeslots.cgi} (97%) rename website/agenda/planung/templates/{ajax_header.html => ajax-header.html} (100%) rename website/agenda/planung/templates/{assign_series.html => assign-series.html} (94%) rename website/agenda/planung/templates/{change_password.html => change-password.html} (100%) rename website/agenda/planung/templates/{create_events.html => create-events.html} (100%) rename website/agenda/planung/templates/{edit_comment.html => edit-comment.html} (100%) rename website/agenda/planung/templates/{edit_event.html => edit-event.html} (98%) rename website/agenda/planung/templates/{edit_image.html => edit-image.html} (96%) rename website/agenda/planung/templates/{edit_series.html => edit-series.html} (99%) rename website/agenda/planung/templates/{edit_user_roles.html => edit-user-roles.html} (100%) rename website/agenda/planung/templates/{edit_work_time.html => edit-work-time.html} (98%) rename website/agenda/planung/templates/{error_log.html => error-log.html} (100%) rename website/agenda/planung/templates/{event_history.html => event-history.html} (99%) rename website/agenda/planung/templates/{header_head.html => header-head.html} (100%) rename website/agenda/planung/templates/{image_single.html => image-single.html} (100%) rename website/agenda/planung/templates/{notify_daily.html => notify-daily.html} (100%) rename website/agenda/planung/templates/{notify_daily.txt => notify-daily.txt} (100%) rename website/agenda/planung/templates/{notify_events.html => notify-events.html} (96%) rename website/agenda/planung/templates/{notify_overview.html => notify-overview.html} (100%) rename website/agenda/planung/templates/{notify_overview.txt => notify-overview.txt} (100%) rename website/agenda/planung/templates/{show_playout.html => show-playout.html} (100%) rename website/agenda/planung/templates/{studio_timeslot_dates.html => studio-timeslot-dates.html} (100%) rename website/agenda/planung/templates/{studio_timeslots.html => studio-timeslots.html} (98%) rename website/agenda/planung/templates/{upload_audio_recordings.html => upload-audio-recordings.html} (100%) rename website/agenda/planung/templates/{user_settings.html => user-settings.html} (100%) rename website/agenda/planung/templates/{user_stats.html => user-stats.html} (100%) rename website/agenda/planung/{user_settings.cgi => user-settings.cgi} (99%) rename website/agenda/planung/{user_stats.cgi => user-stats.cgi} (97%) rename website/agenda/planung/{work_time.cgi => work-time.cgi} (99%) diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index 6fbc270..50c499b 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -246,7 +246,7 @@ sub show_login_form ($$) { if ( ( $user ne '' ) && ( $message ne '' ) ) { $requestReset = qq{ - <a href="requestPassword.cgi?user=$user">Passwort vergessen?</a> + <a href="request-password.cgi?user=$user">Passwort vergessen?</a> }; } diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm index 1060069..e94d157 100644 --- a/lib/calcms/password_requests.pm +++ b/lib/calcms/password_requests.pm @@ -155,7 +155,7 @@ sub sendToken ($$) { $entry->{token} = Session::Token->new->get; my $baseUrl = $config->{locations}->{source_base_url} . $config->{locations}->{editor_base_url}; - my $url = $baseUrl . "/requestPassword.cgi?token=" . $entry->{token}; + my $url = $baseUrl . "/request-password.cgi?token=" . $entry->{token}; my $content = "Hi,$user->{full_name}\n\n"; $content .= "Someone just tried to reset your password for $baseUrl.\n\n"; $content .= "If you like to set a new password, please follow the link below\n"; diff --git a/website/agenda/planung/assign_series.cgi b/website/agenda/planung/assign-series.cgi similarity index 99% rename from website/agenda/planung/assign_series.cgi rename to website/agenda/planung/assign-series.cgi index f80499a..8de15c6 100755 --- a/website/agenda/planung/assign_series.cgi +++ b/website/agenda/planung/assign-series.cgi @@ -238,7 +238,7 @@ sub check_params { $checked->{studio_id} = -1; } - $checked->{template} = template::check( $config, $params->{template}, 'assign_series' ); + $checked->{template} = template::check( $config, $params->{template}, 'assign-series' ); return $checked; } diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio-recordings.cgi similarity index 98% rename from website/agenda/planung/audio_recordings.cgi rename to website/agenda/planung/audio-recordings.cgi index 4e5541a..b4c4433 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio-recordings.cgi @@ -90,8 +90,8 @@ template::process( $config, 'print', template::check( $config, 'default.html' ), exit unless uac::check( $config, $params, $user_presets ) == 1; print q{ - <script src="js/audio_recordings.js" type="text/javascript"></script> - <link rel="stylesheet" href="css/audio_recordings.css" type="text/css" /> + <script src="js/audio-recordings.js" type="text/javascript"></script> + <link rel="stylesheet" href="css/audio-recordings.css" type="text/css" /> } unless (params::isJson); my $permissions = $request->{permissions}; @@ -557,7 +557,7 @@ sub check_params { my $checked = {}; $checked->{error} = ''; $checked->{template} = - template::check( $config, $params->{template}, 'upload_audio_recordings' ); + template::check( $config, $params->{template}, 'upload-audio-recordings' ); #print Dumper($params); #numeric values diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 0ec88a9..cbf3683 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -254,7 +254,7 @@ sub check_params { #template my $template = ''; if ( defined $checked->{action} ) { - $template = template::check( $config, $params->{template}, 'edit_comment' ) + $template = template::check( $config, $params->{template}, 'edit-comment' ) if $checked->{action} eq 'showComment'; } else { $template = template::check( $config, $params->{template}, 'comments' ); diff --git a/website/agenda/planung/create_events.cgi b/website/agenda/planung/create-events.cgi similarity index 99% rename from website/agenda/planung/create_events.cgi rename to website/agenda/planung/create-events.cgi index 6150ce9..296507d 100755 --- a/website/agenda/planung/create_events.cgi +++ b/website/agenda/planung/create-events.cgi @@ -232,7 +232,7 @@ sub check_params { $checked->{studio_id} = -1; } - $checked->{template} = template::check( $config, $params->{template}, 'create_events' ); + $checked->{template} = template::check( $config, $params->{template}, 'create-events' ); return $checked; } diff --git a/website/agenda/planung/css/audio_recordings.css b/website/agenda/planung/css/audio-recordings.css similarity index 100% rename from website/agenda/planung/css/audio_recordings.css rename to website/agenda/planung/css/audio-recordings.css diff --git a/website/agenda/planung/css/list_series.css b/website/agenda/planung/css/list-series.css similarity index 100% rename from website/agenda/planung/css/list_series.css rename to website/agenda/planung/css/list-series.css diff --git a/website/agenda/planung/css/studio_timeslots.css b/website/agenda/planung/css/studio-timeslots.css similarity index 100% rename from website/agenda/planung/css/studio_timeslots.css rename to website/agenda/planung/css/studio-timeslots.css diff --git a/website/agenda/planung/css/wiki_preview.css b/website/agenda/planung/css/wiki_preview.css deleted file mode 100644 index a4caa26..0000000 --- a/website/agenda/planung/css/wiki_preview.css +++ /dev/null @@ -1,4 +0,0 @@ -form table { - margin: 6px; - padding: 6px; -} \ No newline at end of file diff --git a/website/agenda/planung/css/work_time.css b/website/agenda/planung/css/work-time.css similarity index 100% rename from website/agenda/planung/css/work_time.css rename to website/agenda/planung/css/work-time.css diff --git a/website/agenda/planung/event_history.cgi b/website/agenda/planung/event-history.cgi similarity index 98% rename from website/agenda/planung/event_history.cgi rename to website/agenda/planung/event-history.cgi index 8906514..7ddf21f 100755 --- a/website/agenda/planung/event_history.cgi +++ b/website/agenda/planung/event-history.cgi @@ -115,9 +115,9 @@ sub show_history { } #print STDERR Dumper($params); - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event_history' } ); + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event-history' } ); - template::process( $config, 'print', template::check( $config, 'event_history' ), $params ); + template::process( $config, 'print', template::check( $config, 'event-history' ), $params ); } #show existing event history @@ -250,7 +250,7 @@ sub check_params { my $checked = {}; my $template = ''; - $checked->{template} = template::check( $config, $params->{template}, 'event_history' ); + $checked->{template} = template::check( $config, $params->{template}, 'event-history' ); my $debug = $params->{debug} || ''; if ( $debug =~ /([a-z\_\,]+)/ ) { diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 69a2e28..6467b9a 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -312,7 +312,7 @@ sub show_event { #print STDERR Dumper($params); $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event' } ); - template::process( $config, 'print', template::check( $config, 'edit_event' ), $params ); + template::process( $config, 'print', template::check( $config, 'edit-event' ), $params ); } sub getJson { @@ -456,7 +456,7 @@ sub show_new_event { } $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); - template::process( $config, 'print', template::check( $config, 'edit_event' ), $params ); + template::process( $config, 'print', template::check( $config, 'edit-event' ), $params ); #print '<pre>'.Dumper($params).'</pre>'; } diff --git a/website/agenda/planung/image-upload.cgi b/website/agenda/planung/image-upload.cgi index 142ff96..5938053 100755 --- a/website/agenda/planung/image-upload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -286,7 +286,7 @@ sub get_filename { sub check_filename { my $filename = shift; - my @valid_extensions = ( 'png', 'jpeg', 'jpg', 'gif', 'pdf', 'txt', 'bmp', 'ps', 'eps', 'wmf' ); + my @valid_extensions = ( 'png', 'jpeg', 'jpg', 'gif', 'pdf', 'txt', 'bmp', 'ps', 'eps', 'wmf', 'svg' ); if ( $filename =~ /\.([a-zA-Z]{3,5})$/ ) { my $extension = lc $1; unless ( grep( /$extension/, @valid_extensions ) ) { diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index 14a7f3e..d6d8247 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -65,7 +65,7 @@ $headerParams->{loc} = localization::get( $config, { user => $user, file => 'men if ( $params->{search} ) { template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); } else { - template::process( $config, 'print', template::check( $config, 'ajax_header.html' ), $headerParams ); + template::process( $config, 'print', template::check( $config, 'ajax-header.html' ), $headerParams ); } return unless uac::check( $config, $params, $user_presets ) == 1; @@ -241,7 +241,7 @@ sub show_image { #set global values for update and delete, per image values are evaluated later $template_params->{allow}->{update_image} = - $template_params->{allow}->{update_image_own} || $template_params->{allow}->{seriesupdate_image_others}; + $template_params->{allow}->{update_image_own} || $template_params->{allow}->{update_image_others}; $template_params->{allow}->{delete_image} = $template_params->{allow}->{delete_image_own} || $template_params->{allow}->{delete_image_others}; template::process( $config, 'print', $params->{template}, $template_params ); diff --git a/website/agenda/planung/js/audio_recordings.js b/website/agenda/planung/js/audio-recordings.js similarity index 99% rename from website/agenda/planung/js/audio_recordings.js rename to website/agenda/planung/js/audio-recordings.js index 670c117..b3c9c79 100644 --- a/website/agenda/planung/js/audio_recordings.js +++ b/website/agenda/planung/js/audio-recordings.js @@ -57,7 +57,7 @@ function uploadFile(uploadButton){ hideError(); showProgress(); var request=$.ajax({ - url: 'audio_recordings.cgi', + url: 'audio-recordings.cgi', type: 'POST', data: new FormData($('#audio_recordings_upload')[0]), cache: false, diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index a4c5861..d843353 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -1023,7 +1023,7 @@ function handleWorktime(id, event){ if (schedule_id<0) return; var start_date=$(this).attr("start"); - var url="work_time.cgi?action=show_new_event_from_schedule&project_id="+project_id+"&studio_id="+studio_id+"&schedule_id="+schedule_id+"&start_date="+start_date; + var url="work-time.cgi?action=show_new_event_from_schedule&project_id="+project_id+"&studio_id="+studio_id+"&schedule_id="+schedule_id+"&start_date="+start_date; if(event.which==1){ load(url); } diff --git a/website/agenda/planung/js/edit_event.js b/website/agenda/planung/js/edit-event.js similarity index 100% rename from website/agenda/planung/js/edit_event.js rename to website/agenda/planung/js/edit-event.js diff --git a/website/agenda/planung/js/edit_image.js b/website/agenda/planung/js/edit-image.js similarity index 100% rename from website/agenda/planung/js/edit_image.js rename to website/agenda/planung/js/edit-image.js diff --git a/website/agenda/planung/js/edit_series.js b/website/agenda/planung/js/edit-series.js similarity index 100% rename from website/agenda/planung/js/edit_series.js rename to website/agenda/planung/js/edit-series.js diff --git a/website/agenda/planung/js/image_upload.js b/website/agenda/planung/js/image-upload.js similarity index 96% rename from website/agenda/planung/js/image_upload.js rename to website/agenda/planung/js/image-upload.js index 6518b2c..c036d17 100644 --- a/website/agenda/planung/js/image_upload.js +++ b/website/agenda/planung/js/image-upload.js @@ -27,7 +27,7 @@ function uploadImage(){ //remove existing image from list $('#imageList div.images #img_'+image_id).remove(); - var url='show-image.cgi?project_id='+getProjectId()+'&studioId='+getStudioId()+'&type=icon&filename='+filename; + var url='show-image.cgi?project_id='+getProjectId()+'&studio_id='+getStudioId()+'&type=icon&filename='+filename; var html = '<div'; html += ' id="img_' + image_id + '"'; diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index b5b3e3d..11c5277 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -21,7 +21,7 @@ function updateActiveImage(){ // open dialog to show or edit image properties function updateImageEditor(elem, filename, target, project_id, studio_id, series_id, event_id, pid){ var url='image.cgi?show='+filename; - url += '&template=edit_image.html'; + url += '&template=edit-image.html'; url += '&target=' + target; url += '&project_id='+project_id; url += '&studio_id='+studio_id; @@ -130,7 +130,7 @@ function deleteImage(id, filename) { function hideImageDetails(id, filename){ try{$('#img_editor').dialog('close');}catch(e){} - var url='image.cgi?show='+filename+'&template=image_single.html&project_id='+project_id+'&studio_id='+studio_id; + var url='image.cgi?show='+filename+'&template=image-single.html&project_id='+project_id+'&studio_id='+studio_id; console.log("hideImageDetails, load url="+url) $("#"+id).load(url); return false; diff --git a/website/agenda/planung/js/list_series.js b/website/agenda/planung/js/list-series.js similarity index 100% rename from website/agenda/planung/js/list_series.js rename to website/agenda/planung/js/list-series.js diff --git a/website/agenda/planung/js/page_leave_handler.js b/website/agenda/planung/js/page-leave-handler.js similarity index 100% rename from website/agenda/planung/js/page_leave_handler.js rename to website/agenda/planung/js/page-leave-handler.js diff --git a/website/agenda/planung/js/studio_timeslots.js b/website/agenda/planung/js/studio-timeslots.js similarity index 98% rename from website/agenda/planung/js/studio_timeslots.js rename to website/agenda/planung/js/studio-timeslots.js index 1ef179a..70d29e8 100644 --- a/website/agenda/planung/js/studio_timeslots.js +++ b/website/agenda/planung/js/studio-timeslots.js @@ -27,7 +27,7 @@ function updateWeekdays(){ function showDates(){ var date=$('#show_date select').val(); - var url='studio_timeslots.cgi?'; + var url='studio-timeslots.cgi?'; url+='project_id='+getProjectId(); url+='&studio_id='+getStudioId(); url+='&action=show_dates'; diff --git a/website/agenda/planung/notify_events.cgi b/website/agenda/planung/notify-events.cgi similarity index 98% rename from website/agenda/planung/notify_events.cgi rename to website/agenda/planung/notify-events.cgi index 4b0f138..82cb9d4 100755 --- a/website/agenda/planung/notify_events.cgi +++ b/website/agenda/planung/notify-events.cgi @@ -120,7 +120,7 @@ sub show_events { $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; } - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'notify_events' } ); + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'notify-events' } ); template::process( $config, 'print', $params->{template}, $params ); } @@ -242,7 +242,7 @@ sub check_params { my $checked = {}; my $template = ''; - $checked->{template} = template::check( $config, $params->{template}, 'notify_events' ); + $checked->{template} = template::check( $config, $params->{template}, 'notify-events' ); my $debug = $params->{debug} || ''; if ( $debug =~ /([a-z\_\,]+)/ ) { diff --git a/website/agenda/planung/pot/de/audio_recordings.po b/website/agenda/planung/pot/de/audio-recordings.po similarity index 100% rename from website/agenda/planung/pot/de/audio_recordings.po rename to website/agenda/planung/pot/de/audio-recordings.po diff --git a/website/agenda/planung/pot/de/create_events.po b/website/agenda/planung/pot/de/create-events.po similarity index 100% rename from website/agenda/planung/pot/de/create_events.po rename to website/agenda/planung/pot/de/create-events.po diff --git a/website/agenda/planung/pot/de/event_history.po b/website/agenda/planung/pot/de/event-history.po similarity index 100% rename from website/agenda/planung/pot/de/event_history.po rename to website/agenda/planung/pot/de/event-history.po diff --git a/website/agenda/planung/pot/de/notify_events.po b/website/agenda/planung/pot/de/notify-events.po similarity index 100% rename from website/agenda/planung/pot/de/notify_events.po rename to website/agenda/planung/pot/de/notify-events.po diff --git a/website/agenda/planung/pot/de/selectEvent.po b/website/agenda/planung/pot/de/select-event.po similarity index 100% rename from website/agenda/planung/pot/de/selectEvent.po rename to website/agenda/planung/pot/de/select-event.po diff --git a/website/agenda/planung/pot/de/selectSeries.po b/website/agenda/planung/pot/de/select-series.po similarity index 100% rename from website/agenda/planung/pot/de/selectSeries.po rename to website/agenda/planung/pot/de/select-series.po diff --git a/website/agenda/planung/pot/de/studio_timeslots.po b/website/agenda/planung/pot/de/studio-timeslots.po similarity index 100% rename from website/agenda/planung/pot/de/studio_timeslots.po rename to website/agenda/planung/pot/de/studio-timeslots.po diff --git a/website/agenda/planung/pot/de/user_settings.po b/website/agenda/planung/pot/de/user-settings.po similarity index 100% rename from website/agenda/planung/pot/de/user_settings.po rename to website/agenda/planung/pot/de/user-settings.po diff --git a/website/agenda/planung/pot/de/user_stats.po b/website/agenda/planung/pot/de/user-stats.po similarity index 100% rename from website/agenda/planung/pot/de/user_stats.po rename to website/agenda/planung/pot/de/user-stats.po diff --git a/website/agenda/planung/pot/de/work_time.po b/website/agenda/planung/pot/de/work-time.po similarity index 100% rename from website/agenda/planung/pot/de/work_time.po rename to website/agenda/planung/pot/de/work-time.po diff --git a/website/agenda/planung/pot/en/audio_recordings.po b/website/agenda/planung/pot/en/audio-recordings.po similarity index 100% rename from website/agenda/planung/pot/en/audio_recordings.po rename to website/agenda/planung/pot/en/audio-recordings.po diff --git a/website/agenda/planung/pot/en/create_events.po b/website/agenda/planung/pot/en/create-events.po similarity index 100% rename from website/agenda/planung/pot/en/create_events.po rename to website/agenda/planung/pot/en/create-events.po diff --git a/website/agenda/planung/pot/en/event_history.po b/website/agenda/planung/pot/en/event-history.po similarity index 100% rename from website/agenda/planung/pot/en/event_history.po rename to website/agenda/planung/pot/en/event-history.po diff --git a/website/agenda/planung/pot/en/notify_events.po b/website/agenda/planung/pot/en/notify-events.po similarity index 100% rename from website/agenda/planung/pot/en/notify_events.po rename to website/agenda/planung/pot/en/notify-events.po diff --git a/website/agenda/planung/pot/en/selectEvent.po b/website/agenda/planung/pot/en/select-event.po similarity index 100% rename from website/agenda/planung/pot/en/selectEvent.po rename to website/agenda/planung/pot/en/select-event.po diff --git a/website/agenda/planung/pot/en/selectSeries.po b/website/agenda/planung/pot/en/select-series.po similarity index 100% rename from website/agenda/planung/pot/en/selectSeries.po rename to website/agenda/planung/pot/en/select-series.po diff --git a/website/agenda/planung/pot/en/studio_timeslots.po b/website/agenda/planung/pot/en/studio-timeslots.po similarity index 100% rename from website/agenda/planung/pot/en/studio_timeslots.po rename to website/agenda/planung/pot/en/studio-timeslots.po diff --git a/website/agenda/planung/pot/en/user_settings.po b/website/agenda/planung/pot/en/user-settings.po similarity index 100% rename from website/agenda/planung/pot/en/user_settings.po rename to website/agenda/planung/pot/en/user-settings.po diff --git a/website/agenda/planung/pot/en/user_stats.po b/website/agenda/planung/pot/en/user-stats.po similarity index 100% rename from website/agenda/planung/pot/en/user_stats.po rename to website/agenda/planung/pot/en/user-stats.po diff --git a/website/agenda/planung/pot/en/work_time.po b/website/agenda/planung/pot/en/work-time.po similarity index 100% rename from website/agenda/planung/pot/en/work_time.po rename to website/agenda/planung/pot/en/work-time.po diff --git a/website/agenda/planung/requestPassword.cgi b/website/agenda/planung/request-password.cgi similarity index 99% rename from website/agenda/planung/requestPassword.cgi rename to website/agenda/planung/request-password.cgi index 717a207..00ede19 100755 --- a/website/agenda/planung/requestPassword.cgi +++ b/website/agenda/planung/request-password.cgi @@ -143,7 +143,7 @@ sub check_params { my $checked = {}; #my $template = ''; - #$checked->{template} = template::check($config, $params->{template}, 'requestPassword' ); + #$checked->{template} = template::check($config, $params->{template}, 'request-password' ); my $debug = $params->{debug} || ''; if ( $debug =~ /([a-z\_\,]+)/ ) { diff --git a/website/agenda/planung/select-event.cgi b/website/agenda/planung/select-event.cgi index a022987..0116ff0 100755 --- a/website/agenda/planung/select-event.cgi +++ b/website/agenda/planung/select-event.cgi @@ -49,7 +49,7 @@ $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; $params = uac::set_template_permissions( $request->{permissions}, $params ); -$params->{loc} = localization::get( $config, { user => $user, file => 'selectEvent' } ); +$params->{loc} = localization::get( $config, { user => $user, file => 'select-event' } ); #process header print "Content-type:text/html; charset=UTF-8;\n\n"; @@ -172,7 +172,7 @@ sub check_params { $checked->{studio_id} = -1; } - $checked->{template} = template::check( $config, $params->{template}, 'selectEvent' ); + $checked->{template} = template::check( $config, $params->{template}, 'select-event' ); return $checked; } diff --git a/website/agenda/planung/select-series.cgi b/website/agenda/planung/select-series.cgi index ca468b0..d8d282b 100755 --- a/website/agenda/planung/select-series.cgi +++ b/website/agenda/planung/select-series.cgi @@ -48,7 +48,7 @@ $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; $params = uac::set_template_permissions( $request->{permissions}, $params ); -$params->{loc} = localization::get( $config, { user => $user, file => 'selectSeries' } ); +$params->{loc} = localization::get( $config, { user => $user, file => 'select-series' } ); #process header print "Content-type:text/html; charset=UTF-8;\n\n"; @@ -149,7 +149,7 @@ sub check_params { $checked->{studio_id} = -1; } - $checked->{template} = template::check( $config, $params->{template}, 'selectSeries' ); + $checked->{template} = template::check( $config, $params->{template}, 'select-series' ); return $checked; } diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 8577738..6c8a03c 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -102,12 +102,12 @@ $config->{access}->{write} = 0; #print STDERR "show_series\n"; if ( defined $params->{series_id} ) { - print q{<script src="js/edit_series.js" type="text/javascript"></script>} unless params::isJson(); + print q{<script src="js/edit-series.js" type="text/javascript"></script>} unless params::isJson(); show_series( $config, $request ); } else { print q{ - <link rel="stylesheet" href="css/list_series.css" type="text/css" /> - <script src="js/list_series.js" type="text/javascript"></script> + <link rel="stylesheet" href="css/list-series.css" type="text/css" /> + <script src="js/list-series.js" type="text/javascript"></script> } unless params::isJson(); list_series( $config, $request ); } @@ -1262,7 +1262,7 @@ sub check_params { } if ( defined $checked->{series_id} ) { - $checked->{template} = template::check( $config, $params->{template}, 'edit_series' ); + $checked->{template} = template::check( $config, $params->{template}, 'edit-series' ); } else { $checked->{template} = template::check( $config, $params->{template}, 'series' ); } diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 649544a..5999271 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -137,7 +137,7 @@ sub check_params { my $checked = {}; $checked->{error} = ''; - $checked->{template} = template::check( $config, $params->{template}, 'show_playout' ); + $checked->{template} = template::check( $config, $params->{template}, 'show-playout' ); #numeric values for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio-timeslots.cgi similarity index 97% rename from website/agenda/planung/studio_timeslots.cgi rename to website/agenda/planung/studio-timeslots.cgi index 78bc9ca..dad699a 100755 --- a/website/agenda/planung/studio_timeslots.cgi +++ b/website/agenda/planung/studio-timeslots.cgi @@ -78,9 +78,9 @@ if ( $action eq 'show_dates' ) { <script src="js/jquery.tablesorter.widgets.min.js"></script> <script src="js/jquery.tablesorter.scroller.js"></script> - <script src="js/studio_timeslots.js" type="text/javascript"></script> + <script src="js/studio-timeslots.js" type="text/javascript"></script> <script src="js/datetime.js" type="text/javascript"></script> - <link rel="stylesheet" href="css/studio_timeslots.css" type="text/css" /> + <link rel="stylesheet" href="css/studio-timeslots.css" type="text/css" /> }; } @@ -208,7 +208,7 @@ sub showTimeslotSchedule { } $params->{loc} = - localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); + localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio-timeslots' } ); my $studio_id = $params->{studio_id}; my $project_id = $params->{project_id}; @@ -310,7 +310,7 @@ sub showDates { ); $params->{loc} = - localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio_timeslots' } ); + localization::get( $config, { user => $params->{presets}->{user}, file => 'all,studio-timeslots' } ); my $language = $params->{loc}->{region}; # translate weekday names to selected language @@ -355,7 +355,7 @@ sub showDates { $params->{$key} = $result->{$key}; } - my $template = template::check( $config, 'studio_timeslot_dates' ); + my $template = template::check( $config, 'studio-timeslot-dates' ); template::process( $config, 'print', $template, $params ); } @@ -399,7 +399,7 @@ sub check_params { $checked->{studio_id} = -1; } - $checked->{template} = template::check( $config, $params->{template}, 'studio_timeslots' ); + $checked->{template} = template::check( $config, $params->{template}, 'studio-timeslots' ); for my $param ('frequency') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { diff --git a/website/agenda/planung/templates/ajax_header.html b/website/agenda/planung/templates/ajax-header.html similarity index 100% rename from website/agenda/planung/templates/ajax_header.html rename to website/agenda/planung/templates/ajax-header.html diff --git a/website/agenda/planung/templates/assign_series.html b/website/agenda/planung/templates/assign-series.html similarity index 94% rename from website/agenda/planung/templates/assign_series.html rename to website/agenda/planung/templates/assign-series.html index e562c31..ff93f0b 100644 --- a/website/agenda/planung/templates/assign_series.html +++ b/website/agenda/planung/templates/assign-series.html @@ -17,7 +17,7 @@ $('#assignments_form input[name="series_id"]').val(series_id); //console.log(project_id+" "+studio_id+" "+series_id); - var url="assign_series.cgi?project_id="+project_id+'&studio_id='+studio_id+'&series_id='+series_id+'&action=assign_series'; + var url="assign-series.cgi?project_id="+project_id+'&studio_id='+studio_id+'&series_id='+series_id+'&action=assign_series'; //console.log(url); $('#assignments_form').submit(); return false; @@ -45,7 +45,7 @@ </TMPL_LOOP> </select> - <form action="assign_series.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>" method="post" id="assignments_form"> + <form action="assign-series.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>" method="post" id="assignments_form"> <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> <input type="hidden" name="series_id" value="<TMPL_VAR .series_id>"> diff --git a/website/agenda/planung/templates/change_password.html b/website/agenda/planung/templates/change-password.html similarity index 100% rename from website/agenda/planung/templates/change_password.html rename to website/agenda/planung/templates/change-password.html diff --git a/website/agenda/planung/templates/comments.html b/website/agenda/planung/templates/comments.html index 1aefaf7..4998979 100644 --- a/website/agenda/planung/templates/comments.html +++ b/website/agenda/planung/templates/comments.html @@ -9,12 +9,12 @@ <script src="js/jquery-ui-timepicker.js" type="text/javascript"></script> <script src="js/series.js" type="text/javascript"></script> - <script src="js/edit_event.js" type="text/javascript"></script> + <script src="js/edit-event.js" type="text/javascript"></script> <script src="js/image.js" type="text/javascript"></script> --> <script src="js/jquery.autosize.min.js" type="text/javascript"></script> <script src="js/comment.js" type="text/javascript"></script> - <script src="js/page_leave_handler.js" type="text/javascript"></script> + <script src="js/page-leave-handler.js" type="text/javascript"></script> <script> var region='<TMPL_VAR loc.region>'; var event_id='<TMPL_VAR event_id>'; diff --git a/website/agenda/planung/templates/create_events.html b/website/agenda/planung/templates/create-events.html similarity index 100% rename from website/agenda/planung/templates/create_events.html rename to website/agenda/planung/templates/create-events.html diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index 27d1c2a..7aaad28 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -32,7 +32,7 @@ </TMPL_IF> <TMPL_IF .allow.read_studio_timeslot_schedule> -<div><a href="studio_timeslots.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-clock"></i> <TMPL_VAR .loc.timeslots></a></div> +<div><a href="studio-timeslots.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-clock"></i> <TMPL_VAR .loc.timeslots></a></div> </TMPL_IF> <TMPL_IF .allow.read_studio> @@ -44,14 +44,14 @@ </TMPL_IF> <TMPL_IF .allow.read_schedule> -<div><a href="work_time.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-clock"></i> <TMPL_VAR .loc.schedule></a></div> +<div><a href="work-time.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-clock"></i> <TMPL_VAR .loc.schedule></a></div> </TMPL_IF> <TMPL_IF .allow.update_image_others> <div><a href="image.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>&search=<TMPL_VAR .presets.user>"><i class="fas fa-images"></i> <TMPL_VAR .loc.images></a></div> </TMPL_IF> -<div title="<TMPL_VAR .loc.profile>"><a href="user_settings.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-cog"></i> <TMPL_VAR .loc.profile></a></div> +<div title="<TMPL_VAR .loc.profile>"><a href="user-settings.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-cog"></i> <TMPL_VAR .loc.profile></a></div> <div title="<TMPL_VAR .loc.help>"><a href="help.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR default_studio_id>"><i class="fas fa-info"></i> <TMPL_VAR .loc.help></a></div> diff --git a/website/agenda/planung/templates/edit_comment.html b/website/agenda/planung/templates/edit-comment.html similarity index 100% rename from website/agenda/planung/templates/edit_comment.html rename to website/agenda/planung/templates/edit-comment.html diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit-event.html similarity index 98% rename from website/agenda/planung/templates/edit_event.html rename to website/agenda/planung/templates/edit-event.html index 15593f9..45dd988 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit-event.html @@ -12,10 +12,10 @@ <script src="js/jquery.autosize.min.js" type="text/javascript"></script> <script src="js/series.js" type="text/javascript"></script> - <script src="js/edit_event.js" type="text/javascript"></script> + <script src="js/edit-event.js" type="text/javascript"></script> <script src="js/image.js" type="text/javascript"></script> <script src="js/comment.js" type="text/javascript"></script> - <script src="js/page_leave_handler.js" type="text/javascript"></script> + <script src="js/page-leave-handler.js" type="text/javascript"></script> <script> var region='<TMPL_VAR loc.region>'; var event_id='<TMPL_VAR event_id>'; @@ -102,7 +102,7 @@ <TMPL_UNLESS new_event> <TMPL_IF .allow.upload_audio_recordings> - <form style="float:right" action="audio_recordings.cgi"> + <form style="float:right" action="audio-recordings.cgi"> <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>"> <input type="hidden" name="series_id" value="<TMPL_VAR .series_id>"> @@ -134,7 +134,7 @@ <TMPL_IF .allow.read_event> <button target="_blank" - onclick="load('event_history.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR studio_id>&series_id=<TMPL_VAR series_id>&event_id=<TMPL_VAR event_id>');" + onclick="load('event-history.cgi?project_id=<TMPL_VAR project_id>&studio_id=<TMPL_VAR studio_id>&series_id=<TMPL_VAR series_id>&event_id=<TMPL_VAR event_id>');" ><TMPL_VAR .loc.button_show_changes></button> </TMPL_IF> diff --git a/website/agenda/planung/templates/edit_image.html b/website/agenda/planung/templates/edit-image.html similarity index 96% rename from website/agenda/planung/templates/edit_image.html rename to website/agenda/planung/templates/edit-image.html index 5133356..c99c07f 100644 --- a/website/agenda/planung/templates/edit_image.html +++ b/website/agenda/planung/templates/edit-image.html @@ -1,6 +1,6 @@ -<script src="js/edit_image.js" type="text/javascript"></script> -<script src="js/page_leave_handler.js" type="text/javascript"></script> +<script src="js/edit-image.js" type="text/javascript"></script> +<script src="js/page-leave-handler.js" type="text/javascript"></script> <TMPL_IF no_results> found no image diff --git a/website/agenda/planung/templates/edit_series.html b/website/agenda/planung/templates/edit-series.html similarity index 99% rename from website/agenda/planung/templates/edit_series.html rename to website/agenda/planung/templates/edit-series.html index 60d69b8..a1187f1 100644 --- a/website/agenda/planung/templates/edit_series.html +++ b/website/agenda/planung/templates/edit-series.html @@ -42,7 +42,7 @@ <TMPL_IF .allow.read_event> <button target="_blank" - onclick="load('event_history.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&series_id=<TMPL_VAR series_id>');" + onclick="load('event-history.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&series_id=<TMPL_VAR series_id>');" style="float:left" ><TMPL_VAR .loc.button_show_changes></button> </TMPL_IF> diff --git a/website/agenda/planung/templates/edit_user_roles.html b/website/agenda/planung/templates/edit-user-roles.html similarity index 100% rename from website/agenda/planung/templates/edit_user_roles.html rename to website/agenda/planung/templates/edit-user-roles.html diff --git a/website/agenda/planung/templates/edit_work_time.html b/website/agenda/planung/templates/edit-work-time.html similarity index 98% rename from website/agenda/planung/templates/edit_work_time.html rename to website/agenda/planung/templates/edit-work-time.html index 4ce465a..695ffeb 100644 --- a/website/agenda/planung/templates/edit_work_time.html +++ b/website/agenda/planung/templates/edit-work-time.html @@ -2,7 +2,7 @@ <script src="js/datetime.js" type="text/javascript"></script> <!-- <script src="js/localization.js" type="text/javascript"></script> --> - <link rel="stylesheet" href="css/work_time.css" type="text/css" /> + <link rel="stylesheet" href="css/work-time.css" type="text/css" /> <link href="css/jquery-ui-timepicker.css" type="text/css" rel="stylesheet" /> <script src="js/jquery-ui-timepicker.js" type="text/javascript"></script> @@ -44,7 +44,7 @@ <TMPL_LOOP schedule> <div class="row schedule<TMPL_IF selected> selected</TMPL_IF>"> <form method="post" - action="work_time.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&schedule_id=<TMPL_VAR schedule_id>" + action="work-time.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>&schedule_id=<TMPL_VAR schedule_id>" id="schedule_<TMPL_VAR schedule_id>" > <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> @@ -165,7 +165,7 @@ <!-- add schedule --> <div class="row schedule row<TMPL_IF show_hint_to_add_schedule> active</TMPL_IF>"> <form id="schedule_add" method="post" - action="work_time.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>" + action="work-time.cgi?project_id=<TMPL_VAR .project_id>&studio_id=<TMPL_VAR .studio_id>" > <input type="hidden" name="project_id" value="<TMPL_VAR .project_id>"> <input type="hidden" name="studio_id" value="<TMPL_VAR .studio_id>" /> diff --git a/website/agenda/planung/templates/error_log.html b/website/agenda/planung/templates/error-log.html similarity index 100% rename from website/agenda/planung/templates/error_log.html rename to website/agenda/planung/templates/error-log.html diff --git a/website/agenda/planung/templates/event_history.html b/website/agenda/planung/templates/event-history.html similarity index 99% rename from website/agenda/planung/templates/event_history.html rename to website/agenda/planung/templates/event-history.html index bb5f0e5..c095667 100644 --- a/website/agenda/planung/templates/event_history.html +++ b/website/agenda/planung/templates/event-history.html @@ -58,7 +58,7 @@ if (project_id=='') return ; if (studio_id=='') return ; if (event_id=='') return ; - var url= 'event_history.cgi?'; + var url= 'event-history.cgi?'; url+='project_id='+project_id; url+='&studio_id='+studio_id; url+='&series_id='+series_id; diff --git a/website/agenda/planung/templates/header_head.html b/website/agenda/planung/templates/header-head.html similarity index 100% rename from website/agenda/planung/templates/header_head.html rename to website/agenda/planung/templates/header-head.html diff --git a/website/agenda/planung/templates/header.html b/website/agenda/planung/templates/header.html index dd99d60..f8e6b45 100644 --- a/website/agenda/planung/templates/header.html +++ b/website/agenda/planung/templates/header.html @@ -8,7 +8,7 @@ Content-Type: text/html; charset=UTF-8; <meta http-equiv="Content-Script-Type" content="javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <TMPL_IF arefresh_time><meta http-equiv="refresh" content="<TMPL_VAR refresh_time>;url=<TMPL_VAR refresh_url escape=url>"></TMPL_IF> - <TMPL_INCLUDE header_head.html> + <TMPL_INCLUDE header-head.html> </head> <body> <center> diff --git a/website/agenda/planung/templates/image_single.html b/website/agenda/planung/templates/image-single.html similarity index 100% rename from website/agenda/planung/templates/image_single.html rename to website/agenda/planung/templates/image-single.html diff --git a/website/agenda/planung/templates/image-upload.html b/website/agenda/planung/templates/image-upload.html index 94146df..c32c4e0 100644 --- a/website/agenda/planung/templates/image-upload.html +++ b/website/agenda/planung/templates/image-upload.html @@ -1,4 +1,4 @@ -<script src="js/edit_image.js" type="text/javascript"></script> +<script src="js/edit-image.js" type="text/javascript"></script> <div class="editor"> <TMPL_IF action> diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index 1f43209..fb9d71d 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -1,10 +1,10 @@ <link type="text/css" href="css/image.css" rel="stylesheet"/> <script src="js/image.js" type="text/javascript"></script> -<script src="js/page_leave_handler.js" type="text/javascript"></script> +<script src="js/page-leave-handler.js" type="text/javascript"></script> <TMPL_IF .allow.create_image> -<script src="js/image_upload.js" type="text/javascript"></script> +<script src="js/image-upload.js" type="text/javascript"></script> </TMPL_IF> <script> diff --git a/website/agenda/planung/templates/notify_daily.html b/website/agenda/planung/templates/notify-daily.html similarity index 100% rename from website/agenda/planung/templates/notify_daily.html rename to website/agenda/planung/templates/notify-daily.html diff --git a/website/agenda/planung/templates/notify_daily.txt b/website/agenda/planung/templates/notify-daily.txt similarity index 100% rename from website/agenda/planung/templates/notify_daily.txt rename to website/agenda/planung/templates/notify-daily.txt diff --git a/website/agenda/planung/templates/notify_events.html b/website/agenda/planung/templates/notify-events.html similarity index 96% rename from website/agenda/planung/templates/notify_events.html rename to website/agenda/planung/templates/notify-events.html index 15dc1d9..c136b1a 100644 --- a/website/agenda/planung/templates/notify_events.html +++ b/website/agenda/planung/templates/notify-events.html @@ -3,7 +3,7 @@ <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title><TMPL_VAR .doc.title> - + }; } } diff --git a/website/agenda/planung/pot/de/series.po b/website/agenda/planung/pot/de/series.po index a567384..e1db460 100644 --- a/website/agenda/planung/pot/de/series.po +++ b/website/agenda/planung/pot/de/series.po @@ -22,6 +22,9 @@ msgstr "Alte Sendereihen" msgid "button_show_changes" msgstr "Änderungen" +msgid "button_rebuild_episodes" +msgstr "Episoden neuzählen" + msgid "label_name" msgstr "Name" diff --git a/website/agenda/planung/pot/en/series.po b/website/agenda/planung/pot/en/series.po index 942d4f1..26c1642 100644 --- a/website/agenda/planung/pot/en/series.po +++ b/website/agenda/planung/pot/en/series.po @@ -22,6 +22,9 @@ msgstr "old series" msgid "button_show_changes" msgstr "changes" +msgid "button_rebuild_episodes" +msgstr "recount episodes" + msgid "label_name" msgstr "name" diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 75153f7..8e472bd 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -93,14 +93,20 @@ if ( defined $params->{action} ) { my $result = reassign_event( $config, $request ); return if defined $result; } + if ($params->{action} eq 'rebuild_episodes'){ + rebuild_episodes($config, $request); + return; + }; + if ($params->{action} eq 'set_rebuilt_episodes'){ + set_rebuilt_episodes($config, $request); + return; + }; # save_scan ($config, $request) if ($params->{action} eq 'save_scan'); } $config->{access}->{write} = 0; -#print STDERR "show_series\n"; - if ( defined $params->{series_id} ) { print q{} unless params::isJson(); show_series( $config, $request ); @@ -111,6 +117,7 @@ if ( defined $params->{series_id} ) { } unless params::isJson(); list_series( $config, $request ); } + return; #insert or update a schedule and update all schedule dates @@ -351,7 +358,6 @@ sub save_series { return; } - #print STDERR Dumper($entry); my $series_ids = series::get( $config, { @@ -1224,6 +1230,160 @@ sub show_series { template::process( $config, 'print', $params->{template}, $params ); } +sub set_rebuilt_episodes{ + my $config = shift; + my $request = shift; + + $config->{access}->{write} = 0; + + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_series} == 1 ) { + uac::permissions_denied('read_series'); + return; + } + + for my $param ( 'project_id', 'studio_id', 'series_id' ) { + unless ( defined $params->{$param} ) { + uac::print_error("missing $param"); + return; + } + } + + unless ( project::is_series_assigned( $config, $params ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } + + #this will be updated later (especially allow_update_events) + for my $permission ( keys %{ $request->{permissions} } ) { + $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; + } + + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $series_id = $params->{series_id}; + my $events = series::get_rebuilt_episodes( $config, { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + }); + + my $updates = 0; + for my $event (@$events){ + next if $event->{project_id} ne $project_id; + next if $event->{studio_id} ne $studio_id; + next if $event->{old_episode} eq $event->{episode}; + series_events::set_episode( $config, { + id => $event->{id}, + episode => $event->{episode} + }); + $updates++; + } + print "$updates changes done.\n"; +} + +sub rebuild_episodes{ + my $config = shift; + my $request = shift; + + $config->{access}->{write} = 0; + + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_series} == 1 ) { + uac::permissions_denied('read_series'); + return; + } + + for my $param ( 'project_id', 'studio_id', 'series_id' ) { + unless ( defined $params->{$param} ) { + uac::print_error("missing $param"); + return; + } + } + + unless ( project::is_series_assigned( $config, $params ) == 1 ) { + uac::print_error('series is not assigned to project!'); + return undef; + } + + #this will be updated later (especially allow_update_events) + for my $permission ( keys %{ $request->{permissions} } ) { + $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; + } + + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $series_id = $params->{series_id}; + my $events = series::get_rebuilt_episodes( $config, { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + }); + + my $events_by_id={}; + for my $event (@$events){ + $events_by_id->{$event->{id}} = $event; + } + + print " + "; + + my $prev=undef; + my $max_episode=0; + my $changes=0; + my $errors=0; + for my $event (@$events){ + $max_episode = $event->{episode} if $event->{episode} > $max_episode; + my $e1 = $event->{old_episode} //''; + my $e2 = $event->{episode} //''; + my $o1 = $prev->{old_episode} //''; + my $o2 = $prev->{episode} //''; + if ($e1 eq $e2){ + $event->{class} = 'ok'; + }else{ + $changes++; + $event->{class} = 'warn'; + } + if ($e1 and $e2 and $o1 and $o2 and ( ($e2-$o2) != ($e1-$o1) ) ){ + $event->{class} = "error" if $e1 ne $e2; + $prev->{class} = "error" if defined $prev and $o1 ne $o2; + $errors++; + } + if ($event->{episode} < $max_episode and !$event->{recurrence}){ + $event->{class} = "error"; + $errors++; + } + $event->{recurrence_start} = $events_by_id->{$event->{recurrence}}->{start}; + $event->{recurrence} = '-' unless $event->{recurrence}; + $prev = $event; + } + print "$errors errors, $changes changes\n"; + if ( ($changes>0) and ($errors==0) ){ + my $url = "series.cgi?action=set_rebuilt_episodes&project_id=$project_id&studio_id=$studio_id&series_id=$series_id"; + print qq{}; + } + my @cols=qw(id start series_name title episode old_episode recurrence recurrence_start project_name studio_name); + print "\n"; + print "" . join ("", map { "" } @cols) . "\n" ; + + for my $event (@$events){ + print qq{} + . join ("", map { "" } @cols) + . "\n"; + } + print "
      ".($_ // '-')."
      ".($event->{$_}//'-')."
      \n"; +} + sub check_params { my $config = shift; my $params = shift; @@ -1239,16 +1399,14 @@ sub check_params { #actions and roles $checked->{action} = ''; if ( defined $params->{action} ) { - if ( $params->{action} =~ -/^(add_user|remove_user|create|delete|save|details|show|save_schedule|delete_schedule|save_scan|scan_events|assign_event|unassign_event|reassign_event)$/ - ) - { - $checked->{action} = $params->{action}; - } + $checked->{action} = $params->{action} if $params->{action} =~ +/^(add_user|remove_user|create|delete|save|details|show|save_schedule|delete_schedule|save_scan|scan_events|assign_event|unassign_event|reassign_event|rebuild_episodes|set_rebuilt_episodes)$/ + ; } #numeric values $checked->{exclude} = 0; + $checked->{action} = $params->{action}; for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'new_series_id', 'series_id', 'schedule_id', diff --git a/website/agenda/planung/templates/edit-series.html b/website/agenda/planung/templates/edit-series.html index 73b2064..9dabc9d 100644 --- a/website/agenda/planung/templates/edit-series.html +++ b/website/agenda/planung/templates/edit-series.html @@ -56,6 +56,16 @@ + + +
      + + + + +
      +
      +
      From 9b392ae0f4b2ee3bc755db1da7f191f7504a465a Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 29 Feb 2020 22:01:41 +0100 Subject: [PATCH 104/391] update series image on saving event series images are assigned to events on saving series. This change does also update event image with series image on saving the image. --- website/agenda/planung/event.cgi | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index d560e13..a394312 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -615,8 +615,20 @@ sub save_event { return; } - $entry->{image} = images::normalizeName( $entry->{image} ); - $entry->{series_image} = images::normalizeName( $entry->{series_image} ); + my $series = series::get($config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + series_id => $params->{series_id}, + } + ); + my $serie = $series->[0]; + unless ( defined $serie ) { + uac::print_error("series not found"); + return; + } + $entry->{image} = images::normalizeName( $serie->{image} ); + $entry->{series_image} = images::normalizeName( $serie->{series_image} ); #print STDERR "event to update2: ".Dumper($entry); From 9f8170507e629fec3c20cd573749927ef22bc0ce Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 29 Feb 2020 23:01:49 +0100 Subject: [PATCH 105/391] use sorted keys on SQL update statement make sure, sorted keys are used for query and binding variable. --- lib/calcms/comments.pm | 11 ++++++----- lib/calcms/db.pm | 9 +++++---- lib/calcms/password_requests.pm | 5 +++-- lib/calcms/project.pm | 5 +++-- lib/calcms/series.pm | 5 +++-- lib/calcms/series_schedule.pm | 5 +++-- lib/calcms/studio_timeslot_schedule.pm | 5 +++-- lib/calcms/studios.pm | 5 +++-- lib/calcms/uac.pm | 12 +++++++----- lib/calcms/user_sessions.pm | 5 +++-- lib/calcms/user_settings.pm | 5 +++-- lib/calcms/user_stats.pm | 5 +++-- lib/calcms/work_schedule.pm | 5 +++-- 13 files changed, 48 insertions(+), 34 deletions(-) diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 7b5d8fc..61eb561 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -410,12 +410,13 @@ sub get_events($$$$) { $event_ids->{$event_id} = 1; } + my @keys = keys %{$event_ids}; #get events from comment's event ids - return [] if ( scalar keys %{$event_ids} ) == 0; + return [] if ( scalar @keys ) == 0; - #my $quoted_event_ids=join "," ,(map {$dbh->quote($_)}(keys %{$event_ids})); - my @bind_values = keys %{$event_ids}; - my $event_id_values = join ",", ( map { '?' } ( keys %{$event_ids} ) ); + #my $quoted_event_ids=join "," ,(map {$dbh->quote($_)}(@keys)); + my @bind_values = @keys; + my $event_id_values = join ",", ( map { '?' } ( @keys ) ); my $query = qq{ select id, start, program, series_name, title, excerpt @@ -433,7 +434,7 @@ sub get_events($$$$) { } #add unassigned events - # for my $event_id (keys %{$event_ids}){ + # for my $event_id (@keys){ # if ($events_by_id->{$event_id}eq''){ # my $event={ # title => "not assigned", diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index 5a63c67..ed2c850 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -138,15 +138,16 @@ sub insert ($$$){ my $tablename = shift; my $entry = shift; - my $keys = join( ",", map { $_ } ( keys %$entry ) ); - my $values = join( ",", map { '?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $keys = join( ",", @keys ); + my $values = join( ",", map { '?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; my $sql = "insert into $tablename \n ($keys) \n values ($values);\n"; if ( $debug_write == 1 ) { print STDERR $sql . "\n"; - print STDERR Dumper( \@bind_values ) . "\n" if (@bind_values); + print STDERR Dumper( \@bind_values ) . "\n" if scalar(@bind_values); } put( $dbh, $sql, \@bind_values ); diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm index e94d157..76bf2cc 100644 --- a/lib/calcms/password_requests.pm +++ b/lib/calcms/password_requests.pm @@ -71,8 +71,9 @@ sub update($$) { return unless defined $entry->{user}; my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{token}; my $query = qq{ diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index 1592368..8875810 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -134,8 +134,9 @@ sub update($$) { $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{project_id}; my $query = qq{ diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index eb0facc..518ba19 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -193,8 +193,9 @@ sub update ($$) { $entry->{id} = $series->{series_id}; $entry->{modified_at} = time::time_to_datetime( time() ); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{id}; my $query = qq{ diff --git a/lib/calcms/series_schedule.pm b/lib/calcms/series_schedule.pm index 7e83176..9afff13 100644 --- a/lib/calcms/series_schedule.pm +++ b/lib/calcms/series_schedule.pm @@ -137,8 +137,9 @@ sub update($$) { delete $entry->{schedule_id}; my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{project_id}; push @bind_values, $entry->{studio_id}; diff --git a/lib/calcms/studio_timeslot_schedule.pm b/lib/calcms/studio_timeslot_schedule.pm index 26459ba..521f4d9 100644 --- a/lib/calcms/studio_timeslot_schedule.pm +++ b/lib/calcms/studio_timeslot_schedule.pm @@ -101,8 +101,9 @@ sub update($$) { delete $entry->{schedule_id}; my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{id}; my $query = qq{ diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 0288da5..2ae2953 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -117,8 +117,9 @@ sub update ($$) { } $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{id}; my $query = qq{ diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 0c99153..18ee678 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -211,8 +211,9 @@ sub update_user($$) { $entry->{modified_at} = time::time_to_datetime( time() ); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{id}; my $query = qq{ @@ -294,7 +295,7 @@ sub get_roles($$) { my $dbh = db::connect($config); my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); - for my $column ( keys %$columns ) { + for my $column ( sort keys %$columns ) { if ( defined $condition->{$column} ) { push @conditions, $column . '=?'; push @bind_values, $condition->{$column}; @@ -340,8 +341,9 @@ sub update_role($$) { my $dbh = db::connect($config); my $columns = db::get_columns_hash( $dbh, 'calcms_roles' ); - my $values = join( ",", map { $_ . '=?' } ( keys %$columns ) ); - my @bind_values = map { $entry->{$_} } ( keys %$columns ); + my @keys = sort keys %$columns; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{id}; my $query = qq{ diff --git a/lib/calcms/user_sessions.pm b/lib/calcms/user_sessions.pm index 8954eda..6d1f52a 100644 --- a/lib/calcms/user_sessions.pm +++ b/lib/calcms/user_sessions.pm @@ -190,8 +190,9 @@ sub update ($$) { return undef unless defined $entry->{session_id}; my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{session_id}; diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 732d8c5..0dc7b25 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -189,8 +189,9 @@ sub update($$) { return unless ( defined $entry->{user} ); my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{user}; my $query = qq{ diff --git a/lib/calcms/user_stats.pm b/lib/calcms/user_stats.pm index 0af00dd..3cd66a5 100644 --- a/lib/calcms/user_stats.pm +++ b/lib/calcms/user_stats.pm @@ -179,8 +179,9 @@ sub update ($$) { } $entry->{modified_at} = time::time_to_datetime( time() ); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{user}; push @bind_values, $entry->{project_id}; push @bind_values, $entry->{studio_id}; diff --git a/lib/calcms/work_schedule.pm b/lib/calcms/work_schedule.pm index 00508b7..bc0c078 100644 --- a/lib/calcms/work_schedule.pm +++ b/lib/calcms/work_schedule.pm @@ -112,8 +112,9 @@ sub update ($$) { return undef unless defined $entry->{start}; my $dbh = db::connect($config); - my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) ); - my @bind_values = map { $entry->{$_} } ( keys %$entry ); + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys); + my @bind_values = map { $entry->{$_} } @keys; push @bind_values, $entry->{project_id}; push @bind_values, $entry->{studio_id}; From bf2128f13c360d82b55f021e925e7c0532129f18 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 1 Mar 2020 14:57:26 +0100 Subject: [PATCH 106/391] show user session stats all roles having read-user-stats enabled can show a list of user sessions (last login, creation times, and active flag) to find unused accounts which could be deactivated. --- lib/calcms/user_stats.pm | 39 ++++++----- website/agenda/planung/pot/de/menu.po | 3 + website/agenda/planung/pot/de/user-stats.po | 27 ++++++++ website/agenda/planung/pot/en/menu.po | 3 + website/agenda/planung/pot/en/user-stats.po | 27 ++++++++ website/agenda/planung/templates/default.html | 4 ++ .../agenda/planung/templates/user-active.html | 67 +++++++++++++++++++ .../agenda/planung/templates/user-stats.html | 22 +++--- website/agenda/planung/user-stats.cgi | 49 +++++++++++--- 9 files changed, 206 insertions(+), 35 deletions(-) create mode 100644 website/agenda/planung/templates/user-active.html diff --git a/lib/calcms/user_stats.pm b/lib/calcms/user_stats.pm index 3cd66a5..1561215 100644 --- a/lib/calcms/user_stats.pm +++ b/lib/calcms/user_stats.pm @@ -67,8 +67,6 @@ sub get ($$) { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $results = db::get( $dbh, $query, \@bind_values ); return $results; } @@ -125,8 +123,6 @@ sub get_stats($$) { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $results = db::get( $dbh, $query, \@bind_values ); for my $result (@$results) { $result->{score} = 0; @@ -193,7 +189,6 @@ sub update ($$) { where user=? and project_id=? and studio_id=? and series_id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); my $dbh = db::connect($config); return db::put( $dbh, $query, \@bind_values ); } @@ -203,25 +198,16 @@ sub increase ($$$) { my $usecase = shift; my $options = shift; - #print STDERR Dumper($usecase)." ".Dumper($options); - return undef unless defined $usecase; return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; return undef unless defined $options->{series_id}; return undef unless defined $options->{user}; - #print STDERR "ok\n"; - my $columns = get_columns($config); - - #print STDERR "columns:".Dumper($columns); return undef unless defined $columns->{$usecase}; my $entries = get( $config, $options ); - - #print STDERR "exist:".Dumper($columns); - if ( scalar @$entries == 0 ) { my $entry = { project_id => $options->{project_id}, @@ -231,20 +217,37 @@ sub increase ($$$) { $usecase => 1, }; - #print STDERR "user_stats::insert\n"; return insert( $config, $entry ); } elsif ( scalar @$entries == 1 ) { my $entry = $entries->[0]; $entry->{$usecase}++ if defined - - #print STDERR "user_stats::update\n"; - return update( $config, $entry ); + return update( $config, $entry ); } else { print STDERR "user_stats: to few options given: $usecase," . Dumper($options) . "\n"; } } +sub get_active_users{ + my $config = shift; + + my $dbh = db::connect($config); + + my $query=qq{ + select u.name login, u.full_name, + s.last_login, s.login_count, + u.disabled, u.created_at, u.created_by + from calcms_users u left join ( + SELECT user , max(start) last_login, count(user) login_count + FROM calcms_user_sessions + group by user + ) s on s.user=u.name + order by u.disabled, s.last_login desc, u.created_at desc + }; + my $results = db::get( $dbh, $query, [] ); + return $results; +} + sub error ($) { my $msg = shift; print "ERROR: $msg
      \n"; diff --git a/website/agenda/planung/pot/de/menu.po b/website/agenda/planung/pot/de/menu.po index 7181cb6..c5008c9 100644 --- a/website/agenda/planung/pot/de/menu.po +++ b/website/agenda/planung/pot/de/menu.po @@ -58,3 +58,6 @@ msgstr "Dienstplan" msgid "preview" msgstr "Vorschau" +msgid "user-stats" +msgstr "Nutzeraktivität" + diff --git a/website/agenda/planung/pot/de/user-stats.po b/website/agenda/planung/pot/de/user-stats.po index 0e843bf..15bbbaa 100644 --- a/website/agenda/planung/pot/de/user-stats.po +++ b/website/agenda/planung/pot/de/user-stats.po @@ -31,3 +31,30 @@ msgstr "letzte Änderung" msgid "label_score" msgstr "Punkte" +msgid "label_login" +msgstr "Login" + +msgid "label_full_name" +msgstr "Name" + +msgid "label_last_login" +msgstr "letztes Login" + +msgid "label_login_count" +msgstr "Anzahl Logins" + +msgid "label_disabled" +msgstr "gesperrt" + +msgid "label_created_at" +msgstr "erstellt am" + +msgid "label_created_by" +msgstr "erstellt von" + +msgid "button_show_active_users" +msgstr "aktive Nutzer" + +msgid "button_show_user_stats" +msgstr "Nutzerstatistik" + diff --git a/website/agenda/planung/pot/en/menu.po b/website/agenda/planung/pot/en/menu.po index b4cd0eb..fba146c 100644 --- a/website/agenda/planung/pot/en/menu.po +++ b/website/agenda/planung/pot/en/menu.po @@ -58,3 +58,6 @@ msgstr "Schedule" msgid "preview" msgstr "Preview" +msgid "user-stats" +msgstr "User Stats" + diff --git a/website/agenda/planung/pot/en/user-stats.po b/website/agenda/planung/pot/en/user-stats.po index 3a7bd6a..8b63e90 100644 --- a/website/agenda/planung/pot/en/user-stats.po +++ b/website/agenda/planung/pot/en/user-stats.po @@ -31,3 +31,30 @@ msgstr "last modified at" msgid "label_score" msgstr "Score" +msgid "label_login" +msgstr "Login" + +msgid "label_full_name" +msgstr "Name" + +msgid "label_last_login" +msgstr "last login date" + +msgid "label_login_count" +msgstr "login counts" + +msgid "label_disabled" +msgstr "disabled" + +msgid "label_created_at" +msgstr "created at" + +msgid "label_created_by" +msgstr "created by" + +msgid "button_show_active_users" +msgstr "active users" + +msgid "button_show_user_stats" +msgstr "user stats" + diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index 7aaad28..2c93603 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -51,6 +51,10 @@ + + + + diff --git a/website/agenda/planung/templates/user-active.html b/website/agenda/planung/templates/user-active.html new file mode 100644 index 0000000..c94b240 --- /dev/null +++ b/website/agenda/planung/templates/user-active.html @@ -0,0 +1,67 @@ + + + + + + + + +

      +
      + + + + +
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + diff --git a/website/agenda/planung/templates/user-stats.html b/website/agenda/planung/templates/user-stats.html index cd08cc9..524271d 100644 --- a/website/agenda/planung/templates/user-stats.html +++ b/website/agenda/planung/templates/user-stats.html @@ -28,6 +28,10 @@ table#user_stats_table input{
      + +
      @@ -36,15 +40,15 @@ table#user_stats_table input{ - + + + + + + + + diff --git a/website/agenda/planung/user-stats.cgi b/website/agenda/planung/user-stats.cgi index 8ed6d39..c55b685 100755 --- a/website/agenda/planung/user-stats.cgi +++ b/website/agenda/planung/user-stats.cgi @@ -58,9 +58,16 @@ return unless uac::check( $config, $params, $user_presets ) == 1; our $errors = []; -show_stats( $config, $request ); +if ($params->{action} eq 'show-active-users'){ + show_active_users($config, $request); + return; +}; +if ($params->{action} eq 'show-user-stats'){ + show_user_stats( $config, $request ); + return; +}; -sub show_stats { +sub show_user_stats { my $config = shift; my $request = shift; @@ -70,14 +77,38 @@ sub show_stats { uac::permissions_denied('read_user_stats'); return; } - print STDERR "continue\n"; $params->{user_stats} = user_stats::get_stats( $config, $params ); $params->{permissions} = $permissions; $params->{errors} = $errors; $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'user-stats' } ); uac::set_template_permissions( $permissions, $params ); - template::process( $config, 'print', $params->{template}, $params ); + my $template = template::check( $config, 'user-stats' ); + template::process( $config, 'print', $template, $params ); +} + +sub show_active_users{ + my $config = shift; + my $request = shift; + + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{read_user_stats} ) { + uac::permissions_denied('read_user_stats'); + return; + } + my $user_stats = user_stats::get_active_users( $config, $params ); + for my $user (@$user_stats){ + $user->{disabled} = $user->{disabled} ? 'x' : '-'; + } + $params->{user_stats} = $user_stats; + $params->{permissions} = $permissions; + $params->{errors} = $errors; + + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'user-stats' } ); + uac::set_template_permissions( $permissions, $params ); + my $template = template::check( $config, 'user-active' ); + template::process( $config, 'print', $template, $params ); } sub check_params { @@ -86,10 +117,12 @@ sub check_params { my $checked = {}; - #template - my $template = ''; - $template = template::check( $config, $params->{template}, 'user-stats' ); - $checked->{template} = $template; + $checked->{action} = ''; + if ( defined $params->{action} ) { + if ( $params->{action} =~ /^(show-user-stats|show-active-users)$/ ) { + $checked->{action} = $params->{action}; + } + } #numeric values for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'series_id' ) { From fbb7e5552beb719daa565b1d970e4e831ce39944 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 1 Mar 2020 21:51:03 +0100 Subject: [PATCH 107/391] remove debug output in comments --- lib/calcms/audio_recordings.pm | 7 ------ lib/calcms/comments.pm | 16 -------------- lib/calcms/event_history.pm | 2 -- lib/calcms/events.pm | 18 ---------------- lib/calcms/images.pm | 18 ---------------- lib/calcms/localization.pm | 2 -- lib/calcms/playout.pm | 6 ------ lib/calcms/project.pm | 4 ---- lib/calcms/series.pm | 33 ----------------------------- lib/calcms/series_dates.pm | 13 ------------ lib/calcms/series_events.pm | 12 ----------- lib/calcms/series_schedule.pm | 5 ----- lib/calcms/studio_timeslot_dates.pm | 15 ------------- lib/calcms/studios.pm | 4 ---- lib/calcms/time.pm | 1 - lib/calcms/uac.pm | 6 ------ lib/calcms/user_settings.pm | 1 - lib/calcms/work_dates.pm | 14 ------------ 18 files changed, 177 deletions(-) diff --git a/lib/calcms/audio_recordings.pm b/lib/calcms/audio_recordings.pm index 67b3f5e..0eb4666 100644 --- a/lib/calcms/audio_recordings.pm +++ b/lib/calcms/audio_recordings.pm @@ -100,8 +100,6 @@ sub get($$) { $whereClause order by created_at desc }; - - #print STDERR Dumper($query).Dumper($bind_values); my $entries = db::get( $dbh, $query, $bind_values ); return $entries; } @@ -112,8 +110,6 @@ sub update($$$) { my $dbh = shift; my $entry = shift; - #print STDERR "update:".Dumper($entry); - my $day_start = $config->{date}->{day_starting_hour}; my $bind_values = [ @@ -140,8 +136,6 @@ sub update($$$) { $query .= ' and id=?'; push @$bind_values, $entry->{id}; } - - #print STDERR Dumper($query).Dumper($bind_values); return db::put( $dbh, $query, $bind_values ); } @@ -156,7 +150,6 @@ sub insert ($$$) { return undef unless defined $entry->{event_id}; return undef unless defined $entry->{path}; - #print STDERR "insert into audio_recordings:".Dumper($entry); return db::insert( $dbh, 'calcms_audio_recordings', diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 61eb561..0fc1aa7 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -26,14 +26,10 @@ sub get_cached_or_render($$$;$) { my $mark_locked = $_[3]; my $params = $request->{params}->{checked}; - - #print STDERR Dumper($params); $config->{app_name} = $config->{controllers}->{comments}; my $comment = $request->{params}->{checked}; - my $filename = ''; - my $results = comments::get( $config, $request ); if ( ( defined $mark_locked ) && ( $mark_locked eq 'mark_locked' ) ) { @@ -78,16 +74,9 @@ sub get($$) { my $request = shift; my $params = $request->{params}->{checked}; - my $dbh = db::connect( $config, $request ); - ( my $query, my $bind_values ) = comments::get_query( $dbh, $config, $request ); - - #print STDERR Dumper($$query); - #print STDERR Dumper($bind_values); my $results = db::get( $dbh, $$query, $bind_values ); - - #print STDERR Dumper($results); return $results; } @@ -349,10 +338,7 @@ sub get_by_event($$$) { order by created_at $sort_order $limit }; - - #print STDERR $query."\n"; my $comments = db::get( $dbh, $query, $bind_values ); - return $comments; } @@ -593,8 +579,6 @@ sub sort($$) { push @root_nodes, $node if ( $node->{level} == 0 ); } - #print STDERR Dumper(\@root_nodes); - #sort root nodes from newest to oldest my $sorted_nodes = []; for my $node (@root_nodes) { diff --git a/lib/calcms/event_history.pm b/lib/calcms/event_history.pm index 6d1a100..94b5524 100644 --- a/lib/calcms/event_history.pm +++ b/lib/calcms/event_history.pm @@ -75,8 +75,6 @@ sub get ($$){ $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $changes = db::get( $dbh, $query, \@bind_values ); for my $change (@$changes) { diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 144c5ab..701d4f3 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -62,14 +62,8 @@ sub get($$) { my $dbh = db::connect( $config, $request ); ( my $query, my $bind_values ) = events::get_query( $dbh, $config, $request ); - - #print STDERR Dumper($query).Dumper($bind_values)."\n"; - my $results = db::get( $dbh, $$query, $bind_values ); - #$results = events::add_recordings($dbh, $config, $request, $results); - - #print STDERR Dumper($results); $results = events::modify_results( $dbh, $config, $request, $results ); return $results; @@ -301,10 +295,6 @@ sub modify_results ($$$$) { #$result->{'project_title'}=$project->{title} if (defined $project->{title} && $project->{title} ne ''); - #print STDERR "project:'$project_name'\n"; - #print STDERR "title:'$result->{project_title}'\n"; - #use Data::Dumper;print STDERR Dumper($result); - for my $name ( keys %{ $config->{mapping}->{events} } ) { my $val = ''; if ( ( defined $name ) @@ -323,8 +313,6 @@ sub modify_results ($$$$) { $previous_result = $result; - #print "Content-type:text/text\n\n"; - #use Data::Dumper;print STDERR Dumper($result); $result->{ 'counter_' . $counter } = 1; $counter++; @@ -418,8 +406,6 @@ sub add_recurrence_dates { where id in ($conditions) }; - #print STDERR Dumper($query); - #return; my $dbh = db::connect($config); my $events = db::get( $dbh, $query, $bind_values ); @@ -436,7 +422,6 @@ sub add_recurrence_dates { $recurrence_dates->{ $result->{recurrence} }; } - #print STDERR Dumper($recurrence_dates); } sub calc_dates { @@ -549,7 +534,6 @@ sub add_recordings($$$$) { my $request = shift; my $events = shift; - # print STDERR Dumper($results); return $events unless defined $events; my $params = $request->{params}->{checked}; @@ -580,8 +564,6 @@ sub add_recordings($$$$) { $dbh = db::connect($config) unless defined $dbh; my $recordings = db::get( $dbh, $query, $bindValues ); - #print STDERR Dumper($recordings); - for my $entry (@$recordings) { my $eventId = $entry->{event_id}; my $event = $eventsById->{$eventId}; diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 4c97ea5..74e84da 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -91,8 +91,6 @@ sub get($$) { $limit }; - #print STDERR Dumper($query).Dumper($bind_values); - my $dbh = db::connect($config); my $results = db::get( $dbh, $query, $bind_values ); @@ -147,8 +145,6 @@ sub insert ($$) { values( } . join( ', ', ( map { '?' } @sql_columns ) ) . q{ ) }; my @bind_values = map { $image->{$_} } @sql_columns; - - #print STDERR Dumper($query).Dumper(\@bind_values); my $result = db::put( $dbh, $query, \@bind_values ); images::setSeriesLabels( $dbh, $image ); @@ -208,8 +204,6 @@ sub update($$) { set $set where $conditions }; - - #print STDERR Dumper($query) . Dumper($bind_values); my $result = db::put( $dbh, $query, $bind_values ); images::setSeriesLabels( $dbh, $image ); @@ -253,8 +247,6 @@ sub delete($$) { delete from calcms_images where $conditions }; - - #print STDERR Dumper($query).Dumper($bind_values); return db::put( $dbh, $query, $bind_values ); } @@ -499,12 +491,7 @@ sub setEventLabels($$) { where image=? }; my $bind_values = [ $image->{licence}, $image->{filename} ]; - - #print STDERR Dumper($query) . Dumper($bind_values); - my $results = db::put( $dbh, $query, $bind_values ); - - #print STDERR Dumper($results) . " changes\n"; return $results; } @@ -531,12 +518,7 @@ sub setSeriesLabels($$) { where series_image=? }; my $bind_values = [ $image->{licence}, $image->{filename} ]; - - #print STDERR Dumper($query) . Dumper($bind_values); - my $results = db::put( $dbh, $query, $bind_values ); - - #print STDERR Dumper($results) . " changes\n"; return $results; } diff --git a/lib/calcms/localization.pm b/lib/calcms/localization.pm index 6481b12..c89a5f0 100644 --- a/lib/calcms/localization.pm +++ b/lib/calcms/localization.pm @@ -22,8 +22,6 @@ sub get($$) { my $config = shift; my $options = shift; - #print STDERR Dumper($options); - #get pot file unless ( defined $options->{file} ) { print STDERR "missing po file\n"; diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index d6e3368..40372bc 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -129,7 +129,6 @@ sub get_scheduled($$) { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); my $entries = db::get( $dbh, $query, \@bind_values ); return $entries; } @@ -230,7 +229,6 @@ sub get($$) { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); my $entries = db::get( $dbh, $query, \@bind_values ); return $entries; } @@ -241,7 +239,6 @@ sub sync ($$) { my $config = shift; my $options = shift; - #print STDERR Dumper($config); print STDERR "upload " . Dumper($options); return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; @@ -489,14 +486,11 @@ sub getEnd ($$) { my @start = @{ time::datetime_to_array($start) }; next unless @start >= 6; - #print STDERR Dumper(\@start); my @end_datetime = Date::Calc::Add_Delta_DHMS( $start[0], $start[1], $start[2], # start date $start[3], $start[4], $start[5], # start time 0, 0, 0, int($duration) # delta days, hours, minutes, seconds ); - - #print STDERR Dumper(\@end_datetime); return time::array_to_datetime( \@end_datetime ); } diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index 8875810..78dbdad 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -73,8 +73,6 @@ sub get ($;$) { $limit }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $projects = db::get( $dbh, $query, \@bind_values ); return $projects; } @@ -144,8 +142,6 @@ sub update($$) { set $values where project_id=? }; - - #print STDERR Dumper($query).Dumper(\@bind_values); my $dbh = db::connect($config); db::put( $dbh, $query, \@bind_values ); } diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 518ba19..903e2ff 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -122,13 +122,10 @@ sub get ($$) { my $dbh = db::connect($config); my $series = db::get( $dbh, $query, \@bind_values ); - #print STDERR Dumper(time()); for my $serie (@$series) { $serie->{series_id} = $serie->{id}; delete $serie->{id}; } - - #print STDERR Dumper($series); return $series; } @@ -137,7 +134,6 @@ sub insert ($$) { my $config = shift; my $series = shift; - #print STDERR Dumper($series); return undef unless defined $series->{project_id}; return undef unless defined $series->{studio_id}; @@ -155,8 +151,6 @@ sub insert ($$) { $entry->{created_at} = time::time_to_datetime( time() ); $entry->{modified_at} = time::time_to_datetime( time() ); - #print STDERR Dumper($entry); - my $dbh = db::connect($config); my $series_id = db::insert( $dbh, 'calcms_series', $entry ); @@ -204,8 +198,6 @@ sub update ($$) { where id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $dbh = db::connect($config); return db::put( $dbh, $query, \@bind_values ); } @@ -453,8 +445,6 @@ sub search_events ($$$) { } my $checked_params = events::check_params( $config, $params ); - - #print STDERR '
      '.Dumper($checked_params).'
      '; my $request2 = { params => { checked => $checked_params @@ -464,10 +454,7 @@ sub search_events ($$$) { }; #my $debug=1; - #print STDERR Dumper($request2->{params}); my $events = events::get( $config, $request2 ); - - #print Dumper($events); return $events; } @@ -476,7 +463,6 @@ sub get_events ($$) { my $config = shift; my $options = shift; - #print STDERR Dumper($options); return [] if defined( $options->{series_id} ) && ( $options->{series_id} <= 0 ); my @conditions = (); @@ -545,13 +531,8 @@ sub get_events ($$) { $limit }; - #print STDERR '
      '.$query.Dumper(\@bind_values).'
      '; - my $dbh = db::connect($config); my $results = db::get( $dbh, $query, \@bind_values ); - - #print STDERR Dumper($results); - $results = events::modify_results( $dbh, $config, { @@ -576,7 +557,6 @@ sub get_events ($$) { $result->{studio_id} = $studio_id_by_location->{ $result->{location} }; } - #print STDERR Dumper($results); return $results; } @@ -652,7 +632,6 @@ sub get_event_age($$) { my $config = shift; my $options = shift; - #print STDERR Dumper($options); return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; @@ -709,8 +688,6 @@ sub is_event_older_than_days ($$) { my $config = shift; my $options = shift; - #print STDERR Dumper($options); - return 1 unless defined $options->{project_id}; return 1 unless defined $options->{studio_id}; return 1 unless defined $options->{series_id}; @@ -733,8 +710,6 @@ sub is_event_older_than_days ($$) { return 1; } my $event = $events->[0]; - - #print STDERR Dumper($event); return 1 if $event->{days_over} > $options->{max_age}; return 0; } @@ -759,8 +734,6 @@ sub get_next_episode($$) { return 0 if ( @$results != 1 ); return 0 if ( $results->[0]->{count_episodes} eq '0' ); - #print STDERR Dumper($results); - #get all $query = q{ select title,episode from calcms_events e, calcms_series_events se @@ -836,10 +809,7 @@ sub get_images ($$) { $limit }; - #print STDERR Dumper($query).Dumper($bind_values); my $results = db::get( $dbh, $query, $bind_values ); - - #print STDERR @$results."\n"; return $results; } @@ -849,7 +819,6 @@ sub assign_event($$) { my $config = shift; my $entry = shift; - #print STDERR Dumper($entry); return undef unless defined $entry->{project_id}; return undef unless defined $entry->{studio_id}; return undef unless defined $entry->{series_id}; @@ -1147,7 +1116,6 @@ sub is_event_assigned_to_user ($$) { } ); - #print STDERR Dumper(@$events); return "no event found for" . " project $options->{project_id}," @@ -1206,7 +1174,6 @@ sub get_rebuilt_episodes ($$) { $done->{$event2->{id}}=1; }; } - #print STDERR Dumper($events); return $events; } diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index c69b650..c8d0871 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -104,9 +104,6 @@ sub get ($;$) { order by start }; - #print STDERR $query."\n"; - #print STDERR Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); for my $entry (@$entries) { $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); @@ -331,8 +328,6 @@ sub update($$) { for my $date (@$dates) { $date->{exclude} = 0; $series_dates->{ $date->{start} } = $date; - - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); } } @@ -342,13 +337,9 @@ sub update($$) { for my $date (@$dates) { $date->{exclude} = 1; $series_dates->{ $date->{start} } = $date; - - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); } } - #print STDERR Dumper($series_dates->{'2014-02-05 19:00:00'}); - my $request = { config => $config }; my $i = 0; @@ -370,13 +361,9 @@ sub update($$) { $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); db::insert( $dbh, 'calcms_series_dates', $entry ); - - #print STDERR "$entry->{start_date}\n"; $i++; } else { $j++; - - #print STDERR Dumper($entry); } } diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index 4a6ccd7..28ccef6 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -53,7 +53,6 @@ sub save_content($$) { $entry->{$attr} = images::normalizeName( $entry->{$attr} ) if defined $entry->{$attr}; } - #print STDERR Dumper(\$entry->{content}); for my $attr ( 'content', 'topic' ) { if ( defined $entry->{$attr} ) { $entry->{ 'html_' . $attr } = markup::creole_to_html( $entry->{$attr} ); @@ -64,12 +63,7 @@ sub save_content($$) { } } - #print STDERR Dumper(\$entry->{series_image}); - #print STDERR "ok2\n"; - #return; $entry->{modified_at} = time::time_to_datetime( time() ); - - #return; #update only existing atributes #TODO: double check series_name (needed for reassignment but not for editing...) @@ -207,10 +201,7 @@ sub set_playout_status ($$) { }; my $bind_values = [ $entry->{start}, $entry->{project_id}, $entry->{studio_id} ]; - #print STDERR Dumper($sql).Dumper($bind_values); my $events = db::get( $dbh, $sql, $bind_values ); - - #print STDERR Dumper($events); return undef if scalar(@$events) != 1; my $event_id = $events->[0]->{event_id}; $sql = qq{ @@ -220,8 +211,6 @@ sub set_playout_status ($$) { and start=? }; $bind_values = [ $entry->{playout}, $event_id, $entry->{start} ]; - - #print STDERR $sql."\n".Dumper($bind_values)."\n"; my $result = db::put( $dbh, $sql, $bind_values ); return $result; } @@ -498,7 +487,6 @@ sub insert_event ($$) { $event->{created_at} = time::time_to_datetime( time() ); $event->{modified_by} = $user; - #print STDERR Dumper($event); my $dbh = db::connect($config); my $event_id = db::insert( $dbh, 'calcms_events', $event ); diff --git a/lib/calcms/series_schedule.pm b/lib/calcms/series_schedule.pm index 9afff13..cc4ebac 100644 --- a/lib/calcms/series_schedule.pm +++ b/lib/calcms/series_schedule.pm @@ -97,15 +97,11 @@ sub get($$) { order by exclude, start }; - #print STDERR $query."\n".Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); for my $entry (@$entries) { $entry->{schedule_id} = $entry->{id}; delete $entry->{id}; } - - #print STDERR Dumper($entries); return $entries; } @@ -151,7 +147,6 @@ sub update($$) { where project_id=? and studio_id=? and id=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); db::put( $dbh, $query, \@bind_values ); print "done\n"; } diff --git a/lib/calcms/studio_timeslot_dates.pm b/lib/calcms/studio_timeslot_dates.pm index bc60517..61be874 100644 --- a/lib/calcms/studio_timeslot_dates.pm +++ b/lib/calcms/studio_timeslot_dates.pm @@ -109,16 +109,12 @@ sub get ($$){ order by start }; - #print STDERR $query."\n"; - #print STDERR Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); for my $entry (@$entries) { $entry->{start_weekday} = substr( $entry->{start_weekday}, 0, 2 ); $entry->{end_weekday} = substr( $entry->{end_weekday}, 0, 2 ); } - #print STDERR Dumper($entries); return $entries; } @@ -152,9 +148,7 @@ sub update { #calculate dates from start to end_date my $dateList = get_dates( $schedule->{start}, $schedule->{end}, $schedule->{end_date}, $schedule->{frequency} ); - #print STDERR Dumper($dateList); for my $date (@$dateList) { - #set studio i from $date->{project_id} = $schedule->{project_id}; $date->{studio_id} = $schedule->{studio_id}; @@ -177,12 +171,8 @@ sub update { $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); $entry->{end_date} = time::add_hours_to_datetime( $entry->{end}, -$day_start ); db::insert( $dbh, 'calcms_studio_timeslot_dates', $entry ); - - #print STDERR "$entry->{start_date}\n"; $i++; } - - #print STDERR "$i studio_timeslot_dates updates\n"; return $i; } @@ -266,8 +256,6 @@ sub get_dates { my @start_date = Date::Calc::Add_Delta_Days( $start[0], $start[1], $start[2], $i ); my @end_date = Date::Calc::Add_Delta_Days( $end[0], $end[1], $end[2], $i ); - #print STDERR Dumper(\@start_date); - #print STDERR Dumper(\@end_date); my $start_date = sprintf( "%04d-%02d-%02d", @start_date ); my $end_date = sprintf( "%04d-%02d-%02d", @end_date ); push @$dates, @@ -350,11 +338,8 @@ sub can_studio_edit_events { $conditions }; - #print STDERR Dumper($query).Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); - #print STDERR Dumper($entries); return 0 if scalar(@$entries) == 0; return 1 if $entries->[0]->{permission} > 0; diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 2ae2953..f9fbeca 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -74,8 +74,6 @@ sub get($;$) { }; } my $dbh = db::connect($config); - - #print STDERR Dumper($query).Dumper(\@bind_values); my $studios = db::get( $dbh, $query, \@bind_values ); return $studios; } @@ -129,8 +127,6 @@ sub update ($$) { }; my $dbh = db::connect($config); - - #print STDERR Dumper($query)." ".Dumper(\@bind_values); db::put( $dbh, $query, \@bind_values ); } diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index 1688f0a..af00ca1 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -221,7 +221,6 @@ sub add_days_to_datetime($;$) { $days = 0 unless defined $days; my $time = datetime_to_array($datetime); - #print STDERR Dumper($time); ( $time->[0], $time->[1], $time->[2] ) = Date::Calc::Add_Delta_Days( $time->[0] + 0, $time->[1] + 0, $time->[2] + 0, $days ); return array_to_datetime($time); } diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 18ee678..8246aa5 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -352,8 +352,6 @@ sub update_role($$) { where id=? }; - # print $query."
      \n".Dumper(\@bind_values)."
      \ņ"; - db::put( $dbh, $query, \@bind_values ); } @@ -554,7 +552,6 @@ sub assign_user_role($$) { my $config = shift; my $options = shift; - #print STDERR Dumper($options); return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; return undef unless defined $options->{user_id}; @@ -600,10 +597,8 @@ sub remove_user_role($$) { }; my $bind_values = [ $options->{project_id}, $options->{studio_id}, $options->{user_id}, $options->{role_id} ]; - #print STDERR Dumper($query).Dumper($bind_values); my $dbh = db::connect($config); my $result = db::put( $dbh, $query, $bind_values ); - # successfully return even if no entry exists return 1; } @@ -767,7 +762,6 @@ sub get_user_presets($$) { my $logout_url = ( split( /\//, $0 ) )[-1]; - #print STDERR "ok\n"; my $result = { user => $user, logout_url => $logout_url, diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 0dc7b25..4b9d62b 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -200,7 +200,6 @@ sub update($$) { where user=? }; - #print STDERR Dumper($query).Dumper(\@bind_values); db::put( $dbh, $query, \@bind_values ); print "done\n"; } diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index 966ea45..7c80b10 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -115,9 +115,6 @@ sub get ($$) { order by start }; - #print STDERR $query."\n"; - #print STDERR Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); for my $entry (@$entries) { $entry->{weekday} = substr( $entry->{weekday}, 0, 2 ); @@ -162,8 +159,6 @@ sub update($$) { for my $date (@$dates) { $date->{exclude} = 0; $work_dates->{ $date->{start} } = $date; - - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); } } @@ -173,15 +168,10 @@ sub update($$) { for my $date (@$dates) { $date->{exclude} = 1; $work_dates->{ $date->{start} } = $date; - - #print STDERR Dumper($date)."\n" if ($date->{start} eq'2014-02-05 19:00:00'); } } - #print STDERR Dumper($work_dates->{'2014-02-05 19:00:00'}); - my $request = { config => $config }; - my $i = 0; my $j = 0; for my $date ( keys %$work_dates ) { @@ -208,8 +198,6 @@ sub update($$) { $i++; } else { $j++; - - #print STDERR Dumper($entry); } } @@ -382,8 +370,6 @@ sub delete($$) { where project_id=? and studio_id=? and schedule_id=? }; my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id} ]; - - #print '
      $query'.$query.Dumper($bind_values).'
      '; return db::put( $dbh, $query, $bind_values ); } From b9f0870955641c72f9b38c89b01e3828d04c7b71 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 1 Mar 2020 22:08:48 +0100 Subject: [PATCH 108/391] markup: cleanup comments --- lib/calcms/creole_wiki.pm | 35 +----------- lib/calcms/markup.pm | 110 +------------------------------------- 2 files changed, 4 insertions(+), 141 deletions(-) diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index 72d590c..d4b1d56 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -86,7 +86,6 @@ sub extractEventFromWikiText($;$) { $category =~ s/^\s+|\s+$//g; $category =~ s/\&/\+/g; - # print $category."\n"; push @categories, $category if ( defined $category && $category =~ /\S/ ); $title =~ s/\((.*?)\)//; } @@ -100,9 +99,6 @@ sub extractEventFromWikiText($;$) { my $podcast_url = ''; if ( $event->{content} =~ /\[\[\s*([^\|\]]+)\s*\|\s*podcast\s*\]\]/i ) { $podcast_url = $1; - - # $podcast_url=~s/\|.*//g; - # print "found podcast:".$podcast_url."\n"; } $event->{podcast_url} = $podcast_url; @@ -110,9 +106,6 @@ sub extractEventFromWikiText($;$) { my $media_url = ''; if ( $event->{content} =~ /\[\[\s*([^\|\]]+)\s*\|\s*(direct\s+)?download\s*\]\]/i ) { $media_url = $1; - - # $podcast_url=~s/\|.*//g; - # print "found media:".$media_url."\n"; } $event->{media_url} = $media_url; @@ -162,28 +155,16 @@ sub eventToWikiText($$) { } my $meta = extractMeta( $event->{comments}, $event->{meta} ); - - #use Data::Dumper;print "extracted meta".Dumper($meta); - $event->{comments} = removeMeta( $event->{comments} ); $event->{wiki_comments} = $event->{comments} . "\n\n" . metaToWiki($meta); - - #use Data::Dumper;print "event content".Dumper($event->{content}); - - #rich content editors: - #$event->{wiki_content}=markup::html_to_creole($event->{content}); - #markup editors $event->{wiki_content} = $event->{content}; -# [[http://localhost/agenda_files/media/images/Vl8X7YmaWrmm9RMN_OMywA.jpg|{{http://localhost/agenda_files/media/thumbs/Vl8X7YmaWrmm9RMN_OMywA.jpg|}}]] -#replace "thumbs/xxx" link by link to local media URI -# while ($event->{wiki_content}=~/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/){ + # [[http://localhost/agenda_files/media/images/Vl8X7YmaWrmm9RMN_OMywA.jpg|{{http://localhost/agenda_files/media/thumbs/Vl8X7YmaWrmm9RMN_OMywA.jpg|}}]] + #replace "thumbs/xxx" link by link to local media URI $event->{wiki_content} =~ s/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/\{\{thumbs\/$1\|$3\}\}/g; - # } - my $wiki_content = join( "\n" . ( "-" x 20 ) . "\n", ( $event->{excerpt}, $event->{wiki_content} ) ); $wiki_content .= "\n" . ( "-" x 20 ) . "\n" . $event->{wiki_comments} if ( $event->{wiki_comments} =~ /\S/ ); @@ -231,8 +212,6 @@ sub extractMeta ($$){ } } } - - # use Data::Dumper;print Dumper($meta); return $meta; } @@ -244,8 +223,6 @@ sub removeMeta($) { for my $line ( split( /\n/, $comments ) ) { $result .= $line unless ( $line =~ /\~\~META\:(.+?)\=(.+?)\~\~/g ); } - - #use Data::Dumper;print "removed metsas:".Dumper($result); $result =~ s/^\s+//g; $result =~ s/\s+$//g; @@ -258,18 +235,10 @@ sub metaToWiki { my $result = ''; for my $pair (@$meta) { - - # use Data::Dumper;print Dumper($pair); $result .= '~~META:' . $pair->{name} . '=' . $pair->{value} . '~~' . "\n"; } return $result; - - #use Data::Dumper;print Dumper($meta); - } -#test: -#perl -e 'use creole_wiki;$a=creole_wiki::extractEventFromWikiText("teaser\n----------------------\nbody[[asd|download]][[bsd|hallo]][[csd|podcast]]{{a|b}}[[dsd|wer]]\n----------------------\ncomments",{title=>" a : b - c ( d e - f , g h i - j, k - m - l) "});use Data::Dumper;print Dumper($a)'; - #do not delete last line! 1; diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index 1d98c15..7a4d85c 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -41,33 +41,13 @@ sub html_to_creole($) { my $s = shift; #remove elements - # $s=~s/[\r\f\n]+/\n/gi; - # $s=~s/<\/p.*?>//gi; - # $s=~s/<\/br.*?>//gi; $s =~ s/\<\!\-\-[\s\S]*?\-\-\>//gi; $s =~ s/.*?<\/script.*?>//gi; - - # $s=~s/<\/?span.*?>//gi; - # $s=~s/<\/?font.*?>//gi; - # $s=~s/<\/?meta.*?>//gi; - # $s=~s/<\/?title.*?>//gi; - # $s=~s/<\/?style.*?>//gi; - # $s=~s/<\/?col.*?>//gi; - # $s=~s/<\/?thead.*?>//gi; - # $s=~s/<\/?tbody.*?>//gi; $s =~ s/<\/?form.*?>//gi; $s =~ s/<\/?select.*?>//gi; $s =~ s/<\/?option.*?//gi; $s =~ s/<\/?input.*?>//gi; - - # $s=~s/<\/?button.*?>//gi; - # $s=~s/<\/?textarea.*?>//gi; $s =~ s/<\/?script.*?>//gi; - - #table elements - # $s=~s/\s*<\/?td.*?>//gi; - # $s=~s/\s*<\/?th.*?>//gi; - #remove line breaks $s =~ s/[\r\n]+/ /gi; @@ -87,13 +67,10 @@ sub html_to_creole($) { $s =~ s/<\/?i.*?>//gi; $s =~ s/(.*?)<\/b>/\*\*$1\*\*/gi; - # $s=~s/<\/?b.*?>//gi; - $s =~ s/(.*?)<\/strong>/\*\*$1\*\*/gi; $s =~ s/(.*?)<\/em>/\/\/$1\/\//gi; $s =~ s/((\W+|\w+)*?)<\/blockquote>/{{{$1}}}/gi; - # $s=~s/((\W+|\w+)*?)<\/a>/\[\[$1\|$2\]\]$3/gi; $s =~ s/(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; $s =~ s///gi; @@ -101,59 +78,27 @@ sub html_to_creole($) { $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - - # print STDERR Dumper($s) if ($s=~//== /gi; $s =~ s/\s*/=== /gi; $s =~ s/\s*/==== /gi; $s =~ s/\s*/===== /gi; - # $s=~s/\s*<\/h\d.*?>/\n/gi; - - # $s=~s//\\\\
      /gi; - # $s=~s/\s*//gi; - # $s=~s/\s*<\/div>/\n/gi; - - # $s=~s//\n/gi; - # $s=~s/<\/table>/\n/gi; - # $s=~s/\s*//gi; - # $s=~s/\s*<\/tr>//gi; - - # $s=~s/\s*/\n/gi; - # $s=~s/\s*<\/ol>/\n/gi; - # $s=~s/\s*/\n/gi; - # $s=~s/\s*<\/ul>/\n/gi; - # $s=~s/\s*/\n\* /gi; - # $s=~s/\s*<\/li>//gi; - - # $s=~s/\s*\s*/\n\n/gi; - # $s=~s/\s*\s*/\n /gi; - my $tree = HTML::Parse::parse_html( '' . $s . '' ); my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 2000 ); $s = $formatter->format($tree); - #use Data::Dumper; print "asd:"; $s =~ s/\//gi; - return $s; } sub creole_to_html ($) { my $s = $_[0] || ''; - #$s=~s/\n\#\n/\n/g; - #fix_line_ends($s); $s =~ s/(.*?)(\s*)<\/a>/\[\[$1\|$2\]\]$3/gi; $s =~ s///gi; @@ -193,28 +129,11 @@ sub creole_to_html ($) { $s = Text::WikiCreole::creole_parse($s) || ''; - # $s=~s/

      /\n/gi; - # $s=~s/\{\{\{((\W+|\w+)+?)\}\}\}/

      $1<\/blockquote>/g; - # $s=~s/\{\{(.+?)\|(.*?)\}\}//g; - # $s=~s/\[\[(.+?)\|(.*?)\]\]/$2<\/a>/g; - # $s=~s/([^\:])\/\/(.*?[^\:])\/\//$1$2<\/em> /g; - # $s=~s/\n=== (.*?)\n/

      $1<\/h3>\n/g; - # $s=~s/\n== (.*?)\n/

      $1<\/h2>\n/g; #replace line breaks from images $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; $s =~ s/(\{\{[^\}\n]*?)\n([^\}\n]*?\}\})/$1$2/g; - #replace line breaks from links - # $s=~s/\n= (.*?)\n/

      $1<\/h1>\n/g; - # $s=~s/\*\*(.*?)\*\*/$1<\/strong> /g; - # $s=~s/^== (.*?)\n/

      $1<\/h2>\n/g; - # $s=~s/\n\* (.*?)([\r\n]+)/
    9. $1<\/li>\n/g; - # $s=~s/\n\- (.*?)\n/$1<\/lo>\n/g; - # $s=~s/\n\n/

      /gi; - # $s=~s/\n+/
      /gi; - # $s=~s/\\s*

      |<$elem>|g; @@ -288,25 +207,6 @@ sub plain_to_xml($) { $_[0] =~ s/\[\[.+?\|(.+?)\]\]/$1/g; $_[0] =~ s/\{\{.+?\}\}//g; return encode_xml_element( $_[0] ); - - # $_[0]=~s/\ä/ä/gi; - # $_[0]=~s/\ö/ö/gi; - # $_[0]=~s/\ü/ü/gi; - # $_[0]=~s/\Ä/Ä/gi; - # $_[0]=~s/\Ö/Ö/gi; - # $_[0]=~s/\Ü/Ü/gi; - # $_[0]=~s/\ß/ß/gi; - # $_[0]=~s/\&/\&/gi; - # $_[0]=~s/\/\>/gi; - # $_[0]=~s/\"/\"/gi; - -## $_[0]=~s/\n//gi; -## $_[0]=~s/\&amp;/\&/gi; -## $_[0]=~s/\&amp;/+/gi; -## $_[0]=~s/\&/+/gi; -## $_[0]=~s/\&/+/gi; - # return $_[0]; } sub fix_utf8($) { @@ -324,22 +224,16 @@ sub compress ($) { if ( $_[0] =~ /(Content\-type\:[^\n]+[\n]+)/ ) { $header = $1; - } else { - - #return; } - my $start = index( $_[0], $header ); return if ( $start < 0 ); my $header_length = length($header); $header = substr( $_[0], 0, $start + $header_length ); - # print $header."\n"; - my $content = substr( $_[0], $start + $header_length ); - # #remove multiple line breaks + #remove multiple line breaks $content =~ s/[\r\n]+[\s]*[\r\n]+/\n/g; #remove leading whitespaces From 9860eee1e24e9e5e3946a3ce42d8e67607621aaf Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 1 Mar 2020 22:48:01 +0100 Subject: [PATCH 109/391] Refactor markup and creole_wiki --- lib/calcms/creole_wiki.pm | 25 ++++++++++++++++--------- lib/calcms/markup.pm | 3 ++- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index d4b1d56..8452645 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -8,7 +8,8 @@ use Data::Dumper; use markup(); use base 'Exporter'; -our @EXPORT_OK = qw(extractEventFromWikiText removeMeta eventToWikiText extractMeta removeMeta metaToWiki); +our @EXPORT_OK = + qw(extractEventFromWikiText removeMeta eventToWikiText extractMeta removeMeta metaToWiki); #convert creole wiki text to event sub extractEventFromWikiText($;$) { @@ -111,7 +112,7 @@ sub extractEventFromWikiText($;$) { #replace "thumbs/xxx" link by link to local media URI $event->{content} =~ - s/\{\{\s*thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}/\[\[$local_media_url\/images\/$1\|\{\{$local_media_url\/thumbs\/$1\|$2\}\}\]\]/g; +s/\{\{\s*thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}/\[\[$local_media_url\/images\/$1\|\{\{$local_media_url\/thumbs\/$1\|$2\}\}\]\]/g; #extract image from content if ( $event->{content} =~ /\{\{(.*?)(\||\}\})/ ) { @@ -157,16 +158,19 @@ sub eventToWikiText($$) { my $meta = extractMeta( $event->{comments}, $event->{meta} ); $event->{comments} = removeMeta( $event->{comments} ); $event->{wiki_comments} = $event->{comments} . "\n\n" . metaToWiki($meta); + #markup editors $event->{wiki_content} = $event->{content}; - # [[http://localhost/agenda_files/media/images/Vl8X7YmaWrmm9RMN_OMywA.jpg|{{http://localhost/agenda_files/media/thumbs/Vl8X7YmaWrmm9RMN_OMywA.jpg|}}]] - #replace "thumbs/xxx" link by link to local media URI +# [[http://localhost/agenda_files/media/images/Vl8X7YmaWrmm9RMN_OMywA.jpg|{{http://localhost/agenda_files/media/thumbs/Vl8X7YmaWrmm9RMN_OMywA.jpg|}}]] +#replace "thumbs/xxx" link by link to local media URI $event->{wiki_content} =~ - s/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/\{\{thumbs\/$1\|$3\}\}/g; +s/\[\[.*?\/+media\/+images\/+(.*?)\s*\|.*?\{\{.*?\/+media\/+thumbs\/+(.*?)\s*\|\s*(.*?)\s*\}\}\]\]/\{\{thumbs\/$1\|$3\}\}/g; - my $wiki_content = join( "\n" . ( "-" x 20 ) . "\n", ( $event->{excerpt}, $event->{wiki_content} ) ); - $wiki_content .= "\n" . ( "-" x 20 ) . "\n" . $event->{wiki_comments} if ( $event->{wiki_comments} =~ /\S/ ); + my $wiki_content = + join( "\n" . ( "-" x 20 ) . "\n", ( $event->{excerpt}, $event->{wiki_content} ) ); + $wiki_content .= "\n" . ( "-" x 20 ) . "\n" . $event->{wiki_comments} + if ( $event->{wiki_comments} =~ /\S/ ); return { title => $title, @@ -177,7 +181,7 @@ sub eventToWikiText($$) { } #extrace meta tags from comment text -sub extractMeta ($$){ +sub extractMeta ($$) { my $comments = shift; my $meta = shift; @@ -202,7 +206,10 @@ sub extractMeta ($$){ $value =~ s/^\s+|\s+$//g; #insert into list, if not defined yet - unless ( ( $name eq '' ) || ( $value eq '' ) || ( exists $meta_keys->{ $name . '=' . $value } ) ) { + unless ( ( $name eq '' ) + || ( $value eq '' ) + || ( exists $meta_keys->{ $name . '=' . $value } ) ) + { push @$meta, { name => $name, diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index 7a4d85c..e98c885 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -48,6 +48,7 @@ sub html_to_creole($) { $s =~ s/<\/?option.*?//gi; $s =~ s/<\/?input.*?>//gi; $s =~ s/<\/?script.*?>//gi; + #remove line breaks $s =~ s/[\r\n]+/ /gi; @@ -78,7 +79,7 @@ sub html_to_creole($) { $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; $s =~ s/(\[\[[^\]\n]*?)\n([^\]]*?\]\])/$1$2/g; - + $s =~ s/[\s]+/ /gi; #line elements, increase head line level to avoid breaking single = chars From 87094ac5377c11c8a1071826d75bffd90d78072e Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 1 Mar 2020 22:48:15 +0100 Subject: [PATCH 110/391] refactor event and series editor --- website/agenda/planung/event.cgi | 133 +++++++--------- website/agenda/planung/series.cgi | 246 +++++++++++++++++------------- 2 files changed, 195 insertions(+), 184 deletions(-) diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index a394312..befc21c 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -4,7 +4,6 @@ use strict; use warnings; no warnings 'redefine'; -#use URI::Escape(); use Encode(); use Data::Dumper; use MIME::Base64(); @@ -41,7 +40,6 @@ my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); - my $user_presets = uac::get_user_presets( $config, { @@ -62,8 +60,6 @@ my $request = { }, }; -#print STDERR Dumper($request)."\n"; - #set user at params->presets->user $request = uac::prepare_request( $request, $user_presets ); @@ -73,7 +69,8 @@ $params = $request->{params}->{checked}; unless ( params::isJson() ) { my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); + template::process( $config, 'print', template::check( $config, 'default.html' ), + $headerParams ); } return unless uac::check( $config, $params, $user_presets ) == 1; @@ -167,11 +164,10 @@ sub show_event { uac::print_error("event not found"); } - #print STDERR "show:".Dumper($event->{draft}); - #print STDERR "show event".Dumper($event); - my $editLock = 1; - if ( ( defined $permissions->{update_event_after_week} ) && ( $permissions->{update_event_after_week} eq '1' ) ) { + if ( ( defined $permissions->{update_event_after_week} ) + && ( $permissions->{update_event_after_week} eq '1' ) ) + { $editLock = 0; } else { $editLock = 0 @@ -205,9 +201,12 @@ sub show_event { ); if ( defined $event2 ) { for my $attr ( - 'title', 'user_title', 'excerpt', 'user_excerpt', - 'content', 'topic', 'image', 'image_label', - 'series_image', 'series_image_label', 'live no_event_sync', 'podcast_url', + 'title', 'user_title', + 'excerpt', 'user_excerpt', + 'content', 'topic', + 'image', 'image_label', + 'series_image', 'series_image_label', + 'live no_event_sync', 'podcast_url', 'archive_url' ) { @@ -231,8 +230,8 @@ sub show_event { $event->{start} =~ s/(\d\d:\d\d)\:\d\d/$1/; $event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/; - if ( (defined $params->{setImage}) and ($params->{setImage} ne $event->{image}) ){ - $event->{image} = $params->{setImage}; + if ( ( defined $params->{setImage} ) and ( $params->{setImage} ne $event->{image} ) ) { + $event->{image} = $params->{setImage}; $params->{forced_change} = 1; } @@ -273,7 +272,7 @@ sub show_event { $event->{has_single_events} = $series->[0]->{has_single_events}; } - #$event->{rerun}=1 if ((defined $event->{rerun})&&($event->{rerun}ne'0')&&($event->{rerun}ne'')); + #$event->{rerun}=1 if ((defined $event->{rerun})&&($event->{rerun}ne'0')&&($event->{rerun}ne'')); my $users = series::get_users( $config, @@ -285,9 +284,9 @@ sub show_event { ); $params->{series_users} = $users; - #print STDERR Dumper($users); $params->{series_users_email_list} = join( ',', ( map { $_->{email} } (@$users) ) ); - $params->{series_user_names} = join( ' und ', ( map { ( split( /\s+/, $_->{full_name} ) )[0] } (@$users) ) ); + $params->{series_user_names} = + join( ' und ', ( map { ( split( /\s+/, $_->{full_name} ) )[0] } (@$users) ) ); for my $permission ( sort keys %{$permissions} ) { $params->{'allow'}->{$permission} = $permissions->{$permission}; @@ -296,11 +295,14 @@ sub show_event { for my $key ( keys %$event ) { $params->{$key} = $event->{$key}; } - $params->{event_edited} = 1 if ( ( $params->{action} eq 'save' ) && ( !( defined $params->{error} ) ) ); - $params->{event_edited} = 1 if ( $params->{action} eq 'delete' ); - $params->{event_edited} = 1 if ( ( $params->{action} eq 'create_event' ) && ( !( defined $params->{error} ) ) ); $params->{event_edited} = 1 - if ( ( $params->{action} eq 'create_event_from_schedule' ) && ( !( defined $params->{error} ) ) ); + if ( ( $params->{action} eq 'save' ) && ( !( defined $params->{error} ) ) ); + $params->{event_edited} = 1 if ( $params->{action} eq 'delete' ); + $params->{event_edited} = 1 + if ( ( $params->{action} eq 'create_event' ) && ( !( defined $params->{error} ) ) ); + $params->{event_edited} = 1 + if ( ( $params->{action} eq 'create_event_from_schedule' ) + && ( !( defined $params->{error} ) ) ); $params->{user} = $params->{presets}->{user}; # remove all edit permissions if event is over for more than 2 weeks @@ -313,8 +315,8 @@ sub show_event { $params->{edit_lock} = 1; } - #print STDERR Dumper($params); - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event' } ); + $params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'event' } ); template::process( $config, 'print', template::check( $config, 'edit-event' ), $params ); } @@ -458,10 +460,9 @@ sub show_new_event { $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; } - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); + $params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); template::process( $config, 'print', template::check( $config, 'edit-event' ), $params ); - - #print '

      '.Dumper($params).'
      '; } sub delete_event { @@ -535,7 +536,6 @@ sub save_event { } } - #print Dumper($params); my $start = $params->{start_date}; my $end = time::add_minutes_to_datetime( $params->{start_date}, $params->{duration} ); @@ -565,8 +565,9 @@ sub save_event { #content fields for my $key ( - 'content', 'topic', 'title', 'excerpt', 'episode', 'image', - 'series_image', 'image_label', 'series_image_label', 'podcast_url', 'archive_url' + 'content', 'topic', 'title', 'excerpt', + 'episode', 'image', 'series_image', 'image_label', + 'series_image_label', 'podcast_url', 'archive_url' ) { next unless defined $permissions->{ 'update_event_field_' . $key }; @@ -577,8 +578,6 @@ sub save_event { } } - #print STDERR "event to update1: ".Dumper($entry); - #user extension fields for my $key ( 'title', 'excerpt' ) { next unless defined $permissions->{ 'update_event_field_' . $key . '_extension' }; @@ -590,7 +589,9 @@ sub save_event { } #status field - for my $key ( 'live', 'published', 'playout', 'archived', 'rerun', 'disable_event_sync', 'draft' ) { + for + my $key ( 'live', 'published', 'playout', 'archived', 'rerun', 'disable_event_sync', 'draft' ) + { next unless defined $permissions->{ 'update_event_status_' . $key }; if ( $permissions->{ 'update_event_status_' . $key } eq '1' ) { $entry->{$key} = $params->{$key} || 0; @@ -615,7 +616,8 @@ sub save_event { return; } - my $series = series::get($config, + my $series = series::get( + $config, { project_id => $params->{project_id}, studio_id => $params->{studio_id}, @@ -630,8 +632,6 @@ sub save_event { $entry->{image} = images::normalizeName( $serie->{image} ); $entry->{series_image} = images::normalizeName( $serie->{series_image} ); - #print STDERR "event to update2: ".Dumper($entry); - $config->{access}->{write} = 1; #update content @@ -643,7 +643,9 @@ sub save_event { } #update time - if ( ( defined $permissions->{update_event_time} ) && ( $permissions->{update_event_time} eq '1' ) ) { + if ( ( defined $permissions->{update_event_time} ) + && ( $permissions->{update_event_time} eq '1' ) ) + { my $entry = { id => $params->{event_id}, start_date => $params->{start_date}, @@ -755,7 +757,6 @@ sub download { print STDERR "event.cgi::download look for : $archive_dir/$datetime*.mp3\n"; my @files = glob( $archive_dir . '/' . $datetime . '*.mp3' ); - #print STDERR Dumper(\@files); if ( @files > 0 ) { my $file = $files[0]; my $key = int( rand(99999999999999999) ); @@ -799,8 +800,9 @@ sub check_params { #numeric values for my $param ( - 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', - 'event_id', 'source_event_id', 'episode' + 'id', 'project_id', 'studio_id', 'default_studio_id', + 'user_id', 'series_id', 'event_id', 'source_event_id', + 'episode' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { @@ -831,7 +833,11 @@ sub check_params { } #checkboxes - for my $param ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync', 'get_rerun' ) { + for my $param ( + 'live', 'published', 'playout', 'archived', + 'rerun', 'draft', 'disable_event_sync', 'get_rerun' + ) + { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) { $checked->{$param} = $1; } @@ -839,9 +845,10 @@ sub check_params { #strings for my $param ( - 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', - 'category', 'image', 'series_image', 'user_content', 'user_title', 'user_excerpt', - 'podcast_url', 'archive_url', 'setImage' + 'series_name', 'title', 'excerpt', 'content', + 'topic', 'program', 'category', 'image', + 'series_image', 'user_content', 'user_title', 'user_excerpt', + 'podcast_url', 'archive_url', 'setImage' ) { if ( defined $params->{$param} ) { @@ -855,43 +862,21 @@ sub check_params { #dates for my $param ( 'start_date', 'end_date' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d\d\d\d\-\d\d\-\d\d \d\d\:\d\d)/ ) ) { + if ( ( defined $params->{$param} ) + && ( $params->{$param} =~ /(\d\d\d\d\-\d\d\-\d\d \d\d\:\d\d)/ ) ) + { $checked->{$param} = $1 . ':00'; } } - #actions and roles + #actions $checked->{action} = ''; if ( defined $params->{action} ) { - if ( $params->{action} =~ -/^(save|delete|download|show_new_event|show_new_event_from_schedule|create_event|create_event_from_schedule|get_json)$/ - ) - { - $checked->{action} = $params->{action}; - } + $checked->{action} = $params->{action} if List::Util::any { $_ eq $params->{action} } qw{ + save delete download show_new_event show_new_event_from_schedule + create_event create_event_from_schedule get_json + }; } - - #print STDERR "event params:".Dumper($checked); + print STDERR Dumper($checked); return $checked; } - -__DATA__ - -#requires studio_id,series_id,location -sub get_series_events{ - my $config=shift; - my $options=shift; - - return undef unless defined $options->{project_id}; - return undef unless defined $options->{studio_id}; - return undef unless defined $options->{series_id}; - - $options->{template}= 'no'; # deprecated - $options->{limit} = 200; # deprecated - $options->{get} = 'no_content'; # deprecated - $options->{archive} = 'all'; # deprecated - - my $events=series::get_events($config, $options); - return $events; -} - diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 8e472bd..5d33a1b 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -35,7 +35,6 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); -print STDERR Dumper($user); return if ( !defined $user ) || ( $user eq '' ); my $user_presets = uac::get_user_presets( @@ -65,7 +64,8 @@ $params = $request->{params}->{checked}; unless ( params::isJson() ) { my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); + template::process( $config, 'print', template::check( $config, 'default.html' ), + $headerParams ); } return unless uac::check( $config, $params, $user_presets ) == 1; @@ -93,14 +93,14 @@ if ( defined $params->{action} ) { my $result = reassign_event( $config, $request ); return if defined $result; } - if ($params->{action} eq 'rebuild_episodes'){ - rebuild_episodes($config, $request); + if ( $params->{action} eq 'rebuild_episodes' ) { + rebuild_episodes( $config, $request ); return; - }; - if ($params->{action} eq 'set_rebuilt_episodes'){ - set_rebuilt_episodes($config, $request); + } + if ( $params->{action} eq 'set_rebuilt_episodes' ) { + set_rebuilt_episodes( $config, $request ); return; - }; + } # save_scan ($config, $request) if ($params->{action} eq 'save_scan'); } @@ -108,7 +108,8 @@ if ( defined $params->{action} ) { $config->{access}->{write} = 0; if ( defined $params->{series_id} ) { - print q{} unless params::isJson(); + print q{} + unless params::isJson(); show_series( $config, $request ); } else { print q{ @@ -133,7 +134,6 @@ sub save_schedule { return; } - #print Dumper($params); for my $attr ( 'project_id', 'studio_id', 'series_id', 'start' ) { unless ( defined $params->{$attr} ) { uac::print_error( $attr . ' not given!' ); @@ -151,7 +151,6 @@ sub save_schedule { $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); } - #print STDERR Dumper($entry); unless ( project::is_series_assigned( $config, $entry ) == 1 ) { uac::print_error('series is not assigned to project!'); return undef; @@ -290,7 +289,6 @@ sub delete_series { my $studio_id = $params->{studio_id}; my $series_id = $entry->{series_id}; - #print Dumper($entry); $config->{access}->{write} = 1; if ( $entry->{series_id} ne '' ) { my $result = series::delete( $config, $entry ); @@ -342,8 +340,8 @@ sub save_series { $entry->{project_id} = $params->{project_id}; $entry->{studio_id} = $params->{studio_id}; $entry->{series_id} = $params->{series_id} || ''; - $entry->{live} = $params->{live} || 0; - $entry->{count_episodes} = $params->{count_episodes} || 0; + $entry->{live} = $params->{live} // 0; + $entry->{count_episodes} = $params->{count_episodes} // 0; $entry->{predecessor_id} = $params->{predecessor_id} // 0; #$entry->{html_content} = Encode::decode( 'utf-8', $entry->{content} ); @@ -399,7 +397,6 @@ sub save_series { $config->{access}->{write} = 0; - #print STDERR Dumper($entry); unless ( defined $series_id ) { uac::print_error('could not insert series'); return; @@ -423,12 +420,13 @@ sub save_series { uac::permissions_denied('update due to entry already exists'); return; } - if ( ( scalar(@$series_ids) == 1 ) && ( $series_ids->[0]->{series_id} ne $params->{series_id} ) ) { + if ( ( scalar(@$series_ids) == 1 ) + && ( $series_ids->[0]->{series_id} ne $params->{series_id} ) ) + { uac::permissions_denied('update due to series id does not match to existing entry'); return; } - #print STDERR Dumper($entry); $config->{access}->{write} = 1; my $result = series::update( $config, $entry ); @@ -499,7 +497,6 @@ sub save_scan { assign_event_title => $params->{assign_event_title}, }; - #print STDERR '
      '.Dumper($entry)."\n"; $config->{access}->{write} = 1; series::update( $config, $entry ); $config->{access}->{write} = 0; @@ -527,8 +524,6 @@ sub scan_events { } ); - #print STDERR Dumper($series); - $params->{scan_results} = q{
    10. - - - - - - - - +
      @@ -580,11 +575,8 @@ sub scan_events { . $title . '' . '' . '' . "\n"; - #if($serie->{series_id}==66){ - #print STDERR $serie->{series_name}.' - '.$serie->{title}.' '.Dumper($event_ids); - series::set_event_ids( $config, $params->{project_id}, $params->{studio_id}, $serie, $event_ids ); - - #} + series::set_event_ids( $config, $params->{project_id}, $params->{studio_id}, $serie, + $event_ids ); } $params->{scan_results} .= "
      ' . scalar(@$event_ids) . '

      \n"; $config->{access}->{write} = 0; @@ -614,8 +606,6 @@ sub assign_event { } } - #print STDERR "found all parameters:\n".Dumper($entry); - # check if event exists, # this has to use events::get, since it cannot check for series_id # TODO: check location of studio_id @@ -640,7 +630,6 @@ sub assign_event { my $events = events::get( $config, $request2 ); - #print STDERR "found events:".Dumper($events); if ( scalar(@$events) != 1 ) { uac::print_error("no event found for event_id=$entry->{event_id}, archive=all"); return undef; @@ -731,7 +720,7 @@ sub assign_event { } } else { print STDERR - "no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; +"no series title found for studio $entry->{studio_id} series $entry->{series_id}, event $entry->{event_id}\n"; } $config->{access}->{write} = 0; @@ -778,8 +767,6 @@ sub unassign_event { return undef; } - #print Dumper($event); - #is series assigned to studio my $result = series_events::check_permission( $request, @@ -996,14 +983,14 @@ sub list_series { $params->{newSeries} = $newSeries; $params->{oldSeries} = $oldSeries; - $params->{image} = studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) + $params->{image} = + studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) if ( ( !defined $params->{image} ) || ( $params->{image} eq '' ) ); $params->{image} = project::getImageById( $config, { project_id => $project_id } ) if ( ( !defined $params->{image} ) || ( $params->{image} eq '' ) ); - #print STDERR Dumper $params->{image}; - - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); + $params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); template::process( $config, 'print', $params->{template}, $params ); } @@ -1062,12 +1049,15 @@ sub show_series { my $series = series::get( $config, $series_conditions ); if ( @$series > 1 ) { - uac::print_error( "too much series found for studio '" . $studio_by_id->{$studio_id}->{name} . "'" ); + uac::print_error( + "too much series found for studio '" . $studio_by_id->{$studio_id}->{name} . "'" ); return; } if ( @$series == 0 ) { - uac::print_error( "selected series not assigned to studio '" . $studio_by_id->{$studio_id}->{name} . "'" ); + uac::print_error( "selected series not assigned to studio '" + . $studio_by_id->{$studio_id}->{name} + . "'" ); return; } my $serie = $series->[0]; @@ -1078,9 +1068,11 @@ sub show_series { #} #get all users currently assigned to the user - my $user_studios = uac::get_studios_by_user( $config, { project_id => $project_id, user => $request->{user} } ); + my $user_studios = + uac::get_studios_by_user( $config, { project_id => $project_id, user => $request->{user} } ); - my $studio_users = uac::get_users_by_studio( $config, { project_id => $project_id, studio_id => $studio_id } ); + my $studio_users = + uac::get_users_by_studio( $config, { project_id => $project_id, studio_id => $studio_id } ); for my $studio_user (@$studio_users) { $studio_user->{user_id} = $studio_user->{id}; } @@ -1089,8 +1081,10 @@ sub show_series { $studio_users = \@users; #show events from last month until next 3 months - my $from = DateTime->now( time_zone => $config->{date}->{time_zone} )->subtract( months => 1 )->datetime(); - my $till = DateTime->now( time_zone => $config->{date}->{time_zone} )->add( months => 3 )->datetime(); + my $from = DateTime->now( time_zone => $config->{date}->{time_zone} )->subtract( months => 1 ) + ->datetime(); + my $till = + DateTime->now( time_zone => $config->{date}->{time_zone} )->add( months => 3 )->datetime(); #add name of current studio my $studio = $studio_by_id->{ $serie->{studio_id} }; @@ -1099,13 +1093,12 @@ sub show_series { my $location = $studio->{location}; # set default image from studio - $serie->{image} = studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) + $serie->{image} = + studios::getImageById( $config, { project_id => $project_id, studio_id => $studio_id } ) if ( ( !defined $serie->{image} ) || ( $serie->{image} eq '' ) ); $serie->{image} = project::getImageById( $config, { project_id => $project_id } ) if ( ( !defined $serie->{image} ) || ( $serie->{image} eq '' ) ); - #print STDERR Dumper $serie->{image}; - #add users $serie->{series_users} = series::get_users( $config, @@ -1115,7 +1108,8 @@ sub show_series { series_id => $serie->{series_id} } ); - uac::print_warn("There is no user assigned, yet. Please assign a user!") if scalar @{ $serie->{series_users} } == 0; + uac::print_warn("There is no user assigned, yet. Please assign a user!") + if scalar @{ $serie->{series_users} } == 0; #add events $serie->{events} = series::get_events( @@ -1214,8 +1208,8 @@ sub show_series { $serie->{show_hint_to_add_schedule} = $params->{show_hint_to_add_schedule}; - if ( (defined $params->{setImage}) and ($params->{setImage} ne $serie->{image}) ){ - $serie->{image} = $params->{setImage} ; + if ( ( defined $params->{setImage} ) and ( $params->{setImage} ne $serie->{image} ) ) { + $serie->{image} = $params->{setImage}; $params->{forced_change} = 1; } @@ -1225,12 +1219,12 @@ sub show_series { $params->{$key} = $serie->{$key}; } - #print STDERR '
      '.Dumper($params).'
      '; - $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); + $params->{loc} = + localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); template::process( $config, 'print', $params->{template}, $params ); } -sub set_rebuilt_episodes{ +sub set_rebuilt_episodes { my $config = shift; my $request = shift; @@ -1263,27 +1257,33 @@ sub set_rebuilt_episodes{ my $project_id = $params->{project_id}; my $studio_id = $params->{studio_id}; my $series_id = $params->{series_id}; - my $events = series::get_rebuilt_episodes( $config, { - project_id => $project_id, - studio_id => $studio_id, - series_id => $series_id - }); + my $events = series::get_rebuilt_episodes( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + } + ); my $updates = 0; - for my $event (@$events){ + for my $event (@$events) { next if $event->{project_id} ne $project_id; next if $event->{studio_id} ne $studio_id; next if $event->{old_episode} eq $event->{episode}; - series_events::set_episode( $config, { - id => $event->{id}, - episode => $event->{episode} - }); + series_events::set_episode( + $config, + { + id => $event->{id}, + episode => $event->{episode} + } + ); $updates++; } print "$updates changes done.\n"; } -sub rebuild_episodes{ +sub rebuild_episodes { my $config = shift; my $request = shift; @@ -1316,15 +1316,18 @@ sub rebuild_episodes{ my $project_id = $params->{project_id}; my $studio_id = $params->{studio_id}; my $series_id = $params->{series_id}; - my $events = series::get_rebuilt_episodes( $config, { - project_id => $project_id, - studio_id => $studio_id, - series_id => $series_id - }); + my $events = series::get_rebuilt_episodes( + $config, + { + project_id => $project_id, + studio_id => $studio_id, + series_id => $series_id + } + ); - my $events_by_id={}; - for my $event (@$events){ - $events_by_id->{$event->{id}} = $event; + my $events_by_id = {}; + for my $event (@$events) { + $events_by_id->{ $event->{id} } = $event; } print " "; - my $prev=undef; - my $max_episode=0; - my $changes=0; - my $errors=0; - for my $event (@$events){ + my $prev = undef; + my $max_episode = 0; + my $changes = 0; + my $errors = 0; + for my $event (@$events) { $max_episode = $event->{episode} if $event->{episode} > $max_episode; - my $e1 = $event->{old_episode} //''; - my $e2 = $event->{episode} //''; - my $o1 = $prev->{old_episode} //''; - my $o2 = $prev->{episode} //''; - if ($e1 eq $e2){ + my $e1 = $event->{old_episode} // ''; + my $e2 = $event->{episode} // ''; + my $o1 = $prev->{old_episode} // ''; + my $o2 = $prev->{episode} // ''; + if ( $e1 eq $e2 ) { $event->{class} = 'ok'; - }else{ + } else { $changes++; $event->{class} = 'warn'; } - if ($e1 and $e2 and $o1 and $o2 and ( ($e2-$o2) != ($e1-$o1) ) ){ + if ( $e1 and $e2 and $o1 and $o2 and ( ( $e2 - $o2 ) != ( $e1 - $o1 ) ) ) { $event->{class} = "error" if $e1 ne $e2; $prev->{class} = "error" if defined $prev and $o1 ne $o2; $errors++; } - if ($event->{episode} < $max_episode and !$event->{recurrence}){ + if ( $event->{episode} < $max_episode and !$event->{recurrence} ) { $event->{class} = "error"; $errors++; } - $event->{recurrence_start} = $events_by_id->{$event->{recurrence}}->{start}; - $event->{recurrence} = '-' unless $event->{recurrence}; - $prev = $event; + $event->{recurrence_start} = $events_by_id->{ $event->{recurrence} }->{start}; + $event->{recurrence} = '-' unless $event->{recurrence}; + $prev = $event; } print "$errors errors, $changes changes\n"; - if ( ($changes>0) and ($errors==0) ){ - my $url = "series.cgi?action=set_rebuilt_episodes&project_id=$project_id&studio_id=$studio_id&series_id=$series_id"; + if ( ( $changes > 0 ) and ( $errors == 0 ) ) { + my $url = +"series.cgi?action=set_rebuilt_episodes&project_id=$project_id&studio_id=$studio_id&series_id=$series_id"; print qq{
      }; } - my @cols=qw(id start series_name title episode old_episode recurrence recurrence_start project_name studio_name); + my @cols = + qw(id start series_name title episode old_episode recurrence recurrence_start project_name studio_name); print "\n"; - print "" . join ("", map { "" } @cols) . "\n" ; - - for my $event (@$events){ + print "" . join( "", map { "" } @cols ) . "\n"; + + for my $event (@$events) { print qq{} - . join ("", map { "" } @cols) - . "\n"; + . qq{ href="event.cgi?action=edit&project_id=$event->{project_id}&studio_id=$event->{studio_id}&series_id=$series_id&event_id=$event->{id}"\n} + . qq{>} + . join( "", map { "" } @cols ) + . "\n"; } print "
      ".($_ // '-')."
      " . ( $_ // '-' ) . "
      ".($event->{$_}//'-')."
      " . ( $event->{$_} // '-' ) . "
      \n"; } @@ -1396,23 +1401,33 @@ sub check_params { } $checked->{debug} = $debug; - #actions and roles + #actions $checked->{action} = ''; if ( defined $params->{action} ) { - $checked->{action} = $params->{action} if $params->{action} =~ -/^(add_user|remove_user|create|delete|save|details|show|save_schedule|delete_schedule|save_scan|scan_events|assign_event|unassign_event|reassign_event|rebuild_episodes|set_rebuilt_episodes)$/ - ; + $checked->{action} = $params->{action} if List::Util::any { $_ eq $params->{action} } qw{ + add_user remove_user + create delete save details show + save_schedule delete_schedule + save_scan scan_events + assign_event unassign_event reassign_event + rebuild_episodes set_rebuilt_episodes + }; } #numeric values $checked->{exclude} = 0; - $checked->{action} = $params->{action}; + $checked->{action} = $params->{action}; for my $param ( - 'id', 'project_id', 'studio_id', 'default_studio_id', - 'user_id', 'new_series_id', 'series_id', 'schedule_id', - 'exclude', 'show_hint_to_add_schedule', 'event_id', 'weekday', - 'week_of_month', 'month', 'nextDay', 'predecessor_id' - ){ + 'id', 'project_id', + 'studio_id', 'default_studio_id', + 'user_id', 'new_series_id', + 'series_id', 'schedule_id', + 'exclude', 'show_hint_to_add_schedule', + 'event_id', 'weekday', + 'week_of_month', 'month', + 'nextDay', 'predecessor_id' + ) + { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; } @@ -1435,8 +1450,10 @@ sub check_params { $checked->{create_events} = 0; $checked->{publish_events} = 0; } - for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', - 'count_episodes' ) + for my $param ( + 'frequency', 'duration', 'default_duration', 'create_events', + 'publish_events', 'live', 'count_episodes' + ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { $checked->{$param} = $1; @@ -1452,8 +1469,15 @@ sub check_params { } } - for my $param ( 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'image_label', - 'assign_event_series_name', 'assign_event_title', 'comment', 'podcast_url', 'archive_url', 'setImage' ) + for my $param ( + 'series_name', 'title', + 'excerpt', 'content', + 'topic', 'image', + 'image_label', 'assign_event_series_name', + 'assign_event_title', 'comment', + 'podcast_url', 'archive_url', + 'setImage' + ) { if ( defined $params->{$param} ) { @@ -1465,7 +1489,9 @@ sub check_params { } for my $attr ('start') { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { + if ( ( defined $params->{$attr} ) + && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) + { $checked->{$attr} = $1 . ':00'; } } From da5f7f673df9c27e503692a454597866f2f0a3ea Mon Sep 17 00:00:00 2001 From: Milan Date: Wed, 4 Mar 2020 22:04:38 +0100 Subject: [PATCH 111/391] user_default_studios.pm: user defaults save default studio for each project. on project change the default studio will be selected. --- install/migrate.sql | 8 ++ lib/calcms/uac.pm | 6 +- lib/calcms/user_default_studios.pm | 118 +++++++++++++++++++++++ website/agenda/planung/user-settings.cgi | 32 +++++- 4 files changed, 157 insertions(+), 7 deletions(-) create mode 100644 lib/calcms/user_default_studios.pm diff --git a/install/migrate.sql b/install/migrate.sql index 65d67e3..753fb33 100644 --- a/install/migrate.sql +++ b/install/migrate.sql @@ -250,3 +250,11 @@ ADD COLUMN `studio_id` INT(10) UNSIGNED NULL AFTER `project_id`; ALTER TABLE `calcms`.`calcms_series` ADD COLUMN `predecessor_id` INT(10) NULL AFTER `has_single_events`; +CREATE TABLE `calcms`.`calcms_user_default_studios` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `user` VARCHAR(50) NOT NULL, + `project_id` INT(11) NOT NULL, + `studio_id` INT(11) NOT NULL, + PRIMARY KEY (`id`), + INDEX `user` (`user` ASC)); + diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 8246aa5..1626ce7 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -13,6 +13,7 @@ use template(); use project(); use studios(); use user_settings(); +use user_default_studios(); use base 'Exporter'; our @EXPORT_OK = qw( @@ -667,8 +668,9 @@ sub get_user_presets($$) { $config->{access}->{write} = 0; my $user_settings = user_settings::get( $config, { user => $user } ); - $project_id = $user_settings->{project_id} || '' if $project_id eq ''; - $studio_id = $user_settings->{studio_id} || '' if $studio_id eq ''; + $project_id = $user_settings->{project_id} // '' if $project_id eq ''; + my $defaults = user_default_studios::get( $config, { user => $user, project_id => $project_id } ); + $studio_id = $defaults->{studio_id} // $user_settings->{studio_id} // '' if $studio_id eq ''; #get my $admin_roles = get_admin_user_roles( $config, { user => $user } ); diff --git a/lib/calcms/user_default_studios.pm b/lib/calcms/user_default_studios.pm new file mode 100644 index 0000000..4c96999 --- /dev/null +++ b/lib/calcms/user_default_studios.pm @@ -0,0 +1,118 @@ +package user_default_studios; + +use strict; +use warnings; +no warnings 'redefine'; + +use Data::Dumper; + +# table: calcms_user_default_studios +# columns: user, project_id, studio_id +#use base 'Exporter'; +#our @EXPORT_OK = qw(get insert update delete get_columns); + +sub debug; + +sub get_columns($) { + my $config = shift; + + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_user_default_studios' ); + my $columns = {}; + for my $col (@$cols) { + $columns->{$col} = 1; + } + return $columns; +} + +sub get ($$) { + my $config = shift; + my $condition = shift; + + my @conditions = (); + my @bind_values = (); + + if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) { + push @conditions, 'user=?'; + push @bind_values, $condition->{user}; + } + if ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { + push @conditions, 'project_id=?'; + push @bind_values, $condition->{project_id}; + } + if ( ( defined $condition->{studio_id} ) && ( $condition->{studio_id} ne '' ) ) { + push @conditions, 'studio_id=?'; + push @bind_values, $condition->{studio_id}; + } + + my $conditions = ''; + $conditions = " where " . join( " and ", @conditions ) if scalar(@conditions) > 0; + + my $query = qq{ + select * + from calcms_user_default_studios + $conditions + }; + + my $dbh = db::connect($config); + my $entries = db::get( $dbh, $query, \@bind_values ); + return $entries->[0] || undef; +} + +sub insert ($$) { + my $config = shift; + my $entry = shift; + + return unless defined $entry->{user}; + + my $dbh = db::connect($config); + return db::insert( $dbh, 'calcms_user_default_studios', $entry ); +} + +sub update($$) { + my $config = shift; + my $entry = shift; + + return unless defined $entry->{user}; + + my @keys = sort keys %$entry; + my $values = join( ",", map { $_ . '=?' } @keys ); + my @bind_values = map { $entry->{$_} } @keys; + + push @bind_values, $entry->{user}; + push @bind_values, $entry->{project_id}; + + my $query = qq{ + update calcms_user_default_studios + set $values + where user=? and project_id=? + }; + + my $dbh = db::connect($config); + return db::put( $dbh, $query, \@bind_values ); +} + +sub delete ($$) { + my $config = shift; + my $entry = shift; + + return unless defined $entry->{user}; + + my $query = qq{ + delete + from calcms_user_default_studios + where user=? + }; + my $bind_values = [ $entry->{user} ]; + + my $dbh = db::connect($config); + return db::put( $dbh, $query, $bind_values ); +} + +sub error ($) { + my $msg = shift; + print "ERROR: $msg
      \n"; +} + +#do not delete last line! +1; diff --git a/website/agenda/planung/user-settings.cgi b/website/agenda/planung/user-settings.cgi index e63ba96..30dbcb0 100755 --- a/website/agenda/planung/user-settings.cgi +++ b/website/agenda/planung/user-settings.cgi @@ -16,6 +16,7 @@ use project(); use studios(); use params(); use user_settings(); +use user_default_studios(); use localization(); my $r = shift; @@ -33,6 +34,7 @@ my $user_presets = uac::get_user_presets( studio_id => $params->{studio_id} } ); +#print STDERR Dumper($user_presets); $params->{default_studio_id} = $user_presets->{studio_id}; $params = uac::setDefaultStudio( $params, $user_presets ); $params = uac::setDefaultProject( $params, $user_presets ); @@ -123,21 +125,41 @@ sub updateDefaultProjectStudio { my $permissions = $request->{permissions}; my $user = $params->{presets}->{user}; - my $settings = { + my $entry = { user => $user, project_id => $params->{project_id}, studio_id => $params->{studio_id}, }; - my $results = user_settings::get( $config, { user => $user } ); - if ( defined $results ) { + $config->{access}->{write} = 1; + if ( + defined user_settings::get( + $config, + { user => $user } + ) + ) { uac::print_info("update project and studio settings"); - $config->{access}->{write} = 1; - user_settings::update( $config, $settings ); + user_settings::update( $config, $entry ); } else { uac::print_info("insert user settings, as missing on updating default project and studio"); update_settings( $config, $request ); } + + if ( + defined user_default_studios::get( + $config, { + user => $user, + project_id => $params->{project_id} + } + ) + ) { + uac::print_info("update user default studio"); + user_default_studios::update( $config, $entry ); + } else { + uac::print_info("insert user default studio"); + user_default_studios::insert( $config, $entry ); + } + $config->{access}->{write} = 0; } From 41b0495c2eedeed8c3ae592ddbe90123b0b7c4f5 Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 5 Mar 2020 22:16:54 +0100 Subject: [PATCH 112/391] use map instead for on creating hash tables --- lib/calcms/audio_recordings.pm | 6 +---- lib/calcms/calendar.pm | 5 +--- lib/calcms/comments.pm | 7 +---- lib/calcms/creole_wiki.pm | 5 +--- lib/calcms/db.pm | 6 +---- lib/calcms/event_history.pm | 6 +---- lib/calcms/password_requests.pm | 6 +---- lib/calcms/playout.pm | 6 +---- lib/calcms/project.pm | 6 +---- lib/calcms/series.pm | 37 ++++++++------------------ lib/calcms/series_dates.pm | 12 ++------- lib/calcms/series_events.pm | 7 ++--- lib/calcms/series_schedule.pm | 7 ++--- lib/calcms/studio_timeslot_dates.pm | 6 +---- lib/calcms/studio_timeslot_schedule.pm | 6 +---- lib/calcms/studios.pm | 6 +---- lib/calcms/user_default_studios.pm | 10 +++---- lib/calcms/user_sessions.pm | 6 +---- lib/calcms/user_settings.pm | 6 +---- lib/calcms/user_stats.pm | 8 ++---- lib/calcms/work_dates.pm | 6 +---- lib/calcms/work_schedule.pm | 6 +---- website/agenda/planung/projects.cgi | 6 +---- website/agenda/planung/series.cgi | 2 +- 24 files changed, 40 insertions(+), 144 deletions(-) diff --git a/lib/calcms/audio_recordings.pm b/lib/calcms/audio_recordings.pm index 0eb4666..a7b0195 100644 --- a/lib/calcms/audio_recordings.pm +++ b/lib/calcms/audio_recordings.pm @@ -23,11 +23,7 @@ sub get_columns($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_audio_recordings' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } # get playout entries diff --git a/lib/calcms/calendar.pm b/lib/calcms/calendar.pm index 9a89b85..70be184 100644 --- a/lib/calcms/calendar.pm +++ b/lib/calcms/calendar.pm @@ -164,10 +164,7 @@ sub get($$) { exclude_locations => 1, } ); - my $used_day = {}; - for my $day (@$used_days) { - $used_day->{ $day->{start_date} } = 1; - } + my $used_day = { map { $_->{start_date} => 1 } @$used_days }; for my $year ( sort { $a <=> $b } keys %$years ) { my $months = $years->{$year}; diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 0fc1aa7..3bcdeb0 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -390,12 +390,7 @@ sub get_events($$$$) { my $params = $request->{params}->{checked}->{comment}; #get event_ids from comments - my $event_ids = {}; - for my $comment (@$comments) { - my $event_id = $comment->{event_id}; - $event_ids->{$event_id} = 1; - } - + my $event_ids = { map { $_->{event_id} => 1 } @$comments }; my @keys = keys %{$event_ids}; #get events from comment's event ids return [] if ( scalar @keys ) == 0; diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index 8452645..1ab1406 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -191,10 +191,7 @@ sub extractMeta ($$) { if ( defined $comments ) { #build index for meta already defined - my $meta_keys = {}; - for my $pair (@$meta) { - $meta_keys->{ $pair->{name} . '=' . $pair->{value} } = 1; - } + my $meta_keys = { map { $_->{name}."=".$_->{value} => 1 } @$meta }; while ( $comments =~ /\~\~META\:(.+?)\=(.+?)\~\~/g ) { my $name = $1; diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index ed2c850..97dfb99 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -125,11 +125,7 @@ sub get_columns_hash($$) { my $table = shift; my $columns = db::get_columns( $dbh, $table ); - my $result = {}; - for my $column (@$columns) { - $result->{$column} = 1; - } - return $result; + return { map { $_ => 1 } @$columns }; } #returns last inserted id diff --git a/lib/calcms/event_history.pm b/lib/calcms/event_history.pm index 94b5524..7f9c836 100644 --- a/lib/calcms/event_history.pm +++ b/lib/calcms/event_history.pm @@ -16,11 +16,7 @@ sub get_columns ($){ my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_event_history' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } sub get ($$){ diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm index 76bf2cc..376ec9d 100644 --- a/lib/calcms/password_requests.pm +++ b/lib/calcms/password_requests.pm @@ -23,11 +23,7 @@ sub get_columns ($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_password_requests' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } sub get ($$) { diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index 40372bc..beef723 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -20,11 +20,7 @@ sub get_columns ($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_playout' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index 78dbdad..3e89d21 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -30,11 +30,7 @@ sub get_columns ($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_projects' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } # get projects diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 903e2ff..894ff38 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -34,11 +34,7 @@ sub get_columns ($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_series' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } # get series content @@ -772,14 +768,14 @@ sub get_images ($$) { series_id => $options->{series_id} } ); - my $images = {}; - my $found = 0; - for my $event (@$events) { - my $image = $event->{image}; - $image =~ s/.*\///; - $images->{$image} = 1; - $found++; - } + my $images = { + map { + my $image = $_->{image}; + $image =~ s/.*\///; + { $image => 1 }; + } @$events + }; + my $found = scalar(keys %$images); return undef if $found == 0; @@ -948,10 +944,7 @@ sub set_event_ids ($$$$$) { return unless defined $event_ids; #make lookup table from events - my $event_id_hash = {}; - for my $event_id (@$event_ids) { - $event_id_hash->{$event_id} = 1; - } + my $event_id_hash = { map { $_ => 1 } @$event_ids }; #get series_entries from db #my $bind_names=join(',', (map { '?' } @$event_ids)); @@ -964,16 +957,8 @@ sub set_event_ids ($$$$$) { my $dbh = db::connect($config); my $results = db::get( $dbh, $query, $bind_values ); - my $found = {}; - #mark events found assigned to series - my $i = 1; - for my $event (@$results) { - - #print "found event $i: $event->{event_id}\n"; - $found->{ $event->{event_id} } = 1; - $i++; - } + my $found = { map { $_->{event_id} => 1 } @$results }; #insert events from list, not found in db for my $event_id (@$event_ids) { diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index c8d0871..0565c7f 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -26,11 +26,7 @@ sub get_columns ($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_series_dates' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } # get all series_dates for studio_id and series_id within given time range @@ -261,12 +257,8 @@ sub addSeriesScheduleAttributes ($$) { my $config = shift; my $entries = shift; - my $scheduleIds = {}; - # get series schedule ids used at entries - for my $entry (@$entries) { - $scheduleIds->{ $entry->{series_schedule_id} } = 1; - } + my $scheduleIds = { map { $_->{series_schedule_id} => 1 } @$entries }; my @scheduleIds = keys %$scheduleIds; return $entries if scalar(@scheduleIds) == 0; diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index 28ccef6..1a21cf6 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -41,7 +41,7 @@ sub save_content($$) { my $config = shift; my $entry = shift; - return undef unless ( defined $entry->{id} ); + return undef unless defined $entry->{id}; for my $attr ( keys %$entry ) { next unless defined $entry->{$attr}; @@ -308,10 +308,7 @@ sub check_permission($$) { delete $options->{permission}; #convert check list to hash - my $check = {}; - for my $permission ( @{ $options->{check_for} } ) { - $check->{$permission} = 1; - } + my $check = { map { $_ => 1 } @{ $options->{check_for} } }; delete $options->{check_for}; # is project assigned to studio diff --git a/lib/calcms/series_schedule.pm b/lib/calcms/series_schedule.pm index cc4ebac..dbcbf8d 100644 --- a/lib/calcms/series_schedule.pm +++ b/lib/calcms/series_schedule.pm @@ -28,11 +28,8 @@ sub get_columns ($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_series_schedule' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; + } #map schedule id to id diff --git a/lib/calcms/studio_timeslot_dates.pm b/lib/calcms/studio_timeslot_dates.pm index 61be874..d407a02 100644 --- a/lib/calcms/studio_timeslot_dates.pm +++ b/lib/calcms/studio_timeslot_dates.pm @@ -22,11 +22,7 @@ sub get_columns ($){ my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_studio_timeslot_dates' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } # get all studio_timeslot_dates for studio_id within given time range diff --git a/lib/calcms/studio_timeslot_schedule.pm b/lib/calcms/studio_timeslot_schedule.pm index 521f4d9..3198132 100644 --- a/lib/calcms/studio_timeslot_schedule.pm +++ b/lib/calcms/studio_timeslot_schedule.pm @@ -20,11 +20,7 @@ sub get_columns($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_studio_timeslot_schedule' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } #map schedule id to id diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index f9fbeca..77f05ac 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -17,11 +17,7 @@ sub get_columns($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_studios' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } sub get($;$) { my $config = shift; diff --git a/lib/calcms/user_default_studios.pm b/lib/calcms/user_default_studios.pm index 4c96999..58d0090 100644 --- a/lib/calcms/user_default_studios.pm +++ b/lib/calcms/user_default_studios.pm @@ -16,13 +16,9 @@ sub debug; sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_user_default_studios' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + my $dbh = db::connect($config); + my $cols = db::get_columns( $dbh, 'calcms_user_default_studios' ); + return { map { $_ => undef } @$cols }; } sub get ($$) { diff --git a/lib/calcms/user_sessions.pm b/lib/calcms/user_sessions.pm index 6d1f52a..97566f3 100644 --- a/lib/calcms/user_sessions.pm +++ b/lib/calcms/user_sessions.pm @@ -28,11 +28,7 @@ sub get_columns($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_user_sessions' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } #map schedule id to id diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 4b9d62b..2a85de7 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -138,11 +138,7 @@ sub get_columns($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_user_settings' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } sub get ($$) { diff --git a/lib/calcms/user_stats.pm b/lib/calcms/user_stats.pm index 1561215..54aad9e 100644 --- a/lib/calcms/user_stats.pm +++ b/lib/calcms/user_stats.pm @@ -15,11 +15,7 @@ sub get_columns($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_user_stats' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } sub get ($$) { @@ -205,7 +201,7 @@ sub increase ($$$) { return undef unless defined $options->{user}; my $columns = get_columns($config); - return undef unless defined $columns->{$usecase}; + return undef unless exists $columns->{$usecase}; my $entries = get( $config, $options ); if ( scalar @$entries == 0 ) { diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index 7c80b10..c46ca2b 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -26,11 +26,7 @@ sub get_columns($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_work_dates' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } # get all work_dates for studio_id and schedule_id within given time range diff --git a/lib/calcms/work_schedule.pm b/lib/calcms/work_schedule.pm index bc0c078..51039b9 100644 --- a/lib/calcms/work_schedule.pm +++ b/lib/calcms/work_schedule.pm @@ -27,11 +27,7 @@ sub get_columns($) { my $dbh = db::connect($config); my $cols = db::get_columns( $dbh, 'calcms_work_schedule' ); - my $columns = {}; - for my $col (@$cols) { - $columns->{$col} = 1; - } - return $columns; + return { map { $_ => undef } @$cols }; } #map schedule id to id diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 2611840..2978435 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -237,11 +237,7 @@ sub show_projects { $project->{pid} = $project->{project_id}; # get assigned studios by id - my $assigned_studio_by_id = {}; - for my $studio (@$project_studio_assignements) { - $assigned_studio_by_id->{ $studio->{studio_id} } = 1; - } - + my $assigned_studio_by_id = { map { $_->{studio_id} => 1 } @$project_studio_assignements }; my $assigned_studios = []; my $unassigned_studios = []; for my $studio (@$studios) { diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 5d33a1b..0a4d695 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -333,7 +333,7 @@ sub save_series { # fill series entry my $entry = {}; for my $param ( keys %$params ) { - if ( defined $columns->{$param} ) { + if ( exists $columns->{$param} ) { $entry->{$param} = $params->{$param} || ''; } } From 1607b5468f8ba94caa1378c04ea3a68823191d9f Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 7 Mar 2020 22:45:00 +0100 Subject: [PATCH 113/391] calcms/series: reformat --- lib/calcms/series.pm | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 894ff38..1d1d298 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -137,7 +137,6 @@ sub insert ($$) { my $studio_id = $series->{studio_id}; my $columns = series::get_columns($config); - my $entry = {}; for my $column ( keys %$columns ) { $entry->{$column} = $series->{$column} if defined $series->{$column}; @@ -174,11 +173,11 @@ sub update ($$) { return undef unless defined $series->{series_id}; my $columns = series::get_columns($config); - my $entry = {}; for my $column ( keys %$columns ) { $entry->{$column} = $series->{$column} if defined $series->{$column}; } + $entry->{image} = images::normalizeName( $entry->{image} ) if defined $entry->{image}; $entry->{id} = $series->{series_id}; $entry->{modified_at} = time::time_to_datetime( time() ); @@ -193,7 +192,6 @@ sub update ($$) { set $values where id=? }; - my $dbh = db::connect($config); return db::put( $dbh, $query, \@bind_values ); } @@ -254,7 +252,6 @@ sub delete($$) { where project_id=? and studio_id=? and series_id=? }; - #print '
      $query'.$query.Dumper($bind_values).'
      '; db::put( $dbh, $query, $bind_values ); project::unassign_series( @@ -285,7 +282,6 @@ sub delete($$) { where id=? }; - #print STDERR $query.$query.Dumper($bind_values); db::put( $dbh, $query, $bind_values ); } @@ -327,11 +323,9 @@ sub get_users ($$) { $conditions }; - #print STDERR $query." ".Dumper(\@bind_values)."\n"; my $dbh = db::connect($config); my $result = db::get( $dbh, $query, \@bind_values ); - #print STDERR $query." ".Dumper($result)."\n"; return $result; } @@ -669,7 +663,6 @@ sub get_event_age($$) { order by has_single_events desc, days_over }; - #print STDERR $query." ".Dumper(\@bind_values); my $dbh = db::connect($config); my $results = db::get( $dbh, $query, \@bind_values ); @@ -850,7 +843,6 @@ sub assign_event($$) { $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id}, $entry->{manual} ]; - #print STDERR '
      '.$query.Dumper($bind_values).'
      '; return db::put( $dbh, $query, $bind_values ); } @@ -874,7 +866,6 @@ sub unassign_event($$) { }; my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{event_id} ]; - #print STDERR '
      '.$query.Dumper($bind_values).'
      '; my $dbh = db::connect($config); return db::put( $dbh, $query, $bind_values ); } From 9b7a1ebc88abaa9c85af6f17fcddfb2f57f2376b Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 7 Mar 2020 22:47:52 +0100 Subject: [PATCH 114/391] support markdown in editor events can be edited in markdown. markup language can be set in series template for newly created events. --- install/migrate.sql | 10 +++++ lib/calcms/eventOps.pm | 4 +- lib/calcms/events.pm | 25 +++++++---- lib/calcms/markup.pm | 8 ++++ lib/calcms/series_events.pm | 22 ++++++---- website/agenda/planung/event.cgi | 16 ++++++-- website/agenda/planung/pot/de/event.po | 10 +++++ website/agenda/planung/pot/de/roles.po | 3 ++ website/agenda/planung/pot/de/series.po | 14 ++++++- website/agenda/planung/pot/en/event.po | 10 +++++ website/agenda/planung/pot/en/roles.po | 3 ++ website/agenda/planung/pot/en/series.po | 9 ++++ website/agenda/planung/series.cgi | 27 +++++++++--- .../agenda/planung/templates/edit-event.html | 15 +++++++ .../agenda/planung/templates/edit-series.html | 9 ++++ website/agenda/planung/user-settings.cgi | 41 +++++++++++-------- 16 files changed, 178 insertions(+), 48 deletions(-) diff --git a/install/migrate.sql b/install/migrate.sql index 753fb33..cee4b82 100644 --- a/install/migrate.sql +++ b/install/migrate.sql @@ -258,3 +258,13 @@ CREATE TABLE `calcms`.`calcms_user_default_studios` ( PRIMARY KEY (`id`), INDEX `user` (`user` ASC)); + +ALTER TABLE `calcms`.`calcms_series` +ADD COLUMN `content_format` VARCHAR(45) NULL AFTER `predecessor_id`; + +ALTER TABLE `calcms`.`calcms_events` +ADD COLUMN `content_format` VARCHAR(45) NULL DEFAULT NULL AFTER `disable_event_sync`; + +ALTER TABLE `calcms`.`calcms_roles` +ADD COLUMN `update_event_field_content_format` TINYINT(1) UNSIGNED NOT NULL AFTER `modified_at`; + diff --git a/lib/calcms/eventOps.pm b/lib/calcms/eventOps.pm index c260167..34700af 100644 --- a/lib/calcms/eventOps.pm +++ b/lib/calcms/eventOps.pm @@ -46,7 +46,7 @@ sub setAttributesFromSeriesTemplate($$$) { my $serie = $series->[0]; for my $attr ( 'program', 'series_name', 'title', 'excerpt', 'topic', 'content', 'html_content', 'project', - 'category', 'location', 'image', 'live', 'archive_url', 'podcast_url' + 'category', 'location', 'image', 'live', 'archive_url', 'podcast_url', 'content_format' ) { $event->{$attr} = $serie->{$attr}; @@ -109,7 +109,7 @@ sub setAttributesFromOtherEvent ($$$){ for my $attr ( 'title', 'user_title', 'excerpt', 'user_excerpt', 'content', 'html_content', 'topics', 'image', 'series_image', 'live', 'no_event_sync', 'podcast_url', - 'archive_url', 'image_label', 'series_image_label' + 'archive_url', 'image_label', 'series_image_label', 'content_format' ) { $event->{$attr} = $event2->{$attr}; diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 701d4f3..1b82878 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -333,16 +333,22 @@ sub modify_results ($$$$) { && ( $params->{template} =~ /\.html/ ) ) { if ( defined $result->{content} ) { - $result->{content} = - markup::fix_line_ends( $result->{content} ); - $result->{content} = - markup::creole_to_html( $result->{content} ); + if (($result->{content_format}//'') eq 'markdown'){ + $result->{content} = markup::markdown_to_html( $result->{content} ); + }else{ + $result->{content} = markup::fix_line_ends( $result->{content} ); + $result->{content} = markup::creole_to_html( $result->{content} ); + } $result->{html_content} = $result->{content}; - } + if ( defined $result->{topic} ) { - $result->{topic} = markup::fix_line_ends( $result->{topic} ); - $result->{topic} = markup::creole_to_html( $result->{topic} ); + if (($result->{content_format}//'') eq 'markdown'){ + $result->{topic} = markup::markdown_to_html( $result->{topic} ); + }else{ + $result->{topic} = markup::fix_line_ends( $result->{topic} ); + $result->{topic} = markup::creole_to_html( $result->{topic} ); + } $result->{html_topic} = $result->{topic}; } } @@ -1029,13 +1035,14 @@ sub get_query($$$) { unless ( $get eq 'no_content' ) { if ( $template =~ /\.html/ ) { unless ( $template =~ /menu/ || $template =~ /list/ ) { - $query .= ', e.content, e.topic, e.html_content, e.html_topic'; + $query .= ', e.content, e.topic, e.html_content, e.html_topic, e.content_format + '; #$query.=',html_content content, html_topic topic' ; } } else { unless ( $template =~ /menu/ || $template =~ /list/ ) { - $query .= ', e.content, e.topic, e.html_content, e.html_topic'; + $query .= ', e.content, e.topic, e.html_content, e.html_topic, e.content_format'; } } } diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index e98c885..b116fff 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -10,6 +10,7 @@ use HTML::Parse(); use HTML::FormatText(); use Encode(); use HTML::Entities(); +use Text::Markdown(); use log(); @@ -144,6 +145,13 @@ sub creole_to_html ($) { return $s; } +sub markdown_to_html($){ + my $text = $_[0] // ''; + print STDERR "markwon!\n"; + my $html = Text::Markdown::markdown($text); + return $html; +} + sub creole_to_plain($) { my $s = shift; diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index 1a21cf6..bd8888f 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -54,12 +54,11 @@ sub save_content($$) { } for my $attr ( 'content', 'topic' ) { - if ( defined $entry->{$attr} ) { + next unless defined $entry->{$attr}; + if (($entry->{content_format}//'') eq 'markdown'){ + $entry->{ 'html_' . $attr } = markup::markdown_to_html( $entry->{$attr} ); + }else{ $entry->{ 'html_' . $attr } = markup::creole_to_html( $entry->{$attr} ); - - #$entry->{'html_'.$attr}=~s/([^\>])\n+([^\<])/$1$2/g; - #$entry->{'html_'.$attr}=~s/^\s*(

      )?//g; - #$entry->{'html_'.$attr}=~s/(<\/p>)?\s*$//g; } } @@ -74,7 +73,8 @@ sub save_content($$) { 'html_topic', 'episode', 'image', 'image_label', 'series_image', 'series_image_label', 'podcast_url', 'archive_url', 'live', 'published', 'playout', 'archived', - 'rerun', 'draft', 'disable_event_sync', 'modified_by' + 'rerun', 'draft', 'disable_event_sync', 'modified_by', + 'content_format' ) { push @keys, $key if defined $entry->{$key}; @@ -467,8 +467,14 @@ sub insert_event ($$) { { $event->{$attr} = $params->{$attr} if defined $params->{$attr}; } - $event->{'html_content'} = markup::creole_to_html( $event->{'content'} ) if defined $event->{'content'}; - $event->{'html_topic'} = markup::creole_to_html( $event->{'topic'} ) if defined $event->{'topic'}; + + if (($event->{'content_format'}//'') eq 'markdown'){ + $event->{'html_content'} = markup::markdown_to_html( $event->{'content'} ) if defined $event->{'content'}; + $event->{'html_topic'} = markup::markdown_to_html( $event->{'topic'} ) if defined $event->{'topic'}; + }else{ + $event->{'html_content'} = markup::creole_to_html( $event->{'content'} ) if defined $event->{'content'}; + $event->{'html_topic'} = markup::creole_to_html( $event->{'topic'} ) if defined $event->{'topic'}; + } #add event status for my $attr ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync' ) { diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index befc21c..b8d0681 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -207,7 +207,7 @@ sub show_event { 'image', 'image_label', 'series_image', 'series_image_label', 'live no_event_sync', 'podcast_url', - 'archive_url' + 'archive_url', 'content_format' ) { $event->{$attr} = $event2->{$attr}; @@ -314,6 +314,10 @@ sub show_event { } $params->{edit_lock} = 1; } + + for my $value ('markdown', 'creole'){ + $params->{"content_format_$value"}=1 if ($params->{content_format}//'') eq $value; + } $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event' } ); @@ -460,6 +464,10 @@ sub show_new_event { $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; } + for my $value ('markdown', 'creole'){ + $params->{"content_format_$value"}=1 if ($params->{content_format}//'') eq $value; + } + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } ); template::process( $config, 'print', template::check( $config, 'edit-event' ), $params ); @@ -567,7 +575,7 @@ sub save_event { for my $key ( 'content', 'topic', 'title', 'excerpt', 'episode', 'image', 'series_image', 'image_label', - 'series_image_label', 'podcast_url', 'archive_url' + 'series_image_label', 'podcast_url', 'archive_url', 'content_format' ) { next unless defined $permissions->{ 'update_event_field_' . $key }; @@ -616,6 +624,7 @@ sub save_event { return; } + # set series image my $series = series::get( $config, { @@ -848,7 +857,7 @@ sub check_params { 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', 'category', 'image', 'series_image', 'user_content', 'user_title', 'user_excerpt', - 'podcast_url', 'archive_url', 'setImage' + 'podcast_url', 'archive_url', 'setImage', 'content_format' ) { if ( defined $params->{$param} ) { @@ -877,6 +886,5 @@ sub check_params { create_event create_event_from_schedule get_json }; } - print STDERR Dumper($checked); return $checked; } diff --git a/website/agenda/planung/pot/de/event.po b/website/agenda/planung/pot/de/event.po index c0bfedc..95db5c1 100644 --- a/website/agenda/planung/pot/de/event.po +++ b/website/agenda/planung/pot/de/event.po @@ -1,3 +1,4 @@ + msgid "region" msgstr "de" @@ -121,6 +122,15 @@ msgstr "bearbeitet am" msgid "label_modified_by" msgstr "von" +msgid "label_content_format" +msgstr "Wiki-Sprache" + +msgid "label_content_format_markdown" +msgstr "Markdown" + +msgid "label_content_format_creole" +msgstr "Creole" + msgid "button_event_list" msgstr "Sendungen zeigen" diff --git a/website/agenda/planung/pot/de/roles.po b/website/agenda/planung/pot/de/roles.po index 81d65ce..ac53ee6 100644 --- a/website/agenda/planung/pot/de/roles.po +++ b/website/agenda/planung/pot/de/roles.po @@ -73,6 +73,9 @@ msgstr "Podcast-URL bearbeiten" msgid "label_update_event_field_archive_url" msgstr "Archiv-URL bearbeiten" +msgid "label_update_event_field_content_format" +msgstr "Wiki-Format setzen" + msgid "label_create_event_from_schedule" msgstr "Sendungen vom Plan anlegen" diff --git a/website/agenda/planung/pot/de/series.po b/website/agenda/planung/pot/de/series.po index e1db460..0fd0693 100644 --- a/website/agenda/planung/pot/de/series.po +++ b/website/agenda/planung/pot/de/series.po @@ -77,11 +77,20 @@ msgstr "interne Kommentare" msgid "template_podcast_url" msgstr "Podcast URL" +msgid "template_archive_url" +msgstr "Archiv URL" + msgid "template_predecessor_id" msgstr "ID der Vorgänger-Serie" -msgid "template_archive_url" -msgstr "Archiv URL" +msgid "template_content_format" +msgstr "Wiki-Sprache" + +msgid "template_content_format_markdown" +msgstr "Markdown" + +msgid "template_content_format_creole" +msgstr "Creole" msgid "tab_schedule" msgstr "Planung" @@ -333,3 +342,4 @@ msgstr "löschen" msgid "label_excerpt_too_long" msgstr "Auszug ist zu lang. Für längeren Text bitte das Feld «aktuelle Themen» verwenden." + diff --git a/website/agenda/planung/pot/en/event.po b/website/agenda/planung/pot/en/event.po index 997c12d..9b52477 100644 --- a/website/agenda/planung/pot/en/event.po +++ b/website/agenda/planung/pot/en/event.po @@ -121,6 +121,15 @@ msgstr "modified at" msgid "label_modified_by" msgstr "by" +msgid "label_content_format" +msgstr "wiki Language" + +msgid "label_content_format_markdown" +msgstr "Markdown" + +msgid "label_content_format_creole" +msgstr "Creole" + msgid "button_event_list" msgstr "show events" @@ -165,3 +174,4 @@ msgstr "excerpt is too long. for longer text please use the field «Current Topi msgid "label_excerpt_extension_too_long" msgstr "excerpt is too long. for longer text please use the field «Current Topics»" + diff --git a/website/agenda/planung/pot/en/roles.po b/website/agenda/planung/pot/en/roles.po index d5fcded..8379cf5 100644 --- a/website/agenda/planung/pot/en/roles.po +++ b/website/agenda/planung/pot/en/roles.po @@ -76,6 +76,9 @@ msgstr "edit podcast URL" msgid "label_update_event_field_archive_url" msgstr "edit archive URL" +msgid "label_update_event_field_content_format" +msgstr "set Wiki-Format" + msgid "label_create_event_from_schedule" msgstr "create new events (with date from an existing schedule)" diff --git a/website/agenda/planung/pot/en/series.po b/website/agenda/planung/pot/en/series.po index 26c1642..ec240e7 100644 --- a/website/agenda/planung/pot/en/series.po +++ b/website/agenda/planung/pot/en/series.po @@ -83,6 +83,15 @@ msgstr "Archive URL" msgid "template_predecessor_id" msgstr "Series Predecessor ID" +msgid "template_content_format" +msgstr "wiki Language" + +msgid "template_content_format_markdown" +msgstr "Markdown" + +msgid "template_content_format_creole" +msgstr "Creole" + msgid "tab_schedule" msgstr "Schedule" diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 0a4d695..2f8a1a1 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -343,10 +343,16 @@ sub save_series { $entry->{live} = $params->{live} // 0; $entry->{count_episodes} = $params->{count_episodes} // 0; $entry->{predecessor_id} = $params->{predecessor_id} // 0; + #$entry->{content} = $params->{content}; + #$entry->{content_format} = $params->{content_format}; #$entry->{html_content} = Encode::decode( 'utf-8', $entry->{content} ); - $entry->{html_content} = markup::creole_to_html( $entry->{content} ); - $entry->{html_content} =~ s/([^\>])\n+([^\<])/$1$2/g; + if ($entry->{content_format} //'' eq "markdown"){ + $entry->{html_content} = markup::markdown_to_html( $entry->{content} ); + }else{ + $entry->{html_content} = markup::creole_to_html( $entry->{content} ); + $entry->{html_content} =~ s/([^\>])\n+([^\<])/$1$2/g; + } $entry->{modified_at} = time::time_to_datetime( time() ); $entry->{modified_by} = $request->{user}; @@ -356,6 +362,7 @@ sub save_series { return; } + # make sure name is not used anywhere else my $series_ids = series::get( $config, { @@ -416,6 +423,7 @@ sub save_series { uac::print_error('series is not assigned to project!'); return undef; } + if ( scalar(@$series_ids) > 1 ) { uac::permissions_denied('update due to entry already exists'); return; @@ -1145,8 +1153,12 @@ sub show_series { $serie->{studio_users} = $studio_users; - $serie->{html_content} = markup::creole_to_html( $serie->{content} ); - $serie->{html_content} =~ s/([^\>])\n+([^\<])/$1$2/g; + if (($serie->{markup_format}//'') eq 'markdown'){ + $serie->{html_content} = markup::markdown_to_html( $serie->{content} ); + }else{ + $serie->{html_content} = markup::creole_to_html( $serie->{content} ); + $serie->{html_content} =~ s/([^\>])\n+([^\<])/$1$2/g; + } for my $user ( @{ $serie->{series_users} } ) { $user->{user_id} = $user->{id}; @@ -1214,11 +1226,14 @@ sub show_series { } #copy series to params - #$params->{series}=[$serie]; for my $key ( keys %$serie ) { $params->{$key} = $serie->{$key}; } + for my $value ('markdown', 'creole'){ + $params->{"content_format_$value"}=1 if $params->{content_format} eq $value; + } + $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,series' } ); template::process( $config, 'print', $params->{template}, $params ); @@ -1476,7 +1491,7 @@ sub check_params { 'image_label', 'assign_event_series_name', 'assign_event_title', 'comment', 'podcast_url', 'archive_url', - 'setImage' + 'setImage', 'content_format' ) { if ( defined $params->{$param} ) { diff --git a/website/agenda/planung/templates/edit-event.html b/website/agenda/planung/templates/edit-event.html index 6ed03b9..a5b5fb8 100644 --- a/website/agenda/planung/templates/edit-event.html +++ b/website/agenda/planung/templates/edit-event.html @@ -494,6 +494,21 @@ + + + + + + + + + + + + diff --git a/website/agenda/planung/templates/edit-series.html b/website/agenda/planung/templates/edit-series.html index 9dabc9d..8f3eabd 100644 --- a/website/agenda/planung/templates/edit-series.html +++ b/website/agenda/planung/templates/edit-series.html @@ -165,6 +165,15 @@ + + + + + +

      diff --git a/website/agenda/planung/user-settings.cgi b/website/agenda/planung/user-settings.cgi index 30dbcb0..34445e3 100755 --- a/website/agenda/planung/user-settings.cgi +++ b/website/agenda/planung/user-settings.cgi @@ -60,7 +60,8 @@ our $errors = []; if ( defined $params->{action} ) { update_settings( $config, $request ) if ( $params->{action} eq 'save' ); - updateDefaultProjectStudio( $config, $request ) if ( $params->{action} eq 'updateDefaultProjectStudio' ); + updateDefaultProjectStudio( $config, $request ) + if ( $params->{action} eq 'updateDefaultProjectStudio' ); } $config->{access}->{write} = 0; show_settings( $config, $request ); @@ -106,7 +107,8 @@ sub show_settings { my $period = $user_settings->{period} || 'month'; $params->{ 'period_' . $period } = 1; - $params->{loc} = localization::get( $config, { language => $language, file => 'user-settings' } ); + $params->{loc} = + localization::get( $config, { language => $language, file => 'user-settings' } ); for my $color ( @{ $params->{colors} } ) { $color->{title} = $params->{loc}->{ $color->{title} }; @@ -132,12 +134,13 @@ sub updateDefaultProjectStudio { }; $config->{access}->{write} = 1; - if ( - defined user_settings::get( - $config, - { user => $user } - ) - ) { + if ( + defined user_settings::get( + $config, + { user => $user } + ) + ) + { uac::print_info("update project and studio settings"); user_settings::update( $config, $entry ); } else { @@ -145,14 +148,16 @@ sub updateDefaultProjectStudio { update_settings( $config, $request ); } - if ( - defined user_default_studios::get( - $config, { - user => $user, - project_id => $params->{project_id} - } - ) - ) { + if ( + defined user_default_studios::get( + $config, + { + user => $user, + project_id => $params->{project_id} + } + ) + ) + { uac::print_info("update user default studio"); user_default_studios::update( $config, $entry ); } else { @@ -217,7 +222,9 @@ sub check_params { $checked->{template} = $template; #numeric values - for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'default_studio', 'default_project' ) { + for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'default_studio', + 'default_project' ) + { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; } From 45841259235da84d210baf9300f462da77a41ddd Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 7 Mar 2020 23:11:44 +0100 Subject: [PATCH 115/391] remove comments and cleanup --- lib/calcms/comments.pm | 9 +++---- lib/calcms/creole_wiki.pm | 4 +-- lib/calcms/eventOps.pm | 11 -------- lib/calcms/markup.pm | 2 +- lib/calcms/password_requests.pm | 12 --------- lib/calcms/playout.pm | 8 ------ lib/calcms/series.pm | 6 ++--- lib/calcms/series_dates.pm | 1 - lib/calcms/series_events.pm | 11 ++++---- lib/calcms/series_schedule.pm | 1 - lib/calcms/studio_timeslot_dates.pm | 21 +++------------- lib/calcms/studio_timeslot_schedule.pm | 28 +++++++++------------ lib/calcms/time.pm | 2 +- lib/calcms/uac.pm | 6 ++--- lib/calcms/work_schedule.pm | 3 --- website/agenda/planung/assign-series.cgi | 4 --- website/agenda/planung/assignments.cgi | 3 --- website/agenda/planung/audio-recordings.cgi | 15 ----------- website/agenda/planung/comment.cgi | 1 - website/agenda/planung/create-events.cgi | 1 - website/agenda/planung/event-history.cgi | 7 ------ website/agenda/planung/image-upload.cgi | 2 -- website/agenda/planung/image.cgi | 8 ------ website/agenda/planung/notify-events.cgi | 2 -- website/agenda/planung/roles.cgi | 5 ---- website/agenda/planung/select-event.cgi | 3 --- website/agenda/planung/studio-timeslots.cgi | 7 ------ website/agenda/planung/user-settings.cgi | 1 - website/agenda/planung/users.cgi | 15 ----------- website/agenda/planung/work-time.cgi | 2 -- 30 files changed, 34 insertions(+), 167 deletions(-) diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 3bcdeb0..23be77d 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -144,9 +144,6 @@ sub get_query($$$) { $limit }; - # where lock_status='show' - # use Data::Dumper;print STDERR Dumper($query); - return ( \$query, $bind_values ); } @@ -430,10 +427,10 @@ sub get_events($$$$) { for my $comment (@$comments) { my $event_id = $comment->{event_id}; my $event = $events_by_id->{$event_id}; - next unless ( defined $event ); + next unless defined $event; $event->{comment_count}++; push @{ $event->{comments} }, $comment; # if ($params->{event_id}ne''); - $event->{max_comment_id} = $comment->{id} if ( $comment->{id} > $event->{max_comment_id} ); + $event->{max_comment_id} = $comment->{id} if $comment->{id} > $event->{max_comment_id}; for my $name ( keys %{ $config->{controllers} } ) { $comment->{ "controller_" . $name } = $config->{controllers}->{$name} || ''; @@ -545,7 +542,7 @@ sub sort_childs { push @{$sorted_nodes}, $node; #return if node is leaf - return $sorted_nodes unless ( defined $node->{childs} ); + return $sorted_nodes unless defined $node->{childs}; #process child nodes for my $child ( @{ $node->{childs} } ) { diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index 1ab1406..1dfb2d7 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -15,7 +15,7 @@ our @EXPORT_OK = sub extractEventFromWikiText($;$) { my $params = shift; my $event = shift; - $event = {} unless ( defined $event ); + $event = {} unless defined $event; my $title = $params->{title} || ''; my $content = $params->{content} || ''; @@ -185,7 +185,7 @@ sub extractMeta ($$) { my $comments = shift; my $meta = shift; - $meta = [] unless ( defined $meta ); + $meta = [] unless defined $meta; #push meta tags into meta list if ( defined $comments ) { diff --git a/lib/calcms/eventOps.pm b/lib/calcms/eventOps.pm index 34700af..75c6fa6 100644 --- a/lib/calcms/eventOps.pm +++ b/lib/calcms/eventOps.pm @@ -61,7 +61,6 @@ sub setAttributesFromSchedule ($$$){ my $params = shift; my $event = shift; - #print 'setAttributesFromSchedule:'.Dumper($params); #set attributes from schedule my $schedules = series_dates::get( $config, @@ -167,7 +166,6 @@ sub getNewEvent($$$) { my $serie = eventOps::setAttributesFromSeriesTemplate( $config, $params, $event ); - #print Dumper($params); if ( $action eq 'show_new_event_from_schedule' ) { eventOps::setAttributesFromSchedule( $config, $params, $event ); } else { @@ -221,16 +219,8 @@ sub createEvent($$$) { push @$checklist, 'schedule' if $action eq 'create_event_from_schedule'; } - #use Data::Dumper; - #print Dumper($checklist); - #print Dumper($request); - #print Dumper($event); - my $start = $event->{start_date}, my $end = time::add_minutes_to_datetime( $event->{start_date}, $event->{duration} ); - #print Dumper($start); - #print Dumper($end); - my $result = series_events::check_permission( $request, { @@ -246,7 +236,6 @@ sub createEvent($$$) { } ); - #print Dumper(" start_date => $event->{start_date}"); unless ( $result eq '1' ) { uac::print_error($result); return undef; diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index b116fff..fbf3117 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -175,7 +175,7 @@ sub creole_to_plain($) { sub html_to_plain ($) { my $s = shift; - return '' unless ( defined $s ); + return '' unless defined $s; my $tree = HTML::Parse::parse_html( '' . $s . '' ); my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 2000 ); $s = $formatter->format($tree); diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm index 376ec9d..7d1ba89 100644 --- a/lib/calcms/password_requests.pm +++ b/lib/calcms/password_requests.pm @@ -54,8 +54,6 @@ sub get ($$) { $conditions }; - #print $query."\n".Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); return $entries->[0] || undef; } @@ -77,7 +75,6 @@ sub update($$) { set $values where token=? }; - print STDERR $query . Dumper( \@bind_values ); db::put( $dbh, $query, \@bind_values ); } @@ -88,7 +85,6 @@ sub insert ($$) { return undef unless defined $entry->{user}; my $dbh = db::connect($config); - print STDERR 'insert ' . Dumper($entry); return db::insert( $dbh, 'calcms_password_requests', $entry ); } @@ -120,7 +116,6 @@ sub delete ($$) { $conditions }; - print STDERR "$query " . Dumper( \@bind_values ); db::put( $dbh, $query, \@bind_values ); } @@ -137,8 +132,6 @@ sub sendToken ($$) { my $oldEntry = password_requests::get( $config, { user => $entry->{user} } ); if ( defined $oldEntry ) { my $createdAt = $oldEntry->{created_at}; - print STDERR Dumper($oldEntry); - print STDERR "createdAt=$createdAt\n"; my $age = time() - time::datetime_to_time($createdAt); if ( $age < 60 ) { print STDERR "too many requests"; @@ -196,18 +189,13 @@ sub changePassword ($$$) { return { error => 'entered passwords do not match' }; } - #print STDERR "error at changing password:" . Dumper($errors); - my $crypt = auth::crypt_password( $params->{user_password} ); $user = { id => $user->{id} }; $user->{salt} = $crypt->{salt}; $user->{pass} = $crypt->{crypt}; - #print '
      '.Dumper($user).'
      '; $config->{access}->{write} = 1; - print STDERR "update user" . Dumper($user); my $result = uac::update_user( $config, $user ); - print STDERR "result:" . Dumper($result); $config->{access}->{write} = 0; return { success => "password changed for $userName" }; } diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index beef723..3645bea 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -235,7 +235,6 @@ sub sync ($$) { my $config = shift; my $options = shift; - print STDERR "upload " . Dumper($options); return undef unless defined $options->{project_id}; return undef unless defined $options->{studio_id}; return undef unless defined $options->{from}; @@ -268,8 +267,6 @@ sub sync ($$) { my $dbh = db::connect($config); my $entries = db::get( $dbh, $query, $bind_values ); - #print STDERR "entries:".Dumper($entries); - # get database entries by date my $entries_by_date = {}; for my $entry (@$entries) { @@ -280,7 +277,6 @@ sub sync ($$) { # remove outdated entries unless ( defined $update_by_date->{$start} ) { - print STDERR "delete:" . Dumper($entry); playout::delete( $config, $dbh, $entry ); my $result = series_events::set_playout_status( $config, @@ -298,7 +294,6 @@ sub sync ($$) { # update existing entries if ( defined $update_by_date->{$start} ) { next if has_changed( $entry, $update_by_date->{$start} ) == 0; - print STDERR "update:" . Dumper($entry); playout::update( $config, $dbh, $entry, $update_by_date->{$start} ); my $result = series_events::set_playout_status( $config, @@ -320,7 +315,6 @@ sub sync ($$) { unless ( defined $entries_by_date->{$start} ) { $entry->{project_id} = $project_id; $entry->{studio_id} = $studio_id; - print STDERR "insert:" . Dumper($entry); playout::insert( $config, $dbh, $entry ); my $result = series_events::set_playout_status( $config, @@ -377,8 +371,6 @@ sub update ($$$$) { } my $entry = $oldEntry; - print STDERR "update:" . Dumper($entry); - my $day_start = $config->{date}->{day_starting_hour}; $entry->{end} = playout::getEnd( $entry->{start}, $entry->{duration} ); $entry->{start_date} = time::add_hours_to_datetime( $entry->{start}, -$day_start ); diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 1d1d298..eb43883 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -365,9 +365,9 @@ sub remove_user ($$) { my $config = shift; my $condition = shift; - return unless ( defined $condition->{project_id} ); - return unless ( defined $condition->{studio_id} ); - return unless ( defined $condition->{series_id} ); + return unless defined $condition->{project_id}; + return unless defined $condition->{studio_id}; + return unless defined $condition->{series_id}; my @conditions = (); my @bind_values = (); diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index 0565c7f..47087d7 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -537,7 +537,6 @@ sub delete ($$) { }; my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id} ]; - #print '
      $query'.$query.Dumper($bind_values).'
      '; db::put( $dbh, $query, $bind_values ); } diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index bd8888f..2b8d26b 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -106,8 +106,8 @@ sub set_episode{ my $config = shift; my $entry = shift; - return undef unless ( defined $entry->{id} ); - return undef unless ( defined $entry->{episode} ); + return undef unless defined $entry->{id}; + return undef unless defined $entry->{episode}; my $query = qq{ update calcms_events @@ -131,9 +131,9 @@ sub save_event_time($$) { my $config = shift; my $entry = shift; - return undef unless ( defined $entry->{id} ); - return undef unless ( defined $entry->{duration} ); - return undef unless ( defined $entry->{start_date} ); + return undef unless defined $entry->{id}; + return undef unless defined $entry->{duration}; + return undef unless defined $entry->{start_date}; my $dbh = db::connect($config); my $event = { @@ -173,7 +173,6 @@ sub save_event_time($$) { }; push @$bind_values, $event->{id}; - #print STDERR $update_sql."\n".Dumper($bind_values)."\n"; db::put( $dbh, $update_sql, $bind_values ); return $event; } diff --git a/lib/calcms/series_schedule.pm b/lib/calcms/series_schedule.pm index dbcbf8d..53539f8 100644 --- a/lib/calcms/series_schedule.pm +++ b/lib/calcms/series_schedule.pm @@ -167,7 +167,6 @@ sub delete($$) { }; my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{series_id}, $entry->{schedule_id} ]; - #print '
      $query'.$query.Dumper($bind_values).'
      '; db::put( $dbh, $query, $bind_values ); } diff --git a/lib/calcms/studio_timeslot_dates.pm b/lib/calcms/studio_timeslot_dates.pm index d407a02..e14ff0b 100644 --- a/lib/calcms/studio_timeslot_dates.pm +++ b/lib/calcms/studio_timeslot_dates.pm @@ -119,7 +119,7 @@ sub update { my $config = shift; my $entry = shift; - return undef unless ( defined $entry->{schedule_id} ); + return undef unless defined $entry->{schedule_id}; my $dbh = db::connect($config); @@ -270,10 +270,9 @@ sub delete { my $config = shift; my $entry = shift; - #print STDERR "delete:".Dumper($entry); - return unless ( defined $entry->{project_id} ); - return unless ( defined $entry->{studio_id} ); - return unless ( defined $entry->{schedule_id} ); + return unless defined $entry->{project_id}; + return unless defined $entry->{studio_id}; + return unless defined $entry->{schedule_id}; my $dbh = db::connect($config); @@ -284,7 +283,6 @@ sub delete { }; my $bind_values = [ $entry->{schedule_id} ]; - #print '
      $query'.$query.Dumper($bind_values).'
      '; db::put( $dbh, $query, $bind_values ); } @@ -297,8 +295,6 @@ sub can_studio_edit_events { my @conditions = (); my @bind_values = (); - #print Dumper($condition); - #return 0 unless defined $condition->{project_id}; return 0 unless defined $condition->{studio_id}; return 0 unless defined $condition->{start}; @@ -363,8 +359,6 @@ sub getMergedDays { my @conditions = (); my @bind_values = (); - #print Dumper($condition); - #return 0 unless defined $condition->{project_id}; return 0 unless defined $condition->{studio_id}; return 0 unless defined $condition->{start}; @@ -411,20 +405,13 @@ sub getMergedDays { order by start }; - # print STDERR Dumper($query).Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); - - # print STDERR Dumper($entries); - if ( scalar(@$entries) == 2 ) { if ( $entries->[0]->{end} eq $entries->[1]->{start} ) { $entries = { start => $entries->[0]->{start}, end => $entries->[1]->{end} }; - - # print STDERR "found".Dumper($entries)."\n"; return $entries; } } diff --git a/lib/calcms/studio_timeslot_schedule.pm b/lib/calcms/studio_timeslot_schedule.pm index 3198132..47c1340 100644 --- a/lib/calcms/studio_timeslot_schedule.pm +++ b/lib/calcms/studio_timeslot_schedule.pm @@ -56,9 +56,6 @@ sub get($$) { order by start }; - #print $query."\n"; - #print Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); for my $entry (@$entries) { $entry->{schedule_id} = $entry->{id}; @@ -71,11 +68,11 @@ sub insert($$) { my $config = shift; my $entry = shift; - return unless ( defined $entry->{project_id} ); - return unless ( defined $entry->{studio_id} ); - return unless ( defined $entry->{start} ); - return unless ( defined $entry->{end} ); - return unless ( defined $entry->{frequency} ); + return unless defined $entry->{project_id}; + return unless defined $entry->{studio_id}; + return unless defined $entry->{start}; + return unless defined $entry->{end}; + return unless defined $entry->{frequency}; my $dbh = db::connect($config); return db::insert( $dbh, 'calcms_studio_timeslot_schedule', $entry ); @@ -86,12 +83,12 @@ sub update($$) { my $config = shift; my $entry = shift; - return unless ( defined $entry->{project_id} ); - return unless ( defined $entry->{studio_id} ); - return unless ( defined $entry->{schedule_id} ); - return unless ( defined $entry->{start} ); - return unless ( defined $entry->{end} ); - return unless ( defined $entry->{frequency} ); + return unless defined $entry->{project_id}; + return unless defined $entry->{studio_id}; + return unless defined $entry->{schedule_id}; + return unless defined $entry->{start}; + return unless defined $entry->{end}; + return unless defined $entry->{frequency}; $entry->{id} = $entry->{schedule_id}; delete $entry->{schedule_id}; @@ -121,7 +118,7 @@ sub delete ($$){ my $config = shift; my $entry = shift; - return unless ( defined $entry->{schedule_id} ); + return unless defined $entry->{schedule_id}; my $dbh = db::connect($config); @@ -132,7 +129,6 @@ sub delete ($$){ }; my $bind_values = [ $entry->{schedule_id} ]; - #print '
      $query'.$query.Dumper($bind_values).'
      '; db::put( $dbh, $query, $bind_values ); } diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index af00ca1..328ad14 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -481,7 +481,7 @@ sub check_datetime($) { sub check_year_month($) { my $date = shift; - return -1 unless ( defined $date ); + return -1 unless defined $date; return $date if ( $date eq '' ); if ( $date =~ /(\d\d\d\d)\-(\d\d?)/ ) { return $1 . '-' . $2 . '-' . $3; diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 1626ce7..df2b28d 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -89,7 +89,7 @@ sub get_users_by_studio ($$) { my $config = shift; my $condition = shift; - return unless ( defined $condition->{studio_id} ); + return unless defined $condition->{studio_id}; my @conditions = (); my @bind_values = (); @@ -517,7 +517,7 @@ sub get_user_id ($$) { my $config = shift; my $user = shift; - return undef unless ( defined $user ); + return undef unless defined $user; my $query = qq{ select id @@ -535,7 +535,7 @@ sub get_role_id ($$) { my $config = shift; my $role = shift; - return undef unless ( defined $role ); + return undef unless defined $role; my $query = qq{ select id diff --git a/lib/calcms/work_schedule.pm b/lib/calcms/work_schedule.pm index 51039b9..3aefb32 100644 --- a/lib/calcms/work_schedule.pm +++ b/lib/calcms/work_schedule.pm @@ -80,8 +80,6 @@ sub get($$) { order by exclude, start }; - #print STDERR $query."\n".Dumper(\@bind_values); - my $entries = db::get( $dbh, $query, \@bind_values ); return $entries; } @@ -143,7 +141,6 @@ sub delete($$) { }; my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{schedule_id} ]; - #print '
      $query'.$query.Dumper($bind_values).'
      '; return db::put( $dbh, $query, $bind_values ); } diff --git a/website/agenda/planung/assign-series.cgi b/website/agenda/planung/assign-series.cgi index 8de15c6..8432817 100755 --- a/website/agenda/planung/assign-series.cgi +++ b/website/agenda/planung/assign-series.cgi @@ -179,7 +179,6 @@ sub assign_series { } ); - #print Dumper($series); if ( @$series == 0 ) { # assign series to project/studio @@ -192,12 +191,9 @@ sub assign_series { } ); - #print "assign\n"; } else { print STDERR "event $entry->{event_id} already assigned to project $entry->{project_id}, studio $entry->{studio_id}, series $entry->{series_id}\n"; - - #print "is schon\n"; } $config->{access}->{write} = 0; diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index 1598fd0..d099e18 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -97,13 +97,11 @@ sub show_events { my $projects = project::get( $config, { project_id => $params->{project_id} } ); my $project = $projects->[0]; - #print STDERR Dumper($project); return unless ( @$projects == 1 ); my $studios = studios::get( $config, { project_id => $params->{project_id}, studio_id => $params->{studio_id} } ); my $studio = $studios->[0]; - #print STDERR Dumper($studio); return unless ( @$studios == 1 ); my $project_name = $project->{name}; @@ -161,7 +159,6 @@ sub show_events { order by series_name,title,start limit 1000 }; - print '
      ' . Dumper($query) . Dumper($bind_values) . '
      '; $results = db::get( $dbh, $query, $bind_values ); # detect title and episode diff --git a/website/agenda/planung/audio-recordings.cgi b/website/agenda/planung/audio-recordings.cgi index b4c4433..cdcfbbb 100755 --- a/website/agenda/planung/audio-recordings.cgi +++ b/website/agenda/planung/audio-recordings.cgi @@ -98,8 +98,6 @@ my $permissions = $request->{permissions}; $params->{action} = '' unless defined $params->{action}; $params->{error} = $error || ''; -#print STDERR Dumper($params); - if ( $params->{action} eq 'upload' ) { uploadRecording( $config, $request ); } elsif ( $params->{action} eq 'delete' ) { @@ -137,7 +135,6 @@ sub uploadRecording { if ( defined $fh ) { print STDERR "upload\n"; - #print STDERR Dumper($fh)."
      "; my $fileInfo = uploadFile( $config, $fh, $params->{event_id}, $user, $params->{upload} ); $params->{error} .= $fileInfo->{error} if defined $fileInfo->{error}; $params->{path} = $fileInfo->{path}; @@ -284,8 +281,6 @@ sub showAudioRecordings { return; } - #print '
      '.Dumper($event).'
      '; - my $audioRecordings = audio_recordings::get( $config, { @@ -294,8 +289,6 @@ sub showAudioRecordings { event_id => $params->{event_id}, } ); - - #print Dumper($audioRecordings); for my $recording (@$audioRecordings) { $recording->{size} =~ s/(\d)(\d\d\d)$/$1\.$2/g; $recording->{size} =~ s/(\d)(\d\d\d\.\d\d\d)$/$1\.$2/g; @@ -411,8 +404,6 @@ sub updateDatabase { eventDuration => $eventDuration }; - #print STDERR "updateDatabase:" . Dumper($entry); - #connect $config->{access}->{write} = 1; my $dbh = db::connect($config); @@ -466,17 +457,12 @@ sub getFilename { } - #print STDERR "cgi:".Dumper($cgi); - # fallback to CGI module my $file = $cgi->param("upload"); return { error => "is no file" } if ( defined $file ) && ( $file =~ /\|/ ); - #print STDERR "file:".Dumper($file); my $fileInfo = $cgi->uploadInfo($file); - #print STDERR "fileInfo:".Dumper($fileInfo); - if ( defined $fileInfo ) { my $filename = $fileInfo->{'Content-Disposition'} || ''; if ( $filename =~ /filename=\"(.*?)\"/ ) { @@ -559,7 +545,6 @@ sub check_params { $checked->{template} = template::check( $config, $params->{template}, 'upload-audio-recordings' ); - #print Dumper($params); #numeric values for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) { diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index cbf3683..31afeb0 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -60,7 +60,6 @@ $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; -#print Dumper($params); #show header if ( ( params::isJson() ) || ( defined $params->{action} ) ) { print "Content-Type:text/html; charset=utf-8;\n\n"; diff --git a/website/agenda/planung/create-events.cgi b/website/agenda/planung/create-events.cgi index 296507d..5c7039e 100755 --- a/website/agenda/planung/create-events.cgi +++ b/website/agenda/planung/create-events.cgi @@ -192,7 +192,6 @@ sub createEvent { $event->{start_date} = $event->{start}; eventOps::createEvent( $request, $event, 'create_event_from_schedule' ); - print STDERR Dumper($date); return $event; } diff --git a/website/agenda/planung/event-history.cgi b/website/agenda/planung/event-history.cgi index 7ddf21f..1e6384f 100755 --- a/website/agenda/planung/event-history.cgi +++ b/website/agenda/planung/event-history.cgi @@ -48,8 +48,6 @@ my $request = { }, }; -#print STDERR Dumper($request)."\n"; - #set user at params->presets->user $request = uac::prepare_request( $request, $user_presets ); @@ -106,15 +104,12 @@ sub show_history { my $events = event_history::get( $config, $options ); - #print STDERR Dumper($events); return unless defined $events; $params->{events} = $events; for my $permission ( keys %{$permissions} ) { $params->{'allow'}->{$permission} = $request->{permissions}->{$permission}; } - - #print STDERR Dumper($params); $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event-history' } ); template::process( $config, 'print', template::check( $config, 'event-history' ), $params ); @@ -280,8 +275,6 @@ sub check_params { $checked->{action} = $params->{action}; } } - - #print STDERR Dumper($checked); return $checked; } diff --git a/website/agenda/planung/image-upload.cgi b/website/agenda/planung/image-upload.cgi index 5938053..b5cefe6 100755 --- a/website/agenda/planung/image-upload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -84,7 +84,6 @@ if ( defined $r ) { print STDERR "fallback\n"; } -print STDERR Dumper($params); print "Content-type:text/html; charset=UTF-8;\n\n"; my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( ( !defined $user ) || ( $user eq '' ) ); @@ -214,7 +213,6 @@ sub update_database { studio_id => $params->{studio_id}, licence => $params->{licence} }; - print STDERR Dumper($image); #connect $config->{access}->{write} = 1; diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index d6d8247..2069c7f 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -168,8 +168,6 @@ sub show_image { $selectedImage = $filenames->{$selectedFilename}; } else { - #print STDERR "getByName:".Dumper($params); - #put selected image to the top my $imagesByNames = images::get( $config, @@ -179,8 +177,6 @@ sub show_image { filename => $selectedFilename } ); - - #print STDERR Dumper($imagesByNames); $selectedImage = $imagesByNames->[0] if scalar @$imagesByNames > 0; } @@ -293,8 +289,6 @@ sub save_image { print STDERR "going to save\n"; - #print STDERR Dumper($image); - my $entries = images::get( $config, { @@ -480,8 +474,6 @@ sub check_params { $checked->{from} = time::check_date( $params->{from} ); $checked->{till} = time::check_date( $params->{till} ); - #print STDERR 'checked:'.Dumper ($checked); - return $checked; } diff --git a/website/agenda/planung/notify-events.cgi b/website/agenda/planung/notify-events.cgi index 82cb9d4..ba611dc 100755 --- a/website/agenda/planung/notify-events.cgi +++ b/website/agenda/planung/notify-events.cgi @@ -51,8 +51,6 @@ my $request = { }, }; -#print STDERR Dumper($request)."\n"; - #set user at params->presets->user $request = uac::prepare_request( $request, $user_presets ); diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 431c65e..11a21e1 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -74,7 +74,6 @@ if ( defined $params->{action} ) { $config->{access}->{write} = 0; show_roles( $config, $request ); -#print '
      '.Dumper($request);
       return;
       
       # update roles in database:
      @@ -108,8 +107,6 @@ sub save_roles {
       
           my $columns = uac::get_role_columns($config);
       
      -    #print '
      '.Dumper($columns).'
      '; - #initialize all value ids (given by params matching to database columns) my $values = {}; for my $param ( keys %$params ) { @@ -163,7 +160,6 @@ sub save_roles { } } - #print STDERR Dumper($values); #order roles to update by level for my $id ( sort { $values->{$a}->{level} <=> $values->{$b}->{level} } keys %$values ) { my $role = $values->{$id}; @@ -313,7 +309,6 @@ sub show_roles { for my $role (@$roles) { - #print Dumper($role); my $id = $role->{id} || ''; my $value = $role->{role} || ''; my $style = ''; diff --git a/website/agenda/planung/select-event.cgi b/website/agenda/planung/select-event.cgi index 0116ff0..94d9d86 100755 --- a/website/agenda/planung/select-event.cgi +++ b/website/agenda/planung/select-event.cgi @@ -110,13 +110,10 @@ sub show_events { push @$years, $date; } - #print Dumper($params->{loc}); $params->{studios} = $user_studios; $params->{series} = $series; $params->{events} = $events; $params->{years} = $years; - - #print STDERR Dumper($params); template::process( $config, 'print', $params->{template}, $params ); return; } diff --git a/website/agenda/planung/studio-timeslots.cgi b/website/agenda/planung/studio-timeslots.cgi index dad699a..d171ad9 100755 --- a/website/agenda/planung/studio-timeslots.cgi +++ b/website/agenda/planung/studio-timeslots.cgi @@ -108,7 +108,6 @@ sub save_schedule { return; } - #print Dumper($params); my $params = $request->{params}->{checked}; for my $attr ( 'project_id', 'studio_id', 'start', 'end', 'end_date', 'schedule_studio_id' ) { @@ -131,22 +130,16 @@ sub save_schedule { return; } - #print Dumper($entry); $config->{access}->{write} = 1; if ( defined $params->{schedule_id} ) { $entry->{schedule_id} = $params->{schedule_id}; - - #print Dumper($entry); studio_timeslot_schedule::update( $config, $entry ); - #my $updates=0; - #print Dumper($entry); my $updates = studio_timeslot_dates::update( $config, $entry ); uac::print_info("timeslot schedule saved. $updates dates scheduled"); } else { $entry->{schedule_id} = studio_timeslot_schedule::insert( $config, $entry ); - #my $updates=0; my $updates = studio_timeslot_dates::update( $config, $entry ); uac::print_info("timeslot schedule added. $updates dates added"); } diff --git a/website/agenda/planung/user-settings.cgi b/website/agenda/planung/user-settings.cgi index 34445e3..511268a 100755 --- a/website/agenda/planung/user-settings.cgi +++ b/website/agenda/planung/user-settings.cgi @@ -34,7 +34,6 @@ my $user_presets = uac::get_user_presets( studio_id => $params->{studio_id} } ); -#print STDERR Dumper($user_presets); $params->{default_studio_id} = $user_presets->{studio_id}; $params = uac::setDefaultStudio( $params, $user_presets ); $params = uac::setDefaultProject( $params, $user_presets ); diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index dfe1bd4..0066cd3 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -100,7 +100,6 @@ sub show_users { for my $user (@$users) { $user->{disabled_checked} = 'selected="selected"' if ( $user->{disabled} eq '1' ); - #print Dumper($user); my $user_roles = uac::get_user_roles( $config, { @@ -111,8 +110,6 @@ sub show_users { ); my @user_roles = ( map { { role => $_->{role} } } @$user_roles ); - #print Dumper(\@user_roles); - #@user_roles[-1]->{__last__}=1 unless(@user_roles==0); $user->{user_roles} = \@user_roles; #mark all roles assigned to user @@ -167,11 +164,8 @@ sub show_users { $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'users' } ); uac::set_template_permissions( $permissions, $params ); - #print Dumper($permissions); template::process( $config, 'print', $params->{template}, $params ); - # template::process($config, 'print', template::check($config, 'users'), $params); - } sub update_user { @@ -198,11 +192,9 @@ sub update_user { return; } - #print Dumper($params); my $users = uac::get_users( $config, { email => $params->{user_email} } ); if ( scalar(@$users) > 0 ) { - #print Dumper($users); error('There is already a user registered for the given email address'); return; } @@ -217,7 +209,6 @@ sub update_user { $user->{salt} = $crypt->{salt}; $user->{pass} = $crypt->{crypt}; - #print '
      '.Dumper($user).'
      '; $user->{created_at} = time::time_to_datetime( time() ); $user->{modified_at} = time::time_to_datetime( time() ); $user->{created_by} = $params->{presets}->{user}; @@ -250,7 +241,6 @@ sub change_password { $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'users' } ); uac::set_template_permissions( $permissions, $params ); - #print Dumper($permissions); template::process( $config, 'print', template::check( $config, 'change-password' ), $params ); } @@ -275,9 +265,6 @@ sub update_user_roles { my $config = shift; my $request = shift; - # print Dumper($params).'
      '; - # print Dumper($request->{params}->{checked}); - my $permissions = $request->{permissions}; unless ( $permissions->{update_user_role} == 1 ) { uac::permissions_denied('update_user_role'); @@ -453,8 +440,6 @@ sub check_params { } } - #print Dumper($params); - #print '
      '.Dumper($checked).'
      '; return $checked; } diff --git a/website/agenda/planung/work-time.cgi b/website/agenda/planung/work-time.cgi index b851520..b8119f8 100755 --- a/website/agenda/planung/work-time.cgi +++ b/website/agenda/planung/work-time.cgi @@ -80,7 +80,6 @@ sub save_schedule { return; } - #print Dumper($params); for my $attr ( 'project_id', 'studio_id', 'start' ) { unless ( defined $params->{$attr} ) { uac::print_error( $attr . ' not given!' ); @@ -255,7 +254,6 @@ sub show_work_schedule { $params->{$key} = $serie->{$key}; } - #print STDERR '
      '.Dumper($params).'
      '; $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'work-time' } ); template::process( $config, 'print', $params->{template}, $params ); } From ea9590f6dcf09d676c2e4f311d4d47514c8c3d62 Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 7 Mar 2020 23:18:42 +0100 Subject: [PATCH 116/391] remove brackets from conditions that are not needed --- lib/calcms/aggregator.pm | 2 +- lib/calcms/creole_wiki.pm | 6 +++--- lib/calcms/events.pm | 2 +- lib/calcms/localization.pm | 2 +- lib/calcms/roles.pm | 2 +- lib/calcms/series.pm | 12 ++++++------ website/agenda/planung/comment.cgi | 2 +- website/agenda/planung/image-upload.cgi | 2 +- website/agenda/planung/roles.cgi | 6 ++---- website/agenda/planung/series.cgi | 2 +- website/agenda/planung/studio-timeslots.cgi | 4 ++-- website/agenda/planung/users.cgi | 4 ++-- website/agenda/planung/work-time.cgi | 2 +- 13 files changed, 23 insertions(+), 25 deletions(-) diff --git a/lib/calcms/aggregator.pm b/lib/calcms/aggregator.pm index e61b421..3a8113e 100644 --- a/lib/calcms/aggregator.pm +++ b/lib/calcms/aggregator.pm @@ -103,7 +103,7 @@ sub get_calendar($$$) { my $debug = $config->{system}->{debug}; $request->{params}->{original}->{template} = 'calendar.html'; - $request->{params}->{original}->{date} = $date if ( defined $date ); + $request->{params}->{original}->{date} = $date if defined $date; $request->{params}->{checked} = calendar::check_params( $config, $request->{params}->{original} ); $params = $request->{params}->{checked}; diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index 1dfb2d7..ea50f08 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -71,14 +71,14 @@ sub extractEventFromWikiText($;$) { $category =~ s/\s+/ /g; $category =~ s/^\s+|\s+$//g; $category =~ s/\&/\+/g; - push @categories, $category if ( defined $category && $category =~ /\S/ ); + push @categories, $category if defined $category && $category =~ /\S/; $category = ''; $category = $2 if ( defined $2 ); $category =~ s/\s+/ /g; $category =~ s/^\s+|\s+$//g; $category =~ s/\&/\+/g; - push @categories, $category if ( defined $category && $category =~ /\S/ ); + push @categories, $category if defined $category && $category =~ /\S/; $title =~ s/\((.*?),(.*?)\)/\($2\)/; } if ( $title =~ /\((.*?)\)/ ) { @@ -87,7 +87,7 @@ sub extractEventFromWikiText($;$) { $category =~ s/^\s+|\s+$//g; $category =~ s/\&/\+/g; - push @categories, $category if ( defined $category && $category =~ /\S/ ); + push @categories, $category if defined $category && $category =~ /\S/; $title =~ s/\((.*?)\)//; } $event->{categories} = \@categories if ( @categories > 0 ); diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 1b82878..8984926 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -371,7 +371,7 @@ sub modify_results ($$$$) { ) { for my $key ( keys %$result ) { - $result->{$key} =~ s/\|/\\\|/g if ( defined $result->{$key} ); + $result->{$key} =~ s/\|/\\\|/g if defined $result->{$key}; } # $result->{content}='no'; diff --git a/lib/calcms/localization.pm b/lib/calcms/localization.pm index c89a5f0..484674b 100644 --- a/lib/calcms/localization.pm +++ b/lib/calcms/localization.pm @@ -31,7 +31,7 @@ sub get($$) { my $language = undef; #get language from options - $language = $options->{language} if ( defined $options->{language} ); + $language = $options->{language} if defined $options->{language}; #get language from user if ( ( !( defined $language ) ) && ( defined $options->{user} ) ) { diff --git a/lib/calcms/roles.pm b/lib/calcms/roles.pm index aaf4f96..5572786 100644 --- a/lib/calcms/roles.pm +++ b/lib/calcms/roles.pm @@ -107,7 +107,7 @@ sub get_user($) { my $user = $ENV{REMOTE_USER}; my $users = $config->{users}; - return $user if ( defined $users->{$user} ); + return $user if defined $users->{$user}; return 'nobody'; } diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index eb43883..6840810 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -426,12 +426,12 @@ sub search_events ($$$) { template => 'no' }; if ( defined $options ) { - $params->{from_date} = $options->{from_date} if ( defined $options->{from_date} ); - $params->{till_date} = $options->{till_date} if ( defined $options->{till_date} ); - $params->{location} = $options->{location} if ( defined $options->{location} ); - $params->{limit} = $options->{limit} if ( defined $options->{limit} ); - $params->{archive} = $options->{archive} if ( defined $options->{archive} ); - $params->{get} = $options->{get} if ( defined $options->{get} ); + $params->{from_date} = $options->{from_date} if defined $options->{from_date}; + $params->{till_date} = $options->{till_date} if defined $options->{till_date}; + $params->{location} = $options->{location} if defined $options->{location}; + $params->{limit} = $options->{limit} if defined $options->{limit}; + $params->{archive} = $options->{archive} if defined $options->{archive}; + $params->{get} = $options->{get} if defined $options->{get}; } my $checked_params = events::check_params( $config, $params ); diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 31afeb0..809b250 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -138,7 +138,7 @@ sub showComments { my $language = $config->{date}->{language} || 'en'; for my $event (@$events) { $event->{start} = time::date_time_format( $config, $event->{start}, $language ); - $comment_count += $event->{comment_count} if ( defined $event->{comment_count} ); + $comment_count += $event->{comment_count} if defined $event->{comment_count}; $event->{cache_base_url} = $config->{cache}->{base_url}; } } diff --git a/website/agenda/planung/image-upload.cgi b/website/agenda/planung/image-upload.cgi index b5cefe6..6af5886 100755 --- a/website/agenda/planung/image-upload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -69,7 +69,7 @@ if ( defined $r ) { if ( $status =~ /limit/i ) { $error = $status; } else { - $upload = $apr->upload('image') if ( defined $params->{image} ); + $upload = $apr->upload('image') if defined $params->{image}; } print STDERR "apr\n"; } else { diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 11a21e1..04ab17c 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -366,7 +366,7 @@ sub show_roles { $out .= qq{}; } $out .= ''; - $out .= '' if ( defined $permissions->{update_role} ); + $out .= '' if defined $permissions->{update_role}; $out .= ''; $out .= '
      '; print $out. "\n"; @@ -383,10 +383,8 @@ sub sort_columns { my $action = shift @words; my $group = join( ' ', @words ); - #print "action:'$action' group:'$group'
      \n"; - my $index = $groups->{$group} || 0; - $index += $actions->{$action} if ( defined $actions->{$action} ); + $index += $actions->{$action} if defined $actions->{$action}; $column_level->{$column} = $index; # print $index."
      "; diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 2f8a1a1..a8beedc 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -148,7 +148,7 @@ sub save_schedule { 'nextDay' ) { - $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); + $entry->{$attr} = $params->{$attr} if defined $params->{$attr}; } unless ( project::is_series_assigned( $config, $entry ) == 1 ) { diff --git a/website/agenda/planung/studio-timeslots.cgi b/website/agenda/planung/studio-timeslots.cgi index d171ad9..834918a 100755 --- a/website/agenda/planung/studio-timeslots.cgi +++ b/website/agenda/planung/studio-timeslots.cgi @@ -119,11 +119,11 @@ sub save_schedule { my $entry = {}; for my $attr ( 'project_id', 'start', 'end', 'end_date', 'frequency' ) { - $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); + $entry->{$attr} = $params->{$attr} if defined $params->{$attr}; } #set schedule's studio to value from schedule_studio_id - $entry->{studio_id} = $params->{schedule_studio_id} if ( defined $params->{schedule_studio_id} ); + $entry->{studio_id} = $params->{schedule_studio_id} if defined $params->{schedule_studio_id}; if ( ( $entry->{end} ne '' ) && ( $entry->{end} le $entry->{start} ) ) { uac::print_error('start date should be before end date!'); diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index 0066cd3..0abcbb2 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -327,7 +327,7 @@ sub update_user_roles { my $message = "remove role '$role->{role}' (level $role->{level}) from user $user_id (level $max_user_level) for studio_id=$studio_id, project_id=$project_id. Your level is $max_level"; my $update = 0; - $update = 1 if ( defined $permissions->{is_admin} ); + $update = 1 if defined $permissions->{is_admin}; $update = 1 if ( ( $role_by_id->{ $user_role->{role_id} }->{level} < $max_level ) && ( $max_user_level < $max_level ) ); @@ -365,7 +365,7 @@ sub update_user_roles { # print "user role id: $role->{id}
      \n"; my $update = 0; - $update = 1 if ( defined $permissions->{is_admin} ); + $update = 1 if defined $permissions->{is_admin}; $update = 1 if ( ( $role_by_id->{ $role->{id} }->{level} < $max_level ) && ( $max_user_level < $max_level ) ); diff --git a/website/agenda/planung/work-time.cgi b/website/agenda/planung/work-time.cgi index b8119f8..3776558 100755 --- a/website/agenda/planung/work-time.cgi +++ b/website/agenda/planung/work-time.cgi @@ -94,7 +94,7 @@ sub save_schedule { 'type' ) { - $entry->{$attr} = $params->{$attr} if ( defined $params->{$attr} ); + $entry->{$attr} = $params->{$attr} if defined $params->{$attr}; } my $found = 0; From 7b565c6d9b02ccbb40814f3bd6a2d41ba523a00c Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 00:24:15 +0100 Subject: [PATCH 117/391] use map for table columns --- lib/calcms/audio_recordings.pm | 5 ++--- lib/calcms/db.pm | 7 +++---- lib/calcms/event_history.pm | 5 ++--- lib/calcms/password_requests.pm | 3 +-- lib/calcms/playout.pm | 5 ++--- lib/calcms/project.pm | 5 ++--- lib/calcms/series.pm | 5 ++--- lib/calcms/series_dates.pm | 5 ++--- lib/calcms/series_schedule.pm | 4 +--- lib/calcms/studio_timeslot_dates.pm | 5 ++--- lib/calcms/studio_timeslot_schedule.pm | 5 ++--- lib/calcms/studios.pm | 5 ++--- lib/calcms/user_default_studios.pm | 5 +---- lib/calcms/user_sessions.pm | 5 ++--- lib/calcms/user_settings.pm | 5 ++--- lib/calcms/user_stats.pm | 5 ++--- lib/calcms/work_dates.pm | 5 ++--- lib/calcms/work_schedule.pm | 5 ++--- website/agenda/planung/projects.cgi | 4 ++-- website/agenda/planung/studios.cgi | 4 ++-- 20 files changed, 38 insertions(+), 59 deletions(-) diff --git a/lib/calcms/audio_recordings.pm b/lib/calcms/audio_recordings.pm index a7b0195..ff93c96 100644 --- a/lib/calcms/audio_recordings.pm +++ b/lib/calcms/audio_recordings.pm @@ -21,9 +21,8 @@ sub debug; sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_audio_recordings' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_audio_recordings' ); } # get playout entries diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index 97dfb99..00a0f47 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -115,8 +115,7 @@ sub get_columns($$) { my $table = shift; my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] ); - my @result = map { $_->{column_name} } (@$columns); - return \@result; + return [ map { $_->{column_name} } @$columns ]; } # get hash with table columns as keys @@ -124,8 +123,8 @@ sub get_columns_hash($$) { my $dbh = shift; my $table = shift; - my $columns = db::get_columns( $dbh, $table ); - return { map { $_ => 1 } @$columns }; + my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] ); + return { map { $_->{column_name} => 1 } @$columns }; } #returns last inserted id diff --git a/lib/calcms/event_history.pm b/lib/calcms/event_history.pm index 7f9c836..ac0ccbb 100644 --- a/lib/calcms/event_history.pm +++ b/lib/calcms/event_history.pm @@ -14,9 +14,8 @@ sub debug; sub get_columns ($){ my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_event_history' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_event_history' ); } sub get ($$){ diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm index 7d1ba89..3a4897d 100644 --- a/lib/calcms/password_requests.pm +++ b/lib/calcms/password_requests.pm @@ -22,8 +22,7 @@ sub get_columns ($) { my $config = shift; my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_password_requests' ); - return { map { $_ => undef } @$cols }; + return db::get_columns_hash( $dbh, 'calcms_password_requests' ); } sub get ($$) { diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index 3645bea..aba9b83 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -18,9 +18,8 @@ sub debug; sub get_columns ($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_playout' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_playout' ); } diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index 3e89d21..cba7be9 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -28,9 +28,8 @@ sub debug; sub get_columns ($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_projects' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_projects' ); } # get projects diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index 6840810..c17e53a 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -32,9 +32,8 @@ sub debug; sub get_columns ($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_series' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_series' ); } # get series content diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index 47087d7..15e5941 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -24,9 +24,8 @@ sub debug; sub get_columns ($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_series_dates' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_series_dates' ); } # get all series_dates for studio_id and series_id within given time range diff --git a/lib/calcms/series_schedule.pm b/lib/calcms/series_schedule.pm index 53539f8..59ccc31 100644 --- a/lib/calcms/series_schedule.pm +++ b/lib/calcms/series_schedule.pm @@ -27,9 +27,7 @@ sub get_columns ($) { my $config = shift; my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_series_schedule' ); - return { map { $_ => undef } @$cols }; - + return db::get_columns_hash( $dbh, 'calcms_series_schedule' ); } #map schedule id to id diff --git a/lib/calcms/studio_timeslot_dates.pm b/lib/calcms/studio_timeslot_dates.pm index e14ff0b..0ed9ae9 100644 --- a/lib/calcms/studio_timeslot_dates.pm +++ b/lib/calcms/studio_timeslot_dates.pm @@ -20,9 +20,8 @@ sub debug; sub get_columns ($){ my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_studio_timeslot_dates' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_studio_timeslot_dates' ); } # get all studio_timeslot_dates for studio_id within given time range diff --git a/lib/calcms/studio_timeslot_schedule.pm b/lib/calcms/studio_timeslot_schedule.pm index 47c1340..649b107 100644 --- a/lib/calcms/studio_timeslot_schedule.pm +++ b/lib/calcms/studio_timeslot_schedule.pm @@ -18,9 +18,8 @@ sub debug; sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_studio_timeslot_schedule' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_studio_timeslot_schedule' ); } #map schedule id to id diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 77f05ac..e5cc691 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -15,9 +15,8 @@ sub debug; sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_studios' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_studios' ); } sub get($;$) { my $config = shift; diff --git a/lib/calcms/user_default_studios.pm b/lib/calcms/user_default_studios.pm index 58d0090..64816e4 100644 --- a/lib/calcms/user_default_studios.pm +++ b/lib/calcms/user_default_studios.pm @@ -8,8 +8,6 @@ use Data::Dumper; # table: calcms_user_default_studios # columns: user, project_id, studio_id -#use base 'Exporter'; -#our @EXPORT_OK = qw(get insert update delete get_columns); sub debug; @@ -17,8 +15,7 @@ sub get_columns($) { my $config = shift; my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_user_default_studios' ); - return { map { $_ => undef } @$cols }; + return db::get_columns_hash( $dbh, 'calcms_user_default_studios' ); } sub get ($$) { diff --git a/lib/calcms/user_sessions.pm b/lib/calcms/user_sessions.pm index 97566f3..8ec069e 100644 --- a/lib/calcms/user_sessions.pm +++ b/lib/calcms/user_sessions.pm @@ -26,9 +26,8 @@ sub debug; sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_user_sessions' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_user_sessions' ); } #map schedule id to id diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 2a85de7..1e80718 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -136,9 +136,8 @@ sub getColorCss ($$) { sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_user_settings' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_user_settings' ); } sub get ($$) { diff --git a/lib/calcms/user_stats.pm b/lib/calcms/user_stats.pm index 54aad9e..5320635 100644 --- a/lib/calcms/user_stats.pm +++ b/lib/calcms/user_stats.pm @@ -13,9 +13,8 @@ sub debug; sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_user_stats' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_user_stats' ); } sub get ($$) { diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index c46ca2b..6a1cd4d 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -24,9 +24,8 @@ sub debug; sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_work_dates' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_work_dates' ); } # get all work_dates for studio_id and schedule_id within given time range diff --git a/lib/calcms/work_schedule.pm b/lib/calcms/work_schedule.pm index 3aefb32..a543730 100644 --- a/lib/calcms/work_schedule.pm +++ b/lib/calcms/work_schedule.pm @@ -25,9 +25,8 @@ sub debug; sub get_columns($) { my $config = shift; - my $dbh = db::connect($config); - my $cols = db::get_columns( $dbh, 'calcms_work_schedule' ); - return { map { $_ => undef } @$cols }; + my $dbh = db::connect($config); + return db::get_columns_hash( $dbh, 'calcms_work_schedule' ); } #map schedule id to id diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 2978435..18794d0 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -86,7 +86,7 @@ sub delete_project { my $entry = {}; for my $param ( keys %$params ) { - if ( defined $columns->{$param} ) { + if ( exists $columns->{$param} ) { $entry->{$param} = $params->{$param} || ''; } } @@ -113,7 +113,7 @@ sub save_project { my $columns = project::get_columns($config); my $entry = {}; for my $param ( keys %$params ) { - if ( defined $columns->{$param} ) { + if ( exists $columns->{$param} ) { $entry->{$param} = $params->{$param} || ''; } } diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index e933fc2..18e26ed 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -82,7 +82,7 @@ sub delete_studio { my $entry = {}; for my $param ( keys %$params ) { - if ( defined $columns->{$param} ) { + if ( exists $columns->{$param} ) { $entry->{$param} = $params->{$param} || ''; } } @@ -131,7 +131,7 @@ sub save_studio { my $columns = studios::get_columns($config); my $entry = {}; for my $param ( keys %$params ) { - if ( defined $columns->{$param} ) { + if ( exists $columns->{$param} ) { $entry->{$param} = $params->{$param} || ''; } } From a769424a6e47a5401d4663a8d395b03cef1e5f63 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 11:37:30 +0100 Subject: [PATCH 118/391] remove use base Exporter; no need to call import --- lib/calcms/aggregator.pm | 2 +- lib/calcms/audio_recordings.pm | 2 +- lib/calcms/auth.pm | 2 +- lib/calcms/calendar.pm | 2 +- lib/calcms/comments.pm | 2 +- lib/calcms/config.pm | 2 +- lib/calcms/creole_wiki.pm | 2 +- lib/calcms/db.pm | 2 +- lib/calcms/eventOps.pm | 2 +- lib/calcms/event_history.pm | 2 +- lib/calcms/events.pm | 2 +- lib/calcms/images.pm | 2 +- lib/calcms/localization.pm | 2 +- lib/calcms/log.pm | 2 +- lib/calcms/markup.pm | 2 +- lib/calcms/params.pm | 2 +- lib/calcms/password_requests.pm | 2 +- lib/calcms/playout.pm | 2 +- lib/calcms/project.pm | 2 +- lib/calcms/roles.pm | 2 +- lib/calcms/series.pm | 2 +- lib/calcms/series_dates.pm | 2 +- lib/calcms/series_events.pm | 2 +- lib/calcms/series_schedule.pm | 2 +- lib/calcms/studio_timeslot_dates.pm | 2 +- lib/calcms/studio_timeslot_schedule.pm | 2 +- lib/calcms/studios.pm | 2 +- lib/calcms/tags.pm | 2 +- lib/calcms/template.pm | 2 +- lib/calcms/time.pm | 2 +- lib/calcms/uac.pm | 2 +- lib/calcms/user_sessions.pm | 2 +- lib/calcms/user_settings.pm | 2 +- lib/calcms/user_stats.pm | 2 +- lib/calcms/work_dates.pm | 2 +- lib/calcms/work_schedule.pm | 2 +- 36 files changed, 36 insertions(+), 36 deletions(-) diff --git a/lib/calcms/aggregator.pm b/lib/calcms/aggregator.pm index 3a8113e..7bc0e4e 100644 --- a/lib/calcms/aggregator.pm +++ b/lib/calcms/aggregator.pm @@ -9,7 +9,7 @@ use comments(); use calendar(); use project(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_cache configure_cache put_cache get_list check_params); sub get_list($$) { diff --git a/lib/calcms/audio_recordings.pm b/lib/calcms/audio_recordings.pm index ff93c96..1eefc62 100644 --- a/lib/calcms/audio_recordings.pm +++ b/lib/calcms/audio_recordings.pm @@ -7,7 +7,7 @@ no warnings 'redefine'; use Data::Dumper; use db(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get); # columns: diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index 50c499b..2c2ac01 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -12,7 +12,7 @@ use Authen::Passphrase::BlowfishCrypt(); use time(); use user_sessions (); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_user login logout crypt_password); my $defaultExpiration = 60; diff --git a/lib/calcms/calendar.pm b/lib/calcms/calendar.pm index 70be184..7a3c188 100644 --- a/lib/calcms/calendar.pm +++ b/lib/calcms/calendar.pm @@ -10,7 +10,7 @@ use Date::Calc(); use template(); use events(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(init get_cached_or_render get render get_calendar_weeks configure_cache); sub init() { diff --git a/lib/calcms/comments.pm b/lib/calcms/comments.pm index 23be77d..f4957fa 100644 --- a/lib/calcms/comments.pm +++ b/lib/calcms/comments.pm @@ -11,7 +11,7 @@ use markup(); use template(); use time(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(init get_cached_or_render get modify_results render configure_cache get_query get_by_event get_level get_events check insert set_lock_status set_news_status lock update_comment_count sort); diff --git a/lib/calcms/config.pm b/lib/calcms/config.pm index 5a8b942..d04c9bd 100644 --- a/lib/calcms/config.pm +++ b/lib/calcms/config.pm @@ -7,7 +7,7 @@ no warnings 'redefine'; use FindBin(); use Config::General(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get set); my $config = undef; diff --git a/lib/calcms/creole_wiki.pm b/lib/calcms/creole_wiki.pm index ea50f08..e2ddfe2 100644 --- a/lib/calcms/creole_wiki.pm +++ b/lib/calcms/creole_wiki.pm @@ -7,7 +7,7 @@ no warnings 'redefine'; use Data::Dumper; use markup(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(extractEventFromWikiText removeMeta eventToWikiText extractMeta removeMeta metaToWiki); diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index 00a0f47..8421068 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -8,7 +8,7 @@ use DBD::mysql(); use Digest::MD5 qw(); use Data::Dumper; -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw( connect disconnect get insert put diff --git a/lib/calcms/eventOps.pm b/lib/calcms/eventOps.pm index 75c6fa6..8036b8a 100644 --- a/lib/calcms/eventOps.pm +++ b/lib/calcms/eventOps.pm @@ -13,7 +13,7 @@ use studios(); use series_events(); use user_stats(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw( setAttributesFromSeriesTemplate setAttributesFromSchedule diff --git a/lib/calcms/event_history.pm b/lib/calcms/event_history.pm index ac0ccbb..405958f 100644 --- a/lib/calcms/event_history.pm +++ b/lib/calcms/event_history.pm @@ -6,7 +6,7 @@ no warnings 'redefine'; use Data::Dumper; -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get get_by_id insert insert_by_event_id delete); sub debug; diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 8984926..386bd1a 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -17,7 +17,7 @@ use log(); use project(); use studios(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw( init get_cached_or_render diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 74e84da..cf7db0c 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -8,7 +8,7 @@ use config(); use template(); use Data::Dumper; -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get insert update insert_or_update delete delete_files); #column 'created_at' will be set at insert diff --git a/lib/calcms/localization.pm b/lib/calcms/localization.pm index 484674b..ad9bc42 100644 --- a/lib/calcms/localization.pm +++ b/lib/calcms/localization.pm @@ -8,7 +8,7 @@ use Data::Dumper; use uac(); use user_settings(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get getJavascript); sub debug; diff --git a/lib/calcms/log.pm b/lib/calcms/log.pm index 84d35ed..a4df952 100644 --- a/lib/calcms/log.pm +++ b/lib/calcms/log.pm @@ -4,7 +4,7 @@ use strict; use warnings; no warnings 'redefine'; -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(error load_file save_file append_file); use config(); diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index fbf3117..556e9b9 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -14,7 +14,7 @@ use Text::Markdown(); use log(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(fix_line_ends html_to_creole creole_to_html creole_to_plain plain_to_ical ical_to_plain ical_to_xml html_to_plain fix_utf8 uri_encode compress base26); diff --git a/lib/calcms/params.pm b/lib/calcms/params.pm index 6c1b12a..1456792 100644 --- a/lib/calcms/params.pm +++ b/lib/calcms/params.pm @@ -7,7 +7,7 @@ no warnings 'redefine'; use Data::Dumper; use Apache2::Request(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get isJson); sub debug; diff --git a/lib/calcms/password_requests.pm b/lib/calcms/password_requests.pm index 3a4897d..6151384 100644 --- a/lib/calcms/password_requests.pm +++ b/lib/calcms/password_requests.pm @@ -8,7 +8,7 @@ use Data::Dumper; use Session::Token(); # table: calcms_password_requests -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get insert delete get_columns); use mail; diff --git a/lib/calcms/playout.pm b/lib/calcms/playout.pm index aba9b83..2cb894f 100644 --- a/lib/calcms/playout.pm +++ b/lib/calcms/playout.pm @@ -10,7 +10,7 @@ use db(); use time(); use series_events(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get sync); sub debug; diff --git a/lib/calcms/project.pm b/lib/calcms/project.pm index cba7be9..e309b10 100644 --- a/lib/calcms/project.pm +++ b/lib/calcms/project.pm @@ -12,7 +12,7 @@ use log(); use template(); use images(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw( check get_columns get insert delete get_date_range get_studios assign_studio unassign_studio is_studio_assigned get_studio_assignments diff --git a/lib/calcms/roles.pm b/lib/calcms/roles.pm index 5572786..eb3f1a6 100644 --- a/lib/calcms/roles.pm +++ b/lib/calcms/roles.pm @@ -8,7 +8,7 @@ use Apache2::Reload(); use config(); -use base 'Exporter'; +#use base 'Exporter'; my @EXPORT_OK = qw(get_user get_user_permissions get_template_parameters get_jobs); my $ROLES = { diff --git a/lib/calcms/series.pm b/lib/calcms/series.pm index c17e53a..4382611 100644 --- a/lib/calcms/series.pm +++ b/lib/calcms/series.pm @@ -9,7 +9,7 @@ use Data::Dumper; use events(); use images(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw( get_columns get insert update delete get_users add_user remove_user diff --git a/lib/calcms/series_dates.pm b/lib/calcms/series_dates.pm index 15e5941..92a70a0 100644 --- a/lib/calcms/series_dates.pm +++ b/lib/calcms/series_dates.pm @@ -16,7 +16,7 @@ use series_schedule(); # table: calcms_series_dates # columns: id, studio_id, series_id, start(datetime), end(datetime) # TODO: delete column schedule_id -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get insert update delete get_dates get_series); sub debug; diff --git a/lib/calcms/series_events.pm b/lib/calcms/series_events.pm index 2b8d26b..0a5f45c 100644 --- a/lib/calcms/series_events.pm +++ b/lib/calcms/series_events.pm @@ -22,7 +22,7 @@ use images(); # check permissions, insert and update events related to series -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw( check_permission save_content diff --git a/lib/calcms/series_schedule.pm b/lib/calcms/series_schedule.pm index 59ccc31..f0364af 100644 --- a/lib/calcms/series_schedule.pm +++ b/lib/calcms/series_schedule.pm @@ -18,7 +18,7 @@ use series_dates(); # month # nextDay (add 24 hours to start) -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get insert update delete); sub debug; diff --git a/lib/calcms/studio_timeslot_dates.pm b/lib/calcms/studio_timeslot_dates.pm index 0ed9ae9..39dc4fb 100644 --- a/lib/calcms/studio_timeslot_dates.pm +++ b/lib/calcms/studio_timeslot_dates.pm @@ -12,7 +12,7 @@ use time(); # table: calcms_studio_timeslot_dates # columns: id, studio_id, start(datetime), end(datetime) # TODO: delete column schedule_id -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get insert update delete get_dates); sub debug; diff --git a/lib/calcms/studio_timeslot_schedule.pm b/lib/calcms/studio_timeslot_schedule.pm index 649b107..4bdd78a 100644 --- a/lib/calcms/studio_timeslot_schedule.pm +++ b/lib/calcms/studio_timeslot_schedule.pm @@ -10,7 +10,7 @@ use studio_timeslot_dates(); # table: calcms_studio_timeslot_schedule # columns: id, project_id, studio_id, start(datetime), end(datetime), end_date(date), # frequency(days), duration(minutes), create_events(days), publish_events(days) -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get insert update delete); sub debug; diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index e5cc691..9e9d64b 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -7,7 +7,7 @@ no warnings 'redefine'; use Data::Dumper; use images(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get get_by_id insert update delete check check_studio); sub debug; diff --git a/lib/calcms/tags.pm b/lib/calcms/tags.pm index 3252531..e4b4807 100644 --- a/lib/calcms/tags.pm +++ b/lib/calcms/tags.pm @@ -5,7 +5,7 @@ use warnings; no warnings 'redefine'; use Data::Dumper; -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_tags); sub get_tags($) { diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index 39a49ed..b99185a 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -18,7 +18,7 @@ use project(); use log(); use roles(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(check process exit_on_missing_permission clear_cache); # TODO:config diff --git a/lib/calcms/time.pm b/lib/calcms/time.pm index 328ad14..4c77d49 100644 --- a/lib/calcms/time.pm +++ b/lib/calcms/time.pm @@ -14,7 +14,7 @@ use Data::Dumper; use config(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw( format_datetime format_time date_format time_format diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index df2b28d..b2c3a4d 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -15,7 +15,7 @@ use studios(); use user_settings(); use user_default_studios(); -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw( get_user get_users update_user insert_user delete_user get_roles insert_role update_role get_role_columns diff --git a/lib/calcms/user_sessions.pm b/lib/calcms/user_sessions.pm index 8ec069e..e826d4a 100644 --- a/lib/calcms/user_sessions.pm +++ b/lib/calcms/user_sessions.pm @@ -18,7 +18,7 @@ use time; # start (timestamp), # end (timestamp), -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get insert update delete); sub debug; diff --git a/lib/calcms/user_settings.pm b/lib/calcms/user_settings.pm index 1e80718..1881cf2 100644 --- a/lib/calcms/user_settings.pm +++ b/lib/calcms/user_settings.pm @@ -9,7 +9,7 @@ use series_dates(); # table: calcms_user_settings # columns: user, colors -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(getColors getColorCss get insert update delete get_columns defaultColors); sub debug; diff --git a/lib/calcms/user_stats.pm b/lib/calcms/user_stats.pm index 5320635..b29571c 100644 --- a/lib/calcms/user_stats.pm +++ b/lib/calcms/user_stats.pm @@ -5,7 +5,7 @@ use warnings; no warnings 'redefine'; use Data::Dumper; -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get update insert get_stats increase); sub debug; diff --git a/lib/calcms/work_dates.pm b/lib/calcms/work_dates.pm index 6a1cd4d..765edb1 100644 --- a/lib/calcms/work_dates.pm +++ b/lib/calcms/work_dates.pm @@ -16,7 +16,7 @@ use work_schedule(); # table: calcms_work_dates # columns: id, studio_id, schedule_id, start(datetime), end(datetime) # TODO: delete column schedule_id -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get insert update delete get_dates); sub debug; diff --git a/lib/calcms/work_schedule.pm b/lib/calcms/work_schedule.pm index a543730..52c7002 100644 --- a/lib/calcms/work_schedule.pm +++ b/lib/calcms/work_schedule.pm @@ -17,7 +17,7 @@ use series_dates(); # week_of_month (1..5) # month -use base 'Exporter'; +#use base 'Exporter'; our @EXPORT_OK = qw(get_columns get insert update delete); sub debug; From 25094e45bacdd62d52e913e4da20da5a68c3a915 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 11:39:16 +0100 Subject: [PATCH 119/391] calcms/db.pm: parameter passing --- lib/calcms/db.pm | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/lib/calcms/db.pm b/lib/calcms/db.pm index 8421068..b2f88da 100644 --- a/lib/calcms/db.pm +++ b/lib/calcms/db.pm @@ -29,8 +29,7 @@ our $write = 1; # connect to database sub connect($;$) { - my $options = shift; - my $request = shift; + my ($options, $request) = @_; return $request->{connection} if ( defined $request ) && ( defined $request->{connection} ); @@ -68,7 +67,7 @@ sub connect($;$) { } sub disconnect ($){ - my $request = shift; + my ($request) = @_; my $dbh = $request->{connection}; $dbh->disconnect; delete $request->{connection}; @@ -77,9 +76,7 @@ sub disconnect ($){ # get all database entries of an sql query (as list of hashs) sub get($$;$) { - my $dbh = shift; - my $sql = shift; - my $bind_values = shift; + my ( $dbh, $sql, $bind_values ) = @_; if ( $debug_read == 1 ) { print STDERR $sql . "\n"; @@ -111,8 +108,7 @@ sub get($$;$) { # get list of table columns sub get_columns($$) { - my $dbh = shift; - my $table = shift; + my ($dbh, $table) =@_; my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] ); return [ map { $_->{column_name} } @$columns ]; @@ -120,8 +116,7 @@ sub get_columns($$) { # get hash with table columns as keys sub get_columns_hash($$) { - my $dbh = shift; - my $table = shift; + my ($dbh, $table) =@_; my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] ); return { map { $_->{column_name} => 1 } @$columns }; @@ -129,16 +124,14 @@ sub get_columns_hash($$) { #returns last inserted id sub insert ($$$){ - my $dbh = shift; - my $tablename = shift; - my $entry = shift; + my ($dbh, $table, $entry) =@_; my @keys = sort keys %$entry; my $keys = join( ",", @keys ); my $values = join( ",", map { '?' } @keys ); my @bind_values = map { $entry->{$_} } @keys; - my $sql = "insert into $tablename \n ($keys) \n values ($values);\n"; + my $sql = "insert into $table \n ($keys) \n values ($values);\n"; if ( $debug_write == 1 ) { print STDERR $sql . "\n"; @@ -153,9 +146,7 @@ sub insert ($$$){ # execute a modifying database command (update,insert,...) sub put($$$) { - my $dbh = shift; - my $sql = shift; - my $bind_values = shift; + my ($dbh, $sql, $bind_values) =@_; if ( $debug_write == 1 ) { print STDERR $sql . "\n"; @@ -178,6 +169,7 @@ sub put($$$) { return undef; } +# deprecated sub quote($$) { my $dbh = shift; my $sql = shift; @@ -212,8 +204,7 @@ sub shift_datetime_by_minutes($$$) { # get next free id of a database table sub next_id ($$){ - my $dbh = shift; - my $table = shift; + my ($dbh, $table) = @_; my $query = qq{ select max(id) id @@ -226,8 +217,7 @@ sub next_id ($$){ # get max id from table sub get_max_id($$) { - my $dbh = shift; - my $table = shift; + my ($dbh, $table) = @_; my $query = qq{ select max(id) id From ef7dbb7849b22732041d1ca96ac9a0dd71bb901d Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 11:40:09 +0100 Subject: [PATCH 120/391] calcms/auth.pm: parameter passing --- lib/calcms/auth.pm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/calcms/auth.pm b/lib/calcms/auth.pm index 2c2ac01..118952a 100644 --- a/lib/calcms/auth.pm +++ b/lib/calcms/auth.pm @@ -21,9 +21,7 @@ sub debug($); #TODO: remove CGI sub get_user($$$) { - my $config = shift; - my $params = shift; - my $cgi = shift; + my ($config, $params, $cgi) = @_; debug("get_user") if $debug; From dea7f65cea35bd52bdb7ecae0676f09301e2ea99 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 11:44:09 +0100 Subject: [PATCH 121/391] events.pm: parameter passing --- lib/calcms/events.pm | 87 +++++++++++++------------------------------- 1 file changed, 26 insertions(+), 61 deletions(-) diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 386bd1a..683f2c0 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -39,23 +39,19 @@ sub init { } sub get_cached_or_render($$$) { - - # my $response=$_[0]; - my $config = $_[1]; - my $request = $_[2]; + my ($response, $config, $request) = @_; my $params = $request->{params}->{checked}; my $debug = $config->{system}->{debug}; my $results = events::get( $config, $request ); - events::render( $_[0], $config, $request, $results ); + events::render( $response, $config, $request, $results ); - return $_[0]; + return $response; } sub get($$) { - my $config = shift; - my $request = shift; + my ($config, $request) = @_; my $debug = $config->{system}->{debug}; @@ -70,10 +66,7 @@ sub get($$) { } sub modify_results ($$$$) { - my $dbh = shift; - my $config = shift; - my $request = shift; - my $results = shift; + my ($dbh, $config, $request, $results) = @_; my $params = $request->{params}->{checked}; @@ -383,8 +376,7 @@ sub modify_results ($$$$) { } sub add_recurrence_dates { - my $config = shift; - my $results = shift; + my ($config, $results) = @_; # get unique list of recurrence ids from results my $recurrence_dates = {}; @@ -535,10 +527,7 @@ sub calc_dates { } sub add_recordings($$$$) { - my $dbh = shift; - my $config = shift; - my $request = shift; - my $events = shift; + my ($dbh, $config, $request, $events) = @_; return $events unless defined $events; @@ -580,9 +569,7 @@ sub add_recordings($$$$) { } sub getDateQueryConditions ($$$) { - my $config = shift; - my $params = shift; - my $bind_values = shift; + my ($config, $params, $bind_values) = @_; # conditions by date my $date_conds = []; @@ -743,9 +730,7 @@ sub getDateQueryConditions ($$$) { # if recordings is set in params, recordings date and path will be included sub get_query($$$) { - my $dbh = shift; - my $config = shift; - my $request = shift; + my ($dbh, $config, $request) = @_; my $params = $request->{params}->{checked}; my $debug = $config->{system}->{debug}; @@ -1100,12 +1085,7 @@ sub get_query($$$) { } sub render($$$$;$) { - - # my $response = $_[0]; - my $config = $_[1]; - my $request = $_[2]; - my $results = $_[3]; - my $root_params = $_[4]; + my ($response, $config, $request, $results, $root_params) = @_; my $params = $request->{params}->{checked}; if ( ref($root_params) eq 'HASH' ) { @@ -1198,7 +1178,7 @@ sub render($$$$;$) { } sub get_running_event_id($) { - my $dbh = shift; + my ($dbh) = @_; my $query = qq{ select id event_id, start, title @@ -1225,10 +1205,12 @@ sub get_running_event_id($) { # add filters to query sub setDefaultEventConditions ($$$$) { - my $config = shift; - my $conditions = $_[0]; - my $bind_values = $_[1]; - my $options = $_[2]; + my ($config, $conditions, $bind_values, $options) = @_; + + #my $config = shift; + #my $conditions = $_[0]; + #my $bind_values = $_[1]; + #my $options = $_[2]; $options = {} unless defined $options; # exclude projects @@ -1263,10 +1245,7 @@ sub setDefaultEventConditions ($$$$) { # for local use only or add support for exclude_projects and exclude_locations sub getEventById ($$$$) { - my $dbh = shift; - my $config = shift; - my $event_id = shift; - my $options = shift; + my ($dbh, $config, $event_id, $options) = @_; $dbh = db::connect($config) unless defined $dbh; @@ -1290,9 +1269,7 @@ sub getEventById ($$$$) { } sub get_next_event_of_series ($$$) { - my $dbh = shift; - my $config = shift; - my $options = shift; + my ($dbh, $config, $options) = @_; my $eventId = $options->{event_id}; return undef unless defined $eventId; @@ -1330,9 +1307,7 @@ sub get_next_event_of_series ($$$) { } sub get_previous_event_of_series($$$) { - my $dbh = shift; - my $config = shift; - my $options = shift; + my ($dbh, $config, $options) = @_; my $eventId = $options->{event_id}; return undef unless defined $eventId; @@ -1368,11 +1343,7 @@ sub get_previous_event_of_series($$$) { # used by calendar sub get_by_date_range ($$$$$) { - my $dbh = shift; - my $config = shift; - my $start_date = shift; - my $end_date = shift; - my $options = shift; + my ($dbh, $config, $start_date, $end_date, $options) = @_; my $day_starting_hour = $config->{date}->{day_starting_hour}; @@ -1407,13 +1378,8 @@ sub get_by_date_range ($$$$$) { } sub get_by_image ($$$) { - my $dbh = shift; - my $config = shift; - my $filename = shift; + my ($dbh, $config, $filename) = @_; - #$filename=$dbh->quote('%'.$filename.'%'); - - #$filename='%'.$filename.'%'; my $query = qq{ select * from calcms_events where content like ? @@ -1455,8 +1421,8 @@ sub delete ($$$) { } sub get_duration ($$) { - my $config = shift; - my $event = shift; + my ($config, $event) = @_; + my $timezone = $config->{date}->{time_zone}; my $start = time::get_datetime( $event->{start}, $timezone ); my $end = time::get_datetime( $event->{end}, $timezone ); @@ -1472,8 +1438,7 @@ sub get_duration ($$) { } sub check_params ($$) { - my $config = shift; - my $params = shift; + my ($config, $params) = @_; #define running at my $running_at = $params->{running_at} || ''; @@ -1750,7 +1715,7 @@ sub check_params ($$) { } sub get_keys($) { - my $event = shift; + my ($event) = @_; my $program = $event->{program} || ''; my $series_name = $event->{series_name} || ''; From b2dc10135425a6b156cc7a237b738652411a452a Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 11:44:41 +0100 Subject: [PATCH 122/391] parameter passing and dead code --- lib/calcms/template.pm | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index b99185a..59e4151 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -23,11 +23,7 @@ our @EXPORT_OK = qw(check process exit_on_missing_permission clear_cache); # TODO:config sub process($$$$) { - my $config = $_[0]; - - # my $output=$_[1]; - my $filename = $_[2]; - my $params = $_[3]; + my ($config, $output, $filename, $params) = @_; #TODO: get config for my $key ( keys %{ $config->{locations} } ) { @@ -58,7 +54,6 @@ sub process($$$$) { my $header = "Content-type:application/json; charset=utf-8\n\n"; my $json = JSON::to_json( $params, { pretty => 1 } ); - # $json=$header.$params->{json_callback}.'['.$json.']'; $json = $header . $params->{json_callback} . $json; if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) { print $json. "\n"; @@ -78,23 +73,10 @@ sub process($$$$) { unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); $html_template->param($params); - my $output = $html_template->output(); - if ( $filename =~ /html/ ) { - my ( $header, $content ) = split( /\n\n/, $output, 2 ); - if ($content) { - - #$content =~s/\s+/ /g; - $output = $header . "\n\n" . $content; - } else { - - #$output =~s/[ \t]+/ /g; - } - } - if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) { - print $output; + print $html_template->output(); } else { - $_[1] = $output; + $_[1] = $html_template->output(); } } @@ -144,8 +126,6 @@ sub setRelativeUrls { my $params = shift; my $depth = shift || 0; - #print STDERR "setRelativeUrls depth:$depth ".ref($params)."\n"; - return unless defined $params; if ( $depth > 10 ) { @@ -241,12 +221,3 @@ sub exit_on_missing_permission($$) { #do not delete last line! 1; - -__END__ -sub clear_cache { - HTML::Template::Compiled->clear_cache(); - - # return; - # my $html_template = HTML::Template::Compiled->new(); - # $html_template->clear_cache(); -} From 94d4ca59d880a7660a3e2e6c0f8955c84f39f800 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 14:04:35 +0100 Subject: [PATCH 123/391] set numbered parameters using entry::set_numbers --- lib/calcms/entry.pm | 38 ++++++++++++ website/agenda/planung/assign-series.cgi | 8 +-- website/agenda/planung/assignments.cgi | 8 +-- website/agenda/planung/audio-recordings.cgi | 9 +-- website/agenda/planung/calendar.cgi | 68 +++++---------------- website/agenda/planung/comment.cgi | 9 +-- website/agenda/planung/create-events.cgi | 7 +-- website/agenda/planung/event-history.cgi | 10 +-- website/agenda/planung/event.cgi | 11 +--- website/agenda/planung/help.cgi | 8 +-- website/agenda/planung/image-upload.cgi | 6 +- website/agenda/planung/image.cgi | 9 ++- website/agenda/planung/notify-events.cgi | 9 +-- website/agenda/planung/playout.cgi | 7 +-- website/agenda/planung/projects.cgi | 9 +-- website/agenda/planung/roles.cgi | 10 ++- website/agenda/planung/select-event.cgi | 10 ++- website/agenda/planung/select-series.cgi | 10 ++- website/agenda/planung/series.cgi | 21 +++---- website/agenda/planung/show-image.cgi | 9 ++- website/agenda/planung/show-playout.cgi | 10 +-- website/agenda/planung/studio-timeslots.cgi | 8 +-- website/agenda/planung/studios.cgi | 10 ++- website/agenda/planung/user-settings.cgi | 11 ++-- website/agenda/planung/user-stats.cgi | 9 +-- website/agenda/planung/users.cgi | 9 +-- website/agenda/planung/work-time.cgi | 10 +-- 27 files changed, 136 insertions(+), 207 deletions(-) create mode 100644 lib/calcms/entry.pm diff --git a/lib/calcms/entry.pm b/lib/calcms/entry.pm new file mode 100644 index 0000000..b9b9192 --- /dev/null +++ b/lib/calcms/entry.pm @@ -0,0 +1,38 @@ +package entry; + +use warnings; +use strict; + +sub from_valid($$) { + my ( $params, $attrs ) = @_; + return { map { defined $params->{$_} ? { $_ => $params->{$_} } : () } @$attrs }; +} + +sub set_numbers($$$) { + my ( $entry, $params, $fields ) = @_; + for my $field (@$fields) { + next unless defined $params->{$field}; + if ( $params->{$field} =~ /([\-\d]+)/ ){ + $entry->{$field} = $1; + } + } +} + + +sub set_strings($$$) { + my ( $entry, $params, $attrs ) = @_; + for my $field (@$attrs) { + next unless defined $params->{$field}; + $entry->{$field} = $params->{$field}; + $entry->{$field} =~ s/^\s+//g; + $entry->{$field} =~ s/\s+$//g; + } +} + +sub element_of($$) { + my ( $value, $attrs ) = @_; + return { map { $_ => $_ } @$attrs }->{$value}; +} + +# do not delete last line +1; diff --git a/website/agenda/planung/assign-series.cgi b/website/agenda/planung/assign-series.cgi index 8432817..dba2edb 100755 --- a/website/agenda/planung/assign-series.cgi +++ b/website/agenda/planung/assign-series.cgi @@ -222,11 +222,9 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'series_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'series_id' + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index d099e18..2a3c02c 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -368,11 +368,9 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'event_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'series_id', 'event_id' + ]); for my $param ('event_ids') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\d,]+$/ ) ) { diff --git a/website/agenda/planung/audio-recordings.cgi b/website/agenda/planung/audio-recordings.cgi index cdcfbbb..bf96f0a 100755 --- a/website/agenda/planung/audio-recordings.cgi +++ b/website/agenda/planung/audio-recordings.cgi @@ -545,13 +545,8 @@ sub check_params { $checked->{template} = template::check( $config, $params->{template}, 'upload-audio-recordings' ); - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id']); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index e1ad26b..2929a53 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -12,6 +12,7 @@ use utf8(); use params(); use config(); use log(); +use entry(); use template(); use calendar(); use auth(); @@ -1871,25 +1872,15 @@ sub check_params { my $template = ''; $checked->{template} = template::check( $config, $params->{template}, 'series' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #numeric values - $checked->{part} = 0; - $checked->{list} = 0; - for my $param ( + $checked->{part} = 0; + $checked->{list} = 0; + $checked->{open_end} = 1; + entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'part', - 'list', 'day_start' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + 'list', 'day_start', 'open_end' + ]); $checked->{day_start} = $config->{date}->{day_starting_hour} unless defined $checked->{day_start}; @@ -1909,56 +1900,27 @@ sub check_params { $checked->{studio_id} = $checked->{default_studio_id}; } - $checked->{open_end} = 1; - for my $param ('open_end') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } + for my $param ('expires') { + $checked->{$param} = time::check_datetime( $params->{$param} ); } #scalars $checked->{search} = ''; $checked->{filter} = ''; - #$checked->{range}='month'; - for my $param ( 'search', 'filter', 'range' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } - - for my $param ('expires') { - $checked->{$param} = time::check_datetime( $params->{$param} ); - } - for my $param ( 'date', 'from_date', 'till_date' ) { $checked->{$param} = time::check_date( $params->{$param} ); } - for my $param ( + entry::set_strings( $checked, $params, [ + 'search', 'filter', 'range', 'series_name', 'title', 'excerpt', 'content', 'program', 'category', 'image', 'user_content' - ) - { - if ( defined $params->{$param} ) { + ]); - #$checked->{$param}=uri_unescape(); - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } - - #actions and roles - if ( defined $params->{action} ) { - if ( $params->{action} =~ - /^(add_user|remove_user|delete|save|details|show|edit_event|save_event)$/ ) - { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of( $params->{action}, + [ 'add_user', 'remove_user', 'delete', 'save', 'details', 'show', 'edit_event', 'save_event' ] + ); return $checked; } diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 809b250..ea7fea8 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -260,12 +260,9 @@ sub check_params { } $checked->{template} = $template; - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id']); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/create-events.cgi b/website/agenda/planung/create-events.cgi index 5c7039e..0057002 100755 --- a/website/agenda/planung/create-events.cgi +++ b/website/agenda/planung/create-events.cgi @@ -219,11 +219,8 @@ sub check_params { #numeric values $checked->{exclude} = 0; $checked->{duration} = 28; - for my $param ( 'id', 'project_id', 'studio_id', 'duration' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'duration']); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/event-history.cgi b/website/agenda/planung/event-history.cgi index 1e6384f..a38d4c1 100755 --- a/website/agenda/planung/event-history.cgi +++ b/website/agenda/planung/event-history.cgi @@ -254,13 +254,9 @@ sub check_params { $checked->{debug} = $debug; #numeric values - for - my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index b8d0681..4cb78d6 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -12,6 +12,7 @@ use Encode::Locale(); use params(); use config(); use log(); +use entry(); use template(); use db(); use auth(); @@ -807,17 +808,11 @@ sub check_params { } $checked->{debug} = $debug; - #numeric values - for my $param ( + entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'source_event_id', 'episode' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi index cd819d7..9fd0abc 100755 --- a/website/agenda/planung/help.cgi +++ b/website/agenda/planung/help.cgi @@ -628,11 +628,9 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'default_studio_id' ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/image-upload.cgi b/website/agenda/planung/image-upload.cgi index 6af5886..c426360 100755 --- a/website/agenda/planung/image-upload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -371,9 +371,9 @@ sub check_params { $checked->{template} = template::check( $config, $params->{template}, 'image-upload' ); #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { - $checked->{$param} = $params->{$param} if ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ); - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id' + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index 2069c7f..4e98a41 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -418,11 +418,10 @@ sub check_params { #numeric values $checked->{limit} = 100; - for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id', 'pid', 'default_studio_id', 'limit' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'series_id', 'event_id', 'pid', 'default_studio_id', 'limit' + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/notify-events.cgi b/website/agenda/planung/notify-events.cgi index ba611dc..86e11f3 100755 --- a/website/agenda/planung/notify-events.cgi +++ b/website/agenda/planung/notify-events.cgi @@ -248,12 +248,9 @@ sub check_params { } $checked->{debug} = $debug; - #numeric values - for my $param ( 'event_id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'duration' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'event_id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'duration' + ]); for my $param ( 'subject', 'to', 'cc', 'content' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) { diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index 88fa195..35f0033 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -131,11 +131,8 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'project_id', 'studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id']); #dates for my $param ('start_date') { diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 18794d0..733fbd4 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -291,12 +291,9 @@ sub check_params { } } - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'pid', 'sid' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id', 'pid', 'sid']); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 04ab17c..6c26ed1 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -441,12 +441,10 @@ sub check_params { } } - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id' + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/select-event.cgi b/website/agenda/planung/select-event.cgi index 94d9d86..5db60ee 100755 --- a/website/agenda/planung/select-event.cgi +++ b/website/agenda/planung/select-event.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -130,12 +131,9 @@ sub check_params { } $checked->{debug} = $debug; - #numeric values - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'event_id', 'p_id', 's_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'series_id', 'event_id', 'p_id', 's_id' + ]); for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { diff --git a/website/agenda/planung/select-series.cgi b/website/agenda/planung/select-series.cgi index d8d282b..3e8c750 100755 --- a/website/agenda/planung/select-series.cgi +++ b/website/agenda/planung/select-series.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -120,12 +121,9 @@ sub check_params { } $checked->{debug} = $debug; - #numeric values - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'p_id', 's_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'series_id', 'p_id', 's_id' + ]); for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index a8beedc..198bc44 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -11,6 +11,7 @@ use Encode(); use utf8(); use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -1432,7 +1433,7 @@ sub check_params { #numeric values $checked->{exclude} = 0; $checked->{action} = $params->{action}; - for my $param ( + entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'new_series_id', @@ -1441,12 +1442,8 @@ sub check_params { 'event_id', 'weekday', 'week_of_month', 'month', 'nextDay', 'predecessor_id' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { @@ -1465,15 +1462,11 @@ sub check_params { $checked->{create_events} = 0; $checked->{publish_events} = 0; } - for my $param ( + + entry::set_numbers( $checked, $params, [ 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', 'count_episodes' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + ]); #scalars for my $param ( 'search', 'from', 'till', 'period_type' ) { diff --git a/website/agenda/planung/show-image.cgi b/website/agenda/planung/show-image.cgi index e7269d0..ed8a094 100755 --- a/website/agenda/planung/show-image.cgi +++ b/website/agenda/planung/show-image.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -121,11 +122,9 @@ sub check_params { } #numeric values - for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'series_id', 'event_id' + ]) if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 5999271..2c150f0 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -139,13 +139,9 @@ sub check_params { $checked->{error} = ''; $checked->{template} = template::check( $config, $params->{template}, 'show-playout' ); - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/studio-timeslots.cgi b/website/agenda/planung/studio-timeslots.cgi index 834918a..20d44ba 100755 --- a/website/agenda/planung/studio-timeslots.cgi +++ b/website/agenda/planung/studio-timeslots.cgi @@ -373,11 +373,9 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'schedule_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'schedule_studio_id' + ]); if ( ( defined $params->{show_date} ) && ( $params->{show_date} =~ /^(\d\d\d\d)/ ) ) { $checked->{show_date} = $1; diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 18e26ed..01cbc4a 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -235,12 +235,10 @@ sub check_params { } } - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id', 'id' + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/user-settings.cgi b/website/agenda/planung/user-settings.cgi index 511268a..76c6552 100755 --- a/website/agenda/planung/user-settings.cgi +++ b/website/agenda/planung/user-settings.cgi @@ -221,13 +221,10 @@ sub check_params { $checked->{template} = $template; #numeric values - for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'default_studio', - 'default_project' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'default_studio_id', 'studio_id', 'default_studio', + 'default_project' ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/user-stats.cgi b/website/agenda/planung/user-stats.cgi index c55b685..8877a58 100755 --- a/website/agenda/planung/user-stats.cgi +++ b/website/agenda/planung/user-stats.cgi @@ -124,12 +124,9 @@ sub check_params { } } - #numeric values - for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'series_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'default_studio_id', 'studio_id', 'series_id']); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index 0abcbb2..c90a1b4 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -399,12 +399,9 @@ sub check_params { $template = template::check( $config, $params->{template}, 'users' ); $checked->{template} = $template; - #numeric values - for my $param ( 'project_id', 'user_id', 'default_studio_id', 'studio_id', 'disabled' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'user_id', 'default_studio_id', 'studio_id', 'disabled']); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/work-time.cgi b/website/agenda/planung/work-time.cgi index 3776558..a1c6d43 100755 --- a/website/agenda/planung/work-time.cgi +++ b/website/agenda/planung/work-time.cgi @@ -280,15 +280,11 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( + entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'exclude', 'show_hint_to_add_schedule', 'weekday week_of_month', 'month' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { From 07219ad3ee8f51d1f81a814a93618625a526ef51 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 14:16:58 +0100 Subject: [PATCH 124/391] set parameter strings with entry::set_strings --- website/agenda/planung/assignments.cgi | 18 ++++-------------- website/agenda/planung/event.cgi | 26 ++++++-------------------- website/agenda/planung/series.cgi | 23 +++++------------------ website/agenda/planung/work-time.cgi | 17 ++++------------- 4 files changed, 19 insertions(+), 65 deletions(-) diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index 2a3c02c..898c1ac 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -392,22 +392,12 @@ sub check_params { $checked->{create_events} = 0; $checked->{publish_events} = 0; } - for my $param ( 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', - 'count_episodes' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + entry::set_numbers( $checked, $params, [ + 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live']); #scalars - for my $param ( 'search', 'from', 'till' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + entry::set_strings( $checked, $params, + [ 'search', 'from', 'till' ]); return $checked; } diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 4cb78d6..8a0d2aa 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -821,13 +821,9 @@ sub check_params { } #scalars - for my $param ( 'studio', 'search', 'from', 'till', 'hide_series' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + entry::set_strings( $checked, $params, [ + 'studio', 'search', 'from', 'till', 'hide_series' + ]); #numbers for my $param ( 'duration', 'recurrence' ) { @@ -847,23 +843,13 @@ sub check_params { } } - #strings - for my $param ( + entry::set_strings( $checked, $params, [ 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', 'category', 'image', 'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url', 'setImage', 'content_format' - ) - { - if ( defined $params->{$param} ) { - - #$checked->{$param}=uri_unescape(); - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } - + ]); + #dates for my $param ( 'start_date', 'end_date' ) { if ( ( defined $params->{$param} ) diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 198bc44..0e65e97 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1469,15 +1469,11 @@ sub check_params { ]); #scalars - for my $param ( 'search', 'from', 'till', 'period_type' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + entry::set_strings( $checked, $params, + [ 'search', 'from', 'till', 'period_type' ] + ); - for my $param ( + entry::set_strings( $checked, $params, [ 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', @@ -1485,16 +1481,7 @@ sub check_params { 'assign_event_title', 'comment', 'podcast_url', 'archive_url', 'setImage', 'content_format' - ) - { - if ( defined $params->{$param} ) { - - #$checked->{$param}=uri_unescape(); - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + ]); for my $attr ('start') { if ( ( defined $params->{$attr} ) diff --git a/website/agenda/planung/work-time.cgi b/website/agenda/planung/work-time.cgi index a1c6d43..5fc5ec2 100755 --- a/website/agenda/planung/work-time.cgi +++ b/website/agenda/planung/work-time.cgi @@ -299,20 +299,11 @@ sub check_params { $checked->{create_events} = 0; $checked->{publish_events} = 0; } - for my $param ( 'frequency', 'duration', 'default_duration' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + entry::set_numbers( $checked, $params, [ 'frequency', 'duration', 'default_duration' ]); - #scalars - for my $param ( 'from', 'till', 'period_type', 'type', 'title' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + entry::set_strings( $checked, $params, + [ 'from', 'till', 'period_type', 'type', 'title' ] + ); for my $attr ('start') { if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { From 5c73484638f3e073ed6290c24f94580e2dc4fb5e Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 14:43:01 +0100 Subject: [PATCH 125/391] use entry::set_numbers and setbools for parameters --- lib/calcms/entry.pm | 23 +++++++++++---- website/agenda/planung/assign-series.cgi | 16 ----------- website/agenda/planung/assignments.cgi | 6 ---- website/agenda/planung/audio-recordings.cgi | 15 ++-------- website/agenda/planung/comment.cgi | 3 -- website/agenda/planung/create-events.cgi | 6 ---- website/agenda/planung/event-history.cgi | 6 ---- website/agenda/planung/event.cgi | 24 +++------------- website/agenda/planung/help.cgi | 7 ----- website/agenda/planung/image-upload.cgi | 20 ++----------- website/agenda/planung/image.cgi | 31 ++++----------------- website/agenda/planung/notify-events.cgi | 7 ++--- website/agenda/planung/playout.cgi | 7 ----- website/agenda/planung/projects.cgi | 7 ++--- website/agenda/planung/request-password.cgi | 16 ++--------- website/agenda/planung/select-event.cgi | 14 ++-------- website/agenda/planung/select-series.cgi | 13 ++------- website/agenda/planung/series.cgi | 6 ---- website/agenda/planung/show-image.cgi | 6 ---- website/agenda/planung/show-playout.cgi | 8 +----- website/agenda/planung/studio-timeslots.cgi | 13 +-------- website/agenda/planung/studios.cgi | 7 ++--- website/agenda/planung/users.cgi | 1 - website/agenda/planung/work-time.cgi | 7 ----- 24 files changed, 46 insertions(+), 223 deletions(-) diff --git a/lib/calcms/entry.pm b/lib/calcms/entry.pm index b9b9192..699abfb 100644 --- a/lib/calcms/entry.pm +++ b/lib/calcms/entry.pm @@ -11,19 +11,31 @@ sub from_valid($$) { sub set_numbers($$$) { my ( $entry, $params, $fields ) = @_; for my $field (@$fields) { - next unless defined $params->{$field}; - if ( $params->{$field} =~ /([\-\d]+)/ ){ + my $value = $params->{$field}; + next unless defined $value; + if ( $value =~ /([\-\d]+)/ ){ $entry->{$field} = $1; } } } +sub set_bools($$$) { + my ( $entry, $params, $fields ) = @_; + for my $field (@$fields) { + my $value = $params->{$field}; + next unless defined $value; + if ($value=~/([01])/){ + $entry->{$field} = $1; + } + } +} sub set_strings($$$) { my ( $entry, $params, $attrs ) = @_; for my $field (@$attrs) { - next unless defined $params->{$field}; - $entry->{$field} = $params->{$field}; + my $value = $params->{$field}; + next unless defined $value; + $entry->{$field} = $value; $entry->{$field} =~ s/^\s+//g; $entry->{$field} =~ s/\s+$//g; } @@ -31,7 +43,8 @@ sub set_strings($$$) { sub element_of($$) { my ( $value, $attrs ) = @_; - return { map { $_ => $_ } @$attrs }->{$value}; + return unless $value; + return { map { $_ => $_ } @$attrs }->{$value} //''; } # do not delete last line diff --git a/website/agenda/planung/assign-series.cgi b/website/agenda/planung/assign-series.cgi index dba2edb..7adb181 100755 --- a/website/agenda/planung/assign-series.cgi +++ b/website/agenda/planung/assign-series.cgi @@ -35,7 +35,6 @@ my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( !defined $user ) || ( $user eq '' ); -#print STDERR $params->{project_id}."\n"; my $user_presets = uac::get_user_presets( $config, { @@ -48,7 +47,6 @@ $params->{default_studio_id} = $user_presets->{studio_id}; $params = uac::setDefaultStudio( $params, $user_presets ); $params = uac::setDefaultProject( $params, $user_presets ); -#print STDERR $params->{project_id}."\n"; my $request = { url => $ENV{QUERY_STRING} || '', params => { @@ -206,12 +204,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #actions and roles $checked->{action} = ''; if ( defined $params->{action} ) { @@ -236,11 +228,3 @@ sub check_params { return $checked; } - -__DATA__ - -SELECT ps.project_id, ps.studio_id, ps.series_id,p.name,s.name,se.series_name,se.title -FROM calcms_project_series ps ,calcms_projects p,calcms_studios s,calcms_series se -where ps.project_id=p.project_id and ps.studio_id=s.id and ps.series_id=se.id -order by se.series_name,p.name,s.name - diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index 898c1ac..f9b50da 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -352,12 +352,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #actions and roles $checked->{action} = ''; if ( defined $params->{action} ) { diff --git a/website/agenda/planung/audio-recordings.cgi b/website/agenda/planung/audio-recordings.cgi index bf96f0a..8d1eae5 100755 --- a/website/agenda/planung/audio-recordings.cgi +++ b/website/agenda/planung/audio-recordings.cgi @@ -554,19 +554,8 @@ sub check_params { $checked->{studio_id} = -1; } - #word - for my $param ( 'debug', 'name', 'description' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) { - $checked->{$param} = $1; - } - } - - # words - for my $attr ( 'action', 'path' ) { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) { - $checked->{$attr} = $params->{$attr}; - } - } + entry::set_strings( $checked, $params, [ + 'name', 'description', 'action', 'path' ]); $checked->{upload} = $params->{upload}; return $checked; diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index ea7fea8..a7dd5ef 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -288,9 +288,6 @@ sub check_params { my $event_id = $params->{event_id} || ''; if ( $event_id =~ /^(\d+)$/ ) { $comment->{event_id} = $1; - } else { - - # error('invalid event_id'); } $comment->{event_id} = '' unless defined $comment->{event_id}; diff --git a/website/agenda/planung/create-events.cgi b/website/agenda/planung/create-events.cgi index 0057002..cf41eeb 100755 --- a/website/agenda/planung/create-events.cgi +++ b/website/agenda/planung/create-events.cgi @@ -202,12 +202,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #actions and roles $checked->{action} = ''; if ( defined $params->{action} ) { diff --git a/website/agenda/planung/event-history.cgi b/website/agenda/planung/event-history.cgi index a38d4c1..6df88e6 100755 --- a/website/agenda/planung/event-history.cgi +++ b/website/agenda/planung/event-history.cgi @@ -247,12 +247,6 @@ sub check_params { my $template = ''; $checked->{template} = template::check( $config, $params->{template}, 'event-history' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #numeric values entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 8a0d2aa..8fc2b08 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -802,12 +802,6 @@ sub check_params { my $template = ''; $checked->{template} = template::check( $config, $params->{template}, 'series' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'source_event_id', @@ -825,23 +819,13 @@ sub check_params { 'studio', 'search', 'from', 'till', 'hide_series' ]); - #numbers - for my $param ( 'duration', 'recurrence' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + entry::set_numbers( $checked, $params, [ + 'duration', 'recurrence' ]); - #checkboxes - for my $param ( + entry::set_bools( $checked, $params, [ 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync', 'get_rerun' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) { - $checked->{$param} = $1; - } - } + ]); entry::set_strings( $checked, $params, [ 'series_name', 'title', 'excerpt', 'content', diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi index 9fd0abc..43d5be0 100755 --- a/website/agenda/planung/help.cgi +++ b/website/agenda/planung/help.cgi @@ -620,13 +620,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - - #numeric values $checked->{exclude} = 0; entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id' ]); diff --git a/website/agenda/planung/image-upload.cgi b/website/agenda/planung/image-upload.cgi index c426360..bd96d81 100755 --- a/website/agenda/planung/image-upload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -381,26 +381,10 @@ sub check_params { $checked->{studio_id} = -1; } - #string - for my $param ( 'debug', 'name', 'description', 'licence' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) { - $checked->{$param} = $1; - } - } - - #Words - for my $attr ('action') { - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) { - $checked->{$attr} = $params->{$attr}; - } - } + entry::set_strings( $checked, $params, [ 'action', 'name', 'description', 'licence' ]); #checkboxes - for my $param ('public') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) { - $checked->{$param} = $1; - } - } + entry::set_bools( $checked, $params, [ 'public' ] ); return $checked; } diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index 4e98a41..c77ae2c 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -416,7 +416,6 @@ sub check_params { my $checked = { template => template::check( $config, $params->{template}, 'image.html' ) }; - #numeric values $checked->{limit} = 100; entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'series_id', 'event_id', 'pid', 'default_studio_id', 'limit' @@ -431,35 +430,15 @@ sub check_params { $checked->{limit} = 100 unless defined $checked->{limit}; $checked->{limit} = 100 if ( $checked->{limit} > 100 ); - #string - $checked->{search} = ''; - if ( ( defined $params->{search} ) && ( $params->{search} =~ /^\s*(.+?)\s*$/ ) ) { - $checked->{search} = $1; - } - - for my $attr ( 'update_name', 'update_description', 'licence' ) { - $checked->{$attr} = ''; - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /^\s*(.+?)\s*$/ ) ) { - $checked->{$attr} = $params->{$attr}; - } - } - - #Words $checked->{delete_image} = ''; $checked->{save_image} = ''; - for my $attr ( 'save_image', 'delete_image', 'show', 'filename', 'target' ) { - $checked->{$attr} = ''; - if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) { - $checked->{$attr} = $params->{$attr}; - } - } + entry::set_strings( $checked, $params, [ + 'search', + 'update_name', 'update_description', 'licence', + 'save_image', 'delete_image', 'show', 'filename', 'target' ]); #checkboxes - for my $param ('public') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) { - $checked->{$param} = $1; - } - } + entry::set_bools( $checked, $params, [ 'public ']); #map show to filename, but overwrite if filename given if ( $checked->{show} ne '' ) { diff --git a/website/agenda/planung/notify-events.cgi b/website/agenda/planung/notify-events.cgi index 86e11f3..cef85dc 100755 --- a/website/agenda/planung/notify-events.cgi +++ b/website/agenda/planung/notify-events.cgi @@ -252,11 +252,8 @@ sub check_params { 'event_id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'duration' ]); - for my $param ( 'subject', 'to', 'cc', 'content' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_strings( $checked, $params, [ + 'subject', 'to', 'cc', 'content']); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index 35f0033..efa560e 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -115,13 +115,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - - #actions and roles $checked->{action} = ''; if ( defined $params->{action} ) { if ( $params->{action} =~ /^(delete)$/ ) { diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 733fbd4..4e424e8 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -285,11 +285,8 @@ sub check_params { } } - for my $param ( 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email', 'setImage' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_strings( $checked, $params, [ + 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email', 'setImage' ]); entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'default_studio_id', 'pid', 'sid']); diff --git a/website/agenda/planung/request-password.cgi b/website/agenda/planung/request-password.cgi index 00ede19..b1aac40 100755 --- a/website/agenda/planung/request-password.cgi +++ b/website/agenda/planung/request-password.cgi @@ -142,20 +142,8 @@ sub check_params { my $checked = {}; - #my $template = ''; - #$checked->{template} = template::check($config, $params->{template}, 'request-password' ); - - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - - for my $param ( 'user', 'token', 'user_password', 'user_password2' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_strings( $checked, $params, [ + 'user', 'token', 'user_password', 'user_password2']); $checked->{action} = ''; if ( defined $params->{action} ) { diff --git a/website/agenda/planung/select-event.cgi b/website/agenda/planung/select-event.cgi index 5db60ee..2bc576f 100755 --- a/website/agenda/planung/select-event.cgi +++ b/website/agenda/planung/select-event.cgi @@ -125,21 +125,13 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'series_id', 'event_id', 'p_id', 's_id' ]); - for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_bools( $checked, $params, + [ 'selectProjectStudio', 'selectSeries', 'selectRange' ] + ); for my $param ('resultElemId') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[a-zA-ZöäüÖÄÜß_\d]+$/ ) ) { diff --git a/website/agenda/planung/select-series.cgi b/website/agenda/planung/select-series.cgi index 3e8c750..65f1ce1 100755 --- a/website/agenda/planung/select-series.cgi +++ b/website/agenda/planung/select-series.cgi @@ -115,21 +115,12 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'series_id', 'p_id', 's_id' ]); - for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_bools( $checked, $params, [ + 'selectProjectStudio', 'selectSeries', 'selectRange' ]); for my $param ('resultElemId') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[a-zA-ZöäüÖÄÜß_\d]+$/ ) ) { diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 0e65e97..bd1b2db 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1411,12 +1411,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #actions $checked->{action} = ''; if ( defined $params->{action} ) { diff --git a/website/agenda/planung/show-image.cgi b/website/agenda/planung/show-image.cgi index ed8a094..8c95be9 100755 --- a/website/agenda/planung/show-image.cgi +++ b/website/agenda/planung/show-image.cgi @@ -100,12 +100,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #numeric values for my $param ('filename') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[A-Za-z\_\-\.\d\/]+$/ ) ) { diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 2c150f0..f5b90ec 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -17,6 +17,7 @@ use series; use template; use playout; use audio; +use entry; binmode STDOUT, ":utf8"; @@ -149,13 +150,6 @@ sub check_params { $checked->{studio_id} = -1; } - #word - for my $param ('debug') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) { - $checked->{$param} = $1; - } - } - return $checked; } diff --git a/website/agenda/planung/studio-timeslots.cgi b/website/agenda/planung/studio-timeslots.cgi index 20d44ba..84f0f24 100755 --- a/website/agenda/planung/studio-timeslots.cgi +++ b/website/agenda/planung/studio-timeslots.cgi @@ -358,12 +358,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #actions and roles if ( defined $params->{action} ) { if ( $params->{action} =~ /^(show|save_schedule|delete_schedule|show_dates)$/ ) { @@ -371,7 +365,6 @@ sub check_params { } } - #numeric values $checked->{exclude} = 0; entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'schedule_studio_id' @@ -392,11 +385,7 @@ sub check_params { $checked->{template} = template::check( $config, $params->{template}, 'studio-timeslots' ); - for my $param ('frequency') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + entry::set_numbers( $checked, $params, ['frequency'] ); for my $attr ( 'start', 'end' ) { if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)/ ) ) { diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 01cbc4a..bb1a7e1 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -229,11 +229,8 @@ sub check_params { } } - for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar', 'image', 'setImage' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_strings( $checked, $params, [ + 'name', 'description', 'location', 'stream', 'google_calendar', 'image', 'setImage' ]); entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'default_studio_id', 'id' diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index c90a1b4..e12fed8 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -394,7 +394,6 @@ sub check_params { my $checked = {}; - #template my $template = ''; $template = template::check( $config, $params->{template}, 'users' ); $checked->{template} = $template; diff --git a/website/agenda/planung/work-time.cgi b/website/agenda/planung/work-time.cgi index 5fc5ec2..646ef06 100755 --- a/website/agenda/planung/work-time.cgi +++ b/website/agenda/planung/work-time.cgi @@ -264,12 +264,6 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #actions and roles $checked->{action} = ''; if ( defined $params->{action} ) { @@ -278,7 +272,6 @@ sub check_params { } } - #numeric values $checked->{exclude} = 0; entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', From accc9393c712aa714939ed4ad2d67f5bfee2763f Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 15:09:07 +0100 Subject: [PATCH 126/391] use entry::element_of to set action parameter --- website/agenda/planung/assign-series.cgi | 10 ++---- website/agenda/planung/assignments.cgi | 10 +----- website/agenda/planung/audio-recordings.cgi | 9 ++++-- website/agenda/planung/comment.cgi | 9 ++---- website/agenda/planung/create-events.cgi | 10 ++---- website/agenda/planung/event-history.cgi | 12 +++----- website/agenda/planung/event.cgi | 10 +++--- website/agenda/planung/image-upload.cgi | 2 -- website/agenda/planung/notify-events.cgi | 9 +----- website/agenda/planung/projects.cgi | 9 ++---- website/agenda/planung/request-password.cgi | 7 +---- website/agenda/planung/roles.cgi | 8 ++--- website/agenda/planung/series.cgi | 14 +++------ website/agenda/planung/show-image.cgi | 4 +-- website/agenda/planung/studios.cgi | 8 +---- website/agenda/planung/user-settings.cgi | 8 ++--- website/agenda/planung/user-stats.cgi | 10 +++--- website/agenda/planung/users.cgi | 34 ++++++--------------- website/agenda/planung/work-time.cgi | 11 +++---- 19 files changed, 53 insertions(+), 141 deletions(-) diff --git a/website/agenda/planung/assign-series.cgi b/website/agenda/planung/assign-series.cgi index 7adb181..c79dce0 100755 --- a/website/agenda/planung/assign-series.cgi +++ b/website/agenda/planung/assign-series.cgi @@ -11,6 +11,7 @@ use Encode(); use params(); use config(); use log(); +use entry(); use template(); use auth(); use uac(); @@ -204,15 +205,8 @@ sub check_params { my $checked = {}; - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(assign_series)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of( $params->{action}, ['assign_series'] ); - #numeric values $checked->{exclude} = 0; entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'series_id' diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index f9b50da..b3d72d5 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -352,15 +352,8 @@ sub check_params { my $checked = {}; - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(assign_events)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of($params->{action}, ['assign_events']); - #numeric values $checked->{exclude} = 0; entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'series_id', 'event_id' @@ -389,7 +382,6 @@ sub check_params { entry::set_numbers( $checked, $params, [ 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live']); - #scalars entry::set_strings( $checked, $params, [ 'search', 'from', 'till' ]); diff --git a/website/agenda/planung/audio-recordings.cgi b/website/agenda/planung/audio-recordings.cgi index 8d1eae5..a142df6 100755 --- a/website/agenda/planung/audio-recordings.cgi +++ b/website/agenda/planung/audio-recordings.cgi @@ -13,6 +13,7 @@ use File::Temp(); use config(); use log(); +use entry(); use localization(); use auth(); use uac(); @@ -542,8 +543,7 @@ sub check_params { my $checked = {}; $checked->{error} = ''; - $checked->{template} = - template::check( $config, $params->{template}, 'upload-audio-recordings' ); + $checked->{template} = template::check( $config, $params->{template}, 'upload-audio-recordings' ); entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id']); @@ -554,8 +554,11 @@ sub check_params { $checked->{studio_id} = -1; } + $checked->{action} = entry::element_of($params->{action}, + ['update', 'delete']); + entry::set_strings( $checked, $params, [ - 'name', 'description', 'action', 'path' ]); + 'name', 'description', 'path' ]); $checked->{upload} = $params->{upload}; return $checked; diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index a7dd5ef..3f61201 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -242,13 +242,8 @@ sub check_params { my $checked = {}; - #actions - - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(setLock|setRead|showComment)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of($params->{action}, + [ 'setLock', 'setRead', 'showComment', 'update', 'delete']); #template my $template = ''; diff --git a/website/agenda/planung/create-events.cgi b/website/agenda/planung/create-events.cgi index cf41eeb..f104988 100755 --- a/website/agenda/planung/create-events.cgi +++ b/website/agenda/planung/create-events.cgi @@ -202,15 +202,9 @@ sub check_params { my $checked = {}; - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(create_events|show_events)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of($params->{action}, + ['create_events', 'show_events']); - #numeric values $checked->{exclude} = 0; $checked->{duration} = 28; entry::set_numbers( $checked, $params, [ diff --git a/website/agenda/planung/event-history.cgi b/website/agenda/planung/event-history.cgi index 6df88e6..09d52da 100755 --- a/website/agenda/planung/event-history.cgi +++ b/website/agenda/planung/event-history.cgi @@ -13,6 +13,7 @@ use Text::Diff::Unified::XS; use params(); use config(); +use entry(); use log(); use template(); use db(); @@ -249,7 +250,7 @@ sub check_params { #numeric values entry::set_numbers( $checked, $params, [ - 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) + 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ]); if ( defined $checked->{studio_id} ) { @@ -258,13 +259,8 @@ sub check_params { $checked->{studio_id} = -1; } - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(show|diff)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of($params->{action}, ['show', 'diff']); + return $checked; } diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 8fc2b08..f7a2b36 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -843,13 +843,11 @@ sub check_params { } } - #actions - $checked->{action} = ''; - if ( defined $params->{action} ) { - $checked->{action} = $params->{action} if List::Util::any { $_ eq $params->{action} } qw{ + $checked->{action} = entry::element_of($params->{action}, + [qw{ save delete download show_new_event show_new_event_from_schedule create_event create_event_from_schedule get_json - }; - } + }] + ); return $checked; } diff --git a/website/agenda/planung/image-upload.cgi b/website/agenda/planung/image-upload.cgi index bd96d81..adeb683 100755 --- a/website/agenda/planung/image-upload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -370,7 +370,6 @@ sub check_params { my $checked = {}; $checked->{template} = template::check( $config, $params->{template}, 'image-upload' ); - #numeric values entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'default_studio_id' ]); @@ -383,7 +382,6 @@ sub check_params { entry::set_strings( $checked, $params, [ 'action', 'name', 'description', 'licence' ]); - #checkboxes entry::set_bools( $checked, $params, [ 'public' ] ); return $checked; } diff --git a/website/agenda/planung/notify-events.cgi b/website/agenda/planung/notify-events.cgi index cef85dc..f7fbf8b 100755 --- a/website/agenda/planung/notify-events.cgi +++ b/website/agenda/planung/notify-events.cgi @@ -261,14 +261,7 @@ sub check_params { $checked->{studio_id} = -1; } - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(send)$/ ) { - $checked->{action} = $params->{action}; - } - } - + $checked->{action} = entry::element_of($params->{action}, ['send']); return $checked; } diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 4e424e8..f0d8fe3 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -277,13 +277,8 @@ sub check_params { $template = template::check( $config, $params->{template}, 'projects' ); $checked->{template} = $template; - #actions - my $action = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(save|delete|assign_studio|unassign_studio)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of($params->{action}, + ['save', 'delete', 'assign_studio', 'unassign_studio'] ); entry::set_strings( $checked, $params, [ 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email', 'setImage' ]); diff --git a/website/agenda/planung/request-password.cgi b/website/agenda/planung/request-password.cgi index b1aac40..0bc8781 100755 --- a/website/agenda/planung/request-password.cgi +++ b/website/agenda/planung/request-password.cgi @@ -145,12 +145,7 @@ sub check_params { entry::set_strings( $checked, $params, [ 'user', 'token', 'user_password', 'user_password2']); - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(change)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of($params->{action}, ['change']); return $checked; } diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 6c26ed1..745ba01 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use config(); use params(); +use entry(); use log(); use template(); use auth(); @@ -434,12 +435,7 @@ sub check_params { $template = template::check( $config, $params->{template}, 'roles.html' ); $checked->{template} = $template; - #actions - if ( defined $params->{action} ) { - if ( $params->{action} eq 'save' ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of( $params->{action}, ['save']); entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'default_studio_id' diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index bd1b2db..112767c 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1411,22 +1411,16 @@ sub check_params { my $checked = {}; - #actions - $checked->{action} = ''; - if ( defined $params->{action} ) { - $checked->{action} = $params->{action} if List::Util::any { $_ eq $params->{action} } qw{ - add_user remove_user + $checked->{action} = entry::element_of( $params->{action}, + [ qw( add_user remove_user create delete save details show save_schedule delete_schedule save_scan scan_events assign_event unassign_event reassign_event rebuild_episodes set_rebuilt_episodes - }; - } - - #numeric values + )]); + $checked->{exclude} = 0; - $checked->{action} = $params->{action}; entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', diff --git a/website/agenda/planung/show-image.cgi b/website/agenda/planung/show-image.cgi index 8c95be9..a2fd6f8 100755 --- a/website/agenda/planung/show-image.cgi +++ b/website/agenda/planung/show-image.cgi @@ -100,7 +100,6 @@ sub check_params { my $checked = {}; - #numeric values for my $param ('filename') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[A-Za-z\_\-\.\d\/]+$/ ) ) { $checked->{$param} = $params->{$param}; @@ -115,10 +114,9 @@ sub check_params { } } - #numeric values entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'series_id', 'event_id' - ]) + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index bb1a7e1..8e74521 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -221,13 +221,7 @@ sub check_params { $template = template::check( $config, $params->{template}, 'studios' ); $checked->{template} = $template; - #actions - my $action = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(save|delete)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of( $params->{action}, ['save', 'delete']); entry::set_strings( $checked, $params, [ 'name', 'description', 'location', 'stream', 'google_calendar', 'image', 'setImage' ]); diff --git a/website/agenda/planung/user-settings.cgi b/website/agenda/planung/user-settings.cgi index 76c6552..f1eca32 100755 --- a/website/agenda/planung/user-settings.cgi +++ b/website/agenda/planung/user-settings.cgi @@ -10,6 +10,7 @@ use config(); use log(); use template(); use auth(); +use entry(); use uac(); use roles(); use project(); @@ -248,12 +249,7 @@ sub check_params { } } - #actions - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(save|updateDefaultProjectStudio)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of( $params->{action}, ['save', 'updateDefaultProjectStudio']); return $checked; } diff --git a/website/agenda/planung/user-stats.cgi b/website/agenda/planung/user-stats.cgi index 8877a58..24d49ae 100755 --- a/website/agenda/planung/user-stats.cgi +++ b/website/agenda/planung/user-stats.cgi @@ -10,6 +10,7 @@ use config(); use log(); use template(); use auth(); +use entry(); use uac(); use roles(); use project(); @@ -117,12 +118,9 @@ sub check_params { my $checked = {}; - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(show-user-stats|show-active-users)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of( $params->{action}, + ['show-user-stats', 'show-active-users'] + ); entry::set_numbers( $checked, $params, [ 'project_id', 'default_studio_id', 'studio_id', 'series_id']); diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index e12fed8..385a4b6 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -7,6 +7,7 @@ no warnings 'redefine'; use Data::Dumper; use config(); +use entry(); use log(); use template(); use auth(); @@ -407,32 +408,17 @@ sub check_params { $checked->{studio_id} = -1; } - for my $param ( 'user_name', 'user_full_name', 'user_email' ) { - if ( defined $params->{$param} ) { - my $value = $params->{$param}; - $value =~ s/^\s+//g; - $value =~ s/\s+$//g; - $checked->{$param} = $value; - } - } + entry::set_strings( $checked, $params, + [ 'user_name', 'user_full_name', 'user_email', 'user_password', 'user_password2' ] + ); - for my $param ( 'user_password', 'user_password2' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - } - } + $checked->{action} = entry::element_of( $params->{action}, + ['save', 'assign', 'delete', 'change_password']); - #actions and roles - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(save|assign|delete|change_password)$/ ) { - $checked->{action} = $params->{action}; - } - - if ( $params->{action} eq 'assign' ) { - $checked->{action} = $params->{action}; - for my $param ( keys %$params ) { - $checked->{role_ids}->{$1} = 1 if ( $param =~ /^role_(\d+)$/ ); - } + if ( $params->{action} eq 'assign' ) { + $checked->{action} = $params->{action}; + for my $param ( keys %$params ) { + $checked->{role_ids}->{$1} = 1 if ( $param =~ /^role_(\d+)$/ ); } } diff --git a/website/agenda/planung/work-time.cgi b/website/agenda/planung/work-time.cgi index 646ef06..820a8ab 100755 --- a/website/agenda/planung/work-time.cgi +++ b/website/agenda/planung/work-time.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use URI::Escape(); use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -264,13 +265,9 @@ sub check_params { my $checked = {}; - #actions and roles - $checked->{action} = ''; - if ( defined $params->{action} ) { - if ( $params->{action} =~ /^(show|save_schedule|delete_schedule)$/ ) { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of( $params->{action}, + ['show', 'save_schedule', 'delete_schedule'] + ); $checked->{exclude} = 0; entry::set_numbers( $checked, $params, [ From 219d6d69650e6e7ab818484ddcf20ac985a9bcc6 Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 26 Mar 2020 16:11:19 +0100 Subject: [PATCH 127/391] fix image publishing and refactor --- website/agenda/planung/image.cgi | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index c77ae2c..75cfe29 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -14,6 +14,7 @@ use time(); use images(); use params(); use config(); +use entry(); use log(); use template(); use db(); @@ -139,7 +140,7 @@ sub show_image { } #load images matching by search - if ( $params->{search} =~ /\S/ ) { + if ( ($params->{search}//'') =~ /\S/ ) { #remove filename from search #delete $params->{filename}; @@ -208,6 +209,8 @@ sub show_image { my $search = $params->{search} || ''; $search =~ s/\%+/ /g; + + $params->{target} //= ''; my $template_params = { 'search' => $search, @@ -287,8 +290,6 @@ sub save_image { $config->{access}->{write} = 1; my $dbh = db::connect($config); - print STDERR "going to save\n"; - my $entries = images::get( $config, { @@ -438,14 +439,14 @@ sub check_params { 'save_image', 'delete_image', 'show', 'filename', 'target' ]); #checkboxes - entry::set_bools( $checked, $params, [ 'public ']); + entry::set_bools( $checked, $params, [ 'public']); #map show to filename, but overwrite if filename given - if ( $checked->{show} ne '' ) { + if ( ($checked->{show}//'') ne '' ) { $checked->{filename} = $checked->{show}; delete $checked->{show}; $checked->{limit} = 1; - } elsif ( $checked->{filename} ne '' ) { + } elsif ( ($checked->{filename}//'') ne '' ) { delete $checked->{show}; } From f9c4e183dfca12bc3be5464385d3314f8f265749 Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 26 Mar 2020 16:11:59 +0100 Subject: [PATCH 128/391] uue same order of imports --- website/agenda/planung/assign-series.cgi | 2 +- website/agenda/planung/assignments.cgi | 1 + website/agenda/planung/audio-recordings.cgi | 9 ++++----- website/agenda/planung/calendar.cgi | 1 + website/agenda/planung/comment.cgi | 1 + website/agenda/planung/create-events.cgi | 2 +- website/agenda/planung/event.cgi | 13 ++++++------- website/agenda/planung/help.cgi | 1 + website/agenda/planung/image-upload.cgi | 1 + website/agenda/planung/localization.cgi | 1 + website/agenda/planung/notify-events.cgi | 1 + website/agenda/planung/playout.cgi | 1 + website/agenda/planung/projects.cgi | 1 + website/agenda/planung/request-password.cgi | 1 + website/agenda/planung/series.cgi | 2 +- website/agenda/planung/studio-timeslots.cgi | 1 + website/agenda/planung/studios.cgi | 1 + website/agenda/planung/user-settings.cgi | 1 + website/agenda/planung/user-stats.cgi | 2 +- 19 files changed, 27 insertions(+), 16 deletions(-) diff --git a/website/agenda/planung/assign-series.cgi b/website/agenda/planung/assign-series.cgi index c79dce0..e338eaf 100755 --- a/website/agenda/planung/assign-series.cgi +++ b/website/agenda/planung/assign-series.cgi @@ -10,8 +10,8 @@ use Encode(); use params(); use config(); -use log(); use entry(); +use log(); use template(); use auth(); use uac(); diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index b3d72d5..1bf0f10 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -9,6 +9,7 @@ use Encode(); use params(); use config(); +use entry(); use log(); use template(); use auth(); diff --git a/website/agenda/planung/audio-recordings.cgi b/website/agenda/planung/audio-recordings.cgi index a142df6..d80692b 100755 --- a/website/agenda/planung/audio-recordings.cgi +++ b/website/agenda/planung/audio-recordings.cgi @@ -5,7 +5,7 @@ use warnings; no warnings 'redefine'; use Data::Dumper; -use CGI::Simple (); +use CGI::Simple(); use ModPerl::Util (); use Date::Calc(); use Time::Local(); @@ -144,6 +144,7 @@ sub uploadRecording { #$params->{duration} = $fileInfo->{duration}; $params = updateDatabase( $config, $params, $user ) if $params->{error} eq ''; } else { + print STDERR "could not get file handle\n"; $params->{error} .= 'Could not get file handle'; } @@ -554,11 +555,9 @@ sub check_params { $checked->{studio_id} = -1; } - $checked->{action} = entry::element_of($params->{action}, - ['update', 'delete']); + $checked->{action} = entry::element_of( $params->{action}, ['upload', 'delete'] ); - entry::set_strings( $checked, $params, [ - 'name', 'description', 'path' ]); + entry::set_strings( $checked, $params, [ 'name', 'description', 'path' ]); $checked->{upload} = $params->{upload}; return $checked; diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 2929a53..6302da7 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -11,6 +11,7 @@ use DateTime(); use utf8(); use params(); use config(); +use entry(); use log(); use entry(); use template(); diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 3f61201..fe6105c 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -12,6 +12,7 @@ use Encode::Locale(); use params(); use config(); +use entry(); use log(); use template(); use db(); diff --git a/website/agenda/planung/create-events.cgi b/website/agenda/planung/create-events.cgi index f104988..4194792 100755 --- a/website/agenda/planung/create-events.cgi +++ b/website/agenda/planung/create-events.cgi @@ -8,8 +8,8 @@ use Data::Dumper; use params(); use config(); +use entry(); use template(); - use auth(); use uac(); use time(); diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index f7a2b36..7a2ddd3 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -11,8 +11,8 @@ use Encode::Locale(); use params(); use config(); -use log(); use entry(); +use log(); use template(); use db(); use auth(); @@ -843,11 +843,10 @@ sub check_params { } } - $checked->{action} = entry::element_of($params->{action}, - [qw{ - save delete download show_new_event show_new_event_from_schedule - create_event create_event_from_schedule get_json - }] - ); + $checked->{action} = entry::element_of( $params->{action}, + [ 'save', 'delete', 'download', 'show_new_event', 'show_new_event_from_schedule', + 'create_event', 'create_event_from_schedule', 'get_json' + ] + )//''; return $checked; } diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi index 43d5be0..0089709 100755 --- a/website/agenda/planung/help.cgi +++ b/website/agenda/planung/help.cgi @@ -9,6 +9,7 @@ use URI::Escape(); use params(); use config(); +use entry(); use log(); use template(); use auth(); diff --git a/website/agenda/planung/image-upload.cgi b/website/agenda/planung/image-upload.cgi index adeb683..31a9aec 100755 --- a/website/agenda/planung/image-upload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -18,6 +18,7 @@ use Image::Magick(); use Image::Magick::Square; use config(); +use entry(); use auth(); use uac(); use studios(); diff --git a/website/agenda/planung/localization.cgi b/website/agenda/planung/localization.cgi index dcb9b1d..e79115d 100755 --- a/website/agenda/planung/localization.cgi +++ b/website/agenda/planung/localization.cgi @@ -10,6 +10,7 @@ use JSON(); use config(); use params(); use log(); +use entry(); use auth(); use localization(); diff --git a/website/agenda/planung/notify-events.cgi b/website/agenda/planung/notify-events.cgi index f7fbf8b..b7a283d 100755 --- a/website/agenda/planung/notify-events.cgi +++ b/website/agenda/planung/notify-events.cgi @@ -10,6 +10,7 @@ use MIME::Lite(); use params(); use config(); +use entry(); use log(); use template(); use db(); diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index efa560e..34aa720 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -10,6 +10,7 @@ use URI::Escape(); use localization(); use params(); use config(); +use entry(); use log(); use template(); use auth(); diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index f0d8fe3..1a0684d 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -7,6 +7,7 @@ no warnings 'redefine'; use Data::Dumper; use config(); +use entry(); use params(); use log(); use template(); diff --git a/website/agenda/planung/request-password.cgi b/website/agenda/planung/request-password.cgi index 0bc8781..6b89334 100755 --- a/website/agenda/planung/request-password.cgi +++ b/website/agenda/planung/request-password.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use params(); use config(); +use entry(); use db(); use auth(); use password_requests(); diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 112767c..07cda8f 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1232,7 +1232,7 @@ sub show_series { } for my $value ('markdown', 'creole'){ - $params->{"content_format_$value"}=1 if $params->{content_format} eq $value; + $params->{"content_format_$value"}=1 if ($params->{content_format}//'') eq $value; } $params->{loc} = diff --git a/website/agenda/planung/studio-timeslots.cgi b/website/agenda/planung/studio-timeslots.cgi index 84f0f24..349fa58 100755 --- a/website/agenda/planung/studio-timeslots.cgi +++ b/website/agenda/planung/studio-timeslots.cgi @@ -9,6 +9,7 @@ use URI::Escape(); use params(); use config(); +use entry(); use log(); use template(); use auth(); diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 8e74521..cb3f431 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -7,6 +7,7 @@ no warnings 'redefine'; use Data::Dumper; use config(); +use entry(); use params(); use log(); use template(); diff --git a/website/agenda/planung/user-settings.cgi b/website/agenda/planung/user-settings.cgi index f1eca32..9224ea5 100755 --- a/website/agenda/planung/user-settings.cgi +++ b/website/agenda/planung/user-settings.cgi @@ -7,6 +7,7 @@ no warnings 'redefine'; use Data::Dumper; use config(); +use entry(); use log(); use template(); use auth(); diff --git a/website/agenda/planung/user-stats.cgi b/website/agenda/planung/user-stats.cgi index 24d49ae..a14c0f9 100755 --- a/website/agenda/planung/user-stats.cgi +++ b/website/agenda/planung/user-stats.cgi @@ -7,10 +7,10 @@ no warnings 'redefine'; use Data::Dumper; use config(); +use entry(); use log(); use template(); use auth(); -use entry(); use uac(); use roles(); use project(); From b72f71e0acd99b3a4c6411c0b3855b3effb3a366 Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 22:55:55 +0200 Subject: [PATCH 129/391] migrate.sql: remove database name --- install/{INSTALL.txt => INSTALL.md} | 0 install/migrate.sql | 42 ++++++++++++++--------------- 2 files changed, 21 insertions(+), 21 deletions(-) rename install/{INSTALL.txt => INSTALL.md} (100%) diff --git a/install/INSTALL.txt b/install/INSTALL.md similarity index 100% rename from install/INSTALL.txt rename to install/INSTALL.md diff --git a/install/migrate.sql b/install/migrate.sql index cee4b82..6eaa2e7 100644 --- a/install/migrate.sql +++ b/install/migrate.sql @@ -116,11 +116,11 @@ ALTER TABLE `calcms_event_history` -- 2018-06-18 refactor columns -ALTER TABLE `calcms`.`calcms_audio_recordings` +ALTER TABLE `calcms_audio_recordings` CHANGE COLUMN `created_by` `created_by` VARCHAR(100) NOT NULL AFTER `processed`, CHANGE COLUMN `created_at` `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `created_by`; -ALTER TABLE `calcms`.`calcms_events` +ALTER TABLE `calcms_events` CHANGE COLUMN `program` `program` VARCHAR(40) NULL DEFAULT NULL AFTER `end`, CHANGE COLUMN `series_name` `series_name` VARCHAR(40) NULL DEFAULT NULL AFTER `program`, CHANGE COLUMN `episode` `episode` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `title`, @@ -138,7 +138,7 @@ CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIM CHANGE COLUMN `reference` `reference` VARCHAR(300) NULL DEFAULT NULL AFTER `modified_at`, CHANGE COLUMN `disable_event_sync` `disable_event_sync` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `reference`; -ALTER TABLE `calcms`.`calcms_images` +ALTER TABLE `calcms_images` CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `project_id`, CHANGE COLUMN `filename` `filename` VARCHAR(64) NOT NULL AFTER `studio_id`, @@ -147,7 +147,7 @@ CHANGE COLUMN `licence` `licence` VARCHAR(300) NULL DEFAULT NULL AFTER `descript CHANGE COLUMN `public` `public` TINYINT(1) UNSIGNED NULL DEFAULT '0' AFTER `licence`, CHANGE COLUMN `created_at` `created_at` DATETIME NULL DEFAULT CURRENT_TIMESTAMP AFTER `modified_by`; -ALTER TABLE `calcms`.`calcms_roles` +ALTER TABLE `calcms_roles` CHANGE COLUMN `project_id` `project_id` TINYINT(1) UNSIGNED NOT NULL AFTER `id`, CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`, CHANGE COLUMN `level` `level` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `role`, @@ -197,60 +197,60 @@ CHANGE COLUMN `created_at` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP CHANGE COLUMN `create_download` `create_download` TINYINT(1) UNSIGNED NOT NULL AFTER `created_at`, CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `create_download`; -ALTER TABLE `calcms`.`calcms_series_dates` +ALTER TABLE `calcms_series_dates` CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`; -ALTER TABLE `calcms`.`calcms_series_events` +ALTER TABLE `calcms_series_events` CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL FIRST, CHANGE COLUMN `studio_id` `studio_id` INT(12) UNSIGNED NOT NULL AFTER `project_id`; -ALTER TABLE `calcms`.`calcms_series_schedule` +ALTER TABLE `calcms_series_schedule` CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL DEFAULT '1' AFTER `id`, CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `project_id`; -ALTER TABLE `calcms`.`calcms_studios` +ALTER TABLE `calcms_studios` CHANGE COLUMN `image` `image` VARCHAR(200) NOT NULL AFTER `stream`; -ALTER TABLE `calcms`.`calcms_studio_timeslot_dates` +ALTER TABLE `calcms_studio_timeslot_dates` CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL FIRST, CHANGE COLUMN `schedule_id` `schedule_id` INT(10) UNSIGNED NOT NULL AFTER `studio_id`, DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE (`project_id`, `studio_id`, `start`, `end`); -ALTER TABLE `calcms`.`calcms_studio_timeslot_schedule` +ALTER TABLE `calcms_studio_timeslot_schedule` CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`; -ALTER TABLE `calcms`.`calcms_user_events` +ALTER TABLE `calcms_user_events` CHANGE COLUMN `modified_by` `modified_by` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `location`, CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `modified_by`; -ALTER TABLE `calcms`.`calcms_user_roles` +ALTER TABLE `calcms_user_roles` CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `project_id`; -ALTER TABLE `calcms`.`calcms_users` +ALTER TABLE `calcms_users` CHANGE COLUMN `email` `email` VARCHAR(300) NOT NULL AFTER `full_name`, CHANGE COLUMN `pass` `pass` VARCHAR(100) NOT NULL AFTER `email`, CHANGE COLUMN `created_at` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP AFTER `created_by`, CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `created_at`; -ALTER TABLE `calcms`.`calcms_user_series` +ALTER TABLE `calcms_user_series` CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`; -ALTER TABLE `calcms`.`calcms_user_stats` +ALTER TABLE `calcms_user_stats` ADD COLUMN `upload_file` INT(10) UNSIGNED NULL DEFAULT 0 AFTER `delete_series`, ADD COLUMN `download_file` INT(10) UNSIGNED NULL DEFAULT 0 AFTER `upload_file`; -ALTER TABLE `calcms`.`calcms_user_settings` +ALTER TABLE `calcms_user_settings` ADD COLUMN `project_id` INT(10) UNSIGNED NULL AFTER `calendar_fontsize`, ADD COLUMN `studio_id` INT(10) UNSIGNED NULL AFTER `project_id`; -ALTER TABLE `calcms`.`calcms_series` +ALTER TABLE `calcms_series` ADD COLUMN `predecessor_id` INT(10) NULL AFTER `has_single_events`; -CREATE TABLE `calcms`.`calcms_user_default_studios` ( +CREATE TABLE `calcms_user_default_studios` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `user` VARCHAR(50) NOT NULL, `project_id` INT(11) NOT NULL, @@ -259,12 +259,12 @@ CREATE TABLE `calcms`.`calcms_user_default_studios` ( INDEX `user` (`user` ASC)); -ALTER TABLE `calcms`.`calcms_series` +ALTER TABLE `calcms_series` ADD COLUMN `content_format` VARCHAR(45) NULL AFTER `predecessor_id`; -ALTER TABLE `calcms`.`calcms_events` +ALTER TABLE `calcms_events` ADD COLUMN `content_format` VARCHAR(45) NULL DEFAULT NULL AFTER `disable_event_sync`; -ALTER TABLE `calcms`.`calcms_roles` +ALTER TABLE `calcms_roles` ADD COLUMN `update_event_field_content_format` TINYINT(1) UNSIGNED NOT NULL AFTER `modified_at`; From d3762084d61f8b144d38259bb280b18e8210f035 Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 22:58:17 +0200 Subject: [PATCH 130/391] add_comment.cgi: perltidy --- website/agenda/add_comment.cgi | 272 +++++++++++++++------------------ 1 file changed, 125 insertions(+), 147 deletions(-) diff --git a/website/agenda/add_comment.cgi b/website/agenda/add_comment.cgi index 15dba18..4af930b 100755 --- a/website/agenda/add_comment.cgi +++ b/website/agenda/add_comment.cgi @@ -1,7 +1,9 @@ #!/usr/bin/perl -use warnings; use strict; +use warnings; +no warnings 'redefine'; + use Data::Dumper; use params(); @@ -15,75 +17,78 @@ use time(); binmode STDOUT, ":utf8"; -my $r=shift; -(my $cgi, my $params, my $error)=params::get($r); +my $r = shift; +( my $cgi, my $params, my $error ) = params::get($r); my $config = config::getFromScriptLocation(); my $debug = $config->{system}->{debug}; -my $request={ - url => $ENV{QUERY_STRING}, - params => { - original => $params, - checked => check_params($config, $params), - }, - config => $config, +my $request = { + url => $ENV{QUERY_STRING}, + params => { + original => $params, + checked => check_params( $config, $params ), + }, + config => $config, }; -$params=$request->{params}->{checked}; +$params = $request->{params}->{checked}; print "Content-Type:text/plain\n\n"; -print STDERR "add comment: ".Dumper($params); -my $comment =$params->{comment}; +print STDERR "add comment: " . Dumper($params); +my $comment = $params->{comment}; -$config->{access}->{write}=1; -my $dbh=db::connect($config,undef); +$config->{access}->{write} = 1; +my $dbh = db::connect( $config, undef ); print "ok\n"; -$comment->{content}=~s/(^|\s)((https?\:\/\/)(.*?))(\s|$|\<)/$1\$2\<\/a\>$5/g; -$comment->{content}=~s/(^|\s)((https?\:\/\/)(.*?))(\s|$|\<)/$1\$2\<\/a\>$5/g; -$comment->{content}=~s/(^|\s)((www\.)(.*?))(\s|$|\<)/$1\$2\<\/a\>$5/g; #" -$comment->{content}=~s/(^|\s)((www\.)(.*?))(\s|$|\<)/$1\$2\<\/a\>$5/g; #" +$comment->{content} =~ s/(^|\s)((https?\:\/\/)(.*?))(\s|$|\<)/$1\$2\<\/a\>$5/g; +$comment->{content} =~ s/(^|\s)((https?\:\/\/)(.*?))(\s|$|\<)/$1\$2\<\/a\>$5/g; +$comment->{content} =~ s/(^|\s)((www\.)(.*?))(\s|$|\<)/$1\$2\<\/a\>$5/g; #" +$comment->{content} =~ s/(^|\s)((www\.)(.*?))(\s|$|\<)/$1\$2\<\/a\>$5/g; #" -if (comments::check($dbh, $config, $comment)){ - my $nslookup=nslookup(); +if ( comments::check( $dbh, $config, $comment ) ) { + my $nslookup = nslookup(); #if (is_blocked($nslookup)==1){ # send_mail($comment, $nslookup, 'blocked'); # return; #}; - $comment->{comment_id}=comments::insert($dbh, $config, $comment); - if($comment->{comment_id}>0){ - comments::update_comment_count($dbh, $config, $comment); - delete_cache($config); - send_mail($comment, $nslookup, 'new'); + $comment->{comment_id} = comments::insert( $dbh, $config, $comment ); + if ( $comment->{comment_id} > 0 ) { + comments::update_comment_count( $dbh, $config, $comment ); + send_mail( $comment, $nslookup, 'new' ); } } -sub is_blocked{ - my $nslookup=shift; +sub is_blocked { + my $nslookup = shift; - my $user_agent=$ENV{HTTP_USER_AGENT}; + my $user_agent = $ENV{HTTP_USER_AGENT}; - my $block=0; - $block = 1 - if ( ( $user_agent eq 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:35.0) Gecko/20100101 Firefox/35.0' ) - && ( $nslookup =~ /alicedsl/ ) ); + my $block = 0; + $block = 1 + if ( $user_agent eq 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:35.0) Gecko/20100101 Firefox/35.0' ) + && ( $nslookup =~ /alicedsl/ ); + + $block = 1 + if $user_agent eq +'Mozilla/5.0 (Linux; Android 8.0.0; ANE-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36'; return $block; } -sub send_mail{ +sub send_mail { my $comment = shift; my $nslookup = shift; my $status = shift || 'new'; - my $ip = $ENV{REMOTE_ADDR}||''; - my $user_agent = $ENV{HTTP_USER_AGENT}||''; - my $cookie = $ENV{HTTP_COOKIE}||''; + my $ip = $ENV{REMOTE_ADDR} || ''; + my $user_agent = $ENV{HTTP_USER_AGENT} || ''; + my $cookie = $ENV{HTTP_COOKIE} || ''; - my $from = 'no-reply@'; - my $to = 'info@'; + my $from = 'no-reply@localhost'; + my $to = 'info@localhost'; my $subject = "$status comment from '$comment->{author}': $comment->{content}"; my $content = "$status comment @@ -93,20 +98,20 @@ EMAIL: $comment->{email} CONTENT: '$comment->{content}' view event -https://piradio.de/programm/sendung/$comment->{event_id}.html#comments +https://localhost/programm/sendung/$comment->{event_id}.html#comments "; -if ($status eq 'new'){ - $content.=" + if ( $status eq 'new' ) { + $content .= " manage comments: -https://piradio.de/agenda/planung/comment.cgi?project_id=1&studio_id=1 +https://localhost/agenda/planung/comment.cgi?project_id=1&studio_id=1 lock this comment -https://piradio.de/agenda/planung/comment.cgi?event_id=$comment->{event_id}&comment_id=$comment->{comment_id}&set_lock_status=blocked +https://localhost/agenda/planung/comment.cgi?event_id=$comment->{event_id}&comment_id=$comment->{comment_id}&set_lock_status=blocked "; -} + } -$content.=qq{ + $content .= qq{ ----------------------------------------------------------- SENDER IP: $ip ($comment->{ip}) @@ -122,126 +127,99 @@ $nslookup To => $to, Subject => $subject, Data => $content - #.Dumper($comment) ); $msg->send; } -sub nslookup{ - my $ip =$ENV{REMOTE_ADDR}; - my $nslookup=''; - if($ip=~/^([\d\.]+)$/){ - $ip=$1; +sub nslookup { + my $ip = $ENV{REMOTE_ADDR}; + my $nslookup = ''; + if ( $ip =~ /^([\d\.]+)$/ ) { + $ip = $1; return `nslookup '$ip'`; } return ''; } -sub delete_cache{ - my $config=shift; +sub check_params { + my $config = shift; + my $params = shift; - unless($config->{locations}->{base_dir}=~/a-zA-Z/){ - print STDERR "add_comment.cgi: base_dir is not configured\n"; - return; - } - unless($config->{cache}->{cache_dir}=~/a-zA-Z/){ - print STDERR "add_comment.cgi: cache_dir is not configured\n"; - return; - } - unless($config->{controllers}->{comments}=~/a-zA-Z/){ - print STDERR "add_comment.cgi: contoller 'comments' is not configured\n"; - return; + my $template = template::check( $config, $params->{'template'}, 'comments.html' ); + + my $comment = {}; + + my $event_start = $params->{'event_start'} || ''; + if ( $event_start =~ /^(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)(\:\d\d)?$/ ) { + $comment->{event_start} = $1; + } else { + log::error( $config, 'add_comment.cgi: invalid date "' . $event_start . '"' ); } - my $cache_dir=$config->{locations}->{base_dir}.'/'.$config->{cache}->{cache_dir}.'/'; + my $event_id = $params->{'event_id'} || ''; + if ( $event_id =~ /^(\d+)$/ ) { + $comment->{event_id} = $1; + } else { + log::error( $config, 'add_comment.cgi: invalid id' ); + } - my $widget_cache=$cache_dir.'/'.$config->{controllers}->{comments}; - `rm -f $widget_cache/*` if (-d $widget_cache); + my $parent_id = $params->{'parent_id'} || ''; + if ( $parent_id =~ /^(\d+)$/ ) { + $comment->{parent_id} = $1; + } else { + $comment->{parent_id} = 0; + } - my $aggregator_dir=$cache_dir.'/programm/'.$config->{controllers}->{comments}; - `rm -f $aggregator_dir/*` if (-d $aggregator_dir); + $comment->{content} = $params->{'content'} || ''; + $comment->{content} = escape_text( $comment->{content} ); + $comment->{content} = substr( $comment->{content}, 0, 1000 ); + log::error( $config, 'add_comment.cgi: missing body' ) if ( $comment->{content} eq '' ); + + $comment->{author} = $params->{'author'} || ''; + $comment->{author} = escape_text( $comment->{author} ); + $comment->{author} = substr( $comment->{author}, 0, 40 ); + log::error( $config, 'add_comment.cgi: missing name' ) if ( $comment->{author} eq '' ); + + $comment->{email} = $params->{'email'} || ''; + $comment->{email} = escape_text( $comment->{email} ); + $comment->{email} = substr( $comment->{email}, 0, 40 ); + + $comment->{title} = $params->{'title'} || ''; + $comment->{title} = escape_text( $comment->{title} ); + $comment->{title} = substr( $comment->{title}, 0, 80 ); + + $comment->{ip} = $ENV{REMOTE_ADDR} || ''; + log::error( $config, 'missing ip' ) if ( $comment->{ip} eq '' ); + $comment->{ip} = Digest::MD5::md5_base64( $comment->{ip} ); + + my $today = time::datetime_to_array( time::time_to_datetime() ); + my $date = time::datetime_to_array( $comment->{event_start} ); + my $delta_days = time::days_between( $today, $date ); + log::error( $config, 'add_comment.cgi: no comments allowed, yet' ) + if ( $delta_days > $config->{permissions}->{no_new_comments_before} ); + log::error( $config, 'add_comment.cgi: no comments allowed anymore' ) + if ( $delta_days < -1 * $config->{permissions}->{no_new_comments_after} ); + + return { + template => $template, + comment => $comment + }; } -sub check_params{ - my $config=shift; - my $params=shift; +sub escape_text { + my $s = shift; + $s =~ s/^\s+//g; + $s =~ s/\s+$//g; - my $template = template::check($config, $params->{'template'}, 'comments.html' ); - - my $comment={}; - - my $event_start=$params->{'event_start'}||''; - if ($event_start=~/^(\d\d\d\d\-\d\d\-\d\d[ T]\d\d\:\d\d)(\:\d\d)?$/){ - $comment->{event_start}=$1; - }else{ - log::error($config, 'add_comment.cgi: invalid date "'.$event_start.'"'); - } - - my $event_id=$params->{'event_id'}||''; - if ($event_id=~/^(\d+)$/){ - $comment->{event_id}=$1; - }else{ - log::error($config, 'add_comment.cgi: invalid id'); - } - - my $parent_id=$params->{'parent_id'}||''; - if ($parent_id=~/^(\d+)$/){ - $comment->{parent_id}=$1; - }else{ - $comment->{parent_id}=0; - } - - $comment->{content}=$params->{'content'}||''; - $comment->{content}=escape_text($comment->{content}); - $comment->{content}=substr($comment->{content},0,1000); - log::error($config, 'add_comment.cgi: missing body') if ($comment->{content}eq''); - - $comment->{author}=$params->{'author'}||''; - $comment->{author}=escape_text($comment->{author}); - $comment->{author}=substr($comment->{author},0,40); - log::error($config, 'add_comment.cgi: missing name') if ($comment->{author}eq''); - - $comment->{email}=$params->{'email'}||''; - $comment->{email}=escape_text($comment->{email}); - $comment->{email}=substr($comment->{email},0,40); - - $comment->{title}=$params->{'title'}||''; - $comment->{title}=escape_text($comment->{title}); - $comment->{title}=substr($comment->{title},0,80); - - $comment->{ip}=$ENV{REMOTE_ADDR}||''; - log::error($config, 'missing ip') if ($comment->{ip}eq''); - $comment->{ip}=Digest::MD5::md5_base64($comment->{ip}); - - my $today=time::datetime_to_array(time::time_to_datetime()); - my $date =time::datetime_to_array($comment->{event_start}); - my $delta_days=time::days_between($today,$date); - log::error( $config, 'add_comment.cgi: no comments allowed, yet' ) - if ( $delta_days > $config->{permissions}->{no_new_comments_before} ); - log::error( $config, 'add_comment.cgi: no comments allowed anymore' ) - if ( $delta_days < -1 * $config->{permissions}->{no_new_comments_after} ); - - return { - template =>$template, - comment =>$comment - }; -} - -sub escape_text{ - my $s=shift; - $s=~s/^\s+//g; - $s=~s/\s+$//g; - - #remove broken HTML - $s=~s/<[a-z\!\?\[\/][^\>]+?\>//gi; - $s=~s/<[a-z\!\?\[\/]\>//gi; + #remove broken HTML + $s =~ s/<[a-z\!\?\[\/][^\>]+?\>//gi; + $s =~ s/<[a-z\!\?\[\/]\>//gi; $s = markup::escapeHtml($s); - $s=~s/[\n\r]+/\
      /g; - $s=~s/\
      /\
      \n/g; - $s=~s/\
      \s*$//g; - return $s; + $s =~ s/[\n\r]+/\
      /g; + $s =~ s/\
      /\
      \n/g; + $s =~ s/\
      \s*$//g; + return $s; } - From 90cd9b9620b90cd708793d058b82f78fa1bbb6ab Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 22:59:45 +0200 Subject: [PATCH 131/391] events.cgi: refactor --- website/agenda/events.cgi | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/website/agenda/events.cgi b/website/agenda/events.cgi index cd0220f..aaffe7c 100755 --- a/website/agenda/events.cgi +++ b/website/agenda/events.cgi @@ -4,13 +4,9 @@ use strict; use warnings; no warnings 'redefine'; -use Data::Dumper; - use params(); use config(); -use log(); use events(); -use time(); binmode STDOUT, ":encoding(UTF-8)"; @@ -35,9 +31,7 @@ if ( $0 =~ /events.*?\.cgi$/ ) { }, }; - my $output = ''; - events::get_cached_or_render( $output, $config, $request ); - print $output. "\n"; + events::get_cached_or_render( 'print', $config, $request ); } 1; From b442bf0fc8059dd823694a3e6c4380f7482acf66 Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 23:00:40 +0200 Subject: [PATCH 132/391] update_program.pl: refactor --- tools/update_program.pl | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/tools/update_program.pl b/tools/update_program.pl index 91927c0..cf390d4 100755 --- a/tools/update_program.pl +++ b/tools/update_program.pl @@ -7,7 +7,6 @@ use Data::Dumper; use Date::Calc; use config; use template; -use projects; my $perlPath='-I /home/calcms/lib/calcms'; my $configPath=$ARGV[0]||'/home/calcms/website/agenda/config/config.cgi'; @@ -19,19 +18,12 @@ clean_up_cache(); sub clean_up_cache{ my $base_dir =$config::config->{locations}->{base_dir}||''; - my $cache =$config::config->{cache}->{cache_dir}||''; - my $cache_dir=$base_dir.'/'.$cache.'/'; print_error("'base_dir' directory not configured! Please check config!") if($base_dir eq''); print_error("invalid 'base_dir' directory '$base_dir'! Please check config!") unless ($base_dir=~/[a-zA-Z]\/[a-zA-Z]/); print_error("'base_dir' directory '$base_dir' does not exist! Please check config!") unless (-e $base_dir); print_error("cannot read 'base_dir' directory '$base_dir'! Please check permissions!") unless (-r $base_dir); - print_error("'cache_dir' directory $cache_dir not configured! Please check config!") if ($cache_dir eq '/'); - print_error("invalid 'cache_dir' directory '$cache_dir'! Please check config!") unless ($cache_dir=~/[a-zA-Z]\/[a-zA-Z]/); - print_error("'cache_dir' directory '$cache_dir' does not exist! Please check filesystem!") unless (-e $cache_dir); - print_error("cannot write to 'cache_dir' directory '$cache_dir'! Please check filesystem!") unless (-w $cache_dir); - # update basic layout print_header("update basic layout"); @@ -44,14 +36,6 @@ sub clean_up_cache{ execute($cmd); } - # clear all files from cache - print_header("clear cache"); - - for my $controller (qw(sendung sendungen kalender kommentare)){ - clear($cache_dir.'/'.$controller.'/*'); - clear($cache_dir.'/programm/'.$controller.'/*'); - } - # update start page print_header("update agenda start page"); $file="$base_dir/programm.html"; @@ -63,22 +47,6 @@ sub clean_up_cache{ } } -sub clear{ - my $path=shift; - - print_error("invalid path '$path' to delete!") unless ($path=~/cache/); - return if ($path=~/\.htaccess$/); - - print_info("clear $path:"); - - for my $file (glob($path) ){ - if (-f $file){ - print_info($file); - unlink $file; - } - } -} - sub print_header{ print "\n# $_[0]\n"; } @@ -100,5 +68,4 @@ sub print_error{ exit 1; } - 1; From 29951c2f636a05e48fd8a6992aec33103955fd9f Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 23:01:15 +0200 Subject: [PATCH 133/391] category.cgi: remove debug --- website/agenda/category.cgi | 6 ------ 1 file changed, 6 deletions(-) diff --git a/website/agenda/category.cgi b/website/agenda/category.cgi index 47b6bea..4ad5762 100755 --- a/website/agenda/category.cgi +++ b/website/agenda/category.cgi @@ -111,14 +111,8 @@ sub check_params { my $template = template::check( $config, $params->{template}, 'categories.html' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - return { template => $template, - debug => $debug }; } From a37974bb5e3ee85498cab63c0c03b3ae5a1813db Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 23:02:19 +0200 Subject: [PATCH 134/391] entry.pm: use parser functions --- website/agenda/series.cgi | 21 +++------------------ website/agenda/series_names.cgi | 6 ------ 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/website/agenda/series.cgi b/website/agenda/series.cgi index fbaa666..256ccb4 100755 --- a/website/agenda/series.cgi +++ b/website/agenda/series.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use params(); use config(); +use entry(); use template(); use studios(); use series(); @@ -78,25 +79,9 @@ sub check_params { my $checked = {}; - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; + entry::set_numbers( $checked, $params, ['project_id', 'studio_id' ]); - for my $param ( 'project_id', 'studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } - - for my $param ('location') { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } + entry::set_strings( $checked, $params, [ 'location'] ); return $checked; } diff --git a/website/agenda/series_names.cgi b/website/agenda/series_names.cgi index 2f12d77..16ad8c0 100755 --- a/website/agenda/series_names.cgi +++ b/website/agenda/series_names.cgi @@ -164,11 +164,6 @@ sub check_params { my $template = template::check( $config, $params->{template}, 'series_names.html' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - my $search = $params->{q} || $params->{search} || $params->{term} || ''; if ( $search =~ /([a-z0-9A-Z\_\,]+)/ ) { $search = $1; @@ -176,7 +171,6 @@ sub check_params { return { template => $template, - debug => $debug, search => $search, }; } From b620a7032d63c9d0d5953af09ed631c291ea0e40 Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 23:03:54 +0200 Subject: [PATCH 135/391] dark mode --- website/agenda/css/calcms.css | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index cd8a5e7..6b78dc6 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -26,6 +26,21 @@ url('../fonts/open-sans-v15-latin_latin-ext-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ } +@media (prefers-color-scheme: dark) { + html, + *, + .entry-title a, + #calcms_calendar table thead a:hover, + #calcms_calendar table thead a:link, + .main-navigation a:hover, + .main-navigation a:focus + { + color:white !important; + background:black !important; + + } +} + #page * { font-family: Roboto, serif !important; } From 726c5e8fe8246cefc95a5057d4983af48f9f69cc Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 23:04:45 +0200 Subject: [PATCH 136/391] config.pm: replace Config::General Config::General does not support Apache like definition and use of variables. A minimal implementation of Apache-like configuration allows to define variables by Define and use them later by ${variable-name} . --- lib/calcms/config.pm | 67 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 15 deletions(-) diff --git a/lib/calcms/config.pm b/lib/calcms/config.pm index d04c9bd..60e2072 100644 --- a/lib/calcms/config.pm +++ b/lib/calcms/config.pm @@ -5,30 +5,16 @@ use warnings; no warnings 'redefine'; use FindBin(); -use Config::General(); #use base 'Exporter'; our @EXPORT_OK = qw(get set); my $config = undef; -sub set($) { - my $value = shift; - $config = $value; - return; -} sub get($) { my $filename = shift; - - return $config if ( defined $config ) && ( $config->{cache}->{cache_config} == 1 ); - - my $configuration = Config::General->new( - -ConfigFile => $filename, - -UTF8 => 1 - ); - config::set( $configuration->{DefaultConfig}->{config} ); - return $config; + return read_config($filename); } sub getFromScriptLocation() { @@ -37,5 +23,56 @@ sub getFromScriptLocation() { return config::get($configFile); } +sub read_config { + my $file = $_[0]; + + my $vars = {}; + my @stack = (); + my $entry = {}; + + open my $fh, '<', $file or die; + while ( my $line = <$fh> ) { + chomp $line; + + # comments + $line =~ s/\#.*//; + + # trim + $line =~ s/(^\s+)|(\s+)$//; + next unless length $line; + if ( $line =~ /^<\/([^>]+)>$/ ) { + + # close tag + my $name = $1; + my $sentry = pop @stack; + die unless $sentry->{name} eq $name; + $entry = $sentry->{value}; + } elsif ( $line =~ /^<([^>]+)>$/ ) { + + # open tag + my $name = $1; + $entry->{$name} = {}; + push @stack, { name => $name, value => $entry }; + $entry = $entry->{$name}; + } elsif ( $line =~ /^Define\s/ ) { + # define vars + my ( $attr, $key, $value ) = split /\s+/, $line, 3; + for my $var ( keys %$vars ) { + $value =~ s/\$\{$var\}/$vars->{$var}/; + } + $vars->{$key} = $value; + } else { + # attributes + my ( $key, $value ) = split /\s+/, $line, 2; + for my $var ( keys %$vars ) { + $value =~ s/\$\{$var\}/$vars->{$var}/; + } + $entry->{$key} = $value; + } + } + close $fh or die; + return $entry->{config}; +} + #do not delete last line 1; From 9cd40e14f565d83032a49c57cc00b5e71a39084e Mon Sep 17 00:00:00 2001 From: Milan Date: Thu, 9 Apr 2020 23:08:24 +0200 Subject: [PATCH 137/391] config.cgi: use variables in configuration --- website/agenda/config/config.cgi.off | 94 ++++++++++++---------------- 1 file changed, 39 insertions(+), 55 deletions(-) diff --git a/website/agenda/config/config.cgi.off b/website/agenda/config/config.cgi.off index 0a7e592..56a332f 100755 --- a/website/agenda/config/config.cgi.off +++ b/website/agenda/config/config.cgi.off @@ -1,103 +1,87 @@ #!/usr/bin/perl -use CGI qw(header param Vars); -$CGI::POST_MAX = 0;$CGI::DISABLE_UPLOADS = 1;$cgi=new CGI();print $cgi->header();return;exit; +print "Content-type:text/plain\n\nAccess denies."; +exit; __END__ -# TODO: replace with projects from database -project Corax +Define DOMAIN your-domain.org +Define BASE_DIR /home/calcms/website +Define LOG_DIR /home/radio/log + +# default project from database +project Corax + + +# projects_to_exclude project1 +# locations_to_exclude location1,location2 + -# widget support # controller base directory - domain /agenda/ + domain /agenda/ # customize controller URLs - calendar kalender - event sendung - events sendungen - comments kommentare - ical ical - atom atom - rss rss + calendar kalender + event sendung + events sendungen + comments kommentare + ical ical + atom atom + rss rss -# widget support - - events event_menu.html - events event_list.html - events event_details.html - events event_playlist.html - events event_playlist.txt - events event.ics - events event.atom.xml - events event.rss.xml - events event.json - - comments comments.html - comments comments_newest.html - comments comments.xml - aggregator - - - - config_file /home/calcms/website/agenda/config/config.cgi + config_file ${BASE_DIR}/agenda/config/config.cgi - log_file /var/www/vhosts/system/yourdomain.org/logs/error_log - log_debug_file /home/calcms/log/calcms.log - log_debug_memory_file /home/calcms/log/calcms-mem.log - job_log /home/calcms/log/jobs.log + log_file /var/www/vhosts/${DOMAIN}/logs/error_log + log_debug_file ${LOG_DIR}/${DOMAIN}/calcms.log + log_debug_memory_file ${LOG_DIR}/${DOMAIN}/calcms-mem.log debug_memory 0 debug 0 - + - use_cache 0 use_client_cache 0 - compress 0 - cache_dir cache/ base_url /programm + temp_dir ${BASE_DIR}/temp/ + # URLs of the program page the agenda should be injected into (done by preload_agenda.pl) # this is the page containing calcms_menu, and other ids - source_url_http http://www.yourdomain.org/programm.html - source_url_https https://www.yourdomain.org/programm.html + source_url_http http://${DOMAIN}/programm.html + source_url_https https://${DOMAIN}/programm.html # feed base url - source_base_url http://yourdomain.org/ + source_base_url https://${DOMAIN}/ local_base_url /agenda/ + editor_base_url /agenda/planung/ # ajax - base_domain http://yourdomain.org/ + base_domain https://${DOMAIN}/ base_url /agenda/? - base_dir /home/calcms/website/agenda/ + base_dir ${BASE_DIR}/agenda/ static_files_url /agenda/ # images - local_media_dir /home/calcms/website/agenda_files/media/ + local_media_dir ${BASE_DIR}/agenda_files/media/ local_media_url /agenda_files/media/ # archives local_archive_dir /home/calcms/archive/ local_archive_url /archive/ - local_audio_recordings_dir /home/calcms/recordings/ - local_audio_recordings_url /recordings/ - - # synchronization - sync_cms_dir /home/calcms/sync_cms/ + local_audio_recordings_dir ${BASE_DIR}/recordings/ + local_audio_recordings_url /agenda_files/recordings/ # multi language support - admin_pot_dir /home/calcms/website/agenda/planung/pot/ + admin_pot_dir ${BASE_DIR}/agenda/planung/pot/ - result_limit 500 @@ -105,7 +89,7 @@ project Corax no_new_comments_before 10 no_new_comments_after 60 - # hide_event_images 1 + hide_event_images 0 From 655957922e95c170a265813a3f773f13486f408c Mon Sep 17 00:00:00 2001 From: Milan Date: Fri, 10 Apr 2020 09:29:59 +0200 Subject: [PATCH 138/391] fixup! copy current state of medienstaatsvertrag.org, to be verified --- tools/update_page.sh | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/tools/update_page.sh b/tools/update_page.sh index 525ff38..728eac3 100755 --- a/tools/update_page.sh +++ b/tools/update_page.sh @@ -1,28 +1,4 @@ #!/bin/sh perl -I /home/calcms/lib/calcms update_program.pl - -exit; - -##clear cache -##echo "cd /home/radio/radio/agenda/admin;perl clear_cache.cgi online=0" -#cd /home/radio/radio/agenda/admin -#perl clear_cache.cgi online=0 - -##get current layout -##cd /home/radio/calcms -##perl preload_agenda.pl read /home/radio/radio/agenda/index.html - -##cd /home/radio/calcms/ -##perl preload_agenda.pl replace /home/radio/radio/sites/default/files/programm.html; -##perl preload_agenda.pl replace /home/radio/radio/programm.html; -# -##update cache (important for night hours!) -##echo "cd /home/radio/radio/agenda;perl aggregate.cgi date=today 2>/dev/null > /home/radio/radio/agenda/programm.html " -#cd /home/radio/radio/agenda; #perl -I /home/radio/calcms/calcms aggregate.cgi date=today 2>/dev/null > /home/radio/radio/agenda/programm.html -# -#find /home/radio/radio/agenda/cache/ -type f -exec chmod 664 {} \; 2>/dev/null -#find /home/radio/radio/agenda/cache/ -type f -exec chgrp www-data {} \; 2>/dev/null -# - From fffe3899dfcba1ec083515a6bdc0619a9400639c Mon Sep 17 00:00:00 2001 From: Milan Date: Fri, 10 Apr 2020 09:30:51 +0200 Subject: [PATCH 139/391] aggregate.cgi: refactor --- website/agenda/aggregate.cgi | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 895cee6..af688fc 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -102,7 +102,7 @@ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\{project_title} = '' unless ( defined $list->{project_title} ); + $list->{project_title} = '' unless defined $list->{project_title}; $content =~ s/(<(div|span)\s+id="calcms_title".*?>).*?(<\/(div|span)>)/$list->{project_title}/g; my $values = []; @@ -124,13 +124,6 @@ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\) - #my @parts = split( /<\/head>/, $content ); - #$parts[0] =~ s|/misc/jquery.js|/agenda_files/js/jquery.min.js|; - #$parts[0] =~ s|/sites/default/files/js/[a-z0-9\_]+\.js|/agenda_files/js/jquery.min.js|; - #$content = join( '', @parts ); - print $output_header; print $content; $content = undef; From 2a8906b59839d32b048c076ab3df7d51a0834ef1 Mon Sep 17 00:00:00 2001 From: Milan Date: Fri, 10 Apr 2020 09:31:48 +0200 Subject: [PATCH 140/391] update documentation update configuration using variables use markdown --- install/INSTALL.md | 337 ++++++++++++++++++++++++--------------------- 1 file changed, 177 insertions(+), 160 deletions(-) diff --git a/install/INSTALL.md b/install/INSTALL.md index 477f2ab..a01aaae 100644 --- a/install/INSTALL.md +++ b/install/INSTALL.md @@ -1,123 +1,128 @@ -==== database setup ==== +# setup database -=== create database === +## create database - mysqladmin -u root -p create calcms_test + mysqladmin -u root -p create calcms -=== create users === +### start mysql with root permissions - mysql -u root -p + mysql -u root -p if using plesk, use - mysql -u admin mysql -p`cat /etc/psa/.psa.shadow` + mysql -u admin mysql -p`cat /etc/psa/.psa.shadow` -# calcms_admin +We use different accounts for different purposes. +Please change the passwords config after "INDENTIFIED BY" ! -CREATE USER 'calcms_admin'@'localhost' IDENTIFIED BY 'taes9Cho'; -GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON *.* TO 'calcms_admin'@'localhost' IDENTIFIED BY 'taes9Cho'; -GRANT ALL PRIVILEGES ON `calcms_test`.* TO 'calcms_admin'@'localhost'; +#### create admin account -# calcms_write / for users + CREATE USER 'calcms_admin'@'localhost' IDENTIFIED BY 'taes9Cho'; + GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON *.* TO 'calcms_admin'@'localhost' IDENTIFIED BY 'taes9Cho'; + GRANT ALL PRIVILEGES ON `calcms_test`.* TO 'calcms_admin'@'localhost'; -CREATE USER 'calcms_write'@'localhost' IDENTIFIED BY 'Toothok8'; -GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'calcms_write'@'localhost' IDENTIFIED BY 'Toothok8'; -GRANT ALL PRIVILEGES ON `calcms_test`.* TO 'calcms_write'@'localhost'; +#### create editor account -# calcms_read / for all + CREATE USER 'calcms_write'@'localhost' IDENTIFIED BY 'Toothok8'; + GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'calcms_write'@'localhost' IDENTIFIED BY 'Toothok8'; + GRANT ALL PRIVILEGES ON `calcms_test`.* TO 'calcms_write'@'localhost'; -CREATE USER 'calcms_read'@'localhost' IDENTIFIED BY 'Ro2chiya'; -GRANT SELECT ON *.* TO 'calcms_read'@'localhost' IDENTIFIED BY 'Ro2chiya' ; -GRANT ALL PRIVILEGES ON `calcms_test`.* TO 'calcms_read'@'localhost'; +#### create read-only account -=== deploy time zones === + CREATE USER 'calcms_read'@'localhost' IDENTIFIED BY 'Ro2chiya'; + GRANT SELECT ON *.* TO 'calcms_read'@'localhost' IDENTIFIED BY 'Ro2chiya' ; + GRANT ALL PRIVILEGES ON `calcms_test`.* TO 'calcms_read'@'localhost'; - mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p +### import database content -if using plesk, use + mysql -u calcms_admin -p calcms < ./install/create.sql - mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u admin mysql -p`cat /etc/psa/.psa.shadow` + mysql -u calcms_admin -p calcms < ./install/migrate.sql -=== create database content === +## Apache HTTP Server Setup -mysql -u calcms_admin -p calcms_test < ./install/create.sql +### install mod_perl -==== Apache HTTP Server Setup (at /etc/conf/apache2/ server settings or vhost settings) ==== +install apache2 + + apt install apache2 -=== install mod_perl === +install apache2 rewrite -install + apt-get install libapache2-rewrite + a2enmod rewrite -libapache2-mod-perl2 -libapache2-reload-perl -libapache2-request-perl +install mod_perl2 + + apt install libapache2-mod-perl2 libapache2-reload-perl libapache2-request-perl + a2enmod perl or via cpan -Apache2::Reload -Apache2::Request + cpan install Apache2::Reload Apache2::Request + a2enmod perl -if mod_perl was installed already make sure it is enabled - ln -s /etc/apache2/mods-available/perl.load /etc/apache2/mods-enabled/perl.load +### Apache Configuration -=== enable mod_rewrite === - -install - -libapache2-rewrite - - ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load - -=== Apache Configuration ) === - -This has to be put into your apache server or virtual host configuration - -### START OF FILE ### +Virtual host configuration has to be placed at /etc/conf/apache2/. + + # adopt your settings here + Define domain your-domain.org + Define base_dir /home/calcms + Define perl_lib /home/radio/calcms # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. - LogLevel debug + LogLevel info - # init mod_perl (should be done at /etc/apache/mods-enabled/perl.load) - # LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so - - # redirect to inject calcms into website + # limit redirection on injecting into your website LimitInternalRecursion 4 - # enable this at HTTP configuration, but disable at HTTPS configuration (!) - Redirect permanent /agenda/planung https://calcms.medienstaatsvertrag.org/agenda/planung + # redirect HTTP to HTTPS, + # only needed for HTTP configuration, do not use this at HTTPS configuration(!) + Redirect permanent /agenda/planung https://${domain}/agenda/planung - # alias to inject calcms into website - Alias /agenda /home/calcms/website/agenda - Alias /agenda_files /home/calcms/website/agenda_files - Alias /programm /home/calcms/website/agenda/cache/programm + # inject calcms into your website + Alias /agenda ${base_dir}/website/agenda + Alias /programm ${base_dir}/website/programm + Alias /agenda_files ${base_dir}/website/agenda_files - + AllowOverride All Options -Indexes +FollowSymLinks +MultiViews +ExecCGI - Order allow,deny - Allow from all Require all granted - - AllowOverride All - Options -Indexes +FollowSymLinks +MultiViews +ExecCGI - Order allow,deny - Allow from all - Require all granted + + AllowOverride All + Options -Indexes +FollowSymLinks -MultiViews -ExecCGI + Require all granted + + + RewriteBase /programm + + RewriteEngine on + RewriteCond %{REQUEST_FILENAME} -f + RewriteRule (.*) $1 [L] + RewriteCond %{REQUEST_FILENAME} -d + RewriteRule (.*) $1 [L] + + RewriteRule ^kalender/(\d{4}-\d{2}-\d{2})_(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?from_date=$1&till_date=$2&$3 [L] + RewriteRule ^kalender/(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?date=$1&$2 [L] + RewriteRule ^sendungen/(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?date=$1&$2 [L] + RewriteRule ^sendung/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?event_id=$1&$2 [L] + RewriteRule ^sendung/serie_plus/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?next_series=$1&$2 [L] + RewriteRule ^sendung/serie_minus/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?previous_series=$1&$2 [L] + - + AllowOverride All Options -Indexes -FollowSymLinks -MultiViews -ExecCGI - Order allow,deny - Allow from all Require all granted - #mod_perl PerlSetEnv LC_ALL en_US.UTF-8 PerlSetEnv LANGUAGE en_US.UTF-8 @@ -127,114 +132,126 @@ This has to be put into your apache server or virtual host configuration PerlModule Apache2::Reload PerlInitHandler Apache2::Reload - #PerlSetVar ReloadAll Off + + # set local tmp dir + SetEnv TMPDIR ${base_dir}/tmp/ - SetEnv TMPDIR /var/tmp/ - - # set base library path - PerlSetEnv PERL5LIB /home/calcms/lib/calcms/ - PerlPostConfigRequire /home/calcms/lib/calcms/startup.pl + # set library directory + PerlSetEnv PERL5LIB ${base_dir}/lib/calcms/ + + # preload libraries + PerlPostConfigRequire ${base_dir}/lib/calcms/startup.pl -#### END_OF_FILE #### +### install required perl modules -=== install required perl modules === - -For debian/ubuntu there are packages for most required modules. -If you cannot install packages you can use the CPAN perl package install. -For Image::Magick::Square no deb package exists, you need to install it by "cpan Image::Magick::Square" +There are debian packages for most required perl modules. +You can install CPAN packages, if you cannot use debian packages. +For example there is no debian package for Image::Magick::Square, so you can install it by "cpan Image::Magick::Square". apt-get install -== Install by deb package == +#### install debian packages -mariadb-server -build-essentials -libapreq2-3 -libapache-dbi-perl -libauthen-passphrase-blowfish-perl -libcalendar-simple-perl -libcgi-pm-perl -libcgi-session-perl -libconfig-general-perl -libdatetime-perl -libdate-calc-perl -libdate-manip-perl -libdbi-perl -libdbd-mysql-perl -libencode-perl -libjson-perl -libhtml-formattext-withlinks-andtables-perl -libhtml-parser-perl -libhtml-template-perl -libhtml-template-compiled-perl -libmime-base64-urlsafe-perl -libtext-wikicreole-perl -liburi-escape-xs-perl -perlmagick + mariadb-server + build-essentials + libapreq2-3 + libapache-dbi-perl + libauthen-passphrase-blowfish-perl + libcalendar-simple-perl + libcgi-pm-perl + libcgi-session-perl + libconfig-general-perl + libdatetime-perl + libdate-calc-perl + libdate-manip-perl + libdbi-perl + libdbd-mysql-perl + libencode-perl + libjson-perl + libhtml-formattext-withlinks-andtables-perl + libhtml-parser-perl + libhtml-template-perl + libhtml-template-compiled-perl + libmime-base64-urlsafe-perl + libtext-wikicreole-perl + liburi-escape-xs-perl + perlmagick -== Install by CPAN perl packages == +#### Install CPAN packages - cpan + cpan -Apache2::Upload -Apache::DBI -Authen::Passphrase -Authen::Passphrase::BlowfishCrypt -Calendar::Simple -CGI::Simple -CGI::Session -CGI -CGI::Carp -CGI::Cookie -Config::General -Data::Dumper -DateTime -Date::Calc -Date::Manip -DBD::mysql -DBI -Encode -File::stat -HTML::FormatText -HTML::Parse -HTML::Template -HTML::Template::Compiled -HTML::Template::Compiled::Plugin::XMLEscape -JSON -MIME::Base64 -MIME::Lite -Text::Diff::FormatedHtml -Text::WikiCreole -Time::Local -Time::localtime -URI::Escape -Image::Magick -Image::Magick::Square + Apache2::Reload + Apache2::Request + Apache2::Upload + Apache::DBI + Authen::Passphrase + Authen::Passphrase::BlowfishCrypt + Calendar::Simple + CGI + CGI::Carp + CGI::Cookie + CGI::Session + CGI::Simple + Config::General + Data::Dumper + Date::Calc + Date::Manip + DateTime + DBD::mysql + DBI + Digest::MD5 + Encode::Locale + HTML::Entities + HTML::FormatText + HTML::Parse + HTML::Template::Compiled + HTML::Template::Compiled::Plugin::XMLEscape + Image::Magick + Image::Magick::Square + JSON + MIME::Lite + ModPerl::Util + Session::Token + Text::Diff::FormatedHtml + Text::Markdown + Text::WikiCreole + URI::Escape -==== Configure ==== +#### Configuration edit configuration at website/config/config.cgi -==== inject calcms into any CMS ==== +Now you can connect to web gui -to frequently update calcms integration create a cronjob to run tools/update_page.sh - -you may have to update the paths inside update_page.sh - -=== connect to Admin interface - -https://localhost/agenda/planung/ +https:///agenda/planung/ ccAdmin shug!3Lu -=== how to migrate schema from one version to another one +# inject calcms into your website -cat calcmsOld.sql | mysql -u root calcmsOld -cat calcmsNew.sql | mysql -u root calcmsNew +calcms uses a copy of your web page as a template to have the same layout as your web site. +To update calcms content create a cronjob to run tools/update_page.sh -mysqldiff --force --changes-for=server2 --difftype=sql calcmsOld:calcmsNew > migrate.sql -# make sure lines with "modified_at" contain "ON UPDATE CURRENT_TIMESTAMP" -# for example: `modified_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -cat migrate | mysql -u root calcms +you may have to update the paths inside update_page.sh +# how-to + +## update time zones + + mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p + +if using plesk, use + + mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u admin mysql -p`cat /etc/psa/.psa.shadow` + +## create database schema deltas for updates + + cat calcmsOld.sql | mysql -u root calcmsOld + cat calcmsNew.sql | mysql -u root calcmsNew + mysqldiff --force --changes-for=server2 --difftype=sql calcmsOld:calcmsNew > migrate.sql + # make sure lines with "modified_at" contain "ON UPDATE CURRENT_TIMESTAMP" + # for example: `modified_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + cat migrate | mysql -u root calcms + From 7fcc2d178973e1711f91b1afe38a53cba51aa55a Mon Sep 17 00:00:00 2001 From: Milan Date: Fri, 10 Apr 2020 09:33:08 +0200 Subject: [PATCH 141/391] remove cache directory directories for file-based cache are removed as the feature has been removed. --- website/agenda/cache/.htaccess | 2 -- website/agenda/cache/kalender/README.md | 2 -- website/agenda/cache/kommentare/README.md | 2 -- website/agenda/cache/programm/.htaccess | 35 ------------------- .../agenda/cache/programm/kalender/README.md | 2 -- .../cache/programm/kommentare/README.md | 2 -- .../agenda/cache/programm/sendung/README.md | 2 -- .../agenda/cache/programm/sendungen/README.md | 2 -- website/agenda/cache/sendung/README.md | 2 -- website/agenda/cache/sendungen/README.md | 2 -- 10 files changed, 53 deletions(-) delete mode 100644 website/agenda/cache/.htaccess delete mode 100644 website/agenda/cache/kalender/README.md delete mode 100644 website/agenda/cache/kommentare/README.md delete mode 100644 website/agenda/cache/programm/.htaccess delete mode 100644 website/agenda/cache/programm/kalender/README.md delete mode 100644 website/agenda/cache/programm/kommentare/README.md delete mode 100644 website/agenda/cache/programm/sendung/README.md delete mode 100644 website/agenda/cache/programm/sendungen/README.md delete mode 100644 website/agenda/cache/sendung/README.md delete mode 100644 website/agenda/cache/sendungen/README.md diff --git a/website/agenda/cache/.htaccess b/website/agenda/cache/.htaccess deleted file mode 100644 index 372a2e2..0000000 --- a/website/agenda/cache/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -Require all denied - diff --git a/website/agenda/cache/kalender/README.md b/website/agenda/cache/kalender/README.md deleted file mode 100644 index cf34370..0000000 --- a/website/agenda/cache/kalender/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# racalmas -radio calendar management system diff --git a/website/agenda/cache/kommentare/README.md b/website/agenda/cache/kommentare/README.md deleted file mode 100644 index cf34370..0000000 --- a/website/agenda/cache/kommentare/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# racalmas -radio calendar management system diff --git a/website/agenda/cache/programm/.htaccess b/website/agenda/cache/programm/.htaccess deleted file mode 100644 index 09f0c76..0000000 --- a/website/agenda/cache/programm/.htaccess +++ /dev/null @@ -1,35 +0,0 @@ - - RewriteBase /programm - - RewriteEngine on - RewriteCond %{REQUEST_FILENAME} -f - RewriteRule (.*) $1 [L] - RewriteCond %{REQUEST_FILENAME} -d - RewriteRule (.*) $1 [L] - - RewriteRule ^kalender/(\d{4}-\d{2}-\d{2})_(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?from_date=$1&till_date=$2&$3 [L] - RewriteRule ^kalender/(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?date=$1&$2 [L] - RewriteRule ^sendungen/(\d{4}-\d{2}-\d{2})\.html[\?]?(.*)$ /agenda/aggregate.cgi?date=$1&$2 [L] - # RewriteRule ^sendung/(\d+)\.html/[^&]*(&.*)?$ /agenda/aggregate.cgi?event_id=$1&$2 [L] - RewriteRule ^sendung/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?event_id=$1&$2 [L] - RewriteRule ^sendung/serie_plus/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?next_series=$1&$2 [L] - RewriteRule ^sendung/serie_minus/(\d+)\.html[\?]?(.*)$ /agenda/aggregate.cgi?previous_series=$1&$2 [L] - - -Options -Indexes +FollowSymLinks +MultiViews +ExecCGI - - - - SetHandler perl-script - PerlHandler ModPerl::RegistryPrefork - PerlSendHeader On - Options +ExecCGI - - - - - AddHandler cgi-script .cgi .pl - - -Require all granted - diff --git a/website/agenda/cache/programm/kalender/README.md b/website/agenda/cache/programm/kalender/README.md deleted file mode 100644 index cf34370..0000000 --- a/website/agenda/cache/programm/kalender/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# racalmas -radio calendar management system diff --git a/website/agenda/cache/programm/kommentare/README.md b/website/agenda/cache/programm/kommentare/README.md deleted file mode 100644 index cf34370..0000000 --- a/website/agenda/cache/programm/kommentare/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# racalmas -radio calendar management system diff --git a/website/agenda/cache/programm/sendung/README.md b/website/agenda/cache/programm/sendung/README.md deleted file mode 100644 index cf34370..0000000 --- a/website/agenda/cache/programm/sendung/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# racalmas -radio calendar management system diff --git a/website/agenda/cache/programm/sendungen/README.md b/website/agenda/cache/programm/sendungen/README.md deleted file mode 100644 index cf34370..0000000 --- a/website/agenda/cache/programm/sendungen/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# racalmas -radio calendar management system diff --git a/website/agenda/cache/sendung/README.md b/website/agenda/cache/sendung/README.md deleted file mode 100644 index cf34370..0000000 --- a/website/agenda/cache/sendung/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# racalmas -radio calendar management system diff --git a/website/agenda/cache/sendungen/README.md b/website/agenda/cache/sendungen/README.md deleted file mode 100644 index cf34370..0000000 --- a/website/agenda/cache/sendungen/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# racalmas -radio calendar management system From bec3b9c89829c04b82a7da2d280988c82df210dd Mon Sep 17 00:00:00 2001 From: Milan Date: Wed, 15 Apr 2020 21:32:58 +0200 Subject: [PATCH 142/391] list events from predecessor series if the predecessor series id set at the series form, the list of events includes the predecessor dates. This can help to get an overview, if the series moved to another project or studio, or editors change continue their work in another series. --- website/agenda/planung/calendar.cgi | 45 ++++++++++++++++++++----- website/agenda/planung/css/calendar.css | 10 +++++- 2 files changed, 45 insertions(+), 10 deletions(-) diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 6302da7..c7b0044 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -262,14 +262,10 @@ sub showCalendar { # recalc after break (for list only?) for my $event (@$events) { - - #if ($event->{splitCount}>0){ delete $event->{day}; delete $event->{start_date}; delete $event->{end_date}; $event = events::calc_dates( $config, $event ); - - #} } my $events_by_start = {}; @@ -457,7 +453,30 @@ sub showCalendar { } push @$events, $date; } - + + # series dates + if ($params->{list} == 1){ + my $series = series::get( + $config, + { + #project_id => $project_id, + #studio_id => $studio_id, + series_id => $options->{series_id} + } + ); + if ((defined $series->[0]) && ( $series->[0]->{predecessor_id})){ + my $events2 = getSeriesEvents( $config, $request, { + series_id => $series->[0]->{predecessor_id} + }, $params ); + + for my $event (@$events2) { + delete $event->{day}; + delete $event->{start_date}; + delete $event->{end_date}; + push @$events, events::calc_dates( $config, $event ); + } + } + } } #output @@ -482,8 +501,6 @@ sub showCalendar { #sort events by start @$events = sort { $a->{start} cmp $b->{start} } @$events; - #for my $date(@$events){debugDate($date);} - #separate by day (e.g. to 6 pm) my $events_by_day = {}; for my $event (@$events) { @@ -730,6 +747,8 @@ sub showEventList { $draftIcon $liveIcon $archiveIcon + project + studio @@ -746,8 +765,8 @@ sub showEventList { #schedules with matching date are marked to be hidden in find_errors next if defined $event->{hide}; - $event->{project_id} = $params->{project_id}; - $event->{studio_id} = $params->{studio_id}; + $event->{project_id} //= $params->{project_id}; + $event->{studio_id} //= $params->{studio_id}; $event->{series_id} = '-1' unless defined $event->{series_id}; $event->{event_id} = '-1' unless defined $event->{event_id}; my $id = @@ -817,6 +836,12 @@ sub showEventList { my $title = $event->{title}; $title .= ': ' . $event->{user_title} if $event->{user_title} ne ''; + + my $other_studio = $params->{studio_id} ne $event->{studio_id}; + my $other_project = $params->{project_id} ne $event->{project_id}; + $class.=' predecessor' if $other_project or $other_studio; + $other_studio = '' if $other_studio; + $other_project = '' if $other_project; $out .= qq!! @@ -833,6 +858,8 @@ sub showEventList { . qq!$draft! . qq!$live! . qq!$archived! + . qq!$event->{project_name} $other_studio! + . qq!$event->{studio_name} $other_studio! . qq!! . "\n"; } $i++; diff --git a/website/agenda/planung/css/calendar.css b/website/agenda/planung/css/calendar.css index e854f80..222a4b6 100644 --- a/website/agenda/planung/css/calendar.css +++ b/website/agenda/planung/css/calendar.css @@ -528,4 +528,12 @@ div.play .error { margin: 1px; border-radius: 4px; text-align: center; -} \ No newline at end of file +} + +#content tr.event.predecessor{ + #background:#f0cccc; + opacity:0.5; +} +#content tr.event.predecessor:hover{ + #background:#fdcccc +} From 3474c6b88f69185cd1bcb0ca4a0d286e6e4fa17f Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 19 Apr 2020 15:39:30 +0200 Subject: [PATCH 143/391] roles.cgi: sort keys --- website/agenda/planung/roles.cgi | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 745ba01..6cb2200 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -110,7 +110,7 @@ sub save_roles { #initialize all value ids (given by params matching to database columns) my $values = {}; - for my $param ( keys %$params ) { + for my $param ( sort keys %$params ) { if ( $param =~ /(.+?)\_(\d+)?$/ ) { my $column = $1; my $id = $2 || ''; @@ -120,7 +120,7 @@ sub save_roles { } #init checkbox values with 0 - for my $id ( keys %$values ) { + for my $id ( sort keys %$values ) { if ( update_allowed( $permissions, $role_by_id, $id ) ) { for my $column ( keys %$columns ) { next @@ -135,11 +135,11 @@ sub save_roles { } #set all checkbox values to 1 - for my $param ( keys %$params ) { + for my $param ( sort keys %$params ) { if ( $param =~ /(.+?)\_(\d+)?$/ ) { my $column = $1; my $id = $2 || ''; - next unless ( defined $columns->{$column} ); + next unless defined $columns->{$column}; if ( update_allowed( $permissions, $role_by_id, $id ) ) { my $value = $params->{$param} || ''; if ( $column eq 'level' ) { @@ -190,7 +190,7 @@ sub save_roles { if ( $id eq '' ) { #insert role - next if ( $role->{role} eq '' ); + next if $role->{role} eq ''; if ( defined $role_from_db ) { uac::print_error("a role with name '$role->{role}' already exists!"); next; @@ -387,8 +387,6 @@ sub sort_columns { my $index = $groups->{$group} || 0; $index += $actions->{$action} if defined $actions->{$action}; $column_level->{$column} = $index; - - # print $index."
      "; } my @columns = sort { $column_level->{$a} <=> $column_level->{$b} } ( keys %$column_level ); From cbb4b64ec08258b171ec9cfc78dc1e6943669de8 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 19 Apr 2020 15:41:29 +0200 Subject: [PATCH 144/391] update jquery --- website/agenda/js/jquery.min.js | 4 ++-- website/agenda/planung/js/jquery.min.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/website/agenda/js/jquery.min.js b/website/agenda/js/jquery.min.js index 806817a..cd609ae 100644 --- a/website/agenda/js/jquery.min.js +++ b/website/agenda/js/jquery.min.js @@ -1,3 +1,3 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="
      ",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 Date: Sat, 25 Apr 2020 15:55:27 +0200 Subject: [PATCH 145/391] remove unused javascript code --- website/agenda/js/calcms.cust.js | 237 +------------------------------ website/agenda/js/calcms.js | 190 +------------------------ 2 files changed, 7 insertions(+), 420 deletions(-) diff --git a/website/agenda/js/calcms.cust.js b/website/agenda/js/calcms.cust.js index 4979ed2..15ad980 100644 --- a/website/agenda/js/calcms.cust.js +++ b/website/agenda/js/calcms.cust.js @@ -179,236 +179,14 @@ var calcms_settings = new Array(); $("#result").load(editorsUrl) } } - } - /* - function insertDeskDetails() { - var pattern = new RegExp(/redaktion\/(.*)$/); - var matchs = pattern.exec(document.location.href); - if ((matchs != null) && (matchs.length > 0) && (matchs[1] != '')) { - var desk = $('#center h2:first').text(); - desk = desk.replace('Redaktion: ', ''); - desk = escape(desk); - $('#center .content').append( - '
      ' + '«letzte«' - + ' Sendungen ' - + '»nächste»' - + '
      ' + '
      '); - } - } - */ - - /* - function fixBlogEntries() { - if (document.location.href.match('/redaktionen/') - || document.location.href.match('/redaktionen?') - || document.location.href.match('/redaktionen$')) { - $('img.image-thumbnail').css('width', '3em'); - $('img.image-thumbnail').css('height', '3em'); - $('div.image-attach-teaser').css('width', '3em'); - $('div.node').css('padding', '0'); - $('div.node').css('margin', '0'); - $('#center .submitted').remove(); - $('#center .clear-block h2 a') - .each( - function(index) { - $(this) - .html( - $(this) - .text() - .replace('Redaktion: ', - 'Redaktion: ')); - if ($(this).text().match(/Information:/)) - $(this).remove(); - }) - - } - } - */ - - /* - function setImageSize() { - var image = '#calcms_list div.content img'; - var size = $(window).width(); - size = Math.floor(size * 0.16); - $(image).css('width', size + 'px'); - $(image).css('height', size + 'px'); - if (size > 200) { - $(image).each(function(index) { - var url = $(this).attr('src'); - if (url != null) { - url = url.replace('/thumbs/', '/images/'); - console.log(url); - $(this).attr('src', url); - } - }); - } else { - $(image).each(function(index) { - var url = $(this).attr('src'); - if (url != null) { - url = url.replace('/images/', '/thumbs/'); - $(this).attr('src', url); - } - }); - } - } - */ - - function setThumbs() { - $('#calcms_playlist img').each(function(index) { - var url = $(this).attr('src'); - if (url != null) { - url = url.replace('/images/', '/thumbs/'); - $(this).attr('src', url); - } - }); - } - - /* - function addCommentsOnAgendaPages() { - if (calcms.contains(window.location.href, '/programm/') - || calcms.contains(window.location.href, '/agenda/')) { - $('#sidebar-right') - .append( - '

      Kommentare

      ' - + '
      Bitte warten…
      ' - + '
      '); - } - } - */ - - function scrollNextEvent() { - if ($('#calcms_running_event').length == 0) - return; - $('#playlist_container').scrollLeft(0); - setInterval(nextSlideEvent, 10000); - } - - var numberOfComingShows = 100; - var slideCount = 0; - var slideOffset = 1; - var slideEvents = 1; - - // slideEvents will be updated at onmouseenter/leave handler at - // playlist_long - function nextSlideEvent() { - if (slideEvents == 0) - return; - if ($('#coming_shows a').length == 0) - return; - if (slideCount == 0) { - numberOfComingShows = $('#coming_shows a').length; - $('#playlist_container').scrollLeft(0) - $('#playlist_container').css('overflow', 'auto'); - $('#playlist_container').css('-webkit-overflow-scrolling', 'touch'); - $('#playlist_container').css('height', '150'); - $('#coming_shows').css('white-space', 'nowrap'); - $('#coming_shows').css('overflow-x', 'hidden'); - $('#coming_shows').css('height', '150'); - } - - // console.log(slideCount+" "+slideOffset) - $('#playlist_container').animate({ - scrollLeft : slideCount * 115 + "px" - }, 5000); - - if (slideCount < 0) - slideOffset = 1 - if (slideCount > numberOfComingShows + 1 - $('#coming_shows').width() - / 100) - slideOffset = -1 - slideCount += slideOffset; - } - - function mobilise() { - if (!navigator.userAgent.match(/Mobi/)) - return; - - $('#wrapper #container #sidebar-left').before( - $('#wrapper #container #center')); - $('#wrapper #container #sidebar-left').before( - $('#wrapper #container #sidebar-right')); - - $('body.sidebars').css('min-width', '100%'); - $('body.sidebar-left').css('min-width', '100%'); - $('body.sidebar-right').css('min-width', '100%'); - - $('#wrapper #container .sidebar').css('width', '100%'); - $('#wrapper #container').css('width', '100%'); - $('#wrapper #container').css('max-width', '100%'); - $('#wrapper #container').css('margin', '0'); - $('#wrapper #container').css('padding', '0'); - - $('#center').css('margin', '0'); - $('#center #squeeze').css('margin', '0'); - $('#center *').css('margin-left', '0'); - $('#center *').css('margin-right', '0'); - $('#center .right-corner').css('position', 'static'); - $('#center .right-corner').css('left', '0'); - $('#center .right-corner').css('padding-left', '0'); - $('#center .right-corner').css('padding-right', '0'); - $('#center .right-corner').css('background-image', 'url()'); - $('#center .left-corner').css('position', 'static'); - $('#center .left-corner').css('padding-left', '0'); - $('#center .left-corner').css('padding-right', '0'); - $('#center .left-corner').css('background-image', 'url()'); - $('#center *').css('background-image', 'url()'); - - $('#wrapper #container #header').css('height', '100px'); - - var padding = '0.5em' - $('#center .left-corner').css('padding-left', padding); - $('#center .left-corner').css('padding-right', padding); - $('#wrapper #container #sidebar-left').css('padding-left', padding); - $('#wrapper #container #sidebar-left').css('padding-right', padding); - - // $('*').css('background','none'); - // $('#sidebar-left div.content').css('text-align','center'); - // $('#sidebar-left *').css('margin-left','0'); - // $('#sidebar-left *').css('margin-right','0'); - // $('#sidebar-right *').css('margin-left','0'); - // $('#sidebar-right *').css('margin-right','0'); - // $('#sidebar-left').css('width','90%'); - $('.node').css('padding-left', '0'); - $('.node').css('padding-right', '0'); - - $('#calcms_search input').css("padding", "1em"); - $('#calcms_search select').css("padding", "1em"); - - var menu = "ul.links.primary-links"; - $(menu).addClass('mobileMenu'); - $(menu).before('
      '); - $(menu).hide(); - - var menu2 = "ul.links.secondary-links"; - $(menu2).each(function() { - $(menu).append($(this).html()); - }) - $(menu2).remove(); - - $('#calcms_calendar table').css('width', '90%'); - - // move footer down - var footer = $('#wrapper #footer').html(); - $('body').append(footer); - $('#wrapper #footer').remove(); - - $("#mobileMenuButton").click(function() { - $(menu).slideToggle(); - return false; - }); - } - function initSearch() { var base = $('#calcms_search_show_details'); var elem = $('#calcms_search_show_details #plus'); if (elem.length == 0) { base.append(''); base.prepend(''); - } } @@ -434,26 +212,13 @@ var calcms_settings = new Array(); } } - function initAll() { + $(document).ready(function() { initCalcms(); //initWordpress(); - //addCommentsOnAgendaPages(); calcms.showPlaylist(); calcms.showNewestComments(); - // insertDeskDetails(); - // fixBlogEntries(); - calcms.removeCurrentPlayingHeader(); - // setImageSize(); - // setThumbs(); - // scrollNextEvent(); - //initSlider(); - // mobilise(); initSearch(); console.log("calcms inited") - } - - $(document).ready(function() { - initAll(); }); }(jQuery, calcms)); diff --git a/website/agenda/js/calcms.js b/website/agenda/js/calcms.js index 239752b..02743d0 100644 --- a/website/agenda/js/calcms.js +++ b/website/agenda/js/calcms.js @@ -3,21 +3,16 @@ var calcms = (function($) { var my = {}; // calcms base functions - // event handlers are customized at herbstradio.org - my.updateContainer = function updateContainer(id, url, onLoading, callback) { if (id == null) return; - if ($("#" + id).length == 0) + if (document.querySelector('#'+id).length == 0) return; - // if (onLoading)document.getElementById(id).innerHTML="lade ..."; $("#" + id).load(url, null, callback); } my.load = function load(url) { window.location.href = url; - // $(window).load(url); - // $('html').load(url); } my.postContainer = function postContainer(url, parameters, callback) { @@ -76,75 +71,6 @@ var calcms = (function($) { $("#calcms_search_field").val(''); } - // set calcms_settings to parameters from URL - my.evaluateParametersFromUrl = function evaluateParametersFromUrl() { - var location = new String(window.location); - - if (!location.match(my.get("base_url"))) - return; - - if (window.location.search != "") { - var parameters = window.location.search.split("?")[1].split("&"); - for (var i = 0; i < parameters.length; i++) { - var pair = parameters[i]; - var name_values = pair.split("="); - if (name_values != null) { - // alert(name_values[0]+"="+name_values[1]); - // set(name_values[0],name_values[1]); - var element = document.getElementById(name_values[0]); - if (element != null) - element.value = name_values[1]; - } - } - } - - var sendung = /\/sendung\/(\d+)\//; - sendung.exec(location); - - if (RegExp.$1 != null && RegExp.$1 != '') { - // alert(RegExp.$1); - set('event_id', RegExp.$1); - set('last_event_id', my.get('event_id')); - } else { - - var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\/(\d)\//; - sendungen.exec(location); - if (RegExp.$1 != '' && RegExp.$2 != '' && RegExp.$3 != '') { - set('from_date', RegExp.$1); - set('till_date', RegExp.$2); - set('weekday', RegExp.$3); - } else { - - var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\//; - sendungen.exec(location); - if (RegExp.$1 != '' && RegExp.$2 != '') { - set('from_date', RegExp.$1); - set('till_date', RegExp.$2); - } else { - var sendungen = /\/sendungen\/(\d{4}\-\d{2}\-\d{2})\//; - sendungen.exec(location); - if (RegExp.$1 != '') { - set('date', RegExp.$1); - } - } - - } - - var kalender = /\/kalender\/(\d{4}\-\d{2}\-\d{2})\/(\d{4}\-\d{2}\-\d{2})\//; - kalender.exec(location); - if (RegExp.$1 != '' && RegExp.$2 != '') { - set('from_date', RegExp.$1); - set('till_date', RegExp.$2); - } else { - var kalender = /\/kalender\/(\d{4}\-\d{2}\-\d{2})\//; - kalender.exec(location); - if (RegExp.$1 != '') { - set('date', RegExp.$1); - } - } - } - } - // return URL from calcms_settings // parameters can be overwritten by field and value // This handles main controller interaction logics @@ -163,20 +89,16 @@ var calcms = (function($) { var date = my.get('date'); var month = my.get('month'); var weekday = my.get('weekday'); - var time_of_day = ''; var time = ''; - var program = my.get('program'); var series_name = my.get('series_name'); var category = my.get('category'); - var tag = my.get('tag'); var search_field = my.get('search'); // delete filters by current action if ((field == 'search' && search_field != '') || (field == 'category' && category != '') || (field == 'series_name' && series_name != '') - || (field == 'program' && program != '') || (field == 'tag') - && tag != '') { + ) { weekday = ''; date = ''; from_date = ''; @@ -195,12 +117,6 @@ var calcms = (function($) { program = ''; } - if (field == 'program') { - search_field = ''; - series_name = ''; - category = ''; - } - if (field == 'series_name') { search_field = ''; program = ''; @@ -215,9 +131,7 @@ var calcms = (function($) { weekday = ''; date = ''; category = ''; - program = ''; series_name = ''; - tags = ''; search_field = ''; } @@ -225,21 +139,13 @@ var calcms = (function($) { weekday = ''; date = ''; category = ''; - program = ''; series_name = ''; - tags = ''; search_field = ''; } if (field == 'weekday') { - /* - * if (month != ''){ from_date=month; - * till_date=month.substring(0,month.length-2)+"31" ; } - */ category = ''; - program = ''; series_name = ''; - tags = ''; search_field = ''; } @@ -248,30 +154,19 @@ var calcms = (function($) { from_date = ''; till_date = ''; category = ''; - program = ''; series_name = ''; - tags = ''; search_field = ''; } if (field == 'time') { if (time == 'null') { return - - - - - - - } else { weekday = ''; - time_of_day = ''; } } - if (field == 'month' || field == 'week' || field == 'weekday' - || field == 'time_of_day') { + if (field == 'month' || field == 'week' || field == 'weekday') { time = ''; } @@ -313,20 +208,6 @@ var calcms = (function($) { url += '/'; } - if (time_of_day != '') { - url += "&time_of_day=" + time_of_day; - } else if (time != '' && time != 'null') { - url += "&" + time; - } - - if (tag != null && tag != '') { - url += "&tag=" + tag; - } - - if (program != null && program != '') { - url += "&program=" + program; - } - if (field == 'print') { url += "&print=1"; } @@ -558,7 +439,6 @@ var calcms = (function($) { // update menu and list by given date my.showEventsByDate = function showEventsByDate(date) { - // my.set('date',date); my.showMenuAndList('', 'date', date); return false; @@ -610,17 +490,6 @@ var calcms = (function($) { return false; } - // update menu, list and calendar widget by entries of given month YYYY-MM - // (current day) - my.showTodaysCalendarAndEvents = function showTodaysCalendarAndEvents(month) { - my.set('month', month); - // my.set(date,'today'); - my.showMenuAndList('', 'date', 'today'); - my.showCalendar('', 'month'); - return false; - - }; - // update menu, list and calendar widget by entries of given month YYYY-MM my.showCalendarAndEventsByMonth = function showCalendarAndEventsByMonth( month) { @@ -631,17 +500,6 @@ var calcms = (function($) { }; - // update menu, list and calendar widget by entries of given date YYYY-MM-DD - my.showCalendarAndEventsByDate = function showCalendarAndEventsByDate(date) { - my.set('date', date); - my.showMenuAndList('', 'date'); - - my.set('month', date); - my.showCalendar('', 'month'); - return false; - - }; - // end of Calendar actions // show comment for given event id and start time @@ -699,9 +557,9 @@ var calcms = (function($) { html += '' html += '
      '; - document.getElementById(id).innerHTML = html - - my.show(id); + document.getElementById(id).innerHTML = html; + $("#" + id).show("drop"); + document.getElementById(id).style.visibility = "visible"; } // end of Comment actions @@ -723,7 +581,6 @@ var calcms = (function($) { // export selected events to ical my.exportSelectedToICal = function exportSelectedToICal() { window.location = my.get('ical_url') + my.setAndGetUrlParameters(); - ; return false; } @@ -745,41 +602,6 @@ var calcms = (function($) { return false; } - // wrapper to show an id - my.show = function show(id) { - $("#" + id).show("drop"); - document.getElementById(id).style.visibility = "visible"; - // document.getElementById(id).style.display="block"; - } - - // wrapper to hide an id - my.hide = function hide(id) { - $("#" + id).hide("drop"); - document.getElementById(id).style.visibility = "hidden"; - // document.getElementById(id).style.display="none"; - } - - // return max date - my.setDateIfBefore = function setDateIfBefore(date1, date2) { - if (date1 < date2) - return date2; - return date1; - } - - // return min date - my.setDateIfAfter = function setDateIfAfter(date1, date2) { - if (date1 > date2) - return date2; - return date1; - } - - // remove Drupal header for currently playing entry at topic overview page - my.removeCurrentPlayingHeader = function removeCurrentPlayingHeader() { - $("h2 a[href$='/testing']").each(function() { - $(this).css("display", "none"); - }); - } - // return instance return my; }(jQuery)); From 051f8bd8f7fc475bd77169722ff583f7c822effc Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 25 Apr 2020 21:46:46 +0200 Subject: [PATCH 146/391] remove category selectbox from GUI --- website/agenda/js/calcms.js | 69 ++----------------------------------- 1 file changed, 3 insertions(+), 66 deletions(-) diff --git a/website/agenda/js/calcms.js b/website/agenda/js/calcms.js index 02743d0..1bad7ec 100644 --- a/website/agenda/js/calcms.js +++ b/website/agenda/js/calcms.js @@ -91,12 +91,10 @@ var calcms = (function($) { var weekday = my.get('weekday'); var time = ''; var series_name = my.get('series_name'); - var category = my.get('category'); var search_field = my.get('search'); // delete filters by current action if ((field == 'search' && search_field != '') - || (field == 'category' && category != '') || (field == 'series_name' && series_name != '') ) { weekday = ''; @@ -106,13 +104,6 @@ var calcms = (function($) { } if (field == 'search') { - category = ''; - series_name = ''; - program = ''; - } - - if (field == 'category') { - search_field = ''; series_name = ''; program = ''; } @@ -120,7 +111,6 @@ var calcms = (function($) { if (field == 'series_name') { search_field = ''; program = ''; - category = ''; } if (field == 'month') { @@ -130,7 +120,6 @@ var calcms = (function($) { } weekday = ''; date = ''; - category = ''; series_name = ''; search_field = ''; } @@ -138,13 +127,11 @@ var calcms = (function($) { if (field == 'week') { weekday = ''; date = ''; - category = ''; series_name = ''; search_field = ''; } if (field == 'weekday') { - category = ''; series_name = ''; search_field = ''; } @@ -153,7 +140,6 @@ var calcms = (function($) { weekday = ''; from_date = ''; till_date = ''; - category = ''; series_name = ''; search_field = ''; } @@ -196,10 +182,6 @@ var calcms = (function($) { url += "/suche/" + search_field; } - if (category != null && category != '') { - url += "/kategorie/" + category; - } - if (series_name != null && series_name != '') { url += "/sendereihe/" + series_name; } @@ -219,22 +201,7 @@ var calcms = (function($) { return url; } - // show current project categories - my.showProjectCategories = function showProjectCategories(project) { - var projectJsName = calcms.getJsName(project); - $('#calcmsCategoryForm select').each(function() { - var id = $(this).attr('id'); - if (id == "calcms_category_" + projectJsName) { - if ($(this).css('display') == 'none') - $(this).show(); - } else { - if ($(this).css('display') != 'none') - $(this).hide(); - } - }); - } - - // show current series categories + // show current series my.showProjectSeriesNames = function showProjectSeriesNames(project) { var projectJsName = calcms.getJsName(project); $('#calcmsSeriesNamesForm select').each(function() { @@ -257,16 +224,14 @@ var calcms = (function($) { return project.val(); } - // remove projects from form without categories and series_names + // remove projects from form without series_names my.removeEmptyProjects = function removeEmptyProjects() { $('#calcms_project option').each( function() { var project = $(this).val(); - var hasCategories = $('#calcms_category_' - + calcms.getJsName(project)).length; var hasSeries = $('#calcms_series_name_' + calcms.getJsName(project)).length; - if ((hasCategories == 0) && (hasSeries == 0)) { + if (hasSeries == 0) { $(this).remove(); } }); @@ -301,31 +266,6 @@ var calcms = (function($) { } } - // show all events for a given category - my.showEventsByCategory = function showEventsByCategory(value) { - if (value != '' && value != null) { - my.updateContainer('calcms_list', my.get('search_category_url') - + escape(value) + '/', 1); - } - } - - // show all events for a given project and category - my.showEventsByProjectAndCategory = function showEventsByProjectAndCategory( - project, category, archive) { - if (category != '' && category != null) { - var url = my.get('search_category_url'); - if (project != '' && project != null) - url += escape(project) + '/'; - if (category != '' && category != null) - url += escape(category) + '/'; - if (archive != null && archive == 0) - url += 'kommende/'; - if (archive != null && archive == 1) - url += 'vergangene/'; - my.updateContainer('calcms_list', url, 1); - } - } - // show all events for a given project and series my.showEventsByProjectAndSeriesName = function showEventsByProjectAndSeriesName( project, seriesName, archive) { @@ -587,13 +527,10 @@ var calcms = (function($) { // init search interface: load search form content if not loaded yet my.initSearch = function initSearch(target, field) { if (my.get('preloaded') == '') { - var category_url = my.get('category_url'); var program_url = my.get('program_url'); var series_name_url = my.get('series_name_url'); var debug = my.get('debug'); - if (category_url != null && category_url != '') - my.updateContainer('calcms_categories', category_url, 1); if (program_url != null && program_url != '') my.updateContainer('calcms_programs', program_url, 1); if (series_name_url != null && series_name_url != '') From 14c10e3be0b2a2ccf332fdba2139b297445c890c Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 25 Apr 2020 21:50:02 +0200 Subject: [PATCH 147/391] reformat javascript sources --- website/agenda/js/calcms.cust.js | 369 ++++++++++++++++--------------- website/agenda/js/calcms.js | 97 +++----- 2 files changed, 232 insertions(+), 234 deletions(-) diff --git a/website/agenda/js/calcms.cust.js b/website/agenda/js/calcms.cust.js index 15ad980..0c80360 100644 --- a/website/agenda/js/calcms.cust.js +++ b/website/agenda/js/calcms.cust.js @@ -2,208 +2,230 @@ var calcms_settings = new Array(); (function($, calcms) { - // show current project - calcms.selectProject = function selectProject() { - var project = calcms.getProject(); - console.log("project=" + project) + // show current project + calcms.selectProject = function selectProject() { + var project = calcms.getProject(); + console.log("project=" + project) - calcms.clearOnChangeArchive(); - calcms.showProjectCategories(project); - calcms.showProjectSeriesNames(project); - calcms.selectFirstOption('#calcms_series_name_' - + calcms.getJsName(project)); - calcms.selectFirstOption('#calcms_category_' - + calcms.getJsName(project)); - } + calcms.clearOnChangeArchive(); + calcms.showProjectSeriesNames(project); + calcms.selectFirstOption('#calcms_series_name_' + + calcms.getJsName(project)); + } - // search events - calcms.selectSearchEventListener = function selectSearchEventListener() { - var project = calcms.getProject(); + // search events + calcms.selectSearchEventListener = function selectSearchEventListener() { + var project = calcms.getProject(); - calcms.showSearchResultsByProject(project, calcms.getSearchElement() - .val(), calcms.isArchive()); - calcms.selectFirstOption('#calcms_series_name_' - + calcms.getJsName(project)); - calcms.selectFirstOption('#calcms_category_' - + calcms.getJsName(project)); + calcms.showSearchResultsByProject(project, calcms.getSearchElement() + .val(), calcms.isArchive()); + calcms.selectFirstOption('#calcms_series_name_' + + calcms.getJsName(project)); - calcms.registerOnChangeArchive(function() { - calcms.showSearchResultsByProject(project, calcms - .getSearchElement().val(), calcms.isArchive()); - }); - } + calcms.registerOnChangeArchive(function() { + calcms.showSearchResultsByProject(project, calcms + .getSearchElement().val(), calcms.isArchive()); + }); + } - // show events for selected category of project - calcms.selectCategory = function selectCategory(project, category) { - calcms.showEventsByProjectAndCategory(project, category, calcms - .isArchive()); - calcms.selectFirstOption('#calcms_series_name_' - + calcms.getJsName(project)); - calcms.resetSearch(); + // show events for selected series of project + calcms.selectSeries = function selectSeries(project, seriesName) { + calcms.showEventsByProjectAndSeriesName(project, seriesName, calcms + .isArchive()); + calcms.resetSearch(); - calcms.registerOnChangeArchive(function() { - calcms.showEventsByProjectAndCategory(project, category, calcms - .isArchive()); - }); - } + calcms.registerOnChangeArchive(function() { + calcms.showEventsByProjectAndSeriesName(project, seriesName, calcms + .isArchive()); + }); + } - // show events for selected series of project - calcms.selectSeries = function selectSeries(project, seriesName) { - calcms.showEventsByProjectAndSeriesName(project, seriesName, calcms - .isArchive()); - calcms.selectFirstOption('#calcms_category_' - + calcms.getJsName(project)); - calcms.resetSearch(); + // calendar events + calcms.selectMonthEventListener = function selectMonthEventListener(month) { + calcms.showCalendarAndEventsByMonth(month); + } - calcms.registerOnChangeArchive(function() { - calcms.showEventsByProjectAndSeriesName(project, seriesName, calcms - .isArchive()); - }); - } + calcms.selectWeekdayEventListener = function selectWeekdayEventListener( + start_date, end_date, weekday) { + calcms.showEventsByWeekday(start_date, end_date, weekday); + } - // calendar events - calcms.selectMonthEventListener = function selectMonthEventListener(month) { - calcms.showCalendarAndEventsByMonth(month); - } + calcms.selectDateRangeEventListener = function selectDateRangeEventListener( + from, till) { + calcms.showEventsByDateRange(from, till); + } - calcms.selectWeekdayEventListener = function selectWeekdayEventListener( - start_date, end_date, weekday) { - calcms.showEventsByWeekday(start_date, end_date, weekday); - } + calcms.selectDateEventListener = function selectDateEventListener(date) { + calcms.showEventsByDate(date); + } - calcms.selectDateRangeEventListener = function selectDateRangeEventListener( - from, till) { - calcms.showEventsByDateRange(from, till); - } + // initial initialize + function initCalcms() { + calcms.set('base_url', ''); - calcms.selectDateEventListener = function selectDateEventListener(date) { - calcms.showEventsByDate(date); - } + calcms.set('calendar_url', '/agenda/kalender'); + calcms.set('menu_url', '/agenda/menu'); - // initial initialize - function initCalcms() { - calcms.set('base_url', ''); + calcms.set('events_url', '/agenda/sendungen'); + calcms.set('list_url', '/agenda/sendung'); + calcms.set('next_series_url', '/programm/sendung/serie_plus'); + calcms.set('prev_series_url', '/programm/sendung/serie_minus'); - calcms.set('calendar_url', '/agenda/kalender'); - calcms.set('menu_url', '/agenda/menu'); + calcms.set('ical_url', '/agenda/ical'); + calcms.set('feed_url', '/agenda/feed/'); + calcms.set('playlist_url', '/agenda/playlist/'); - calcms.set('events_url', '/agenda/sendungen'); - calcms.set('list_url', '/agenda/sendung'); - calcms.set('next_series_url', '/programm/sendung/serie_plus'); - calcms.set('prev_series_url', '/programm/sendung/serie_minus'); + calcms.set('search_url', '/agenda/suche/'); + calcms.set('search_series_name_url', '/agenda/sendereihe/'); - calcms.set('ical_url', '/agenda/ical'); - calcms.set('feed_url', '/agenda/feed/'); - calcms.set('playlist_url', '/agenda/playlist/'); + calcms.set('series_name_url', '/agenda/sendereihen/'); - calcms.set('search_url', '/agenda/suche/'); - calcms.set('search_category_url', '/agenda/kategorie/'); - calcms.set('search_series_name_url', '/agenda/sendereihe/'); + calcms.set('comments_url', '/agenda/kommentare/'); + calcms.set('add_comment_url', '/agenda/kommentar_neu/'); + calcms.set('newest_comments_url', '/agenda/neueste_kommentare/'); - calcms.set('category_url', '/agenda/kategorien/'); - calcms.set('series_name_url', '/agenda/sendereihen/'); + return true; + } - calcms.set('comments_url', '/agenda/kommentare/'); - calcms.set('add_comment_url', '/agenda/kommentar_neu/'); - calcms.set('newest_comments_url', '/agenda/neueste_kommentare/'); + var loadedSearchComponents = 0; + // load projects, series and show search fields + // remove empty projects if series have been loaded + calcms.showAdvancedSearch = function showAdvancedSearch(id) { + searchReady = 0; + var element = $('#calcms_enhanced_search'); + if (element.length == 0) return; - return true; - } + if (element.css('display') == 'none') { + url = calcms.get('series_name_url'); + calcms.updateContainer('calcms_series_names', url, 1, function() { + calcms.selectProject(); + loadedSearchComponents++; + if (loadedSearchComponents == 2) { + calcms.removeEmptyProjects(); + } + }); + } else { + calcms.showProjectSeriesNames(calcms.getProject()); + } - var loadedSearchComponents = 0; - // load projects, series and categories and show search fields - // remove empty projects if both series and categories have been loaded - calcms.showAdvancedSearch = function showAdvancedSearch(id) { - searchReady = 0; - var element = $('#calcms_enhanced_search'); - if (element.length == 0) - return; + $("#" + id).slideToggle(); + } - if (element.css('display') == 'none') { - var url = calcms.get('category_url'); - calcms.updateContainer('calcms_categories', url, 1, function() { - calcms.selectProject(); - loadedSearchComponents++; - if (loadedSearchComponents == 2) { - calcms.removeEmptyProjects(); - } - }); + calcms.insertDeskNextShows = function insertDeskNextShows(desk) { + var url = '/agenda/suche/all/' + desk + '/kommende/'; + calcms.updateContainer('showDesk', url, 1); + return false; + } - url = calcms.get('series_name_url'); - calcms.updateContainer('calcms_series_names', url, 1, function() { - calcms.selectProject(); - loadedSearchComponents++; - if (loadedSearchComponents == 2) { - calcms.removeEmptyProjects(); - } - }); - } else { - calcms.showProjectCategories(calcms.getProject()); - calcms.showProjectSeriesNames(calcms.getProject()); - } + calcms.insertDeskPrevShows = function insertDeskPrevShows(desk) { + var url = '/agenda/suche/all/' + desk + '/vergangene/'; + calcms.updateContainer('showDesk', url, 1); + return false; + } - $("#" + id).slideToggle(); - } + calcms.insertEditors = function insertEditors() { + var url = document.location.href; - calcms.insertDeskNextShows = function insertDeskNextShows(desk) { - var url = '/agenda/suche/all/' + desk + '/kommende/'; - calcms.updateContainer('showDesk', url, 1); - return false; - } - - calcms.insertDeskPrevShows = function insertDeskPrevShows(desk) { - var url = '/agenda/suche/all/' + desk + '/vergangene/'; - calcms.updateContainer('showDesk', url, 1); - return false; - } - - - calcms.insertEditors = function insertEditors() { - var url=document.location.href; - - var mapping={ - "studio\-ansage" : "/agenda/redaktionen-studio-ansage", + var mapping = { + "studio\-ansage" : "/agenda/redaktionen-studio-ansage", "studio\-pi\-radio" : "/agenda/redaktionen-piradio", - "studio\-frb" : "/agenda/redaktionen-frb", - "studio\-colabo" : "/agenda/redaktionen-colabo-radio", - "studio\-frrapo" : "/agenda/redaktionen-frrapo" + "studio\-frb" : "/agenda/redaktionen-frb", + "studio\-colabo" : "/agenda/redaktionen-colabo-radio", + "studio\-frrapo" : "/agenda/redaktionen-frrapo" }; - - for (var key in mapping){ - var editorsUrl = mapping[key]; - var pattern = new RegExp(key); - var matchs = pattern.exec(url); - if ((matchs != null) && (matchs.length > 0) ) { - console.log("matchs "+url) - $('div.entry-content').append('
      ') + + for ( var key in mapping) { + var editorsUrl = mapping[key]; + var pattern = new RegExp(key); + var matchs = pattern.exec(url); + if ((matchs != null) && (matchs.length > 0)) { + console.log("matchs " + url) + $('div.entry-content').append('
      ') $("#result").load(editorsUrl) } } } - function initSearch() { - var base = $('#calcms_search_show_details'); - var elem = $('#calcms_search_show_details #plus'); - if (elem.length == 0) { - base.append(''); - base.prepend(''); - } - } + var setupSliderTimer; + function initSlider() { + setupSliderTimer = setInterval(function() { + setupSlider(); + }, 1000); + } - var isCalcms=false; - function initWordpress(){ - $('header.entry-header').each( function(){ - var elem=$(this); - $(this).find("h1").each( function(){ - if ( $(this).text() == "Programm" ){ - isCalcms=true; + var isSliderInited = 0; + var sliderTimer; + function setupSlider() { + console.log("setupSlider") + if (isSliderInited == 1) return; + isSliderInited = 1; + clearInterval(setupSliderTimer); + $('#playlist_container').scrollLeft(0); + + numberOfComingShows = $('#coming_shows a').length; + + $('#playlist_container').mouseenter(function() { + slideEvents = 0; + }); + + $('#playlist_container').mouseleave(function() { + slideEvents = 1; + }); + + nextSlideEvent(); + sliderTimer = setInterval(nextSlideEvent, 10000); + console.log("setupSlider done") + } + + var numberOfComingShows = 100; + var slideCount = 0; + var slideOffset = 1; + var slideEvents = 1; + + // slideEvents will be updated at onmouseenter/leave handler at + // playlist_long + function nextSlideEvent() { + // console.log("slideEvent") + if (slideEvents == 0) return; + if ($('#coming_shows a').length == 0) return; + + // console.log(slideCount+" "+slideOffset) + var item = $('#playlist_container .eventContainer').first(); + var width = item.outerWidth(); + // console.log("width="+width); + $('#playlist_container').animate({ + scrollLeft : slideCount * width + "px" + }, 1000); + + if (slideCount < 0) slideOffset = 1 + if (slideCount > numberOfComingShows + 1 - $('#coming_shows').width() + / 100) slideOffset = -1 + slideCount += slideOffset; + } + + function initSearch() { + var base = $('#calcms_search_show_details'); + var elem = $('#calcms_search_show_details #plus'); + if (elem.length == 0) { + base.append(''); + base.prepend(''); + } + } + + var isCalcms = false; + function initWordpress() { + $('header.entry-header').each(function() { + var elem = $(this); + $(this).find("h1").each(function() { + if ($(this).text() == "Programm") { + isCalcms = true; $(this).text("Programm"); } }); }); $('div.site-info').remove(); - - if (isCalcms==false){ + + if (isCalcms == false) { $('#calcms_calendar').parent().parent().remove(); $('#calcms_menu').parent().parent().remove(); $('#calcms_search').parent().parent().remove(); @@ -212,14 +234,15 @@ var calcms_settings = new Array(); } } - $(document).ready(function() { - initCalcms(); - //initWordpress(); - calcms.showPlaylist(); - calcms.showNewestComments(); - initSearch(); - console.log("calcms inited") - }); + $(document).ready(function() { + initCalcms(); + initWordpress(); + calcms.showPlaylist(); + calcms.showNewestComments(); + calcms.insertEditors(); + initSlider(); + initSearch(); + console.log("calcms inited") + }); }(jQuery, calcms)); - diff --git a/website/agenda/js/calcms.js b/website/agenda/js/calcms.js index 1bad7ec..5998922 100644 --- a/website/agenda/js/calcms.js +++ b/website/agenda/js/calcms.js @@ -4,10 +4,8 @@ var calcms = (function($) { // calcms base functions my.updateContainer = function updateContainer(id, url, onLoading, callback) { - if (id == null) - return; - if (document.querySelector('#'+id).length == 0) - return; + if (id == null) return; + if (document.querySelector('#' + id).length == 0) return; $("#" + id).load(url, null, callback); } @@ -16,14 +14,12 @@ var calcms = (function($) { } my.postContainer = function postContainer(url, parameters, callback) { - if (url != '') - $.post(url, parameters, callback); + if (url != '') $.post(url, parameters, callback); } // get calcms setting my.get = function get(name) { - if (calcms_settings[name] == null) - return ''; + if (calcms_settings[name] == null) return ''; return calcms_settings[name]; } @@ -39,15 +35,12 @@ var calcms = (function($) { } my.selectFirstOption = function selectFirstOption(id) { - if ($(id) && $(id).length > 0) - $(id)[0].selectedIndex = 0; + if ($(id) && $(id).length > 0) $(id)[0].selectedIndex = 0; } my.contains = function contains(s, t) { - if (s == false) - return false; - if (t == false) - return false; + if (s == false) return false; + if (t == false) return false; return s.indexOf(t) != -1; } @@ -58,8 +51,7 @@ var calcms = (function($) { } my.isArchive = function isArchive() { - if ($('#calcms_archive:checked').length == 0) - return 0; + if ($('#calcms_archive:checked').length == 0) return 0; return 1; } @@ -77,10 +69,7 @@ var calcms = (function($) { my.setAndGetUrlParameters = function setAndGetUrlParameters(field, value) { // overwrite fields by field and value - if (field != null && value != null && field != '') { - // alert(target+" "+field+" "+value); - set(field, value); - } + if (field != null && value != null && field != '') set(field, value); // read fields var debug = my.get('debug'); @@ -95,8 +84,7 @@ var calcms = (function($) { // delete filters by current action if ((field == 'search' && search_field != '') - || (field == 'series_name' && series_name != '') - ) { + || (field == 'series_name' && series_name != '')) { weekday = ''; date = ''; from_date = ''; @@ -146,7 +134,7 @@ var calcms = (function($) { if (field == 'time') { if (time == 'null') { - return + return; } else { weekday = ''; } @@ -160,15 +148,11 @@ var calcms = (function($) { var url = ''; if (field == 'month' || field == 'week') { - if (from_date != '') - url += '/' + from_date; - if (till_date != '') - url += '/' + till_date; + if (from_date != '') url += '/' + from_date; + if (till_date != '') url += '/' + till_date; } else if (weekday != '') { - if (from_date != '') - url += '/' + from_date; - if (till_date != '') - url += '/' + till_date; + if (from_date != '') url += '/' + from_date; + if (till_date != '') url += '/' + till_date; url += '/' + weekday; } else if (date != '') { if (date == 'today') { @@ -207,11 +191,9 @@ var calcms = (function($) { $('#calcmsSeriesNamesForm select').each(function() { var id = $(this).attr('id'); if (id == "calcms_series_name_" + projectJsName) { - if ($(this).css('display') == 'none') - $(this).show(); + if ($(this).css('display') == 'none') $(this).show(); } else { - if ($(this).css('display') != 'none') - $(this).hide(); + if ($(this).css('display') != 'none') $(this).hide(); } }); } @@ -219,8 +201,7 @@ var calcms = (function($) { // get current project my.getProject = function getProject() { var project = $('#calcms_project'); - if (project.length == 0) - return 'all'; + if (project.length == 0) return 'all'; return project.val(); } @@ -256,12 +237,9 @@ var calcms = (function($) { url += escape(project) + '/'; else url += 'all/'; - if (value != '' && value != null) - url += escape(value) + '/'; - if (archive != null && archive == 0) - url += 'kommende/'; - if (archive != null && archive == 1) - url += 'vergangene/'; + if (value != '' && value != null) url += escape(value) + '/'; + if (archive != null && archive == 0) url += 'kommende/'; + if (archive != null && archive == 1) url += 'vergangene/'; my.updateContainer('calcms_list', url, 1); } } @@ -271,14 +249,11 @@ var calcms = (function($) { project, seriesName, archive) { if (seriesName != '' && seriesName != null) { var url = my.get('search_series_name_url'); - if (project != '' && project != null) - url += escape(project) + '/'; + if (project != '' && project != null) url += escape(project) + '/'; if (seriesName != '' && seriesName != null) url += escape(seriesName) + '/'; - if (archive != null && archive == 0) - url += 'kommende/'; - if (archive != null && archive == 1) - url += 'vergangene/'; + if (archive != null && archive == 0) url += 'kommende/'; + if (archive != null && archive == 1) url += 'vergangene/'; my.updateContainer('calcms_list', url, 1); } } @@ -296,7 +271,6 @@ var calcms = (function($) { var events_url = my.get('events_url'); var url = my.setAndGetUrlParameters('program', value); if (value != '' && value != null) { - // my.updateContainer('calcms_list', events_url+url, 1); my.updateContainer('calcms_list', url, 1); } } @@ -342,8 +316,7 @@ var calcms = (function($) { // load given event details into list my.showEvents = function showEvents(event_id, view) { - if (view == null || view == '') - view = 'list_url'; + if (view == null || view == '') view = 'list_url'; if (event_id != '') { var url = my.get(view) + '/' + event_id + '/'; my.updateContainer('calcms_list', url, 1); @@ -446,9 +419,8 @@ var calcms = (function($) { my.showCommentsByEventIdOrEventStart = function showCommentsByEventIdOrEventStart( event_id, event_start) { var url = my.get('comments_url') || '/agenda/kommentare/'; - if (event_id == '' || event_start == '' || url == '') - return false; - console.log("showCommentsByEventIdOrEventStart url="+url); + if (event_id == '' || event_start == '' || url == '') return false; + console.log("showCommentsByEventIdOrEventStart url=" + url); my.set('comments_event_start', event_start); my.set('comments_event_id', event_id); @@ -477,9 +449,10 @@ var calcms = (function($) { var response = '
      '; if (parent_id != '') response += 'Deine Anwort:'; var html = response - html += '
      ' - html += '' - html += '' + html += '' + html += '' + html += '' html += '
      ' html += '
      '; @@ -542,4 +518,3 @@ var calcms = (function($) { // return instance return my; }(jQuery)); - From 836a1fe8391e323c04e06c44a1a2446fb5116a57 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 26 Apr 2020 14:48:14 +0200 Subject: [PATCH 148/391] calendar.js: remove dead code --- website/agenda/planung/js/calendar.js | 76 --------------------------- 1 file changed, 76 deletions(-) diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index d843353..e3a3dd1 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -51,20 +51,12 @@ function setupMenuHeight(){ function(){ var height=$(this).height()+14; if (height>weekday_height) weekday_height=height; - //console.log(weekday_height+" "+height); } ); - //console.log(weekday_height) top+=weekday_height+1; - $('#calendar').css("top", top); - return top; - } else { - // calendar list - //console.log('found calendar list') - var top = $('#calcms_nav').height(); $('#content').css("top", top); @@ -110,7 +102,6 @@ function resizeCalendarMenu(){ //set spacing between table columns var columnSpacing=Math.round($(window).width()/72); - //if(columnSpacing>16)columnSpacing=16; if(columnSpacing<0) columnSpacing=0; columnSpacing=Math.ceil(columnSpacing); @@ -122,40 +113,14 @@ function resizeCalendarMenu(){ if($(window).width()<720){ $('#calendar td.week').hide(); cell_width=(width-100)/(days)-4; - //$('#calendar div.text').css('padding-right','0'); }else{ $('#calendar td.week').show(); cell_width=(width-100)/(days)-columnSpacing; - //$('#calendar div.text').css('padding-right','16px'); } var with_param='width'; var cw=cell_width.toFixed(); - /* - $('#calendar div.work').css(with_param, cw); - $('#calendar div.play').css(with_param, cw); - $('#calendar div.grid').css(with_param, cw); - $('#calendar div.event').css(with_param, cw); - $('#calendar div.schedule').css(with_param, cw); - $('#calendar div.date').css(with_param, cw); - $('#calendar_weekdays div.date').css(with_param, cw); - $('#calendar div.time').css(with_param, cw); - $('#calendar_weekdays div.time').css(with_param, cw); - */ - - //now - //$('#calendar div.time.now').css(with_param, '100%'); - - //collisions - /* - $('#calendar div.event.error').css( with_param, cw/2.2); - $('#calendar div.schedule.error').css(with_param, cw/2.2); - - //shift right - $('#calendar div.event.error.x2').css( 'margin-left', cw/2+6); - $('#calendar div.schedule.error.x2').css('margin-left', cw/2+6); - */ showCalendar(); } @@ -174,10 +139,6 @@ function setFilter(){ } }); } - - //var url=updateUrlParameters(window.location.href); - //url=setUrlParameter(url,'filter',filter); - //updateUrls(url); } // preselect options in select boxes @@ -328,12 +289,9 @@ function getNearestDatetime(){ ); //add a day, if time < startOfDay - //console.log(date+" "+hour+" "+minute+" "+startOfDay) if(hour'; html += '
      '+(label_schedule || "schedule")+'
      '; html += '
      '+(label_playout || "playout")+'
      '; html += '
      '+(label_worktime || "worktime")+'
      '; - //html += '
      '; $('#toolbar').append(html); if(getUrlParameter('s')=='0') unselectCheckbox('#show_schedule'); @@ -584,8 +525,6 @@ function deleteFromPlayout(id, projectId, studioId, start){ url+='&project_id='+escape(projectId); url+='&studio_id='+escape(studioId); url+='&start_date='+escape(start); - //console.log(url); - //console.log(id) $('#'+id).load(url); return false; } @@ -710,8 +649,6 @@ function updateTable(){ baseElement='#calendar'; resizeCalendarMenu(); - //$('body').css('background','#eee'); - $(window).resize(function() { resizeCalendarMenu(); setupMenu() @@ -835,7 +772,6 @@ function updateTable(){ function(){ // get first event_list item var id = $('#event_list tbody tr').first().attr('id'); - //console.log(id); var field=id.split('_'); var classname =field.shift(); var project_id =field.shift(); @@ -855,10 +791,6 @@ function updateTable(){ $('#calendar').show(); showMouse(); - - //move schedules - //addDraggable(); - } function addDraggable(){ @@ -870,7 +802,6 @@ function addDraggable(){ grid: [height, height], cursorAt: { top: 0 }, drag: function(){ - //$(this).attr("title", $("#position").text()); $(this).parent().children(".schedule").each( function(key, value){ if ( isColliding($(this)) == true ){ @@ -896,16 +827,12 @@ function isColliding(div){ var intersect=false; div.parent().children(".schedule").each( function(key, value){ - //console.log("isColliding"); - //console.log(dragged); - //console.log($(this)); if (dragged.is($(this))) { return; } if (collision(dragged, $(this))==true){ intersect=true; } - //console.log(intersect); } ); return intersect; @@ -934,7 +861,6 @@ function handleEvent(id, event){ var series_id =field.shift(); var event_id =field.shift(); - //if(checkStudio()==0)return; if (project_id<0) {alert("please select a project");return;} if (studio_id <0) {alert("please select a studio");return;} if (series_id <0) return; @@ -961,7 +887,6 @@ function handleUnassignedEvent(id){ if (project_id<0) return; if (studio_id<0) return; if (event_id<0) return; - //console.log("assign series") $('#assign_series_events input[name="event_id"]').attr('value',event_id); show_not_assigned_to_series_dialog(); @@ -1005,7 +930,6 @@ function handleGrid(id){ var start_date=getNearestDatetime(); $('#series_date').attr('value',start_date); showDateTimePicker('#series_date'); - //alert("studio "+studio_id+" "+start_date); show_schedule_series_dialog(project_id, studio_id, series_id, start_date); } From f1d860efcbd0a34c2e8c1c49efe75de844e6bfd3 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 26 Apr 2020 22:18:10 +0200 Subject: [PATCH 149/391] add access control origin to html headers --- website/agenda/planung/templates/header.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/agenda/planung/templates/header.html b/website/agenda/planung/templates/header.html index f8e6b45..cd3b941 100644 --- a/website/agenda/planung/templates/header.html +++ b/website/agenda/planung/templates/header.html @@ -1,9 +1,10 @@ +Access-Control-Allow-Origin: Content-Type: text/html; charset=UTF-8; - Radio: Admin + <TMPL_VAR title> From f77556908a79a2d6391b580483145d328a82b96c Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 26 Apr 2020 22:19:53 +0200 Subject: [PATCH 150/391] compress_templates.cgi: remove obsolete --- tools/compress_templates.cgi | 125 ----------------------------------- 1 file changed, 125 deletions(-) delete mode 100755 tools/compress_templates.cgi diff --git a/tools/compress_templates.cgi b/tools/compress_templates.cgi deleted file mode 100755 index 026de15..0000000 --- a/tools/compress_templates.cgi +++ /dev/null @@ -1,125 +0,0 @@ -#! /usr/bin/perl -w - -BEGIN{ - my $dir=$ENV{SCRIPT_FILENAME}||''; - $dir=~s/(.*\/)[^\/]+/$1/; - $dir=$ENV{PWD} if ($dir eq''); - $dir=`pwd` if ($dir eq''); - - #if located below extern CMS go on more down - #$dir.='../'; - - #local perl installation libs - unshift(@INC,$dir.'/../../perl/lib/'); - unshift(@INC,$dir.'/../../calcms/calcms/'); -} - -use warnings "all"; -use strict; -use Data::Dumper; - -use File::stat; -use Time::localtime; -use CGI qw(header param Vars escapeHTML uploadInfo cgi_error); -use time; -use config; -use log; -use projects; -use markup; -use template; - -my $config =config::get('../config/config.cgi'); - -my $debug =$config->{system}->{debug}; -my $base_dir =$config->{locations}->{base_dir}; -my $local_base_url =$config->{locations}->{local_base_url}; - -$CGI::POST_MAX = 1024*10; -my $cgi=new CGI(); -my %params=$cgi->Vars(); -#print $cgi->header(); -#print STDERR Dumper($config); - -#print "a\n"; -template::exit_on_missing_permission('access_system'); -#print "b\n"; - -my $request={ - url => $ENV{QUERY_STRING}||'', - params => { - original => \%params, - checked => check_params(\%params), - }, - config => $config -}; -my $params=$request->{params}->{checked}; - -log::init($request); -log::mem('pic_manager init')if($debug>2); - -my $errors=''; -my $action_result=''; - -log::error("base_dir '$base_dir' does not exist")unless(-e $base_dir); - -my $template_dirs=[ - $base_dir.'/templates/', - $base_dir.'/admin/templates/', - $base_dir.'/planung/templates/', -]; -my @results=(); -#print "
      \n";
      -
      -for my $template_dir(@$template_dirs){
      -	my $dest_dir=$template_dir.'compressed/';
      -	log::error('template directory "'.$dest_dir.'" does not exist') 	unless(-e $dest_dir);
      -	log::error('cannot write into template directory "'.$dest_dir.'"') 	unless(-w $dest_dir);
      -
      -	#compress only: html, xml
      -	my @files=glob("$template_dir*.*ml");
      -	for my $file (@files){
      -		$file=~s/[\n\r]+$//g;
      -		next if ($file=~/\~$/);
      -		next if ($file=~/compressed/);
      -		next if ($file=~/\.old$/);
      -		push @results,$file;
      -
      -		my $content=log::load_file($file);
      -#		print "$file\n";
      -		markup::compress($content);
      -
      -		my $filename=(split(/\//,$file))[-1];
      -		my $dest_file=$template_dir.'compressed/'.$filename;
      -		log::error("cannot write '$dest_file'") if((-e $dest_file) && (!(-w $dest_file)));
      -		log::save_file($dest_file,$content);
      -	}
      -}
      -
      -my $out='';
      -template::process('print',$params->{template},{
      -	'error'		=> $errors,
      -	'projects'	=> projects::get({all=>0}),
      -
      -	}
      -);
      -
      -print '
      ';
      -for my $result(@results){
      -	$result=~s/$base_dir//g;
      -	print $local_base_url.$result."\n";
      -}
      -print '
      '; -log::mem('pic_manager init')if($debug>1); - - -sub check_params{ - my $params=shift; - - my $result={}; - - #avoid checking templates - $result->{template}='templates/default.html'; - - return $result; -} - From ad9e27418a608275a210b0fea572e69a8e4f89a5 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 26 Apr 2020 22:20:49 +0200 Subject: [PATCH 151/391] set search button color --- website/agenda/css/calcms.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index 6b78dc6..141e0cf 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -586,7 +586,7 @@ a { } #calcms_search input[type="button"] { - background: none; + background: #1987d1; width: 50%; } From d3fe389af3aa59508ffd1fcae0afef9221526131 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 26 Apr 2020 22:21:03 +0200 Subject: [PATCH 152/391] configure email for sending comment notifications --- website/agenda/add_comment.cgi | 61 ++++++++++++++-------------- website/agenda/config/config.cgi.off | 3 ++ 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/website/agenda/add_comment.cgi b/website/agenda/add_comment.cgi index 4af930b..9112906 100755 --- a/website/agenda/add_comment.cgi +++ b/website/agenda/add_comment.cgi @@ -21,8 +21,6 @@ my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); my $config = config::getFromScriptLocation(); -my $debug = $config->{system}->{debug}; - my $request = { url => $ENV{QUERY_STRING}, params => { @@ -51,14 +49,15 @@ $comment->{content} =~ s/(^|\s)((www\.)(.*?))(\s|$|\<)/$1\{comment_id} = comments::insert( $dbh, $config, $comment ); if ( $comment->{comment_id} > 0 ) { comments::update_comment_count( $dbh, $config, $comment ); - send_mail( $comment, $nslookup, 'new' ); + send_mail( $config, $comment, $nslookup, 'new' ); } } @@ -67,18 +66,16 @@ sub is_blocked { my $user_agent = $ENV{HTTP_USER_AGENT}; - my $block = 0; - $block = 1 - if ( $user_agent eq 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:35.0) Gecko/20100101 Firefox/35.0' ) - && ( $nslookup =~ /alicedsl/ ); + # add lock settings here + # return 1 if + # ( $user_agent eq 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:35.0) Gecko/20100101 Firefox/35.0' ) + # && ( $nslookup =~ /alicedsl/ ); - $block = 1 - if $user_agent eq -'Mozilla/5.0 (Linux; Android 8.0.0; ANE-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36'; - return $block; + return 0; } sub send_mail { + my $config = shift; my $comment = shift; my $nslookup = shift; my $status = shift || 'new'; @@ -87,10 +84,12 @@ sub send_mail { my $user_agent = $ENV{HTTP_USER_AGENT} || ''; my $cookie = $ENV{HTTP_COOKIE} || ''; - my $from = 'no-reply@localhost'; - my $to = 'info@localhost'; - my $subject = "$status comment from '$comment->{author}': $comment->{content}"; - my $content = "$status comment + my $locations = $config->{locations}; + my $base_domain = $locations->{base_domain}; + my $from = $locations->{email}; + my $to = $locations->{email}; + my $subject = "$status comment from '$comment->{author}': $comment->{content}"; + my $content = qq!$status comment FROM: '$comment->{author}' EMAIL: $comment->{email} @@ -98,17 +97,17 @@ EMAIL: $comment->{email} CONTENT: '$comment->{content}' view event -https://localhost/programm/sendung/$comment->{event_id}.html#comments -"; +$base_domain/programm/sendung/$comment->{event_id}.html#comments +!; if ( $status eq 'new' ) { - $content .= " + $content .= qq! manage comments: -https://localhost/agenda/planung/comment.cgi?project_id=1&studio_id=1 +$base_domain/agenda/planung/comment.cgi?project_id=1&studio_id=1 lock this comment -https://localhost/agenda/planung/comment.cgi?event_id=$comment->{event_id}&comment_id=$comment->{comment_id}&set_lock_status=blocked -"; +$base_domain/agenda/planung/comment.cgi?event_id=$comment->{event_id}&comment_id=$comment->{comment_id}&set_lock_status=blocked +!; } $content .= qq{ @@ -174,12 +173,12 @@ sub check_params { $comment->{content} = $params->{'content'} || ''; $comment->{content} = escape_text( $comment->{content} ); $comment->{content} = substr( $comment->{content}, 0, 1000 ); - log::error( $config, 'add_comment.cgi: missing body' ) if ( $comment->{content} eq '' ); + log::error( $config, 'add_comment.cgi: missing body' ) if $comment->{content} eq ''; $comment->{author} = $params->{'author'} || ''; $comment->{author} = escape_text( $comment->{author} ); $comment->{author} = substr( $comment->{author}, 0, 40 ); - log::error( $config, 'add_comment.cgi: missing name' ) if ( $comment->{author} eq '' ); + log::error( $config, 'add_comment.cgi: missing name' ) if $comment->{author} eq ''; $comment->{email} = $params->{'email'} || ''; $comment->{email} = escape_text( $comment->{email} ); @@ -190,16 +189,18 @@ sub check_params { $comment->{title} = substr( $comment->{title}, 0, 80 ); $comment->{ip} = $ENV{REMOTE_ADDR} || ''; - log::error( $config, 'missing ip' ) if ( $comment->{ip} eq '' ); + log::error( $config, 'missing ip' ) if $comment->{ip} eq ''; $comment->{ip} = Digest::MD5::md5_base64( $comment->{ip} ); my $today = time::datetime_to_array( time::time_to_datetime() ); my $date = time::datetime_to_array( $comment->{event_start} ); my $delta_days = time::days_between( $today, $date ); + log::error( $config, 'add_comment.cgi: no comments allowed, yet' ) - if ( $delta_days > $config->{permissions}->{no_new_comments_before} ); + if $delta_days > $config->{permissions}->{no_new_comments_before}; + log::error( $config, 'add_comment.cgi: no comments allowed anymore' ) - if ( $delta_days < -1 * $config->{permissions}->{no_new_comments_after} ); + if $delta_days < -1 * $config->{permissions}->{no_new_comments_after}; return { template => $template, diff --git a/website/agenda/config/config.cgi.off b/website/agenda/config/config.cgi.off index 56a332f..478ce71 100755 --- a/website/agenda/config/config.cgi.off +++ b/website/agenda/config/config.cgi.off @@ -11,6 +11,7 @@ Define LOG_DIR /home/radio/log # default project from database project Corax +domain ${DOMAIN} # projects_to_exclude project1 @@ -80,6 +81,8 @@ project Corax # multi language support admin_pot_dir ${BASE_DIR}/agenda/planung/pot/ + + email info@${DOMAIN} From 5e5e36ba226cbd17ac687392af459db0c91b0942 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 26 Apr 2020 23:23:12 +0200 Subject: [PATCH 153/391] replace table height calculation by plain javascript --- website/agenda/planung/js/calendar.js | 48 ++++++++++----------------- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/website/agenda/planung/js/calendar.js b/website/agenda/planung/js/calendar.js index e3a3dd1..9d31832 100644 --- a/website/agenda/planung/js/calendar.js +++ b/website/agenda/planung/js/calendar.js @@ -8,9 +8,6 @@ function openNewTab(url){ window.open(url, '_blank'); } -var effect=null; -var effect_duration=null; - function selectCheckbox(selector){ $(selector).each(function(){ $(this).prop('checked', 'checked'); @@ -28,63 +25,51 @@ function isChecked(selector){ } function cancel_edit_event(){ - $('#calendar').show(effect,null,effect_duration); - $('#calendar_weekdays').show(effect,null,effect_duration); - $('#event_editor').hide(effect,null,effect_duration); + $('#calendar').show(); + $('#calendar_weekdays').show(); + $('#event_editor').hide(); resizeCalendarMenu(); return false; } function setupMenuHeight(){ if ($('#calendar').length>0){ - // calendar table - console.log('setupMenuHeight') var top=$('#calcms_nav').height(); $('#toolbar').css("top", top); $('#toolbar').css("position", "absolute"); top+=$('#toolbar').height()+2; + var weekdays = document.querySelector("#calendar_weekdays"); $('#calendar_weekdays').css("top", top); + var weekday_height=30; - $('#calendar_weekdays table td div').each( - function(){ - var height=$(this).height()+14; + weekdays.querySelectorAll("table td div").forEach( + function(div) { + var height = div.offsetHeight + 14; if (height>weekday_height) weekday_height=height; - } + } ); + top+=weekday_height+1; $('#calendar').css("top", top); return top; } else { var top = $('#calcms_nav').height(); $('#content').css("top", top); - - top = $('#calcms_nav').height(); - $('#content').css("top", top); - return top; } } -function hideCalendar(){ - $('#calendar').css("display","none"); - $('#calendar_weekdays').css("visibility","hidden"); -} - -function showCalendar(){ - $('#calendar').show(); - $('#calendar_weekdays').css("visibility","visible"); -} - function resizeCalendarMenu(){ - hideCalendar(); + $('#calendar').hide(); + $('#calendar_weekdays').css("visibility","hidden"); //after getting menu heigth, hide calendar again - var menuHeight=setupMenuHeight(); + var menuHeight = setupMenuHeight(); - var width= $(window).width()-0; - var height= $(window).height()-menuHeight; + var width = $(window).width()-0; + var height = $(window).height()-menuHeight; if($('#calendar').css('display')=='none'){ $('body #content').css('max-width', '960'); @@ -121,7 +106,8 @@ function resizeCalendarMenu(){ var with_param='width'; var cw=cell_width.toFixed(); - showCalendar(); + $('#calendar').show(); + $('#calendar_weekdays').css("visibility","visible"); } From e316b53462c672a4aee71dfa47e6e14a5e63c13b Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 2 May 2020 19:16:28 +0200 Subject: [PATCH 154/391] fix: calendar cells clickable --- website/agenda/css/calcms.css | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index 141e0cf..2f0972e 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -49,11 +49,6 @@ font-family: Open Sans, serif !important; } -/* fix drupal */ -input { - max-width: 20em; -} - body.custom-background { image-rendering: pixelated; } @@ -628,22 +623,15 @@ a#calcms_search_show_details #plus { #calcms_calendar table thead a:hover, #calcms_calendar table thead a:link, -#calcms_calendar table thead a:visited { - color: #333; - padding: 0; - text-decoration: none; - font-weight: normal; -} - +#calcms_calendar table thead a:visited, #calcms_calendar table tbody a:hover, #calcms_calendar table tbody a:link, #calcms_calendar table tbody a:visited { color: #333; padding: 5px; - padding-top: 2px; - padding-bottom: 3px; text-decoration: none; font-weight: normal; + display:block; } #calcms_calendar table td, @@ -655,8 +643,6 @@ a#calcms_search_show_details #plus { font-weight: normal; border-bottom: 1px solid #ddd; transition: all .1s ease-in-out; - padding-top: 2%; - padding-bottom: 2%; } #calcms_calendar table thead td:hover, @@ -715,15 +701,6 @@ a#calcms_search_show_details #plus { opacity: 0.3; } -/* player -#player{ - border:0; - padding:0; - height:26px; - width:180px; - overflow:hidden; -} -*/ #player { border: 0; padding: 0; From 4229cb80ad1ac17269a8c48f22e4f91d0e774c62 Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 2 May 2020 19:16:55 +0200 Subject: [PATCH 155/391] read config as UTF8 --- lib/calcms/config.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/calcms/config.pm b/lib/calcms/config.pm index 60e2072..07ea1bf 100644 --- a/lib/calcms/config.pm +++ b/lib/calcms/config.pm @@ -4,6 +4,7 @@ use strict; use warnings; no warnings 'redefine'; + use FindBin(); #use base 'Exporter'; @@ -30,7 +31,7 @@ sub read_config { my @stack = (); my $entry = {}; - open my $fh, '<', $file or die; + open my $fh, '<:encoding(UTF-8)', $file or die; while ( my $line = <$fh> ) { chomp $line; From 2360926840966be8cc54f9e8af9a8554febe97ad Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 2 May 2020 19:17:25 +0200 Subject: [PATCH 156/391] configure site title and description --- lib/calcms/events.pm | 4 ++++ website/agenda/config/config.cgi.off | 5 +++++ website/agenda/templates/event_running.html | 9 +++++++-- website/agenda/templates/no_result.html | 7 +------ 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index 683f2c0..854b39a 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -1172,6 +1172,10 @@ sub render($$$$;$) { if ( defined $config->{permissions}->{hide_event_images} ) && ( $config->{permissions}->{hide_event_images} == 1 ); + for my $attr (qw(no_result events_title events_description)){ + $template_parameters->{$attr} = $config->{$attr}; + } + template::process( $config, $_[0], $params->{template}, $template_parameters ); return $_[0]; diff --git a/website/agenda/config/config.cgi.off b/website/agenda/config/config.cgi.off index 478ce71..72256cd 100755 --- a/website/agenda/config/config.cgi.off +++ b/website/agenda/config/config.cgi.off @@ -113,5 +113,10 @@ domain ${DOMAIN} day_starting_hour 6 +no_result_message Radio ${DOMAIN} +events_title Radio ${DOMAIN} +events_description Hört mehr Radio + + diff --git a/website/agenda/templates/event_running.html b/website/agenda/templates/event_running.html index cd6d4ac..5451afd 100644 --- a/website/agenda/templates/event_running.html +++ b/website/agenda/templates/event_running.html @@ -25,9 +25,14 @@
      -

      Freies Radio

      - +

      + +

      +
      + +
      +
      Programmplan diff --git a/website/agenda/templates/no_result.html b/website/agenda/templates/no_result.html index 0699fa3..94f6a88 100644 --- a/website/agenda/templates/no_result.html +++ b/website/agenda/templates/no_result.html @@ -14,12 +14,7 @@ }); - +

      Kommende Sendungen

      From 0ad734f4a8f0ec52e663f32c81d06572bec89205 Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 2 May 2020 19:19:00 +0200 Subject: [PATCH 157/391] replace header by default --- website/agenda/templates/default.html | 51 ++++++++++++++++++++++++++- website/agenda/templates/header.html | 51 --------------------------- 2 files changed, 50 insertions(+), 52 deletions(-) delete mode 100644 website/agenda/templates/header.html diff --git a/website/agenda/templates/default.html b/website/agenda/templates/default.html index a97966c..a003895 100644 --- a/website/agenda/templates/default.html +++ b/website/agenda/templates/default.html @@ -1,2 +1,51 @@ - +Content-type:text/html; charset=UTF-8; + + + + + + <TMPL_VAR project_title>: Admin - <TMPL_VAR user> + + + + + + + + + + +
      + programm +
      + + +
      + +
      +
      + +
      + + +
      + +
      + +
      + +
      +
      diff --git a/website/agenda/templates/header.html b/website/agenda/templates/header.html deleted file mode 100644 index 23e28bc..0000000 --- a/website/agenda/templates/header.html +++ /dev/null @@ -1,51 +0,0 @@ -Content-type:text/html; charset=UTF-8; - - - - - - <TMPL_VAR project_title>: Admin - <TMPL_VAR user> - - - - - - - - - - -
      - programm -
      - - -
      - -
      -
      - -
      - - -
      - -
      - -
      - -
      -
      - From 829bcf1c29f3ed4dfd21979aea6f8f48cb658ab6 Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 2 May 2020 19:20:04 +0200 Subject: [PATCH 158/391] fix spacing --- website/agenda/templates/event_details.html | 26 ++++++++++----------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/website/agenda/templates/event_details.html b/website/agenda/templates/event_details.html index 16f8564..b05c7ad 100644 --- a/website/agenda/templates/event_details.html +++ b/website/agenda/templates/event_details.html @@ -43,19 +43,19 @@ -
      - - <TMPL_VAR series_name> -
      Bild:
      -
      -
      +
      + + <TMPL_VAR series_name> +
      Bild:
      +
      +
      -
      - - <TMPL_VAR series_name> -
      Bild:
      -
      -
      +
      + + <TMPL_VAR series_name> +
      Bild:
      +
      +
      @@ -82,7 +82,5 @@
      - - From c6fc558ffb2bba24ae9f8352d71949ca817d8cae Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 2 May 2020 19:20:21 +0200 Subject: [PATCH 159/391] remove unused templated --- website/agenda/templates/calendar_js.html | 84 ------------------- website/agenda/templates/calendar_mobile.html | 73 ---------------- .../agenda/templates/event_list_image.html | 42 ---------- website/agenda/templates/event_utc_time.txt | 5 -- 4 files changed, 204 deletions(-) delete mode 100644 website/agenda/templates/calendar_js.html delete mode 100644 website/agenda/templates/calendar_mobile.html delete mode 100644 website/agenda/templates/event_list_image.html delete mode 100644 website/agenda/templates/event_utc_time.txt diff --git a/website/agenda/templates/calendar_js.html b/website/agenda/templates/calendar_js.html deleted file mode 100644 index 0377d25..0000000 --- a/website/agenda/templates/calendar_js.html +++ /dev/null @@ -1,84 +0,0 @@ -Cache-Control: max-age=3600, must-revalidate -Content-type:text/html; charset=UTF-8; - - - - - - - - - Calendar <TMPL_VAR project_title> - - - -
      - -
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - < - - - - - - - - > -
      Wo - - - -
      - - - - - - - - - -
      - - -
      - - diff --git a/website/agenda/templates/calendar_mobile.html b/website/agenda/templates/calendar_mobile.html deleted file mode 100644 index 99db1a0..0000000 --- a/website/agenda/templates/calendar_mobile.html +++ /dev/null @@ -1,73 +0,0 @@ -Cache-Control: max-age=3600, must-revalidate -Content-type:text/html; charset=UTF-8; - - - - - - - - - Calendar <TMPL_VAR project_title> - - - -
      - -
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - -
      - « - - - - » -
      Wo - -
      - - - - - -
      - - -
      - - diff --git a/website/agenda/templates/event_list_image.html b/website/agenda/templates/event_list_image.html deleted file mode 100644 index b7100d2..0000000 --- a/website/agenda/templates/event_list_image.html +++ /dev/null @@ -1,42 +0,0 @@ -Cache-Control: max-age=600, must-revalidate -Content-type:text/html; charset=utf-8; - - - - - - - - Agenda <TMPL_VAR project_title> - - - - - - - -
      - , - -
      -
      - - - - -
      - - - - diff --git a/website/agenda/templates/event_utc_time.txt b/website/agenda/templates/event_utc_time.txt deleted file mode 100644 index d663da3..0000000 --- a/website/agenda/templates/event_utc_time.txt +++ /dev/null @@ -1,5 +0,0 @@ -Cache-Control: max-age=600, must-revalidate -Content-type:text/plain; charset=utf-8; - - - From f8989b95a581f95e0b5c211941176d4816a037d9 Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 23 May 2020 23:00:19 +0200 Subject: [PATCH 160/391] calcms.cust.js: remove slider --- website/agenda/js/calcms.cust.js | 58 -------------------------------- 1 file changed, 58 deletions(-) diff --git a/website/agenda/js/calcms.cust.js b/website/agenda/js/calcms.cust.js index 0c80360..3e3e656 100644 --- a/website/agenda/js/calcms.cust.js +++ b/website/agenda/js/calcms.cust.js @@ -146,63 +146,6 @@ var calcms_settings = new Array(); } } - var setupSliderTimer; - function initSlider() { - setupSliderTimer = setInterval(function() { - setupSlider(); - }, 1000); - } - - var isSliderInited = 0; - var sliderTimer; - function setupSlider() { - console.log("setupSlider") - if (isSliderInited == 1) return; - isSliderInited = 1; - clearInterval(setupSliderTimer); - $('#playlist_container').scrollLeft(0); - - numberOfComingShows = $('#coming_shows a').length; - - $('#playlist_container').mouseenter(function() { - slideEvents = 0; - }); - - $('#playlist_container').mouseleave(function() { - slideEvents = 1; - }); - - nextSlideEvent(); - sliderTimer = setInterval(nextSlideEvent, 10000); - console.log("setupSlider done") - } - - var numberOfComingShows = 100; - var slideCount = 0; - var slideOffset = 1; - var slideEvents = 1; - - // slideEvents will be updated at onmouseenter/leave handler at - // playlist_long - function nextSlideEvent() { - // console.log("slideEvent") - if (slideEvents == 0) return; - if ($('#coming_shows a').length == 0) return; - - // console.log(slideCount+" "+slideOffset) - var item = $('#playlist_container .eventContainer').first(); - var width = item.outerWidth(); - // console.log("width="+width); - $('#playlist_container').animate({ - scrollLeft : slideCount * width + "px" - }, 1000); - - if (slideCount < 0) slideOffset = 1 - if (slideCount > numberOfComingShows + 1 - $('#coming_shows').width() - / 100) slideOffset = -1 - slideCount += slideOffset; - } - function initSearch() { var base = $('#calcms_search_show_details'); var elem = $('#calcms_search_show_details #plus'); @@ -240,7 +183,6 @@ var calcms_settings = new Array(); calcms.showPlaylist(); calcms.showNewestComments(); calcms.insertEditors(); - initSlider(); initSearch(); console.log("calcms inited") }); From 5a9da1bf5dfdcefa33f02d55f1564e789719e7b9 Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 23 May 2020 23:00:50 +0200 Subject: [PATCH 161/391] jquery: update to 3.5.1 --- website/agenda/js/jquery.min.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/agenda/js/jquery.min.js b/website/agenda/js/jquery.min.js index cd609ae..f88b25e 100644 --- a/website/agenda/js/jquery.min.js +++ b/website/agenda/js/jquery.min.js @@ -1,3 +1,3 @@ -/*! jQuery v3.5.0 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 Date: Sat, 23 May 2020 23:01:05 +0200 Subject: [PATCH 162/391] .htaccess: remove special trigger --- website/agenda/.htaccess | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/agenda/.htaccess b/website/agenda/.htaccess index 4e5d090..28880d0 100644 --- a/website/agenda/.htaccess +++ b/website/agenda/.htaccess @@ -75,8 +75,6 @@ RewriteRule ^sendereihe/(.*?)/(.*?)/(.*)$ events.cgi?template=event_list.html&p RewriteRule ^sendereihe/(.*?)/(.*)$ events.cgi?template=event_list.html&series_name=$1&$2 [L] RewriteRule ^freefm.xml$ events.cgi?template=event_freefm.xml&location=piradio&limit=40 -RewriteRule ^future$ events.cgi?template=event_list_image.html&limit=20 -RewriteRule ^dt64-festival.html$ events.cgi?location=dt64&template=event_dt64&archive=all RewriteRule ^frrapo-programm.html$ events.cgi?location=potsdam&template=event_frrapo RewriteRule ^upload_playout_piradio$ upload_playout.cgi?project_id=1&studio_id=1 From ab0902a9b378924aec52e0831e1c6ec825d45400 Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 23 May 2020 23:04:42 +0200 Subject: [PATCH 163/391] calcms.js: use fetch api for updateContainer --- website/agenda/js/calcms.cust.js | 8 ++++---- website/agenda/js/calcms.js | 34 ++++++++++++++++++++------------ 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/website/agenda/js/calcms.cust.js b/website/agenda/js/calcms.cust.js index 3e3e656..cc25187 100644 --- a/website/agenda/js/calcms.cust.js +++ b/website/agenda/js/calcms.cust.js @@ -97,7 +97,7 @@ var calcms_settings = new Array(); if (element.css('display') == 'none') { url = calcms.get('series_name_url'); - calcms.updateContainer('calcms_series_names', url, 1, function() { + calcms.updateContainer('calcms_series_names', url, function() { calcms.selectProject(); loadedSearchComponents++; if (loadedSearchComponents == 2) { @@ -113,13 +113,13 @@ var calcms_settings = new Array(); calcms.insertDeskNextShows = function insertDeskNextShows(desk) { var url = '/agenda/suche/all/' + desk + '/kommende/'; - calcms.updateContainer('showDesk', url, 1); + calcms.updateContainer('showDesk', url); return false; } calcms.insertDeskPrevShows = function insertDeskPrevShows(desk) { var url = '/agenda/suche/all/' + desk + '/vergangene/'; - calcms.updateContainer('showDesk', url, 1); + calcms.updateContainer('showDesk', url); return false; } @@ -141,7 +141,7 @@ var calcms_settings = new Array(); if ((matchs != null) && (matchs.length > 0)) { console.log("matchs " + url) $('div.entry-content').append('
      ') - $("#result").load(editorsUrl) + calcms.updateContainer("#result", editorsUrl); } } } diff --git a/website/agenda/js/calcms.js b/website/agenda/js/calcms.js index 5998922..e936459 100644 --- a/website/agenda/js/calcms.js +++ b/website/agenda/js/calcms.js @@ -3,10 +3,19 @@ var calcms = (function($) { var my = {}; // calcms base functions - my.updateContainer = function updateContainer(id, url, onLoading, callback) { + my.updateContainer = function updateContainer(id, url, callback) { if (id == null) return; - if (document.querySelector('#' + id).length == 0) return; - $("#" + id).load(url, null, callback); + var elem = document.querySelector('#' + id); + if (elem == null) return; + fetch( url ) + .then( response => response.text()) + .then( text => { + elem.innerHTML = text; + if (callback != null) callback(); + }) + .catch( error => { + console.error('Error:', error); + }); } my.load = function load(url) { @@ -240,7 +249,7 @@ var calcms = (function($) { if (value != '' && value != null) url += escape(value) + '/'; if (archive != null && archive == 0) url += 'kommende/'; if (archive != null && archive == 1) url += 'vergangene/'; - my.updateContainer('calcms_list', url, 1); + my.updateContainer('calcms_list', url); } } @@ -254,7 +263,7 @@ var calcms = (function($) { url += escape(seriesName) + '/'; if (archive != null && archive == 0) url += 'kommende/'; if (archive != null && archive == 1) url += 'vergangene/'; - my.updateContainer('calcms_list', url, 1); + my.updateContainer('calcms_list', url); } } @@ -262,7 +271,7 @@ var calcms = (function($) { my.showEventsBySeriesName = function showEventsBySeriesName(value) { if (value != '' && value != null) { my.updateContainer('calcms_list', my.get('search_series_name_url') - + escape(value) + '/', 1); + + escape(value) + '/'); } } @@ -271,7 +280,7 @@ var calcms = (function($) { var events_url = my.get('events_url'); var url = my.setAndGetUrlParameters('program', value); if (value != '' && value != null) { - my.updateContainer('calcms_list', url, 1); + my.updateContainer('calcms_list', url); } } @@ -298,7 +307,7 @@ var calcms = (function($) { if (target == 'window') { window.location.href = events_url + url; } else { - my.updateContainer('calcms_menu', menu_url + url, 1); + my.updateContainer('calcms_menu', menu_url + url); if (event_id != '' && event_id != null && Number(event_id) != 'NaN') { // load list selected by url @@ -306,7 +315,7 @@ var calcms = (function($) { my.set('event_id', ''); } else { // load event list - my.updateContainer('calcms_list', events_url + url, 1); + my.updateContainer('calcms_list', events_url + url); my.set('last_list_url', events_url + url); } @@ -319,7 +328,7 @@ var calcms = (function($) { if (view == null || view == '') view = 'list_url'; if (event_id != '') { var url = my.get(view) + '/' + event_id + '/'; - my.updateContainer('calcms_list', url, 1); + my.updateContainer('calcms_list', url); } else { document.getElementById('calcms_list').innerHTML = 'keine Sendung gefunden...'; } @@ -335,7 +344,6 @@ var calcms = (function($) { .updateContainer( 'calcms_list', url, - 1, function(responseText, textStatus, XMLHttpRequest) { var back_link = '0&&"object"!=typeof timezoneList[0])for(;tzl>tzi;tzi++)tzv=timezoneList[tzi],timezoneList[tzi]={value:tzv,label:$.timepicker.timezoneOffsetString(tzv,tp_inst.support.iso8601)};return tp_inst._defaults.timezoneList=timezoneList,tp_inst.timezone=null!==tp_inst._defaults.timezone?$.timepicker.timezoneOffsetNumber(tp_inst._defaults.timezone):-1*(new Date).getTimezoneOffset(),tp_inst.hour=tp_inst._defaults.hourtp_inst._defaults.hourMax?tp_inst._defaults.hourMax:tp_inst._defaults.hour,tp_inst.minute=tp_inst._defaults.minutetp_inst._defaults.minuteMax?tp_inst._defaults.minuteMax:tp_inst._defaults.minute,tp_inst.second=tp_inst._defaults.secondtp_inst._defaults.secondMax?tp_inst._defaults.secondMax:tp_inst._defaults.second,tp_inst.millisec=tp_inst._defaults.millisectp_inst._defaults.millisecMax?tp_inst._defaults.millisecMax:tp_inst._defaults.millisec,tp_inst.microsec=tp_inst._defaults.microsectp_inst._defaults.microsecMax?tp_inst._defaults.microsecMax:tp_inst._defaults.microsec,tp_inst.ampm="",tp_inst.$input=$input,tp_inst._defaults.altField&&(tp_inst.$altInput=$(tp_inst._defaults.altField),tp_inst._defaults.altRedirectFocus===!0&&tp_inst.$altInput.css({cursor:"pointer"}).focus(function(){$input.trigger("focus")})),(0===tp_inst._defaults.minDate||0===tp_inst._defaults.minDateTime)&&(tp_inst._defaults.minDate=new Date),(0===tp_inst._defaults.maxDate||0===tp_inst._defaults.maxDateTime)&&(tp_inst._defaults.maxDate=new Date),void 0!==tp_inst._defaults.minDate&&tp_inst._defaults.minDate instanceof Date&&(tp_inst._defaults.minDateTime=new Date(tp_inst._defaults.minDate.getTime())),void 0!==tp_inst._defaults.minDateTime&&tp_inst._defaults.minDateTime instanceof Date&&(tp_inst._defaults.minDate=new Date(tp_inst._defaults.minDateTime.getTime())),void 0!==tp_inst._defaults.maxDate&&tp_inst._defaults.maxDate instanceof Date&&(tp_inst._defaults.maxDateTime=new Date(tp_inst._defaults.maxDate.getTime())),void 0!==tp_inst._defaults.maxDateTime&&tp_inst._defaults.maxDateTime instanceof Date&&(tp_inst._defaults.maxDate=new Date(tp_inst._defaults.maxDateTime.getTime())),tp_inst.$input.bind("focus",function(){tp_inst._onFocus()}),tp_inst},_addTimePicker:function(a){var b=$.trim(this.$altInput&&this._defaults.altFieldTimeOnly?this.$input.val()+" "+this.$altInput.val():this.$input.val());this.timeDefined=this._parseTime(b),this._limitMinMaxDateTime(a,!1),this._injectTimePicker(),this._afterInject()},_parseTime:function(a,b){if(this.inst||(this.inst=$.datepicker._getInst(this.$input[0])),b||!this._defaults.timeOnly){var c=$.datepicker._get(this.inst,"dateFormat");try{var d=parseDateTimeInternal(c,this._defaults.timeFormat,a,$.datepicker._getFormatConfig(this.inst),this._defaults);if(!d.timeObj)return!1;$.extend(this,d.timeObj)}catch(e){return $.timepicker.log("Error parsing the date/time string: "+e+"\ndate/time string = "+a+"\ntimeFormat = "+this._defaults.timeFormat+"\ndateFormat = "+c),!1}return!0}var f=$.datepicker.parseTime(this._defaults.timeFormat,a,this._defaults);return f?($.extend(this,f),!0):!1},_afterInject:function(){var a=this.inst.settings;$.isFunction(a.afterInject)&&a.afterInject.call(this)},_injectTimePicker:function(){var a=this.inst.dpDiv,b=this.inst.settings,c=this,d="",e="",f=null,g={},h={},i=null,j=0,k=0;if(0===a.find("div.ui-timepicker-div").length&&b.showTimepicker){var l=" ui_tpicker_unit_hide",m='
      '+b.timeText+'
      ";for(j=0,k=this.units.length;k>j;j++){if(d=this.units[j],e=d.substr(0,1).toUpperCase()+d.substr(1),f=null!==b["show"+e]?b["show"+e]:this.support[d],g[d]=parseInt(b[d+"Max"]-(b[d+"Max"]-b[d+"Min"])%b["step"+e],10),h[d]=0,m+='
      '+b[d+"Text"]+'
      ',f&&b[d+"Grid"]>0){if(m+='
      ',"hour"===d)for(var n=b[d+"Min"];n<=g[d];n+=parseInt(b[d+"Grid"],10)){h[d]++;var o=$.datepicker.formatTime(this.support.ampm?"hht":"HH",{hour:n},b);m+='"}else for(var p=b[d+"Min"];p<=g[d];p+=parseInt(b[d+"Grid"],10))h[d]++,m+='";m+="
      '+o+"'+(10>p?"0":"")+p+"
      "}m+="
      "}var q=null!==b.showTimezone?b.showTimezone:this.support.timezone;m+='
      '+b.timezoneText+"
      ",m+='
      ',m+="
      ";var r=$(m);for(b.timeOnly===!0&&(r.prepend('
      '+b.timeOnlyTitle+"
      "),a.find(".ui-datepicker-header, .ui-datepicker-calendar").hide()),j=0,k=c.units.length;k>j;j++)d=c.units[j],e=d.substr(0,1).toUpperCase()+d.substr(1),f=null!==b["show"+e]?b["show"+e]:this.support[d],c[d+"_slider"]=c.control.create(c,r.find(".ui_tpicker_"+d+"_slider"),d,c[d],b[d+"Min"],g[d],b["step"+e]),f&&b[d+"Grid"]>0&&(i=100*h[d]*b[d+"Grid"]/(g[d]-b[d+"Min"]),r.find(".ui_tpicker_"+d+" table").css({width:i+"%",marginLeft:b.isRTL?"0":i/(-2*h[d])+"%",marginRight:b.isRTL?i/(-2*h[d])+"%":"0",borderCollapse:"collapse"}).find("td").click(function(a){var b=$(this),e=b.html(),f=parseInt(e.replace(/[^0-9]/g),10),g=e.replace(/[^apm]/gi),h=b.data("for");"hour"===h&&(-1!==g.indexOf("p")&&12>f?f+=12:-1!==g.indexOf("a")&&12===f&&(f=0)),c.control.value(c,c[h+"_slider"],d,f),c._onTimeChange(),c._onSelectHandler()}).css({cursor:"pointer",width:100/h[d]+"%",textAlign:"center",overflow:"hidden"}));if(this.timezone_select=r.find(".ui_tpicker_timezone").append("").find("select"),$.fn.append.apply(this.timezone_select,$.map(b.timezoneList,function(a,b){return $("
      ':"",d.$headers=A(A.map(d.$table.find(d.selectorHeaders),function(e,t){var r,o,s,a,n,i=A(e);if(!L.getClosest(i,"tr").hasClass(d.cssIgnoreRow))return/(th|td)/i.test(e.nodeName)||(n=L.getClosest(i,"th, td"),i.attr("data-column",n.attr("data-column"))),r=L.getColumnData(d.table,d.headers,t,!0),d.headerContent[t]=i.html(),""===d.headerTemplate||i.find("."+L.css.headerIn).length||(a=d.headerTemplate.replace(L.regex.templateContent,i.html()).replace(L.regex.templateIcon,i.find("."+L.css.icon).length?"":l),d.onRenderTemplate&&(o=d.onRenderTemplate.apply(i,[t,a]))&&"string"==typeof o&&(a=o),i.html('
      '+a+"
      ")),d.onRenderHeader&&d.onRenderHeader.apply(i,[t,d,d.$table]),s=parseInt(i.attr("data-column"),10),e.column=s,n=L.getOrder(L.getData(i,r,"sortInitialOrder")||d.sortInitialOrder),d.sortVars[s]={count:-1,order:n?d.sortReset?[1,0,2]:[1,0]:d.sortReset?[0,1,2]:[0,1],lockedOrder:!1,sortedBy:""},void 0!==(n=L.getData(i,r,"lockedOrder")||!1)&&!1!==n&&(d.sortVars[s].lockedOrder=!0,d.sortVars[s].order=L.getOrder(n)?[1,1]:[0,0]),d.headerList[t]=e,i.addClass(L.css.header+" "+d.cssHeader),L.getClosest(i,"tr").addClass(L.css.headerRow+" "+d.cssHeaderRow).attr("role","row"),d.tabIndex&&i.attr("tabindex",0),e})),d.$headerIndexed=[],r=0;r'),t=n.$table.width(),s=(o=n.$tbodies.find("tr:first").children(":visible")).length,a=0;a").css("width",r));n.$table.prepend(i)}},getData:function(e,t,r){var o,s,a="",n=A(e);return n.length?(o=!!A.metadata&&n.metadata(),s=" "+(n.attr("class")||""),void 0!==n.data(r)||void 0!==n.data(r.toLowerCase())?a+=n.data(r)||n.data(r.toLowerCase()):o&&void 0!==o[r]?a+=o[r]:t&&void 0!==t[r]?a+=t[r]:" "!==s&&s.match(" "+r+"-")&&(a=s.match(new RegExp("\\s"+r+"-([\\w-]+)"))[1]||""),A.trim(a)):""},getColumnData:function(e,t,r,o,s){if("object"!=typeof t||null===t)return t;var a,n=(e=A(e)[0]).config,i=s||n.$headers,d=n.$headerIndexed&&n.$headerIndexed[r]||i.find('[data-column="'+r+'"]:last');if(void 0!==t[r])return o?t[r]:t[i.index(d)];for(a in t)if("string"==typeof a&&d.filter(a).add(d.find(a)).length)return t[a]},isProcessing:function(e,t,r){var o=(e=A(e))[0].config,s=r||e.find("."+L.css.header);t?(void 0!==r&&0'),A.fn.detach?t.detach():t.remove();var o=A(e).find("colgroup.tablesorter-savemyplace");t.insertAfter(o),o.remove(),e.isProcessing=!1},clearTableBody:function(e){A(e)[0].config.$tbodies.children().detach()},characterEquivalents:{a:"áàâãäąå",A:"ÁÀÂÃÄĄÅ",c:"çćč",C:"ÇĆČ",e:"éèêëěę",E:"ÉÈÊËĚĘ",i:"íìİîïı",I:"ÍÌİÎÏ",o:"óòôõöō",O:"ÓÒÔÕÖŌ",ss:"ß",SS:"ẞ",u:"úùûüů",U:"ÚÙÛÜŮ"},replaceAccents:function(e){var t,r="[",o=L.characterEquivalents;if(!L.characterRegex){for(t in L.characterRegexArray={},o)"string"==typeof t&&(r+=o[t],L.characterRegexArray[t]=new RegExp("["+o[t]+"]","g"));L.characterRegex=new RegExp(r+"]")}if(L.characterRegex.test(e))for(t in o)"string"==typeof t&&(e=e.replace(L.characterRegexArray[t],t));return e},validateOptions:function(e){var t,r,o,s,a="headers sortForce sortList sortAppend widgets".split(" "),n=e.originalSettings;if(n){for(t in L.debug(e,"core")&&(s=new Date),n)if("undefined"===(o=typeof L.defaults[t]))console.warn('Tablesorter Warning! "table.config.'+t+'" option not recognized');else if("object"===o)for(r in n[t])o=L.defaults[t]&&typeof L.defaults[t][r],A.inArray(t,a)<0&&"undefined"===o&&console.warn('Tablesorter Warning! "table.config.'+t+"."+r+'" option not recognized');L.debug(e,"core")&&console.log("validate options time:"+L.benchmark(s))}},restoreHeaders:function(e){var t,r,o=A(e)[0].config,s=o.$table.find(o.selectorHeaders),a=s.length;for(t=0;t tr").children("th, td");!1===t&&0<=A.inArray("uitheme",a.widgets)&&(s.triggerHandler("applyWidgetId",["uitheme"]),s.triggerHandler("applyWidgetId",["zebra"])),n.find("tr").not(i).remove(),o="sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets removeWidget destroy mouseup mouseleave "+"keypress sortBegin sortEnd resetToLoadState ".split(" ").join(a.namespace+" "),s.removeData("tablesorter").unbind(o.replace(L.regex.spaces," ")),a.$headers.add(d).removeClass([L.css.header,a.cssHeader,a.cssAsc,a.cssDesc,L.css.sortAsc,L.css.sortDesc,L.css.sortNone].join(" ")).removeAttr("data-column").removeAttr("aria-label").attr("aria-disabled","true"),i.find(a.selectorSort).unbind("mousedown mouseup keypress ".split(" ").join(a.namespace+" ").replace(L.regex.spaces," ")),L.restoreHeaders(e),s.toggleClass(L.css.table+" "+a.tableClass+" tablesorter-"+a.theme,!1===t),s.removeClass(a.namespace.slice(1)),e.hasInitialized=!1,delete e.config.cache,"function"==typeof r&&r(e),L.debug(a,"core")&&console.log("tablesorter has been removed")}}};A.fn.tablesorter=function(t){return this.each(function(){var e=A.extend(!0,{},L.defaults,t,L.instanceMethods);e.originalSettings=t,!this.hasInitialized&&L.buildTable&&"TABLE"!==this.nodeName?L.buildTable(this,e):L.setup(this,e)})},window.console&&window.console.log||(L.logs=[],console={},console.log=console.warn=console.error=console.table=function(){var e=1 Date: Sat, 23 May 2020 23:13:17 +0200 Subject: [PATCH 166/391] remove tablesorter.*.js --- website/agenda/planung/calendar.cgi | 1 - .../planung/js/jquery.tablesorter.scroller.js | 221 ------------------ .../js/jquery.tablesorter.widgets.min.js | 17 -- website/agenda/planung/studio-timeslots.cgi | 2 - .../agenda/planung/templates/assignments.html | 2 - .../agenda/planung/templates/edit-series.html | 2 - .../planung/templates/edit-work-time.html | 2 - .../planung/templates/event-history.html | 1 - .../planung/templates/show-playout.html | 2 - .../agenda/planung/templates/user-active.html | 2 - .../agenda/planung/templates/user-stats.html | 2 - 11 files changed, 254 deletions(-) delete mode 100644 website/agenda/planung/js/jquery.tablesorter.scroller.js delete mode 100644 website/agenda/planung/js/jquery.tablesorter.widgets.min.js diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index c7b0044..132e043 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -110,7 +110,6 @@ if ( print q{ - }; } diff --git a/website/agenda/planung/js/jquery.tablesorter.scroller.js b/website/agenda/planung/js/jquery.tablesorter.scroller.js deleted file mode 100644 index 6cb97fe..0000000 --- a/website/agenda/planung/js/jquery.tablesorter.scroller.js +++ /dev/null @@ -1,221 +0,0 @@ -/*! - Copyright (C) 2011 T. Connell & Associates, Inc. - - Dual-licensed under the MIT and GPL licenses - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE - FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Resizable scroller widget for the jQuery tablesorter plugin - - Version 2.0 - modified by Rob Garrison 4/12/2013; updated 10/26/2014 (v2.18.0) - Requires jQuery v1.7+ - Requires the tablesorter plugin, v2.8+, available at http://mottie.github.com/tablesorter/docs/ - - Usage: - - $(function() { - - $('table.tablesorter').tablesorter({ - widgets: ['zebra', 'scroller'], - widgetOptions : { - scroller_height : 300, // height of scroll window - scroller_barWidth : 18, // scroll bar width - scroller_jumpToHeader : true, // header snap to browser top when scrolling the tbody - } - }); - - }); - - Website: www.tconnell.com -*/ -/*jshint browser:true, jquery:true, unused:false */ -;(function($){ -"use strict"; - -$.fn.hasScrollBar = function(){ - return this.get(0).scrollHeight > this.height(); -}; -var ts = $.tablesorter; - -ts.window_resize = function(){ - if (this.resize_timer) { - clearTimeout(this.resize_timer); - } - this.resize_timer = setTimeout(function(){ - $(this).trigger('resizeEnd'); - }, 250); -}; - -// Add extra scroller css -$(function(){ - var s = ''; - $(s).appendTo('body'); -}); - -ts.addWidget({ - id: 'scroller', - priority: 60, // run after the filter widget - options: { - scroller_height : 300, - scroller_barWidth : 18, - scroller_jumpToHeader: true, - scroller_upAfterSort: true - }, - init: function(table, thisWidget, c, wo){ - var $win = $(window), - namespace = c.namespace + 'tsscroller'; - // Setup window.resizeEnd event - $win - .bind('resize' + namespace, ts.window_resize) - .bind('resizeEnd' + namespace, function() { - // init is run before format, so scroller_resizeWidth - // won't be defined within the "c" or "wo" parameters - if (typeof table.config.widgetOptions.scroller_resizeWidth === 'function') { - // IE calls resize when you modify content, so we have to unbind the resize event - // so we don't end up with an infinite loop. we can rebind after we're done. - $win.unbind('resize' + namespace, ts.window_resize); - table.config.widgetOptions.scroller_resizeWidth(); - $win.bind('resize' + namespace, ts.window_resize); - } - }); - }, - format: function(table, c, wo) { - var h, $hdr, t, resize, $cells, - // c.namespace contains a unique tablesorter ID, per table - id = c.namespace.slice(1) + 'tsscroller', - $win = $(window), - $tbl = c.$table; - - if (!c.isScrolling) { - h = wo.scroller_height || 300; - t = $tbl.find('tbody').height(); - if (t !== 0 && h > t) { h = t + 10; } // Table is less than h px - - $hdr = $('' + $tbl.find('thead:first').html() + '
      '); - $tbl - .wrap('
      ') - .before($hdr) - .find('.tablesorter-filter-row').addClass('hideme'); - - $cells = $hdr - .wrap('
      ') - .find('.' + ts.css.header); - - $tbl.wrap('
      '); - - // make scroller header sortable - ts.bindEvents(table, $cells); - - // look for filter widget - if ($tbl.hasClass('hasFilters')) { - ts.filter.bindSearch( $tbl, $hdr.find('.' + ts.css.filter) ); - } - - resize = function(){ - var d, b, $h, $th, w, - // Hide other scrollers so we can resize - $div = $('div.scroller[id != "' + id + '"]').hide(); - - $tbl.find('thead').show(); - - // Reset sizes so parent can resize. - $tbl - .addClass('tablesorter-scroller-reset') - .find('thead').find('.tablesorter-header-inner').addClass('tablesorter-scroller-reset'); - d = $tbl.parent(); - d.addClass('tablesorter-scroller-reset'); - - d.parent().trigger('resize'); - - // Shrink a bit to accommodate scrollbar - d.width( d.parent().innerWidth() - ( d.parent().hasScrollBar() ? wo.scroller_barWidth : 0 ) ); - w = d.innerWidth() - ( d.hasScrollBar() ? wo.scroller_barWidth : 0 ); - $tbl.width( w ); - $hdr.width( w ); - $hdr.parent().width( w ); - - $tbl.closest('.tablesorter-scroller').find('.tablesorter-scroller-reset').removeClass('tablesorter-scroller-reset'); - - // include left & right border widths - b = parseInt( $tbl.css('border-left-width'), 10 ) + parseInt( $tbl.css('border-right-width'), 10 ); - $h = $hdr.find('thead').children().children(); - - // adjust cloned header to match original table width - includes wrappers, headers, and header inner div - $tbl.find('thead').children().children().each(function(i, c){ - $th = $(c).find('.tablesorter-header-inner'); - if ($th.length) { - // I have no idea why this is in here anymore LOL - w = parseInt( $th.css('min-width').replace('auto', '0').replace(/(px|em)/, ''), 10 ); - if ( $th.width() < w ) { - $th.width(w); - } else { - w = $th.width(); - } - $h.eq(i) - .find('.tablesorter-header-inner').width(w - b) - // set inner width first - .parent() - .width( $th.parent().width() - b ); - } - }); - - $div.show(); - }; - - // Expose to external calls - wo.scroller_resizeWidth = resize; - - resize(); - - $tbl.find('thead').css('visibility', 'hidden'); - c.isScrolling = true; - - t = $tbl.parent().parent().height(); - - // The header will always jump into view if scrolling the table body - $tbl.parent().bind('scroll', function(){ - if (wo.scroller_jumpToHeader) { - var pos = $win.scrollTop() - $hdr.offset().top; - if ($(this).scrollTop() !== 0 && pos < t && pos > 0) { - $win.scrollTop( $hdr.offset().top ); - } - } - $hdr.parent().scrollLeft( $(this).scrollLeft() ); - }); - - } - - // Sorting, so scroll to top - if (wo.scroller_upAfterSort) { - $tbl.parent().animate({ scrollTop: 0 }, 'fast'); - } - - }, - remove : function(table, c){ - var $table = c.$table, - namespace = c.namespace + 'tsscroller'; - $table.closest('.tablesorter-scroller').find('.tablesorter-scroller-header').remove(); - $table - .unwrap() - .find('.tablesorter-filter-row').removeClass('hideme').end() - .find('thead').show().css('visibility', 'visible'); - $(window).unbind('resize' + namespace + ' resizeEnd' + namespace); - c.isScrolling = false; - } -}); - -})(jQuery); - diff --git a/website/agenda/planung/js/jquery.tablesorter.widgets.min.js b/website/agenda/planung/js/jquery.tablesorter.widgets.min.js deleted file mode 100644 index 1ec9d9f..0000000 --- a/website/agenda/planung/js/jquery.tablesorter.widgets.min.js +++ /dev/null @@ -1,17 +0,0 @@ -/*! tableSorter 2.16+ widgets - updated 9/15/2014 (v2.17.8) */ -;(function(k){ -var c=k.tablesorter=k.tablesorter||{}; -c.themes={bootstrap:{table:"table table-bordered table-striped",caption:"caption",header:"bootstrap-header",footerRow:"",footerCells:"",icons:"",sortNone:"bootstrap-icon-unsorted",sortAsc:"icon-chevron-up glyphicon glyphicon-chevron-up",sortDesc:"icon-chevron-down glyphicon glyphicon-chevron-down",active:"",hover:"",filterRow:"",even:"",odd:""},jui:{table:"ui-widget ui-widget-content ui-corner-all",caption:"ui-widget-content ui-corner-all",header:"ui-widget-header ui-corner-all ui-state-default", footerRow:"",footerCells:"",icons:"ui-icon",sortNone:"ui-icon-carat-2-n-s",sortAsc:"ui-icon-carat-1-n",sortDesc:"ui-icon-carat-1-s",active:"ui-state-active",hover:"ui-state-hover",filterRow:"",even:"ui-widget-content",odd:"ui-state-default"}};k.extend(c.css,{filterRow:"tablesorter-filter-row",filter:"tablesorter-filter",wrapper:"tablesorter-wrapper",resizer:"tablesorter-resizer",sticky:"tablesorter-stickyHeader",stickyVis:"tablesorter-sticky-visible"}); -c.storage=function(d,a,b,e){d=k(d)[0];var c, h,g=!1;c={};h=d.config;var n=k(d);d=e&&e.id||n.attr(e&&e.group||"data-table-group")||d.id||k(".tablesorter").index(n);e=e&&e.url||n.attr(e&&e.page||"data-table-page")||h&&h.fixedUrl||window.location.pathname;if("localStorage"in window)try{window.localStorage.setItem("_tmptest","temp"),g=!0,window.localStorage.removeItem("_tmptest")}catch(l){}k.parseJSON&&(g?c=k.parseJSON(localStorage[a]||"{}"):(h=document.cookie.split(/[;\s|=]/),c=k.inArray(a,h)+1,c=0!==c?k.parseJSON(h[c]||"{}"):{}));if((b||""=== b)&&window.JSON&&JSON.hasOwnProperty("stringify"))c[e]||(c[e]={}),c[e][d]=b,g?localStorage[a]=JSON.stringify(c):(b=new Date,b.setTime(b.getTime()+31536E6),document.cookie=a+"="+JSON.stringify(c).replace(/\"/g,'"')+"; expires="+b.toGMTString()+"; path=/");else return c&&c[e]?c[e][d]:""}; -c.addHeaderResizeEvent=function(d,a,b){d=k(d)[0];var c;b=k.extend({},{timer:250},b);var f=d.config,h=f.widgetOptions,g=function(a){h.resize_flag=!0;c=[];f.$headers.each(function(){var a=k(this),b=a.data("savedSizes")|| [0,0],d=this.offsetWidth,f=this.offsetHeight;if(d!==b[0]||f!==b[1])a.data("savedSizes",[d,f]),c.push(this)});c.length&&!1!==a&&f.$table.trigger("resize",[c]);h.resize_flag=!1};g(!1);clearInterval(h.resize_timer);if(a)return h.resize_flag=!1;h.resize_timer=setInterval(function(){h.resize_flag||g()},b.timer)}; -c.addWidget({id:"uitheme",priority:10,format:function(d,a,b){var e,f,h,g=c.themes;e=a.$table;h=a.$headers;var n=a.theme||"jui",l=g[n]||g.jui,g=l.sortNone+" "+l.sortDesc+" "+l.sortAsc;a.debug&& (f=new Date);e.hasClass("tablesorter-"+n)&&a.theme!==n&&d.hasInitialized||(""!==l.even&&(b.zebra[0]+=" "+l.even),""!==l.odd&&(b.zebra[1]+=" "+l.odd),e.find("caption").addClass(l.caption),d=e.removeClass(""===a.theme?"":"tablesorter-"+a.theme).addClass("tablesorter-"+n+" "+l.table).find("tfoot"),d.length&&d.find("tr").addClass(l.footerRow).children("th, td").addClass(l.footerCells),h.addClass(l.header).not(".sorter-false").bind("mouseenter.tsuitheme mouseleave.tsuitheme",function(a){k(this)["mouseenter"=== a.type?"addClass":"removeClass"](l.hover)}),h.find("."+c.css.wrapper).length||h.wrapInner('
      '),a.cssIcon&&h.find("."+c.css.icon).addClass(l.icons),e.hasClass("hasFilters")&&h.find("."+c.css.filterRow).addClass(l.filterRow));for(e=0;e=]/g,query:"(q|query)"},types:{regex:function(d,a){if(c.filter.regex.regex.test(a.iFilter)){var b,e=c.filter.regex.regex.exec(a.iFilter);try{b=(new RegExp(e[1],e[2])).test(a.iExact)}catch(f){b=!1}return b}return null},operators:function(d,a){if(/^[<>]=?/.test(a.iFilter)){var b, e;b=d.table;var f=a.index,h=a.parsed[f],g=c.formatFloat(a.iFilter.replace(c.filter.regex.operators,""),b),n=d.parsers[f],l=g;if(h||"numeric"===n.type)e=c.filter.parseFilter(d,k.trim(""+a.iFilter.replace(c.filter.regex.operators,"")),f,h,!0),g="number"!==typeof e||""===e||isNaN(e)?g:e;b=!h&&"numeric"!==n.type||isNaN(g)||"undefined"===typeof a.cache?isNaN(a.iExact)?c.formatFloat(a.iExact.replace(c.filter.regex.nondigit,""),b):c.formatFloat(a.iExact,b):a.cache;/>/.test(a.iFilter)&&(e=/>=/.test(a.iFilter)? b>=g:b>g);/l&&(e=k,k=l,l=e);return b>=k&&b<=l||""===k||""===l}return null},wild:function(d,a){if(/[\?|\*]/.test(a.iFilter)||c.filter.regex.orReplace.test(a.filter)){var b=a.index,e=a.parsed[b],e=c.filter.parseFilter(d,a.iFilter.replace(c.filter.regex.orReplace,"|"),b,e);!d.$headers.filter('[data-column="'+b+'"]:last').hasClass("filter-match")&&/\|/.test(e)&&(e=a.anyMatch&&k.isArray(a.rowArray)?"("+e+")":"^("+e+ ")$");return(new RegExp(e.replace(/\?/g,"\\S{1}").replace(/\*/g,"\\S*"))).test(a.iExact)}return null},fuzzy:function(d,a){if(/^~/.test(a.iFilter)){var b,e=0,f=a.iExact.length,h=c.filter.parseFilter(d,a.iFilter.slice(1),a.index,a.parsed[a.index]);for(b=0;b'+(g.data("placeholder")||g.attr("data-placeholder")||b.filter_placeholder.select||"")+"":"",h=r=f,0<=f.indexOf(b.filter_selectSourceSeparator)&&(r=f.split(b.filter_selectSourceSeparator),h=r[1],r=r[0]),e+="");a.$table.find("thead").find("select."+c.css.filter+ '[data-column="'+n+'"]').append(e)}c.filter.buildDefault(d,!0);c.filter.bindSearch(d,a.$table.find("."+c.css.filter),!0);b.filter_external&&c.filter.bindSearch(d,b.filter_external);b.filter_hideFilters&&c.filter.hideFilters(d,a);a.showProcessing&&a.$table.bind("filterStart"+a.namespace+"filter filterEnd"+a.namespace+"filter",function(b,e){g=e?a.$table.find("."+c.css.header).filter("[data-column]").filter(function(){return""!==e[k(this).data("column")]}):"";c.isProcessing(d,"filterStart"===b.type, e?g:"")});a.filteredRows=a.totalRows;a.debug&&c.benchmark("Applying Filter widget",p);a.$table.bind("tablesorter-initialized pagerInitialized",function(){var b=this.config.widgetOptions;l=c.filter.setDefaults(d,a,b)||[];l.length&&(a.delayInit&&""===l.join("")||c.setFilters(d,l,!0));a.$table.trigger("filterFomatterUpdate");setTimeout(function(){b.filter_initialized||c.filter.filterInitComplete(a)},100)});a.pager&&a.pager.initialized&&!b.filter_initialized&&(a.$table.trigger("filterFomatterUpdate"), setTimeout(function(){c.filter.filterInitComplete(a)},100))},formatterUpdated:function(c,a){var b=c.closest("table")[0].config.widgetOptions;b.filter_initialized||(b.filter_formatterInit[a]=1)},filterInitComplete:function(d){var a=d.widgetOptions,b=0,e=function(){a.filter_initialized=!0;a.filter_initializing=!1;c.filter.findRows(d.table,d.$table.data("lastSearch"),null);d.$table.trigger("filterInit",d)};k.each(a.filter_formatterInit,function(a,c){1===c&&b++});clearTimeout(a.filter_initTimer);a.filter_initialized|| b!==a.filter_formatterCount?a.filter_initialized||(a.filter_initTimer=setTimeout(function(){e()},500)):e()},setDefaults:function(d,a,b){var e,f=c.getFilters(d)||[];b.filter_saveFilters&&c.storage&&(e=c.storage(d,"tablesorter-filters")||[],(d=k.isArray(e))&&""===e.join("")||!d||(f=e));if(""===f.join(""))for(d=0;d';for(f=0;f";a.$filters=k(g+"").appendTo(a.$table.children("thead").eq(0)).find("td");for(f=0;f").appendTo(a.$filters.eq(f)):((g=c.getColumnData(d,b.filter_formatter,f))?(b.filter_formatterCount++,(g=g(a.$filters.eq(f),f))&&0===g.length&&(g=a.$filters.eq(f).children("input")),g&&(0===g.parent().length||g.parent().length&&g.parent()[0]!==a.$filters[f])&&a.$filters.eq(f).append(g)):g=k('').appendTo(a.$filters.eq(f)),g&&g.attr("placeholder",h.data("placeholder")||h.attr("data-placeholder")||b.filter_placeholder.search||"")),g&&(h=(k.isArray(b.filter_cssFilter)? "undefined"!==typeof b.filter_cssFilter[f]?b.filter_cssFilter[f]||"":"":b.filter_cssFilter)||"",g.addClass(c.css.filter+" "+h).attr("data-column",f),e&&(g.attr("placeholder","").addClass("disabled")[0].disabled=!0))},bindSearch:function(d,a,b){d=k(d)[0];a=k(a);if(a.length){var e=d.config,f=e.widgetOptions,h=f.filter_$externalFilters;!0!==b&&(f.filter_$anyMatch=a.filter('[data-column="all"]'),f.filter_$externalFilters=h&&h.length?f.filter_$externalFilters.add(a):a,c.setFilters(d,e.$table.data("lastSearch")|| [],!1===b));a.attr("data-lastSearchTime",(new Date).getTime()).unbind(["keypress","keyup","search","change",""].join(e.namespace+"filter ")).bind("keyup"+e.namespace+"filter",function(a){k(this).attr("data-lastSearchTime",(new Date).getTime());if(27===a.which)this.value="";else if(!1===f.filter_liveSearch||""!==this.value&&("number"===typeof f.filter_liveSearch&&this.value.lengtha.which||37<=a.which&&40>=a.which)))return;c.filter.searching(d,!0, !0)}).bind(["search","change","keypress",""].join(e.namespace+"filter "),function(a){var b=k(this).data("column");if(13===a.which||"search"===a.type||"change"===a.type&&this.value!==e.lastSearch[b])a.preventDefault(),k(this).attr("data-lastSearchTime",(new Date).getTime()),c.filter.searching(d,!1,!0)})}},searching:function(d,a,b){var e=d.config.widgetOptions;clearTimeout(e.searchTimer);"undefined"===typeof a||!0===a?e.searchTimer=setTimeout(function(){c.filter.checkFilters(d,a,b)},e.filter_liveSearch? e.filter_searchDelay:10):c.filter.checkFilters(d,a,b)},checkFilters:function(d,a,b){var e=d.config,f=e.widgetOptions,h=k.isArray(a),g=h?a:c.getFilters(d,!0),n=(g||[]).join("");if(k.isEmptyObject(e.cache))e.delayInit&&e.pager&&e.pager.initialized&&e.$table.trigger("updateCache",[function(){c.filter.checkFilters(d,!1,b)}]);else if(h&&(c.setFilters(d,g,!1,!0!==b),f.filter_initialized||(e.lastCombinedFilter="")),f.filter_hideFilters&&e.$table.find("."+c.css.filterRow).trigger(""===n?"mouseleave":"mouseenter"), e.lastCombinedFilter!==n||!1===a)if(!1===a&&(e.lastCombinedFilter=null,e.lastSearch=[]),f.filter_initialized&&e.$table.trigger("filterStart",[g]),e.showProcessing)setTimeout(function(){c.filter.findRows(d,g,n);return!1},30);else return c.filter.findRows(d,g,n),!1},hideFilters:function(d,a){var b,e,f;k(d).find("."+c.css.filterRow).addClass("hideme").bind("mouseenter mouseleave",function(c){b=k(this);clearTimeout(f);f=setTimeout(function(){/enter|over/.test(c.type)?b.removeClass("hideme"):k(document.activeElement).closest("tr")[0]!== b[0]&&""===a.lastCombinedFilter&&b.addClass("hideme")},200)}).find("input, select").bind("focus blur",function(b){e=k(this).closest("tr");clearTimeout(f);f=setTimeout(function(){if(""===c.getFilters(a.$table).join(""))e["focus"===b.type?"removeClass":"addClass"]("hideme")},200)})},defaultFilter:function(d,a){if(""===d)return d;var b=c.filter.regex.iQuery,e=a.match(c.filter.regex.igQuery).length,f=1h&&1=?\s*-\d)/.test(y)||/(<=?\s*\d)/.test(y))&&!(""!==y&&q.$filters&&q.$filters.eq(l).find("select").length&&!q.$headers.filter('[data-column="'+l+'"]:last').hasClass("filter-match"));y=f.not("."+u.filter_filteredRow).length;z&&0===y&&(z=!1);q.debug&&c.log("Searching through "+(z&&yk.inArray(a,H)&&(x=b(q,m),null!==x))return B=x,!1});if(null!==B)v=B;else if(u.filter_startsWith)for(v=!1,p=q.columns;!v&&0k.inArray(a,G)&&(x=b(q,m),null!==x))return B=x,!1}),null!==B?w=B:(m.exact=(m.iExact+m.childRowText).indexOf(c.filter.parseFilter(q,m.iFilter,p,m.parsed[p])),w=!u.filter_startsWith&&0<=m.exact||u.filter_startsWith&&0===m.exact)),v=w?v:!1);f.eq(h).toggle(v).toggleClass(u.filter_filteredRow,!v); s.length&&s.toggleClass(u.filter_filteredRow,!v)}}q.filteredRows+=f.not("."+u.filter_filteredRow).length;q.totalRows+=f.length;c.processTbody(d,n,!1)}q.lastCombinedFilter=b;q.lastSearch=a;q.$table.data("lastSearch",a);u.filter_saveFilters&&c.storage&&c.storage(d,"tablesorter-filters",a);q.debug&&c.benchmark("Completed filter widget search",A);u.filter_initialized&&q.$table.trigger("filterEnd",q);setTimeout(function(){q.$table.trigger("applyWidgets")},0)}},getOptionSource:function(d,a,b){var e,f=d.config, h=[],g=!1,n=f.widgetOptions.filter_selectSource,l=f.$table.data("lastSearch")||[],r=k.isFunction(n)?!0:c.getColumnData(d,n,a);b&&""!==l[a]&&(b=!1);if(!0===r)g=n(d,a,b);else{if(r instanceof k||"string"===k.type(r)&&0<=r.indexOf(""))return r;k.isArray(r)?g=r:"object"===k.type(n)&&r&&(g=r(d,a,b))}!1===g&&(g=c.filter.getOptions(d,a,b));g=k.grep(g,function(a,b){return k.inArray(a,g)===b});f.$headers.filter('[data-column="'+a+'"]:last').hasClass("filter-select-nosort")||(k.each(g,function(b,c){h.push({t:c, p:f.parsers&&f.parsers[a].format(c,d,[],a)})}),e=f.textSorter||"",h.sort(function(b,f){var g=b.p.toString(),h=f.p.toString();return k.isFunction(e)?e(g,h,!0,a,d):"object"===typeof e&&e.hasOwnProperty(a)?e[a](g,h,!0,a,d):c.sortNatural?c.sortNatural(g,h):!0}),g=[],k.each(h,function(a,b){g.push(b.t)}));return g},getOptions:function(c,a,b){var e,f,h,g,n=c.config,l=n.widgetOptions,r=n.$table.children("tbody"),p=[];for(e=0;e",r=g.$table.find("thead").find("select."+c.css.filter+'[data-column="'+a+'"]').val();if("undefined"===typeof b||""===b)b=c.filter.getOptionSource(d,a,f);if(k.isArray(b)){for(d=0;d'+h+"":"";b=[]}g=(g.$filters?g.$filters:g.$table.children("thead")).find("."+c.css.filter);n.filter_$externalFilters&&(g=g&&g.length?g.add(n.filter_$externalFilters):n.filter_$externalFilters);a=g.filter('select[data-column="'+a+'"]');a.length&&(a[e?"html":"append"](l),k.isArray(b)||a.append(b).val(r),a.val(r))}},buildDefault:function(d,a){var b,e,f,h=d.config,g=h.widgetOptions,k=h.columns;for(b=0;bc.top&&dMath.abs(r.parent().width()-r.width()),w=function(a){if(0!==p&&s){var b=a.pageX-p,c=s.width();s.width(c+b);s.width()!==c&&x&&t.width(t.width()-b);p=a.pageX}},v=function(){c.storage&& s&&t&&(l={},l[s.index()]=s.width(),l[t.index()]=t.width(),s.width(l[s.index()]),t.width(l[t.index()]),!1!==b.resizable&&c.storage(d,"tablesorter-resizable",a.$headers.map(function(){return k(this).width()}).get()));p=0;s=t=null;k(window).trigger("resize")};if(l=c.storage&&!1!==b.resizable?c.storage(d,"tablesorter-resizable"):{})for(g in l)!isNaN(g)&&g
      ');b.resizable_addLastColumn||(h=h.slice(0,-1));f=f?f.add(h):h});f.each(function(){var a=k(this),b=parseInt(a.css("padding-right"),10)+10; a.find("."+c.css.wrapper).append('
      ')}).find("."+c.css.resizer).bind("mousedown",function(b){s=k(b.target).closest("th");var c=a.$headers.filter('[data-column="'+s.attr("data-column")+'"]');1 - - diff --git a/website/agenda/planung/templates/assignments.html b/website/agenda/planung/templates/assignments.html index 0ca0df5..0d14c8c 100644 --- a/website/agenda/planung/templates/assignments.html +++ b/website/agenda/planung/templates/assignments.html @@ -6,8 +6,6 @@ - - - - - - - - assign series to project and studio + assign and unassign series to project and studio
      @@ -49,7 +54,7 @@ @@ -57,7 +62,6 @@ - @@ -86,11 +88,16 @@ + class="text" + onclick="load('series.cgi?project_id=&studio_id=&series_id=&start=&exclude=1&show_hint_to_add_schedule=1#tabs-schedule')" + > - + @@ -98,7 +105,10 @@ - + @@ -108,7 +118,9 @@ - + @@ -119,11 +131,13 @@ - + - +
      @@ -198,7 +214,7 @@
      - +
      @@ -206,8 +222,10 @@ -
      -
      +
      + @@ -220,26 +238,26 @@
      - - - - @@ -275,7 +293,8 @@ - + + : @@ -296,18 +315,18 @@ - + : - + : - + : @@ -536,7 +555,7 @@ - diff --git a/website/agenda/planung/templates/edit-series.html b/website/agenda/planung/templates/edit-series.html index 14c3319..d881645 100644 --- a/website/agenda/planung/templates/edit-series.html +++ b/website/agenda/planung/templates/edit-series.html @@ -60,7 +60,7 @@ - + @@ -176,7 +176,9 @@
      - + From ade59d421a99b89e1a172064a8011b007cbfa6df Mon Sep 17 00:00:00 2001 From: Milan Date: Sat, 13 Mar 2021 16:07:28 +0100 Subject: [PATCH 243/391] templates: use .panel for raised areas --- website/agenda/planung/css/default.css | 27 +++++++------------ website/agenda/planung/css/series.css | 12 ++++++--- website/agenda/planung/roles.cgi | 2 +- .../planung/templates/create-events.html | 7 ++--- website/agenda/planung/templates/default.html | 4 +-- .../agenda/planung/templates/edit-event.html | 5 ++-- .../agenda/planung/templates/edit-series.html | 14 +++++----- .../planung/templates/edit-work-time.html | 3 ++- .../planung/templates/image-upload.html | 2 +- website/agenda/planung/templates/image.html | 4 +-- website/agenda/planung/templates/series.html | 2 +- .../planung/templates/studio-timeslots.html | 4 +-- website/agenda/planung/templates/studios.html | 5 +++- .../planung/templates/user-settings.html | 5 +++- .../agenda/planung/templates/user-stats.html | 3 ++- website/agenda/planung/templates/users.html | 5 ++-- 16 files changed, 55 insertions(+), 49 deletions(-) diff --git a/website/agenda/planung/css/default.css b/website/agenda/planung/css/default.css index fc61796..8d89320 100644 --- a/website/agenda/planung/css/default.css +++ b/website/agenda/planung/css/default.css @@ -204,35 +204,26 @@ a { background: #fff; } -#content textarea { - font-weight: normal; -} - -div.editor { - padding-left: 1rem; - padding-right: 1rem; -} - #content .panel { - border: 1px solid rgba(0, 0, 0, .03); - box-shadow: 0 2px 2px rgba(0, 0, 0, .24), 0 0 2px rgba(0, 0, 0, .12); + background:white; margin: 4px; + padding: 1rem; + + border: 1px solid rgba(0, 0, 0, .03); + box-shadow: 0 2px 2px rgba(0, 0, 0, .24), + 0 0 2px rgba(0, 0, 0, .12); + border-radius:0.3rem; } #content div.panel-header { + font-weight:bold; clear: both; text-align: left; align-content: center; align-items: center; display: flex; justify-content: center; - padding: 8px 20px; - color: rgba(0, 0, 0, .54); - background: rgba(0, 0, 0, .03); -} - -#content div.panel-body { - padding: 1rem; + padding: 0.5rem; } #content .field { diff --git a/website/agenda/planung/css/series.css b/website/agenda/planung/css/series.css index a2a792f..55cdf98 100644 --- a/website/agenda/planung/css/series.css +++ b/website/agenda/planung/css/series.css @@ -256,8 +256,12 @@ form { } } -/* -#content .editor .row:nth-child(2n+1){ - background:#eee; +div.editor > form > table{ + background:white; } -*/ + +div.editor > form > table td{ + padding-left:1rem; + padding-right:1rem; +} + diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 6cb2200..8cdf4b3 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -289,7 +289,7 @@ sub show_roles { } } - $out .= '
      '; + $out .= '
      '; $out .= ''; my $localization = localization::get( $config, { user => $params->{presets}->{user}, file => 'roles' } ); for my $key ( keys %$localization ) { diff --git a/website/agenda/planung/templates/create-events.html b/website/agenda/planung/templates/create-events.html index 9cf4006..68ff72e 100644 --- a/website/agenda/planung/templates/create-events.html +++ b/website/agenda/planung/templates/create-events.html @@ -7,7 +7,7 @@

      create events from schedule

      - +
      create - -
      +
      +
      events from till
      @@ -37,6 +37,7 @@
      +
      diff --git a/website/agenda/planung/templates/default.html b/website/agenda/planung/templates/default.html index e4afa93..684689a 100644 --- a/website/agenda/planung/templates/default.html +++ b/website/agenda/planung/templates/default.html @@ -4,8 +4,6 @@ - - @@ -83,6 +81,8 @@
      + + diff --git a/website/agenda/planung/templates/edit-event.html b/website/agenda/planung/templates/edit-event.html index 829d5b5..d606837 100644 --- a/website/agenda/planung/templates/edit-event.html +++ b/website/agenda/planung/templates/edit-event.html @@ -52,7 +52,6 @@ } ); - @@ -266,7 +265,7 @@ -
      +
      @@ -575,7 +574,7 @@ -
      +
      diff --git a/website/agenda/planung/templates/edit-series.html b/website/agenda/planung/templates/edit-series.html index d881645..11969b0 100644 --- a/website/agenda/planung/templates/edit-series.html +++ b/website/agenda/planung/templates/edit-series.html @@ -99,7 +99,7 @@ -
      +
      @@ -190,7 +190,7 @@ -
      +
      @@ -451,7 +451,7 @@
      -
      +
      @@ -484,7 +484,7 @@ -
      +
      @@ -604,7 +604,7 @@ -
      +
      @@ -623,7 +623,9 @@ -
      .
      +
      .
      diff --git a/website/agenda/planung/templates/edit-work-time.html b/website/agenda/planung/templates/edit-work-time.html index 3c6705a..de4149b 100644 --- a/website/agenda/planung/templates/edit-work-time.html +++ b/website/agenda/planung/templates/edit-work-time.html @@ -37,6 +37,7 @@
      +
      @@ -303,7 +304,7 @@
      - +
      diff --git a/website/agenda/planung/templates/image-upload.html b/website/agenda/planung/templates/image-upload.html index c32c4e0..d442711 100644 --- a/website/agenda/planung/templates/image-upload.html +++ b/website/agenda/planung/templates/image-upload.html @@ -1,6 +1,6 @@ -
      +
      failed
      diff --git a/website/agenda/planung/templates/image.html b/website/agenda/planung/templates/image.html index fb9d71d..8078aef 100644 --- a/website/agenda/planung/templates/image.html +++ b/website/agenda/planung/templates/image.html @@ -66,12 +66,12 @@ -
      +
      -
      +
      diff --git a/website/agenda/planung/templates/series.html b/website/agenda/planung/templates/series.html index 0164013..db1e3a7 100644 --- a/website/agenda/planung/templates/series.html +++ b/website/agenda/planung/templates/series.html @@ -1,5 +1,5 @@

      diff --git a/website/agenda/planung/templates/studio-timeslots.html b/website/agenda/planung/templates/studio-timeslots.html index 37cd1eb..ac36eae 100644 --- a/website/agenda/planung/templates/studio-timeslots.html +++ b/website/agenda/planung/templates/studio-timeslots.html @@ -20,7 +20,7 @@ -
      +
      @@ -111,7 +111,7 @@ -
      +
      diff --git a/website/agenda/planung/templates/studios.html b/website/agenda/planung/templates/studios.html index 411d33c..b7b3b12 100644 --- a/website/agenda/planung/templates/studios.html +++ b/website/agenda/planung/templates/studios.html @@ -1,11 +1,14 @@ +


      -
    11. 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%0DN8CMl27C`O}zhFO}TJ0=iL+)|Hks1 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 Y<2OF_Beh1*ARi>^>FVdQ&MBb@0PM;})Bpeg diff --git a/docs/screenshots/calcms-roles.png b/docs/screenshots/calcms-roles.png index 1cc7602ed338e12376473d19e0fd9636d3f4196d..85c5010b0e201718de7a3e3b9e875cb062b55f05 100644 GIT binary patch literal 58655 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 literal 90287 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Ȍ(CUt@b3l+Qq9;IT3WZiNemBpG7wytGfhtt&QH^ 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 diff --git a/docs/screenshots/calcms-schedule-studios.png b/docs/screenshots/calcms-schedule-studios.png index 2d6f0d76f684c1714493af19cdd53fe2cdcb442f..28735707bddc78c7c45aeb32eb8b9753f3f0fba0 100644 GIT binary patch literal 98395 zcmeAS@N?(olHy`uVBq!ia0y~yVCiFEV2|H*Y zfq{Xuz$3Dlfq`2Xgc%uT&5>YWU|=ut^mS!_#L6dXA+qB9!*T`&1qM$S$B>F!Z|>Gd zggl@7|G)SH9*qgCIpSI3r`4BemPjW^zX^Jir+&91Z%J%@j?(-!8^i9h<%n!Mwa&{v z{^70A%&T<=zi_F9PM@{rXil@)!8+cO*I(GD=`0idyJUjdl8{*`9!eV+&lo6w_?zs& z$ZvecKw;wZ$Gdh2Jv=k>cinyabC&NdpU-Rf{eFLa00RR9LxX1N^SR}(zFv=47r6YO z-Tu$RmTkWu%l}`Ie7x`F-12)1bJG%b@A-1cnQyeGo=M#}PpYi)W$* z6PVSYh{dpHXO^A%_v5(zx7YvP?f+j_B>+~sBloN#OOS&@0~0f|sfERg#>U3i|EDea z_pgo#Vo}=C$oUprJUmwp95}Fo<>G?}4_4Ik=QD#f8_fQZ-n-bN`&5>HR&~?K|EfG& zUtAD*TWz5zA}YGncedF}cKaWVb$?&Szg{{$?$X7@?puqVda<&yW+o&&_$BL6w=(FE z*ITO+r{&q%q0!Yrsk_6p6ib@)%~V%@C|S$5WY#i;EA1iGMZ1?RlDx~}e7bz2*<6d2d#9avsl8t_&Qd)lb^k}>WxmTdoLzSJLd1R3ZIh4W zUAer~KRfvikKXRU=(#$<4`->gzPi@GKT}#=Sn~h&BpuC=m+i;;mQJ*9PwCttnq0%y zd%yFHxn1Auz3ToxXANbPnb$r|-Dt$9fQ z^6Ndek%pRf&s(zQ-&=8mbIZltVn6mfY(*-zz7orhu8EbYw#eL)c2?@|GxPly%lH3| zT^qMIO8)N)_tNio%U^59|Lj_|YE?*l{Q4_bLiVfn`*2!Xefg1gG~RB}+?&!<_OA8O z{W$yUkH)E8b4%9>tbO{MPfLHJ>+x-=*@xS7Z`JGh%=~?7>g*?n8E@WPHtUpEsQFi) zYG12W<=WMU*>Z18SgUK@ztXmHv)ujdF&B+r_jr2l_FMfeV3(6=b!o`^D{Z{eTM`e8 zy|uZv?uajYX+r83_KG<^j=S$o+IVGk+g<6lTWQT@VdWmO`dQ`QKD;kmz3%n3-j6d) zj{UK_|HWkGvQ0szZ_h=V>^G1Hs7KYKm~XS`ifT^r!$ zct~%qjo}~0z@}~XwNASy`TVOB-v6#V>Qqg()Z^yx>9;liUDognT5DqaTx#O!(6V0* z%e2#B=Y*W71q492f4E-(SlsZIkwBeV5EK8NMj+9phW9dLUYbL&Jen_YhWDxul$U7x?n z?06B9s%BME7QNDs|LX3yC*-E8*{^OY?JlYKZTYoo>tVmS_LYyOg&a-H4)%_o{aQX( z_txg>h4U(Hyk~A)UV7x%63fXJId8M1vsQ20W_wHa{~EdY)WA0mPNpWW-ebCvG7wqVt!pt(D4Sa$yPOP#5H*XZ5rn(kMRR{FQ7<%T%^)6(rS^zP#` zy*efHyl~i7>%0GRpBkRRkt?8Uem18-mliT=-ur#&aN}PdL~&(t=>}a zKl2=auX=D!o7waH5Vxc$XI=#am#!?EKJW6^hhj5V_5QRx6|*HE@l`^61J*;UI|CyD58R$2Z$qBo`M`lml{ zZ$Iuimpx%?|L*oGUHAEypw~{1tJ*h3`$DEmC`5Y3Az9Teod-jq_FITfW4=^=OOdb@h9GSKpqz zHf;mnb

      sBF zo-xzMO4m~{r#-uKvd;N;3$8xQHSxfu+il2VItM^>-X6N`F%gpWy z&w|I<@{;m${pdfr85s-Ktl^n|-aS74{;c1T-MfqFWyT$9z ze>tq3BO?0L@b5|eAGMpFN&kIgC2sv*FZazme~a&r71iFk?)-jp{f>%V(=(rEUwMCr zD<^gLX|{uMc0b?9U9A3osXlIchmOJi4|6^rjb}(^41N03C2!lMf4dD21qUuWq(bO z?@roT{bp`iY`ExQVAXnlqq*;w-bswPedBtoVE9+NJ=YZEO zy+-T$FPGTvZZ&%Ke{AEz1@id1ScE$x$txCt_`yfq1~vlgXdlr0*&Vw=6%@a?DMV zbIr$K{mX@Gw&-nqP%>+Vq->Jjo`{Twbq77FHqM+IGHvFL%hhumH)9Ej z%#x)YL9h2bn-h1ZP2sR(!8FUwQ=a!ke9|>|nQS7WD%LA>dgq)i7EgT7{LI`G9)I!^sQShTa%@+@YZIH{aP9YV0iuY9Lq0~%h$^-`F20CdvlZX@pBu#-Z}b&HCnUo zw@tg>{KqA4?|(=*EtYeRE6zUb?2)6bt`GL)*Ge|!-hbe8oWHX4_pbhclulnurJsgHn$y0f9|^pCBzl_Ou3zg4 zUnVm!S6bf*dG~qUzo_->uOIj-S?_c0tiAX?YnDaE%SF3i8#P~U(3~H8&pcyQsu&+44nWCMv4r}Y`>P~6|~YFDj<_3of|TCd(ezQ%K*x^wd9W65jn zPIY=!yS+Xg6yar8-m%kG$KvVD7e}Hq9!$I6c--{=-HqF9($}w9T(f6xzyAEE$(QxM z$yqyOu6w$K)y(+$@{^Aie(Y$x_s(utG<*909S0^H?^~qxO@76Zy$TDy{#tY6ht2j9 zU){g+7xjK+c@Asmos?cN_Bw_@8iGwr`N#&&l5l1f+X+&Ocyy8oxI>+5Z`Wz(L? z+4gRYDT#eJ{r%n}*L-_iQdH~zJeIdCeZ5db zf%uJ$vmUqntu5g>pK$kWY{ij}@s@kPyA;iZTe`+xw87QIMdi4p;f&-T)wf^to~e&} zA${fQjq6{YBnwXLMYL>Qzvt9s$X~wft@)LlG6^LmrA?YSOLv0QuV(s&o9^+ zlXH7p@A?|mrL#7kh~FCXtGN@yq*bg5>#v{Aum2q_)XBov-n_o<>uPDi=_iCUlai7) zJD>1e7|@YEzqV}iVFAbh2bipUWebYRSKkiY|MSfJ&#&wI)uej!Tzr&1O}V+R*82Xx zZ`%v4=FXOd4Kjn`=0vdWQlFVdQ&MBb@0Qb?6F#rGn diff --git a/docs/screenshots/calcms-edit-event.png b/docs/screenshots/calcms-edit-event.png new file mode 100644 index 0000000000000000000000000000000000000000..f36f93e0bee7508ab229d22c8ae3d5ddac3c18f4 GIT binary patch literal 89503 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 Y`seE0+wSN5QU>uoUHx3vIVCg!06+va8~^|S literal 0 HcmV?d00001 diff --git a/docs/screenshots/calcms-event-editor.png b/docs/screenshots/calcms-event-editor.png deleted file mode 100644 index 2ec9fee9a78f30feeeabe792d232aaa50b271b4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131386 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%0AoQn{L~`yk0{3_S?$%sh@W~Ss^>S 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%0DN8CMl27C`O}zhFO}TJ0=iL+)|Hks1 zFu&)KJ8B}5KReie{J2q)SLAhOmvG^|liL?ci#$p*7F>PGVIFI?m20Av>#3AO2_^+P z_m91_;clB)^ioaPt@+S~n@8NM`~n4~AIZ+<4P`uzG>9kX~;6C17f@VsC8 zsU17kT?WluS~#;cfI4o)F5K51{Xbe5_xs*g3%6+>LPe~nGV+G#_ny7#@@I8`2>Vn= z{a)YD$Z2ut-oVdO|>!z5C<C_!+ zOQKzGyg#%`W6E`wf}b%i>8objOfA^U9vXS{TA29Pv;T}UpGK`KlD{gtVN=na15-D5 zJrlFP7$qKdv~l}M*W?9upVyeDtM=BZ`(C#;I=z48Qytmv>~B?e_n)8K@-}PU^V476 zrqw+^JLh)wy3)y8bByz&d5&v+FM4uqd8)7Sb&H}k^|}%M&RZt!%Hh9sTCDus@$zRT zo8;Edv{;>)_2t5&(gn9-udrO%_}Q}hw%+mkms->VPHL@Y_HUm2YnqR|VYE!t2C3zx zqWgYvTwTlf>bR|o(d}*Ar`ys$+ixyDeZP3K)rr&W^(Uk`Pi$X%j42{0|AI(W*Yx&; z)R*^*`w#QDHLxr((o_lhXnZpDHmIc-oA7gWR_2~c_h(-h&bm2$h1|X4-}z-5m(G8Z zUH?%aI=7IoW!|G+Pv%XLugiO8UR`=U=zxNK{nmN!W!EfUn4M*7>GfaTdiy`_-ug1> z)s{||U$6J8uiej(mi2w-{L5upvzf10&;GD>)1rvjD_eeM@LicNxka+_-1#(-E-dL)9;J*?%yT< z?yt1)ot|{iVom?ksVDu_?WZlt&|p;lEh%KR-~6`QrwfKhN_7rr?h=_AysLHLlBP)v zs`HN7%yE;vmT7)F!#vXP_+^PlR+Y(xuaYYbCr$UfTzPd@%Zj`s0@n?XTwan~7_>6P zZ@tSS8QcHXuT2Y|{hL?7{V&V@?8C@Q^WUepeSDd|_gi}B#Lv~aJD1p7Z=A9IGAREr z1XNX5f8_=*i6~rn^X;eDr$<$tCSUj7VCV99rzGP(hf3X+myfSH)y3@NIQ#I~W*HOy z%P&3(W#ud`bj*LG(^eICLP9J%iaT-R(PG9-MyO z=Z5brUbTMD*POU_2bd@OOzoeo3`&Cy{tI1E5&ZJ{gu6Zt6Fst{^v%8bu*xH#) zikoKi%IfrV{pI`j&tJH3q0h~h9WAblyPsxTfw}~(mv7&;UjEnjxdtC-6-&qF2TQCj zxP4Wfe%;Ap`p2x6=+`UzLoONpwyG)KBJrwHF*#yQrf$novGc4;sxmuI`IZ`oMM&8reQ!_(v z?h@8d{4X^!FYsC|Sn$G1GxWGXc)+E_nd$fD`}Ok)rQe&p?Uf2w>6LQPNvxSuEM}~+ zQvVmN{?$p#_>=8vaUrAThfd(N96tWwS`D=NK6h*0x~zc84WuN{2@-d-76a-6P}cUy{PKcdX>_ z*mH8C&g#Y8t%+u{H{O1GWQ#=WHYY#r<$(qb>l~sQFER$jGAbVlS5a7)AZ0e;rp2eA z8D&*(UM%BbEn)VGlCSdvTK1iac?XK_ z6g^|i+SRnk;ncL5oolqyjl$Y^UGm>4t~c&K)a>mM9jsi~_iX7LPLs6)`*r#XPjpNQ zGJ2`a^)t)P`P79q{5hB1)AT^IBTgKK!auiYfL6*Bat7SxZBb6&{%7;*eY~;U7avSj zz1S*{WOcE8|5@jJxhFevjiayMIq~YD`HzqK`~6-EOt3g&|1SH<(>nHfrsj{l_8#2- zcaz=b+#lCX_WV*>zg%la<=M2Z_PD3)>)$Q0wLNY2>7@DdC2flF{*15WXu+*h)yw?xkW_QR=+sm>%=3*%zHC09s3d?H{5<0OgJe@<0z_eLm(ed>EUcjlqh2M%0ip7G0P z0#o#jwxqz0)rFT>Gtb06J9A)TpnBkx12^(j_9^u}ZE4*y>)4VR2?AS$djEW@xm1~X zX_`q}BJ)OGL!CnIV`a*j-m^*qXYE;MBb3GDe8(XtmPd8zg#W*53>=N@J13nuBNsM_ z>+pMdwQVMCUnhuu&NSZTsJ>OD^=FIZTdm$FlT^IpBAfEAbgu1Be7P;5N8;kynT~O) z>lQ?pa^2##*!$AN`Khx`Wh&<}Rkx&t60!C#Pi1nxNIgBx(8NULJcC%h5Vk|Vbd1Eh zTMr#_5?aY(Hkns<;l!AEDL-rvYqWA@EuSUH;ODGmfAqm`w#aL{crGP)NE)c{Na(P6 zG#Dnfm@LuF{AK=qvWC}$O-l`q^*q@-+uhNfv2t&v#3Z($Zz9W9bZ*h@ofM!E>g6e> z_VV)YW1lW@m-H~ZwVClOR59|lQV&ztu!%Tv;if2)ddz+Ripdp;NZG*}TJp{Ei!!QuSnKsL8)tK^ze^>q)&aYFm^EzqO_Tsm5t{sh(Th8r!t5YCppNa3|FE20ieB-}lextqeKu=Z7(iisK z9->P;R(WaO0KjFJFOaJfvJLlhlOrLfi34ck?<(CE6vu978 zqRE;WQI(*%%u)DQqVmg%Sz8p(zWhFS+4alb|EqsX?#U6jT_pXw`&zPPs$-x?kgH}% z$)%Mhr`e__zT9pQV{@k9q56^O_SW0Eg*jXc$>l?b`&CFcC{`tEKFKmFV z1-N$NNN(Qm7r$3!WL+-um|R?cM*6Nsm(jbY3sX;JW!^kB&GuMphyC)RGqb{4)V3R~ zT%)XCZMvQ>{iMa6j^i(vTHe+w+WAH}_n@(2zV*6ORZZ!etzz|l>akrEvsu;stH96t z@}uCwYb-M_ByCX$EfbA@ouvO}{yOfv|K}Te&sRO7>cRa}Gdx6V`A-Iux7#Y?=AZvw zIdA&(aY0z zu8r5XsT+PBU+uZhBkAS#gm=ct22veUkFD6TuIW)%(xsCoulMckJ1xIY#&lJZiIkzF zk3{dWHTs)x*5vWeuy`)^>Cc>7<{2%sSG)g93oHyZyJU9we#qtLO9fXI`hBjv?dj{W zk5#Qjz$u0YnjQqUFiiCmzv`=aC|6L8r_m*P<;tvOdp2^%zF&G&c)_w=Gc~{O-u$-Q z?y^Pul}}Q$X1)Hf;<>`doTu5V4~GjcQ@hZ;uKePYyk)C)P1RV?n)UJL;gJ5E>@xNh zE3=erqG#=t`P`;_{yK6(jP0zlqSSXm;9aMHdZdX z3Gqc|pKYr5%d}j{_wvQAKDpaxx_h06cvX;kt{^@E?TPv89L zet5#~wYXiR`WU6P+z4U%c(5}T(Hr4AL{;92g`v3W&u)nXh!fZEl zu_;WPuCVUd#;rF`ygqrj=1@6<&Ty&FVqS|`p{;B?Jk9;&{KYCs)Id^l=mw4Ab zzq`u|_g(k=S^AWRm)Fq7z(;AG!c3n@9%=v1ev^_r_pR4_;|tvvKP`Rl3*;?YrPi^1 zX?H|^!>bMQ@wpkVo?nst98_rTW;B1jd)&tRb{?*gs;29TKOUb6DpbT~K^B3CH@#YD zxJHoAdV%rPsauo1d)=CO zf1ENtA5r|vXtVCt3G<6~ORvA(_h^mU3P+O&`)%{@#@Z&fy<4#+^?2|8jT5D|%N9IZ z`^mw=g{7ly@s3r}=WRPP)b1B-<*Cd|bPFr3WcWbWL!j-prV*>-;#JzGC?${FW_H+Lh&EA0K{-V-LXF6iO z&5W`2<2T)!wEpAi1xz1_d&D(`buJ&J_ zS?l)XjA4rAWuLFp7QZ|fxchj2c($zgezz4XMbADzo_#*-8i%i(Xn5`IjLwXLl@+s; zHc!b9k_``kB(r_effBd$ z;vK_NVd}z$@%JZS`7n;O%J@#Vv3>G@ND8WR+P|tLc_^TyvG<(#P z%_j4*wq6P7n)*7d=xY1=q^qk}uc+A3bg0Sc%92?#e`Yf+4R?%Plw=s8@z4IK$p1An zwC99x*jA}~x^4r{+UUh^b{QEsI0iB<4WB;AM78twBNbiGDNDK5zptFT{oCHw$42aG zM_X1NIPz-g>d43qlcvwFnRz`r{`jUdPKRbB9M+XCh5&wXbfBqKHP>6iCeGvc zzB0alUliQ=<(?k%zjxwleWhvFx&*V?8)xXwIQvX8UTrdG=v2oY-8Y^7=$dEk+NUUm zxtQ$m{bpfT&MW4Ne`ObXUlw-aP}JjE#w`mvKJ?>q&!d)?k8IDFu_Ef^jT>_}%j_0Y zlwzGT)x@N-z_Kx5+TU}PQruCJJ3F@pyj^|#-VL`kLbF!i3At94xtj48c)3y7t_|+d zAAU-0FmLM!wdA~7{qa{;;dWD>J&_Za)~s61wLkmG_b6#yUdK20qE0bx-PC#Ql<~8Y&ns8M zt=HIP?Q!qW$^8MTe7{3{PZ%v*(9I#;a{i#Z#+rE1~UW6q&lrx#rQ@!dSoG?>SDisp-x z8}FqV9k!Ip`|{|!>&m>W#rqESuG)I>3e&zc{#QDwU$5?1u`*vZ=Jg^Qp#_?64!ti< z)4!h~YyP)!fxl|R>(tfHPRb?6-ad0&)jN*i)<=fi%U2`y-exbW_|quaFIXEG^VKoR zMr&ae|GZUfHMv`Nq^+L(@|KVB<>&V&?DfC&>(+%;O)gPyT3+q>q4oMh>+3?piPx^P znK~}g)mm$sXSeIp-Q%0_edifh;Ja?t#nIpLSpaiz0Y zt~ll{n3a+G_=vvMnH{%cAawMLo~I zi7oRKCVB)c5ZUnUZ}!U{vFvO|8xH0;7-~wKVe4^IezD*MSDz7kXGBv;ywvKur*`qL zadtocXiLGT7oO|Z><~Jh#SSvWCR*-iU(LO`uepns22T3v$>YY{9&dl<)K_iG(l;Vq z>n_~B*_{;Ru{1cQ?(fq%HP2PtHcxDsc3|6;V~z9W4y2fFTw5ot-Zw|#{4{s}bpDIy zH1chJvt`?F5KC{Jyl|i5FaK|w_mo(^|MO4wjG1v?DBq=%ChC226>iC@%5W`~5ZU6$ z`&`uTQPdn4rN%`XFLuq_YG>*@?cv@PXMg{Z`MzD|%pLQL13SzX-MV{Yv7=Ih_VxYj z$G@{q6nn*_mnD5ld>5$s!BNX;=(Im6i3d5t$Cs>|8Uc3y~7zM^ZIwR?9eDJDfzHi z{%^i%&r3}7CInxI#?x$oJx@835k9p#ezBMNpM z64BwRw>+Iey4Owek7yEKN$ma$ian7&8=;zEW_1*MyFq%m$^knh$xcY7?$_#?uO9{ee)(`}as0Dr{nGds3lMHOqNI8r8udwm#=%v;YirB` zofOl|?tYHc;_B8f34ppuu|*(hqSa~11IsI3&a+QHeVAP`Zbn6mz$2l{=l{LWd+zNo zZ`b|QN?fVeJ7Q7$h0nb{Z+WS8yb;peU<3D?H4X-x~OqVN8 zluUI^V_0)ERU}&dz2fsF@N{-0X?yy4xwwjlt&-dKe>lYb=b8C_%hxq}D^(Y?-~Tbc z=1qRxIm_M8^^_UPM@*sMrzN6zPCB` zi(>Q2^rH-|zU@D-?!Dci!?)epGWLHl=znwLs5iHX)9t;_3+LUO|72G6pDT4wwXgho zzu=2Y!(9LNqTO;|-lre`w*GUDdz0kt=>O6-zrVh%`TJ79wzzM@{J*{YpTDN-e{-Da zy;P>S@ZIhAhq^wxJucf;U;h8dw)qxkF2~8&AtCM77A}D%RYI-ur%k^DOu4}k))+Lr)BS?oqbxN{=(*hpT6kxMFE>% z=Ra?a^%w3D4X#L3I&t@?$m=;eCI1a#Xa5p@-3(9rg`T_qe!JayH0jO#{qhaDx3@9Q zJb0g(oo_?oW4FAWPp54@m+r{cp!<~KceKbMccd$e@+tREkn!zY+edRFkE&hE$e4{!h9 zYE*wOqJQ^u;k-{ZGf%Bs{^O!{{Sx)OgO$0e{B>^~^P;YuKh1ytsPq4u%r&C-=hury zoWCCRf97ocwY#$)37OS>_`d119`l168hd*1Jz$~)WB%j6eb-!kv@73V*orI1D6cNv>cO@904 z*D=3c+pm3UmF_-vsW$Pw;w}@1*n?B&-QM~6TGzzcKQ1rbJMnzo(=Y~~lX2hd_cz-f zT+GApYE|})s^@0w^bMa2l(%)}HTmy9Fz@=V3kDA(UO(KnJ3rky@m=cu=#9Mo@8iD7 zy-HHBjFsV5b^JbW?w%jpnBS-Wy%S|-_gCoDHD8;w%h&JDoia0h^>>w%ERWZv8Cu2N zJi5-AZ_oGKMIDhUR-F5annI&(e14mpy^$DqV`KM)uG}B*Pfd&4w(I%}o_ERdAFJ|i zPI$f1>ee+xG?;G+QXMc#frLR);?enAJ>dMD2IN2sSIBL$j{r(YO`NfFZblv#x-Zr1s zGVGnaNMrBo>^twbP4fP4u&Us#TG)o!%yT)-)|}q5^xWUKD&F}C$^Y$|+N*XHrm$FC z+c;m(>t>MIu4x7K?);<_X5RMiILVYX8OjzOwVEl|6UiT8rQR z9_IYodE4-9-4yls*>{$`Q?zuJo9*`|G5b5KKObFP?3|gap&iA){Mv48cSp4rT@s@E!!rR!cg&G>idnqh2x)D z>&JLsJfJwQ`p5g9VQ;n8{XTg=i0z4}MP&W!=8(FdTyt0p`Tlm6majIK-Tq&dWaZ!d4_EHnA8@WuUifn6{-?{<|DSQ3t;WXSLu%CjpU=E= z!diFSI8%D^@xq0QWp8d6n*I2FfSI46hj*LZw;RcK>i_@!EX6Xi0dBetjSB zRlm1Ay>#yRR+hQ?rk^S<9L)WGWz$NQUC!q>f1W9;BFkUsF6l5yxG~n|am0Du`TulO zuPOPo@3!1gEuVk5b2H=7=YP?fX3wL(J+G{e=8fO6nc z-d^jQ@fFhF?{Ds0Bsux?+aJEV`O}gw?(L5~FT3c;y5BpOA7cD_w?yXc@*M>#`^C#X z{IC-}zwP&q-CHK4u zy?wrHdH--{Ec=Vp+I2IZLmI>t&hEZLfj|VVS#|C(k`^bNp7R=??BTmkL)lca4DFb!Cf(5b3N7tG^u#|e_ zuwm{z>GjJySmv_#9a?o;LpC@3^V{cMAzt%;X!U2`{&DN?yNQ3FU6)@!s_rcAE~+Tx8l2Q-@M?zZ|0lz zi@(_Ox^7>Qzu=cQ>DRZ>WvwilkS(1~eH zk5*k;Qm`VuBJXF+KTWwkJ9Uh`cN8$+-WSkmeCg2U{IiC#ieeLAveoCBNt?~?WtXdH zIIXw4C;52a#^mFCZEbDmGIflfS_bz#56y4L@3m_#e)BbSo~2dZ{3C(i-dH=nlr1lM zyh~}#HKkMQ_BTg|@oca!D9I_jpOT|{``ymDzOPSdXlgFGvA6Y7iuHOKxw+j}{i`4N zM!Zg~Rh&>U+xB-=EbK~s7LjK!x=6t)s`&cx3$Lnjn zQ$(UPb=EzY7QOz+mEUG_H{N-ic2xJy#-&YfKK`S3E{ znHEC%o7Hce?z;W%VW0174L!YOOAeiF`{1z>CX8oSUubJH+uxg zpKCRiZP?JU$+vvN+gZh1cs|G6USBFZ+blF7D5T?Rl*>_Gxv&doFa9emo$z?)^cQyy zue-Z9ruh4|GY>w_>F;JPcV%RL+x~)8Nd4RAV+XWsvb!~I?r3ZhcDz;H;G(`>*6&fl z`qO7};ydc{oE)EBm!IF?+3(7I`04H}9#@IK&{P^O3PiX)3gTZfU-`>$!zg=V7+f zH$|N~xSw>Y&zn)0P+HN8n> z75D7kk>Vtkc08)xFI3?tLv!{=NUy`+S$%w}6{JZmus#pDFo^U$Elx z5!3mx)~RZS%=wohA3mM+k3s)kRcqJp{5h2YO2^C0Bd;X~?rF`vxA;xfC+V8Zqg6KM zcMkB*zLuJ%cs@X1`0}|+_uRhE47$%9+{gL0s4epF&LzeR?ULrsnGuv`d{p%4hp2az zPvp+rxs|`B*uMJPo|3%4o6$i`szTY{t>w+R%*c}H~!5Q4iPPzX$*Pp*ghyO*@wErJJ%BT7o z$@TmDTG*woU%6i>NpQyNOD9xSRYBEi#M*0`@3%&+1+i_u-AG&=_;yjhpc{hjeX z{`@WTxP{((+pMphOAbl$x|N)GR;hhQ`c!8r?#r*A3v@M$YRP21S9_=@ExEubI3mVL zkyGe$Z|u2{^5R6jhsUbr7b$(Qv7VoqkiKc!Z}Yo{pWEA4{l3?7bzi=_QoHY+Q`P>jO4ji@2kVbtQC)t1#_^A*qhhpQ=dFGCI(k=S^8Yxd-SW%p z&R4zrwY$0?y*k=2vp>!7t{?YBzVzunDl>(i)bRb^nRUK6bN}DpH?Mw>**kClv&;Ow zXX4&ewz|Lme$MckM0@<5qjokmWnR&z%VL%pP0v|$Wy|F2ePxSeUme}JQt7j+Z87J( zuUhx*FZijy{jy3l#(2Kz^kTd4=a=Q@^Mgu<{tvzmI+kY@Qk0B8mz^^_^L@vh<8^s@ z=Zj|kPc5%|KRe~(ccd6CImZ95FaBGlB738F8s`h0HtV``ie5jDsJpS%H$GhF{H5n@ z;=&V5AAcN4om0&>ch;n^J&y$@a%S%LVP}nbxTQyp^{|nKj-DQ<2N?h7k@)6wtG3?E zsrlF)|D-$q&!fuj>=LztlmGAE``fx@=lw#N|8vY%E>pRp!I`b6q_Mnc!-Cm|n7S9t zsa#l)^4aO7{3}NO?Bgk~7l`uhov`kN+uOFB=LJ;>vK0#h^e-hYl(cxYaBD7~#^wnD zMOLiE6SoO|eIzK9rm=g)Tf?lYF3F3Y|80u-X;Zmx|MQ==_Y?O0td*bctv6k}T)X~q zV)@BbFD)t0Q)!!*?$enqZmE;{b(L0+hCq*o$v>xSx2*QA=Du~eXr@q?OVDfwsf!!L zo`zKJIz82>$6C@m*Lmk2i^Vgzo^G05X7X)~!R{w3w`mzxh6`^riDukC^<$;^>BzgQ zE}OP?u{cF-5IOy_WZj;wRAcX`KCKT0ethfGFPAM&OP_0XE>u%a;=+R~)w3GXKHrI+ zV-M0ZtcRyi&Tn zNi1FL-tN`fiu6YcV6M+Vd2x_4oGLq)*$jXO+jye9O$dpUeWqx?pzGI(n zzml%o`R{DpKj*#itR~j^8UKFnzk2=g^+~_Qvwm-I2x|25>Rx)n*0#b{u94;nTcNGBSJCJsaa9{YUepuYQP#FjUr47Mt?_+m2~6 za+R^q=JwiZpV7*-Qtr21Wc~NAl+5g)3bSPqI?G;^L@az^w(pYv=RNAZnZB&)qQ;N9 zqy<|San5}6jW^sw&;6Lm#DdiecU3g+U$$v(PH_5O-}}6OW0R%lp3a%`yLG`lpBB+r z1CjW?Y(=SyF^5!k-&Kk{btNME>Yclcy*_8Pwh086Sglz3fzSS{k?irb&p~E8@3wle zFjq;(+58IF_wneLq|H071_ZAV|988}V()^AI{`WtTJZ^)uWOAr{r#D}ZD-2mMQYBQ zjUE+BZWjLZ^U%w+)BD(;O3#_HbY*aFcKDL?lGq$`6@McJ29^_^E{-8u>n+zkIkV(h z&eT=g)>m0?cNbmOp{6`(_p!a+mFIM3A67f-t07@3V$O5)v!41|Udwh%d*5@r+~#`N zT|KZ?(6?oA{gx?0=$eVg4ob>7vh+~=<>0%QsK^&U)*u%M@+@Z>?S3$EkH!KgH|5?5O+l*zE7m zSL^Su)zP!9j?Df4@?x)lbjjgg!LhQxy6fU5eHCPS{bY&jr|KucIycj&t={Rqf8)<5 z(to4O-+4^(y!Kc$%i{6Ps(AmkZyw*z`1nIV^l8lJ?a%b)ZvScW==Jp-mwgbB*%NL%yb#8@LjemSh^}-gPP17r{RxYbdz53Aa*gVx~MO))`E!h;f{}}V( zT~Gh-RM;&WFw4pQ_zic-W%+`yF+Y&jk_XZQ-XnTKVRFC|gmxR6i^8_4})l717H3^iAhY zNZIuIi2C!;z5h;b%{-AJ6Mg>lrD=SoynNX&qP9;`o4lsa%XG^%jc4A=Gm-);v!~xO zSy3JT-?Lmb@~)hz`A*S~`8$i#wprKD<+Zvia&^Lg@7UeiGi9b`W!Wl!-jIL0-N6Pbh zUeJ1fX2H8J@t5Zw61J-SX&m}I+Rtm^={fV&qSspK&3Ym)dG*BFkLLDz29c$EHU-X| zZ@NNBbwN&T*qhpU(e}%){SV%<{ac|OGdSr~F5X!9_WS9TQBhH4Pc7unoH>&dCHv~# zyK7Um!@pc~mw$VT(b#x>wXE(d?Z31CeQlq=LZN*k!|cj$Z)R3iS6{tfmw&F7)jD4rp2%=Q0-8|YEPJz_fvrLI#k+U+zHJkk z@tOTP@6GLNA}rKIcYUvOO_TF}elNQBx4;S2Pm*Bg-G~)wXw*5eeB0@tBHn5mUT^$k z%-^g_Jv#4)s8RT;MQ1d3r$%nPu%b;(c+>UjplF%@2MXUa{_Lw^1MA+@&t$;BaH2SE zrcPn&ALdW`>+0fOSZ+15F8}f*nc+tC6KGLe`+EsP%%W$F?pfzbK^J_ecdfpCHFWN4 z4Tgm0C(^-2Dct_%$tZCn{?p30MRrG-z+wyx3=MCrw#@B~+h6A^$O#i;VEA-rns!6K zto5?+^>Hh=YzcAim%F;q`SvPFX8VkvUz$5>x>(_gZ*EOxyz%(si;s_wd#Oz>+8JY2 z^W#I@5!N@}n>TOX$)~9Ax;Ri&RP?D8B&&n$WPaZ~bLLFl>Fjn@Up&6Qzdt=uqFPY6 zfqB`IB`(YT=1#i(_FSn3+yeGn+qe$Ec?=DIjx*OX!ubyx7BIj~W?*1vVNHO`F<2=4 Y<2OF_Beh1*ARi>^>FVdQ&MBb@0PM;})Bpeg literal 0 HcmV?d00001 diff --git a/docs/screenshots/calcms-roles.png b/docs/screenshots/calcms-roles.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc7602ed338e12376473d19e0fd9636d3f4196d GIT binary patch literal 90287 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Ȍ(CUt@b3l+Qq9;IT3WZiNemBpG7wytGfhtt&QH^ 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/calcms-schedule-studios.png b/docs/screenshots/calcms-schedule-studios.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6f0d76f684c1714493af19cdd53fe2cdcb442f GIT binary patch literal 138244 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/calcms-studios.png b/docs/screenshots/calcms-studios.png new file mode 100644 index 0000000000000000000000000000000000000000..a1c8af4fd483fbd10ef6acbdca7d7f45b985f53b GIT binary patch literal 152951 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

    P+u~gqgpd&Ca*k{BYX+%^yA{AKBrdl>F{c|2Ouy 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 Zx$mdbZXJ5GL1dF} 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 ^OL=5Ys8}z6z9HG?UwxUVP9FG*=pef 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 N!PC{xWt~$(69C=!K=A+o diff --git a/docs/screenshots/calcms-event-editor.png b/docs/screenshots/calcms-event-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..2ec9fee9a78f30feeeabe792d232aaa50b271b4f GIT binary patch literal 131386 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%0AoQn{L~`yk0{3_S?$%sh@W~Ss^>S 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

- -
-
+ +
+
- - -
-
-
- - - -
-
-
-
- - - - -
-
-
-
- - + + +
+
+
+
+ + + + +
+
+
+